Tema2 1
Tema2 1
Tema2 1
sistemas operativos
Fundamentos del Software
1º Grado en Informática
Rosana Montes - rosana@ugr.es
Rosana Montes
Objetivos
• Conocer la evolución de los Sistemas Operativos (SO) y sus
principales logros.
• Funciones de un SO.
• Conocer los elementos necesarios para implementar la
multiprogramación en un SO.
• Entender el concepto de proceso y su
• Entender el concepto de hebra (hilo).
• Conocer el uso que realiza el SO de apoyo al hardware
CPU y gestión de memoria.
Rosana Montes
2
2.1 Introducción: Funciones de los SO
• Una plataforma hardware es un conjunto de recursos de procesamiento (procesador, memoria,
caché, registros, etc) y de dispositivos de E/S.
• El SO es una representación uniforme y abstracta de los recursos de un ordenador que son
requeridos por las aplicaciones.
• El SO es una interfaz rica entre las aplicaciones y el hardware, que permite compartir recursos y
la protección de éstos. Un SO es un programa que actúa de intermediario entre el usuario y el
hardware. No siempre ha existido.
• Características deseables: comodidad, eficiencia y capacidad de evolución.
• Función: SO como máquina virtual y gestor de recursos.
• Abstracciones:
Rosana Montes
4
APIs para programación
El SO como interfaz Usuario/Computadora
Rosana Montes
5
Seguridad
El SO como interfaz Usuario/Computadora
Por lo tanto:
•El SO dirige el uso del procesador y el resto de los recursos.
•Controla la temporalización de la ejecución de los programas.
•Parte del código del SO se encuentra cargado en la Memoria
Principal (kernel y, en ciertos momentos, otros servicios del SO que
se estén usando). El resto de la memoria está ocupada por programas
y datos de usuario.
Rosana Montes
7
Administración de Recursos
Por lo tanto: (cont.)
✦ La asignación de la memoria principal la realizan conjuntamente el
SO y el hardware de gestión de memoria del procesador (MMU).
✦ El SO decide cuándo un programa en ejecución puede usar un
dispositivo de E/S y también el acceso y uso de los ficheros.
✦ El procesador es también un recurso (uno de los más importantes).
Rosana Montes
8
2.1 Introducción: Evolución de los SO
• 40-50’s - Procesamiento en serie de programas en lenguaje máquina.
STDin = tarjeta perforada. STDout=impresora.
• 50-60’s - Sistemas por lotes (batch). Primer SO el monitor residente.
Poca interacción. Infrautilización de la CPU.
• 60-70’s - Sistemas multiprogramados interactivos.
• Aparece una facilidad hardware: la
• Definir:
• Los SO evolucionan a Tiempo Compartido.
• Los SO evolucionan a
• 70-xx’s Aparecen los sistemas multiusuario.
Rosana Montes
9
2.1 Introducción: Evolución de los SO
Clasificación:
• Según el modo de trabajo:
uniprogramado vs multiprogramado
uniprocesador vs multiprocesador
• Según el usuario:
monousuario vs multiusuario
Rosana Montes
12
Multiprogramación
Job 1 Job 2 Job 3
Tipo de trabajo Computación pesada Gran cantidad de E/S Gran cantidad de E/S
¿Necesita disco? NO NO SI
¿Necesita terminal? NO SI NO
¿Necesita impresora? NO NO SI
Rosana Montes
13
Multiprogramación
Rosana Montes
14
Multiprogramación
Comparamos resultados con ambas técnicas
Monoprogramación Multiprogramación
Uso del procesador 20% 40%
Uso de memoria 33% 67%
Uso de disco 33% 67%
Uso de impresora 33% 67%
Tiempo transcurrido 30 minutos 15 minutos
Productividad 6 trabajos/hora 12 trabajos/hora
Tiempo de respuesta medio 18 minutos 10 minutos
• Un programa en ejecución.
✦
Prioridad. Nivel propio frente a otros procesos. Datos de contexto
✦
Contexto de ejecución: Registros actuales del procesador. Información de auditoría
Rosana Montes
Traza
Traza de ejecución [Stal12] (pp. 130-134)
▪ Creación
▪ Terminación
▪ Multiprogramación
✦ Bloqueado o Esperando
✦ Nuevo
Preparado Ejecutándose
Planificación
El SO maneja varias
listas de … Rosana Montes
23
Transiciones
• Nuevo → Preparado. El PCB está creado y el programa está disponible en
memoria.
• Ejecutándose → Finalizado. El proceso finaliza normalmente o es abortado
por el SO a causa de un error no recuperable.
• Preparado→ Ejecutándose. El SO (planificador CPU) selecciona un
proceso para que se ejecute en el procesador.
• Ejecutándose → Bloqueado. El proceso solicita algo al SO por lo que debe
esperar.
• Ejecutándose → Preparado. Un proceso ha alcanzado el máximo tiempo
de ejecución ininterrumpida.
• Bloqueado → Preparado. Se produce el evento por el cual el SO bloqueó
al proceso.
• Preparado / Bloqueado → Finalizado. Terminación de un proceso por
parte de otro. 24
Rosana Montes
2.3 Descripción y control de procesos
Rosana Montes
25
Creación
PID
Creación e inicialización del PCB Estado
[Stal05] (pp. 135-143) [Stal12] (pp. 154-159) Prioridad
Contador de programa
Información de auditoría
• Asignar memoria para el programa asociado
• Inicializar PCB:
• PC: Dirección inicial de comienzo del programa
• SP: Dirección de la pila de sistema
• Memoria donde reside el programa
• El resto de campos se inicializan a valores por omisión Rosana Montes
26
2.3 Descripción y control de procesos
Rosana Montes
Cambio de contexto
1) Salvar los registros del procesador en el PCB del proceso que
actualmente está en estado Ejecutándose.
▪ Una interrupción.
▪ Una excepción.
Rosana Montes
Modos de ejecución
El control de procesos se efectua mediante:
• Modo usuario. El programa (de usuario) que se ejecuta en este modo
sólo se tiene acceso a:
▪ Un subconjunto de los registros del procesador.
▪ Un subconjunto del repertorio de instrucciones máquina.
▪ Un área de la memoria.
Rosana Montes
30
Modos de ejecución
¿Cómo utiliza el SO el modo de ejecución?
• El modo de ejecución (bit en el PSW) cambia a modo kernel,
automáticamente por hardware, cuando se produce:
▪ Una interrupción.
▪ Una excepción.
▪ Una llamada al sistema.
Rosana Montes
32
Llamadas al Sistema
• Es la forma en la que se comunican los programas de usuario con el
SO en tiempo de ejecución.
• Son solicitudes al SO de petición de servicio. Modelo cliente/servidor
• Ejemplos de llamadas al sistema:
✦ Solicitudes de E/S: manipulación de archivos y disco.
✦ Gestión de procesos: control de procesos y comunicaciones.
✦ Gestión de memoria: mantenimiento de la información
• Se implementan a través de una trampa (instrucción trap 12 en
ensamblador) o interrupción software.
Rosana Montes
33
Llamadas al Sistema
Biblioteca Programa de usuario
open() main()
2 1 ...
... open(fd, …)
int 0x80 ...
Modo ...
usuario 7
Tramp
Modo 6 Sistema Operativo
Kernel 3
system_call:
4 sys_open() {
... ...
sys_open() ...
... 5
ret_from_sys_call(): }
...
iret
Rutina de servicio
de la llamada
Manejador de
llamadas al sistema
Rosana Montes
34
Hebras
• Un proceso permite al SO:
• Controlar la asignación de los recursos necesarios para la
ejecución de programas (incluida la memoria).
• Intercalar la ejecución del programa asociado al proceso con otros
programas.
• Una hebra es una ejecución independiente de un proceso. Puede
haber varias hebras en ejecución.
• La hebra permite separar los recursos del proceso con su ejecución:
• La tarea se encarga de soportar todos los recursos necesarios.
• Cada una de las hebras permite la ejecución del programa de
forma independiente del resto de hebras.
Rosana Montes
35
Hebras
Rosana Montes
36
Modelo 5 estados
• Las hebras debido a su característica de ejecución de programas
presentan cinco estados análogos al modelo de estados para procesos:
• Nuevo Planificación
Fin de E/S Espera por
• Finalizado o suceso
Bloqueado
E/S o suceso
Rosana Montes
37
Ejemplo con hebras
Rosana Montes
Hebras
Ventajas de las hebras
Rosana Montes
39
2.4 Gestión básica de memoria
Rosana Montes
40
2.4 Gestión básica de memoria
Requisitos de la Gestión de Memoria
[Stall05] (pp. 308-316) [Stall12] (pp. 327-335)
• Tipos de direcciones.
• Físicas (directas a memoria) o absolutas.
• Relativas al origen del programa.
• Lógicas, o referencia a una localización no asignada.
• Carga absoluta.
• Asignar direcciones físicas al programa en tiempo de compilación.
• El programa no es reubicable.
• Reubicación.
• Capacidad de cargar y ejecutar un programa en un lugar arbitrario de
la memoria.
Rosana Montes
42
2.4 Gestión básica de memoria
Carga absoluta Reubicación
Rosana Montes
Reubicación estática
• El compilador genera direcciones lógicas
(relativas) de 0 a M.
• La decisión de dónde ubicar el programa en
memoria principal se realiza en tiempo de carga.
1000
• El cargador añade la dirección base de carga a
todas las referencias relativas a memoria del
programa. MOVE A, 1100
0
M
Memoria Principal
Rosana Montes
44
Reubicación dinámica
• El compilador genera direcciones lógicas (relativas) de 0 a M.
• La traducción de direcciones lógicas a físicas se realiza en
tiempo de ejecución luego el programa está cargado con
referencias relativas.
b
• Requiere apoyo hardware. CPU
MOVE A, 100
Dirección
Lógica
R.Base
b+M
b + Dirección
Física
Hardware
Memoria Principal
Rosana Montes
45
2.4 Gestión básica de memoria
Definiciones asociadas al manejo de memoria
Rosana Montes
46
2.4 Gestión básica de memoria
Técnicas de Asignación Contigua de Memoria
• Particiones fijas.
• La MP se divide en cierto nº de partes de tamaño constante.
• Cada nuevo proceso es ubicado en una partición.
• La liberación del proceso libera la partición.
• El espacio no ocupado es inutilizable.
• Particiones variables.
• El tamaño de la partición en MP es exactamente el que el proceso
solicita.
Rosana Montes
2.4 Gestión básica de memoria
• Particiones fijas.
• Genera fragmentación interna.
• Particiones variables.
• Genera fragmentación externa. La compactación es costosa.
• Es necesario un mecanismo de relocalización
Rosana Montes
2.4 Gestión básica de memoria
Problema de la fragmentación de memoria
896 k
576 k
Proceso 3 268 k
352 k
84 k
64 k 64 k 64 k 64 k
Rosana Montes
2.4 Gestión básica de memoria
Técnicas de Asignación No Contigua de Memoria
p d
m d
Rosana Montes
52
Paginación
✦ Cuando la CPU genere una dirección lógica será necesario
traducirla a la dirección física correspondiente.
✦ La tabla de páginas mantiene información necesaria para
realizar dicha traducción.
✦ Existe una tabla de páginas por proceso.
✦ Tabla de marcos de página, usada por el S.O. y contiene
información sobre cada marco de página
Rosana Montes
53
Tabla de páginas
✦ Una entrada por cada página del proceso:
✦ Número de marco (dirección base del marco) en el que
está almacenada la página si está en MP.
✦ Modo de acceso autorizado a la página (bits de
protección)
✦ Adicionalmente otros bits de presencia, modificación, etc.
Rosana Montes
54
Esquema de traducción
Dirección virtual
N. pagina DESPLAZAMIENTO
N. de marco protección
RBTP ¿Acceso autorizado?
no
si excepción
m rw
violación de privilegios
Rosana Montes
55
2.4 Gestión básica de memoria
Implementación de la paginación:
✦ La tabla de páginas y la lista de marcos libres se mantienen en MP.
✦ El registro base de la tabla de páginas (RBTP) apunta a la tabla de páginas.
Suele almacenarse en el PCB del proceso.
✦ En este este esquema cada acceso a una instrucción o dato requiere dos
accesos a memoria, uno a la tabla de páginas y otro a memoria.
m
Fallo
TLB
Nº página
Nº marco Tabla de páginas
Rosana Montes
57
Segmentación
✦ Esquema de organización de memoria que soporta mejor la visión de
memoria del usuario
✦ Un programa es una colección de unidades lógicas segmentos. Ej.
procedimientos, funciones, pila, tabla de símbolos, matrices, etc.
S1
S2
S2 S4
S3
S3
S4 S1
<número_de_segmento, desplazamiento>
✦ La Tabla de Segmentos aplica direcciones bidimensionales definidas
por el usuario en direcciones físicas de una dimensión.
✦ Cada entrada de la tabla tiene los siguientes elementos:
✦ registro base:
memoria.
✦ registro límite: tamaño o longitud del segmento
✦ información de protección, presencia, modificación…
Rosana Montes
59
2.4 Gestión básica de memoria
¿Acceso autorizado?
no
S’ t rw
si Excepción
violación de privilegios
TABLA DE SEGMENTOS
S’ + d
Dirección real
Rosana Montes
61
Autoevaluación
Entre teoría y prácticas yo puedo: