3988_C1_Introduccion..

Anuncio
Sistemas Operativos
1 Introducción
Prof. Javier Cañas R.
Nota
•
El texto guía es: Operating System Concepts, Eight Edition,
Avi Silberschatz, Peter Baer Galvin, Greg Gagne
•
Estas PPT están basadas en las PPT originales que el autor
del texto guía mantiene en: http://www.os-book.com/
Copyright Note
The slides below are copyright Silberschatz, Galvin and Gagne, 2008. The slides are authorized for personal use, and for
use in conjunction with a course for which Operating System Concepts is the prescribed text. Instructors are free to modify
the slides to their taste, as long as the modified slides acknowledge the source and the fact that they have been modified.
Paper copies of the slides may be sold strictly at the price of reproduction, to students of courses where the book is the
prescribed text. Any use that differs from the above, and any for profit sale of the slides (in any form) requires the consent
of the copyright owners; contact Avi Silberschatz ([email protected]) to obtain the copyright owners consent.
Temario
1. ¿Qué hacen los Sistemas Operativos?
2. Organización de un Sistema Computacional
3. Arquitectura de un Sistema Computacional
4. Estructura de un Sistema Operativo
5. Operaciones de un Sistema Operativo
6. Gestión de Procesos
... Temario
7. Gestión de Memoria
8. Gestión de Almacenamiento
9. Protección y Seguridad
10. Sistemas Operativos de Código Abierto
Objetivos
• Un “paseo” por los principales
componentes de un Sistema Operativo.
• Cubrir aspectos relevantes de Sistemas
Comutacionales.
1 ¿Qué es un Sistema
Operativo (SO)?
• Un programa que actúa como
intermediario entre el usuario y el
hardware.
• Objetivos de un SO:
-
Ejecutar programas del usuario y solucionar
problemas que puedan ocurrir.
-
Hacer que un sistema computacional sea
conveniente de utilizar.
... ¿Qué es un Sistema
Operativo (SO)?
• Objetivos de un SO:
-
Usar el Hardware computacional de una manera
eficiente.
• Una métafora: el director de una orquesta:
Estructura de un
Sistema Computacional
• Un sistema computacional está formado
por cuatro componentes:
•
Hardware: proporciona los recursos básicos:
CPU, memoria, dispositivos de I/O.
•
Sistema Operativo: Controla y coordina el
uso de HW entre varias aplicaciones y usuarios
... Estructura de un
Sistema Computacional
•
Aplicaciones: Define la forma a través de la
cual los recursos del sistema son utilizados para
resolver los problemas de los usuarios. Ejemplos:
procesadores de texto, compiladores, browser,
base de datos, juegos etc...
•
Usuarios: Se consideran usuarios a personas,
máquinas y otros computadores.
Los cuatro
componentes
¿Qué es un SO?
• Es un asignador de recursos:
•
•
Gestiona todos los recursos.
Toma decisiones entre requerimientos conflictivos
para su utilización eficiente y justa
• Es un programa de control:
•
Controla la ejecución de programas para evitar
errores y usos impropios.
¿Qué es un SO?
• No existe una definición universalmente
consensuada.
• Una buena aproximación: “todo aquello que
un vendedor entrega cuando se compra un
OS”. El problema es que varía mucho....
• El único programa que corre todo el
tiempo es el kernel. Todo lo demás son
programas de sistema o aplicaciones.
Encendido de un
computador
• El programa bootstrap se carga
cuando el computador se enciende o
reinicia:
-
Se almacena en ROM o EPROM (firmware)
Inicializa todos los aspectos del sistema
Carga el kernel del SO e inicia la ejecución.
2 Organización de un
Sistema Computacional
• La operación de un SC requiere:
-
Una más CPU y controladores con acceso a la
memoria a través de un bus común.
-
Ejecución concurrente de CPU y
controladores compitan por ciclos de memoria
... Organización de un
Sistema Computacional
Operación de un SC
• Dispositivos de I/O y CPU pueden
funcionar concurrentemente.
• Cada controlador tiene a su cargo tipos
distintos de dispositivos.
• Cada controlador tiene un buffer local.
• La CPU mueve datos entre memoria y los
buffers locales.
Operación de un SC
• El I/O se realiza sólo entre el dispositivo y
el buffer local del controlador.
• El contolador del dispositivo informa a la
CPU que la transferencia a finalizado a
través de una interrupción.
Interrupciones
• Una interrupción es una llamada no
planificada a una subrutina.
• Ante una interrupción, el control se
transfiere a una rutina de servicio,
normalmente a través de el vector de
interrupción.
• El vector de interrupción contiene la
dirección de la rutina de servicio.
... Interrupciones
• Interrupciones vectorizadas:
interrupt
vector
Memory
Direcciones de todas las
subrutinas de servicio
• La arquitectura de manejo de la interrupción
salva la dirección de la próxima instrucción.
• Al procesar una interrupción se desactivan
otras interrupciones para prevenir pérdidas
de interrupción.
... Interrupciones
•
Se denomina trap a una interrupción generada
por software. Esto puede ser por un error o por
requerimiento.
•
Un SO es conducido por interrupciones
(interrupt driven). Esto significa que cualquiera
de sus acciones tiene como causa una
interrupción.
•
Ante una interrupción el SO preserva el estado
de la CPU almacenando sus registros en un Stack.
Diagrama de tiempo de
interrupciones
Estructura del I/O
• El I/O puede ser sincrónico o asincrónico
• I/O Sincrónico: Una vez que se activa el
I/O, el control sólo retorna al usuario
cuando el I/O termina:
•
•
•
Una instrucción wait deja la CPU ociosa hasta la
próxima interrupción.
Otra opción es un loop de espera.
Sólo un I/O por vez. No es posible concurrencia.
... Estructura del I/O
• I/O Asincrónico: Una vez que se activa el
I/O, el control retorna al usuario sin esperar
termino de I/O
•
•
El I/O se inicia mediante una llamada al
sistema.
•
El SO indexa la Tabla de estado de dispositivos
para saber su estado y modificarla.
Una Tabla de Estados de Dispositivos
contiene una entrada para cada dispositivo de I/
O indicando tipo, dirección y estado.
Estructura del Acceso
Directo a memoria (DMA)
• El DMA permite que dispositivos de I/O
rápidos (ej. discos) puedan transferir
información a tasas cercanas a la velocidad
de memoria.
• Los controladores transfieren bloques de
datos entre los buffer de almacenamiento
en forma directa a la memoria, sin
intervención de la CPU.
... DMA
• Sólo se genera una interrupción por bloque
en vez de una interrupción por Byte
cuando no hay DMA.
Estructura del
Almacenamiento
• Memoria principal: arreglo de Bytes.
medio de almacenamiento de gran
capacidad que la CPU puede accesar
directamente.
• Almacenamiento secundario:
extensión de la memoria principal que
proporciona una gran capacidad de
memoria no volátil.
... Estructura del
Almacenamiento
• Discos magnéticos: discos rígidos de
metal o cerámica cubierto de material
magnético.
-
La superficie se divide en tracks. cada track se
subdivide en sectores.
-
El controlador determina la interacción lógica
entre el dispositivo y el computador.
Disco magnético
Jerarquía de
almacenamiento
• Los sistemas de almacenamiento están
organizados jerárquicamente. La jerarquía
está determinada por: velocidad de
transferencia, costo y volatilidad.
• Caching: consiste copiar información de
dispositivos lentos a dispositivos rápidos. Por
ejemplo la memoria principal se puede ver
como una caché para almacenamiento
secundario.
Jerarquía
Cachés
• Caching es un importante principio. Se
implementa en varios niveles.
• La información más utilizada se copia desde
memorias lentas a rápidas temporalmente.
• La caché es la memoria rápida. Se verifica
para determinar si contiene la información
correcta. Si la tiene, se usa directamente. Si
no, se copian datos y después se usa.
... Cachés
• El tamaño de la caché es menor que el
tamaño de la memoria más lenta.
• Los desafíos que impone esta técnica a los
SO son:
-
La gestión de las cachés es un importante
desafío de diseño.
-
Determinación del tamaño y políticas de
reemplazo.
3 Arquitectura de
Sistemas computacionales
• Hay dos grandes posibilidades:
• Procesador simple de propósito general
(desde PDA hasta mainframes)
• Multiprocesadores. Estos sistemas, día a
día crecen en importancia
Multiprocesadores
• Se conocen también como: sistemas
paralelos, sistemas fuertemente acoplados.
• Las ventajas son:
-
Aumento de productividad
Economías de escala
Confiabilidad, degradación graciosa o tolerancia a
fallas
... Multiprocesadores
• Hay dos tipos:
• Multiprocesamiento asimétrico
(master-slave)
• Multiprocesamiento simétrico
(todos los procesadores son pares)
Arquitectura de
Procesamiento Simétrico
Diseño Dual Core
Interacciones en un
computador moderno
Sistemas en Cluster
• Equivalente a un multiprocesadior, pero
compuesto por múltiples sistemas
trabajando coordinadamente.
• Usualmente comparten almacenamiento a
través de un SAN (storage-area network)
• Permiten alta disponibilidad, es decir,
servicios que sobreviven a las fallas.
... Sistemas en Cluster
• Cluster asimétricos: tienen una
máquina en un modo “hot-standby”
• Clusters simétricos: contienen
múltiples nodos corriendo aplicaciones y
monitoreando a los demás.
• Algunos Cluster son de HPC: las
aplicaciones son escritas para utilizar
paralelismo.
4 Estructura de un SO
• Dos conceptos relevantes de SO son:
• Multiprogramación: para lograr
eficiencia.
• Tiempo compartido (Multitarea):
extensión lógica de la multiprogramación
donde la CPU conmuta entre distintas
tareas permitiendo la computación
interactiva.
Multiprogramación
•
Se basa en que un usuario simple no puede ocupar
simultáneamente la CPU y dispositivos de I/O.
•
Se organizan los jobs (código y datos) para que la
CPU siempre tenga uno que ejecutar.
•
Un subconjunto de los jobs reside en memoria
principal.
•
Se selecciona un job para ejecutarse mediante la
itineración de jobs (job scheduling).
•
Cuando un job espera por I/O, el SO conmuta a otro.
Timesharing (multitarea)
•
•
El tiempo de respuesta debe ser menor a 1 seg.
•
De los jobs listos para ejecutar, el itinerador de
CPU selecciona uno.
•
Si un proceso no cabe en la memoria la técnica de
swapping mueve jobs hacia y desde la memoria.
•
La técnica de memoria virtual permite la ejecución
de de procesos que no tienen suficiente memoria.
Cada usuario tiene al menos un programa ejecutándose
en memoria (proceso)
Layout de memoria en
multiprogramación
5 Operaciones de un
SO
• Las interrupciones son activadas por el
HW.
• Por errores en el SW o por
requerimientos se activan excepciones o
traps (división por cero, llamadas al
sistema, loops infinitos, violaciones de
memoria, etc...)
Prevención de loops
infinitos
• Un timer previene de loops infinitos
programando una interrupción en un
tiempo determinado a través de un
contador.
• El SO decrementa el contador.
• Al llegar a cero se genera una interrupción.
Modo Dual de
operación
•
•
•
El modo dual protege al SO y sus componentes.
Modos: Usuario y Kernel
Apoyo de HW: bit de modo
-
Permite distinguir los dos modos, es decir cuando se
ejecuta código de usuario o código del kernel.
-
Instrucciones previlegiadas sólo en modo kernel.
Una llamada al sistema permite pasar a modo kernel. Al
retorno se vuelve a modo usuario.
Transición de modo
usuario a modo kernel
6 Gestión de Procesos
• Un proceso es un programa en ejecución.
Corresponde a una unidad de trabajo
dentro del sistema.
• Proceso: entidad activa. Programa: entidad
pasiva.
• Un proceso necesita recursos para
completar su tarea: CPU, memoria,
archivos, I/O y datos de inicialización.
... Gestión de Procesos
• Al término de un proceso se devuelven los
recursos reutilizables.
• En un proceso de un Thread, el registro PC
(Program Counter) determina la siguiente
instrucción a ejecutar. Las instrucciones se
ejecutan en forma secuancial hasta el
termino.
... Gestión de Procesos
• En procesos Multi-Thread, cada thread
tiene su propio PC.
• En forma típica en un sistema hay múltiples
procesos corriendo en una o varias CPU:
procesos de usuarios y del so.
• La concurrencia se logra por multiplexión
de la CPU entre los distintos procesos/
threads
Actividades en la
Gestión de Procesos
•
Creación y eliminación de procesos de usuarios y
de sistema.
•
•
•
•
Suspención y reanudación de procesos.
Proporcionar mecanismos para susincronización.
Proporcionar mecanismos para su comunicación.
Proporcinar mecanismos para el manejo de
deadlocks.
7 Gestión de Memoria
• Todo debe estar en memoria antes de la
ejecución: datos e instrucciones.
• Gestión de memoria: qué y cuando deben
estar en memoria.
• Una buena gestión de memoria optimiza la
utilización de la CPU y los tiempos de
respuesta a los usuarios.
Actividades en la
Gestión de memoria
• Registro de la memoria utilizada
actualmente y por quien.
• Decidir que procesos y datos deben
moverse hacia y desde la memoria.
• Asignar y liberar memoria según se
necesite.
8 Gestión del
Almacenamiento
• Un SO proporciona una vista lógica y
uniforme de la información almacenada.
-
Se abstraen propiedades físicas y se presentan
unidades lógicas: archivos.
-
Cada medio se controla por un dispositivo.
Cada dispositivos tiene distintas propiedades
físicas: velocidades, capacidades, métodos de
acceso (secuencial o directo)
... Gestión del
Almacenamiento
• Los archivos se organizan en directorios.
• El control de acceso determina quien y que
puede accesar.
• Las actividades de Gestión incluyen:
-
Creación y eliminación de archivos y directorios
Primitivas para el manejo de archivos y directorios
Mapeo de archivos en almacenamiento secundario
Respaldos en en medios estables.
Gestión del
Almacenamiento Masivo
•
Usualmente se almacenan en discos datos que
no entran en memoria o datos que deben
permanecer por largos períodos de tiempo.
•
La Gestión del Almacenamiento tiene impacto
en el desempeño global de un sistema.
•
Actividades: Gestión de espacio libre,
asignación itineración de disco
... Gestión del
Almacenamiento Masivo
•
El almacenamiento masivo no necesariamente
es rápido ya que incluye discos ópticos y
unidades de cinta. Aún así, debe ser gestionado.
•
Varía entre WORM (write-once, read-manytimes) y RW (read-write).
Desempeño de varios
niveles de almacenamiento
• Los movimientos entre los distintos niveles
de la jerarquía de almacenamiento puede
ser explícito o implícito.
Ejemplo: mover un entero
entre el disco y memoria
•
•
Ejemplo: int A; A=A+1 /*A is located in file B */
Los sistemas Multitarea deben ser cuidadosos
en utilizar los valores recientes en forma
independiente de su almacenamiento en la
jerarquía de memoria.
... Ejemplo
• La coherencia de cachés por hardware es
lo más conveniente. De esta forma todas
las CPU tienen en sus cachés los valores
más recientes.
• En sistemas distribuidos es aún más
complejo. Deben existir múltiples copias de
un dato.
Subsistema de I/O
• Un propósito de los SO es ocultar las
particularidades de dispositivos de I/O.
• El subsitema de I/O es responsable de:
-
Gestionar la memoria del I/O es decir, buffers,
cachés, spooling (traslape de la salida de un job
con la entrada de otro)
-
Proporcionar una interfaz general.
Disponer de driver para dispositivos específicos.
9 Protección y
Seguridad
• Protección: cualquier mecanismo para el
control del acceso de procesos usuarios a
recursos definidos por el SO.
• Seguridad: defensa del sistema ante
ataques externos e internos: denegación de
servicios, virus, worms, suplantación de
identidad etc..
•
... Protección y
Seguridad
El SO primero distingue entre distintos
usuarios para determinar que puede hacer
cada uno:
•
•
•
•
Identidad (uid): nombres, números,..
Este uid se asocia a archivos y procesos para
facilitar el control de acceso.
El identificador de grupo (gid) reconoce grupos de
usuarios.
Escalamiento de privilegios: permiten a los usuarios
obtener mayores derechos.
10 SO de código
abierto
•
Actualmente es posible obtener un so en
código fuente en vez de código binario cerrado.
•
Este movimiento comenzó por la Free Software
Foundation (FSF), que tiene una licencia GNU
Public License (GPL)
•
Ejemplos incluyen GNU/Linux, BSD UNIX
(incluido el núcleo de MAC OS X) y SUN
Solaris
Sistemas Operativos
1 Introducción
Prof. Javier Cañas R.
Descargar