Formatted contents note |
Introducción página, 1 / ¿Qué es un sistema operativo?, 3 / El sistema operativo como una máquina extendida, 4 / El sistema operativo como administrador de recursos, 6 / Historia de los sistemas operativos, 7 / La primera generación (1945 a 1955): tubos al vacío, 7 / La segunda generación (1955 a 1965): transistores y sistemas de procesamiento por lotes, 8 / La tercera generación (1965 a 1980): circuitos integrados y multiprogramación, 10 / La cuarta generación (1980 a la fecha): las computadoras personales, 15 / Revisión del hardware de computadora, 19 / Procesadores, 19 / Memoria, 23 / Discos, 26 / cintas, 27 / Dispositivos de e/s, 27 / Buses, 30 / Arranque de la computadora, 33 / Los tipos . los tipos de sistemas operativos, 33 / Sistemas operativos de mainframe, 34 / Sistemas operativos de servidores, 34 / Sistemas operativos de multiprocesadores, 34 / Sistemas operativos de computadoras personales, 35 / Sistemas operativos de computadoras de bolsillo, 35 / Sistemas operativos integrados, 35 / Sistemas operativos de nodos sensores, 36 / Sistemas operativos en tiempo real, 36 / Sistemas operativos de tarjetas inteligentes, 37 / Conceptos de los sistemas operativos, 37 / Procesos, 38 / Espacios de direcciones, 40 / Archivos, 40 / Entrada/salida, 43 / Protección, 44 / El Shell, 44 / La ontogenia recapitula la filogenia, 46 / Llamadas al sistema, 49 / Llamadas al sistema para la administración de procesos, 52 / Llamadas al sistema para la administración de archivos, 56 / Llamadas al sistema para la administración de directorios, 57 / Miscelánea de llamadas al sistema, 58 / La api win, 32 de Windows, 59 / Estructura de un sistema operativo, 62 / Sistemas monolíticos, 62 / Sistemas de capas, 63 / Microkernels, 64 / Modelo cliente-servidor, 67 / Máquinas virtuales, 67 / Exokernels, 71 / El mundo según c, 72 / El lenguaje c, 72 / Archivos de encabezado, 73 / Proyectos de programación extensos, 74 / El modelo del tiempo de ejecución, 75 / Investigación acerca de los sistemas operativos, 76 / Descripción general sobre el resto de este libro, 77 / unidades numéricas, 78 / resumen, 79 / procesos e hilos, 83 / Procesos, 83 / El modelo del proceso, 84 / Creación de un proceso, 86 / Terminación de procesos, 88 / Jerarquías de procesos, 89 / Estados de un proceso, 90 / Implementación de los procesos, 91 / Modelación de la multiprogramación, 93 / Hilos, 95 / Uso de hilos, 95 / El modelo clásico de hilo, 100 / Hilos en posix, 104 / Implementación de hilos en el espacio de usuario, 106 / implementación de hilos en el kernel, 109 / implementaciones híbridas, 110 / Activaciones del planificador, 111 / Hilos emergentes, 112 / Conversión de código de hilado simple a multihilado, 114 / Comunicación entre procesos, 117 / Condiciones de carrera, 117 / Regiones críticas, 119 / Exclusión mutua con espera ocupada, 120 / Dormir y despertar, 125 / Semáforos, 128 / mutexes, 130 / Monitores 134, / Pasaje (transmisión) de mensajes, 140 / Barreras, 144 / Planificación, 145 / Introducción a la planificación, 145 / Planificación en sistemas de procesamiento por lotes, 152 / Planificación en sistemas interactivos, 154 / Planificación en sistemas de tiempo real, 160 / Política contra mecanismo, 161 / Planificación de hilos, 162 / Problemas clásicos de comunicación entre procesos (IPC), 163 / El problema de los filósofos comelones, 164 / El problema de los lectores y escritores, 167 / Investigación acerca de los procesos e hilos, 168 / Resumen, 169 / Administración de memoria, 175 / Sin abstracción de memoria, 176 / Una abstracción de memoria: una abstracción de memoria : espacios de direcciones, 179 / Una abstracción de memoria : espacio de direcciones, 179 / La noción de un espacio de direcciones, 180 / Intercambio, 181 / Administración de memoria libre, 184 / Memoria virtual, 188 / Paginación, 189 / Tablas de páginas, 193 / Aceleración de la paginación, 194 / Tablas de páginas para memorias extensas, 198 / Algoritmos de reemplazo de páginas, 201 / El algoritmo de reemplazo de páginas óptimo, 202 / El algoritmo de reemplazo de páginas: no usadas recientemente, 203 / El algoritmo de reemplazo de páginas: primera en entrar, primera en salir (fifo), 204 / El algoritmo de reemplazo de páginas: segunda oportunidad, 204 / El algoritmo de reemplazo de páginas: reloj, 205 / El algoritmo de reemplazo de páginas: menos usadas recientemente (lru), 206 / Simulación de lru en software, 207 / El algoritmo de reemplazo de páginas: conjunto de trabajo, 209 / El algoritmo de reemplazo de páginas wsclock, 213 / Resumen de los algoritmos de reemplazo de páginas, 215 / Cuestiones de diseño para sistemas de paginación, 216 / Políticas de asignación local contra las de asignación global, 216 / Control de carga, 218 / Tamaño de página, 219 / Espacios separados de instrucciones y de datos, 221 / Páginas compartidas, 221 / Bibliotecas compartidas, 223 / Archivos asociados, 225 / Política de limpieza, 226 / Interfaz de memoria virtual, 226 / Cuestiones de implementación, 227 / Participación del sistema operativo en la paginación, 227 / Manejo de fallos de página, 228 / Respaldo de instrucción, 229 / Bloqueo de páginas en memoria, 230 / Almacén de respaldo, 231 / Separación de política y mecanismo, 233 / Segmentación, 234 / Implementación de segmentación pura, 237 / Segmentación con paginación: multics, 238 / Segmentación con paginación: Intel Pentium, 242 / Investigación acerca de la administración de memoria, 247 / Resumen, 248 / Sistemas de archivos, 255 / Archivos, 257 / Nomenclatura de archivos, 257 / Estructura de archivos, 259 / Tipos de archivos, 260 / Acceso a archivos, 262 / Atributos de archivos, 263 / Operaciones de archivos, 264 / un programa de ejemplo que utiliza llamadas al sistema de archivos, 265 / directorios, 268 / Sistemas de directorios de un solo nivel, 268 / Sistemas de directorios jerárquicos, 268 / Nombres de rutas, 269 / Operaciones de directorios, 272 / Implementación de sistemas de archivos, 273 / Distribución del sistema de archivos, 273 / Implementación de archivos, 274 / Implementación de directorios, 280 / Archivos compartidos, 283 / Sistemas de archivos estructurados por registro, 285 / Sistemas de archivos por bitácora, 287 Sistemas de archivos virtuales, 288 / Administración y optimización de sistema de archivos, 292 / Administración del espacio en disco, 292 / Respaldos del sistema de archivos, 298 / Consistencia del sistema de archivos, 304 / Rendimiento del sistema de archivos, 307 / Desfragmentación de discos, 311/ Ejemplos de sistema de archivos, 312 / Sistemas de archivos de CD-ROM, 312 / El sistema de archivos MS-DOS, 318 / El sistema de archivos v7 de Unix, 321 / Investigación acerca de los sistemas de archivos, 324 / Resumen, 324 / entrada/salida, 329 / Principios del hardware de e/s , 329 / Dispositivos de e/s, 330 / Controladores de dispositivos, 331 / e/s por asignación de memoria, 332 / Acceso directo a memoria (dma), 336 / Repaso de las interrupciones, 339 / Fundamentos de software de e/s, 343 / Objetivos del software de e/s, 343 / e/s Programada, 344 / e/s Controlada por interrupciones, 346 / e/s Mediante el uso de dma, 347 / Capas del software de s/e,348 / e/s, 348 / Manejadores de interrupciones, 348 / Drivers de dispositivos, 349 / Software de e/s independiente del dispositivo, 353 / Software de e/s En espacio de usuario, 359 / Discos 360, / Hardware de disco, 361 / Formato de disco, 376 / Algoritmos de programación del brazo del disco, 379 / Manejo de errores, 382 / Almacenamiento estable, 385 / Relojes, 388 / Hardware de reloj, 388 / Software de reloj, 390 / Temporizadores de software, 393 / Interfaces de usuarios: teclado, ratón, monitor, 394 / Software de entrada, 394 / Software de salida, 399 / Clientes delgados, 415 / Administración de energía, 417 / Cuestiones de hardware, 418 / Cuestiones del sistema operativo, 419 / Cuestiones de los programas de aplicaciones, 424 / Investigación acerca de la e/s, 425 / Resumen, 426 / Interbloqueos, 433 / recursos, 434 / Recursos apropiativos y no apropiativos, 434 / Adquisición de recursos, 435 / Introducción a los interbloqueos, 437 / Condiciones para los interbloqueos de recursos, 438 / Modelado de interbloqueos, 438 / El algoritmo de la avestruz, 441 / Detección y recuperación de un interbloqueo, 442 / Detección de interbloqueos con un recurso de cada tipo, 442 / Detección del interbloqueo con varios recursos de cada tipo, 444 / Recuperación de un interbloqueo, 447 / Como evitar interbloqueos, 448 / Trayectorias de los recursos, 449 / Estados seguros e inseguros, 450 / El algoritmo del banquero para un solo recurso, 451 / El algoritmo del banquero para varios recursos, 452 / Como prevenir interbloqueos, 454 / Cómo atacar la condición de exclusión mutua, 454 / Cómo atacar la condición de contención y espera, 455 / Cómo atacar la condición no apropiativa, 455 / Cómo atacar la condición de espera circular, 456 / Otras cuestiones, 457 / Bloqueo de dos fases, 457 / Interbloqueos de comunicaciones, 458 / Bloqueo activo, 459 / Inanición, 461 / Investigación sobre los interbloqueos, 461 / Resumen, 462 / Sistemas operativos multimedia, 467 / Codificación de videos, 473 / Codificación de audio, 476 / Comprensión de video, 478 / El estándar jpeg, 478 / El estándar mpeg, 481 / Comprensión de audio, 484 / Programación de procesos multimedia, 487 / Procesos de programación homogéneos, 488 / Programación general en tiempo real, 488 / Programación monotónica en frecuencia, 490 / Programación del menor tiempo de respuesta primero, 491 / Paradigmas de los sistemas de archivos multimedia, 493 / Funciones de control de VCR, 494 / Video casi bajo demanda, 496 / Video casi bajo demanda con funciones de VCR, 498 / Colocación de los archivos, 499 / Colocación de un archivo en un solo disco, 500 / Dos estrategias alternativas de organización de archivos, 501 / Colocación de archivos para el video casi bajo demanda, 504 / Colocación de varios archivos en un solo disco, 506 / Colocación de archivos en varios discos, 508 / Uso de cache, 510 / Caché de bloque, 511 / Caché de archivo, 512 / Programación de discos para multimedia, 513 / Programación de discos estática, 513 / Programación de disco dinámica, 515 / Investigación sobre multimedia, 516 / Resumen, 517 / Sisteas múltiples procesadores, 523 / Multiprocesadores, 526 / Hardware de multiprocesador, 526 / Tipos de sistemas operativos multiprocesador, 534 / Sincronización de multiprocesadores, 538 / Planificación de multiprocesadores, 542 / Multicomputadoras, 548 / Hardware de una multicomputadora, 549 / Software de comunicación de bajo nivel, 553 / Software de comunicación a nivel de usuario, 555 / Llamada a procedimiento remoto, 558 / Memoria compartida distribuida, 560 / Planificación de multicomputadoras, 565 / balanceo de carga, 565 / Virtualización, 568 / Requerimientos para la virtualización, 570 / Hipervisores de tipo 1, 571 / Hipervisores de tipo 2, 572 / Paravirtualización, 574 / Virtualización de la memoria, 576 / Virtualización de la e/s, 578 / Dispositivos virtuales, 579 / Máquinas virtuales en cpus de multinúcleo, 579 / Cuestiones sobre licencias, 580 / Sistemas distribuidos, 580 / Hardware de red, 583 / Protocolos y servicios de red, 586 / Middleware basado en documentos, 590 / Middleware basado en sistemas de archivos, 591 / Middleware basado en objetos, 596 / Middleware basado en coordinación, 598 / Grids (mallas), 603 / Investigación sobre los sistemas de múltiples procesadores, 604 / Resumen, 605 / Seguridad, 611 / El entorno de seguridad, 613 / Amenazas 613 / Intrusos, 615 / Pérdida accidental de datos 616 / Fundamentos de la criptografía (cifrado), 616 / Criptografía de clave secreta, 617 / Criptografía de clave pública, 618 / Funciones de una vía 619 / Firmas digitales, 619 / Módulo de plataforma confiable, 621 / Mecanismos de protección, 622 / Dominios de protección, 622 / Listas de control de acceso, 624 / Capacidades, 627 / Sistemas confiables, 630 / Base de cómputo confiable, 631 / Modelos formales de los sistemas seguros, 632 / Seguridad multinivel, 634 / Canales encubiertos, 637 / Autenticación, 641 / Autenticación mediante el uso de contraseñas, 642 / Autenticación mediante el uso de un objeto físico, 651 / Autenticación mediante biométrica, 653 / Ataques desde el interior, 656 / Bombas lógicas, 656 / Trampas, 657 / Suplantación de identidad en el inicio de sesión, 658 / Como explotar los errores (bugs) En el código, 659, / Ataques de desbordamiento de búfer, 660 / Ataques mediante cadenas de formato, 662 / Ataques de retorno a libc, 664 / Ataques por desbordamiento de enteros, 665 / Ataques por inyección de código, 666 / Ataques por escalada de privilegios, 667 / Malware, 667 / Caballos de Troya (troyanos), 670 / Virus, 672 / Gusanos, 682 / Spyware, 684 / Rootkits, 688 / Defensas, 692 / Firewalls, 693 / Los antivirus y las técnicas anti-antivirus, 695 / Firma de código, 701 / Encarcelamiento, 702 / Detección de intrusos basada en modelos, 703 / Encapsulamiento de código móvil, 705 / Seguridad de java, 709 / Investigación sobre la seguridad, 711 / Resumen 712 / Casos de estudios 1: Linux, 719 / Historia de Unix, historia de Unix y Linux, 720 / Unics, 720 / Unix en la pdp-11, 721 / Unix portable ,722 / Berkeley Unix ,723 / Unix estándar, 724 / Minix, 725 / Linux, 726 / Generalidades sobre Linux ,728 / Objetivos de Linux ,729 / Interfaces para Linux, 730 / El Shell ,731 / Programas utilitarios de Linux, 734 / Estructura del kernel, 736 / Los procesos en Linux, 739 / Conceptos fundamentales, 739 / Llamadas al sistema para administrar procesos en Linux, 741 / Implementación de procesos e hilos en Linux, 745 / Planificación en Linux ,752 / Arranque de Linux, 755 / Administración de la memoria en Linux, 758 / Conceptos fundamentales, 758 / Llamadas al sistema de administración de memoria en Linux, 761 / Implementación de la administración de la memoria en Linux , 762 / La paginación en Linux ,768 / Entrada/salida en Linux ,771 / Conceptos fundamentales, 772 / Redes, 773 / Llamadas al sistema de entrada/salida en Linux, 775 / Implementación de la entrada/salida en Linux, 775 / Los módulos en Linux, 779 / El sistema de archivos de Linux, 779 / Conceptos fundamentales, 780 / Llamadas al sistema de archivos en Linux ,785 / Implementación del sistema de archivos de Linux ,788 / Nfs: el sistema de archivos de red ,796 / La seguridad en Linux, 803 / Conceptos fundamentales ,803 / Llamadas al sistema de seguridad en Linux ,805 / Implementación de la seguridad en Linux ,806 / Resumen, 806 / Caso de estudio 2:windows vista, 813 / Historia de Windows vista, 813 / 1980: MS-DOS, 814 / 1990: Windows basado en MS-DOS , 815 / 2000: Windows basado en nt ,815 / Windows vista, 818 / Programación de Windows vista ,819 / La interfaz de programación de aplicaciones de nt nativa, 822 / La interfaz de programación de aplicaciones win32, 825 / El registro de Windows, 829 / Estructura del sistema, 831 / Estructura del sistema operativo, 832 / Booteo de Windows vista, 847 / Implementación del administrador de objetos ,848 / Subsistemas, dlls y servicios en modo de usuario, 858 / Procesos e hilos en Windows vista, 861 / Conceptos fundamentales, 861 / 2 Llamadas a la api para administrar trabajos, procesos, hilos y fibras, 866 / Implementación de procesos e hilos, 871 / Administración de la memoria ,879 / Conceptos fundamentales, 879 / 2 Llamadas al sistema para administrar la memoria, 884 / Implementación de la administración de memoria, 885 / Uso de la caché en Windows vista , 894 / Entrada/salida en Windows vista, 896 / Conceptos fundamentales, 897 / 2 Llamadas a la api de entrada/salida ,898 / implementación de la e/s, 901 / el sistema de archivos nt de Windows, 906 / Conceptos fundamentales ,907 / Implementación del sistema de archivos nt, 908 / La seguridad en Windows vista, 918 / Conceptos fundamentales, 919 / 2 Llamadas a la api de seguridad ,921 / Implementación de la seguridad, 922 / Resumen ,924 / caso de estudio 3: symbian os ,929 / La historia de symbian os, 930 / Raíces de symbian os: psion y epoc, 930 / Symbian os versión 6, 931 / Symbian os versión 7, 932 / Symbian os en la actualidad ,932 / Generalidades sobre symbian os, 932 / Orientación a objetos, 933 / Diseño del microkernel, 934 / El nanokernel de symbian os, 935 / Acceso a los recursos de cliente/servidor, 935 / Características de un sistema operativo más grande, 936 / Comunicaciones y multimedia, 937 / Procesos e hilos en symbian os, 937 / Hilos y nanohilos, 938 / Procesos, 939 / Objetos activos, 939 / Comunicación entre procesos, 940 / Administración de la memoria, 941 / Sistemas sin memoria virtual, 941 / Cómo direcciona symbian os la memoria, 943 / Entrada y salida, 945 / Drivers de dispositivos, 945 / Extensiones del kernel, 946 / Acceso directo a la memoria, 946 / Caso especial: medios de almacenamiento, 947 / Bloqueo de e/s ,947 / Medios removibles, 948 / Sistemas de almacenamiento, 948 / Sistemas de archivos para dispositivos móviles, 948 / Sistemas de archivos de symbian os, 949 / Seguridad y protección del sistema de archivos, 949 / La seguridad en symbian os, 950 / La comunicación en symbian os, 953 / Infraestructura básica, 953 / Un análisis más detallado de la infraestructura, 954 / Resumen, 957 / 13 Diseño de sistemas operativos, 959 / La naturaleza del problema de diseño, 960 / Objetivos ,960 / ¿Por qué es difícil diseñar un sistema operativo? ,961 / Diseño de interfaces ,963 / Principios de guía, 963 / Paradigmas, 965 / la interfaz de llamadas al sistema, 968 / Implementación, 971 / Estructura del sistema, 971 / Comparación entre mecanismo y directiva, 975 / Ortogonalidad ,976 / Nomenclatura, 977 / Tiempo de vinculación .978 / Comparación entre estructuras estáticas y dinámicas, 979 / Comparación entre la implementación de arriba-abajo y la implementación de abajo-arriba, 980 / Técnicas útiles, 981 / Rendimiento, 987 / ¿Por qué son lentos los sistemas operativos?, 987 / ¿Qué se debe optimizar?, 988 / Concesiones entre espacio y tiempo, 988 / Uso de caché, 991 / Sugerencias ,992 / Explotar la localidad, 993 / Optimizar el caso común ,993 / Administración de proyectos, 994 / El mítico hombre-mes, 994 / Estructura de equipos, 995 / La función de la experiencia, 997 / Sin bala de plata 998 13.6 Tendencias en el diseño de sistemas operativos, 998 / Virtualización, 999 / Chips multinúcleo, 999 / Sistemas operativos con espacios de direcciones extensos ,1000 13.6.4 redes 1000 13.6.5 Sistemas paralelos y distribuidos 1001 13.6.6 multimedia 1001 / Computadoras operadas por baterías ,1002 / Sistemas embebidos, 1002 / Modos de monitoreo, 1003 / Resumen , 1003.<br/><br/> |