Anda di halaman 1dari 34

Sistemas Operativos

Curso 2012 Estructura de los sistemas operativos

Agenda
Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura del sistema.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

2/34

Componentes del sistema operativo


Por su complejidad un sistema operativo debe ser, en su diseo, modularizado en varios componentes:
Administracin de procesos. Administracin de memoria. Subsistema de Entrada/Salida. Administracin de almacenamiento secundario. Subsistema de archivos. Subsistema de red. Sistema de proteccin.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

3/34

Administracin de procesos: Proceso


Un programa en la memoria + CPU + acceso a dispositivos + recursos constituyen un proceso. Un programa es una entidad pasiva, mientras que un proceso es una entidad activa. Cada proceso cuenta con un contador de programa (PC program counter) que determina la prxima instruccin de cdigo a ejecutar. El proceso necesita de ciertos recursos (CPU, memoria, archivos, y dispositivos de E/S) para realizar su tarea.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

8/34

Administracin de almacenamiento secundario


La memoria principal es voltil y demasiado pequea para guardar todos los datos y programas que son necesarios para el funcionamiento del sistema. La mayora de los sistemas actuales utilizan discos como principal medio para guardar toda la informacin. El sistema operativo es responsable de las siguientes actividades en administracin de almacenamiento secundario:
Administrar el espacio libre. Asignacin del lugar de la informacin. Algoritmos de planificacin de disco.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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).

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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).

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

15/34

Manipulacin del sistema de archivos


Se deber proveer acceso al sistema de archivos. Las operaciones mnimas sern:
Crear, borrar, leer, escribir

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

16/34

Comunicacin entre procesos


Los procesos podrn poder comunicarse. Se deber proveer mecanismos de comunicacin entre ellos ya sea que estn en el mismo computador (a travs de memoria compartida), o en diferentes computadores (a travs de transferencias de paquetes de red entre los sistemas operativos involucrados).

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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).

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

22/34

Llamados al sistema

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

24/34

Estructura del sistema


La estructura interna de los sistemas operativos pueden ser muy diferentes. Se deben tener en cuenta:
Metas de los usuarios: ser amigable, intuitivo, confiable, seguro, rpido, etc. Metas del sistema: fcil de disear, implementar y mantener, tambin flexible, confiable y eficiente.

Diseo del sistema:


Sistema monoltico. Sistema en capas. Sistema con microncleo (microkernel).

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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).

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

28/34

Sistema en capas
Ej.: en capas OS/2.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

29/34

Sistema con microncleo (microkernel)


Se constituye de un ncleo que brinde un manejo mnimo de procesos, memoria y, adems, provea de una capa de comunicacin entre procesos. La capa de comunicacin es la funcionalidad principal del sistema. Los restantes servicios del sistema son construidos como procesos separados al microncleo que ejecutan en modo usuario. El acceso los servicios del sistema se realiza a travs de pasaje de mensajes.

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

30/34

Sistema con microncleo


Ventajas:
Aumenta la portabilidad y escalabilidad ya que encapsula las caractersticas fsicas del sistema Para incorporar un nuevo servicio no es necesario modificar el ncleo. Es ms seguro ya que los servicios corren en modo usuario. El diseo simple y funcional tpicamente resulta en un sistema ms confiable.

Ej. Windows NT

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

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

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

32/34

Mquinas virtuales: beneficios


Seguridad
Los procesos en cada mquina virtual son completamente independientes de los procesos en las otras

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

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

33/34

Mquinas virtuales: desventajas


Los tiempos de las operaciones pueden tardar ms que en un sistema real
Tiempo adicional por traducir las operaciones

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

Sistemas Operativos | Curso 2012 | Estructura de los sistemas operativos

34/34