cuestionario de preguntas ley- hcb.Descripción completa
Preguntas de examen de Electrónica de PotenciaDescripción completa
cuestionario para final ley-hcb.
dfds
dfds
solucionarioDescripción completa
Descripción: cuestionario para final ley-hcb.
FING - UDELAR
Teórico de Sistemas Operativos Extraí Extra í do do del curso de:
Facultad de Ingenierí a Universidad de la República Uruguay
El material contiene la compaginació compaginación de todas las transparencias del curso 2008 má más el resumen de Mó Mónica Canto del curso 2002.
Sistemas Operativos - Actualizado al 2008
1
FING - UDELAR
Tabla de Contenidos 1 Introducció Introducción....................................................................................................................13 1.1 Componentes de un Sistema de Computaci ón.........................................................13 1.2 Definició Definición de sistema operativo.......................................................... operativo.......................................................... .....................13 1.2.1 Metas.................................................................................................................13 1.2.2 Tareas principales.............................................................................................13 2 Perspectiva Histó Hist órica......................................................................................................15 2.1 Sistemas Batch (‘70)................................................................................................15 2.2 Sistemas Batch con Multiprogramaci ón (Com. ‘80)...............................................15 2.3 Sistemas de tiempo compartido. (Fines ‘80)............................................................16 2.4 Computadores Computadores personales (Fines ‘80).................................................................. ....16 2.5 Sistemas Paralelos Paralelos (com. ’90).............................................................................. ....17 2.6 Taxonomí Taxonomí a de Flynn (comienzos de los '90):..........................................................17 2.7 Sistemas Paralelos Paralelos Multiprocesadores............................................................ Multiprocesadores............................................................ .........18 ........ .18 2.8 Sistemas Cluster.......................................................................................................19 2.9 Sistemas Sistemas de Tiempo Real............................................................ Real............................................................ .......................... ...20 2.10 Sistemas Sistemas Multimedia........................................................ Multimedia............................................................................................ .................................... ..20 2.11 Sistemas de Mano..................................................................................................20 3 Estructura de los Sistemas de Computaci ón...................................................................22 3.1 Componentes Componentes de un sistema........................................................................... sistema........................................................................... ..........22 ......... .22 3.1.1 CPU (procesador).................................................................................. (procesador).................................................................................. ............22 3.1.2 Memoria............................................................................................................23 3.1.2.1 Cache.......................................................................................................24 3.1.2.2 Memoria Memoria principal (RAM)...................................................... (RAM)...................................................................... .................24 .24 3.1.2.3 Discos magné magn éticos (hard disk).................................................................24 3.1.3 Dispositivos de Entrada/Salida (IO).................................................................25 3.1.3.1 Device Drivers.........................................................................................26 3.1.3.2 Memory-mapped-IO................................................................................26 3.1.3.3 IO port address.........................................................................................27 3.1.3.4 Comparació Comparaci ón de acceso...........................................................................27 3.1.3.5 Interacció Interacción con la controladora...............................................................27 3.1.3.5.1 Polling..............................................................................................27 3.1.3.5.2 Interrupciones.................................................................................. Interrupciones.................................................................................. .28 3.1.3.5.3 DMA................................................................................................28 3.2 Protecció Protección de Hardware...........................................................................................29 3.2.1 Modo Dual........................................................................................................29 3.2.2 Protecció Protección de E/S..............................................................................................30 3.2.3 Protecció Protección de Memoria.....................................................................................31 3.2.4 Protecció Protección de CPU............................................................................................31 3.3 Red...........................................................................................................................32 3.3.1 LAN - Local Area Network..............................................................................32
Sistemas Operativos - Actualizado al 2008
2
FING - UDELAR 3.3.2 WAN - Wide Area Networks................................................................ Networks................................................................ ............32 3.3.3 Topologí Topologí aass de red..............................................................................................33 4 Estructura de los Sistemas Sistemas Operativos................................................. Operativos................................................. ...........................35 ..................... ......35 4.1 Componentes Componentes del sistema sistema operativo...................................................................... ...35 4.1.1 Administració Administraci ón de procesos..............................................................................35 4.1.2 Administració Administraci ón de memoria..............................................................................35 4.1.3 Subsistema de E/S.............................................................................................36 4.1.4 Administració Administraci ón de almacenamiento secundario...............................................36 4.1.5 Subsistema de archivos.....................................................................................37 4.1.6 Red....................................................................................................................37 4.1.7 Sistema de protecció protecci ón.......................................................................................37 4.1.8 Inté Intérprete de comandos.....................................................................................37 4.2 Servicios del SO.......................................................................................................37 4.2.1 Ejecució Ejecución de programas....................................................................................38 4.2.2 Operaciones de Entrada/Salida.........................................................................38 4.2.3 Manipulació Manipulación de sistemas de archivos..............................................................38 4.2.4 Comunicació Comunicaci ón entre procesos...........................................................................38 4.2.5 Detecció Detección de errores.........................................................................................38 4.2.6 Propó Propósito General..............................................................................................38 4.3 Llamados al sistema.................................................................................................38 4.4 Estructura del sistema..............................................................................................40 4.4.1 Sistema Monolí Monol í tico...........................................................................................41 tico...........................................................................................41 4.4.2 Sistema en capas...............................................................................................41 4.4.3 Sistema con micronú micron úcleo (microkernel)...........................................................42 4.4.4 Sistema con mó m ódulos........................................................................................43 5 Procesos..........................................................................................................................45 5.1 Definició Definición de Proceso..............................................................................................45 5.2 Contador de programa.................................................................................. programa.................................................................................. ............45 5.3 Memoria de los procesos.........................................................................................45 5.4 Estados de los los procesos......................................................................................... ...46 5.5 Transiciones entre estados.......................................................................................47 5.6 Bloque descriptor descriptor de proceso............................................................................... ....47 5.7 Creació Creación de procesos...............................................................................................48 .......................................................................................................................................49 5.8 Listas y colas de procesos........................................................................................50 5.9 Cambio de contexto.................................................................................................51 5.10 Cooperació Cooperaci ón entre procesos...................................................................................53 5.11 Threads...................................................................................................................53 6 Planificació Planificación...................................................................................................................58 6.1 Introducció Introducción.............................................................................................................58 6.2 Clases de procesos...................................................................................................58 6.3 Esquemas de planificació planificaci ón.......................................................................................58
Sistemas Operativos - Actualizado al 2008
3
FING - UDELAR 6.4 Criterios de planificaci ón.........................................................................................60 6.5 Algoritmos de planificació planificaci ón.....................................................................................60 6.5.1 First-Come First-Served (FCFS)......................................................................60 6.5.2 Shortest-Job-First (SJF)....................................................................................60 6.5.3 Basados en Prioridad............................................................................. Prioridad............................................................................. ............61 6.5.4 Round-Robin (RR)............................................................................................62 6.5.5 Colas multinivel multinivel (Multilevel-Queue)....................................................... (Multilevel-Queue)............................................................... .........64 .64 6.5.6 Multilevel-Feedback-Queue.............................................................................64 6.5.7 Sistemas multiprocesadores..............................................................................65 6.6 Despachador.............................................................................................................67 7 Procesos y Recursos........................................................................................................68 7.1 Bloque descriptor descriptor de procesos (PCB (PCB)......................................................... )................................................................ .............68 ......68 7.2 Bloque descriptor descriptor de recursos RCB....................................................... RCB.................................................................... ..................68 .....68 7.3 Transiciones Transiciones de estados......................................................................................... ...69 7.4 Operaciones Operaciones sobre procesos........................................................................... procesos........................................................................... ..........69 ....... ...69 7.5 Operaciones sobre Recursos....................................................................................70 7.5.1 Requerir Recurso..............................................................................................70 7.5.2 Liberar Recurso.................................................................................................70 7.6 Planificador..............................................................................................................71 7.7 Ejemplo (semá (sem áforo binario).....................................................................................72 8 Administració Administraci ón de memoria............................................................................................73 8.1 Introducció Introducción.............................................................................................................73 8.2 Conceptos bá básicos....................................................................................................73 8.3 Asociació Asociación de Direcciones Direcciones (Address Binding)............................................. Binding)............................................. ...........75 ....... ....75 8.4 Tipos de direccionam direccionamiento............................................................................ iento............................................................................ ...........76 ....... ....76 8.5 Carga diná dinámica (dynamic (dynamic loading):..................................................... loading):...................................................................... ....................77 ...77 8.6 Ensamblaje diná din ámico (dynamic linking).................................................................77 8.7 Overlays...................................................................................................................78 8.8 Swapping..................................................................................................................78 8.9 Asignació Asignación de memoria...........................................................................................79 8.10 Multiprogramació Multiprogramaci ón con particiones fijas...............................................................79 8.11 Multiprogramació Multiprogramaci ón con particiones variables....................................................... variables....................................................... .80 8.12 Estructuras para asignació asignaci ón....................................................................................80 8.13 Estrategia de asignació asignaci ón.........................................................................................80 8.14 Fragmentació Fragmentaci ón........................................................................................................81 8.15 Paginació Paginación..............................................................................................................82 8.16 Direccionamiento en paginaci ón............................................................................82 8.17 Soporte a nivel de hardware............................................................................... hardware............................................................................... ....84 8.18 Tiempo efectivo de acceso (Effective Access Time).............................................86 8.19 Protecció Protecci ón de memoria..........................................................................................86 8.20 Estructura de la tabla de p ágina.............................................................................87 8.20.1 Jerá Jerárquica........................................................................................................87
Sistemas Operativos - Actualizado al 2008
4
FING - UDELAR 8.20.2 Diccionarios....................................................................................................88 8.20.3 Invertida..........................................................................................................89 8.21 Compartimiento.....................................................................................................89 8.22 Segmentación.........................................................................................................90 8.22.1 Soporte a nivel de hardware......................................................................... ...91 8.22.2 Protección de memoria...................................................................................93 8.22.3 Compartimiento..............................................................................................94 8.23 Comparación Paginación - Segmentación.............................................................94 8.24 Segmentación con paginación................................................................................96 9 Memoria Virtual..............................................................................................................97 9.1 Introducción.............................................................................................................97 9.2 Implementación........................................................................................................98 9.2.1 Rutina de atención del fallo de página: ..........................................................100 9.3 Estudio de la performance.....................................................................................101 9.4 Algoritmos de reemplazo....................................................................... ................102 9.4.1 FIFO ( First In - First Out).................................................................... ..........102 9.4.1.1 Anomalí a de Belady para FIFO.............................................................103 9.4.2 Segunda chance (Second chance)................................................. ..................104 9.4.3 Óptimo (Optimal Page Replacement).............................................................104 9.4.4 No recientemente usada (Not Recently Used - NRU)......................... ...........104 9.4.5 Recientemente menos usada (Least Recently Used - LRU)...........................105 9.5 Estrategia de asignación de frames........................................................................106 9.6 Hiperpaginación.....................................................................................................107 9.6.1 Causas de la hiperpaginación..........................................................................107 9.6.2 El modelo Working-Set..................................................................................108 10 Sistema de Archivos...................................................................................................110 10.1 Archivos...............................................................................................................110 10.2 Operaciones sobre los archivos......................................................................... ...110 10.3 Métodos de acceso...............................................................................................111 10.4 Directorios............................................................................................................111 10.4.1 Operaciones sobre directorios.......................................................................112 10.4.2 Estructura de directorios...............................................................................112 10.4.2.1 Nivel único...........................................................................................112 10.4.2.2 Árbol....................................................................................................112 10.4.3 Grafo.............................................................................................................113 10.4.4 Montaje de directorios..................................................................................113 10.5 Seguridad en archivos..........................................................................................114 10.6 Implementación....................................................................................................114 10.6.1 Sistema de archivos virtual...........................................................................115 10.6.2 Estructura de los directorios................................................................ ..........115 10.6.3 Métodos de asignación..................................................................................116 10.6.3.1 Asignación contigua (Contiguos Allocation)......................................116
Sistemas Operativos - Actualizado al 2008
5
FING - UDELAR 10.6.3.2 Asignación en forma de lista (Linked Allocation)..............................116 10.6.3.2.1 Ej. FAT.........................................................................................116 10.6.3.3 Asignación indexada (Indexed Allocation).........................................117 10.6.4 Administración del espacio libre..................................................................118 10.6.4.1 Ejemplo UNIX.....................................................................................119 11 Estructura de dispositivos masivos de datos....................................................... ........121 11.1 Planificación de disco..........................................................................................121 11.1.1 FCFS - First-Come, First-Served..................................................................121 11.1.2 SSTF - Shortest Seek Time First..................................................................122 11.1.3 SCAN............................................................................................................122 11.1.4 C-SCAN........................................................................................................123 11.1.5 C-LOOK.......................................................................................................123 11.1.6 Comparación de los algoritmos de planificación..........................................124 11.2 Estructuras RAID.................................................................................................125 12 Subsistema de Entrada-Salida................................................................... ..................127 12.1 Introducción.........................................................................................................127 12.2 Métodos para efectuar una E/S............................................................................128 12.2.1 E/S programada (Programmed I/O)..................................................... .........128 12.2.2 Interrupciones (Interrupt-Driven).................................................................129 12.2.3 Acceso directo a memoria (DMA - Direct Memory Access).......................130 12.2.3.1 Interfaz de aplicación de E/S...............................................................132 13 Concurrencia...............................................................................................................136 13.1 Antecedentes........................................................................................................136 13.2 El problema de la sección crí tica.........................................................................137 13.2.1 Soluciones para dos procesos........................................................................138 13.3 Hardware de sincronizaci ón.................................................................................144 13.4 Semáforos............................................................................................................146 13.4.1 Uso ...............................................................................................................146 13.4.2 Implementación.............................................................................................146 13.4.3 Bloqueos mutuos e inanición........................................................................148 13.4.4 Semáforos binarios........................................................................................149 13.5 Problemas clásicos de sincronización..................................................................150 13.5.1 El problema del buffer..................................................................................150 13.5.2 El problema de los lectores y escritores........................................................150 13.5.3 El problema de los fil ósofos.........................................................................151 13.6 Regiones crí ticas..................................................................................................153 13.7 Monitores.............................................................................................................153 13.8 Sincronización en Solaris 2..................................................................................157 13.9 Transacciones atómicas.......................................................................................157 13.9.1 Modelo del sistema.......................................................................................157 13.9.2 Recuperación basada en bitácoras................................................................158 13.9.3 Puntos de verificación (checkpoints)............................................................158
Sistemas Operativos - Actualizado al 2008
6
FING - UDELAR 13.9.4 Transacciones atómicas concurrentes...........................................................159 13.9.4.1 Seriabilidad..........................................................................................159 13.9.4.2 Protocolo de cerraduras.......................................................................159 13.9.4.3 Protocolos basados en marcas de tiempo.............................................160 14 Ada..............................................................................................................................161 14.1 Un poco de historia..............................................................................................161 14.1.1 Pequeña descripción del lenguaje.................................................................161 14.2 Tipos de datos primitivos.....................................................................................161 14.2.1 Variables y Constantes................................................................................ ..161 14.3 Tipos de Datos Numéricos...................................................................................162 14.3.1 Enumeraciones..............................................................................................162 14.3.2 Tipos Caracter y Boleano.................................................. ............................162 14.3.3 Tipo de Dato Apuntador...............................................................................162 14.4 Tipo de datos estructurados.................................................................................163 14.4.1 Vectores y Arreglos......................................................................................163 14.4.2 Cadena de Caracteres....................................................................................163 14.4.3 Tipo de Dato Archivo...................................................................................163 14.4.4 Tipo de Dato Definido Por El Usuario.........................................................164 14.5 Control de secuencia............................................................................................164 14.5.1 Expresiones...................................................................................................164 14.5.2 Sentencias.....................................................................................................164 14.6 Sentencias condicionales.....................................................................................164 14.6.1 Sentencia If...................................................................................................164 14.6.2 Sentencia CASE............................................................................................165 14.7 Sentencias de iteración.........................................................................................165 14.7.1 Sentencia Loop........................................................................... ...................165 14.8 Subprogramas y manejo de almacenamiento.......................................................166 14.8.1 Funciones y Procedimientos.........................................................................166 14.9 Abstracción y encapsulamiento...........................................................................167 14.9.1 Paquetes........................................................................................................167 14.10 Hola Mundo!!.................................................................................. ...................167 14.11 Ejemplos de procedimientos:................................................................... ..........168 14.11.1 Alicia – Bernardo:.......................................................................................168 14.11.2 Factorial:.....................................................................................................169 14.11.3 Productor – Consumidor:............................................................ ................169 14.11.4 Semáforo:....................................................................................................171 14.11.5 Productor – consumidor:.............................................................................171 15 Bloqueos mutuos (Deadlock).................................................................................. ....173 15.1 Modelo del sistema..............................................................................................173 15.2 Caracterización de bloqueos mutuos...................................................................173 15.2.1 Condiciones necesarias.................................................................................173 15.2.2 Grafo de asignación de recursos...................................................................174
Sistemas Operativos - Actualizado al 2008
7
FING - UDELAR 15.3 Métodos para manejar bloqueos mutuos..............................................................174 15.4 Evitación de bloqueos mutuos.............................................................................175 15.4.1 Mutua exclusión............................................................................................175 15.4.2 Retener y esperar............................................................... ............................175 15.4.3 No expropiación............................................................................................175 15.4.4 Espera circular..............................................................................................175 15.5 Prevención de bloqueos mutuos...........................................................................176 15.5.1 Estado seguro................................................................................................176 15.5.2 Algoritmo de grafo de asignaci ón de recursos..............................................177 15.5.3 Algoritmo del banquero................................................................................177 15.5.4 Algoritmo de seguridad....................................................................... ..........181 15.5.4.1 Algoritmo de solicitud de recursos........................................... ...........181 15.6 Detección de bloqueos mutuos............................................................................181 15.6.1 Un solo ejemplar de cada tipo de recursos....................................................182 15.6.2 Varios ejemplares de cada tipo de recursos.................................... ..............182 15.6.3 Uso del algoritmo de detección.....................................................................182 15.7 Recuperación después del bloqueo mutuo...........................................................183 15.7.1 Terminación de procesos..............................................................................183 15.7.2 Expropiación de recursos..............................................................................183 15.8 Estrategia combinada para el manejo de bloqueos mutuos.................................184 16 Protección...................................................................................................................185 16.1 Objetivos de la protección...................................................................................185 16.2 Dominios de protección.......................................................................................185 16.2.1 Estructura de dominios.................................................................................185 16.2.2 Ejemplos.......................................................................................................186 16.2.2.1 UNIX...................................................................................................186 16.2.2.2 Multics.................................................................................................187 16.3 Matriz de acceso..................................................................................................187 16.4 Implementación de la matriz de acceso...............................................................188 16.4.1 Tabla global..................................................................................................188 16.4.2 Lista de acceso para objetos....................................................................... ...189 16.4.3 Lista de capacidades para dominios............................................................ ..189 16.4.4 Un mecanismo de cerradura y llave............................................................ ..189 16.4.5 Comparación.................................................................................................189 16.5 Revocación de derechos de acceso......................................................................189 16.6 Sistemas basados en capacidades............................................................. ............190 16.6.1 Hydra.............................................................................................................190 16.6.2 Sistema Cambridge CAP..............................................................................190 16.7 Protección basada en el lenguaje.........................................................................191 17 Seguridad....................................................................................................................192 17.1 El problema de la seguridad............................................................................. ....192 17.2 Validación............................................................................................................192
Sistemas Operativos - Actualizado al 2008
8
FING - UDELAR 17.2.1 Contraseñas...................................................................................................192 17.2.2 Vulnerabilidad de las contraseñas.................................................................192 17.2.3 Contraseñas cifradas.....................................................................................192 17.3 Contraseñas de un solo uso..................................................................................193 17.4 Amenazas por programas................................................................................. ....193 17.4.1 Caballo de Troya...........................................................................................193 17.4.2 Puerta secreta (Trap door)........................................................................... ..193 17.5 Amenazas al sistema............................................................................................193 17.5.1 Gusanos.........................................................................................................193 17.5.2 Virus..............................................................................................................194 17.6 Vigilancia de amenazas..................................................................... ...................194 17.7 Cifrado.................................................................................................................194 17.8 Clasificación de seguridad de los computadores.................................................195 17.9 Ejemplo de modelo de seguridad: Windows NT...................................... ...........197 18 El sistema UNIX.........................................................................................................198 18.1 Historia.................................................................................................................198 18.2 Principios de diseño.............................................................................................198 18.3 Interfaz con el programador............................................................................. ....198 18.3.1 Manipulación de archivos.............................................................................199 18.3.2 Control de procesos............................................................................. ..........199 18.4 Señales.................................................................................................................200 18.4.1 Grupos de procesos.......................................................................................200 18.4.2 Manipulación de información.......................................................................200 18.4.3 Rutinas de biblioteca.....................................................................................200 18.5 Interfaz con el usuario........................................................................................ ..200 18.5.1 Shells y órdenes............................................................................................201 18.5.2 E/S estándar..................................................................................................201 18.5.3 Conductos, filtros y guiones de shell.................................................. ..........201 18.6 Gestión de procesos.............................................................................................201 18.6.1 Bloques de control de procesos.................................................. ...................202 18.6.2 Planificación de CPU....................................................................................202 18.7 Gestión de memoria.............................................................................................202 18.7.1 Intercambio...................................................................................................202 18.7.2 Paginación.....................................................................................................202 18.8 Sistema de archivos........................................................................... ...................203 18.8.1 Bloques y fragmentos...................................................................................203 18.8.2 I-nodos..........................................................................................................203 18.8.3 Directorios.....................................................................................................203 18.8.4 Transformación de un descriptor de archivo en un i-nodo...........................204 18.8.5 Estructuras de disco......................................................................................204 18.8.6 Organización y polí ticas de asignación.........................................................204 18.9 Sistemas de E/S....................................................................................................204
Sistemas Operativos - Actualizado al 2008
9
FING - UDELAR 18.9.1 cache de buffers de bloques..........................................................................205 18.9.2 Interfaces con dispositivos crudas................................................................205 18.9.3 Listas C.........................................................................................................205 18.10 Comunicación entre procesos (IPC)..................................................................205 18.10.1 Sockets........................................................................................................205 18.10.2 Soporte para redes.......................................................................................206 19 El sistema Linux.........................................................................................................207 19.1 Historia.................................................................................................................207 19.1.1 El núcleo de Linux........................................................................................207 19.1.2 El sistema Linux...........................................................................................207 19.1.3 Distribuciones de Linux...................................................................... ..........207 19.1.4 Licencias de Linux........................................................................................208 19.2 Principios de Diseño............................................................................................208 19.2.1 Componentes de un sistema Linux........................................... ....................208 19.3 Módulos del Núcleo.............................................................................................209 19.3.1 Gestión de módulos.......................................................................................209 19.3.2 Registro de controladores.............................................................................209 19.3.3 Resolución de conflictos...............................................................................210 19.4 Gestión de procesos.............................................................................................210 19.4.1 El modelo de proceso fork/exec....................................................................210 19.4.1.1 Identidad del proceso............................................................... ............210 19.4.1.2 Entorno del proceso.............................................................................210 19.4.1.3 Contexto de un proceso.......................................................................210 19.4.2 Procesos e Hilos............................................................................................211 19.5 Planificación........................................................................................................211 19.5.1 Sincronización del núcleo.............................................................................211 19.5.2 Planificación de procesos..............................................................................212 19.5.3 Multiprocesamiento simétrico......................................................................212 19.6 Gestión de memoria.............................................................................................213 19.6.1 Gestión de memoria f ís ica............................................................................213 19.6.2 Memoria virtual............................................................................................213 19.6.2.1 Regiones de memoria virtual...............................................................213 19.6.2.2 Tiempo de vida de un espacio de direcciones virtual..........................214 19.6.2.3 Intercambio y paginación....................................................................214 19.6.2.4 Memoria virtual del núcleo..................................................................214 19.6.3 Ejecución y carga de programas de usuario............................................... ...214 19.6.4 Correspondencia entre los programas y la memoria.....................................214 19.6.4.1 Enlazado estático y dinámico..............................................................215 19.7 Sistema de archivos........................................................................... ...................215 19.7.1 El sistema de archivos virtual.......................................................................215 19.7.2 El sistema de archivos Linux ext2fs.............................................................216 19.7.3 El sistema de archivos proc de Linux...........................................................216
Sistemas Operativos - Actualizado al 2008
10
FING - UDELAR 19.8 Entrada y salida....................................................................................................216 19.8.1 Dispositivos por bloques........................................................................... ....216 19.8.1.1 El cache de buffers por bloques...................................................... .....217 19.8.1.2 El gestor de solicitudes........................................................................217 19.8.2 Dispositivos por caracteres...........................................................................217 19.9 Comunicación entre Procesos..............................................................................217 19.9.1 Sincronización y señales...............................................................................217 19.9.2 Transferencia de datos entre procesos....................................... ...................218 19.10 Estructura de redes.............................................................................................218 19.11 Seguridad...........................................................................................................218 19.11.1 Validación...................................................................................................218 19.11.2 Control de acceso........................................................................................218 20 Windows NT...............................................................................................................220 20.1 Historia.................................................................................................................220 20.2 Principios de diseño.............................................................................................220 20.3 Componentes del sistema............................................................................. ........221 20.3.1 Capa de abstracción de hardware..................................................................221 20.3.2 Núcleo...........................................................................................................221 20.3.3 Ejecutivo.......................................................................................................223 20.3.3.1 Gestor de objetos.................................................................................223 20.3.3.2 Nombres de objetos.............................................................................223 20.3.3.3 Gestor de memoria virtual...................................................................223 20.3.3.4 Gestor de procesos...............................................................................225 20.3.3.5 Recurso de llamadas a procedimientos locales.................................. ..225 20.3.3.6 Gestor de E/S:......................................................................................226 20.3.3.7 Gestor de referencias de seguridad.......................................... ............227 20.4 Subsistemas de entorno........................................................................................227 20.4.1 Entorno MS-DOS................................................................................ ..........227 20.4.2 Entorno Windows de 16 bits................................................................... ......228 20.4.3 Entorno Win32..............................................................................................228 20.4.4 Subsistema POSIX........................................................................................228 20.4.5 Subsistema OS/2...........................................................................................228 20.4.6 Subsistemas de ingreso y seguridad............................................................ ..228 20.5 Sistema de archivos........................................................................... ...................229 20.5.1 Organización interna.....................................................................................229 20.5.2 Recuperación.................................................................................................230 20.5.3 Seguridad......................................................................................................230 20.5.4 Gestión de volúmenes y tolerancia de fallos.................................................230 20.5.5 Compresión...................................................................................................232 20.6 Trabajo con redes.................................................................................................232 20.6.1 Protocolos.....................................................................................................232 20.6.2 Mecanismos de procesamiento distribuido................................................ ...232
Sistemas Operativos - Actualizado al 2008
11
FING - UDELAR 20.6.3 Redirectores y servidores.................................................................... ..........233 20.6.4 Dominios.......................................................................................................233 20.6.5 Resolución de nombres en redes TCP/IP................................................. .....234 20.7 Interfaz con el programador............................................................................. ....234 20.7.1 Acceso a objetos del n úcleo..........................................................................234 20.7.1.1 Compartimiento de objetos..................................................................234 20.7.2 Gestión de procesos......................................................................................234 20.7.3 Comunicación entre procesos.......................................................................235 20.7.4 Gestión de memoria......................................................................................235
Sistemas Operativos - Actualizado al 2008
12
FING - UDELAR
1 Introducción 1.1 Componentes de un Sistema de Computaci ón
1.2 Definición de sistema operativo Un sistema operativo es un programa o conjunto de programas que tornan productivo, amigable y eficiente el uso de un computador (hardware ) permitiendo ejecutar aplicaciones del usuario. 1.2.1 •
• •
•
Metas
Brindar un ambiente para realizar y ejecutar los programas y aplicaciones de los usuarios. Proveer un entorno sin interferencias a cada usuario. Administrar en forma equitativa los recursos de hardware y software del sistema. acer que el uso del sistema tan amigable, intuitivo y e!presivo como permita el estado de la tecnolog"a.
#odas las aplicaciones requieren un conjunto de operaciones comunes que son incorporadas al sistema operativo o a su entorno. 1.2.2
Tareas principales ●
Proveer uno o varios entornos y conte!to apropiado para la ejecuci$n de los programas de los usuarios de prop$sito general, incluyendo e!clusivamente el c$digo de la aplicaci$n.
Sistemas Operativos - Actualizado al 2008
13
FING - UDELAR ●
●
●
●
Podr% implementar diferentes entornos adecuados para diferentes usos, como interfaz gr%fica, l"nea de comando o shell, o transaccional tipo Web. &eber% proveer una o mas interfaces con el usuario, e!presivas e intuitivas. Proporcionar a las aplicaciones un conjunto de servicios a trav's de una interfaz conocida como system services Brindar eficiencia y equidad en la administraci$n de los recursos.
Examen marzo 2006: ¿Cuáles son los obetivos !rinci!ales de un sistema o!erativo"
El sistema operativo es un: ●
Administrador de recursos. ○ ○
●
Administra todos los recursos disponibles. &ecide c$mo asignar estos recursos seg*n los pedidos y asignaciones que tenga.
Programa de control. ○
+ontrola la ejecuci$n de los programas para la prevenci$n de errores y mal uso del sistema.
recuentemente, la porci$n residente del propio sistema operativo se denomina n*cleo del sistema (#ernel ).
Sistemas Operativos - Actualizado al 2008
14
FING - UDELAR
2 Perspectiva Histórica 2.1 Sistemas Batch (‘70) -n las primeras 'pocas los sistemas eran grandes y costosos. +onstaban de un entrada de trabajos o cola y una salida impresa. Pr%cticamente no ab"a interacci$n alguna con el usuario. /a funci$n principal era la del car$ador (loader ) de programas y soporte de -01 a dispositivos. -l sistema soportaba un *nico trabajo a la vez. %ectora de Entrada & 'roceso & (alida y resultado
/as tareas relacionadas, se agrupaban en conjuntos de trabajos o lotes (batches) para su procesamiento m%s eficiente. +on el advenimiento de los discos se comenz$ a realizar el (!ool de los dispositivos aciendo m%s r%pidas las operaciones e introduciendo por primera vez el solapamiento o concurrencia de operaciones. -l recurso m%s caro de la 'poca era el procesador (+PU), que ten"a un bajo porcentaje de utilizaci$n. 2.2 Sistemas Batch con Multiprogramaci ón (Com. ‘80) -l disponer de un 'ool de )obs en memoria secundaria y la implementaci$n de t'cnicas de multiprogramaci$n permiti$ desarrollar t'cnicas de !lanificaci*n de des!acho de ob schedulin$ as" como de multiprogramaci$n. -l sistema deb"a seleccionar un subconjunto de trabajos o lotes ( obs) que estaban en memoria secundaria para cargar en memoria principal. -l sistema operativo seleccionaba un trabajo para ejecutar. +uando el trabajo seleccionado deb"a esperar por alguna tarea (por ej. ejecuci$n de una -01), el sistema eleg"a otro para utilizar el procesador. #odo esto implic$ el desarrollo de t'cnicas incipientes para el manejo de la memoria, ya que ab"a que compartirla entre todos los trabajos. /a multiprogramaci$n incrementa la utilizaci$n del recurso procesador. Examen diciembre 200+: ¿,u- se lo$ra en los sistemas multi!ro$ramados" )ustifi.ue/ es!uesta: (e lo$ra el incremento de utilizaci*n de C'1/ Esto se lo$ra al car$ar varios !rocesos en memoria y alternar la eecuci*n cuando se !roducen re.uerimientos de E( !or eem!lo/ Examen ulio 2003: ¿Cuál es la !rinci!al ventaa de la multi!ro$ramaci*n" es!uesta: %o$ra el incremento de utilizaci*n de C'1/ Esto se consi$ue al car$ar varios !rocesos en memoria y alternar la eecuci*n cuando se !roducen re.uerimientos de E( !or eem!lo/
Sistemas Operativos - Actualizado al 2008
15
FING - UDELAR Examen marzo 2006: ¿,u- beneficios brinda el conce!to de multi!ro$ramaci*n" es!uesta: 4ncrementar el a!rovechamiento del sistema5 incluyendo los recursos de !rocesador5 dis!ositivos de E(5 memoria 5 etc/ arios !ro$ramas son car$ados en memoria y cuando al$uno se blo.uea5 el sistema o!erativo le asi$na la C'1 a otro !roceso/ Examen diciembre 2006: ¿,u- beneficio brinda la multi!ro$ramaci*n" 7iscuta se$8n el sistema sea mono!rocesador o multi!rocesador/ es!uesta: %a maximizaci*n del recurso !rocesador tanto en mono!rocesador como en multi!rocesadores / Examen ulio 2009: ¿Cuál es el beneficio de la multi!ro$ramaci*n"
2.3 Sistemas de tiempo compartido. (Fines ‘80) /os sistemas atch multiprogramados adolec"an de una nula interacci$n con el usuario adem%s de un tiempo de retorno (turnaround time; e!tenso. -l debu$< de un programa segu"a siendo tortuoso (dum! de la memoria). 1istemas de tiempo compartido, ejecutan programas en forma concurrente con una elevada tasa de despaco de procesador (context switch) de forma tal de permitir que usuarios interact*en directamente con el sistema como si fueran su *nico usuario. 1e debe combinar multiprogramaci$n con t'cnicas de !lanificaci*n de +PU (schedulin$) para proveer a cada usuario con una porci$n adecuada del sistema. /os sistemas de tiempo compartido (time sharin$ systems ) son una e!tensi$n l$gica de los sistemas multiprogramados. /os usuarios utilizaban terminales para implementar la interacci$n y eran atendidos por un shell o int'rprete de comandos (multiusuarios). /a calidad de la interacci$n era un resultado de la transmisi$n car%cter a car%cter o en modo bloque. #odos los usuarios cre"an tener el computador a su disposici$n. 1i bien un procesador ejecuta un *nico proceso por vez, el despaco del mismo 23 $ 43 veces por segundo entre diferentes tareas, le brinda a los usuarios la sensaci$n de que est% para su uso e!clusivo. -ste intercambio es tan frecuente que el usuario puede interactuar con el trabajo suyo con total comodidad. /a necesidad de acceder y actualizar datos en forma concurrente, cre$ la necesidad de evolucionar el sistema de arcivos a uno multiusuario, incorporando t'cnicas de protecci$n y serializaci$n del acceso. -n estas condiciones, los procesos deben contar con la memoria y procesador necesarias para su ejecuci$n eficiente dando forma a los requerimientos de los sistemas operativos de oy d"a. /a e!presi$n de gran porte de estos sistemas =ain>rame s incluy$ monitores de teleproceso e interacci$n con los usuarios mediante terminales que operaban en modo de transmisi$n por bloque. 2.4 Computadores personales (Fines ‘80) +on costos de hardware decrecientes fue posible el dise5o y uso de computadores personales. -l sistema era dise5ando en base a que ser"a dedicado a un *nico usuario. Sistemas Operativos - Actualizado al 2008
16
FING - UDELAR
+on en un principio modestos recursos de procesador, el 'nfasis y desarrollo estuvo por mejorar la interfaz con el usuario. Para ello el sistema operativo debi$ ma!imizar la abilidad de interacci$n con el usuario en vez de uso de +PU, etc. /a interfaz de comandos abitual y dise5ada para t'cnicos fue substituida por la interfaz de ventanas que oy conocemos. #odo dispositivo es bueno si mejora la interacci$n con el usuario (audio, rat$n, video, micr$fono, c%mara, disquete, etc.). inalmente, los P+ invadieron el ambiente empresarial al ser dispuestos en red. Para ello, utilizando sistemas omog'neos y servidores con abilidades espec"ficas de impresi$n, base de datos, sistema de arcivo, seguridad, correo, etc.. -sta es la disposici$n reciente donde las aplicaciones se implementan en modalidad cliente6servidor (t'cnica obsoleta por las nueva erramientas desarrolladas para 7nternet). 2.5 Sistemas Paralelos (com. ’90) 1istemas donde se dispone de m%s de un procesador permiten la ejecuci$n simult%nea de m%s de un proceso. 1e clasifican en8 Sistemas altamente integrados(“tightly coupled ”). 1on sistemas ● en donde los canales de intercone!i$n son de alta velocidad (bus com*n o memoria compartida). Sistemas poco integrados (“closely coupled ”). 1istemas en ● donde los canales de intercone!i$n son de baja velocidad relativa. 1istemas en red. •
Sistemas Simétricos o Asimétricos en función de si hay especialización o no de los procesadores .1
2.6 Taxonom í a de Flynn (comienzos de los '90): +aracteriz$ las arquitecturas de computadores y los datos sobre los cuales 'stas se aplican8 ●
●
●
●
SISD (Single Instruction, Single Data )8 una arquitectura secuencial
donde no e!iste paralelismo (sistemas monoprocesadores). SIMD (Single instruction, Multiple Data )8 sistemas que ejecutan la misma instrucci$n sobre un conjunto distinto de datos (sistemas vectoriales). MISD ( Multiple Instruction, Single Data): utilizado para paralelismo redundante. MIMD (Multiple Instruction, Multiple Data ): sistemas con procesadores aut$nomos que ejecutan en forma simult%nea diferentes instrucciones sobre diferentes datos.
&entro de los sistemas MIMD se suelen acer dos divisiones8 Sistemas de memoria compartida8 sistemas donde los ● procesadores coe!isten en un *nico nodo o en un sistema altamente integrado. -scalan poco debido a que el acceso a memoria desde los procesadores se convierte en un 9cuello de botella9. Sistemas de memoria distribuida8 son sistemas donde los nodos ● son independientes que se interconectan a trav's de una red de alta velocidad. -scalan a miles de procesadores. 1 Quitado de las transparencias en 2008
Sistemas Operativos - Actualizado al 2008
17
FING - UDELAR
2.7 Sistemas Paralelos Multiprocesadores Sistemas asimétricos8 al surgir los sistemas multiprocesadores los ● n*cleos de los sistemas operativos se modificaron para soportar este tipo de sistema. /a forma m%s sencilla fue asignar la ejecuci$n de c$digo del n*cleo a un *nico procesador. &e esta forma, los sistemas operativos no ten"an que lidiar con la programaci$n concurrente, ya que su c$digo estaba restringido a ejecutarse en un *nico procesador. Posteriormente, se empez$ a asignar ciertas tareas a otros procesadores, generando una jerarqu"a entre ellos. Sistemas simétricos. al avanzar el dise5o de los sistemas operativos ● se desarrollaron sistemas en donde el c$digo del n*cleo se dispone en la memoria com*n y puede ser ejecutado por cualquier procesador. 1e pierde la jerarqu"a de los sistemas asim'tricos y todos los procesadores pasan a ser sim'tricos. /a reentrancia< del n*cleo se transforma en una necesidad cr"tica. /os proveedores debieron
Sistemas Operativos - Actualizado al 2008
18
FING - UDELAR
redise5ar totalmente sus sistemas operacionales. -l c$digo del sistema operativo, al igual que el anco de banda de la memoria, se transforman en un recursos cr"ticos, que determinan la escalabilidad del sistema. Examen marzo 200+: 7efina sistema multi!rocesador sim-trico y asim-trico/ Examen diciembre 200+: ¿,u- ti!o de !rocesamientos existen en un sistema multi!rocesador" 7escriba brevemente cada uno de los .ue nombre/ es!uesta: =ulti!rocesamiento sim-trico: el n8cleo del sistema o!erativo !uede correr en cual.uier !rocesador/ =ulti!rocesamiento asim-trico: cada !rocesador tiene asi$nadas tareas es!ec?ficas/ Existe un !rocesador maestro donde corre el n8cleo del sistema/ Examen ulio 2003: En una ar.uitectura multi!rocesador5 ¿ser?a conveniente utilizar un sistema o!erativo cuyas !rimitivas o servicios no sean en su mayor?a reentrantes"/ )ustifi.ue/ es!uesta: @o5 dado .ue el c*di$o no reentrante si es eecutado simultáneamente !or más de un !roceso !uede $enerar inconsistencias/ Examen diciembre 2003: En un e.ui!o multi!rocesador .ue dis!one de + !rocesadores5 se instal* un sistema o!erativo basado en multi!rocesamiento sim-trico/ ¿%os !rocesos del sistema o!erativo !ueden eecutar en cual.uiera de ellos5 o son restrin$idos a ser eecutados en al $8n !rocesador es!ec?fico" 7e estar restrin$ido5 describa como se or$aniza la estructura de los !rocesadores/ es!uesta: Al ser un sistema o!erativo sim-trico B(='; los !rocesos del sistema o!erativo !ueden eecutar en cual.uier !rocesador sin restricciones/ Examen febrero 200: En un e.ui!o multi!rocesador5 ¿.u- beneficio se obtiene el tener un sistema o!erativo sim-trico frente a uno asim-trico"
os sistemas multiprocesadores se caractri!an en dos tipos: ●
●
Sistemas "MA (Uniform Memory Access)8 acceso uniforme a la
memoria. +ada procesador accede a cualquier lugar de memoria a la misma velocidad. Sistemas #"MA (Non-Uniform Memory Access ): acceso no uniforme a la memoria. /os procesadores tienen un conjunto de memoria a la cual acceden m%s r%pido que el resto.
Examen febrero 2003: =encione el !rinci!al !roblema .ue debe enfrentar un sistema o!erativo si eecuta sobre un e.ui!o multi!rocesador5 con una 8nica memoria com8n/ es!uesta: El !rinci!al desaf?o es !rote$er las secciones cr?ticas del sistema o!erativo/ Esto no era un !roblema cuando hab?a un solo !rocesador y a lo sumo un !roceso del sistema eecutando en un momento dado/
2.8 Sistemas Cluster 1on sistemas donde participan varios nodos. 1e enfocan en brindar alta disponibilidad y balance de carga. /os nodos est%n interconectados por varios canales para verificar (monitorear) el estado de cada uno. /os cluster de alta disponibilidad se pueden estructurar en sim'tricos o asim'tricos8 Sistemas Operativos - Actualizado al 2008
19
FING - UDELAR ●
●
Simétricos8 todos los nodos ejecutan tareas y asumen las de otros
ante fallas (activo6activo). Asimétricos8 e!isten nodos primarios donde se ejecutan las tareas y nodos secundarios que est%n a la espera de una falla para asumir el rol de primario (activo6pasivo).
2.9 Sistemas de Tiempo Real -n sistemas de este tipo estricto, todo resultado debe producirse en un cierto tiempo, o de lo contrario el sistema falla. -n la pr%ctica, sistemas de tiempos compartido con prioridades din%micas y despaco !reem!tivo en general pueden ser utilizados en estas condiciones ya que adem%s se pueden utilizar como de prop$sito general. 2.10 Sistemas Multimedia 1istemas especializados en la incorporaci$n de datos multimedia (audio y video). -stos tipos de datos deben reproducirse bajo ciertas restricciones de tiempo. 2.11 Sistemas de Mano 1istemas P&A ('ersonal 7i$ital Assistant; como 'A%=s, 'oc#etD'Cs, telefon"a m$vil. Utilizan sistemas operativos embebidos que tienen grandes limitaciones de recursos y altos requerimientos de prestaciones. Examen abril 200: 7escriba las !rinci!ales caracter?sticas de los si$uientes ti!os de sistemas o!erativos: F/ 'or lotes 2/ 4nteractivos / 7e tiem!o com!artido +/ 7e tiem!o real 3/ 7istribuidos es!uesta: 'or lotes ecibe un fluo de trabaos se!arados5 los eecuta y vuelca los resultados de los mismos5 devolvi-ndolos !or una im!resora5 medio de almacenamiento o similar/ (e caracterizan !or la ausencia de interacci*n entre el usuario y el trabao en tanto .ue este se eecuta/ El t-rmino G!or lotesG se refiere a un modelo en .ue los trabaos similares se a$ru!aban en lotes5 a fin de reducir el tiem!o total dedicado a !re!arar el com!utador entre distintos trabaos/ %os sistemas modernos no !resentan esta limitaci*n/ 4nteractivos 'rovee una comunicaci*n en l?nea entre el usuario y el sistema5 donde el usuario da instrucciones al sistema o a las a!licaciones5 y recibe una res!uesta a la misma/ 7e tiem!o com!artido Es un caso !articular de la multi!ro$ramaci*n5 donde la C'1 es com!artida entre los !rocesos con una frecuencia alta5 !resentándose al usuario como si este tuviera su !ro!io com!utador/ 7e tiem!o real En $eneral se usan !ara el control de a!licaciones dedicadas/ Hiene restr icciones tem!orales bien definidas5 !or lo .ue si el !rocesamiento no se l leva a cabo dentro de l?mites es!erados5 el sistema falla/ 7istribuidos (on un conunto de com!utadoras inde!endientes Bdesaco!ladas en cuanto a hardware5 no com!arten memoria ni relo; comunicadas !or una red5 .ue se !resentan al usuario en la mayor medida .ue sea !osible5 como un 8nico sistema/ (u motivaci*n son com!artir recursos Bmeorar la utilizaci*n; y aumentar tanto la escalabilidad como la confiabilidad/ Examen marzo 200+:
Sistemas Operativos - Actualizado al 2008
20
FING - UDELAR 7escriba brevemente: sistemas batch5 sistemas de tiem!o com!artido5 sistemas de tiem!o real y sistemas distribuidos/ Examen febrero 2003: 7efina brevemente: sistema distribuido y sistema de tiem!o real/ es!uesta: (istema distribuido: (istema o!erativo fuertemente aco!lado en software y d-bilmente aco!lado en hardware5 donde los !rocesadores no com!arten memoria f?sica ni relo/ El obetivo es com!artir recursos5 com!artir car$as5 sostener la comunicaci*n entre !rocesos y usuarios5 y aumentar la confiabilidad del conunto/ (istema de tiem!o real: (istema .ue tiene restricciones tem!orales bien definidas5 a diferencia de los sistemas !or lotes o de tiem!o com!artido/ %a eecuci*n !ara considerarse correcta debe hacerse dentro de un mar$en de tiem!o definido/ Ieneralemente se utilizar J= en vez de almacenamiento secundario/ (uelen utilizarse !ara a!licaciones dedicadas/
Sistemas Operativos - Actualizado al 2008
21
FING - UDELAR
3 Estructura de los Sistemas de Computación 3.1 Componentes de un sistema $P" (procesador)
Unidad central de procesamiento (procesador). /a velocidad del +PU es varios $rdenes mayor con respecto al acceso a memoria.
Memoria
Permite mantener la informaci$n disponible. -!iste una :erarqu"a de memoria8 registros, caches, memoria f"sica de tipo ;A< (andom Access =emory ), dispositivos magn'ticos y $pticos.
Dispositi%os de &ntrada'Salida (I)
Permiten interactuar con el sistema. Algunos dispositivos8 7mpresoras, teclados, rat$n, video, discos duros, etc.
3.1.1
CPU (procesador)
/a unidad central de procesamiento es la que ejecuta los programas. -n un sistema puede aber m%s de una. -l ciclo b%sico consiste en tomar la instrucci$n apuntada por el P+ ( !ro$ram counter ) (fetchin$), decodificarla para determinar su tipo y operandos (decodin$ ), ejecutarla (executin$), y luego continuar con la siguiente instrucci$n. Arquitecturas modernas aumentan la !erformance ejecutando las operaciones en paralelo (fetchin$5 decodin$5 executin$). -sta t'cnica es conocida como !i!elin$. Cada C'1 eecuta un conunto de instrucciones es!ec?ficoBverificar;/
-!isten varias arquitecturas de procesadores, se clasifican en IS$ (educed 4nstruction (et Com!uter ) y $IS$ (Com!lex 4nstruction (et Com!uter ). Algunas arquitecturas8 1PA;+, !=>, Po?er, 7tanium. /a velocidad del procesador es varios $rdenes de magnitud mayor que la velocidad de acceso a informaci$n que est% en memoria vol%til (;A<). -sto implic$ la creaci$n de registros a nivel del procesador y finalmente una cache de memoria (caches de @er. nivel, do. nivel y asta 2er. nivel). /os registros son la memoria m%s r%pida que accede un procesador y est%n integrados al chi!. -n los *ltimos a5os an surgido procesadores que en un mismo chi! contienen varios cores de ejecuci$n. -sto a llevado a una nueva terminolog"a8 sin$leDcore5 dualDcore5 .uadDcore , etc. Instrucciones
J!erador J!erandos///
Sistemas Operativos - Actualizado al 2008
22
FING - UDELAR
/os operandos pueden ser inmediatos, registros, relativos, de memoria &1817C seg*n diferentes t'cnicas. (visto en Arquitectura de sistemas). /as familias de instrucciones incluyen8 aritm'ticas, l$gicas, transferencia control B)m!5 Call5 %oo! , etc), de memoria, de stac# , de sincronizaci$n (loo!z %oc#:KCh$ ax ) y de entrada y salida. &entro del mismo chi! del procesador se incluyen registros de r%pido acceso8 ;egistros punto fijo y punto flotante (decimal o no). ● ;egistros de direccionamiento -1, 11, &1, +1, etc. ● ;egistro de -stado. 7ncluye P+ y banderas con Lero, Carry . ● ● Caches 8 @er. Divel (del orden de 3 Eb). ○ do. Divel (del orden de F@Eb a
1e establecen niveles de ejecuci$n y conjunto de instrucciones para cada nivel. Un protocolo seguro para aumentar el nivel de ejecuci$n que se basa en siempre transferir el control a c$digo autenticado (trusted) para aumentar el nivel de ejecuci$n. amilias de -01, protecci$n de memoria, memoria virtual. Interrupciones
+apacidad de procesar interrupciones. -l sistema operativo preserva el estado actual (previo a la interrupci$n) del procesador (registros, etc.). 1e determina qu' tipo de interrupci$n ocurri$. 1e ejecuta la rutina de atenci$n correspondiente.
3.1.2
Memoria
-l sistema de memoria se construye en base a una jerarqu"a, lo que permite mejorar la utilizaci$n del procesador8
Sistemas Operativos - Actualizado al 2008
23
FING - UDELAR 3.1.2.1
Cache
-l cache es un principio muy importante, es utilizado a varios niveles en el sistema de computaci$n (hardware , sistema operativo, software ). -l concepto es mantener una copia de la memoria que est% siendo utilizada en un medio temporal de mayor velocidad. -l medio de memoria cache es muco menor y mas veloz que el dispositivo principal. -sto genera que el manejo de cache sea un problema de dise5o importante. -l tama5o del cache y sus pol"ticas de reemplazo tienen un alto impacto en la mejora real de la !erformance. Examen marzo 2009: ¿,u- entiende !or memoria cache"
$o*erencia de cache
Un problema que introduce la memoria cache en ambientes de multiprocesadores, es la coerencia y consistencia de los datos que est%n replicados. Caches en multiprocesadores8 ● ●
●
●
●
Examen ulio 2003: En una ar.uitectura multi!rocesador5 describa las ventaas y desventaas de contar con cache a nivel de los !rocesadores/ es!uesta: %a cache a nivel de !rocesador incrementa el desem!eMo ya .ue los !rocesadores !ueden obtener los datos de la cache Bco!ias de los datos en memoria !ri nci!al; y evitar la b8s.ueda en la memoria !rinci!al/ 'or otro lado5 se debe mantener la coherencia entre los datos de las caches lo cual vuelve más com!leo el hardware necesario/
3.1.2.2
Memoria principal (RAM)
4 bits con paridad. #ransferencia en un ciclo del bus y acceso interlaceado (interleavin$) a m%s de un m$dulo de memoria. -!isten instrucciones que toman como argumentos direcciones e memoria. -s *til tambi'n para acer transferencias con controladoras de dispositivos. /as controladoras tienen su propio buffer de memoria, y e!isten instrucciones de -01 que permiten la transferencia directa desde el buffer a memoria principal (%er DMA). 3.1.2.3 Discos magn é ticos (hard disk)
&ispositivos de velocidad de acceso muco menor que la memoria principal, pero de mayor capacidad. #iene componentes mec%nicas a diferencia de la memoria principal, cache y registros. +onsta de platos de metal (@3333 $ m%s rpm) y un brazo mec%nico que contiene las cabezas de lectura0escritura para cada plato. Sistemas Operativos - Actualizado al 2008
24
FING - UDELAR
●
Pistas (tracks): /a superficie de los platos es dividida l$gicamente en
●
Sectores (sectors): +ada pista es dividida en un conjunto de
●
$ilindros (cylinder ): -l conjunto de pistas (de todos los platos) que
pistas circulares. sectores.
est%n en una posici$n del brazo mec%nico forman un cilindro
/a velocidad del disco se compone de dos partes8 ●
+asa de transerencia (transfer rate): es la tasa con la cual los
●
+iempo de posicionamiento ( positioning time): es el tiempo que
datos van entre el disco y la computadora.
se tarda en ubicar el brazo en el cilindro adecuado (see# time), m%s el tiempo de rotar el plato al sector adecuado (rotational latency ). /a unidad de transferencia es el bloque. Gcasionalmente los bloques pueden estar con interleavin$ . -!isten distintos tipos de buses de cone!i$n: 7&- (4nte$rated drive electronics ), ● A#A ( Advanced Hechnolo$y Attachment ) ● 1+17 ((mall Com!uterD(ystems 4nterface ) ● 1A1 ((erial Attached (C(4) ● 3.1.3
Dispositivos de Entrada/Salida (IO)
/os dispositivos, por lo general, constan de una controladora y el dispositivo en s".
Sistemas Operativos - Actualizado al 2008
25
FING - UDELAR
/a controladora es un chi! que controla f"sicamente al dispositivo. Acepta comandos del sistema operativo y los ejecuta (genera las correspondientes se5ales sobre el dispositivo para realizar la tarea). /a interfaz que le presenta la controladora al sistema operativo es bastante m%s simple que la provista por el dispositivo. -n un sistema e!isten distintas controladoras (de discos, red, etc.), por eso es necesario distintos componentes de software para manejar cada uno. 3.1.3.1
Device Drivers
Al software que se comunica con la controladora se le denomina device driver / Para cada controladora se debe de proveer el device driver adecuado. -stos son incorporados al sistema operativo dado que son la v"a de comunicaci$n con los dispositivos. Examen marzo 2003: ¿,u- es lo .ue im!lementan los maneadores de los dis!ositivos Bdevice drivers;" ¿>orman !arte del sistema o!erativo"/ )ustifi.ue/ es!uesta: 4m!lementan !rimitivas definidas !or el sistema o!erativo utilizando el len$uae del dis!ositivo/ (?5 el sistema o!erativo es el encar$ado de administrar el hardware5 y de !resentar al usuario una interfaz !ara el uso de los distintos com!onentes del sistema/ Examen febrero 2009: a/ ¿%os maneadores de dis!ositivos Bdevice drivers; son un com!onente de hardware o software" b/ ¿Cuál es su funci*n !rinci!al" es!uesta: a/(oftware/ b/ Nacer la traducci*n de los !edidos .ue el sistema realiza sobre el dis!ositivo Odialo$ando< con la controladora del dis!ositivo/ El maneador de dis!ositivo Bdevice driver;5 !or lo $eneral5 im!lementa un conunto de !rimitivas de alto nivel Bim!uestas !or el sistema o!erativo;5 .ue realizan la traducci*n de los !edidos y res!uestas .ue $enera el sistema/ 'ara esto5 es necesario .ue se !ueda comunicar con el controlador del dis!ositivo en el len$uae .ue -ste !ro!one/
/os device drivers son cargados de diferentes formas8 ● ●
●
-nsamblarlos est%ticamente al n*cleo del sistema. +uando se carga el sistema se lee un arcivo de configuraci$n que dice cu%les device drivers cargar. +argar din%micamente a demanda.
/as controladoras contienen un conjunto de registros que sirven para comunicarse con ella y ejecutar comandos. -j.8 la controladora de un disco podr"a tener registros para especificar la direcci$n en disco, la direcci$n en memoria principal, el n*mero de sectores y el sentido (lectura y escritura). Acceso a los registros de la controladora8 Memory-mapped-I8 /os registros son mapeados a direcciones de memoria principal. Direct I instructions8 A los registros se les asigna una direcci$n de puerto (4J !ort address )/ •
•
3.1.3.2
Memory-mapped-IO
Para facilitar el acceso a registros de los dispositivos, se reserva un espacio de la memoria principal que mapea a los registros del dispositivo.
Sistemas Operativos - Actualizado al 2008
26
FING - UDELAR
/eer o escribir en los registros de los dispositivos se traduce en leer o escribir sobre las direcciones de memoria. Al operar sobre estas direcciones de memoria se genera la transferencia a los registros del dispositivos en forma transparente. /as direcciones de memoria deben ser puesta fuera del alcance de los procesos del usuario. E/: %a !antalla es Oma!eada< a un lu$ar de memoria/ 'ara des!le$ar un carácter en !antalla solo basta con escribir sobre el lu$ar correcto de la memoria !rinci!al/ 3.1.3.3
IO port address
A cada registro se le asigna una direcci$n de puerto. -l sistema cuenta con instrucciones privilegiadas IN y U! que permiten a los device drivers leer o escribir en los registros de la controladora. /a instrucci$n genera se5ales en el bus del sistema para seleccionar el dispositivo adecuado. 3.1.3.4 Comparaci ó n de acceso
/os sistemas manejan los dos m'todos de accesos a los registros de la controladora. -l acceso memoryDma!!ed 4J no necesita de instrucciones privilegiadas. -l acceso a trav's de instrucciones tiene la ventaja de no consumir memoria principal. 3.1.3.5 Interacci ó n con la controladora
<'todos para efectuar una operaci$n de entrada6salida8 &spera acti%a ("olling)8 -l procesador le comunica un pedido a la ● controladora del dispositivo y queda en un Hbusy waitin$I consultando a la controladora si est% listo el pedido. ● Interupciones (Interrupts)8 -l procesador le comunica el pedido a la controladora y se libera para realizar otras tareas. Al culminar el pedido el dispositivo, la controladora genera una interrupci$n al procesador. Acceso directo a memoria (DMA # Direct Memory Access )8 1e ● utiliza un chi! especial que permite transferir datos desde alguna controladora a memoria sin que el procesador tenga que intervenir en forma continua. 3.1.3.5.1
Polling
-l sistema queda en busy waitin$ consultando un registro del controlador para saber si est% listo.
Sistemas Operativos - Actualizado al 2008
27
FING - UDELAR $%&' Imprimir un uffer en una impresora&
p = copy_from_user(buffer, k_buffer, count); for (i = 0; i < count; i++) { while (*printer_status_re != "#$%&) ; *printer_'atareister = pi; return_to_user(); 3.1.3.5.2
Interrupciones
-l sistema se independiza del controlador, que genera una interrupci$n cuando finaliza el pedido. -s necesario tener un vector de rutinas de atenci$n de interrupciones (interrupt vector ), que es cargado cuando se inicia el sistema operativo. $%&' Imprimir un uffer en una impresora&
p = copy_from_user(buffer, k_buffer, count); while (*printer_status_re != "#$%&) ; i = 0; *printer_'atareister = pi; sche'uler(); $%&' )utina de atenci*n de la interrupci*n&
if (i == count) unblock_user(); else { i++; *printer_'atareister = pi; return_from_interrupt(); 3.1.3.5.3