Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area II: Sistemas de Computacion
(Programa del año 2015)
(Programa en trámite de aprobación)
(Programa presentado el 23/11/2015 20:54:23)
I - Oferta Académica
Materia Carrera Plan Año Periodo
SISTEMAS OPERATIVOS ING. INFORM. 026/12- 08/15 2015 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
FLORES, SONIA EDITH Prof. Responsable P.Adj Semi 20 Hs
MOLINA, SILVIA MARTA Prof. Co-Responsable P.Adj Exc 40 Hs
PALACIO, GABRIELA DEL VALLE Auxiliar de Práctico A.1ra Semi 20 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
6 Hs. 3 Hs. 2 Hs. 1 Hs. 6 Hs. 2º Cuatrimestre 10/08/2015 20/11/2015 15 90
IV - Fundamentación
Este curso se ubica en el 3º año de la Carrera Ingeniería en Informática, con el fin de dar formación básica al alumno desde el título menor, siendo fundamental la articulación con Arquitectura I. Los ejes temáticos de la materia: el Sistema Operativo, llevando la práctica a casos particulares como UNIX y LINUX.
V - Objetivos / Resultados de Aprendizaje
La asignatura Sistemas Operativos tiene por objeto de estudio a los Sistemas Operativos convencionales.
Para definir los objetivos de la materia, se consideran las dos áreas temáticas en las que naturalmente se puede dividir la asignatura, respecto a:

* Sistemas Operativos:
El objetivo principal de la asignatura es suministrar al alumno conocimientos sólidos referidos a los Sistemas Operativos como administradores de recursos de la computadora, especialmente la administración del procesador y la memoria.
Los objetivos generales se resumen en:

A) Estudio teórico de Sistemas Operativos a fin de capacitar al alumno en la comprensión de las funciones de un sistema operativo en un sistema de computación bajo distintos entornos y configuraciones.
B) Desarrollar en el alumno la capacidad de implementar distintas técnicas relativas al área, con los elementos al alcance del Departamento de Informática.
Como resultados derivados de los puntos A) y B) se espera desarrollar en el alumno, luego de adquirida cierta experiencia en el área, las siguientes capacidades:
-Adquirir criterios para el diseño e implementación de Sistemas Operativos
- Modificar un Sistema Operativo acorde a las necesidades de su entorno.
- Mantener un Sistema Operativo según las comunicaciones con el proveedor de equipo.
- Utilizar en otras áreas de aplicaciones los conocimientos a fin de producir software de mejor calidad.
- Un manejo aceptable del Sistema Operativo LINUX.

Los objetivos generales se resumen en:

Acorde con los objetivos y dentro de las restricciones del plan de estudios, el desarrollo de la materia profundizará en las áreas del administrador del procesador y del administrador de la memoria.

Los administradores de la información y de los dispositivos también serán tratados al mismo nivel de detalle.
No obstante se espera que la introducción a los mismos, dada durante el curso sea suficiente para encarar estos aspectos en situaciones futuras.
VI - Contenidos
* UNIDAD TEMÁTICA 1: Introducción
Visiones de un Sistema Operativo: Como máquina extendida y como Administrador de recursos.
Historia de los Sistemas Operativos, generaciones.
Estructuras de Sistemas Operativos: Monolíticos, en capas, de máquina virtual, de redes,
distribuidos, etc.

* UNIDAD TEMÁTICA 2: Administrador del Procesador
Procesos. Un modelo de operación. Multiplicidad de Procesos. Networking, multiprocesamiento,
multiprogramación. Tareas básicas, multiplexado del Procesador, context switching. Diagrama de
estados; Otras unidades computacionales;
El problema de la coordinación de procesos: Sincronización, concurrencia, comunicación entre procesos (IPC).
Semáforos, CR, CCR, monitores, pasajes de mensajes.
Scheduling de Procesos: Mecanismos y Políticas.
Deadlock; Condiciones necesarias. Prevención, Detección y Recuperación.
Hebras (leightweight processes): Introducción, definición, motivación. Estados de Threads: Ciclo de vida de las hebras. Operaciones. Modelos de Threading:Threads a nivel de Usuarios, Threads a nivel de Kernel y Combinación de Threads a nivel de Usuario y Kernel. Conceptos de Threads: Delivery de señal de Threads, terminación de threads. POSIX y PThreads. Threads en Linux y Threads en Windows XP.

