000 18734nam a2200361 a 4500
999 _c11943
_d11943
003 AR-sfUTN
008 170717b ||||| |||| 00| 0 spa d
020 _a9702603153
040 _cAR-sfUTN
041 _aspa
080 0 _a004.451 T155m 2003
_22000
100 1 _aTanenbaum, Andrew S.
_q(Andrew Stuart)
_d1944-
_92574
245 1 0 _aSistemas operativos modernos /
_cAndrew S. Tanenbaum.
250 _a2da.
260 _aMéxico :
_bPearson,
_c2003.
300 _a951 p.
336 _2rdacontent
_atexto
_btxt
337 _2rdamedia
_asin mediación
_bn
338 _2rdacarrier
_avolumen
_bnc
505 8 0 _aCONTENIDO 1 INTRODUCCION 1.1 ¿QUE ES UN SISTEMA OPERATIVO? 1.1.1 El sistema operativo como máquina extendida 1.1.2 El sistema operativo como administrador de recursos 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 1.2.1 La primera generación (1945-1955): tubos de vacío y tableros 1.2.2 La segunda generación (1955-1965): transistores y sistemas por lotes 1.2.3 La tercera generación (1965-1980): circuitos integrados y multiprogramación 1.2.4 La cuarta generación (de 1980 al presente): computadoras personales 1.2.5 La ontogenia recapitula la filogenia 1.3 LA VARIEDAD DE SISTEMAS OPERATIVOS 1.3.1 Sistemas operativos de mainframe 1.3.2 Sistemas operativos de servidor 1.3.3 Sistemas operativos multiprocesador 1.3.4 Sistemas operativos de computadora personal 1.3.5 Sistemas operativos de tiempo real 1.3.6 Sistemas operativos integrados 1.3.7 Sistemas operativos de tarjeta inteligente 1.4 REPASO DE HARDWARE DE COMPUTO 1.4.1 Procesadores 1.4.2 Memoria 1.4.3 Dispositivos de E/S 1.4.4 Buses 1.5 CONCEPTOS DE LOS SISTEMAS OPERATIVOS 1.5.1 Procesos 1.5.2 Bloqueos irreversibles 1.5.3 Administración de memoria 1.5.4 Entrada/salida 1.5.5 Archivos 1.5.6 Seguridad 1.5.7 El shell 1.5.8 Reciclaje de conceptos 1.6 LLAMADAS AL SISTEMA 1.6.1 Llamadas al sistema para administración de procesos 1.6.2 Llamadas al sistema para administración de archivos 1.6.3 Llamadas al sistema para administración de directorios 1.6.4 Diversas llamadas al sistema 1.6.5 La API Win32 de Windows 1.7 ESTRUCTURA DEL SISTEMA OPERATIVO 1.7.1 Sistemas monolíticos 1.7.2 Sistemas en capas 1.7.3 Máquinas virtuales 1.7.4 Exokernels 1.7.5 Modelo cliente-servidor 1.8 INVESTIGACION SOBRE SISTEMAS OPERATIVOS 1.9 BOSQUEJO DEL RESTO DEL LIBRO 1.10 UNIDADES METRICAS 1.11 RESUMEN 2 PROCESOS Y SUBPROCESOS 2.1 PROCESOS 2.1.1 El modelo de procesos 2.1.2 Creación de procesos 2.1.3 Terminación de procesos 2.1.4 Jerarquías de procesos 2.1.5 Estados de procesos 2.1.6 Implementación de procesos 2.2 SUBPROCESOS 2.2.1 El modelo de subprocesos 2.2.2 Uso de subprocesos 2.2.3 Implementación de subprocesos en espacio de usuario 2.2.4 Implementación de subprocesos en el kernel 2.2.5 Implementaciones híbridas 2.2.6 Activaciones del calendarizador 2.2.7 Subprocesos emergentes 2.2.8 Cómo convertir en código con múltiples subprocesos el de un solo subproceso 2.3 COMUNICACION ENTRE PROCESOS 2.3.1 Condiciones de competencia 2.3.2 Regiones críticas 2.3.3 Exclusión mutua con espera activa 2.3.4 Activar y desactivar 2.3.5 Semáforos 2.3.6 Mutexes 2.3.7 Monitores 2.3.8 Transferencia de mensajes 2.3.9 Barreras 2.4 PROBLEMAS CLASICOS DE COMUNICACION ENTRE PROCESOS 2.4.1 El problema de la cena de los filósofos 2.4.2 El problema de los lectores y escritores 2.4.3 El problema del barbero dormilón 2.5 CALENDARIZACION 2.5.1 Introducción a la calendarización 2.5.2 Calendarización en sistemas por lotes 2.5.3 Calendarización en sistemas interactivos 2.5.4 Calendarización en sistemas en tiempo real 2.5.5 Política en comparación con mecanismo 2.5.6 Calendarización de subprocesos 2.6 INVESTIGACIONES SOBRE PROCESOS Y SUBPROCESOS 2.7 RESUMEN 3 BLOQUEOS IRREVERSIBLES 3.1 RECURSOS 3.1.1 Recursos expropiables y no expropiables 3.1.2 Adquisición de recursos 3.2 INTRODUCCION A LOS BLOQUEOS IRREVERSIBLES 3.2.1 Condiciones para el bloqueo irreversible 3.2.2 Modelado de bloqueos irreversibles 3.3 EL ALGORITMO DEL AVESTRUZ 3.4 DETECCION DE BLOQUEOS IRREVERSIBLES Y RECUPERACION POSTERIOR 3.4.1 Detección de bloqueos irreversibles con un recurso de cada tipo 3.4.2 Detección de bloqueos irreversibles con múltiples recursos de cada tipo 3.4.3 Cómo recuperarse de un bloqueo irreversible 3.5 COMO EVITAR LOS BLOQUEOS IRREVERSIBLES 3.5.1 Trayectorias de recursos 3.5.2 Estados seguros e inseguros 3.5.3 El algoritmo del banquero para un solo recurso 3.5.4 El algoritmo del banquero para múltiples recursos 3.6 PREVENCION DE BLOQUEOS IRREVERSIBLES 3.6.1 Cómo atacar la condición de exclusión mutua 3.6.2 Cómo atacar la condición de retener y esperar 3.6.3 Cómo atacar la condición de no expropiación 3.6.4 Cómo atacar la condición de espera circular 3.7 OTROS ASPECTOS 3.7.1 Bloqueos de dos fases 3.7.2 Bloqueos irreversibles que no son por recursos 3.7.3 Inanición 3.8 INVESTIGACION SOBRE BLOQUEOS IRREVERSIBLES 3.9 RESUMEN 4 ADMINISTRACION DE MEMORIA 4.1 ADMINISTRACION DE MEMORIA BASICA 4.1.1 Monoprogramación sin intercambio ni paginación 4.1.2 Multiprogramación con particiones fijas 4.1.3 Modelado de la multiprogramación 4.1.4 Análisis del desempeño de un sistema multiprogramado 4.1.5 Reubicación y protección 4.2 INTERCAMBIO 4.2.1 Administración de memoria con mapas de bits 4.2.2 Administración de memoria con listas enlazadas 4.3 MEMORIA VIRTUAL 4.3.1 Paginación 4.3.2 Tablas de páginas 4.3.3 Búferes de consulta para traducción 4.3.4 Tablas de páginas invertidas 4.4 ALGORITMOS PARA REEMPLAZO DE PAGINAS 4.4.1 El algoritmo óptimo de reemplazo de páginas 4.4.2 El algoritmo de reemplazo de páginas no usadas recientemente 4.4.3 El algoritmo de reemplazo de páginas de primero en entrar, primero en salir 4.4.4 El algoritmo de reemplazo de páginas de segunda oportunidad 4.4.5 El algoritmo de reemplazo de páginas tipo reloj 4.4.6 El algoritmo de reemplazo de página menos recientemente usada 4.4.7 Simulación de LRU en software 4.4.8 El algoritmo de reemplazo de páginas de conjunto de trabajo 4.4.9 El algoritmo de reemplazo de páginas WSClock 4.4.10 Resumen de algoritmos de reemplazo de páginas 4.5 MODELADO DE ALGORITMOS DE REEMPLAZO DE PAGINAS 4.5.1 Anomalía de Belady 4.5.2 Algoritmos de pila 4.5.3 La cadena de distancias 4.5.4 Predicción de tasas de fallos de página 4.6 ASPECTOS DE DISEÑO DE LOS SISTEMAS CON PAGINACION 4.6.1 Políticas de asignación local y global 4.6.2 Control de carga 4.6.3 Tamaño de página 4.6.4 Espacios de instrucciones y de datos separados 4.6.5 Páginas compartidas 4.6.6 Política de aseo 4.6.7 Interfaz de memoria virtual 4.7 ASPECTOS DE IMPLEMENTACION 4.7.1 Intervención del sistema operativo en la paginación 4.7.2 Manejo de fallos de página 4.7.3 Retroceso de instrucciones 4.7.4 Fijación de páginas en la memoria 4.7.5 Almacén de respaldo 4.7.6 Separación de política y mecanismo 4.8 SEGMENTACION 4.8.1 Implementación de la segmentación pura 4.8.2 Segmentación con paginación: MULTICS 4.8.3 Segmentación con paginación: Pentium de Intel 4.9 INVESTIGACIONES SOBRE ADMINISTRACIÓN DE MEMORIA 4.10 RESUMEN 5 ENTRADA/SALIDA 5.1 PRINCIPIOS DEL HARDWARE DE E/S 5.1.1 Dispositivos de E/S 5.1.2 Controladoras de dispositivos 5.1.3 E/S con correspondencia en memoria 5.1.4 Acceso directo a memoria 5.1.5 Repaso de interrupciones 5.2 PRINCIPIOS DEL SOFTWARE DE E/S 5.2.1 Metas del software de E/S 5.2.2 E/S programada 5.2.3 E/S controlada por interrupciones 5.2.4 E/S con DMA 5.3 CAPAS DEL SOFTWARE DE E/S 5.3.1 Manejadores de interrupciones 5.3.2 Controladores de dispositivos 5.3.3 Software de E/S independiente del dispositivo 5.3.4 Software de E/S en espacio de usuario 5.4 DISCOS 5.4.1 Hardware de disco 5.4.2 Formateo de discos 5.4.3 Algoritmos para calendarizar el brazo del disco 5.4.4 Manejo de errores 5.4.5 Almacenamiento estable 5.5 RELOJES 5.5.1 Hardware de reloj 5.5.2 Software de reloj 5.5.3 Temporizadores de software 5.6 TERMINALES ORIENTADAS A CARACTERES 5.6.1 Hardware de terminal RS-232 5.6.2 Software de entrada 5.6.3 Software de salida 5.7 INTERFACES GRAFICAS DE USUARIO 5.7.1 Hardware de teclado, ratón y pantalla para computadora personal 5.7.2 Software de entrada 5.7.3 Software de salida para Windows 5.8 TERMINALES DE RED 5.8.1 El sistema X Window 5.8.2 La terminal de red SLIM 5.9 ADMINISTRACION DE ENERGIA 5.9.1 Aspectos de hardware 5.9.2 Aspectos del sistema operativo 5.9.3 Merma en el funcionamiento 5.10 INVESTIGACIONES SOBRE ENTRADA/SALIDA 5.11 RESUMEN 6 SISTEMAS DE ARCHIVOS 6.1 ARCHIVOS 6.1.1 Nombres de archivo 6.1.2 Estructura de archivos 6.1.3 Tipos de archivos 6.1.4 Acceso a archivos 6.1.5 Atributos de archivos 6.1.6 Operaciones con archivos 6.1.7 Ejemplo de programa que usa llamadas al sistema de archivos 6.1.8 Archivos con correspondencia en memoria 6.2 DIRECTORIOS 6.2.1 Sistemas de directorios de un solo nivel 6.2.2 Sistemas de directorios de dos niveles 6.2.3 Sistemas de directorios jerárquicos 6.2.4 Nombres de ruta 6.2.5 Operaciones con directorios 6.3 IMPLEMENTACION DE SISTEMAS DE ARCHIVOS 6.3.1 Organización del sistema de archivos 6.3.2 Implementación de archivos 6.3.3 Implementación de directorios 6.3.4 Archivos compartidos 6.3.5 Administración de espacio en disco 6.3.6 Confiabilidad del sistema de archivos 6.3.7 Desempeño del sistema de archivos 6.3.8 Sistemas de archivos con estructura de registro 6.4 EJEMPLOS DE SISTEMAS DE ARCHIVOS 6.4.1 Sistemas de archivos de CD-ROM 6.4.2 El sistema de archivos de CP/M 6.4.3 El sistema de archivos de MS-DOS 6.4.4 El sistema de archivos de Windows 98 6.4.5 El sistema de archivos de UNIX V7 6.5 INVESTIGACION SOBRE SISTEMAS DE ARCHIVOS 6.6 RESUMEN 7 SISTEMAS OPERATIVOS MULTIMEDIA 7.1 INTRODUCCION A MULTIMEDIA 7.2 ARCHIVOS MULTIMEDIA 7.2.1 Codificación de audio 7.2.2 Codificación de vídeo 7.3 COMPRESION DE VÍDEO 7.3.1 El estándar JPEG 7.3.2 El estándar MPEG 7.4 CALENDARIZACION DE PROCESOS MULTIMEDIA 7.4.1 Calendarización de procesos homogéneos 7.4.2 Calendarización general en tiempo real 7.4.3 Calendarización de tasa monotónica 7.4.4 Calendarización de plazo más cercano primero 7.5 PARADIGMAS DE SISTEMAS DE ARCHIVOS MULTIMEDIA 7.5.1 Funciones de control de videograbadora 7.5.2 Vídeo por demanda aproximado 7.5.3 Vídeo por demanda aproximado con funciones de videograbadora 7.6 COLOCACION DE ARCHIVOS 7.6.1 Colocación de un archivo en un solo disco 7.6.2 Dos estrategias alternas de organización de archivos 7.6.3 Colocación de archivos para vídeo por demanda aproximado 7.6.4 Colocación de múltiples archivos en un solo disco 7.6.5 Colocación de archivos en múltiples discos 7.7 USO DE CACHES 7.7.1 Colocación de bloques en caché 7.7.2 Colocación de archivos en caché 7.8 CALENDARIZACION DE DISCO PARA MULTIMEDIA 7.8.1 Calendarización estática de disco 7.8.2 Calendarización dinámica de disco 7.9 INVESTIGACION SOBRE MULTIMEDIA 7.10 RESUMEN 8 SISTEMAS CON MULTIPLES PROCESADORES 8.1 MULTIPROCESADORES 8.1.1 Hardware de multiprocesador 8.1.2 Tipos de sistemas operativos para multiprocesador 8.1.3 Sincronización de multiprocesadores 8.1.4 Calendarización de multiprocesadores 8.2 MULTICOMPUTADORAS 8.2.1 Hardware de multicomputadora 8.2.2 Software de comunicación de bajo nivel 8.2.3 Software de comunicación en el nivel de usuario 8.2.4 Llamada a procedimiento remoto 8.2.5 Memoria compartida distribuida 8.2.6 Calendarización de multicomputadoras 8.2.7 Balanceo de carga 8.3 SISTEMAS DISTRIBUIDOS 8.3.1 Hardware de red 8.3.2 Servicios y protocolos de red 8.3.3 Middleware basado en documentos 8.3.4 Middleware basado en el sistema de archivos 8.3.5 Middleware basado en objetos compartidos 8.3.6 Middleware basado en coordinación 8.4 INVESTIGACION SOBRE SISTEMAS CON MULTIPLES PROCESADORES 8.5 RESUMEN 9 SEGURIDAD 9.1 EL ENTORNO DE LA SEGURIDAD 9.1.1 Amenazas 9.1.2 Intrusos 9.1.3 Pérdida accidental de datos 9.2 ASPECTOS BASICOS DE CRIPTOGRAFIA 9.2.1 Criptografía de clave secreta 9.2.2 Criptografía de clave pública 9.2.3 Funciones unidireccionales 9.2.4 Firmas digitales 9.3 AUTENTICACION DE USUARIOS 9.3.1 Autenticación por contraseña 9.3.2 Autenticación empleando un objeto físico 9.3.3 Autenticación por biométrica 9.3.4 Remedios 9.4 ATAQUES DESDE ADENTRO DEL SISTEMA 9.4.1 Caballos de Troya 9.4.2 Falsificación de inicio de sesión 9.4.3 Bombas de lógica 9.4.4 Trampas 9.4.5 Desbordamiento de búfer 9.4.6 Ataques genéricos contra la seguridad 9.4.7 Defectos de seguridad famosos 9.4.8 Principios de diseño que proporcionan seguridad 9.5 ATAQUES DESDE AFUERA DEL SISTEMA 9.5.1 Posibles daños causados por virus 9.5.2 Cómo funcionan los virus 9.5.3 Cómo se diseminan los virus 9.5.4 Técnicas antivirus y anti-antivirus 9.5.5 El gusano de Internet 9.5.6 Código móvil 9.5.7 Seguridad en Java 9.6 MECANISMOS DE PROTECCION 9.6.1 Dominios de protección 9.6.2 Listas de control de acceso 9.6.3 Capacidades 9.7 SISTEMAS DE CONFIANZA 9.7.1 Base de cómputo de confianza 9.7.2 Modelos formales de sistemas seguros 9.7.3 Seguridad multinivel 9.7.4 Seguridad de Libro Naranja 9.7.5 Canales encubiertos 9.8 INVESTIGACION SOBRE SEGURIDAD 9.9 RESUMEN 10 CASO DE ESTUDIO 1: UNIX Y LINUX 10.1 HISTORIA DE UNIX 10.1.1 UNICS 10.1.2 UNIR de PDP-11 10.1.3 UNIR portátil 10.1.4 UNIX Berkeley 10.1.5 UNIX estándar 10.1.6 MINIX 10.1.7 Linux 10.2 GENERALIDADES DE UNIX 10.2.1 Metas de UNIX 10.2.2 Interfaces con UNIX 10.2.3 El shell de UNIX 10.2.4 Programas utilitarios de UNIX 10.2.5 Estructura del kernel 10.3 PROCESOS EN UNIX 10.3.1 Conceptos fundamentales 10.3.2 Llamadas al sistema para administración de procesos en UNIX 10.3.3 Implementación de procesos en UNIX 10.3.4 Arranque de UNIX 10.4 ADMINISTRACION DE MEMORIA EN UNIX 10.4.1 Conceptos fundamentales 10.4.2 Llamadas al sistema para administración de memoria en UNIX 10.4.3 Implementación de la administración de memoria en UNIX 10.5 ENTRADA/SALIDA EN UNIX 10.5.1 Conceptos fundamentales 10.5.2 Llamadas al sistema para entrada/salida en UNIX 10.5.3 Implementación de entrada/salida en UNIX 10.5.4 Flujos 10.6 EL SISTEMA DE ARCHIVOS DE UNIX 10.6.1 Conceptos fundamentales 10.6.2 Llamadas al sistema de archivos en UNIX 10.6.3 Implementación del sistema de archivos UNIX 10.6.4 NFS: el sistema de archivos de red 10.7 SEGURIDAD EN UNIX 10.7.1 Conceptos fundamentales 10.7.2 Llamadas al sistema de seguridad en UNIX 10.7.3 Implementación de seguridad en UNIX 10.8 RESUMEN 11 CASO DE ESTUDIO 2: WINDOWS 2000 11.1 HISTORIA DE WINDOWS 2000 11.1.1 MS-DOS 11.1.2 Windows 95/98/Me 11.1.3 Windows NT 11.1.4 Windows 2000 11.2 PROGRAMACION EN WINDOWS 2000 11.2.1 La interfaz de programación de aplicaciones Win32 11.2.2 El Registro 11.3 ESTRUCTURA DEL SISTEMA 11.3.1 Estructura del sistema operativo 11.3.2 Implementación de objetos 11.3.3 Subsistemas de entorno 11.4 PROCESOS Y SUBPROCESOS EN WINDOWS 2000 11.4.1 Conceptos fundamentales 11.4.2 Llamadas de la API para administración de trabajos, procesos, subprocesos y fibras 11.4.3 Implementación de procesos y subprocesos 11.4.4 Emulación de MS-DOS 11.4.5 Arranque de Windows 2000 11.5 ADMINISTRACION DE MEMORIA 11.5.1 Conceptos fundamentales 11.5.2 Llamadas al sistema para administración de memoria 11.5.3 Implementación de administración de memoria 11.6 ENTRADA/SALIDA EN WINDOWS 2000 11.6.1 Conceptos fundamentales 11.6.1 Llamadas a la API para E/S 11.6.3 Implementación de E/S 11.6.4 Controladores de dispositivos 11.7 EL SISTEMA DE ARCHIVOS WINDOWS 2000 11.7.1 Conceptos fundamentales 11.7.2 Llamadas a la API para el sistema de archivos en Windows 2000 11.7.3 Implementación del sistema de archivos Windows 2000 11.8 SEGURIDAD EN WINDOWS 2000 11.8.1 Conceptos fundamentales 11.8.2 Llamadas a la API para seguridad 11.8.3 Implementación de la seguridad 11.9 USO DE CACHES EN WINDOWS 2000 11.10 RESUMEN 12 DISEÑO DE SISTEMAS OPERATIVOS 12.1 LA NATURALEZA DEL PROBLEMA DE DISEÑO 12.1.1 Metas 12.1.2 ¿Por qué es difícil diseñar sistemas operativos? 12.2 DISEÑO DE INTERFACES 12.2.1 Principios orientadores 12.2.2 Paradigmas 12.2.3 La interfaz de llamadas al sistema 12.3 IMPLEMENTACION 12.3.1 Estructura del sistema 12.3.2 Mecanismo en comparación con políticas 12.3.3 Ortogonalidad 12.3.4 Asignación de nombres 12.3.5 Tiempo de enlace 12.3.6 Estructuras estáticas o dinámicas 12.3.7 Implementación descendente o ascendente 12.3.8 Técnicas útiles 12.4 DESEMPEÑO 12.4.1 ¿Por qué son lentos los sistemas operativos? 12.4.2 ¿Qué debe optimizarse? 12.4.3 Equilibrio espacio-tiempo 12.4.4 Uso de cachés 12.4.5 Sugerencias 12.4.6 Aprovechamiento de la localidad 12.4.7 Optimización del caso común 12.5 ADMINISTRACION DE PROYECTOS 12.5.1 El mes-hombre mítico 12.5.2 Estructura de equipos de trabajo 12.5.3 El papel de la experiencia 12.5.4 No hay una bala de plata 12.6 TENDENCIAS EN EL DISEÑO DE SISTEMAS OPERATIVOS 12.6.1 Sistemas operativos con espacio de direcciones grande 12.6.2 Redes 12.6.3 Sistemas paralelos y distribuidos 12.6.4 Multimedia 12.6.5 Computadoras alimentadas por baterías 12.6.6 Sistemas incrustados 12.7 RESUMEN 13 LISTA DE LECTURAS Y BIBLIOGRAFIA 13.1 SUGERENCIAS PARA LECTURAS ADICIONALES 13.1.1 Introducción y obras generales 13.1.2 Procesos y subprocesos 13.1.3 Bloqueos irreversibles 13.1.4 Administración de memoria 13.1.5 Entrada/salida 13.1.6 Sistemas de archivos 13.1.7 Sistemas operativos multimedia 13.1.8 Sistemas con múltiples procesadores 13.1.9 Seguridad 13.1.10 UNIX y Linux 13.1.11 Windows 2000 13.1.12 Principios de diseño 13.2 BIBLIOGRAFIA INDICE
650 1 4 _aSISTEMAS OPERATIVOS
650 1 4 _aSISTEMAS OPERATIVOS-HISTORIA
650 1 4 _aSISTEMAS OPERATIVOS-DISEÑO
650 1 4 _aBLOQUEOS IRREVERSIBLES
650 1 4 _aSISTEMAS OPERATIVOS MULTIMEDIA
650 1 4 _aUNIX
650 1 4 _aLINUX
650 1 4 _aWINDOWS 2000
775 0 _aSistemas operativos modernos / Andrew S. Tanenbaum.
_b3ra.
_dMexico : Pearson, 2009.
942 _cBK
_2udc