sistemas operativosso/data/apuntes/so-2017-mod 01.pdfestructuras de sistemas operativos. 4....
TRANSCRIPT
1
Sistemas Operativos
Departamento de Ciencias e Ingeniería de la Computación
(16-5949)
Mg. Karina M. [email protected]
Sistemas Operativos – IntroducciónKMC © 2017
Objetivos del Curso de Sistemas Operativos
El curso desarrolla los conocimientos de Sistemas Operativos desdeuna visión conceptual y estructural. Se presentan todos losmecanismos de interacción entre sus partes sin particularizar enalgún sistema operativo en especial.
Se discuten tópicos como: servicios de sistemas operativos,sistemas de archivos, planificación de CPU, manejo de memoriamemoria virtual, planificación de discos, interbloqueos, procesos yprogramación concurrente, protección, sistemas distribuidos, etc.
Se presentan algunos ejemplos de estos conceptos en las familiasUNIX, Windows, Solaris, etc a lo largo del desarrollo de los módulos,mostrando los matices de implementación entre estos sistemas.
El curso requiere conocimientos de arquitectura y organización decomputadores y estructura de datos.
2
Sistemas Operativos – IntroducciónKMC © 2017
Programa Sintético
1. Introducción.
2. Estructuras de Sistemas de Cómputo.
3. Estructuras de Sistemas Operativos.
4. Procesos.
5. Planificación de Procesos.
6. Sincronización de Procesos.
7. Interbloqueos.
8. Manejo de Memoria.
9. Memoria Virtual.
10. Sistema de Archivos.
11. Seguridad y Protección.
Sistemas Operativos – IntroducciónKMC © 2017
Bibliografía de Sistemas Operativos
Silberschatz, A., Gagne G., y Galvin, P.B.; "Operating System Concepts",Addison-Wesley, 7ma Edición. 2009, 9na. Edición 2012.Stallings, W. "Operating Systems: Internals and Design Principles",Prentice Hall, 6ta Edición 2008, 7ma Edición 2011, 8va. Edición 2014.Tanenbaum, A.; "Modern Operating Systems", Addison-Wesley, 1992.(1ra Parte). Prentice Hall, 2001. 3ra. Edition 2008, 4ta. Edición 2014.Tanenbaum, A., Woodhull, A. S.; "Operating Systemas: Design andImplementation", Prentice Hall, 1ra Edición, 1987 (o su versión enespañol); Prentice Hall, 3ra Edición, 2006.
Adicional – Libros específicos de los Sistemas Operativos. (Internals deUnix, Windows)
3
Sistemas Operativos
Introducción
Sistemas Operativos – IntroducciónKMC © 2017
Introducción
¿Qué hace un Sistema Operativo?
Organización del Sistema de Cómputo
Arquitectura del Sistema de Cómputo
Estructura del Sistema Operativo
Operaciones del Sistema Operativo
Administración de Procesos
Administración de Memoria
Administración del Almacenamiento
Protección y Seguridad
Sistemas Distribuidos
Sistemas de Propósito Especial
Ambientes de Computación
4
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - ¿Qué es un sistema operativo?
Un programa que actúa como un intermediario entreun usuario de una computadora y el hardware de lacomputadora.
Objetivos de Sistema Operativo: Ejecutar los programas de usuario y permitir la solución
de problemas del usuario mas fácilmente.
Conveniencia de uso del sistema de la computadora.
Uso del hardware de la computadora de maneraeficiente.
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Componentes del Sistema de Cómputo
Hardware
Usuario
3
Usuario
1
Usuario
21.- Hardware
2.- Sistema Operativo
3.- Programas de Aplicación
4.- Usuarios
Sistema Operativo
Programas de Sistema y de Aplicación
Compilador
Hardware
Ensamblador Editor Sistema de Base de Datos
Usuario
n
5
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Definiciones de SistemasOperativos
Alocador de recursosadministra todos los recursos.
decide sobre requerimientos conflictivos para asegurareficiencia y uso imparcial de recursos
Programa de Controlcontrola ejecución de los programas para prevenir errores
y el uso impropio de la computadora.
“El programa que ejecuta todo el tiempo en lacomputadora” es el kernel o núcleo. Todo lo demás es unprograma de sistema o un programa de aplicación.
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Puntos de vista de SO
Usuarios
Personal
Mainframes
Workstations
Móviles
Sistema
Programas de Aplicación
Sistema Operativo
Hardware
6
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Organización del Sistema de Cómputo Operación del Sistema de Cómputo
Una o más CPUs, se provee acceso a la memoria compartida pordispositivos de control conectados a un canal común.
La ejecución concurrente de CPUs y dispositivos compiten por ciclosde memoria.
La CPU mueve datos desde/hacia la memoria principal a/desde losbuffers locales.
La E/S es desde el dispositivo al
buffer local del controlador.
El controlador de dispositivo
informa a la CPU que ha
finalizado su operación por
medio de una INTERRUPCIÓN.
discos
Controlador
disco
Adaptador
gráfico
Controlador
USB
memoria
teclado impresora
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Funcionamiento de las Interrupciones Una interrupción transfiere el control a la rutina de servicio de la
misma, generalmente por medio del vector de interrupción, quecontiene las direcciones de todas las rutinas de servicio.
La arquitectura de la interrupción debe salvar la dirección de lainstrucción interrumpida.
Las interrupciones entrantes son deshabilitadas mientras otrainterrupción está siendo procesada para prevenir una pérdida deinterrupción.
Un trap es una interrupción generada por el software causada por unerror o por un requerimiento de usuario.
Un sistema operativo es manejado por las interrupciones.
7
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Manejo de Interrupciones
El sistema operativo preserva el estado de la CPUalmacenando los registros y el contador de programa.
Determina que tipo de interrupción ha occurrido:
polling
Sistema de interrupción vectoreado
Segmentos de código separados determinan que tipo deacción deberían llevarse a cabo para cada tipo deinterrupción.
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Dos Métodos de E/S
Sincrónico
proc que requiere
espera
driver de disp
manejador de int
Hardwaretransf de datos
proc que requiere
driver de disp
manejador de int
Hardwaretransf de datos
tiempo tiempo
kernel kernel
usuario usuario
Asincrónico
8
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Tabla de estado de dispositivos
disp: lect tarjetas 1status: ociosa
disp: impresora 3status: ocupada
disp: unidad disco 3status: ocupada
disp: unidad disco 1status: ociosa
disp: unidad disco 2status: ociosa
req para impdirec: 38769long: 1245
req para unidadde disco 3arch: xxxoper: lectdir:43098Long: 20000
req para unidadde disco 3arch: yyyoper: escdir: 05678Long: 500
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Estructura de Acceso Directo a Memoria (DMA)
Usado por dispositivos de E/S de alta velocidad para transmitirinformación a velocidades similares a la de la memoria.
El controlador de dispositivos transfiere bloques de datos desde elbuffer de almacenamiento directamente a la memoria principal sinla intervención de la CPU.
Solo una interrupción es generada por bloque, y no una por byte.
Disp E/SCPU Memoria
Instrucciones de E/S
9
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Estructura de almacenaje
Memoria principal– único medio de almacenaje que la CPU puedeacceder directamente.
Almacenaje Secundario – extensión de la memoria principal que proveeuna gran capacidad de almacenaje no volátil.
Discos Magnéticos –
La superficie del disco está logicamente dividida en tracks (pistas), loscuales están subdivididas en sectores.
El controlador de disco determina la interacción lógica entre el
dispositivo y la computadora.
Jerarquía de Almacenamiento
registros
cache
memoria principal
disco de estado
sólido
disco magnético
disco óptico
cinta magnética
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Estructura del Sistema Operativo
La Multiprogramación es necesaria para lograr eficiencia: Organiza las tareas (código y datos) de tal manera que la CPU
siempre tiene uno ejecutando.
Un subconjunto del total de tareas en el sistema se mantienen enmemoria.
Una tarea es selecionada y ejecutada vía unaplanificación de tareas.
Cuando tiene que esperar (p.e. E/S),
el sistema operativo conmuta a otra tarea.
Sistema Operativo
job 1
job 2
job 3
job 4
0
512 k
10
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Estructura del Sistema Operativo
El Tiempo Compartido (multitarea) es una extensión lógica en lacual la CPU conmuta tareas tan frecuentemente que los usuariospueden interactuar con cada tarea mientras está ejecutando,creando la computación interactiva. Cada usuario tiene al menos un programa ejecutando en
memoriaproceso
Si hay varias tareas listas para ejecutar al mismo tiempo
planificación de CPU.
Si un proceso no entra en memoria, el swapping lo mueve fueray hacia dentro de la memoriamoves para ejecutar.
La Memoria Virtual permite la ejecución de procesos nocompletos en la memoria.
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Operaciones del Sistema Operativo
Las interrupciones son manejadas por el hardware
El error o requerimiento de software crea una excepción o trap
División por cero, requiere por un servicio del sistemaoperativo
Otros problemas de procesos incluyen lazos infinitos, procesosque se modifican unos con otros o el sistema operativo.
11
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Operaciones del Sistema Operativo
La operación en modo dual permite al sistema operativoprotegerse a si mismo y otros componentes del sistema Modo usuario y modo kernel El bit de modo es provisto por el hardware
Provee la habilidad para distinguir cuando el sistema estáejecutando código de usuario o código kernel.
Algunas instrucciones son privilegiadas, sólo se ejecutan enmodo kernel.
Timer para prevenir lazos infinitos / alto consumo de recursospor procesos
Sistemas Operativos – IntroducciónKMC © 2017
Introducción – Operaciones del Sistema Operativo
Transición del modo usuario al modo kernel
proceso usuario (p.u.)
ejecutando p.u. llamada system call
kernel
ejecuta system call
retorno system callmodo usuario(bit modo = 1)
modo kernel(bit modo = 0)
trap(bit modo = 0)
retorno(bit modo = 1)
12
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Procesos
Un proceso es un programa en ejecución. Es una unidadde trabajo dentro del sistema. Un programa es unaentidad pasiva, el proceso es una entidad activa.
El proceso necesita recursos para realizar su tarea. CPU, memoria, E/S, archivos Initialización de datos
La terminación de procesos require reclamar losrecursos reusables.
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Procesos
Los procesos de hilo simple tienen un contador de programaespecificando la locación de la próxima instrucción a ejecutar. El proceso ejecuta instrucciones secuencialmente, una por
vez hasta terminar.
Procesos multihilados tienen un contador de programa porhilo.
Típicamente un sistema tiene muchos procesos, algún usuario,algún SO ejecutando concurrentemente en una o más CPUs.
Concurrencia por multiplexado de CPUs entre procesos /hilos.
13
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Procesos
ActividadesEl sistema operativo es responsable por las siguientesactividades en conexión con la administración de procesos.
Creación y eliminación de procesos.
Suspensión y reactivación de procesos.
Provisión de mecanismos para:
sincronización de procesos
comunicación de procesos
manejo de interbloqueos
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Procesos
Tiempo
Proceso 1
Proceso 2
Proceso 3
Entrelazado y solapamiento (multiprocesamiento, dos procesadores)
Proceso 1
Proceso 2
Proceso 3
Entrelazado (multiprogramación, un procesador)
14
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Memoria
Todos los datos antes y después del procesamiento.
Todas las instrucciones en memoria para ejecutar.
Determina que hay en memoria cuando es necesariooptimizar la utilización de CPU y el tiempo de respuesta
Actividades de la administración de memoria:
Lleva control de que partes de la memoria están siendo usadas ypor quien.
Decide que procesos cargar cuando hay espacio de memoriadisponible.
Ocupa y desocupa espacio de memoria cuando necesite.
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración del almacenaje
El SO provee una visión lógica y uniforme del almacenajede información Hace abstracción de las propiedades físicas a una unidad
lógica de almacenaje – archivo. Cada medio es controlado por un dispositivo (p.e. disco,
cinta, etc) Propiedades variables incluyen velocidad de acceso,
capacidad, método de acceso (secuencial o al azar)
15
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración del almacenaje
Administración del Sistema de Archivos
Los archivos, usualmente están organizados en directorios
El control de acceso en la mayoría de los sistemas determinaquien puede acceder a que
Las actividades del SO incluyen:Creación y destrucción de archivos y directorios.
Soporte de primitivas para el manejo de archivos ydirectorios.
Mapeo de archivos sobre el almacenaje secundario.Respaldo sobre medios de almacenajes estables .
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Almacenaje
Almacenaje Secundario Los discos son usados para almacenar datos que no entran
en memoria principal o para datos que tienen que serguardados un largo período de tiempo.
Su administración es de vital importancia.
La velocidad de operación de la computadora dependendel subsistema de discos y sus algoritmos.
16
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Administración de Almacenaje
Almacenaje Secundario Las actividades del SO:
Administración del espacio libre
Alocación del almacenaje
Planificación del disco (no hoy en día ….)
Algunos tipos de almacenajes no necesitan ser rápidos:
Almacenaje terciario como el óptico y las cintas magnéticas
Pero aún así deben ser administrados. Varian entre WORM (write-once, read-many-times) y RW (read-
write)
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Caching
Principio importante que es llevado a cabo por varios nivelesen una computadora.
La información en uso copiada desde un almacenaje lento auno más rápido temporariamente.
El almacenaje más rápido (cache) es verificado primero paradeterminar si la información está allí:
Si está, es usada directamente del cache (rápido)
Si no, el dato es copiado al cache y usado allí.
Consideraciones: administración y coherencia
17
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Subsistema de E/S
Uno de los propósitos del SO es esconder las peculiaridades delos dispositivos de hardware de los usuarios.
Los subsistemas de E/S son responsables de:
Administración de memoria de las E/S incluyendo el buffering(almacena datos temporariamente mientras están siendotransferidos), caching (almacena partes de datos enalmacenamiento rápido por rendimiento), spooling (elsolapado de la salida de un job con la entrada a otros)
Interfaz general de drivers de dispositivos.
Drivers específicos para dispositivos de hardware
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Protección y Seguridad
Protección – mecanismo para controlar el acceso deprocesos o usuarios a recursos definido por el SO
Seguridad– defensa del sistema contra ataquesinternos y externos Amplio rango, incluyendo DoS, worms, virus, robo de
identidad, robo de servicios
18
Sistemas Operativos – IntroducciónKMC © 2017
Introducción - Ambientes de Computación
Computadora Tradicional
Borrosa en el tiempo
Ambiente de oficina
Redes hogareñas
Computación Distribuida
Cliente-Servidor
Computación Peer-to-Peer
Computación basada en la web
Sistemas Operativos – IntroducciónKMC © 2017
Introducción
Se recomienda:
Repasar los conceptos sobre: Interrupciones y DMA, entradas/salidas memoria
VISTOS en “Organización de Computadoras” y en la materiasobre arquitectura correspondiente a la carreras de Ingenieríaen Computación e Ingeniería en Sistemas de Información.
Estos temas pueden ser tomados en los exámenes parciales yfinales y se consideran conocidos y estudiados por los alumnosque cursan esta materia
19
Sistemas Operativos – IntroducciónKMC © 2017
Bibliografía:- Silberschatz, A., Gagne G., y Galvin, P.B.; "Operating SystemConcepts", 7ma Edición. 2009, 9na. Edición 2012.- Tanenbaum, A.; "Modern Operating Systems", Addison-Wesley,3ra. Edición 2008, 4ta. Edición 2014.