Ing. M. Coral
Introducción a los Sistemas
Operativos
Sistema informático Memoria Programas y datos Software del sistema operativo Procesador Procesador Controlador de E/S Controlador de E/S Controlador de E/SDispositivos de E/S
Sistemas operativos
• Programa que controla la ejecución de los programas de aplicación:
Acceso eficiente a recursos compartidos limitados
• Actúa como interfaz entre las
aplicaciones del usuario y el hardware • Ofrece servicios a los programas de
aplicación
Objetivos de los sistemas
operativos
• Comodidad:
– Hace que un computador sea más cómodo de utilizar.
Abstracción, Servicios establecidos, Factores humanos
• Eficiencia:
– Permite un uso eficiente de los recursos de un sistema informático.
Concurrencia, memoria, etc.
• Capacidad de evolución:
– Permite el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema sin interferir en los servicios.
Niveles de un sistema
informático
Usuario final
Progra-mador Programas de aplicación
Utilidades
Hardware del computador Sistemaoperativo
Diseñador del sistema
Servicios que ofrece el
sistema operativo (I)
• Creación de programas:
– Editores, compiladores y depuradores
(debuggers).
• Ejecución de programas.
• Acceso ordenado a los dispositivos de E/ S.
Servicios que ofrece el
sistema operativo (II)
• Detección y respuesta a errores:
– Errores internos y externos del hardware.
• Error de memoria.
• Fallo de dispositivos.
– Errores de software.
• Desbordamiento aritmético.
• Acceso a una posición prohibida de memoria.
Servicios que ofrece el
sistema operativo (III)
• Contabilidad:
– Recoger estadísticas.
– Supervisar su rendimiento.
– Utilizado para anticiparse a las mejoras
futuras. Adaptabilidad: interfaces adaptativas.
El Sistema Operativo
• Funciona de la misma manera que el software normal de un computador.
– Es un programa ejecutado por el procesador.
• El sistema operativo abandona el control del procesador para ejecutar otros
Núcleo
• Parte del sistema operativo que se encuentra en la
memoria principal.
• Incluye las funciones utilizadas con más frecuencia.
• Carece de estructura
• También denominado kernel (DOS, Windows , Unix).
• Microkernel o micronúcleo (WNT,W2K): En este
caso, el S.O. se ocupa sólo de unas pocas funciones
(gestión de memoria, procesos, IPC Inter-process
Evolución de un sistema
operativo
• Actualizaciones del hardware y nuevos tipos de hardware.
• Nuevos servicios.
Evolución
- La historia de los SO’s esta ligada a la rápida evolución del hardware ($ decreciente, con el nivel de integración) y a
Evolución de los sistemas
operativos
• Proceso en serie (Open Shop):
– No había sistema operativo.
– Las operación con estas máquinas era desde una
consola consistente en unos indicadores luminosos, unos conmutadores, un dispositivo de entrada y
una impresora. PROBLEMAS:
– Planificación, temporización.
– La preparación incluía cargar un compilador, un
programa fuente, salvar el programa compilado y, por último, cargar y montar.
Evolución de los sistemas
operativos
• Sistemas sencillos de proceso por lotes.
– Monitores:
• El monitor residente que siempre reside en
memoria. Software que maneja
automáticamente los trabajos y que se carga al encender la máquina.
• Los trabajos se agrupaban por lotes, que eran
cargados y extraidos en/de la memoria por el monitor
• El programa volvía al monitor al terminar su
Lenguaje de control de
trabajos (JCL)
• Cada usuario entregaba al operador las tarjetas de programa con otras tarjetas de control que codificaban las acciones requeridas.
• Tipo especial de lenguaje de programación. • Empleado para dar instrucciones al monitor:
– Qué compilador utilizar.
– Dónde copiar el objeto compilado
– Qué datos utilizar.
Ejemplo (JCL)
$ USER $ JOB
$ FTN/ $ASM
-$ LOAD $ RUN
-$ END
}
}
Instrucciones en Fortran
Características del hardware
• Protección de memoria:
– No permite modificar la zona de memoria
en la que está el monitor.
• Temporizador:
– Previene que un solo trabajo monopolice el
Problemas
• Falta de interacción con el proceso
– Dificultad para debugging. (localizar el error)
• Ineficiencia en el uso de los recursos del sistema:
Monoprogramación
• Antes de continuar, el procesador debe esperar hasta que la instrucción de E/S termine.
Programa A Esperar Ejecutar Esperar
(a) Monoprogramación
Multiprogramación
• Cuando un trabajo necesite esperar una E/S, el procesador puede cambiar al otro trabajo. Programa A Programa B Combinados X W W X X W W X X W W X
X X W X X X W X
X: programa en ejecución W: programa en espera
Tiempo compartido
• Utiliza la multiprogramación para gestionar varias tareas interactivas.
• El tiempo del procesador se comparte entre los diversos usuarios.
• Múltiples usuarios acceden
PARA MEMORIZAR
- “Computers in the future may weigh no more than 1.5 tons” (los ordenadores del futuro no pesarán más de 1 tonelada y media) Popular Mechanics (1949)
- “I think there is a world market for maybe five computers” (me parece que la demanda mundial de ordenadores será de no más de 5 máquinas). Thomas Watson. CEO de IBM (1943)
Logros principales
• Los procesos.
• La gestión de memoria.
• La seguridad y la protección de la información.
Procesos
• Un programa en ejecución.
• Una instancia de un programa funcionando en un computador.
• La entidad que puede ser asignada al procesador y ejecutada por él.
Proceso
• Formado por tres componentes:
– Un programa ejecutable.
– Los datos asociados necesarios para el
programa.
– El contexto de ejecución del programa.
• Toda la información que el sistema operativo
Proceso
Memoria principal Registros del procesador Lista de procesos Proceso A Proceso BGestión de memoria
• Aislamiento del proceso.
• Asignación y gestión automáticas.
• Soporte para la programación modular. • Protección y control de acceso.
Memoria virtual
• Permite a los programas direccionar la memoria desde un punto de vista lógico. • No existirá un espacio muerto entre la
ejecución de los procesos sucesivos, mientras un proceso se envía al
Sistema de archivos
• Incorpora un almacenamiento a largo plazo.
Sistema de paginación
• Permite que los procesos estén formados por varios bloques de tamaño fijo,
denominados páginas.
• La dirección virtual está formada por un número de página y un deplazamiento dentro de la página.
• Cada página puede estar ubicada en un lugar cualquiera de la memoria principal. • La dirección real o dirección física se
Disco Memoria principal
Figura 2.9. Conceptos de memoria virtual.
La memoria principal está formada por un número de marcos de longitud fija del tamaño de una página. Para ejecutar un programa, algunas o todas sus páginas tienen que estar en el operativo de la memoria principal.
La memoria secundaria (disco) puede almacenar muchas páginas de longitud fija. Un programa de usuario está formado por varias páginas. Las páginas de todos los programas, incluso los del sistema están en el disco, en forma de archivos.
Direccionamiento de la
memoria virtual
Dirección de disco Dirección real Dirección de disco Dirección virtualUnidad de gestión de memoria Memoria secundari a Procesador Memoria principal
Seguridad y protección de la
información
• Control de acceso:
– Regula el acceso del usuario al sistema. • Control del flujo de información:
– Regula el flujo de datos dentro del sistema y su distribución a los usuarios.
• Certificación:
Planificación y gestión de
recursos
• Equidad:
– Otorga un acceso igual y equitativo a todos los
procesos.
• Sensibilidades diferenciales:
– Discrimina entre las diferentes clases de
trabajos.
• Eficiencia:
Elementos principales de un
sistema operativo
Sistema operativo Cola a corto plazo Cola de E/S Cola a largo plazo Planificador a corto plazo (código) Gestor de interrupciones (código) Gestor de peticiones de servicio (código) Interrupción de un procesoInterrupción de E/S Petición de servicio
de un proceso
Pasar el control al proceso
LLAMADAS A SISTEMA
Los procesos se comunican con el SO a través de llamadas al
sistema. Cada llamada al sistema desde un lenguaje de alto nivel se corresponde normalmente con un procedimiento que lee los parámetros de la llamada y los pasa al SO, con el control,
mediante un TRAP.
Llamada a P(a,b,c) (a,b,c) OK/ERROR TRAP(P) PROGRAMA DE USUARIO PROCEDIMIENTO DE RESPUESTA A LA LLAMADA P
RETURN FROM TRAP(P)
Estructura del sistema
• Se puede contemplar el sistema como una serie de niveles.
• Cada nivel lleva a cabo un determinado subconjunto de funciones.
• Cada nivel se basa en el nivel inferior para llevar a cabo funciones más primitivas.
• De este modo, se descompone un problema en un número de subproblemas más
I. SISTEMAS MONOLÍTICOS
- Estructura (o falta de ella) más común (MS-DOS, UNIX)
- SO es un conjunto de procedimientos que pueden llamarse mutuamente.
- Compilación individual/enlace en un único objeto.
- No hay modos usuario/núcleo (el hardware no lo permite)
- PROBLEMAS: No hay ocultación de datos dificil de modificar y depurar.
- MS-DOS nació con limitaciones de espacio (memoria), tiempo
de desarrollo y hardware (8088 no tenía modo usuario/núcleo ni protección de memoria). Consecuencia: INESTABILIDAD
(corrupción de procesos y dispositivos)
Dispositivos
Aplicaciones de usuario
SO residente (Shell + núcleo)
drivers MS-DOS
BIOS (ROM)
Aplicaciones de usuario
Interfaz entre el shell y el núcleo (kernel)
Interfaz entre el kernel y el hardware
Intérprete de comandos (shell) compiladores y librerias del sistema
Manejo de señales Sistema de E/S Drivers terminal
Sistema de ficheros Swapping
Drivers del disco
- Ejemplo, THE (1968)
Controlador de terminal, discos y cintas, memoria terminal, discos y cintas, memoria física
5. Programas de Usuario
4. Control de E/S
3. Comunicación Operador-proceso
2. Administrador de memoria y disco
1. Temporización de procesos y multiprogramación
0. Dispositivos
- Problema: distribución de tareas en capas, baja eficiencia - Solución: arquitecturas mixtas (OS/2,NT 4.0)
Jerarquía de diseño de un
sistema operativo
Nivel Nombre Objetos Ejemplos de operaciones
13 Shell Entorno de programación Sentencias de un lenguaje de usuario de shell
12 Procesos de usuario Procesos de usuario Salir, eliminar, suspender,
reanudar
11 Directorios Directorios Crear, destruir, conectar, desconectar, buscar, listar
10 Dispositivos Dispositvos externos tales Abrir, cerrar, leer, escribir como impresoras, pantallas
y teclados
9 Sistema de archivos Archivos Crear, destruir, abrir, cerrar, leer, escribir
Jerarquía de diseño de un
sistema operativo
Nivel Nombre Objetos Ejemplos de operaciones
7 Memoria virtual Segmentos, páginas Leer, escribir, traer (fetch) 6 Almacenamiento Bloques de datos, Leer, escribir, asignar, liberar
secundario local canales de dispositivos
5 Procesos primitivos Procesos primitivos, Suspender, reanudar, esperar, semáforos, colas de señalizar
Jerarquía de diseño de un
sistema operativo
Nivel Nombre Objetos Ejemplos de operaciones
4 Interrupciones Programas de tratamiento Invocar, enmascarar, de interrupciones desenmascarar, reintentar
3 Procedimientos Procedimientos, pila de Marcar la pila, llamar, llamadas, visualización retornar
2 Conjunto de Evaluación de la pila, Cargar, almacenar, sumar,
instrucciones intérprete de microprogramas, restar, bifurcar vectores de datos y escalares
Características de los sistemas
operativos modernos
• Arquitectura micronúcleo:
– Asigna solamente una pocas funciones
esenciales al núcleo.
• Espacios de direcciones.
• Comunicación entre procesos (IPC).
Características de los sistemas
operativos modernos
• Multihilos:
– El proceso se divide en hilos que pueden
ejecutarse concurrentemente. • Hilo:
– Unidad de trabajo que se puede expedir para
su ejecución.
– Se ejecuta secuencialmente y es interrumpible.
• Proceso:
Características de los sistemas
operativos modernos
• Multiproceso simétrico (SMP):
– Existencia de múltiples procesadores. – Estos procesadores comparten la misma
memoria principal y dispositivos de E/S.
– Todos los procesadores pueden ejecutar las
Características de los sistemas
operativos modernos
• Sistema operativo distribuido:
– Proporciona la ilusión de un único espacio
de memoria principal y un único espacio de memoria secundaria.
Características de los sistemas
operativos modernos
• Diseño orientado a objetos:
– Añade extensiones modulares a un pequeño
núcleo.
– Permite a los programadores personalizar un sistema operativo sin romper la