Vous êtes sur la page 1sur 30

Estructuras del Sistema Operativo

Capítulo 3
Silberschatz Galvin

Estructuras del Sistema Sistemas Operativos 1


Operativo

Estructuras del Sistema Operativo

• Componentes del Sistema


• Servicios del Sistema Operativo
• Llamadas al Sistema
• Programas del Sistema
• Estructura del Sistema
• Máquinas Virtuales
• Diseño e Implementación del Sistema
• Generación del Sistema

Estructuras del Sistema Sistemas Operativos 2


Operativo

1
Componentes comunes del sistema

• Manejo de procesos
• Manejo de memoria
• Manejo del almacenamiento secundario
• Manejo de la E/S
• Manejo de archivos
• Sistema de protección
• Redes
• Intérprete de comandos

Estructuras del Sistema Sistemas Operativos 3


Operativo

Manejo de los procesos

• Un proceso es un programa en ejecución o listo para


entrar en ejecución
• Un proceso requiere recursos
– Tiempo del CPU
– Memoria
– Archivos
– Dispositivos de E/S

Estructuras del Sistema Sistemas Operativos 4


Operativo

2
Manejo de los procesos

• El sistema operativo es responsable de:


– Creación y eliminación de los procesos
– Suspensión y reanudación de los procesos
– Proveer mecanismos de:
• Sincronización de procesos
• Comunicación entre procesos

Estructuras del Sistema Sistemas Operativos 5


Operativo

Administración de la memoria principal

• La memoria es un arreglo de palabras o bytes


• Cada uno con su propia dirección
• Es un repositorio de datos rápidamente accesibles por el
CPU y dispositivos de E/S
• La memoria principal es un almacenamiento volátil
– Pierde su contenido en caso de una falla en el sistema

Estructuras del Sistema Sistemas Operativos 6


Operativo

3
Administración de la memoria principal

• El sistema operativo es responsable del manejo de la


memoria
– Lleva el control de que partes de la memoria están usadas
y por quien
– Decide que procesos cargarse cuando hay espacio
disponible en memoria
– Asigna y desasigna memoria como se va necesitando

Estructuras del Sistema Sistemas Operativos 7


Operativo

Ejecución de MS-DOS

Proceso

Intérprete de
comandos

Kérnel

Estructuras del Sistema Sistemas Operativos 8


Operativo

4
UNIX Ejecutando múltiples procesos
Proceso D

Memoria libre

Proceso C

Intérprete

Proceso B

Kernel

Estructuras del Sistema Sistemas Operativos 9


Operativo

Administración del almacenamiento


secundario
• La memoria principal (almacenamiento primario)
– Volátil
– Muy pequeña para acomodar todos los datos y programas
permanentemente
– El sistema debe proveer almacenamiento secundario para
respaldar la memoria principal

Estructuras del Sistema Sistemas Operativos 10


Operativo

5
Administración del almacenamiento
secundario
• Los discos son el principal medio de almacenamiento
– Para datos y programas
• El sistema operativo es responsable de la administración
del disco
– Administración del espacio libre
– Asignación de los archivos
– Planificación del disco

Estructuras del Sistema Sistemas Operativos 11


Operativo

Administración del sistema de E/S

• El sistema de E/S consiste de:


– Un sistema de buffers-caché
– Una interfase general de los manejadores de dispositivos
– Manejadores específicos para los dispositivos de E/S

Estructuras del Sistema Sistemas Operativos 12


Operativo

6
Administración de los archivos

• Un archivo es una colección de información relacionada


definida por su creador.
• Representan datos y programas (fuentes y ejecutables)
• El sistema operativo administra los archivos
– Creación y borrado de archivos
– Creación y borrado de directorios
– Soporta primitivas para la manipulación de archivos y
directorios
– Mapeo de archivos en el almacenamiento secundario
– Respaldo de archivos en medios de almacenamiento

Estructuras del Sistema Sistemas Operativos 13


Operativo

Sistema de protección

• Protección se refiere al mecanismo para controlar el


