Ruta de migas

26022 - Introducción a los Sistemas Operativos



  • Centro: Escuela Universitaria de Ingeniería de Vitoria-Gasteiz
  • Titulación: Grado en Ingeniería Informática de Gestión y Sistemas de Información
  • Curso académico: 2017/18
  • Curso: 2


Descripción y Contextualización de la Asignatura

La asignatura tiene como objetivo introducir al alumnado en la gestión de recursos que debe hacer un sistema operativo para proveer de un interfaz uniforme a los programas.
Los conceptos que se introducen permiten programar de una forma más efectiva, con mayor conocimiento sobre lo que está ocurriendo a más bajo nivel en el sistema. Además, se introducen otros conceptos como los del paralelismo y la necesidad de colaboración entre procesos para gestionar recursos compartidos.
Esta asignatura además proporciona un acercamiento a la línea de comandos de Unix y la familia de sistemas operativos basados en Unix (GNU/Linux, BSD; Mac OS X, Android, IOS).

Competencias/ Resultados de aprendizaje de la asignatura

Al finalizar el curso, el estudiante deberá ser capaz de identificar las interfaces de un sistema operativo, y en particular de desarrollar sobre Linux utilidades para las aplicaciones a partir de su interfaz de llamadas al sistema. La asignatura hace énfasis en diferentes tipos de sistemas (tiempo compartido, tiempo real, etc), en sus conceptos fundamentales (ficheros, protección de accesos, procesos, elementos de comunicación) y en la funcionalidad de sus componentes (subsistemas para la gestión de procesos, memoria, entrada-salida).

Formalmente, de acuerdo al Plan de Estudios, además de las competencias de la asignatura, se trabajarán las competencias generales C4, C5, C8 y C9, así como las competencias RI5, RI10 y RI14 de la rama común informática, tal y como aparecen en la Memoria de la Titulación.

Contenidos Teórico-Prácticos

Teoría
======

Bloque temático: Sistema Operativo.

Tema 1: Introducción: función de los Sistemas Operativos.

Definición de sistema operativo como interfaz para las aplicaciones y como gestor de los recursos del computador. Perspectiva histórica de los sistemas operativos. Tipos de sistemas según su funcionalidad (monoprogramados, multiprogramados, de tiempo compartido, de tiempo real, empotrados y distribuidos). Interfaces del sistema operativo (de usuario, de administración, de las aplicaciones, del desarrollador). Mercado actual de los sistemas operativos (sistemas propietarios, sistemas abiertos, software libre) y perspectiva.

Tema 2: Mecanismo de Llamadas al Sistema. Kernel Linux.

Tomando como soporte los elementos que proporciona la interfaz hardware (espacios de direcciones, interfaz de los dispositivos, mecanismo de interrupciones), determinación de los servicios básicos comunes a establecer como código residente. Concepto de llamada al sistema operativo como función de acceso a un servicio residente. Implementación de las llamadas al sistema a través del mecanismo de interrupciones y los modos de ejecución.

Bloque temático: Ficheros.

Tema 3: Gestión del Sistema de Ficheros e Intérprete de Comandos. Usuarios y Seguridad.

Tema 4: Concepto de independencia del dispositivo y redirección de la entrada-salida.

Concepto de sistema de ficheros y sus mecanismos de representación. Definición de sistema multiusuario. Tipos de usuarios, modos de acceso y dominios de protección. Mecanismos básicos de gestión de la protección de accesos en sistemas centralizados. Llamadas al sistema relacionadas con la protección de accesos y la seguridad.

Bloque temático: Memoria

Tema 5: Desarrollo y Carga de Programas de C en Memoria: Librerías estáticas y dinámicas.

Carga y ubicación de programas en sistemas con uno o varios programas en memoria. Direccionamiento físico y virtual. Desarrollo de librería estáticas y dinámicas. Librerías de enlace dinámico. Llamadas al sistema operativo relacionadas con la carga de programas y la gestión de la memoria.

Tema 6: Gestión de Memoria. Paginación y Segmentación. Memoria Virtual.

