Fundamentos De Sistemas Operativos / Gunnar Wolf [Y Tres Más]
Total Page:16
File Type:pdf, Size:1020Kb
FUNDAMENTOS DE SISTEMAS OPERATIVOS Fuente: http://github.org/gwolf/sistop Compilación: 2015/06/02-13:41:24 Versión C51FA2B UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Dr. José Narro Robles Rector Dr. Eduardo Bárzana García Secretario General Ing. Leopoldo Silva Gutiérrez Secretario Administrativo Dra. Estela Morales Campos Coordinadora de Humanidades INSTITUTO DE INVESTIGACIONES ECONÓMICAS Dra. Verónica Villarespe Reyes Directora Mtra. Berenice Ramírez López Secretaria Académica Aristeo Tovías García Secretario Técnico María Soledad Simón Pinero Jefa del Departamento de Ediciones FACULTAD DE INGENIERÍA Dr. Carlos Agustín Escalante Sandoval Director Ing. Gonzalo López de Haro Secretario General Dr. Boris Escalante Ramírez Jefe de la División de Ingeniería Eléctrica Mtra. María Cuairán Ruidíaz Jefa de la Unidad de Apoyo Editorial FUNDAMENTOS DE SISTEMAS OPERATIVOS Gunnar Wolf Esteban Ruiz Federico Bergero Erwin Meza UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO INSTITUTO DE INVESTIGACIONES ECONÓMICAS FACULTAD DE INGENIERÍA Esta investigación, arbitrada por pares académicos, se privilegia con el aval de la institución editora. Fundamentos de sistemas operativos / Gunnar Wolf [y tres más]. – Primera edición. – México D.F. : Universidad Nacional Autónoma de México, Instituto de Investigaciones Económicas : Facultad de Ingeniería, 2015. 367 p. : ilustraciones ; 28 cm. Bibliografía: páginas 359-367 ISBN 978-607-02-6544-0 1. Sistemas operativos (Computadoras). 2. Sistemas de software. 3. Organización de archivos (Informática). I. Wolf, Gunnar, autor. II. Universidad Nacional Autónoma de México. Instituto de Investigaciones Económi- cas. III. Universidad Nacional Autónoma de México. Facultad de Ingeniería. 005.43-scdd21 Biblioteca Nacional de México Primera edición 8 de abril de 2015 D. R. © UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Ciudad Universitaria, Coyoacán, 04510, México D.F. INSTITUTO DE INVESTIGACIONES ECONÓMICAS Circuito Mario de la Cueva s/n Ciudad de la Investigación en Humanidades 04510, México D.F. FACULTAD DE INGENIERÍA Av. Universidad 3000 Ciudad Universitaria 04510, México D.F. ISBN 978-607-02-6544-0 Diseño de portada: Victoria Jiménez Diseño de interiores y formación: Gunnar Wolf Corrección y cuidado de la edición: Marisol Simón Impreso y hecho en México ¡Copia este libro! Los textos que componen este libro se publican bajo formas de licenciamiento que permiten la copia, la redistribución y la realización de obras derivadas siempre y cuando éstas se distribuyan bajo las mismas licencias libres y se cite la fuente. El copyright de los textos individuales corresponde a los respectivos autores. El presente trabajo está licenciado bajo un esquema Creative Commons Atribución CompartirIgual (CC-BY-SA) 4.0 Internacional. http://creativecommons.org/licenses/by-sa/4.0/deed.es Compartir no es delito. La versión electrónica de este libro está disponible en: http://sistop.org/ Índice general Presentación 11 1. Punto de partida 17 1.1. ¿Qué es un sistema operativo?.................... 17 1.1.1. ¿Por qué estudiar los sistemas operativos?........ 17 1.2. Funciones y objetivos del sistema operativo............ 18 1.3. Evolución de los sistemas operativos................ 19 1.3.1. Proceso por lotes (batch processing)............. 19 1.3.2. Sistemas en lotes con dispositivos de carga (spool).... 20 1.3.3. Sistemas multiprogramados................. 20 1.3.4. Sistemas de tiempo compartido............... 21 1.4. Y del lado de las computadoras personales............ 22 1.4.1. Primeros sistemas para entusiastas............. 22 1.4.2. La revolución de los 8 bits.................. 23 1.4.3. La computadora para fines “serios”: la familia PC .... 23 1.4.4. El impacto del entorno gráfico (WIMP)........... 24 1.4.5. Convergencia de los dos grandes mercados........ 25 1.5. Dispositivos móviles......................... 27 1.5.1. Reseña histórica........................ 27 1.5.2. Características diferenciadoras............... 31 1.6. Seguridad informática........................ 35 1.6.1. Código malicioso....................... 36 1.7. Organización de los sistemas operativos.............. 37 1.8. Ejercicios................................ 39 1.8.1. Preguntas de autoevaluación................ 39 1.8.2. Lecturas relacionadas.................... 41 2. Relación con el hardware 43 2.1. Introducción.............................. 43 2.2. Unidad de procesamiento...................... 43 2.2.1. Jerarquía de almacenamiento................ 44 2.2.2. Interrupciones y excepciones................ 46 5 6 ÍNDICE GENERAL 2.3. Las terminales............................. 49 2.4. Dispositivos de almacenamiento.................. 49 2.5. Relojes y temporizadores....................... 50 2.6. Canales y puentes........................... 51 2.6.1. Contención.......................... 52 2.6.2. Acceso directo a memoria (DMA).............. 53 2.7. Interfaz del sistema operativo: llamadas al sistema........ 54 2.7.1. Llamadas al sistema, arquitecturas y API ......... 55 2.8. Referencia a los componentes.................... 57 2.9. Cuando dos cabezas piensan mejor que una............ 58 2.9.1. Multiprocesamiento..................... 58 2.9.2. Cómputo distribuido..................... 62 2.9.3. Amdahl y Gustafson: ¿qué esperar del paralelismo?... 63 2.10. Ejercicios................................ 66 2.10.1. Preguntas de autoevaluación................ 66 2.10.2. Temas de investigación sugeridos............. 67 2.10.3. Lecturas relacionadas.................... 68 3. Administración de procesos 69 3.1. Concepto y estados de un proceso................. 69 3.1.1. Estados de un proceso.................... 69 3.1.2. Información asociada a un proceso............. 70 3.2. Procesos e hilos............................ 71 3.2.1. Los hilos y el sistema operativo............... 72 3.2.2. Patrones de trabajo con hilos................ 72 3.3. Concurrencia............................. 75 3.3.1. Introducción.......................... 75 3.3.2. Problema: el jardín ornamental............... 76 3.3.3. Mecanismos de sincronización............... 86 3.3.4. Problema productor-consumidor.............. 95 3.3.5. Bloqueos mutuos e inanición................ 97 3.3.6. Problema de los lectores y los escritores.......... 98 3.3.7. La cena de los filósofos.................... 100 3.3.8. Los fumadores compulsivos................. 102 3.3.9. Otros mecanismos...................... 105 3.4. Bloqueos mutuos........................... 110 3.4.1. Prevención de bloqueos................... 113 3.4.2. Evasión de bloqueos..................... 115 3.4.3. Detección y recuperación de bloqueos........... 120 3.4.4. Algoritmo del avestruz................... 124 3.5. Ejercicios................................ 126 3.5.1. Preguntas de autoevaluación................ 126 3.5.2. Temas de investigación sugeridos............. 128 3.5.3. Lecturas relacionadas.................... 129 ÍNDICE GENERAL 7 4. Planificación de procesos 131 4.1. Tipos de planificación......................... 131 4.1.1. Tipos de proceso....................... 133 4.1.2. Midiendo la respuesta.................... 134 4.2. Algoritmos de planificación..................... 137 4.2.1. Objetivos de la planificación................ 138 4.2.2. Primero llegado, primero servido (FCFS).......... 139 4.2.3. Ronda (Round Robin)..................... 140 4.2.4. El proceso más corto a continuación (SPN, shortest process next).............................. 142 4.2.5. Ronda egoísta (SRR, selfish round robin)........... 144 4.2.6. Retroalimentación multinivel (FB, multilevel feedback). 145 4.2.7. Lotería............................. 148 4.2.8. Esquemas híbridos...................... 149 4.2.9. Resumiendo.......................... 151 4.3. Planificación de hilos......................... 154 4.3.1. Los hilos POSIX (pthreads)................ 155 4.4. Planificación de multiprocesadores................. 156 4.4.1. Afinidad a procesador.................... 156 4.4.2. Balanceo de cargas...................... 157 4.4.3. Colas de procesos: ¿una o varias?.............. 158 4.4.4. Procesadores con soporte a hilos hardware ......... 158 4.5. Tiempo real.............................. 160 4.5.1. Tiempo real duro y suave.................. 161 4.5.2. Sistema operativo interrumpible (prevenible)....... 162 4.5.3. Inversión de prioridades................... 162 4.6. Ejercicios................................ 163 4.6.1. Preguntas de autoevaluación................ 163 4.6.2. Temas de investigación sugeridos............. 164 4.6.3. Lecturas relacionadas.................... 165 5. Administración de memoria 167 5.1. Funciones y operaciones....................... 167 5.1.1. Espacio de direccionamiento................ 167 5.1.2. Hardware: la unidad de manejo de memoria (MMU)... 168 5.1.3. La memoria caché ....................... 169 5.1.4. El espacio en memoria de un proceso........... 172 5.1.5. Resolución de direcciones.................. 173 5.2. Asignación de memoria contigua.................. 174 5.2.1. Partición de la memoria................... 175 5.3. Segmentación............................. 178 5.3.1. Permisos............................ 179 5.3.2. Intercambio parcial...................... 180 5.3.3. Ejemplificando........................ 181 8 ÍNDICE GENERAL 5.4. Paginación............................... 182 5.4.1. Tamaño de la página..................... 184 5.4.2. Almacenamiento de la tabla de páginas.......... 185 5.4.3. Memoria compartida..................... 188 5.5. Memoria virtual............................ 191 5.5.1. Paginación sobre demanda................. 193 5.5.2. Rendimiento.........................