Introducción a Sistemas Operativos

Anuncio
Introducción a Sistemas Operativos
¿Qué es un Sistema Operativo?
Máquina desnuda – computador carente de sistema operativo
Programa ejecutable – fichero que contiene un programa en código binario
(lenguaje máquina) en un formato tal, que procesado adecuadamente posibilita la
construcción de una imagen en memoria para permitir ejecutar dicho programa.
Usuario – persona autorizada a utilizar un sistema informático
Funciones clásicas de un Sistema Operativo
A. Gestión de recursos del computador (kernel – la capa más cercana al hardware,
ejecutada en modo privilegiado y residente en memoria)
- Asignación de recursos: abstracciones y técnicas
o Procesador, memoria (páginas, regiones), ficheros (dispositivos),
volúmenes, procesos, hilos, señales, pipes, mutex, colas de mensajes,
cuentas de usuarios, grupos de usuarios, credenciales,…
o estructuras de seguimiento, políticas de gestión, planificadores,
cuotas, recuperación,…
- Protección: entre usuarios y entre trabajos
- Contabilidad: monitorización para cargar por el uso o afinar el rendimiento
B. Ejecución de servicios para los programas en ejecución (API o conjunto de
llamadas al sistema). Ofrece una máquina extendida a los procesos.
- Ejecución de programas
- Ordenes de entrada/salida
- Operaciones sobre ficheros
- Detección y tratamiento de errores
C. Intérprete de mandatos (shell – interfaz para interacción con el usuario; se
ejecuta en modo usuario y es discutible si forma parte básica del sistema
operativo)
- Interfaz textual
- Interfaz gráfica
- Ficheros de mandatos
Usuarios:  autenticación (“contraseñas”) y plantillas de protección
Administrador o superusuario
Grupos de usuarios
Arranque del sistema
1. Memoria ROM que contiene
a. Iniciador ROM – independiente del SO. Modo real, sin interrupciones
i. Comprueba el sistema (POST – Power-On self-test)
ii. Carga en memoria el boot desde el dispositivo de arranque
seleccionado
iii. Cede control al programa de arranque (boot)
b. Software de E/S (BIOS): disco, teclado, pantalla,…
2. Cargador del SO en disco (boot): almacenado en zona predefinida
a. Comprueba el sistema (coherencia del sistema de ficheros)
b. Carga el kernel residente en memoria
c. Inicializa las estructuras de información (IDT, tablas de procesos,…)
d. Crea las tablas de páginas de memoria y activa la MMU  paso a modo
protegido
e. Habilita interrupciones
3. Sistema Operativo en funcionamiento – fase inicial
a. Carga módulos adicionales, generalmente drivers de dispositivos
b. Crea procesos servidores (“demonios”) iniciales
c. Crea un proceso de inicio o login por cada terminal, y procesos auxiliares
d. El proceso login autentica al usuario mediante contraseña y ejecuta un
shell para interactuar con él
Parada del sistema
 Copia a disco de la información necesaria mantenida en memoria por razones de
eficiencia; si no se efectúa así, el sistema queda corrompido y en el próximo
arranque debe ser “reparado”
 Hibernación: copia a disco de la imagen completa de memoria principal 
rearranque rápido a la misma situación de apagado
 Suspensión (Standby): apagado de casi todo excepto la memoria 
