Download SISTEMAS OPERA
Document related concepts
Transcript
Plan Anual de Actividades Académicas a completar por el Director de Cátedra Departamento: SISTEMAS Asignatura: SISTEMAS OPERATIVOS Titular: Ing. Luis Ricardo de la Zerda Adjunto: Ing. Walter Fabián Soria (Licencia por cargo de mayor jerarquía) Auxiliares: Ing. Ernesto Sale e Ing Edmundo Loandos Planificación de la asignatura Fundamentación de la materia dentro del plan de estudios. En la ordenanza 1150/07 – Diseño Curricular de la Carrera Ingeniería en Sistemas de Información, implementación 2008, se describen las Incumbencias Profesionales y en ellas expresamente se menciona: “Evaluar y seleccionar, desde el punto de vista de los sistemas de información, los equipos de procesamiento y comunicación y los sistemas de base.” La ordenanza citada prevé un perfil de graduado que sea capaz de desarrollar creativamente sistemas de ingeniería. En el caso de Sistemas Operativos, eso significa que los estudiantes tienen que ser capaces de abordar todos los procesos que permitan implementar sistemas de base. Por esa razón, es necesario que el estudiante conozca las tecnologías de los sistemas operativos modernos para comprender lo qué da sustento a los sistemas de información en todas las escalas. Propósitos u objetivos de la materia. Formar a los alumnos en los conceptos y algoritmos básicos del funcionamiento de los Sistemas Operativos, tal que en su futuro profesional dispongan de las herramientas que le permitan explotar en forma más eficiente, efectiva y segura los sistemas computacionales, dominando los aspectos centrales relativos al procesamiento de datos, desde que un programa es concebido hasta que termina su ejecución como proceso, distinguiendo los diversos modos de procesamiento y reconociendo las distintas técnicas de administración de recursos y de sincronización o comunicación entre procesos. Objetivos Particulares: Se pretende que el alumno, al terminar el curso: a) Reconozca las diferencias y características distintivas de los sistemas operativos monolíticos y estratificados basados en microkernel. b) Comprenda los conceptos de Llamada al Sistema y Servicios de un Sistema Operativo. 1 c) Reconozca los distintos modos de procesamiento y sus características de utilización de recursos. d) Comprenda los conceptos de Proceso e Hilos, sus estados y los mecanismos de comunicación entre ellos. e) Conozca los distintos métodos de administración de memoria, sus ventajas y desventajas, características principales respecto a performance, utilización de espacio, complejidad y aplicación. f) Comprenda el problema de los Bloqueos/Estancamientos y los métodos para detectarlos y resolverlos. g) Conozca los distintos Sistemas de Archivos y sus características, funcionamiento respecto a rendimiento, utilización de espacio, complejidad y aplicación. h) Reconozca las distintas técnicas para la administración de dispositivos de Entrada/Salida y las características de funcionamiento de los dispositivos típicos. i) Que adquiera conocimientos básicos de las políticas y mecanismos de seguridad que implementan los sistemas operativos. Contenidos. Unidad 1:- Generalidades de los Sistemas Informáticos, Introducción a los Sistemas Operativos y Evolución Histórica. Qué es? Qué hace un sistema operativo? Punto de vista del usuario y de la informática. Definición. Organización de una computadora. Estructura de Memoria. Estructura de E/S. Arquitectura de un sistema informático. Sistema de un solo procesador. Sistemas multiprocesador. Sistemas en Cluster. Estructura de un sistema operativo. Operaciones del sistema operativo. Modos de trabajo. Temporizador. Gestión de memoria. Gestión del sistema de archivos. Gestión de Almacenamiento masivo. Almacenamiento en caché. Sistemas de E/S. Protección y Seguridad. Sistemas distribuidos. Sistemas de propósito general. Sistemas embebidos en tiempo real. Sistemas multimedia. Sistemas de mano. Entornos informáticos. Sistema cliente-servidor. Sistema entre iguales. Sistema basado en la web. Unidad 2:- Estructuras de los sistemas operativos Servicios del sistema operativo. Interfaz del sistema operativo: intérprete de comandos e interfaces gráficas de usuario. Llamadas al sistema. Tipos de llamadas: control de procesos, administración de archivos, administración de dispositivos, mantenimiento de información, comunicaciones. Programas del sistema. Diseño e implementación del sistema operativo. Mecanismos y políticas. Implementación. Estructuras de un sistema operativo. Simple o monolítica. En capas o niveles. Microkernel. Módulos u orientado a objetos. Máquinas virtuales. Implementación. Beneficios. Ejemplos. Generación de sistemas operativos. Arranque del sistema. Unidad 3:- Procesos 2 Concepto de Proceso. Estados. Bloque de control del proceso. Planificación de procesos. Colas de planificación. Planificadores. Cambio de contexto y de proceso. Operaciones sobre los procesos: creación de procesos, terminación de procesos. Comunicación interprocesos. Sistemas de memoria compartida. Sistemas de paso de mensajes. Sincronización. Almacenamiento en buffer. Ejemplos de sistemas IPC: Memoria compartida en POSIX. Paso de mensajes en Mach. Windows XP. Comunicación en los sistemas cliente-servidor. Sockets. Llamadas a procedimientos remotos. Invocación de métodos remotos. Unidad 4:- Hilos El por qué de los hilos. Ventajas. Modelos multihilos: muchos a uno, uno a uno y muchos a muchos. Bibliotecas de hilos. Pthreads. Hilos en Win32. hilos en Java. Consideraciones sobre los hilos. Creación, cancelación, tratamiento de señales, conjunto compartidos de hilos, datos específicos de un hilo, activaciones del scheduler. Ejemplos de Sistemas operativos: en windows XP y en Linux. Unidad 5:- Planificación de la CPU Conceptos básicos. Ciclo de ráfagas de CPU y de E/S. Planificador de CPU. Planificación apropiativa. Despachador. Criterios de Planificación. Algoritmos de Planificación. FCFS. SJF. Por prioridades. Por turnos. Mediante colas multinivel sin y con realimentación. Planificación de sistemas multiprocesador. Métodos. Afinidad al procesador. Equilibrio de carga. Mecanismos multihilos simétricos. Planificación de hilos. Ambito de contienda. Planificación en Pthread. Ejemplos de Sistemas operativos. Planificación en Solares, en Windows XP y en Linux. Evaluación de Algoritmos. Modelo determinista, en colas. Simulación. Implementación. Unidad 6:- Sincronización de Procesos Fundamentos. El problema de la sección crítica. Solución de Peterson. Hardware de sincronización. Semáforos. Utilización. Impementación. Interbloqueos e inanición. Problemas clásicos de sincronización. Problema del buffer limitado. El problema de los lectores-escritores. El problema de la cena de los filósofos. Monitores. Utilización. Solución al problema de los filósofos usando monitores. Implementación de un monitor usando semáforos. Reanudación de procesos dentro de un monitor. Monitores de Java. Ejemplos de sincronización en Sistemas Operativos: Solaris, Windows XP, Linux y en Pthreads. Transacciones atómicas. Modelo del sistema. Recuperación basada en registro. Puntos de comprobación. Transacciones atómicas concurrentes. Protocolo de bloqueo. Protocolos basados en marcas temporales. Interbloqueos. Modelo de sistema. Caracterización de los interbloqueos. Condiciones necesarias. Grafos. Unidad 7:- Interbloqueos Métodos para tratar los interbloqueos: Prevención. Evitación, estado seguro, algoritmo del banquero. Detección. Recuperación. 3 Unidad 8:- Memoria Principal Hardware básico. Reasignación de direcciones. Espacio de direcciones lógico y físico. Carga dinámica. Montaje dinámico y bibliotecas compartidas. Intercambio. Asignación de memoria contigüa. Mapeo de memoria y protección. Asignación de memoria. Fragmentación. Paginación. Soporte hardware. Páginas compartidas. Estructura de la tabla de páginas. Tablas de páginas hash. Invertida. Segmentación. Hardware. Ejemplo: Pentium Unidad 9:- Memoria Virtual Fundamentos. Paginación bajo demanda. Conceptos, rendimiento. Copia durante escritura. Sustitución de páginas. Conceptos, criterio FIFO, anomalía de Belady, sustitución óptima de páginas, LRU, aproximación de LRU, de bits adicionales, de 2da oportunidad, mejorado, basado en contador, en buffer de páginas. Aplicaciones. Asignación de marcos. Número mínimo de marcos. Algoritmos de asignación. Global y local. Sobrepaginación. Causas. Modelo del conjunto de trabajo. Frecuencia de fallos de páginas. Archivos mapeados en memoria. E/S mapeada en memoria. Asignación de la memoria del kernel. Binaria, por franjas. Prepaginación. Tamaño de página. Alcance del TLB. Tabla de páginas invertida. Estructura de los programas, interbloqueo e E/S. Ejemplos de Sistemas Operativos: Windows XP y Solaris. Unidad 10:- Interfaz del Sistema de Archivos Concepto de archivo. Atributos de archivo. Operaciones con los archivos. Bloqueo de archivos en JAVA. Tipos de archivo. Estructuras. Interna. Método de acceso: secuencial, directo y otros. Estructura de directorios: almacenamiento, operaciones, de un nivel , de árbol, de grafos. Montaje de sistemas de archivos. Compartición: múltiples usuarios, sistemas de archivos remotos, modelo cliente-servidor. Sistemas de información distribuidos. Modos de fallos. Semántica de coherencia. Protección. Tipos de acceso. Control de acceso y otras técnicas de control. Unidad 11:- Implementación de Sistemas de Archivos Estructura de un sistema de archivos. Implementación. Bases. Particiones y montaje. Sistemas de archivos virtuales. Implementación de directorios: lista lineal, tabla hash. Métodos de asignación: contigüa, enlazada e indexada. Prestaciones. Gestión del espacio libre: vector de bits, lista enlazada, agrupamiento y recuento. Eficiencia y prestaciones. Recuperación. Estructura de archivos con estructura de registro. NFS. Protocolo de montaje. Operaciones remotas. Unidad 12:- Estructura de Almacenamiento masivo Cintas. Discos magnéticos. Estructura de un disco. Velocidades de transferencias. Conexión. Almacenamiento conectado a la red. SAN. Planificación de disco: FCFS, SSTS, SCAN, C-SCAN, LOOK y C-LOOK. Selección de un algoritmo de planificación. Gestión del disco: formateo, bloque 4 de arranque, bloques defectuosos. Gestión del espacio de intercambio: utilización, ubicación. Ejemplo. Estructuras RAID: redundancia y mejoras en las prestaciones a través del paralelismo. Niveles RAID. Almacenamiento estable. Estructura de almacenamiento terciario: Cintas, CD, DVD, memorias flash a través de puertos USB. Unidad 13:- Sistemas de E/S Introducción. Hardware de E/S. Polling, Interrupciones, DMA. Interfaz de E/S de las aplicaciones. Dispositivos de bloques y de caracteres. Dispositivos de red. Relojes y temporizadores. E/S bloqueantes y No-bloqueantes. Subsistema de E/S del kernel. Planificación de E/S. Almacenamiento en buffer. Almacenamiento en caché. Gestión de colas reserva de dispositivos. Tratamiento de errores. Protección de E/S. Estructuras de datos del kernel. Transformación de las solicitudes de E/S en operaciones hardware. Streams. Rendimiento. Comunicación entre computadoras. Unidad 14:- Estructura de los Sistemas Distribuidos Conceptos. Compartición de recursos. Aceleración de los cálculos. Fiabilidad. Comunicación. Tipos de sistemas operativos distribuidos. Sistemas operativos de red. Inicio de sesión remota. Transferencia remota de archivos. Sistemas operativos distribuidos: migración de datos, de cálculos, de procesos. Estructura de una red. LAN.WAN topología de red. Estructura de comunicaciones. Nombrado y resolución de nombres. Estrategias de encaminamiento: de paquetes, de conexión. Contienda. Unidad 15:- Sistemas de Archivos Distribuidos Protocolo de comunicaciones. Robustez: detección de fallos, reconfiguración, recuperación de fallos. Cuestiones de diseño. Ejemplo de conexión en red. Sistemas de archivos distribuidos. Conceptos. Nombrado y transparencia. Estructuras de nombrado. Esquemas. Técnicas de implementación. Acceso remoto a archivos, esquema básico de caché. Ubicación de la caché. Actualización. Coherencia. Comparación. Servicios con y sin memoria de estado. Replicación de archivos. Ejemplo: AFS Unidad 16:- Coordinación Distribuida Ordenación de sucesos. Exclusión mutua. Enfoque centralizado. Enfoque completamente distribuido. Técnica basada en paso de testigo. Atomicidad. El protocolo de confirmación de 2 fases. Gestión de fallos de 2PC. Control de concurrencia. Protocolos de bloqueo: esquema no replicado, técnica basada en un único coordinador. Protocolo de mayoría. Preferencial. Copia principal. Marcas temporales. Gestión de interbloqueos. Prevención y evasión de interbloqueos. Detección de interbloqueos. Enfoque centralizado. Enfoque completamente distribuido. Algoritmos de elección. El algoritmo de imposición. El algoritmo del anillo. Procedimientos de acuerdo. 5 Unidad 17:- Sistemas de Tiempo Real Introducción. Características del sistema. Características de un kernel de tiempo real. Implementación de sistemas operativos de tiempo real. Planificación basada en prioridades. Kernels apropiativos. Minimización de la latencia. Planificación de la CPU en tiempo real: por prioridad monótona en tasa, por prioridad en finalización de plazo, con cuota proporcional. Planificación en Pthread. Ejemplos: VxWorks 5.x. Linux. Sistemas multimedia. Conceptos. Suministro de datos. Características de los sistemas multimedias. Compresión. Requisitos de los kernels multimedia. Planificación de la CPU. Planificación de disco. Planificación SCAN-EDF. Gestión de red. Unidifusión y multidifusión. Protocolo de flujo de tiempo real. Ejemplo: CineBlitz. Unidad 18:- Protección Objetivos de la protección. Principios. Dominios. Estructura de dominios. Ejemplo: UNIX, MULTICS. Matriz de acceso. Implementación. Tabla global. Lista de accesos para los objetos, lista de capacidades para los dominios. Mecanismo de bloqueo-clave. Control de acceso. Revocación de derechos de acceso. Sistemas basados en capacidades. Ejemplos. Protección basada en el lenguaje. Protección en JAVA. Unidad 19:- Seguridad El problema de la seguridad. Amenazas relacionadas con los programas: Caballo de troya. Puerta trasera. Bomba lógica. Desbordamiento de pila y de buffer. Virus. Amenazas del sistema y de la red: gusanos. Escaneo de puertos. Denegación de servicio. La criptografía como herramienta de seguridad. Cifrado. Simétrico y asimétrico. Autenticación. Distribución de claves. Implementación de los mecanismos criptográficos. Ejemplo: SSL. Autenticación de usuario. Contraseñas. Vulnerabilidad. Contraseñas cifradas. Implementación de defensas de seguridad. Política de seguridad. Evaluación de la vulnerabilidad. Detección de intrusiones. Protección contra virus. Cortafuegos para proteger sistemas y redes. Clasificación de seguridad informática. Ejemplo: windows XP Unidad 20:- Comparativa de Sistemas Operativos. Linux. Componentes del sistema: El kernel, bibliotecas y utilidades. Módulos del kernel. Gestión de procesos, hilos. Planificación. Sincronización del kernel. Gestión de memoria. Sistemas de archivos: virtual, ext2fs. Entrada y salida. Comunicación interprocesos. Estructura de red. Seguridad. Windows XP componentes del sistema: HAL, kernel, despachador, hilos y planificación. Primitivas de sincronización. Interrupciones de software: llamadas a procedimientos asíncronas y diferidas. Excepciones e interrupciones. El ejecutivo: gestor de objetos, gestor de memoria virtual, gestor de procesos. Llamadas a procedimientos locales. Gestor de E/S. Gestor de caché. Monitor de referencia de seguridad. Gestores plug-and-play y de administración de energía. El registro. Arranque. Subsistemas de entorno. Sistemas de archivos: NTFS. Conexión de red, Interfaces. Protocolos: SMB, NetBIOS, NetBEUI, TCP/IP, PPTP, etc. Mecanismos de procesamiento 6 distribuido: pipes con nombre, buzones de correo, Winsock, llamadas a procedimiento remoto. Redirectores y servidores. Dominios. Active Directory. Interfaz de programación Metodología de Enseñanza. El curso esta conceptualizado para tener un balance de la teoría con la práctica, en el sentido de apoyar el proceso de enseñanza-aprendizaje, con el desarrollo de trabajos prácticos aplicando los conceptos vistos en clase. Las clases son presenciales con una frecuencia de 2 (dos) clases por semana. Comprenden la teoría de sistemas operativos en general dictadas por los Docentes a cargo de la Cátedra y las clases de ejercitación práctica y de laboratorios que son guiadas por los Auxiliares de Cátedra. Las prácticas en laboratorio se llevarán a cabo sobre un Sistema Operativo LINUX. Metodología de Evaluación. La Regularidad se obtiene con un mínimo de las siguientes condiciones: 75% de asistencia a clases Los 4 Parciales aprobados con 4 o más. Se pueden aprobar en una instancia original o en cualquiera de las recuperaciones de Diciembre o Febrero del año siguiente. La evaluación para la Aprobación de la asignatura es por Examen Final. Dicho examen trata sobre los temas teóricos de la cátedra. Comprende tanto preguntas teóricas, conceptuales, como así también problemas. El examen es escrito El tiempo de examen máximo es de 1,5 Hs. Recursos didácticos a utilizar como apoyo a la enseñanza. La modalidad es de clase magistral; se responde preguntas y se realiza comentarios aclaratorios relacionados con el tema. El alumno deberá disponer para el cursado de la asignatura el juego de graficas que usa el docente, el cual está disponible para el alumno. El objetivo que se persigue es el de evitar que la clase tenga interrupciones y distracciones innecesarias en el momento de la transmisión del conocimiento por parte del docente. Al iniciar un tema se presentan los objetivos y al final se realiza una síntesis y una evaluación rápida de los alumnos para fijar conocimientos y aclarar conceptos. Articulación horizontal y vertical con otras materias La asignatura Sistemas Operativos se desarrolla en el ciclo anual del segundo Nivel, se articula con asignaturas previas y con otras que se desarrollan en niveles superiores; asignaturas que pertenecen al área de computación, como así también a otras áreas de la carrera. De acuerdo al régimen de correlatividades, Sistemas Operativos requiere: · Para Cursar, haber Cursado: Matemática Discreta Algoritmos y Estructura de Datos Arquitectura de Computadoras · Para Rendir, haber Aprobado: Matemática Discreta Algoritmos y Estructura de Datos 7 Arquitectura de Computadoras Por otro lado, Sistemas Operativos es requerida por asignaturas de niveles superior, como sigue: Para Cursar Redes de Información: Cursada Para Rendir Redes de Información: Aprobada Para Cursar Administración de Recursos: Cursada Para Rendir Administración de Recursos: Aprobada Para Cursar Proyecto Final: Aprobada Para Cursar Administración Gerencial: Aprobada Para Cursar Sistemas de Gestión: Aprobada Tal como se describe en los ítems anteriores, el alumno requiere conocimientos previos aportados por diversas asignaturas y provee conocimiento que es utilizado en la enseñanza y comprensión de asignaturas del área Computación, además brinda conceptos que son abordados y/o utilizados por diversas asignaturas de la carrera Ingeniería en Sistemas de Información. La asignatura Sistemas Operativos provee la abstracción básica al alumno para la explotación de los sistemas computacionales, permitiéndole conocer el rol del software de base y los distintos modos de procesamiento; modos que se deben considerar durante el análisis y diseño de sistemas de informaciones. Además, durante el dictado del curso se hace uso de un lenguaje procedural (C) para articular los conocimientos teóricos en un Sistema Operativo (LINUX); tales tipo de lenguaje fue estudiado durante el curso de Sintaxis y Semántica de los Lenguajes. Como se detalla en los párrafos previos, se puede concluir que la articulación se produce en diversos aspectos: · En algunos casos las asignaturas vinculadas brindan conceptos, métodos o habilidades que son aplicadas directamente en el diseño e implementación de Sistemas Operativos, tal es el caso de estructuras de datos (Algoritmo y Estructura de Datos), matemática binaria (Matemática Discreta), vectores y matrices (Álgebra y Geometría Analítica). · De la misma forma, es el curso de Sistemas Operativos quien brinda conceptos, métodos o habilidades que son aplicadas directamente en la resolución de problemas que surgen en el estudio de otras asignaturas, tal es el caso de las materias del área Computación (Comunicaciones, Redes de Información). · En otros casos, los aprendizajes de las otras asignaturas dan un marco conceptual y operativo necesario para la enseñanza de los sistemas operativos (como el modelo de computadoras, las distribuciones de probabilidades, etc.). En otros se abordan aspectos globales y contextuales que permiten ubicar la disciplina dentro de la especialidad (Ingeniería de Sistemas de Información), un caso puntual sucede con Administración de Recursos, del 4to nivel, que permite al alumno comprender que no sólo se debe dar soluciones a los problemas técnicos de implementación de Sistemas Operativos, sino que estos son un eslabón de una solución integral de un sistema de información en particular. Planteo de trabajos prácticos en conjunto, como ser confección de caso de estudio de un Sistema Operativo para el modelado y ejemplificación de conceptos en Análisis y Diseño. Semana Cronograma estimado de clases. DIA Teoría, Taller/ Aula TEMA A DESARROLLAR: UNIDAD 8 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Laboratorio: Descripción de la Actividad Teoría Generalidades de los Sist Informa Teoría Generalidades de los Sist Operat Teoría Introducción a los Sist Operativos Semana Santa Teoría Servicios de los Sist Operativos Laboratorio Practica Teoría Estructuras de los Sist Operativos Aula Taller Practica Teoría Máquinas Virtuales Laboratorio Practica Teoría Procesos Laboratorio Practica Teoría Comunicación interprocesos Aula Taller Practica Teoría Hilos Primer Parcial Teoría Planificación de la CPU Laboratorio Practica Teoría Planificación en SMP Aula Taller Practica Teoría Concurrencia Aula Taller Practica Teoría Semáforos Aula Taller Practica Teoría Monitores Aula Taller Practica Teoría Ej de Sincroniz en SO actuales Laboratorio Practica Teoría Abrazo Mortal Segundo Parcial Teoría Gestión de Memoria Feriado Teoría Memoria Virtual Laboratorio Practica Feriado Aula Taller Practica Teoría Archivos Laboratorio Practica Teoría Sistemas de Archivos Laboratorio Practica Teoría Implementación de un File Syst Laboratorio Practica Teoría Gestión de Entrada/Salida Tercer Parcial 1 1 1 2 2 2 2 2 2 3 3 3 3 4 1-2-3-4 5 5 5 5 6 6 6 6 6 6 6 6 7 5-6-7 8 8 9 8 9 10 10 11 11 12 12 13 8-13 9 23 23 24 39 40 41 Teoría Aula Taller Laboratorio 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 42 43 44 Aula Taller Teoría Laboratorio 45 46 47 48 49 50 51 52 53 54 55 Laboratorio Teoría Laboratorio Teoría Laboratorio Teoría Laboratorio Teoría Laboratorio Teoría Laboratorio Estructuras de Sist Distribuidos Practica Sistemas de Archivos distribuidos Practica Coordinación distribuida Practica Feriado Practica Sistemas de Tiempo Real Practica Protección Practica Seguridad Practica Ej de SO: el Kernel de Linux Practica Ej de SO:Windows XP Practica Cuarto Parcial 14 14 15 15 16 16 16 17 17 18 18 19 19 20 20 20 20 13-20 Bibliografía Principal Fundamentos de Sistemas Operativos: Silberschatz, Galvin y Gagne, Edit. Mc-Graw-Hill, 7ma Edición – 2006 Sistemas Operativos Modernos: Tanenbaum, Edit.Pearson, 3era Edición – 2009 Sistemas Operativos: Stallings, Edit. Pearson, 5ta.Edición – 2005 Bibliografía Complementaria: Sistemas Operativos-Una visión Aplicada: Carretero Pérez, García Carbaleira, De Miguel Anasagasti y Pérez Costoya. Edit.Mc-Graw-Hill, 2da Edición Notas de Sistemas Operativos: Sergio Saade, Edit.Top Graph 1era Ediciòn Sistemas Operativos: Nutt, Edit. Pearson 3era.Edición - 2004 10