Un sistema operativo proporciona el ambiente dentro del cual se ejecutan los programas, internamente tienen gran variacin en su contenido y estn muy bien organizados. Existen varios puntos de vista desde los cuales se puede ver un sistema operativo, uno consiste en examinar los servicios que proporciona, otro implica analizar la interfaz para usuarios y programadores, un tercero que consiste en desensamblar el sistema en sus componentes e interconexiones. Un sistema operativo crea el entorno en el que se ejecutan los programas. Podemos crear un sistema tan grande y complejo como un sistema operativo slo si lo dividimos en porciones ms pequeas. Cada una de estas partes deber ser un componente bien delineado del sistema, con entradas, salidas y funciones cuidadosamente definidas.
Un programa no puede hacer nada si la CPU no ejecuta sus instrucciones. Podemos pensar en un proceso como una porcin de un programa en ejecucin o todo el programa, por ejemplo un usuario individual ejecutando un editor de texto en una PC, es un proceso. Un proceso necesita ciertos recursos, incluidos tiempo de CPU, memoria, archivos y dispositivos de E/S, para llevar a cabo su tarea. Estos recursos se otorgan al proceso en el momento en que se crea, o bien se le asignan durante su ejecucin. Un proceso necesita ciertos recursos, incluidos tiempo de CPU, memoria, archivos y dispositivos de E/S, para llevar a cabo su tarea. Estos recursos se otorgan al proceso en el momento en que se crea, o bien se le asignan durante su ejecucin.
Administracin De Procesos
Un sistema operativo es responsable de las siguientes actividades relacionadas con la administracin de procesos
Crear y eliminar procesos de usuarios y procesos del sistema Suspender y continuar procesos
Proporcionar mecanismos para la sincronizacin de procesos Proporcionar mecanismos para la comunicacin de procesos Proporcionar mecanismos para el manejo de bloqueos mutuos
El sistema operativo es responsable de Para que un programa se ejecute, debe la siguiente s actividades relacionadas convertirse en un mapa de direcciones con la administracin de la memoria: absolutas y cargarse en memoria .
La seleccin de un esquema de administracin para un sistema especifico depende de muchos factores especialmente del diseo de hardware del sistema. cada algoritmo requiere su propio soporte de hardware . llevar un registro de las partes de la memoria que estn siendo utilizadas en el momento y quien las esta utilizando. decidir que procesos se van a cargar en la memoria cuando el espacio de la misma este disponible. asignar y liberar espacio de la memoria segn se necesite.
3
GESTION DE ARCHIVOS
El S.O. presenta una perspectiva lgica uniforme de almacenamiento de informacin, abstrayendo las propiedades fsicas de sus dispositivos de almacenamiento para definir una unidad de almacenamiento lgica, que es el archivo. A este se puede acceder a travs de los dispositivos de almacenamiento. Un archivo es una coleccin de informacin relacionada definida por su creador, esto consiste en una secuencia de bits, lneas o registros cuyos significados han sido definidos por su creador El S.O. se encarga de lo siguiente relacionado con archivos: Crear y eliminar archivos Crear y eliminar directorios Proveer las primitivas para la manipulacin de archivos y directorios Establecer la correspondencia de los archivos con almacenamiento secundario Resguardar los archivos en medios de almacenamiento estables
principal es demasiado
pequea y que pierde su informacin cuando deja de recibir corriente elctrica, el sistema de computacin debe contar con algn almacenamiento secundario para
La mayor parte de los sistemas del computador utiliza discos como principal medio de almacenamiento en lnea tanto para programas como para datos.
Asignacin de almacenamiento
respaldar la memoria
principal.
otros procesadores.
Los S.O. normalmente generalizan el acceso por red como una forma
Los procesadores del sistema se conectan por medio de una red de comunicacin.
de acceso a archivos.
5
Si un sistema de cmputo tiene mltiples usuarios y permite la ejecucin concurrente de varios procesos, entonces estos procesos deben ser protegidos de las actividades de los dems.
Para dicho fin, se incorporan mecanismos que aseguran que los archivos, los segmentos de memoria, la CPU y otros recursos sean operados solo por aquellos procesos que cuentan con una autorizacin del sistema operativo.
SISTEMAS DE PROTECCIN
La proteccin es cualquier mecanismo para controlar el acceso de programas, procesos o usuarios a los recursos definidos por un sistema de cmputo.
El temporizador (timer) asegura que ningn proceso tenga control de la CPU sin abandonar finalmente dicho control.
6
Manipulacin del sistema de archivo : el sistema de archivo es de inters particular. Obviamente, los programas necesitan leer y escribir archivos ; tambin crear y borrar archivos por nombres
Comunicaciones : existen muchas situaciones en las cuales los procesos necesitan intercambiar informacin . Esta comunicacin se da de 2 maneras ; la primera se da entre procesos que se ejecutan en la misma computadora ; la segunda tiene lugar entre procesos que se ejecutan entre diferentes sistemas de computo enlazados mediante una red de computadoras
Operaciones de E/S : por lo general el usuario no puede controlar de manera directa a los dispositivos de E/S; por lo tanto el sistema operativo debe proporcionar un medio para poder realizar estas operaciones
Ejecucin de programas : el sistema debe ser capaz de carga un programa en la memoria para luego ejecutarlo; el programa se encargara de terminar su ejecucin ya sea de manera normal o anormal
Deteccin de errores : el S.O. constantemente debe estar preparado ante la posible aparicin de errores. Estos pueden ocurrir en la CPU y en el hardware de la memoria (como una falla en la energa) en dispositivo de E/S (una falla de conexin de red, o falta de papel en la impresora ) para cada tipo de error; el S.O. deber tomar la accin apropiada , para asegurar una operacin correcta
Asignacin de recursos
Contabilizacin
Proteccin
Son la interfaz entre un proceso y el sistema operativo. Estas llamadas generalmente estn disponibles como instrucciones en lenguaje ensamblador, y casi siempre se listan en los manuales empleados por quienes programan en ese lenguaje.
Habitualmente, mediante una instruccin especial de la mquina (syscall, int, trap, ...). La instruccin cambia automticamente a modo privilegiado. Si programamos en un lenguaje de alto nivel escribimos la llamada al sistema como una subrutina, y el compilador la sustituye por la instruccin de mquina correspondiente
Control de procesos: Fin, abortar, cargar, ejecutar, crear, finalizar, obtener y establecer atributos, espera, asignar y liberar memoria. Manipulacin de archivos: Crear y eliminar archivo, abrir y cerrar, leer, escribir, reposicionar, obtener y establecer atributos Manipulacin de dispositivos: Solicitar y liberar, leer, escribir, reposicionar, obtener y establecer atributos, conectar y desconectar dispositivos Mantenimiento de informacin: Obtener y establecer hora, fecha, datos del sistema, atributos de un proceso, archivo o dispositivo. Comunicaciones: Crear, eliminar conexiones; enviar y recibir mensajes
10
Muchos sistemas ofrecen llamadas al sistema para efectuar un vuelco de la memoria, la cual es til para la depuracin.
En un sistema por lote, el intrprete de rdenes por lo regular termina todo el trabajo actual y contina con el siguiente.
Un proceso o trabajo que ejecuta un programa podra querer cargar y ejecutar otro programa. Esta funcin permite al intrprete de rdenes ejecutar un programa cuando se lo solicita.
11
Muchos sistemas operativos generan un perfil de tiempo de un programa. Un perfil de tiempo requiere un servicio de rastreo o interrupciones regulares del temporizador. Con interrupciones del temporizador, lo suficientemente frecuentes, se puede obtener una imagen estadstica del tiempo consumido por las diversas partes del programa. El sistema operativo MS-DOS es un ejemplo de un sistema de una sola tarea, y que tiene un interprete de comandos que se invoca al iniciar la computadora . (Figura 3.3 a).
El sistema carga el programa en la memoria, escribiendo sobre la mayor parte de si mismo para dar al programa tanta memoria como sea posible (Figura 3.3 b)
Un ejemplo de sistemas multitareas es el UNIX. Cunado un usuario se conecta al sistema, se ejecuta el Shell (interprete de comandos) que l elige. Este interprete es similar al de MS-DOS por el hecho de que acepta comandos y ejecuta programas que el usuario solicita. Sin embargo, debido a q UNIX es un sistema multitarea, el interprete de comando puede continuar en ejecucin mientras otro programa tambin se ejecuta. Para comenzar un nuevo proceso, el interprete ejecuta la llamada el sistema. Luego, el programa seleccionado se carga en la memoria y entonces se ejecuta el programa. Dependiendo de la forma en que se haya emitido el comando, el interprete espera luego a que termine el proceso o bien ejecuta el proceso que se encuentra en segundo plano.
12
Crear un archivo, eliminar un archivo.
Abrir, cerrar.
Otras devuelven informacin acerca del sistema Muchas llamadas al sistema existen con el propsito de transferir informacin entre el programa del usuario y el S.O. Numero de usuarios actuales Numero de versin del sistema operativo Cantidad de memoria o espacio en disco libre.
13
Existe dos modelos de comunicacin en el modelo de paso de mensajes la informacin se intercambia mediante un servicio de comunicacin entre procesos proporcionado por el sistema operativo. Antes de que tenga lugar una comunicacin, se necesita abrir una conexin, debe conocerse el nombre del otro comunicador, ya sea otro proceso en la misma CPU, o uno en otra computadora conectada por una red de comunicaciones
MEMORIA COMPARTIDA
Los procesos utilizan las llamadas al sistema map memory para obtener acceso a regiones de memoria que corresponde a otros procesos el sistema operativo trata de impedir que un proceso acceda a la memoria de otro. La memoria compartida requiere que dos o mas procesos estn de acuerdo en remover esta restriccin y entonces poder intercambiar informacin leyendo y escribiendo datos en esta reas compartidas
14
ADMINISTRACION DE ARCHIVOS.-Estos
imprimen
vacan
listan
generalmente
manipulan archivos y directorios IMFORMACION sistema disponible MODIFICACION DE ARCIVOS.-pueden estar disponibles varios editores de texto para crear y modificar el contenido DE ESTADO.-preguntan al
la fecha hora
cantidad de memoria
CARGA Y EJECUCION DE PROGRAMAS.-El sistema puede proporcionar cargadores absolutos , cargadores relocalizadles editores de encadenamiento y cargadores de superposiciones ,
15
Muchos de los comandos dados en este nivel son para manipular archivos: crear, borrar, listar, imprimir, copiar, ejecutar entre otras.
16
Una de las estrategias para disear un sistema operativo consiste en dividir la terea en componentes pequeos, en lugar de un sistema monoltico. Cada modulo debe de ser una porcin bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas.
Sistemas operativos como MS-DOS y UNIX (versin original) son ejemplos de sistemas operativos de estructura simple. Dado el limitado hardware que tenan no contaban con un modo dual ni proteccin por hardware. Y estaban a merced de programas errneos (o mal intencionados).
17
Otro ejemplo de estructuracin limitada sistema operativo UNIX estuvo limitado por la funcionalidad del hardware la cual consiste en dos partes separables : el kernel y los programas del sistema. El kernel se divide en series de interfaces y manejadores de dispositivos que sea han ampliado a lo largo de los aos a medida que UNIX ha evolucionado. Podemos ver al UNIX como series de llamada al sistema , lo que se encuentra debajo de la interfaz de llamadas al sistema y arriba del hardware fsico es el kernel. Proporciona diferentes funciones como sistemas de archivos, la planificacin de la CPU, la administracin de la memoria, etc. por medio de llamadas al sistema. En conjunto implica funcionalidad para combinarse en un solo nivel.
Los programas de sistema utilizan las llamadas al sistema soportada por el kernel para ofrecer funciones tiles, como compilacin y manipulacin de archivos.
Llamadas al sistema
Interfaz del Interfaz del programador usuario (API) Ambas Interfaces definen el contexto al que el kernel brinda soporte
Las nuevas versiones de UNIX estan diseadas para usar hardware mas avanzado, dado un adecuado soporte al hardware.
18
Es aquel en cual el sistema operativo se descompone en varios niveles, cada uno de ellos construido sobre capas inferiores. La capa inferior (capa 0) es el hardware, la ms alta (capa N) es la interfaz del usuario. Una capa tpica del sistema operativo est compuesta de estructura de datos y un conjunto de rutinas que pueden ser invocadas por capas de mayor nivel. Esta capa a su vez puede invocar operaciones en capas de menor nivel. La principal ventaja del enfoque por capas es la modularidad.
Las capas se seleccionan de tal manera que cada una utilice funciones (operaciones) y servicios exclusivamente de capas de niveles inferiores
Si se encuentra un error durante la depuracin de una capa particular, el error debe estar en dicha capa, debido a que las que estn debajo de ella ya estn depuradas.
Cada capa se implementa solo con aquellas operaciones proporcionadas por capas de nivel inferior. La principal dificultad en este enfoque radica en la definicin apropiada de las diversas capas. Debido a que una capa solo puede usar aquellas que se encuentran en un nivel inferior, es necesaria una planeacin cuidadosa.
Un problema final con las implementaciones por capas es que tienden a ser menos eficientes que otros tipos, debido a que cada capa agrega un trabajo adicional por lo cual una accin toma ms tiempo en ser realizada que en un sistema sin capas.
Microkernels
19
En la dcada de 1980 investigadores de la universidad mellon desarrollaron un sistema operativo mach en el que se modulariz el kernel empleando el enfoque microkernel.
En general los microkernels tpicamente proporcionan una administracin mnima de los procesos y de la memoria, adems de un servicio de comunicacin. Esta comunicacin se proporciona mediante el paso de mensajes.
Digital UNIX proporciona al usuario una interfaz UNIX, pero q esta implementado sobre un kernel Mach. Las llamadas al sistema de UNIX son convertidas por Mach en mensajes a los servicios apropiados a nivel de usuario.
Aplicacin Win32
Aplicacin OS/2
Aplicacin Posix
Servidor de Win32
Servidor de OS/2
Servidor de Posix
Kernel
20
Conceptualmente, un sistema de cmputo est formado por capas. El hardware es el nivel ms bajo en todos estos sistemas. El kernel, que se ejecuta en el siguiente nivel, utiliza las instrucciones de hardware para crear un conjunto de llamadas al sistema para uso de las capas exteriores
Algunos sistemas llevan este esquema un paso ms adelante permitiendo que los programas del sistema sean invocados fcilmente por los programas de aplicaciones
Aunque los programas del sistema se encuentran en un nivel superior a las dems rutinas, los programas de aplicacin pueden ver todo lo que est debajo de ellos en la jerarqua como si fueran parte de la mquina misma
El proceso normalmente tiene caractersticas adicionales, como llamadas al sistema y un sistema de archivos, las cuales no son proporcionadas por el hardware
En si el enfoque de maquina virtual, por otra parte, no incluye alguna funcionalidad adicional, sino que ms bien proporciona una interfaz que es idntica al hardware simple que est en la base
La operacin perifrica simultnea en lnea (spooling) y el sistema de archivos pueden ofrecer lectoras de tarjetas virtuales e impresoras de lneas virtuales. Una terminal normal de usuario con tiempo compartido proporciona la funcin de la consola del operador de la maquina virtual.
21
Se requiere un esfuerzo apreciable para crear un duplicado exacto de la maquina subyacente, este ultimo tiene dos modos: modo de usuario y modo de monitor.
Dado que la maquina fsica tiene dos modos, la maquina virtual tambin deber tenerlos.
Debemos tener un modo de usuario virtual y un modo de monitor virtual, y ambos deben ejecutarse en modo de usuario fsico.
22
El concepto de maquina virtual tiene varias ventajas. Para ello, se han implementado dos estrategias:
Primero, es posible compartir un minidisco. Este esquema sigue el modelo de los discos compartidos, pero se implementan en software. Con esta tcnica, se pueden compartir archivos.
Segundo, es posible definir la red de maquinas virtuales, cada una de las cuales pueden enviar informacin por la red de comunicaciones virtual.
23
Java es un lenguaje que goza de gran popularidad, que se implementa con un compilador que se genera cdigos de bytes como salida. Estos cdigos de bytes son las instrucciones que se ejecutan en la Maquina Virtual Java(JVM, Java Virtual Machine). Para que los programas Java se ejecuten en una plataforma, es necesario que dicha plataforma este ejecutando una JVM. La Maquina Virtual Java implementa un conjunto de instrucciones basado en pila que incluye las instrucciones aritmticas, lgicas de movimiento de datos y de control de flujo que cabe esperar. Los compiladores de Java se limitan a emitir estas instrucciones de cdigos de bytes, y la JVM debe implementar la funcionalidad necesaria en cada plataforma.
24
Mquina no virtual
Mquina virtual
25
OBJETIVOS DE DISEO. En el nivel mas alto, el diseo del sistema estar afectado por la seleccin del hardware y el tipo de procesamiento que se implementar en el sistema. Es difcil especificar los requisitos, se dividen en dos grupos bsicos: metas de usuario (fcil de usar, seguro, rpido, confiable) y metas del sistema. Desde luego esto es generalizado sobre la forma de lograr los objetivos.
Mecanismos y Politicas Los mecanismos determinan cmo se hace algo. La polticas deciden qu se har. La separacin de poltica y mecanismo es importante para la flexibilidad.
IMPLEMENTACIN
26
Una vez diseado un SO, este debe implementarse. Los SO por tradicin se han escrito en lenguaje ensamblador, por ejemplo el MCP, pero ahora se los hace en lenguaje de alto nivel.
Las ventajas de utilizar Lenguajes de alto nivel:
Reduccin en la velocidad
Las mejoras importantes en el desempeo de los SO ser probablemente ms el resultado de mejores estructura de datos y algoritmos que de un excelente cdigo ensamblador
GENERACION DE SISTEMAS
Es necesario configurar o generar el sistema para cada sitio de computador especifico. Este proceso se lo conoce como generacin de sistemas (SYSGEN, system generation).
27
Una vez que se ha generado un sistema operativo, debe ponerse a disposicin del hardware
Qu CPU se usar? Qu opciones estn instaladas? Con cuanta memoria se cuenta? Con qu dispositivos se cuenta?
Este programa lee de un archivo dado o pide al operador del sistema informacin relativa a la configuracin especfica del hardware, o bien sondea el hardware directamente para determinar que componentes tiene. Hay que determinar los siguientes tipos de informacin:
Qu opciones se desea que tenga el sistema operativo, o que valores de parmetros se usarn?