Bloque temático: Procesos

Tema 7: Gestión de Procesos. Tiempo Real.

Concepto de flujo y contexto de ejecución. Sistemas multiprogramados y sistemas multihilo. Concepto de proceso e hilo (modelo Unix), estados y grafo de transición. Cambio de contexto. Planificación de procesos y políticas de planificación básicas. Llamadas al sistema operativo relacionadas con el control de procesos.

Tema 8: Concurrencia de Procesos

Conceptos de concurrencia, recurso compartido, condición de carrera y acceso exclusivo. Secciones críticas de código. Mecanismos básicos de acceso exclusivo a secciones criticas. Comunicación con paso de mensajes mediante buzones. Llamadas al sistema relacionadas con la comunicación entre procesos. Modelo de gestión de recursos basado en el esquema cliente-servidor. Ejemplos de gestores de recursos (drivers).

Bloque temático 5: Contenedores

Contenedores.

Concepto de contenedor / virtualización ligera. Teoría y técnicas usadas.


Prácticas
=========

Instalación y configuración de un programa de virtualización: VirtualBox.

Aprendizaje de la distribución Ubuntu (GNU/Linux) e instalación de Kubuntu y de Ubuntu Server en una máquina virtual.

Uso de redirecciones desde la línea de comandos, programar ejemplos de entrada-salida. Manejo del Sistema de Ficheros, manejo del derechos de acceso, redireccionamiento y tuberías, montaje, programar y otras tareas en el intérprete de comandos.

Monitorización de consumo de memoria, manejo del Lenguaje C, uso de funciones de librería y ficheros cabecera. Uso de compilador: gcc, crear librerías dinámicas y estáticas, gestionar los proyectos con make

Programación en C con Llamadas al Sistema, usando la línea de comandos.

Ficheros: Conocer las llamadas al sistema que gestionan los ficheros. Crear programas que usen las Llamadas al Sistema de Linux, en vez de las típicas funciones de librería.

Procesos: Gestionar los procesos usando comandos del bash. Gestionar los procesos usando llamadas a Sistema (interfaz del kernel Linux). Controlar el envío de señales a los procesos usando comandos del bash. Envío de señales a los procesos usando Llamadas a Sistema.

Conocer las diferentes técnicas de comunicación entre procesos (mediante mensajes,variables compartidas,archivos, pipes...). Comprobar que se cumplen las condiciones: exclusión mutua, progreso, espera activa e interbloqueo. Espera Activa Hardware. Semáforos. Tiempo Real.

Introducción a Docker como tecnología ligada al al núcleo del Sistema GNU/Linux.

Metodología

La asignatura se desarrolla entre la teoría y las prácticas, reforzándose mutuamente para fijar conceptos mediante ejemplos, y fijar técnicas al entender la teoría

Cualquier aclaración en pablo.gonzalez@ehu.eus o en tutorías en Lenguajes y Sistemas Informáticos.

Ver https://lsi.vc.ehu.eus/pablogn/

Tipo de docencia
Tipo de docencia M S GA GL GO GCL TA TI GCA
Horas de docencia presencial 45     15          
Horas de actividad no presencial del alumno / alumna 67,5     22,5          

Sistemas de evaluación

  • SISTEMA DE EVALUACIÓN FINAL
    • Herramientas y porcentajes de calificación:
    • PRUEBA ESCRITA A DESARROLLAR 70%
    • REALIZACIÓN DE PRACTICAS (EJERCICIOS, CASOS O PROBLEMAS) 30%

Convocatoria Ordinaria: Orientaciones y Renuncia:

Los exámenes parciales tendrán un peso en la asignatura de un 30% (evalúan mediante una prueba escrita que se han obtenido los conocimientos tanto teóricos como prácticos) en el apartado de conocimientos y competencias generales (la teoría) y el examen final el porcentaje restante.

Los exámenes escritos consisten en preguntas cortas y problemas. Hay ejemplos en la web: https://lsi.vc.ehu.eus/pablogn/docencia/ISO/