acceso por programas, procesos, o usuarios al sistema
y recursos de los usuarios
• El mecanismo de protección debe:
– Distinguir entre uso autorizado y no autorizado
– Especificar los controles a imponer

Estructuras del Sistema Sistemas Operativos 14


Operativo

7
Redes (Sistemas Distribuidos)

• Un sistema distribuido es una colección de


procesadores que no comparten memoria o un reloj.
Cada procesador tiene su propio almacenamiento local
• Los procesadores en el sistema están conectados a
través de una red de comunicaciones
• Un sistema distribuido provee a los usuarios acceso a
varios recursos del sistema
• Acceso a recursos compartidos permite:
– Acelerar la velocidad de cómputo
– Incrementar disponibilidad de los datos
– Mejorar la confiabilidad
Estructuras del Sistema Sistemas Operativos 15
Operativo

Intérprete de comandos del sistema

• Muchos comandos son introducidos al sistema operativo


por comandos de control que tratan con:
– Creación y administración de procesos
– Manejo de la E/S
– Administración del almacenamiento secundario
– Administración de la memoria principal
– Acceso al sistema de archivos
– Protección
– Redes

Estructuras del Sistema Sistemas Operativos 16


Operativo

8
Intérprete de comandos del sistema

• El programa que lee e interpreta los comandos de


control
– Intérprete de comandos
– Shell
• Su función es leer y ejecutar el siguiente comando

Estructuras del Sistema Sistemas Operativos 17


Operativo

Servicios del Sistema Operativo

• Ejecución de los programas


– Cargar un programa en memoria y ejecutarlo
• Operaciones de E/S
– Los programas de usuario no pueden ejecutarlas
directamente
– El sistema operativo provee llamadas al sistema
– Una forma de ejeucutar E/S
• Manipulación del sistema de archivos
– Leer, Escribir, Crear y Borrar archivos

Estructuras del Sistema Sistemas Operativos 18


Operativo

9
Servicios del sistema operativo

• Comunicaciones
– Intercambio de información entre procesos
• Ejecutándose en la misma computadora
• Diferentes computadoras en una red
– Implementado con memoria compartida o paso de
mensajes

Estructuras del Sistema Sistemas Operativos 19


Operativo

Modelos de comunicación
Paso de mensajes

Proceso A M

Proceso B M

Kérnel M

Estructuras del Sistema Sistemas Operativos 20


Operativo

10
Modelos de comunicación
Memoria compartida

Proceso A
Memoria compartida
Proceso B

Kérnel

Estructuras del Sistema Sistemas Operativos 21


Operativo

Servicios del sistema operativo

• Detección de errores
– Asegurarse de un manejo adecuado debido a la detección
de errores
• CPU
• Hardware
• Dispositivos de E/S
• Programas de usuario

Estructuras del Sistema Sistemas Operativos 22


Operativo

11
Funciones adiciones del sistema
operativo
• Las funciones adicionales para asegurarse de la
eficiencia operaciones del sistema
– Asignación de recursos
• Asignar los recursos a múltiples usuarios, y tareas en
ejecución
– Contabilidad
• Llevar registro de cuales usuarios usan recursos y qué tanto
• Cobro, estadísticas, etc.
– Protección
• Asegurarse que todos los accesos a los recursos del sistema
están controlados

Estructuras del Sistema Sistemas Operativos 23


Operativo

Llamadas al sistema

• Las llamadas al sistema proveen la interfase entre los


programas en ejecución y el sistema operativo
– Generalmente disponibles como instrucciones en
ensamblador
• Ejemplo: int xxx
– Los lenguajes de alto nivel proveen funciones para hacer
llamadas al sistema

Estructuras del Sistema Sistemas Operativos 24


Operativo

12
Llamadas al sistema

• Métodos empleados para pasar parámetros entre un


programa en ejecución y el sistema operativo
– Registros
– En una tabla en memoria
• La dirección de la tabla se pasa como un parámetro en un
registro
– Stack
• Guarda los parámetros en el stack, y la llamada al sistema
lee los parámetros del stack

Estructuras del Sistema Sistemas Operativos 25