* UNIDAD TEMÁTICA 3 : Administrador de la Memoria
Memoria Real. Organización y Administración: Asignación contigua y no contigua. Particionado
fijo y variable. Swapping. Memoria Virtual. Organización; almacenamiento múltiple. Paginado y Segmentado. Administración; estrategias de reemplazo de página. Working Sets. Faltas de páginas. Trashing.

* UNIDAD TEMÁTICA 4: Administrador de la Información
Archivos: Estructuras, tipos, accesos y operaciones. Directorios. El sistema de Archivos; funciones,
organización jerarquías. Control de acceso. Asignación de espacio. Seguridad y protección. Políticas de protección. Sistemas de archivos distribuidos.

* UNIDAD TEMÁTICA 5: Administración de los Dispositivos
Dispositivos de entrada/salida. Buffering. Acceso Directo a Memoria (DMA) y Buffering.
Control dirigido por programa. Interrupciones. Sistemas de Interrupciones. Canales: Protocolos para
transmisión de datos. Software de entrada/salida y dispositivos.

* UNIDAD TEMÁTICA 6: Caso de estudio LINUX : File System
Generalidades: Objetivos. Interfases. Login. Shell. Directorios y archivos. Programas utilitarios.
Conceptos fundamentales: procesos. System calls de Memoria. Systems calls de archivos y
directorios. System calls de entrada/salida.

VII - Plan de Trabajos Prácticos
TRABAJOS PRÁCTICOS DE AULA

* Práctico 1: Conceptos básicos.
* Práctico 2: Administrador del Procesador.
* Práctico 3: Administrador de la Memoria.
* Práctico 4: Administrador de la Información.
* Práctico 5: Administrador de los Dispositivos.



TRABAJOS PRÁCTICOS DE MÁQUINA

* Práctico 1: Llamadas al Sistema
* Práctico 2: Administrador del Procesador.
* Práctico 3: File System




VIII - Regimen de Aprobación
RÉGIMEN DE REGULARIZACIóN

Para regularizar la materia los alumnos deberán cumplir con las siguientes condiciones:
* Aprobar los prácticos de aula.
Se entiende por práctico de aula a todo práctico que la cátedra fije para cada unidad, a realizar o entregar en el aula.
* Contar con una asistencia del
- 80% a las clases teóricas.
- 80% a las clases prácticas en aula y en máquina.

* Aprobar los prácticos de máquina.
Se entiende por práctico de máquina a todo práctico que involucre programación. Cada práctico se deberá entregar y aprobar en la fecha fijada por la cátedra o en una fecha de recuperación.
* Aprobar los exámenes parciales.
La cátedra establece dos parciales a realizarse durante su dictado. Los alumnos deberán aprobar tales
parciales para regularizar con notas mayor o igual a seis (6) y menor que siete (7), pudiendo recuperar cada uno de ellos acorde a las normativas vigentes.

Los alumnos que acrediten su condición de trabajadores ante las autoridades de la Facultad, podrán acceder a una recuperación adicional por trabajo de los parciales que se establezcan.


RÉGIMEN DE PROMOCIÓN

Los alumnos además de cumplir con los requisitos para regularizar la materia, deberán aprobar cada uno de los parciales de primera o de segunda instancia con una calificación igual o mayor a siete (7), para poder acceder a la evaluación de promoción, la cual consistirá de un coloquio oral sobre temas que integren la materia.

EXAMEN FINAL
El examen final será escrito u oral, pudiendo incluir uno o varios temas teóricos y/o prácticos.

EXAMEN LIBRE