La evaluación de la asignatura en la convocatoria ORDINARIA se realiza mediante evaluación mixta. La nota final de la asignatura se calcula en base a las notas de un examen a realizar al final del cuatrimestre, así como dos controles a realizar durante el curso. Tanto el examen como los controles evalúan tanto conocimientos teóricos como aspectos prácticos desarrollados en los laboratorios a desarrollar durante el curso.

El porcentaje de nota en cada parte es el siguiente:
- Controles (pruebas escritas para valorar las prácticas): 30% (conocimientos).
- Examen final: 70%

Se considerará que el alumno se ha presentado a la convocatoria ORDINARIA si se presenta al examen de la asignatura. En caso contrario, la nota será No Presentado.

En todo caso, para aprobar la asignatura, es necesario presentarse al examen y, además, haber realizado todos los controles propuestos.

Además, para aprobar la asignatura también será necesario que cada alumno obtenga, al menos, un 30% de la nota en el examen final y en cada uno de los controles realizados.

En caso de no obtener la calificación mínima exigida en cualquiera de ellos, se considerará que el alumno ha suspendido la convocatoria ordinaria de la asignatura.

Suponiendo que el alumno obtenga la nota mínima en todas y cada una de las partes, la calificación mínima que el alumno debe obtener para aprobar la asignatura son 5 puntos sobre el total de 10 de la asignatura. En caso de obtener una calificación menor, se considerará que el alumno ha suspendido la convocatoria ordinaria de la asignatura.

No se permite un examen global de la asignatura en la convocatoria ordinaria, salvo en la excepción en la modalidad de evaluación que se comenta posteriormente y de acuerdo a la normativa: https://lsi.vc.ehu.eus/pablogn/docencia/Nueva%20normativa%20de%20evaluaci%f3n.pdf

Los alumnos que no superen o no se presenten a la convocatoria ordinaria, deberán examinarse en una convocatoria EXTRAORDINARIA en la que se les evaluará en un examen global de toda la asignatura.


* RENUNCIA al derecho al examen:
El alumno que no se presente al examen en la convocatoria ordinaria, obtendrá como calificación final "No Presentado", independientemente de que haya realizado, o no, el resto de controles durante el curso.


* EXCEPCIÓN en la modalidad de evaluación:

- Se podrá optar a un examen único por el 100% de la nota final de la forma recogida en la normativa vigente referente a la evaluación del alumnado.


* CASOS DE COPIA:
Se aplicará la normativa vigente referente a la evaluación del alumnado

Convocatoria Extraordinaria: Orientaciones y Renuncia

El examen final extraordinario escrito consiste en el 100% de la nota.
El resto de condiciones son las mismas que las expuestas en el apartado de convocatoria ordinaria.

Materiales de uso obligatorio

Sistema operativo GNU/Linux, manuales y herramientas y programas C que se proporcionarán.

Ver https://lsi.vc.ehu.eus/pablogn/docencia/ISO/

Bibliografía

  • Bibliografía básica:

C. Rodríguez, I. Alegria, J. González, A. Lafuente: Descripción Funcional de los Sistemas Operativos. Síntesis, 1994.
A.S. Tanenbaum: Modern Operating Systems (3rd Edition), Prentice-Hall, 2008.
M. Rochkind: Advanced Unix Programming, Addison-Wesley, 2004.
Silberschatz, P.B. Galvin, G. Gagne: Operating System Concepts (Eight edition), John Wiley & Sons, 2008.
W. Stallings: Sistemas Operativos (Quinta edición). Prentice-Hall, 2005.
  • Bibliografía profundización:

internet
  • Direcciones de Internet de interés:

http://redy.fotolibre.net/curso-de-bash-para-fotografos-linuxeros/
http://www.commandlinefu.com/commands/browse/sort-by-votes
http://www.cs.cf.ac.uk/Dave/C/

Observaciones

No hay información disponible sobre esta sección
Fecha última modificación: 29/05/2017
Nodo: liferay1.lgp.ehu.es