Professional Documents
Culture Documents
1 /58
Los Sistemas Operativos son programas para
la administración eficiente de los recursos del
computador.
2 /58
Tabla de Contenido
i. Objetivos. 4
• Problemas que Resuelve un SO 5
1. Introducción 9
2. Estructura del SO 25
1. Componentes 27
2. Llamadas al Sistema 39
3. Estructura de un SO 42
4. Máquinas Virtuales 49
3. Diseño e Implementación 52
4. Bibliografía 57
3 /58
Objetivos de la Sesión
• Definir las funciones y objetivos de un SO
4 /58
Problemas que Resuelve un SO
5 /58
Problemas que resuelve un S.O.
• Un programa en ejecución es un conjunto de procesos
en ejecución.
2 4 5 6
1
3
6 /58
Problemas que resuelve un S.O.
• Los procesos requieren de recursos escasos para ser ejecutados,
cada uno de los siguiente procesos se requiere la cantidad indicada
de recursos. Ambos programas se ejecutan en paralelo. ¿en qué
orden se debe de asignar los recursos a los proceso?. Considere
que mientras un programa no termina, los procesos asociados no
pueden soltar los recursos. Considere que una propiedad deseable
de un SO es la multiprogramación.
memoria P1 P2 P3 P4
Prog1 init 1 3
Prog2 init 2 4 5
7 /58
Problemas que resuelve un S.O.
• El siguiente problema se denomina “el abrazo mortal” y
se presenta cuando el µP no puede asignar un recurso
compartido a un conjunto de procesos pendientes de
terminar. Los recursos que podría liberar uno de los
procesos cuando termine seria suficiente como para
continuar los otros procesos y por lo tanto terminar.
4
2 2
8 /58
INTRODUCCIÓN
9 /58
Sistema Operativo
• Un Sistema Operativo es un programa que actúa como
un intermediario entre el computador y el usuario.
• El Sistema Operativo:
– Es un administrador de los recursos del computador.
– Controla la ejecución de los programas de los usuarios.
– Controla por ejemplo el acceso concurrente a los recursos.
10 /58
Sistema de Computo
11 /58
Sistema de Computo
El usuario.
• Puede ser una persona, una maquina u otro computador
que quiere resolver un problema.
Los Programas de Aplicación.
• Define la via por la cual los recursos de hardware
pueden ser usados para resolver problemas. Bases de
Datos, compiladores, editores, etc.
El Sistema Operativo.
• Controla y coordina el uso de hardware entre varios
programas de aplicación.
El Hardware.
• Provee los recursos de computación básicos. CPU,
Memoria, E/S.
12 /58
Visión abstracta del sistema
Sistema Operativo
Hardware del
computador
13 /58
Definiciones de Sistema Operativo
• Administrador de recursos:
– Gestión y asignación de recursos del computador
• Programa de control:
– Controla la ejecución de los programas de usuario y
las operaciones de los dispositivos de E/S
• Núcleo:
– El único programa que ejecuta siempre
(por debajo y anterior a cualquier otro programa)
• Máquina virtual:
– Extiende y enmascara la funcionalidad del hardware
14 /58
Objetivos del Sistema Operativo
• Objetivos del sistema operativo:
– Facilitar el uso al usuario (interfaz)
– Facilitar la programación al programador (máquina virtual extendida)
– Ejecutar programas eficientemente (gestor de recursos)
15 /58
Servicios del SO como interfaz U/PC
1. Creación de programas (editores, depuradores)
2. Ejecución de programas (Carga las Instruciones en MP,
inicializa los dispositivos)
3. Acceso a dispositivos de E/S (cada uno requiere un
conjunto peculiar de Instrucciones)
4. Acceso controlado a los archivos (formato de los archivos
y del medio de almacenamiento)
5. Acceso al sistema (En sistemas compartidos)
6. Detección y respuesta de errores (Internos y externos al
hardware)
7. Contabilidad, estadísticas (de uso y rendimiento)
16 /58
Máquina Extendida/Controlador
Los SO llevan a cabo dos funciones que en esencia no
tienen relación.
17 /58
Modo dual de operación
• Compartir recursos
– El SO asegura que un programa no afectará a otro
• Solución:
– Mecanismo de protección hardware (bit) que permite, al menos,
2 modos de ejecución: usuario (1) y sistema (0).
• Instrucciones privilegiadas sólo posibles en modo
sistema
• Cuando hay interrupción, trap o excepción, el hardware
cambia a modo sistema
18 /58
Modo dual de operación
interrupción/fallo
monitor usuario
19 /58
Protección por hardware
• E/S:
– siempre instrucciones privilegiadas, modo sistema
• Memoria:
– registros base y límite por programa
– accesos fuera originan un fallo de protección
• UCP:
– temporizador que interrumpe periódicamente para
dar control al SO y que decida
20 /58
Protección por hardware
0
monitor
256000 256000
registro base
tarea 1
300040 300040
registro límite
tarea 2
420940
21 /58
Arquitectura general del sistema
Si las instrucciones de E/S son privilegiadas,
¿cómo ejecuta el usuario la E/S?
• Llamada al sistema:
– Método estándar de acceso a los servicios del SO
– El programa genera un trap (interrupción sw)
– Se salta a ejecutar la RTI (servicio del SO)
y a la vez se cambia a modo sistema
– El SO verifica los parámetros, ejecuta la petición y
devuelve control en la instrucción siguiente
• El SO oculta las llamadas al sistema en bibliotecas
que se instalan con el SO
22 /58
ESTRUCTURA.
23 /58
Estructura del Sistema Operativo
1. Componentes del sistema
2. Llamadas al sistema
3. Estructura de un sistema operativo
4. Máquinas virtuales
24 /58
1. COMPONENTES DEL SO
25 /58
Componentes del SO
• Básicos:
1. Gestor de procesos
2. Gestor de memoria
3. Gestor de E/S
4. Gestor del almacenamiento secundario
• Servidores:
5. Servidor de ficheros
6. Servidor de protección y seguridad
7. Servidor de comunicaciones por red
• Utilidades:
8. Intérprete de mandatos
9. Programas de sistema
26 /58
1. Gestor de procesos
• Un proceso es un programa en ejecución
• Es la unidad que consume recursos:
– UCP, memoria, ficheros, etc.
• El SO gestionar lo siguiente de los procesos:
– Creación y destrucción
– Suspensión y reanudación
– Mecanismos de comunicación y sincronización
– Asignación de los recursos al proceso
27 /58
2. Gestor de memoria
• Memoria:
– Vector enorme de palabras o bytes (direcciones)
– Compartida por UCP y dispositivos E/S
– Volátil: pierde su contenido sin alimentación
• El SO gestiona lo siguiente de la memoria:
– Qué partes están en uso y quién las está usando
– Qué procesos se deben cargar, y dónde
– Asigna y libera espacio cuando se requiere
28 /58
3. Gestor de entrada/salida
• El gestor de E/S está formado por:
– Almacenamiento intermedio en memoria (caché)
– Manejadores genéricos, uno por cada clase de
dispositivo
– Gestión individualizada por dispositivo existente
29 /58
4. Gestión del almacenamiento
secundario
• Dispositivos rápidos de E/S (discos)
– Vector enorme de “bloques”
– Almacenamiento no volátil
– Usado como respaldo de memoria principal
• El SO gestiona lo siguiente del almacenamiento
secundario:
– Asignación y liberación de espacio
– Planificación de accesos a los discos
30 /58
5. Servidor de ficheros y directorios
• Fichero:
– Conjunto de información lógicamente relacionada
• Directorio:
– Fichero que contiene asociaciones entre nombres
de fichero e identificadores internos del SO
• El SO gestiona lo siguiente de los ficheros:
– Creación y borrado de ficheros y directorios
– Primitivas para manipularlos
– Proyectar los ficheros en memoria
– Respaldar los ficheros en dispositivos no volátiles
31 /58
6. Servidor de protección y seguridad I
• Protección:
– Controlar el acceso a los recursos por parte de los
procesos (de los usuarios)
• El servidor de protección debe:
– Distinguir entre uso autorizado y no autorizado
– Especificar los controles de acceso a llevar a cabo
– Proporcionar métodos de control de acceso
32 /58
6. Servidor de protección y seguridad II
• Seguridad:
– Proteger al sistema de un uso indebido
(fraudulento)
• El servidor de seguridad debe:
– Autenticar a los usuarios
– Evitar amenazas al sistema
(gusanos, virus, piratas, fuego, etc.)
– Evitar intercepción de comunicaciones
(cifrado, canales seguros, etc.)
33 /58
7. Servidor de comunicaciones
• Sistema en red o distribuido:
– Conjunto de procesadores que no comparten
memoria
– Conectados mediante una red de comunicación
• El servidor de comunicaciones debe:
– Proporcionar mecanismos para comunicación local y
remota entre procesos
– Para distintos tipos de redes
(Ethernet, ATM, telefónica, etc.)
• Responsabilidad del SO:
– Resolución de nombres, enrutamiento, conexiones y
control de flujo
34 /58
8. Intérprete de mandatos
• Programa cuya función es obtener los mandatos del
usuario y lanzar su ejecución
• Hay dos tipos básicos:
– Intérprete de mandatos en línea en modo texto, como
el shell de UNIX y LINUX
– Interfaz gráfico de usuario,
como el de Windows y X-Windows
• Puede haber múltiples intérpretes de mandatos sobre el
mismo SO
– La visión del mismo SO cambia según el usuario
(POSIX sobre Windows NT o Win32 sobre LINUX)
35 /58
9. Programas de sistema
• Proporcionan un entorno adecuado para el desarrollo y
ejecución de programas
• Son la visión del SO que tienen muchos usuarios, y no
la de las llamadas al sistema
• Categorías:
– Manipulación de ficheros: copia, mover, ...
– Información de estado: monitores, ...
– Programación: compiladores, depuradores, …
– Carga y ejecución: cargador, …
– Comunicaciones: telnet, ftp, …
– Aplicaciones: servidores BD, navegadores, ...
36 /58
2. LLAMADAS AL SISTEMA
37 /58
Llamadas al sistema
• Interfaz entre aplicaciones y SO
– Con un trap o interrupción sw
– Acceso como función en los lenguajes (C, …)
• Paso de parámetros:
– En registros
– En memoria, se pasa la dirección en un registro
– En la pila y dejar que el SO los extraiga
• El SO se define por sus llamadas al sistema:
– Estándar POSIX en UNIX y LINUX
– Win32 en Windows NT
38 /58
Paso de llamadas al sistema
Programa de Programa de
usuario 1 usuario n Se ejecuta
... en modo
llamada al NO privilegiado
sistema
Control vuelve
al programa
Tabla de usuario 1
de RTI
rutina de
Se ejecuta
servicio
en modo
trap PRIVILEGIADO
Procesamiento
de la interrupción
39 /58
3. ESTRUCTURA DE UN SO
40 /58
Sistemas monolíticos I
• Núcleo:
– Todo entre las llamadas al sistema y el hardware
– No dividido en módulos
– Interfaces y niveles de funcionalidad no separados
• Ej: Monitor o ejecutivo (MS-DOS)
– Escritos para funcionalidad específica y gestionar
hardware reducido
– Monoproceso
41 /58
Sistemas monolíticos II
Programas de usuario
Intérprete Programas
de mandatos de sistema
Llamadas al sistema
POSIX Win32
Núcleo
Servidores
Ficheros Memoria Protección Comunicaciones
Manejadores
Teclado Ratón Disco
42 /58
Sistemas modulares I
• Núcleo:
– Dividido en módulos con funcionalidad e interfaces
claramente definidos
– Modular y estructurado
– Se pueden sustituir componentes por otros con el
mismo interfaz
(manejadores, sistemas de ficheros, ...)
– Un único trap, el proceso existe en dos modos
• Ej: UNIX, LINUX
• Muchas funcionalidades
• Multiproceso y multiusuario
43 /58
Sistemas modulares II
Programas de usuario
Intérprete Programas
de mandatos de sistema
Llamadas al sistema
POSIX Win32
Núcleo
Servidores
Ficheros Memoria Protección Comunicaciones
Manejadores
Teclado Ratón Disco
44 /58
Sistemas por capas
• Núcleo:
– Dividido en múltiples niveles, capas de una cebolla
– El más alto la interfaz de llamadas
– Cada nivel usa únicamente servicios del inferior y da
servicio al superior
– Comunicación entre capas vía traps
• Ej: THE, Multics
• Problema:
– Una llamada puede necesitar varios niveles de traps
45 /58
Sistemas con micronúcleo
• Núcleo:
– Reducido a las funcionalidades mínimas imprescindibles
– Se sacan fuera del núcleo los demás servicios
– Comunicación vía paso de mensajes
• Servidores:
– Hilos de ejecución independiente
– Los más altos ofrecen la interfaz de llamadas
– Los más bajos gestionan el hardware
• Problema:
– Una llamada puede necesitar muchos mensajes
• Ventaja:
– Piezas separables, paso a SO Distribuido
• Ej: MINIX, Mach (Windows-NT)
46 /58
4. MAQUINAS VIRTUALES
47 /58
Máquinas virtuales I
• Una MV crea una copia idéntica del hardware
– Procesador con su propia memoria y E/S
– Sobre una MV se puede ejecutar cualquier SO
– Sobre el mismo computador varios SSOO a la vez
• El Monitor de MVs ejecuta sobre el HW real ¿Cómo se hace?
– Planificación UCP para MV ? multiproceso
– Spooling y sistema ficheros ? multiplexación E/S
– MV del operador ? control del sistema
• Ventajas:
– Protección sencilla, muy modular, bueno para investigación y
desarrollo (SO distribuido)
• Inconvenientes:
– Difícil compartir recursos
– Difícil implementar duplicados exactos del HW
• Usado para emular SSOO sobre otros
• Ej. VM-370, MS-DOS en Windows, VMware
48 /58
Máquinas virtuales II
370 virtual
Llamadas
trap al sistema
Instrucciones
de E/S trap CMS MS-DOS OS/2
Hardware desnudo
49 /58
DISEÑO E
IMPLEMENTACION.
50 /58
Aspectos de Diseño e Implem.
• Objetivos de diseño
• Implementación
• Arranque del sistema
51 /58
Objetivos de diseño de un SO
• Para el usuario:
– Fácil de usar, fiable, seguro, potente y sencillo
• Internamente:
– Fácil de implementar y mantener
– Flexible, fiable, eficiente y estar libre de errores
• Diferenciar claramente entre:
– Mecanismos: qué cosas se pueden hacer
– Políticas: criterio para decidir qué hacer
– Separarlos es importante para poder afinar bien
los sistemas
52 /58
Implementación del sistema
• Tradicionalmente: ensamblador
• Actualmente: C y ensamblador
• Uso lenguaje alto nivel:
– Desarrollo más rápido
– Más fácil de comprender y depurar
– Más fácil de transportar de un hardware a otro
(Ej. UNIX, Linux, Windows-NT)
• Base:
– HAL (Hardware Abstraction Layer)
– Oculta los detalles específicos de la arquitectura
– Proporciona una interfaz de alto nivel
53 /58
Arranque del sistema
1. Cargador ROM
– Carga y ejecuta el MRB
2. Master Record Boot (sector de arranque)
– Carga y ejecuta el ejecutable del SO
3. Ejecutable del SO
– Inicializa el núcleo
– Arranca e inicializa los manejadores de los dispositivos existentes
– Crea el primer proceso (PID==1) init.
4. Proceso init
– Ejecuta scripts del nivel (rc.#)
– Se lanzan los servidores
– Sigue el guión inittab
– Crea un proceso login por terminal
5. Proceso login
– Autentifica el acceso de usuarios al sistema
– Crea un shell (intérprete de mandatos)
54 /58
BIBLIOGRAFIA
1. Sistemas Operativos, 2da Edición (1997) William
Stallings, Prentice Hall España
2. Sistemas Operativos, conceptos fundamentales , 3ra.
Edición (1994) A. Silberschatz, J. Peterson, P. Galvin,
Addison-Wesley Publishing Company USA
3. Sistemas Operativos, 2da Edición (1993), H. M. Deitel,
Addison-Wesley Publishing Company USA
55 /58
PREGUNTAS
56 /58