Tercer Examen parcial. Sistemas operativos 2. Cib 512/2003. Objetivo. Aplicar los conceptos teóricos de diseño de sistemas operativos para explicar la arquitectura del núcleo (kernel) del sistema operativo Linux. Número de personas: 2 a 4 personas. Prohibido equipos de 1 persona. Equipos de mas de 4 personas son 2 puntos menos por cada persona agregada. Entrega: Lunes 01 de diciembre 2003, 09 a.m. NO SE ACEPTAN RETRASOS Modo de entrega: En la página de WWW de un integrante del equipo se suben las respuestas. LOS FORMATOS ACEPTADOS SON HTML O TEXTO PLANO o PDF (otros formatos son rechazados) En caso de poner figuras, deben ser explicadas, en español y en formato PNG, GIF o JPEG. Enviar a gusdelact@yahoo.com.mx UNICAMENTE la liga de la página, incluyendo en el cuerpo del programa los nombres y claves ULSA de los integrantes. Archivos anexos con las RESPUESTAS NO SON ACEPTADOS. Instrucciones: TODOS los integrantes del equipo deben leer el siguiente documento http://www.tldp.org/LDP/tlk/tlk.html o tomarlo de http://www.tldp.org/LDP/tlk.html.tar.gz o http://www.geocities.com/gusdelact/cib5122003/tlk.html.tar.gz Los capitulos a leer son: 1. Hardware Basics 2. Software Basics 3. Memory management 4. Process 5. Interprocess Communication Mechanisms 6. PCI 7. Interrupts and Interrupt Handling 8. Device Drivers 9. The file systems Y se deben contestar las siguientes preguntas, todas se contestan al leer con CUIDADO el documento 1a. Mencionar los principales componentes de hardware en la arquitectura de una PC. 1b. Explicar en que consiste que la CPU esté gobernado por un reloj externo. 1c. Describir los registros principales de la CPU. 1d. ¿Qué es el cache de memoria? 1e. ¿Qué es la coherencia de cache? 1f. ¿Qué es un bus en la arquitectura de computadora ? 1g. ¿Qué es un controlador IDE y SCSI ? 1h. ¿Qué es el espacio de direcciones de hardware ? 1j. ¿Qué hace el reloj de tiempo real? 2a. Explicar la filosofía del lenguaje ensamblador y la de lenguaje C y cómo se incorporan en el desarrollo de los sistemas operativos. 2b. Explicar que es un enlazador o linker. 2c. Según el autor del documento ¿ qué es un sistema operativo ? 2d. Mencionar cuál es la función del sistema operativo para administración de memoria. 2e. Mencionar cuál es la función del sistema operativo para administración de procesos. 2f. Explicar el concepto de manejadores de dispositivos. 2g. Explicar el concepto de un sistema de archivos. 2h. Explicar los tipos de estructuras de datos usadas en el kernel. 2j. Para que sirve /proc/filesystems. 3a. Explicar las funciones del subsistema de memoria 3b. Explicar el modelo abstracto de la memoria virtual 3c. Explicar la paginación bajo demanda. 3d. ¿Qué es el intercambio de páginas? 3e. ¿Para qué sirve la memoria virtual compartida? 3f. Explicar la diferencia entre modos de direccionamiento físico y virtuales 3g. Explicar los tipos de cache que existen para el manejo de memoria virtual. 3h. Explicar el modelo de las tablas de páginas en Linux 3j. ¿Cómo se realiza la asignació o desasignación de páginas? 4a. Describir el modelo de los procesos en Linux. 4b. ¿Cómo se relacionan los identificadores de seguridad con los procesos ? 4c. Explicar como se realiza la planificación en Linux. ¿Qué contiene la estructura task_struct ? 4d. Explicar las consideraciones que se hacen cuando Linux se ejecuta en múltiples CPUs. 4e. Explicar la relación entre procesos y archivos. 4f. ¿Cómo se organiza la memoria virtual para ser usada con los procesos ? ¿Qué funciones tiene la estructura vm_area_struct ? 4g. Indicar las consideraciones que tiene Linux para la creación de procesos. 4h.¿ Cómo se usan los cronómetros o relojes del sistema con los procesos ? 4j. Cómo se ejecuta un programa en Linux. Qué es el formato ELF. 5a. Listar todos los IPCs de Linux 5b. Explicar el modelo de signals. 5c. Qué son los pipes o tuberías. Cómo se implantan en el núcleo. 5d. Explicar que son los mecanismos IPC de System V. 5e. Explicar que es un message queue y las estructuras de datos en el núcleo. 5f. Explicar que es un semáforo y las estructuras de datos en el núcleo. 5g. Explicar que es la memoria compartida y las estructuras de datos en el núcleo. 5h. Explicar el problema de deadlocks o bloques mutuos con el modelo de semáforos. 5j. En Linux, qué es un named Pipe o FIFO. 6a. Explicar el concepto de PCI. 6b. Cuál es el modelo de espacio de direcciones PCI. 6c. Cómo se describe la configuración de los dispositivos PCI en el núcleo. 6d. Cuál es la diferencia entre E/S PCI y direcciones de memoria PCI. 6e. Explicar el concepto de puente PCI-ISA 6f. Explicar el concepto de puente PCI-PCI 6g. Cuál es el proceso de inicialización de Linux para PCI. 6h. Describir las estructuras de datos del núcleo para manejo de PCI. 6j. Explicar el concepto del manejador de dispositivos PCI. 7a. Explicar el manejo de interrupciones 7b. Explicar que son los controladores programables de interrupciones. 7c. Describir el proceso de inicialización para la estructura de datos de manejo de interrupciones. 7d. Describir el manejo de las interrupciones en el núcleo. 7e. ¿Qué hace la estructura de datos irq_section. 7f. ¿Cuál es la diferencia entre PCI e ISA? 7g. ¿Qué es un IRQ? 7h. ¿Cómo se evita que la CPU tome mucho tiempo en el modo de interrupciones ? 7j. ¿Cuál es la diferencia que se hace entre un sistema basado en BIOS y otra arquitectura? 8a. Cuáles son los 3 tipos de dispositivos de hardware que soporta Linux. 8b. Explicar los atributos comunes de los distintos manejadores de dispositivos de Linuxl. 8c. Cuál es la diferencia entre escrutinio e interrupciones. 8d. Explicar el concepto de DMA. 8e. ¿Qué consideraciones se deben hacer para el manejo de memoria con los manejadores de dispositivos ? 8f. ¿Cómo funcionan los manejadores de dispositivos de caracteres? 8g. ¿Cómo funcionan los manejadores de dispositivos de bloques? 8h. ¿Cómo se manejan los manejadores de dispositivos de discos? 8j. Describir el manejo de discos SCSI e IDE. 9a. Mencionar los distintos tipos de sistemas de archivos que soporta Linux. 9b. Explicar qué es el sistema de archivos EXT2. 9c. Describir la estructura de un nodo-i EXT2. Explicar que es el super bloque EXT2. 9d. Describir la estructura de directorios EXT2. 9e. ¿Cómo se busca un archivo en el sistema de directorios ? 9f. Explicar el concepto de un Virtual File System (VFS) 9g. Describir la estructura de un nodo-i VFS. Explicar que es el super bloque VFS. 9h. Describir el proceso de montar un sistema de archivos 9j. Explicar la estructura del "buffer cache" 10. Dibujar en un diagrama las estructuras de datos de Linux para el manejo de procesos, memoria,IPCs, interrupciones, manejadores de dispositivos y sistema de archivos. Explicar brevemente cada estructura dibujada.