Los alumnos que encontrándose en condiciones de rendir libre la materia y deseen hacerlo, deberán:

1)Entregar y aprobar un práctico de laboratorio requerido por la cátedra.
2)Rendir un examen sobre los prácticos.
3)Rendir el examen final de la materia.


El orden de la lista anterior es relevante y la no aprobación de uno significa la automática desaprobación.
IX - Bibliografía Básica
[1] [1] * Operating Systems - Harvey M. Deitel - Addison-Wesley- 2004 - ISBN: 0131828274-
[2] [2] * Operating Systems - Harvey M. Deitel - Addison-Wesley- 1990 - ISBN: 0-201-50939-3
[3] [3] * El núcleo LINUX. Review, versión 0.8-2 - RUSLING DAVID A. (1996-1998) Trabajo en preparación disponible en internet.
[4] [4] * Operating Systems Design the XINU Approach - Douglas E. Comer - Prentice Hall - ISBN: 0-13-637539-1
[5] [5] * Linux Kernel Internal - Second Edition - Michael Beck, Harald Bohme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnums, Dirk Verworner - Addison-Wesley - 1998 - ISBN: 0-201-33143.8
[6] [6] * Modern Operating Systems - Andrew S. Tanenbaum - Prentice Hall - 1992 - ISBN: 0-13-588187-0
[7] [7] * The Design of the UNIX Operating System - Maurice J. Bach - Prentice Hall - 1986 - ISBN: 0-13-201799-7 025
X - Bibliografia Complementaria
[1] [5] * UNIX for Programmers and Users A Complete Guide - Graham Glass - Prentice Hall - 1993 - ISBN: 0-13-061771-7
XI - Resumen de Objetivos
Son objetivos de la materia Sistemas Operativos los siguientes:
a) Estudio teórico de Sistemas Operativos a fin de capacitar al alumno en la comprensión de las funciones de un sistema operativo en un sistema de computación.
b) Desarrollar en el alumno la capacidad de implementar distintas técnicas relativas al área, con los elementos al alcance del Departamento de Informática.
c) Como resultados derivados de los puntos A) y B) se espera desarrollar en el alumno, luego de adquirida cierta experiencia en el área, las siguientes capacidades:

Participar en el diseño e implementación de Sistema Operativos.
Modificar un Sistema Operativo acorde a las necesidades de su entorno.
Mantener un Sistema Operativo según las comunicaciones con el proveedor de equipo.
Utilizar en otras áreas de aplicaciones los conocimientos a fin de producir software de mejor calidad.
Un manejo aceptable en la plaza del Sistema Operativo LINUX.

Acorde con los objetivos y dentro de las restricciones del plan de estudios, el desarrollo de la materia profundizará en las áreas del administrador del procesador y del administrador de la memoria.

Los administradores de la información y de los dispositivos no serán tratados al mismo nivel de detalle debido a la brevedad del curso y a la dependencia de una configuración particular.
No obstante se espera que la introducción a los mismos, dada durante el curso sea suficiente para encarar estos aspectos en situaciones futuras.
XII - Resumen del Programa
Historia, evolución y filosofía. Métodos de estructuración: modelos de capas y cliente-servidor de objetos. Tareas y procesos: definición, bloques de control, listas ready, dispatching, context switch. Coordinación y sincronización de procesos. Deadlocks: causas, condiciones, prevención; modelos y mecanismos. Scheduling and dispatching. Administrador de memoria. Administrador de dispositivos. Sistema de Archivos. Seguridad. Protección. Un caso de estudio.
Laboratorios sugeridos: Diseño e implementación de un context switcher simple y múltiples tareas usando un reloj para causar context switch hecho en un lenguaje de alto nivel. Implementación de algún mecanismo de sincronización de accesos y probar la falta de conflictos.
Correr varias mezclas de jobs bajo varios algoritmos de scheduling
y analizar los resultados (a través de simulaciones).
XIII - Imprevistos
 
XIV - Otros