Teorico Con Preguntas de Examen

Embed Size (px)

Citation preview

  • 8/18/2019 Teorico Con Preguntas de Examen

    1/236

    FING - UDELAR

    Teórico de Sistemas

    OperativosExtraí do del curso de:

    Facultad de Ingenierí a

    Universidad de la República

    Uruguay

    El material contiene la compaginación de todas las transparencias

    del curso 2008 más el resumen de Mónica Canto del curso 2002.

    Sistemas Operativos - Actualizado al 2008 1

  • 8/18/2019 Teorico Con Preguntas de Examen

    2/236

    FING - UDELAR

    Tabla de Contenidos

    1 Introducció

    n....................................................................................................................131.1 Componentes de un Sistema de Computación.........................................................13

    1.2 Definición de sistema operativo...............................................................................13

    1.2.1 Metas.................................................................................................................13

    1.2.2 Tareas principales.............................................................................................13

    2 Perspectiva 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 personales (Fines ‘80)......................................................................16

    2.5 Sistemas Paralelos (com. ’90)..................................................................................17

    2.6 Taxonomí a de Flynn (comienzos de los '90):..........................................................172.7 Sistemas Paralelos Multiprocesadores.....................................................................18

    2.8 Sistemas Cluster.......................................................................................................19

    2.9 Sistemas de Tiempo Real.........................................................................................20

    2.10 Sistemas Multimedia..............................................................................................20

    2.11 Sistemas de Mano..................................................................................................20

    3 Estructura de los Sistemas de Computación...................................................................22

    3.1 Componentes de un sistema.....................................................................................22

    3.1.1 CPU (procesador)..............................................................................................22

    3.1.2 Memoria............................................................................................................23

    3.1.2.1 Cache.......................................................................................................24

    3.1.2.2 Memoria principal (RAM).......................................................................24

    3.1.2.3 Discos 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ón de acceso...........................................................................27

    3.1.3.5 Interacción con la controladora...............................................................27

    3.1.3.5.1 Polling..............................................................................................27

    3.1.3.5.2 Interrupciones...................................................................................28

    3.1.3.5.3 DMA................................................................................................283.2 Protección de Hardware...........................................................................................29

    3.2.1 Modo Dual........................................................................................................29

    3.2.2 Protección de E/S..............................................................................................30

    3.2.3 Protección de Memoria.....................................................................................31

    3.2.4 Protección de CPU............................................................................................31

    3.3 Red...........................................................................................................................32

    3.3.1 LAN - Local Area Network..............................................................................32

    Sistemas Operativos - Actualizado al 2008 2

  • 8/18/2019 Teorico Con Preguntas de Examen

    3/236

    FING - UDELAR

    3.3.2 WAN - Wide Area Networks............................................................................32

    3.3.3 Topologí as de red..............................................................................................33

    4 Estructura de los Sistemas Operativos............................................................................35

    4.1 Componentes del sistema operativo.........................................................................354.1.1 Administración de procesos..............................................................................35

    4.1.2 Administración de memoria..............................................................................35

    4.1.3 Subsistema de E/S.............................................................................................36

    4.1.4 Administración de almacenamiento secundario...............................................36

    4.1.5 Subsistema de archivos.....................................................................................37

    4.1.6 Red....................................................................................................................37

    4.1.7 Sistema de protección.......................................................................................37

    4.1.8 Intérprete de comandos.....................................................................................37

    4.2 Servicios del SO.......................................................................................................37

    4.2.1 Ejecución de programas....................................................................................38

    4.2.2 Operaciones de Entrada/Salida.........................................................................38

    4.2.3 Manipulación de sistemas de archivos..............................................................38

    4.2.4 Comunicación entre procesos...........................................................................38

    4.2.5 Detección de errores.........................................................................................38

    4.2.6 Propósito General..............................................................................................38

    4.3 Llamados al sistema.................................................................................................38

    4.4 Estructura del sistema..............................................................................................40

    4.4.1 Sistema Monolí tico...........................................................................................41

    4.4.2 Sistema en capas...............................................................................................41

    4.4.3 Sistema con micronúcleo (microkernel)...........................................................42

    4.4.4 Sistema con módulos........................................................................................435 Procesos..........................................................................................................................45

    5.1 Definición de Proceso..............................................................................................45

    5.2 Contador de programa..............................................................................................45

    5.3 Memoria de los procesos.........................................................................................45

    5.4 Estados de los procesos............................................................................................46

    5.5 Transiciones entre estados.......................................................................................47

    5.6 Bloque descriptor de proceso...................................................................................47

    5.7 Creación de procesos...............................................................................................48

      .......................................................................................................................................49

    5.8 Listas y colas de procesos........................................................................................50

    5.9 Cambio de contexto.................................................................................................515.10 Cooperación entre procesos...................................................................................53

    5.11 Threads...................................................................................................................53

    6 Planificación...................................................................................................................58

    6.1 Introducción.............................................................................................................58

    6.2 Clases de procesos...................................................................................................58

    6.3 Esquemas de planificación.......................................................................................58

    Sistemas Operativos - Actualizado al 2008 3

  • 8/18/2019 Teorico Con Preguntas de Examen

    4/236

    FING - UDELAR

    6.4 Criterios de planificación.........................................................................................60

    6.5 Algoritmos de planificación.....................................................................................60

    6.5.1 First-Come First-Served (FCFS)......................................................................60

    6.5.2 Shortest-Job-First (SJF)....................................................................................606.5.3 Basados en Prioridad.........................................................................................61

    6.5.4 Round-Robin (RR)............................................................................................62

    6.5.5 Colas multinivel (Multilevel-Queue)................................................................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 de procesos (PCB)......................................................................68

    7.2 Bloque descriptor de recursos RCB.........................................................................68

    7.3 Transiciones de estados............................................................................................69

    7.4 Operaciones sobre procesos.....................................................................................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áforo binario).....................................................................................72

    8 Administración de memoria............................................................................................73

    8.1 Introducción.............................................................................................................73

    8.2 Conceptos básicos....................................................................................................73

    8.3 Asociación de Direcciones (Address Binding)........................................................75

    8.4 Tipos de direccionamiento.......................................................................................768.5 Carga dinámica (dynamic loading):.........................................................................77

    8.6 Ensamblaje dinámico (dynamic linking).................................................................77

    8.7 Overlays...................................................................................................................78

    8.8 Swapping..................................................................................................................78

    8.9 Asignación de memoria...........................................................................................79

    8.10 Multiprogramación con particiones fijas...............................................................79

    8.11 Multiprogramación con particiones variables........................................................80

    8.12 Estructuras para asignación....................................................................................80

    8.13 Estrategia de asignación.........................................................................................80

    8.14 Fragmentación........................................................................................................81

    8.15 Paginación..............................................................................................................828.16 Direccionamiento en paginación............................................................................82

    8.17 Soporte a nivel de hardware...................................................................................84

    8.18 Tiempo efectivo de acceso (Effective Access Time).............................................86

    8.19 Protección de memoria..........................................................................................86

    8.20 Estructura de la tabla de página.............................................................................87

    8.20.1 Jerárquica........................................................................................................87

    Sistemas Operativos - Actualizado al 2008 4

  • 8/18/2019 Teorico Con Preguntas de Examen

    5/236

    FING - UDELAR

    8.20.2 Diccionarios....................................................................................................88

    8.20.3 Invertida..........................................................................................................89

    8.21 Compartimiento.....................................................................................................89

    8.22 Segmentación.........................................................................................................908.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..................................................................................10810 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..................................................................................11310.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    6/236

    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..................................................................11810.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........................................................................13813.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..................................................................................................15313.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    7/236

    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.............................................16014 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.........................................................................................16514.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:....................................................................................................17114.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    8/236

    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...........................................................................................17515.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.......................................................................................................18616.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.........................................................................19016.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    9/236

    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..................................................................................19317.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..........................................................................................20018.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...................................................................................20318.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    10/236

    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)..................................................................20518.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........................................................................................................21119.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 í sica............................................................................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..................................................21419.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    11/236

    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........................................................................21719.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:......................................................................................22620.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.................................................................................................23020.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    12/236

    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.................................................................................23420.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

  • 8/18/2019 Teorico Con Preguntas de Examen

    13/236

    FING - UDELAR

    11 IntroducciónIntroducció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 tornanproductivo, amigable y eficiente el uso de un computador (hardware) permitiendoejecutar aplicaciones del usuario.

    1.2.1 Metas 

    • Brindar un ambiente para realizar y ejecutar los programas y aplicaciones delos 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 sonincorporadas al sistema operativo o a su entorno.

    1.2.2 Tareas principales 

    ● Proveer uno o varios entornos y conte!to apropiado para la ejecuci$nde los programas de los usuarios de prop$sito general, incluyendoe!clusivamente el c$digo de la aplicaci$n.

    Sistemas Operativos - Actualizado al 2008 13

  • 8/18/2019 Teorico Con Preguntas de Examen

    14/236

    FING - UDELAR

    ● Podr% implementar diferentes entornos adecuados para diferentesusos, como interfaz gr%fica, l"nea de comando o shell, o transaccionaltipo 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 deerrores y mal uso del sistema.

    recuentemente, la porci$n residente del propio sistema operativo se denominan*cleo del sistema (#ernel).

    Sistemas Operativos - Actualizado al 2008 14

  • 8/18/2019 Teorico Con Preguntas de Examen

    15/236

    FING - UDELAR

    22 Perspectiva HistóricaPerspectiva 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 losdispositivos aciendo m%s r%pidas las operaciones e introduciendo por primera vez elsolapamiento o concurrencia de operaciones. -l recurso m%s caro de la 'poca era elprocesador (+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 laimplementaci$n de t'cnicas de multiprogramaci$n permiti$desarrollar t'cnicas de !lanificaci*n de des!acho de  obschedulin$ as" como de multiprogramaci$n.

    -l sistema deb"a seleccionar un subconjunto de trabajos olotes ( obs) que estaban en memoria secundaria para cargaren memoria principal.

    -l sistema operativo seleccionaba un trabajo para ejecutar.+uando el trabajo seleccionado deb"a esperar por algunatarea (por ej. ejecuci$n de una -01), el sistema eleg"a otropara utilizar el procesador.

     #odo esto implic$ el desarrollo de t'cnicas incipientes parael manejo de la memoria, ya que ab"a que compartirla entretodos los trabajos.

    /a multiprogramaci$n incrementa la utilizaci$n del recursoprocesador.

    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 enmemoria y alternar la eecuci*n cuando se !roducen re.uerimientos de E( !or eem!lo/

    Sistemas Operativos - Actualizado al 2008 15

  • 8/18/2019 Teorico Con Preguntas de Examen

    16/236

    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.uea5el 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 elusuario 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 depermitir 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$nl$gica de los sistemas multiprogramados.

    /os usuarios utilizaban terminales para implementar la interacci$n y eranatendidos 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$nde que est% para su uso e!clusivo. -ste intercambio es tan frecuente que el usuariopuede interactuar con el trabajo suyo con total comodidad.

    /a necesidad de acceder y actualizar datos en forma concurrente, cre$ lanecesidad de evolucionar el sistema de arcivos a uno multiusuario, incorporandot'cnicas de protecci$n y serializaci$n del acceso.

    -n estas condiciones, los procesos deben contar con la memoria y procesadornecesarias 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>rames incluy$ monitores de

    teleproceso e interacci$n con los usuarios mediante terminales que operaban enmodo de transmisi$n por bloque.

    2.4 Computadores personales (Fines ‘80)

    +on costos de hardware decrecientes fue posible el dise5o y uso de computadorespersonales.

    -l sistema era dise5ando en base a que ser"a dedicado a un *nico usuario.

    Sistemas Operativos - Actualizado al 2008 16

  • 8/18/2019 Teorico Con Preguntas de Examen

    17/236

    FING - UDELAR

    +on en un principio modestos recursos de procesador, el 'nfasis y desarrolloestuvo por mejorar la interfaz con el usuario.

    Para ello el sistema operativo debi$ ma!imizar la abilidad de interacci$n con elusuario en vez de uso de +PU, etc.

    /a interfaz de comandos abitual y dise5ada para t'cnicos fue substituida por lainterfaz 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"ficasde impresi$n, base de datos, sistema de arcivo, seguridad, correo, etc..

    -sta es la disposici$n reciente donde las aplicaciones se implementan enmodalidad cliente6servidor (t'cnica obsoleta por las nueva erramientasdesarrolladas para 7nternet).

    2.5 Sistemas Paralelos (com. ’90)

    1istemas donde se dispone de m%s de un procesador permiten la ejecuci$nsimult%nea de m%s de un proceso.1e clasifican en8

    ● Sistemas altamente integrados(“tightly coupled ”). 1on sistemasen donde los canales de intercone!i$n son de alta velocidad (buscom*n o memoria compartida).

    ● Sistemas poco integrados (“closely coupled ”). 1istemas endonde 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 secuencialdonde no e!iste paralelismo (sistemas monoprocesadores).

    ● SIMD (Single instruction, Multiple Data)8 sistemas que ejecutan lamisma instrucci$n sobre un conjunto distinto de datos (sistemasvectoriales).

    ● MISD ( Multiple Instruction, Single Data): utilizado paraparalelismo redundante.

    ● MIMD (Multiple Instruction, Multiple Data): sistemas conprocesadores aut$nomos que ejecutan en forma simult%nea diferentesinstrucciones 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 altamenteintegrado. -scalan poco debido a que el acceso a memoria desde losprocesadores se convierte en un 9cuello de botella9.

    ● Sistemas de memoria distribuida8 son sistemas donde los nodosson independientes que se interconectan a trav's de una red de altavelocidad. -scalan a miles de procesadores.

    1 Quitado de las transparencias en 2008

    Sistemas Operativos - Actualizado al 2008 17

  • 8/18/2019 Teorico Con Preguntas de Examen

    18/236

    FING - UDELAR

    2.7 Sistemas Paralelos Multiprocesadores

    ● Sistemas asimétricos8 al surgir los sistemas multiprocesadores losn*cleos de los sistemas operativos se modificaron para soportar estetipo de sistema. /a forma m%s sencilla fue asignar la ejecuci$n dec$digo del n*cleo a un *nico procesador. &e esta forma, los sistemasoperativos 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 otrosprocesadores, generando una jerarqu"a entre ellos.

    ● Sistemas simétricos. al avanzar el dise5o de los sistemas operativosse desarrollaron sistemas en donde el c$digo del n*cleo se dispone enla memoria com*n y puede ser ejecutado por cualquier procesador. 1epierde la jerarqu"a de los sistemas asim'tricos y todos losprocesadores pasan a ser sim'tricos. /a reentrancia< del n*cleo setransforma en una necesidad cr"tica. /os proveedores debieron

    Sistemas Operativos - Actualizado al 2008 18

  • 8/18/2019 Teorico Con Preguntas de Examen

    19/236

    FING - UDELAR

    redise5ar totalmente sus sistemas operacionales. -l c$digo del sistemaoperativo, al igual que el anco de banda de la memoria, setransforman en un recursos cr"ticos, que determinan la escalabilidaddel 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 $enerarinconsistencias/

    Examen diciembre 2003:En un e.ui!o multi!rocesador .ue dis!one de + !rocesadores5 se instal* un sistema o!erativobasado en multi!rocesamiento sim-trico/ ¿%os !rocesos del sistema o!erativo !ueden eecutar encual.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 eecutaren 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-tricofrente a uno asim-trico"

    os sistemas multiprocesadores se caractri!an en dos tipos:

    ● Sistemas "MA (Uniform Memory Access)8 acceso uniforme a lamemoria. +ada procesador accede a cualquier lugar de memoria a lamisma velocidad.

    ● Sistemas #"MA (Non-Uniform Memory Access): acceso nouniforme a la memoria. /os procesadores tienen un conjunto dememoria 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 une.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 unmomento dado/

    2.8 Sistemas Cluster

    1on sistemas donde participan varios nodos. 1e enfocan en brindar altadisponibilidad y balance de carga.

    /os nodos est%n interconectados por varios canales para verificar (monitorear) elestado de cada uno.

    /os cluster  de alta disponibilidad se pueden estructurar en sim'tricos oasim'tricos8

    Sistemas Operativos - Actualizado al 2008 19

  • 8/18/2019 Teorico Con Preguntas de Examen

    20/236

    FING - UDELAR

    ● Simétricos8 todos los nodos ejecutan tareas y asumen las de otrosante fallas (activo6activo).

    ● Asimétricos8 e!isten nodos primarios donde se ejecutan las tareas ynodos secundarios que est%n a la espera de una falla para asumir el rolde primario (activo6pasivo).

    2.9 Sistemas de Tiempo Real

    -n sistemas de este tipo estricto, todo resultado debe producirse en un ciertotiempo, o de lo contrario el sistema falla.

    -n la pr%ctica, sistemas de tiempos compartido con prioridades din%micas ydespaco !reem!tivo en general pueden ser utilizados en estas condiciones ya queadem%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"am$vil. Utilizan sistemas operativos embebidos que tienen grandes limitaciones derecursos 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 lotes2/ 4nteractivos/ 7e tiem!o com!artido+/ 7e tiem!o real3/ 7istribuidos

    es!uesta:

    'or lotesecibe un fluo de trabaos se!arados5 los eecuta y vuelca los resultados de los mismos5devolvi-ndolos !or una im!resora5 medio de almacenamiento o similar/ (e caracterizan

     !or la ausencia de interacci*nentre el usuario y el trabao en tanto .ue este se eecuta/ El t-rmino G!or lotesG serefiere a un modelo en .ue los trabaos similares se a$ru!aban en lotes5 a fin de reducirel tiem!o total dedicado a !re!ararel com!utador entre distintos trabaos/ %os sistemas modernos no !resentan estalimitaci*n/

    4nteractivos'rovee una comunicaci*n en l?nea entre el usuario y el sistema5 donde el usuario dainstrucciones al sistema o a las a!licaciones5 y recibe una res!uesta a la misma/

    7e tiem!o com!artidoEs 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 realEn $eneral se usan !ara el control de a!licaciones dedicadas/ Hiene restriccionestem!orales bien definidas5 !or lo .ue si el !rocesamiento no se lleva a cabo dentro del?mites es!erados5 el sistema falla/

    7istribuidos(on un conunto de com!utadoras inde!endientes Bdesaco!ladas en cuanto a hardware5no com!arten memoria ni relo; comunicadas !or una red5 .ue se !resentan al usuarioen la mayor medida .ue sea !osible5 como un 8nico sistema/ (u motivaci*n soncom!artir recursos Bmeorar la utilizaci*n; y aumentar tanto la escalabilidad como laconfiabilidad/

    Examen marzo 200+:

    Sistemas Operativos - Actualizado al 2008 20

  • 8/18/2019 Teorico Con Preguntas de Examen

    21/236

    FING - UDELAR

    7escriba brevemente: sistemas batch5 sistemas de tiem!o com!artido5 sistemas de tiem!o real ysistemas 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 enhardware5 donde los !rocesadores no com!arten memoria f?sica ni relo/ El obetivo escom!artir recursos5 com!artir car$as5 sostenerla comunicaci*n entre !rocesos y usuarios5 y aumentar la confiabilidad delconunto/

    (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 hacersedentro de un mar$en de tiem!o definido/ Ieneralemente se utilizar J= en vez dealmacenamiento secundario/ (uelen utilizarse !ara a!licaciones dedicadas/

    Sistemas Operativos - Actualizado al 2008 21

  • 8/18/2019 Teorico Con Preguntas de Examen

    22/236

    FING - UDELAR

    33 Estructura de los Sistemas deEstructura de los Sistemas de 

    ComputaciónComputación3.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.

    MemoriaPermite mantener la informaci$n disponible.-!iste una :erarqu"a de memoria8 registros, caches, memoria f"sica detipo ;A< (andom Access =emory ), dispositivos magn'ticos y $pticos.

    Dispositi%os de &ntrada'Salida(I)

    Permiten interactuar con elsistema. 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 unsistema puede aber m%s de una.

    -l ciclo b%sico consiste en tomar la instrucci$n apuntada por el P+ ( !ro$ramcounter ) (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 enparalelo (fetchin$5 decodin$5 executin$). -sta t'cnica es conocida como !i!elin$. CadaC'1 eecuta un conunto de instrucciones es!ec?ficoBverificar;/

    -!isten varias arquitecturas de procesadores, se clasifican en IS$ (educed4nstruction (et Com!uter ) y $IS$ (Com!lex 4nstruction (et Com!uter ). Algunasarquitecturas8 1PA;+, !=>, Po?er, 7tanium.

    /a velocidad del procesador es varios $rdenes de magnitud mayor que lavelocidad de acceso a informaci$n que est% en memoria vol%til (;A

  • 8/18/2019 Teorico Con Preguntas de Examen

    23/236

    FING - UDELAR

    /os operandos pueden ser inmediatos, registros, relativos, de memoria &1817Cseg*n diferentes t'cnicas. (visto en Arquitectura de sistemas).

    /as familias de instrucciones incluyen8 aritm'ticas, l$gicas, transferencia controlB)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 .● Caches8

    ○ @er. Divel (del orden de 3 Eb).○ do. Divel (del orden de F@Eb a

  • 8/18/2019 Teorico Con Preguntas de Examen

    24/236

    FING - UDELAR

    3.1.2.1 Cache 

    -l cache es un principio muy importante, es utilizado a varios niveles en el sistemade computaci$n (hardware, sistema operativo, software).

    -l concepto es mantener una copia de la memoria que est% siendo utilizada en unmedio 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 dise5oimportante.

    -l tama5o del cache y sus pol"ticas de reemplazo tienen un alto impacto en lamejora real de la !erformance.

    Examen marzo 2009:¿,u- entiende !or memoria cache"

    $o*erencia de cacheUn 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

  • 8/18/2019 Teorico Con Preguntas de Examen

    25/236

    FING - UDELAR

    ● Pistas (tracks): /a superficie de los platos es dividida l$gicamente enpistas circulares.

    ● Sectores (sectors): +ada pista es dividida en un conjunto de

    sectores.● $ilindros (cylinder ): -l conjunto de pistas (de todos los platos) que

    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

    datos van entre el disco y la computadora.● +iempo de posicionamiento ( positioning time): es el tiempo que

    se tarda en ubicar el brazo en el cilindro adecuado (see# time), m%s eltiempo de rotar el plato al sector adecuado (rotational latency ).

    /a unidad de transferencia es el bloque. Gcasionalmente los bloques pueden estarcon 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

  • 8/18/2019 Teorico Con Preguntas de Examen

    26/236

    FING - UDELAR

    /a controladora es un chi! que controla f"sicamente al dispositivo. Aceptacomandos del sistema operativo y los ejecuta (genera las correspondientes se5alessobre 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 losdispositivos.

    Examen marzo 2003:¿,u- es lo .ue im!lementan los maneadores de los dis!ositivos Bdevice drivers;" ¿>orman !artedel 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 unainterfaz !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 osoftware"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< conla controladora del dis!ositivo/ El maneador de dis!ositivo Bdevice driver;5 !or lo $eneral5im!lementa un conunto de !rimitivas de alto nivel Bim!uestas !or el sistema o!erativo;5 .uerealizan 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 comunicarsecon ella y ejecutar comandos. -j.8 la controladora de un disco podr"a tener registrospara especificar la direcci$n en disco, la direcci$n en memoria principal, el n*merode sectores y el sentido (lectura y escritura).

    Acceso a los registros de la controladora8

    Memory-mapped-I8 /os registros son mapeados a direcciones dememoria principal.

    • Direct I instructions8 A los registros se les asigna una direcci$n depuerto (4J !ort address)/

    3.1.3.2 Memory-mapped-IO 

    Para facilitar el acceso a registros de los dispositivos, se reserva un espacio de lamemoria principal que mapea a los registros del dispositivo.

    Sistemas Operativos - Actualizado al 2008 26

  • 8/18/2019 Teorico Con Preguntas de Examen

    27/236

    FING - UDELAR

    /eer o escribir en los registros de los dispositivos se traduce en leer o escribirsobre las direcciones de memoria. Al operar sobre estas direcciones de memoria segenera 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 lamemoria !rinci!al/

    3.1.3.3 IO port address 

    A cada registro se leasigna una direcci$n depuerto.

    -l sistema cuenta coninstruccionesprivilegiadas IN y U!

    que permiten a los devicedrivers leer o escribir enlos registros de lacontroladora.

    /a instrucci$n generase5ales en el bus delsistema para seleccionarel dispositivo adecuado.

    3.1.3.4 Comparaci ó n de acceso 

    /os sistemas manejan los dos m'todos de accesos a los registros de lacontroladora.

    -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 

  • 8/18/2019 Teorico Con Preguntas de Examen

    28/236

    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 cuandofinaliza el pedido.

    -s necesario tener un vector de rutinas de atenci$n de interrupciones (interruptvector ), 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 DMA

    1e dispone de un dispositivo especializado que permite realizar transferenciasdesde ciertos dispositivos a memoria. /a transferencia sea ace en paralelo mientrasel procesador realiza otras tareas.

    -l procesador carga ciertos registros en el controlador &

  • 8/18/2019 Teorico Con Preguntas de Examen

    29/236

    FING - UDELAR

    7escriba dos m-todos a trav-s de los cuáles el sistema o!erativo se entera de .ue un dis!ositivode E( ha finalizado un !edido $enerado !or el sistema o!erativo5 mencionando las !rinci!alescaracter?sticas de cada uno y com!are los mismos/

    es!uesta:'ollin$ B@ota: ver si hay diferencia con 'ro$rammed 4J; e 4nterru!ciones/

    'ollin$: El sistema realiza el !edido y .ueda en una iteraci*n consultando el Pbusy bitQ delcontrolador del dis!ositivo hasta .ue este .uede lim!io BseMal .ue finaliz*;/

    4nterru!ciones:El sistema realiza el !edido y será avisado de la finalizaci*n a trav-s de unainterru!ci*n/

    El !ollin$ tiene como desventaa el hacer Pbusy waitin$Q/ Ciclos de C'1 serán des!erdiciados/ Encambio el m-todo de interru!ciones !ermite eecutar otros !rocesos mientras el dis!ositivorealiza el !edido/ El !ollin$ ser?a 8til en casos en .ue el dis!ositivo est- libre y .ue ten$a mayorvelocidad .ue la del !rocesador/ %as interru!ciones !ermiten un maneo asincr*nico y además

     !ermiten ser atendidas cuando el sistema o!erativo lo crea conveniente/

    Examen diciembre 2006:7escriba m-todos !ara efectuar una o!eraci*n de Entrada(alida/ B>ormas de interacci*n con lacontroladora del dis!ositivo;/

    3.2 Protección de Hardware +on la introducci$n de sistemas multiprogramados y multiusuarios se empezaron

    a generar problemas debido a procesos mal programados o mal intencionados.ue necesario la introducci$n de protecci$n entre los distintos procesos que

    ejecutaban en un sistema.-l hardware fue proveyendo a los sistemas operativos de mecanismos para la

    protecci$n8

    ● Modo Dual8 se provee de al menos dos modos de operaci$n.● Protecci-n de &'S8 todas las instrucciones de -ntrada01alida son

    privilegiadas.● Protecci-n de Memoria8 evaluaci$n de las direcciones de memoria a

    trav's de la

  • 8/18/2019 Teorico Con Preguntas de Examen

    30/236

    FING - UDELAR

    • Modo usuario (user mode)8 en este modo de ejecuci$n se puedeejecutar un conjunto reducido de instrucciones de hardware. /osprocesos a nivel de usuarios ejecutan en este modo.

    Modo monitor (monitor mode)8 en este modo todas lasinstrucciones de hardware est%n disponibles. -l sistema operativo es el*nico que debe ejecutar en este modo.

    Un bit , llamado mode it , es agregado al hardware para indicar el modo actual./a ejecuci$n de instrucciones privilegiadas en el modo monitor garantiza que los

    procesos, a nivel de usuario, no accedan directamente a los dispositivos de -01.-l acceso a un dispositivo se realiza a trav's de los servicios que brinda el sistema

    operativo (syscall)./a solicitud de un servicio al sistema operativo es tratado como una interrupci$n a

    nivel de software (tra!), y en ese momento el sistema pasa de modo usuario a modomonitor.

    -n Intel la instrucci$n int +. genera el cambio de modo.Posteriormente, se ejecuta el handler de la e!cepci$n 3!=3 (@= decimal).

    Es.uema $ráfico del cambio de modo:

    Examen marzo 200:¿'or .ue es necesario contar con dos modos de eecuci*n distintos como ser modo su!ervisor ymodousuario"/ Ex!li.ue en detalle los !rocedimientos .ue !ermiten $arantizar la inte$ridad de unsistemao!erativo multiusuario/

    e!uesta:'ara ase$urar la ausencia de inteferencias entre !rocesos5 en !articular la memoria en unambiente de multi!ro$ramaci*n5 donde es com!artida entre distintos !ro$ramas y el mismosistema/ Es !osible definiendo un conunto de instrucciones !rivile$iadas .ue el hardware

     !ermite eecutar s*lo en modo su!ervisor5 y un !rotocolo .ue !ara aumentar el nivel de eecuci*ntransfiere el control a c*di$o autenticado del #ernel/

    Examen diciembre 200+:¿,u- !ermite el bit de modo !rovisto a nivel de hardware"

    es!uesta:El bit de modo !ermite tener dos modos de eecuci*n: modo monitor y modo de usuario/El sistema o!erativo eecuta en modo monitor y los !rocesos de usuario eecutan en modo deusuario/7e esta forma5 se !ermite !rote$er el sistema de !ro$ramas .ue funcionan mal/

    3.2.2 Protecci ó n de E/S 

    -s necesario proteger al sistema de que los procesos a nivel de usuario noaccedan directamente a los dispositivos, sino que deben acerlo a trav's del 1G.

    Sistemas Operativos - Actualizado al 2008 30

  • 8/18/2019 Teorico Con Preguntas de Examen

    31/236

    FING - UDELAR

     #odas las instrucciones de -01 se definen como privilegiadas.Asegurarse que un programa a nivel de usuario nunca pueda lograr cambiar el

    modo a monitor. Un usuario podr"a ingresar una nueva interrupci$n, modificar una yae!istente, o cambiar el vector de interrupci$n y luego generar un tra! (interrupci$n

    por software) para que ejecute.

    3.2.3 Protecci ó n de Memoria 

    -s necesario proteger la memoria del n*cleo (p.ej.8 el vector de interrupciones) y,a su vez, proteger el acceso de memoria entre los distintos procesos (un proceso nodeber"a acceder a la memoria de otro).

    -l sistema debe lograr saber si cada direcci$n generada por un proceso es v%lida.Para esto se necesario de dos registros8

    ● ase: +ontiene la direcci$n de memoria f"sica m%s baja que puedeacceder.

    ● /mite: +ontiene el tama5o del memoria a partir del base.

    Es.uema $ráfico de la !rotecci*n a trav-s de re$istros base y l?mite:

    +ada direcci$n f"sica generada por la +PU debe ser controlada para comprobar sies una direcci$n v%lida. -n caso de una acceso inv%lido se genera un tra! al sistemaoperativo.

    /a unidad que ace convierte direcciones l$gicas a f"sicas es la MM" (=emory=ana$ement 1nit )5 y es la que controla el acceso a memoria.

    /os unidad

  • 8/18/2019 Teorico Con Preguntas de Examen

    32/236

    FING - UDELAR

    Una alternativa es la utilizaci$n de un timer que interrumpa el procesador cadacierto tiempo (watch do$ timer ).

    -l sistema operativo al asignar la +PU carga un contador. +ada vez que lainterrupci$n de timer se genera se ejecuta la rutina de atenci$n correspondiente.

    -n la rutina de atenci$n de la interrupci$n el contador es decrementado(envejecimiento). 1i llega al valor 3, se le quita el recurso procesador al proceso y seinvoca al planificador.

    /a instrucci$n que perm