Operativo

Paso de parámetros como una tabla

X: X
parámetros
para una Registro
llamada Uso de Código de
parámetros de la llamada
la tabla x
Carga la al sistema
dirección X 13

Llamada 13

Estructuras del Sistema Sistemas Operativos 26


Operativo

13
Programas del sistema

• Los programas del sistema proveen un ambiente


conveniente para el desarrollo y ejecución de programas
• Pueden dividirse en:
– Manipulación de archivos
– Información del estatus
– Modificación de archivos
– Soporte a lenguajes de programación
– Carga y ejecución de programas
– Comunicaciones
– Programas de aplicaciones

Estructuras del Sistema Sistemas Operativos 27


Operativo

Programas del sistema

• Para muchos usuarios el sistema operativo son los


programas del sistema y no las llamadas al sistema

Estructuras del Sistema Sistemas Operativos 28


Operativo

14
Estructura del sistema – Una
aproximación simple
• MS-DOS – diseñado para proveer funcionalidad en el
espacio restante
– No está dividido en módulos
– Aunque MS-DOS tiene alguna estructura, sus interfases y
niveles de funcionalidad no están bien separados

Estructuras del Sistema Sistemas Operativos 29


Operativo

Estructura de capas de MS-DOS


Programas de aplicación

Programa del sistema


residente en memoria

Manejadores de
dispositivos del
MSDOS

Manejadores de dispositivos del ROM


BIOS

Estructuras del Sistema Sistemas Operativos 30


Operativo

15
Estructura del sistema – Una
aproximación simple

• UNIX
– Limitado por la funcionalidad del hardware
– El SO UNIX original tenía una estructuración limitada
• El SO UNIX consiste de dos partes separables
– Programas del sistema
– Kérnel o Núcleo
• Todo lo que está debajo de la interfase de las llamadas al
sistema y sobre el hardware físico
• Provee el sistema de archivos, planificación del CPU,
manejo de la memoria, etc.

Estructuras del Sistema Sistemas Operativos 31


Operativo

Estructura del Sistema UNIX

Usuarios

Shells y comandos
Compiladores e intérpretes
Librerías del sistema
Interfase de llamadas al sistema al kernel

Manejo de señales, Sistema de archivos, Planificación del


manejo de sistema de intercambio CPU, reemplazo de
terminales, E/S de de bloques de E/S, páginas, demanda
caractereres manejadores de disco de páginas, memoria
y cinta virtual
Interfase del kernel al hardware
Controladores de Controladores de Controladores de
terminales dispositivos memoria
Terminales Discos y Cintas Memoria física

Estructuras del Sistema Sistemas Operativos 32


Operativo

16
Estructura del sistema

• El sistema operativo se divide en capas, cada una


construida sobre las capas inferiores
• La capa más baja (capa 0) es el hardware
• La capa más alta (capa N) es la interfase con el usuario
• Modularidad
– Las capas usan funciones y servicios de las capas
inferiores.

Estructuras del Sistema Sistemas Operativos 33


Operativo

Capas de un Sistema Operativo

Operaciones Capa M
nuevas

Operaciones Capa M-1


escondidas

Operaciones
existentes

Estructuras del Sistema Sistemas Operativos 34


Operativo

17
Estructura de capas del Sistema
Operativo
Nivel 5 Programas de usuario

Nivel 4 Almacenamientos intermedios de E/S

Nivel 3 Manejador de dispositivo de la consola


del operador
Nivel 2 Manejo de la memoria

Nivel 1 Planificación del CPU

Nivel 0 Hardware

Estructuras del Sistema Sistemas Operativos 35


Operativo

Estructura de capas del OS/2

Aplicación Aplicación Aplicación

Interfase de programas de aplicación Extensión API

Subsistema Subsistema Subsistema

Kernel •Manejo de la memoria


•Despachador de tareas
•Manejador de dispositivos

Manejador de dispositivo Manejador de dispositivo Manejador de dispositivo Manejador de dispositivo

Estructuras del Sistema Sistemas Operativos 36


