Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 SO Teo EstructuraSistemasOperativos
4 SO Teo EstructuraSistemasOperativos
Agenda
Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura del sistema.
2/34
3/34
4/34
Administracin de procesos
El sistema albergar muchos procesos compitiendo por los recursos y ser el responsable de proveer de medios o servicios para que realicen su tarea:
Crear y destruir procesos. Suspensin y reanudacin de procesos. Proveer mecanismos para la cooperacin (sincronizacin) y comunicacin entre los procesos. Proveer mecanismos para prever la generacin de dead-locks o lograr salir de ellos.
5/34
Administracin de memoria
La memoria principal es un arreglo de palabras o bytes. Es un repositorio de datos de rpido acceso compartido por los CPUs y los dispositivos. La memoria es un rea de almacenamiento comn a los procesadores y dispositivos del sistema dnde se almacenan programas, para su ejecucin, y datos. El vincular programas a direcciones absolutas es fuertemente dependiente del hardware igual que la posibilidad de reubicacin. El sistema deber administrar el lugar libre y ocupado, decidir que proceso podr comenzar cundo es cargado en memoria.
6/34
Administracin de memoria
Para lograr la multiprogramacin es necesario mantener varios programas en memoria al mismo tiempo. Existen varios esquemas para la administracin de la memoria y requieren distinto soporte del hardware. El sistema operativo es responsable de las siguientes tareas:
Mantener que partes de la memoria estn siendo utilizadas y por quin. Decidir cuales procesos sern cargados a memoria cuando exista espacio de memoria disponible. Asignar y quitar espacio de memoria segn sea necesario.
7/34
Subsistema de entrada/salida
El sistema operativo deber encapsular y ocultar las caractersticas especficas de los diferentes dispositivos de almacenamiento y ofrecer servicios comunes para todos los medios de almacenamiento. Para ello proveer de:
Un conjunto de servicios que provean la interfase con el subsistema e implementen tcnicas de cache, buffering y spooling. Una interfase cliente con el sistema operativo para los manejadores de dispositivos o device drivers que permitir interactuar (mediante cargas dinmicas) con cualquier modelo de dispositivo. Device drivers especficos. Montaje y desmontaje (Mount/Dismount) de dispositivo.
8/34
9/34
Subsistema de archivos
Proporciona una vista uniforme de todas las formas de almacenamiento en los diferentes dispositivos implementando el concepto de archivo como una coleccin arbitraria de bytes u otras clases o organizaciones mas sofisticadas. Implementar los mtodos de:
Abrir, Cerrar, Extender Leer, Escribir Crear y borrar directorios
10/34
Red
En un sistema distribuido (no se comparten fsicamente memoria ni dispositivos) los conjuntos de procesos interactan a travs de un canal de comunicacin en el contexto de una red de comunicacin. En general se generaliza el concepto de dispositivo virtual implementando un manejador (driver) que encapsula el acceso a dispositivos remotos.
11/34
Sistema de proteccin
En un sistema multiusuario donde se ejecutan procesos en forma concurrente se deben tomar medidas que garanticen la ausencia de interferencia entre ellos. Por proteccin nos referimos a los mecanismos por los que se controla al acceso de los procesos a los recursos. El mecanismo debe incorporar la posibilidad de definir reglas de acceso y asegurar su verificacin en toda ocasin que corresponda.
12/34
Servicios del SO
El sistema brindar un entorno de ejecucin de programas dnde se dispondr de un conjunto de servicios que sern accesible mediante una interfase bien definida. Servicios bsicos que debe brindar un sistema operativo:
Ejecucin de programas. Operaciones de Entrada/Salida. Manipulacin de sistemas de archivos. Comunicacin entre procesos. Manipulacin de errores (excepciones).
13/34
Ejecucin de programas
El sistema debe ser capaz de cargar un programa a memoria y ejecutarlo. El programa deber poder en algn momento finalizar su ejecucin, ya sea de forma normal o anormal (indicando un error).
14/34
Operaciones de entrada/salida
Un programa en ejecucin necesitar de operaciones de Entrada/Salida para acceder a un archivo o dispositivo. Por eficiencia y proteccin los usuarios no accedern directamente al dispositivo. El sistema deber proveer un mecanismo de acceso.
15/34
16/34
17/34
Deteccin de errores
El sistema deber tomar decisiones adecuadas ante eventuales errores que ocurran:
Fallo en un dispositivo de memoria. Fallo en la fuente de energa. Fallo en un programa. Etc.
18/34
Servicios del SO
Otros servicios de propsito general que deber brindar el sistema operativo son:
Asignacin de recursos. Contabilizacin. Proteccin.
Una vez que estn definidos los servicios que brindar el sistema operativo, se puede empezar a desarrollar la estructura del sistema.
19/34
Llamados al sistema
Los llamados al sistema (system calls) son una interfaz, provista por el ncleo, para que los procesos de usuarios accedan a los diferentes servicios que brinda el sistema operativo. Al principio los system calls estaban desarrollados en lenguaje de la arquitectura de la mquina. En los sistemas modernos estn programados en lenguajes de programacin de alto nivel como C o C++. De esta forma, los programas de usuario tienen un acceso ms directo a los servicios. Los servicios son invocados por los procesos en modo usuario, cuando ejecutan lo hacen en modo monitor, y al retornar vuelven al modo usuario. Tpicamente a los system calls se les asocia un nmero que los identifica.
20/34
Llamados al sistema
La llamada a un system call incluye las siguientes tareas:
Cargar los parmetros en el lugar adecuado (stack). Cargar el nmero de system call en algn registro especfico (Ej: eax en Intel). Invocar a la interrupcin por software (trap) adecuada (system call handler). La interrupcin cambia el bit de modo a monitor, controla que el nmero de system call pasado en el registro sea menor que el mayor del sistema y, finalmente, invoca al system call correspondiente. El valor retornado por el system call es puesto en un registro especfico (Ej.: eax en Intel).
21/34
Llamados al sistema
Existen 3 formas de pasar los parmetros al sistema operativo:
A travs de los registros: Se utilizan un conjunto de registros para pasar los parmetros. Tiene el problema de la cantidad de parmetros es fija y que restringe el tamao del valor. En Intel se utilizan 5 registros: ebx, ecx, edx, esi, y edi. Un bloque de memoria apuntado a travs de un registro. En el stack del proceso que realiza el llamado. El proceso guarda los parmetros con operaciones push sobre el stack y el sistema operativo los saca con la operacin pop.
22/34
Llamados al sistema
23/34
Llamados al sistema
Los system calls se clasifican en distintos tipos:
Control de procesos
Cargar, ejecutar, finalizar, abortar, conseguir atributos, cargar atributos, esperar por tiempo, esperar por un evento o seal, conseguir o liberar memoria, etc.
Gestin de archivos
Crear, borrar, abrir, cerrar, leer, escribir, conseguir o cargar atributos, etc.
Gestin de dispositivos
Requerir o liberar un dispositivo, leer o escribir, conseguir o cargar atributos de un dispositivo, etc.
Gestin de informacin
Conseguir o cargar la hora del sistema, datos del sistema, de procesos, etc.
Comunicaciones
Crear o destruir conexiones, enviar o recibir mensajes, etc.
24/34
25/34
Sistema monoltico
No se tiene una estructura definida. El sistema es escrito como una coleccin de procedimientos, que pueden ser invocados por cualquier otro. No existe ocultacin de informacin, ya que cualquier procedimiento puede invocar a otro. Si bien todo procedimiento es pblico y accesible a cualquiera, es posible tener buenos diseos y lograr, de esa forma, buena eficiencia en el sistema. Ej.: MS-DOS.
Los componentes pueden invocar procedimientos de cualquiera.
Ej.: Linux
Linux es un ncleo monoltico que a logrado un buen diseo orientado a objetos (sistema modular).
26/34
Sistema en capas
Se organiza el diseo en una jerarqua de capas construidas una encima de la otra. Los servicios que brinda cada capa son expuestos en una interfase pblica y son consumidos solamente por los de la capa de arriba. La capa 0 es el hardware y la N es la de procesos de usuario.
27/34
Sistema en capas
Ventajas:
Modularidad. Depuracin y verificacin de cada capa por separado.
Desventajas:
Alto costo de definicin de cada capa en la etapa de diseo. Menos eficiente frente al sistema monoltico ya que sufre de overhead al pasar por cada capa.
28/34
Sistema en capas
Ej.: en capas OS/2.
29/34
30/34
Ej. Windows NT
31/34
Mquinas Virtuales
Se puede ver como una extensin de los sistemas multiprogramados pero a ms bajo nivel Los procesos no solamente trabajan sobre el sistema operativo como si fueran el nico proceso en el sistema sino que tienen una copia virtual del hardware de la CPU Las mquinas virtuales corren como procesos a nivel de usuario y el administrador de MVs (hypervisor) implementa un modo usuario virtual y un modo administrador virtual Tambin se implementan discos virtuales sobre los discos reales para las mquinas virtuales Dos modos bsicos
Tipo 1: el administrador corre directamente sobre el hardware Tipo 2: el administrador corre como un proceso sobre un sistema operativo normal
32/34
Facilidad de desarrollo
Se pude correr un sistema operativo de test en una mquina virtual sin correr riesgos con el sistema real
Flexibilidad
Correr un sistema operativo de una arquitectura en una mquina diferente
Alta disponibilidad
En caso de falla de una MV se puede levantar otra rpidamente en otro hardware
33/34
Tiempo de respuesta de la mquina muy poco predecible por uso del sistema operativo de base u otras Mvs
No apropiado para sistemas de tiempo real
34/34