Sistemas operativos Jorge Juan Chico <jjchico@dte.us.es>, Julián Viejo Cortés <julian@dte.us.es> 2011, 2014 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite la fuente y se respeten las condiciones de la licencia Attribution-Share alike de Creative Commons. Puede consultar el texto completo de la licencia en http://creativecommons.org/licenses/by-sa/3.0/ Objetivos ● ● ● Conocer las funciones de los sistemas operativos bajo la perspectiva de los distintos tipos de usuarios Conocer la evolución histórica de los sistemas operativos y relacionarla con los cambios en la forma de usar el ordenador Conocer los tipos de tareas principales que realiza un sistema operativo moderno 2 Contenidos ● Funciones del sistema operativo – ● Para el usuario. Para el programador. Para el desarrollador del sistema operativo. Tareas del sistema operativo – Evolución. Gestión de procesos. Gestión de memoria. Gestión de E/S 3 Jerarquía del software aplicaciones utilidades usuario programador bibliotecas kernel desarrollador S.O. hardware 4 Funciones del S.O. El Usuario: interfaz ● Software genérico que “viene” instalado con el ordenador – – – Interfaz hombre/máquina: interfaz de usuario Utilidades varias: editor de textos, calculadora, etc. Aplicaciones de uso general: reproductor multimedia, navegador web, correo electrónico, etc. Funciones del S.O. El programador: interfaz de programación ● Funciones y utilidades básicas que permiten la instalación y desarrollo de otras aplicaciones – – – Programas básicos: editor de textos, comandos básicos Biblioteca de funciones básicas Herramientas de desarrollo: compilador, enlazador, ensamblador, etc. Funciones del S.O. El desarrollador: máquina virtual ● Como gestor de recursos y controlador de la ejecución de procesos. Abstracción del hardware – – – – – Gestión de archivos Gestión de memoria Gestión de tareas Gestión de entrada/salida Máquina virtual HARDWARE KERNEL SOFTWARE Funciones del S.O. El desarrollador: máquina virtual Bibliotecas, Utilidades, Aplicaciones read() write() creat() fork() mmap() ioctl() INDEPENDIENTE DEL HARDWARE DEPENDIENTE DEL HARDWARE driver 1 driver 2 driver 3 driver 4 driver 5 cont. 1 cont. 2 cont. 3 cont. 4 cont. 5 Contenidos ● Funciones del sistema operativo – ● Para el usuario. Para el programador. Tareas del sistema operativo – Evolución. Gestión de procesos. Gestión de memoria. Gestión de E/S 9 Evolución de los S.O. ● Sistemas sin S.O. – – – ● programación directa en código máquina los programas (cada instrucción) se cargan en memoria directamente (ej: mediante tarjetas perforadas) los errores se indican con indicadores luminosos Sistemas primitivos – – – – – existe software pre-programado de uso general ● ensambladores, compiladores, bibliotecas, ... se escriben programas en lenguajes de alto nivel planificación de tareas manual ● tiempo de preparación alto, grandes pausas entre tareas ● gran desperdicio de tiempo de CPU entrada: tarjetas/cinta magnética salida: impresora Evolución de los S.O. ● Sistemas de colas sencillos – – – – – trabajos ordenados en una cola de entrada monitor residente: programa que carga y ejecuta trabajos automáticamente preparación automática: lenguaje de control de trabajos soporte del hardware: ● interrupciones ● protección de memoria ● temporización ● instrucciones privilegiadas: E/S, etc. inconveniente: pérdida de tiempo de CPU durante E/S Evolución de los S.O. ● Sistemas de colas sofisticados – – – ● Multiprogramación: varios programas cargados en memoria a la vez ● necesaria protección de memoria ● necesaria planificación de tareas Un nuevo proceso pasa a ejecutarse cuando otro está en espera de que concluya una operación de E/S Soporte del hardware ● múltiples interrupciones ● acceso directo a memoria (DMA) Sistemas de tiempo compartido – – Uso interactivo del sistema Ejecución de tareas de forma “casi” simultánea ● multitarea preeventiva Evolución de los S.O. Ámbito mainframe S.O. 2 S.O. 1 workstation ordenador personal sistema empotrado 1980 2008 Tareas de los S.O. ● Planificación de procesos – – – – ● Gestión de memoria – – – ● asignación eficiente de recursos a programas en ejecución implementación de la multitarea protección entre procesos comunicación entre procesos asignación dinámica de memoria protección de memoria implementación de la memoria virtual Gestión de entrada/salida (E/S) – – – control del acceso a E/S gestión de permisos implementación de sistemas de archivos Memoria virtual Memoria Real (RAM) Memoria Virtual Espacio Intercambio (en disco) 15