Operativo

18
Micronúcleos

• Pequeño núcleo del sistema operativo.


• Sólo contiene las funciones esenciales del sistema
operativo.
• Muchos de los servicios que tradicionalmente se incluían
en el sistema operativo son ahora subsistemas externos:
– Controladores de dispositivos.
– Sistemas de archivos.
– Gestores de memoria virtual.
– Sistemas de ventanas.
– Servicios de seguridad.

Estructuras del Sistema Sistemas Operativos 37


Operativo

Ventajas de la organización micronúcleo

• Interfaz uniforme para las solicitudes realizadas por los


procesos:
– Todos los servicios se utilizan mediante paso de
mensajes.
• Extensibilidad:
– Permite añadir nuevos servicios.
• Flexibilidad:
– Permite añadir nuevas características.
– Permite reducir las características actuales.

Estructuras del Sistema Sistemas Operativos 38


Operativo

19
Ventajas de la organización micronúcleo

• Portabilidad:
– En el micronúcleo (y no en los demás servicios) se
realizan los cambios necesarios para portar el sistema a
un nuevo procesador.
• Fiabilidad:
– Diseño modular.
– Un pequeño micronúcleo puede probarse de un modo
muy riguroso.

Estructuras del Sistema Sistemas Operativos 39


Operativo

Ventajas de la organización micronúcleo

• Soporte a sistemas distribuidos:


– Se puede enviar un mensaje sin saber en qué máquina
reside el destinatario.
• Sistema operativo orientado a objetos:
– Los componentes son objetos con interfaces claramente
definidas que se pueden interconectar para formar un
software.

Estructuras del Sistema Sistemas Operativos 40


Operativo

20
Diseño de micronúcleo

• Gestión de memoria a bajo nivel:


– Traduce cada página virtual en un marco de página físico.
• Comunicación entre procesos.
• Gestión de interrupciones y E/S.

Estructuras del Sistema Sistemas Operativos 41


Operativo

Estructura Cliente-Servidor Windows NT

Aplicación Aplicación Aplicación


Win32 OS/2 Posix

Server Server Server


Win32 OS/2 Posix

Kernel

Estructuras del Sistema Sistemas Operativos 42


Operativo

21
Máquinas virtuales

• Una máquina virtual trata el hardware y kernel del


sistema operativo como si todo fuera hardware
• Provee una interfase idéntica al hardware descubierto
• El sistema operativo crea la ilusión de múltiples
procesos, cada uno de ellos ejecutando su propio
procesador con su propia memoria virtual

Estructuras del Sistema Sistemas Operativos 43


Operativo

Máquinas Virtuales

• Los recursos de la computadora física se comparten


para crear máquinas virtuales
– La planificación del CPU puede aparentar que los usuarios
tienen su propio procesador
– Spooling y un sistema de archivos pueden proveer
dispositivos virtuales
• Ejemplo impresoras
– Una terminal funciona como la consola del operador en la
máquina virtual

Estructuras del Sistema Sistemas Operativos 44


Operativo

22
Modelos
Máquina No Virtual Máquina Virtal

Procesos Procesos Procesos


Procesos

Interfase de
programación Kernel Kernel Kernel
Kernel Máquina virtual

Hardware Hardware

Estructuras del Sistema Sistemas Operativos 45


Operativo

Ventajas y desventajas de las máquinas


virtuales
• El concepto de máquina virtual provee protección total
de los recursos del sistema
– Cada máquina virtual está aislada de las demás máquinas
virtuales
– No permite compartición directa de los recursos

Estructuras del Sistema Sistemas Operativos 46


Operativo

23
Ventajas y desventajas de las máquinas
virtuales
• Una máquina virtual es una herramienta perfecta para el
desarrollo e investigación de sistemas operativos
– El desarrollo se hace en una máquina virtual en vez de
una máquina física
– No interfiera con la operación normal del sistema
• El concepto de máquina virtual es difícil de implementar
debido al esfuerzo requerido para proveer una copia
exacta de la máquina

Estructuras del Sistema Sistemas Operativos 47


