Professional Documents
Culture Documents
Sistemas Operativos
(16-5949)
El curso desarrolla los conocimientos de Sistemas Operativos desde una visin conceptual y estructural. Se presentan todos los mecanismos de interaccin entre sus partes sin particularizar en algn sistema operativo en especial. Se discuten tpicos como: servicios de sistemas operativos, sistemas de archivos, planificacin de CPU, manejo de memoria memoria virtual, , p planificacin de discos, , interbloqueos, procesos y programacin concurrente, proteccin, sistemas distribuidos, etc. Se presentan algunos ejemplos de estos conceptos en las familias UNIX, Windows XP, Solaris, etc a lo largo del desarrollo de los mdulos, mostrando los matices de implementacin entre estos sistemas. El curso requiere conocimientos de arquitectura y organizacin de computadores y estructura de datos.
JRA 2008 Sistemas Operativos Introduccin
Programa Sinttico
1.0 Introduccin. 2.0 Estructuras de Sistemas Operativos. 3.0 Procesos. 4.0 Hilos 5.0 Planificacin de Procesos. 6.0 6 0 Sincronizacin de Procesos Procesos. 7.0 Interbloqueos. 8.0 Manejo de Memoria. 9.0 Memoria Virtual. 10.0 Sistema de Archivos: Interfaces e Implementacin. 11.0. Manejo de Almacenamiento Secundario. 12.0 Seguridad y Proteccin.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
JRA 2008
Introduccin
Revistas Tcnicas Operating System Review" SIG del ACM. Computing Surveys ACM. "Computing Surveys" de ACM "Transaction on Computer Systems" de ACM. "Transaction on Software Engineering" del IEEE. "Transaction on Computers" del IEEE. "Computer Magazine" del IEEE. "Software Magazine" del IEEE.
Mdulo 1
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur
JRA 2008
Introduccin
Qu hace un Sistema Operativo? Organizacin del Sistema de Cmputo Arquitectura del Sistema de Cmputo Estructura del Sistema Operativo Operaciones del Sistema Operativo Administracin d P Ad i i t i de Procesos Administracin de Memoria Administracin del Almacenamiento Proteccin y Seguridad Sistemas Distribuidos Sistemas de Propsito Especial Ambientes de Computacin
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Qu es un sistema operativo?
Un programa que acta como un intermediario entre un usuario de una computadora y el hardware de la computadora. Objetivos de Sistema Operativo:
Ejecutar l programas d usuario y permitir la Ej t los de i iti l solucin de problemas del usuario mas facilmente. Conveniencia de uso del sistema de la computadora.
Introduccin
Componentes del Sistema de Cmputo 1.Hardware provee los recursos bsicos de computacin (CPU, memoria, dispositivos de E/S). 2. Sistema Operativo controla y coordina el uso del hardware entre varios programas de aplicacin para varios usuarios. 3. Programas de Aplicacin define el modo en el cual los recursos del sistema son usados para resolver los problemas de computacin de los usuarios (compiladores, sistemas de bases de datos, videojuegos, web, programas administrativos, etc). 4.Usuarios (gente, mquinas, otras computadoras).
Usuario 1
Introduccin
Usuario 2 Usuario 3 Usuario n
Compilador
Ensamblador
Editor
Sistema Operativo
Hardware
JRA 2008
JRA 2008
Introduccin
Vista Abstracta de los Componentes del Sistema
Introduccin
Definiciones de Sistemas Operativos
Alocador de recursos
administra todos los recursos.
Hardware Sistema Operativo Libreras Utilitarios Interfaz
JRA 2008 Sistemas Operativos Introduccin JRA 2008
decide sobre requerimientos conflictivos para asegurar eficiencia y uso imparcial de recursos
Programa de Control
controla ejecucin de los programas para prevenir errores y el uso impropio de la computadora.
Sistemas Operativos Introduccin
Introduccin
Definiciones de Sistemas Operativos (cont)
No existe una definicin universalmente aceptada. La cosa que un vendedor entrega cuando uno ordena un sistema operativo resulta una buena aproximacin El programa que ejecuta todo el tiempo en la computadora es el kernel o ncleo. Todo lo dems es un programa de sistema (viene junto con el sistema operativo) o un programa de aplicacin.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Organizacin del Sistema de Cmputo
Operacin del Sistema de Cmputo Una o ms CPUs, se provee acceso a la memoria compartida por dispositivos de control conectados a un canal comn comn. La ejecucin concurrente de CPUs y dispositivos compiten por ciclos de memoria.
Controlador disco
Controlador USB
Adaptador grfico
memoria
JRA 2008
JRA 2008
Introduccin
Operacin del Sistema de Cmputo
Los dispositivos de E/S y la CPU pueden ejecutar concurrentemente. Cada controlador de dispositivos est encargado de un tipo particular de dispositivo. Cada controlador de dispositivos tiene un buffer local. La CPU mueve datos desde/hacia la memoria principal a/desde los buffers 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 operacin por medio de una interrupcin.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Funcionamiento de las Interrupciones
Una interrupcin transfiere el control a la rutina de servicio de la misma, generalmente por medio del vector de interrupcin, que contiene las direcciones de todas las rutinas de servicio. La arquitectura de la interrupcin debe salvar la direccin de la instruccin interrumpida. Las interrupciones entrantes son deshabilitadas mientras otra interrupcin est siendo procesada para prevenir una prdida de interrupcin. Un trap es una interrupcin generada por el software causada por un error o por un requerimiento de usuario. Un sistema operativo es manejado por las interrupciones.
Introduccin
Manejo de Interrupciones
El sistema operativo preserva el estado de la CPU almacenando los registros y el contador de programa. Determina que tipo de interrupcin ha occurrido: polling Sistema de interrupcin vectoreado Segmentos de cdigo separados determinan que tipo de accin deberan llevarse a cabo para cada tipo de interrupcin.
Ocioso transfiriendo
Introduccin
Lnea de tiempo de Interrupcin para un proceso simple realizando una salida
proc ejec proc de int de E/S
CPU
Dispositivo E/S
Req E/S
transferencia hecha
Req E/S
transferencia hecha
JRA 2008
JRA 2008
Introduccin
Estructura de E/S Forma Sincrnica
Luego que la E/S comienza, el control retorna al programa del usuario solo cuando la E/S se haya completado. una instruccin de espera mantiene ociosa la CPU hasta la prxima interrupcin. lazo de espera (contencin para el acceso a memoria). A lo sumo una E/S requerida es atendida a la vez, no hay procesamiento simultneo de E/S.
Inroduccin
Estructura de E/S (Cont.) Forma Asincrnica
Luego que la E/S comienza, el control retorna al programa del usuario sin esperar que la E/S se haya completado. Llamada al Sistema requiere al SO que permita al usuario esperar por la terminacin de la E/S. Tabla de estado de los dispositivos: contiene una entrada por cada dispositivo de E/S indicando su tipo, direccin, y estado. El SO pone un ndice en la tabla de dispositivos de E/S para determinar el estado del dispositivo y modificar la entrada a la tabla para incluir la interrupcin.
JRA 2008 Sistemas Operativos Introduccin
JRA 2008
Introduccin
Dos Mtodos de E/S
Sincrnico
Introduccin
Tabla de estado de dispositivos
disp: lect tarjetas 1 status: ociosa
usuario kernel
Asincrnico
proc que requiere
kernel
usuario
espera
disp: impresora 3 status: ocupada disp: unidad disco 1 status: ociosa disp: unidad disco 2 status: ociosa disp: unidad disco 3 status: ocupada
req para unidad de disco 3 arch: xxx oper: lect dir:43098 Long: 20000
req para unidad de disco 3 arch: yyy oper: esc dir: 05678 Long: 500
JRA 2008
JRA 2008
Introduccin
Estructura de Acceso Directo a Memoria (DMA)
CPU Memoria
Instrucciones de E/S
Introduccin
Estructura de almacenaje
Memoria principal nico medio de almacenaje que la CPU puede acceder directamente.
Disp E/S
Almacenaje Secundario extensin de la memoria principal que provee una gran capacidad de almacenaje no voltil. j Discos Magnticos La superficie del disco est logicamente dividida en tracks (pistas), los cuales estn subdivididas en sectores. El controlador de disco determina la interaccin lgica entre el dispositivo y la computadora.
Usado por dispositivos de E/S de alta velocidad para transmitir informacin a velocidades similares a la de la memoria. El controlador de dispositivos transfiere bloques de datos desde el buffer de almacenamiento directamente a la memoria principal sin la intervencin de la CPU. Solo una interrupcin es generada por bloque, y no una por byte.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Mecanismo del Movimiento de Cabezas en el Disco
Introduccin
Jerarqua de almacenaje
Los sistemas de almacenaje est organizado en jerarqua. Velocidad Costo Volatilidad Caching informacin copiada en un sistema de almacenaje rpido; la memoria principal puede verse como el ltimo cache para el almacenaje secundario.
JRA 2008
JRA 2008
Introduccin
Jerarqua de Dispositivos de Almacenaje
registros cache memoria principal disco electrnico disco magntico disco ptico cinta magntica
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Caching
Principio importante que es llevado a cabo por varios niveles en una computadora (en hardware, sistema operativo, software) La informacin en uso copiada desde un almacenaje lento a uno ms rpido temporariamente. El almacenaje ms rpido (cache) es verificado primero para determinar si la informacin est alli: Si est, es usada directamente del cache (rpido) Si no, el dato es copiado al cache y usado all.
Introduccin
Caching (Cont.)
El cach es ms pequeo que el almacenaje de donde se ha trado la informacin: La administracin del cache es un problema importante de diseo. El tamao del cache y la poltica de reemplazo.
Introduccin
Rendimiento de varios niveles de almacenamiento
Movimiento entre niveles de la jerarqua de almacenaje puede ser explcito o implcito.
JRA 2008
JRA 2008
Introduccin
Migracin de un entero A de disco a registro
Ambientes multitarea deben ser cuidadosos en el uso de los valores ms recientes, no importa donde est almacenado en la jerarqua de almacenaje
Introduccin
Migracin de un entero A de disco a registro (cont.)
Los ambientes multiprocesador deben ofrecer coherencia de cach en hardware tal que todas las CPUs tienen el ms reciente valor en sus cachs. En los ambientes distribuidos la situacin es ms compleja:
Disco magnti co
Memori a principa l
Cach
Registro hardwar e
Existen varias copias de datos. Existen varias soluciones que no son motivo de este curso.
JRA 2008
JRA 2008
Introduccin
Estructura del Sistema Operativo
La Multiprogramacin es necesaria para lograr eficiencia: Un simple usuario no puede mantener la CPU y los dispositivos de E/S ocupados todas las veces. La multiprogramacin organiza las tareas (cdigo y p g g ( g datos) de tal manera que la CPU siempre tiene uno ejecutando. Un subconjunto del total de tareas en el sistema se mantienen en memoria. Una tarea es selecionada y ejecuta va una planificacin de tareas. Cuando tiene que esperar (p.e. E/S), el sistema operativo conmuta a otra tarea.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Estructura del Sistema Operativo
El Tiempo Compartido (multitarea) es una extensin lgica en la cual la CPU conmuta tareas tan frecuentemente que los usuarios pueden interactuar con cada tarea mientras est ejecutando, creando la computacin interactiva. El tiempo de respuesta debera ser < 1 second Cada usuario tiene al menos un programa ejecutando en memoria proceso Si hay varias tareas listas para ejecutar al mismo tiempo planificacin de CPU. Si un proceso no entra en memoria, el swapping lo mueve fuera y hacia dentro de la memoriamoves para ejecutar. La Memoria Virtual permite la ejecucin de procesos no completos en la memoria.
Sistemas Operativos Introduccin
Introduccin
Distribucin de la memoria en un sistema multiprogramado
0 Sistema O Si t Operativo ti job 1 job 2 job 3 job 4 512 k
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Operaciones del Sistema Operativo Las interrupciones son manejadas por el hardware El error o requerimiento de software crea una p p excepcin o trap
Division por cero, requiere por un servicio del sistema operativo
Otros problemas de procesos incluyen lazos infinitos, procesos que se modifican unos con otros o el sistema operativo.
Introduccin
Operaciones del Sistema Operativo
La operacin en modo dual permite al sistema operativo protegerse a si mismo y otros compionentes 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 cdigo de usuario o cdigo kernel. Algunas instrucciones son privilegiadas, slo se ejecutan en modo kernel. La llamada a sistema cambia el modo a kernel, el retorno de la llamada reinicia al modo usuario.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Transicin del modo usuario al modo kernel Timer para prevenir lazos infinitos / alto consumo de recursos por procesos
Produce un interrupcin luego de un perodo especfico. especfico El SO decrementa un contador. Cuando el contador llega a cero genera una interrupcin. Se inicia antes que el proceso planificado gane el control o termina el programa que excede el tiempo fijado.
Sistemas Operativos Introduccin
Introduccin
Transicin del modo usuario al modo kernel (cont)
Introduccin
Administracin de Procesos
Un proceso es un programa en ejecucin. Es una unidad de trabajo dentro del sistema. Un programa es una entidad pasiva, el proceso es una entidad activa. El proceso necesita recursos para realizar su i li tarea. CPU, memoria, E/S, archivos Initializacin de datos La terminacin de procesos require reclamar los recursos reusables.
JRA 2008
JRA 2008
Introduccin
Administracin de Procesos (cont.)
Los procesos de hilo simple tienen un contador de programa especificando la locacin de la prxima instruccin a ejecutar. El proceso ejecuta instrucciones secuencialmente, una por vez hasta terminar. Procesos multihilados tienen un contador de programa por hilo. Tipicamente un sistema tiene muchos procesos, algn usuario, algn SO ejecutando concurrentemente en una o ms CPUs. Concurrencia por multiplexado de CPUs entre procesos / hilos.
Introduccin
Actividades de la Administracin de Procesos
El sistema operativo es responsable por las siguientes actividades en conexin con la administracin de procesos.
Creacin y eliminacin de procesos. procesos Suspensin y reactivacin de procesos. Provisin de mecanismos para: sincronizacin de procesos comunicacin de procesos manejo de interbloqueos
JRA 2008
JRA 2008
Introduccin
Administracin de Memoria
Todos los datos antes y despus del procesamiento. Todas las instrucciones en memoria para ejecutar. Determina que hay en memoria cuando es necesario optimizar la utilizacin de CPU y el tiempo de respuesta a l los Actividades de la administracin de memoria:
Lleva control de que partes de la memoria estn siendo usadas y por quien. Decide que procesos cargar cuando hay espacio de memoria disponible. Ocupa y desocupa espacio de memoria cuando necesite.
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Administracin del almacenaje
El SO provee una visin lgica y uniforme del almacenaje de informacin Hace abstraccin de las propiedades fsicas a una unidad lgica de almacenaje archivo. Cada medio es controlado por un dispositivo (p.e. disco, cinta, etc) Propiedades variables incluyen velocidad de acceso, capacidad, mtodo de acceso (secuencial o al azar)
Introduccin
Administracin del almacenaje (cont.)
Administracin del Sistema de Archivos Los archivos, usualmente estn organizados en directorios El control de acceso en la mayora de los sistemas determina quien puede acceder a que Las actividades del SO incluyen: Creacin y destruccin de archivos y directorios. Soporte de primitivas para el manejo de archivos y directorios. Mapeo de archivos sobre el almacenaje secundario. Respaldo sobre medios de almacenajes estables .
Introduccin
Administracin de Almacenaje Secundario
Los discos son usados para almacenar datos que no entran en memoria principal o para datos que tienen que ser guardados un largo perodo de tiempo. Su administracin es de vital importancia. La velocidad de operacin de la computadora dependen del subsistema de discos y sus algoritmos.
JRA 2008
JRA 2008
Introduccin
Administracin de Almacenaje Secundario
Las actividades del SO: Administracin del espacio libre Alocacin del almacenaje Planificacin del disco (no hoy en da .) Algunos tipos de almacenajes no necesitan ser rpidos: Almacenaje terciario como el ptico y las cintas magnticas Pero an as deben ser administrados. Varian entre WORM (write-once, read-many-times) y RW (read-write)
JRA 2008 Sistemas Operativos Introduccin JRA 2008
Introduccin
Subsistema de E/S
Uno de los propsitos del SO es esconder las peculiaridades de los dispositivos de hardware de los usuarios. Los subsistemas de E/S son responsables de: Administracin de memoria de las E/S incluyendo el buffering (almacena datos temporariamente mientras estn siendo transferidos), caching (almacena partes de datos en almacenamiento rpido por rendimiento), spooling (el solapado de la salida de un job con la entrada a otros) Interfaz general de drivers de dispositivos. Drivers especficos para dispositivos de hardware
Sistemas Operativos Introduccin
Introduccin
Proteccin y Seguridad Proteccin mecanismo para controlar el acceso de procesos o usuarios a recursos definido por el SO Seguridad defensa del sistema contra ataques internos y externos
Amplio rango, incluyendo DoS, worms, virus, robo de identidad, robo de servicios
Introduccin
Proteccin y Seguridad (cont.)
Los Sistemas generalmente primero distinguen entre usuarios para determinar quien puede que: Identidad de usuarios (ID de usuarios, IDs de seguridad) incluye nombre y nmero asociado, uno por usuario El ID de usuario se asocian con todos los archivos archivos, procesos de ese usuario para determinar el control de acceso Identificador de grupo (ID de grupo) permite definir a un conjunto de usuarios controlar el manejo, tambin asociado con cada proceso, archivo Escalamiento de privilegios permite al usuario cambiar a un ID efectivo con ms derechos
JRA 2008
JRA 2008
Introduccin
Ambientes de Computacin
Computadora Tradicional Borrosa en el tiempo Ambiente de oficina
PCs conectadas a una red, terminales conectados mainframe o minicomputadoras proveyendo procesamiento en lotes y tiempo compartido Ahora portales permitiendo conexin en red y sistemas remotos acceder a los mismos recursos.
Introduccin
Ambientes de Computacin (Cont.)
Computacin Cliente-Servidor Terminales bobos suplantados por PCs Muchos sistemas, ahora servidores, respondesn a requerimientos generados por los clientes El servidor provee una interfaz al cliente que requiere el servicio (p.e. base de datos) El servidor de archivos provee una interfaz para que clientes almacenen y recuperen archivos
Redes hogareas
Usados como sistemas simples, luego modems Ahora firewalls y redes
cliente
cliente
cliente
cliente
red
servidor
JRA 2008
JRA 2008
Introduccin
Computacin Peer-to-Peer (P2P)
Otro modelo de sistema distribuido P2P no distingue entre clientes y servidores Todos los nodos son considerados peers Cada uno puede actuar como cliente, servidor o ambos El Nodo debe agregarse a la red P2P
Registra su servicio con un servicio central de bsqueda sobre la red o Requerir por un broadcast un servicio y responder a los requerimientos por servicio via protocolo de descubrimiento.
Introduccin
Computacin basada en la Web
La Web se ha convertido ubicua Las PCs son los dispositivos que prevalecen La mayora de los dispositivos estn en red para tener acceso a la web Nueva categora de dispositivos para manejar el trfico de la web entre servidores similares: balanceadores de carga. El uso de SOs como Windows 95, lado del cliente, han evolucionado hacia Linux y Windows XP, los cuales pueden ser clientes y servidores
JRA 2008 Sistemas Operativos Introduccin
Fin
Mdulo 1
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur
10