reanudación instantánea
Activación del Sistema Operativo
El SO “despierta” a la actividad a causa de:
1. Llamadas al sistema. Instrucción TRAP
2. Interrupciones externas: de E/S, de reloj, de otro procesador
3. Excepciones h/w síncronas o asíncronas
La secuencia de activación es:
1. La interrupción hace pasar el proceso A a modo privilegiado y pasa control
al kernel
2. EL kernel salva el contexto (estado) del proceso A interrumpido
3. El kernel atiende al servicio solicitado
4. El kernel usa el planificador para seleccionar un nuevo proceso B, si es el
caso
5. El kernel restaura el contexto del proceso B y le cede control
Servicios de sistema (cada llamada-servicio está asociada a un número)
La prestación del servicio puede
- ser inmediato
- requerir bloqueo del proceso solicitante (síncrono)
- proceder dejando continuar al proceso solicitante (asíncrono)
Funciones de biblioteca
Arropan a las llamadas al sistema
- preparan los argumentos
- invocan la instrucción TRAP o equivalente
- recuperan los resultados
Tipos de sistemas operativos
1. Monotarea (monoproceso), multitarea (multiproceso)
2. Multiprogramación: batch (cola de trabajos) o Tiempo-compartido
(interactivo - asociado a terminal)
3. Personal (monousuario) o multiusuario
4. Monoprocesador (una CPU) o multiprocesador (varias CPUs)
5. Mono-thread o multi-thread
6. Cliente (estación de trabajo personal que recurre a servidores) o servidor
(usuarios: sistemas remotos)
7. Empotrado (interaccionan con un sistema físico) o de tiempo real (garantizan
la ejecución del programa en un tiempo determinado)
8. Fijos o móviles (entorno reducido y de bajo consumo)
(nombrar ejemplos reales de SSSO de cada tipo)
Componentes del Sistema Operativo
1. Gestor de procesos
a. Abstracción: imagen de memoria, estado del procesador, proceso
b. Estructura: Bloque de Control de Proceso
c. Servicios: crear, ejecutar, terminar proceso
2. Gestor de memoria
a. Abstracción: regiones, memoria virtual, imagen de memoria
b. Estructuras: tablas de páginas
c. Servicios: solicitar, liberar, compartir memoria
3. Comunicación y sincronización de procesos
a. Abstracción: cauces, semáforos, mensajes
b. Servicios: Crear mecanismo, recibir (esperar), enviar (despertar),
destruir
4. Gestor de Entrada/salida
a. Abstracción: dispositivo como fichero
b. Servicios: los de ficheros (independencia de dispositivo)
c. Tipos: Orientados a caracteres o a bloques
5. Gestor de ficheros y directorios
a. Abstracción: ficheros – atributos, puntero de posición, bloques,
volumen
b. Servicios de ficheros: abrir, leer, escribir, cerrar, posicionar, crear,
borrar
c. Abstracción: directorios, jerarquía de nombres
d. Servicios de directorios: crear, abrir, leer, borrar, cambiar de
directorio
Seguridad y protección
 Autenticación de usuario mediante contraseña u otro método (ej., huella)
 Protección de acceso y operación
a. Por recurso – ACL: cada recurso lista usuarios y operaciones
permitidas
b. Por usuario – “Capacidades”: cada usuario lista recursos y
operaciones permitidas
Interfaces
Interfaz de programación:
“Single UNIX Specification UNIX 03” – POSIX
Windows API
Interfaz de usuario
a. Alfanumérica
b. Gráfica (GUI)
c. Ficheros de mandatos (shell scripts)
Diseño de los Sistemas Operativos
* Monolíticos (OS-360, MSDOS, UNIX)
 Todos los componentes integrados en un único programa
 Un único espacio de direcciones
 Todas las funciones se ejecutan en modo privilegiado
 Desventaja: complejidad, dificultad de mantenimiento y ampliación
Estructurados:
* Sistema por capas (OS/2, THE)
 Jerarquía de capas de programación
 Cada una ofrece un interfaz claro a la capa superior
 Ventaja: modularidad
* Cliente/servidor (Minix, Mach, Amoeba, Mac OS X)
 Usa un microkernel: SO que se ejecuta en modo privilegiado
 Los servicios y funciones del SO se ejecutan en modo usuario
como servidores
 El proceso de usuario (cliente) solicita servicio (a los servidores)
mediante paso de mensajes usando el microkernel como
intermediario
 Ventajas: flexibilidad y protección
 Desventaja: merma de rendimiento
* Máquina virtual
“duplicado eficiente y aislado de una máquina real o estándar”
a. MV de sistema o hardware (Virtual Box, VMWare)
- “plataforma completa que soporta la ejecución de un SO completo”
- se llama “hipervisor” al monitor de la MV
- Tipo I: el hipervisor corre en la máquina física
SO invitado (“guest”) corre en la MV nativa
- Tipo II: el hipervisor corre en un SO anfitrión (“host”)
SO “guest” corre encima del SO “host”
b. MV de proceso (ej., Java JVM, .NET CLI)
- “plataforma que soporta un solo proceso ligado a un lenguaje”
- emulación de un sistema no nativo
* SO distribuido (middleware: DCE, DCOM, COM+, Java RMI)
Carga dinámica de módulos
 Modo de recomponer en tiempo de arranque o “en vivo” la configuración
de un SO
 Aplicado generalmente a manejadores de dispositivos, sistemas de
ficheros, algunas políticas de gestión,…
 Aplicado generalmente a SSOO personales
ABSTRACCIÓN
“Considerar una cualidad, estado, acción o fenómeno con independencia del objeto en
que existe o por que existe”.
El SO simplifica el hardware construyendo una serie de abstracciones:
Proceso: una CPU dedicada a un programa.
Memoria virtual: simula una RAM infinita.
Fichero: memoria permanente de datos con tipo.
Socket: canal de comunicación de E/S de datos con tipo.
Shell: interfaz de usuario programable…
TÉCNICAS
Ideamos técnicas para construir abstracciones
Planificadores de recursos: CPUs, discos,etc.
Gestión de memoria: paginación,...
Sistema de ficheros: designación,...
Interrupciones, sondeo, buffering
Hebras (threads).
Dominios, listas de acceso, capacidades, criptosistemas de clave pública,...
Descargar