Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso 2014
Estructura de los sistemas
operativos
Agenda
2/34
Administracin de procesos.
Administracin de memoria.
Subsistema de Entrada/Salida.
Administracin de almacenamiento secundario.
Subsistema de archivos.
Subsistema de red.
Sistema de proteccin.
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.
La vinculacin de las direcciones de los programas a direcciones de
memoria 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 o no) 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 ms
sofisticadas.
Implementar los mtodos de:
Abrir, cerrar, extender archivos
Leer, escribir archivos
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 y proveer una interfaz para manejarlos.
Ejemplos:
Fallo en un dispositivo de memoria.
Fallo en la fuente de energa.
Fallo en un programa.
18/34
Servicios del SO
Otros servicios de propsito general que deber brindar el sistema
operativo son:
Asignacin de recursos.
Contabilizacin.
Proteccin, manejo de usuarios y permisos.
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++.
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
(en Linux son aproximadamente 350).
20/34
Llamados al sistema
La llamada a un system call incluye las siguientes tareas:
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.
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, obtener atributos, cargar atributos, esperar por
tiempo, esperar por un evento o seal, obtener o liberar memoria, etc.
Gestin de archivos
Crear, borrar, abrir, cerrar, leer, escribir, obtener o cargar atributos, etc.
Gestin de dispositivos
Requerir o liberar un dispositivo, leer o escribir, buscar o cargar atributos de un
dispositivo, 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:
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
34/34