Operativo

La máquina virtual de Java


Máquina No Virtual Máquina Virtal

Procesos Procesos Procesos


Procesos

Interfase de
programación Kernel Kernel Kernel
Kernel Máquina virtual

Hardware Hardware

Estructuras del Sistema Sistemas Operativos 48


Operativo

24
La máquina virtual de Java

Programa API de Java


en Java Cargador de clases Archivos
Archivos .class
.class Bytes con los
códigos de
operación
Intérprete de
Java

Host

Estructuras del Sistema Sistemas Operativos 49


Operativo

La plataforma Java

Programa Programa Programa Programa


Java Java Java Java

Plataforma Plataforma Plataforma Plataforma


Java Java Java Java

UNIX Windows Browser Chip Java

Estructuras del Sistema Sistemas Operativos 50


Operativo

25
Archivo Java .class en diferentes
plataformas

Programa.Class

Plataforma Plataforma Plataforma Plataforma


Java en Java en Java en de hardware
Linux Windows MacOS Chip Java

Estructuras del Sistema Sistemas Operativos 51


Operativo

JDE (Ambiente de desarrollo Java)


Prog1.java Prog2.java
Ambiente de
Compilador
de Java compilación

Prog1.class Prog2.class

Código máquina viaja entre


el sistema local y la red

Clase API de
líder Java Ambiente de
Archivos ejecución
Intérprete .class (Plataforma Java)
de Java

Sistema anfitrión

Estructuras del Sistema Sistemas Operativos 52


Operativo

26
Metas del diseño del sistema

• Metas del usuario


– El sistema operativo debe ser conveniente de utilizar
– Fácil de aprender
– Costeable
– Seguro
– Rápido

Estructuras del Sistema Sistemas Operativos 53


Operativo

Metas del diseño del sistema

• Metas del del sistema


– El sistema operativo debe ser fácil de diseñar
– Fácil de implementar
– Fácil de mantener
– Flexible
– Costeable
– Libre de errores
– Eficiente

Estructuras del Sistema Sistemas Operativos 54


Operativo

27
Mecanismos y Políticas

• Los mecanismos determinan como hacer algo


• Las políticas deciden que debe hacerse
• La separación de mecanismos y políticas es un principio
muy importante
• Permite máxima flexibilidad sobre decisiones para
cambiar políticas

Estructuras del Sistema Sistemas Operativos 55


Operativo

Implementación del Sistema

• Tradicionalmente se desarrollaba en lenguaje


ensamblador
• Actualmente pueden desarrollarse desde lenguajes de
alto nivel
• Códigos desarrollados en lenguajes de alto nivel
– Pueden escribirse más rápido
– Son más compactos
– Más fáciles de entender y depurar
• Un sistema operativo es más fácil de portar si está
desarrollado en un lenguaje de alto nivel
– De un hardware a otro hardware
Estructuras del Sistema Sistemas Operativos 56
Operativo

28
Portabilidad

Programa
Hola.c

Compilador C para Compilador C para


Linux en arquitectura Solares en
Intel 32 bits arquitectura SUN

Hola en lenguaje Hola en lenguaje


máquina ejecutable máquina ejecutable
en la plataforma en la plataforma
Linux / Intel 32 bits Solaris / SUN

Estructuras del Sistema Sistemas Operativos 57


Operativo

Generación del Sistema (SYSGEN)

• Los sistemas operativos están diseñados para correr en


cualquiera de una clase de computadoras
– Ejemplo: Clase=Intel 32 bits
– El sistema debe estar configurado para cada computadora
en específico
• El programa SYSGEN obtiene información de acuerdo a
la configuración específica del hardware del sistema

Estructuras del Sistema Sistemas Operativos 58


Operativo

29
Generación del Sistema (SYSGEN)

• Arranque (boot)
– Iniciar una computadora cargando el kérnel
• Programa Bootstrap
– Código almacenado en ROM que puede localizar el
código de arranque del sistema operativo
– Cargarlo en memoria

Estructuras del Sistema Sistemas Operativos 59


Operativo

30