Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
CI-1310 Sistemas Operativos
Primera Asignación: Hilos y sincronización
- Presentación
- Inspirado en el trabajo original de Thomas E. Anderson
"La mejor manera de comprender los conceptos relacionados con los sistemas
operativos es construyendo un sistema operativo real para luego experimentar
con él"
Tom Anderson
Computer Science Division
University of California at Berkeley
Introducción
- Este compendio contiene la información necesaria para la elaboración del proyecto programado relacionado con "threads" en el sistema operativo NachOS
- NachOS es un sistema diseñado e implantado con fines académicos por Tom Anderson
- Actualmente se utiliza en cursos afines por las mejores universidades de Estados Unidos, tales como California at Berkeley, Stanford, Harvard, Carnegie-Mellon, Duke, Colorado State, Washington, Chicago y otras como la UCR
- Durante muchos años se ha notado la necesidad de utilizar herramientas que permitan a los estudiantes aplicar los conceptos teóricos adquiridos
- Se han hecho muchos buenos esfuerzos, algunos exitosos otros no, y creemos que finalmente Tom Anderson ha provisto a la comunidad académica de una plataforma que permitirá por muchos años ofrecer cursos de sistemas operativos con un nivel práctico excepcional
- Nachos se diseñó originalmente para la arquitectura MIPS que se utiliza para la construcción de estaciones de trabajo Digital y Silicon Graphics. Sin embargo, el equipo de trabajo en Berkeley y otros lugares han puesto a disposición parches que permiten trabajar en estaciones SUN (y SPARC en general), Hewlett-Packard, IBM, Digital-Alpha e incluso microcomputadoras basadas en procesadores tipo INTEL utilizando el sistema operativo LINUX. Esto ha sido posible gracias a la flexibilidad de las herramientas de GNU ("debugger", compiladores, etc.) y la posibilidad de crear "cross-compilers"
- En la Universidad de Costa Rica la enseñanza de sistemas operativos ha venido mejorándose semestre a semestre. Primero con la incorporación de máquinas que utilizan el sistema operativo UNIX, donde se pudieron aplicar los conceptos de multiprogramación, memoria virtual, comunicación de procesos, sistemas de archivos. Segundo con la construcción de un red de tamaño considerable de estaciones de trabajo SUN, permitiendo aplicar los conceptos de conectividad y procesamiento distribuido. Desde el primer semestre de 1996, la Escuela de Ciencias de la Computación e Informática de la UCR, alcanza un nivel de enseñanza comparable con los más altos del mundo, con la incorporación de Nachos al curriculum de los cursos CI-1302 y CI-1403
Documentos adicionales
- Wayne A. Christopher, Steven J. Procter & Thomas E. Anderson, The NachOS Instructional Operating System, Computer Science Division, University of California at Berkeley
- "A Quick Introduction to C++" Thomas E. Anderson Computer Science Division, University of California at Berkeley
- Andrew D. Birrel, An Introduction to Programming with Threads, Digital System Research Center, Palo Alto, California
- Thomas Narten, A Road Map through Nachos, Departament of Computer Science, Duke University ( Road Map )
- Edsger W. Dijkstra, The Humble Programmer, 1972 ACM Turing Award Lecture, Communications of the ACM, Vol. 15, No. 10, Octubre 1972
- C.A.R. Hoare, The Emperor's Old Clothes, 1980 ACM Turing Award Lecture, Communications of the ACM, Vol. 24, No. 2, Febrero de 1980
Créditos
- La mayor contribución a este proyecto proviene del profesor Tom Anderson, sus estudiantes y de su experiencia impartiendo el curso CS-162: "Operating Systems and Systems Programming", Computer Science Division, University of California at Berkeley
- Por su parte el Prof. Thomas Narten aportó su valioso material sobre la estructura interna de NachOS. A su vez, pudimos aprovecharnos del material de su curso CPS-110: "Introduction to Operating Systems", Computer Science Department, Duke University
- También fue de mucha utilidad la información de los cursos CS-240A (Computer Science Departament, Stanford University) y CS-230/330 (The Department of Computer Science, The University of Chicago)
- Finalmente, el agradecimiento al Prof. Avi Silberchatz (siempre accesible), por su labor concentradora de información, sobre todo tema relacionado con su excelente texto y NachOS
- Traducción al castellano por Federico A. Meza Escuela de Ciencias de la Computación e Informática Universidad de Costa Rica