Sistemas Operativos
Great
fleas have little fleas
upon their backs to bite them,
And
little fleas have lesser fleas,
and so on ad infinitum.
And the
great fleas themselves, in turn,
have greater fleas to go
on;
While these again have greater still,
and greater still,
and so on.
From The UNIX Programming Environment, by Brian W. Kernighan and Rob Pike
UNIX is basically a simple operating system,
but
you have to be a genius to understand the simplicity
Dennis
Ritchie
Material e información:
Contenido del curso y bibliografía
Compendio de vi
Diapositivas
Diapositivas (scripts)
Ejemplos de llamadas al sistema
Ejemplos de scripts
MINIX
Special Interest Group on Operating Systems
The UNIX Time Sharing System
Lista de lecturas:
Artículos The UNIX Time Sharing System y UNIX Implementation (ver sección anterior)
Capítulos 2, 3, 4 y 5 del libro Operating Systems Design and Implementation de Andrew S. Tanenbaum y Albert S. Woodhull
Poner especial énfasis en las secciones correspondientes a MINIX, con la finalidad de identificar la parte del SO a analizar y/o modificar
Hacer hincapié en la revisión de lo siguientes temas para complementar conceptos vistos en clase:
Relocalización y protección
Compactación de memoria
Administración de memoria con mapas de bits
Administración de memoria con listas enlazadas
En MINIX ¿hay intercambio? Si es así ¿Cómo lo realiza? Si no ¿Por qué?
Generalización del concepto para tablas de páginas de 32 y 64 bits
Tablas de página multinivel
¿Qué otros enfoques de traducción de direcciones virtuales a direcciones físicas existen?
¿Cómo trabaja el algoritmo NFU?
¿En qué consiste el algoritmo de maduración de páginas?
¿Qué otros enfoques de substitución de páginas existen?
Segmentación con paginación
Organización de memoria en MINIX
Implementación de sistemas de archivos (5.3)
Formato de entrega para las prácticas de programación:
Enviar un email a la dirección: rruiz@mixteco.utm.mx
En asunto (subject) escribir programa xxxxxxxxx, donde xxxxxxxxx se refiere al nombre del programa (proyecto) que envían, ejemplo “shell”, “banquero”, etc.
En el cuerpo del email escribir: Equipo #x Grupo xxxxx, en donde x se refiere al número del equipo y xxxxx al grupo al cual pertenecen.
Debajo de los datos anteriores CONFIRMAR el nombre de los integrantes del equipo siempre y cuando TODOS hayan trabajado, en caso contrario incluir sólo el nombre de la persona (s) que trabajó (trabajaron).
El código fuente del programa que envíen se agregará como archivo adjunto, así como los archivos necesarios para su ejecución y/o compilación: archivos de configuración, utilerías, archivos de entrada de datos, salidas generadas, etc. No incluir archivos ejecutables.
Si el programa es en C, asegurarse de incluir sólo librerías del ANSI C y apegarse a los estándares, ya que de lo contrario se considerará tarea no entregada o sin funcionar.
El programa deberá compilarse y/o ejecutarse sin cambio alguno, de no ser así, se aplica lo descrito en el punto 6.
Si existen programas iguales, similares, genéricos o de “primer nivel”, automáticamente se anularán los programas de los equipos involucrados.
Los programas estarán sujetos a revisión y a cuestionamientos hacia cualquiera de los integrantes del equipo.