20 Sep
Definición de Sistema Operativo
El Sistema Operativo (SO) es un programa (o conjunto de programas) de control.
- Objetivos principales: facilitar el uso del ordenador; utilizar el ordenador de forma eficiente.
- Funciones principales: gestiona y asigna recursos de hardware (HW); gestiona y mantiene archivos; protege los datos y los programas; identifica y autentica a los usuarios; contabiliza la utilización de los recursos.
Arranque del Ordenador (Booting)
Al encender un ordenador, se suceden los siguientes pasos:
- Programa de autodiagnóstico de encendido (ROM): identifica memoria, discos, teclado, ratón, etc.
- Cargador inicial (ROM) → Proceso residente.
- Invitación a que el usuario inicie su trabajo: intérprete de órdenes/escritorio.
Gestión del Procesador
- Proceso: programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S.
- El sistema de gestión del procesador es responsable de:
- Crear y destruir los procesos.
- Parar y reanudar los procesos.
- Ofrecer mecanismos para que se comuniquen y sincronicen los procesos.
Monoprogramación del Procesador
- Funciones del SO de monoprogramación: gestión de las operaciones de E/S (llamadas al sistema; interrupciones); planificador de trabajos.
- Inconvenientes:
- Se desaprovecha la memoria principal (MM).
- Se desaprovecha el procesador (tiempos de E/S mucho mayores que los tiempos de la CPU).
- Se desaprovechan los periféricos.
Multiprogramación del Procesador: Componentes
- Componentes típicos de un proceso:
- Código máquina.
- Datos del programa.
- Pila.
- Bloque de control del proceso (PCB): identificador; estado; privilegios y prioridades del proceso; identificador del usuario; contenidos de los registros del procesador; etc.
Multiprogramación del Procesador: Procesamiento Concurrente
- Procesamiento concurrente:
- Planificador de trabajos: decide qué programas pendientes de ejecución pasan al estado preparado.
- Planificador a corto plazo: al terminar el servicio de una interrupción, decide qué proceso de entre los preparados pasa a estar activo. Se utilizan algoritmos de planificación.
- Distribuidor: activa el proceso elegido por el planificador a corto plazo, realizando un cambio de contexto para pasarlo al estado activo.
Multiprogramación del Procesador: Cambio de Contexto
- Cambio de contexto:
- Se actualiza el PCB del proceso interrumpido (se pasa a preparado, bloqueado o concluido; se salvan los valores de los registros del procesador, biestables indicadores, punteros a archivos de disco y de pilas, contador de programa, etc.).
- Se restaura el PCB del proceso que pasa a activo (se pasa a activo; se recuperan los valores de los registros del procesador, biestables indicadores, etc.).
Multiprogramación del Procesador: Estrategias de Asignación
Estrategias de asignación del procesador a los procesos:
- No apropiativa (non-preemptive):
- Un proceso activo continúa ejecutándose hasta que:
- Termina.
- Se bloquea.
- Cede el procesador a otro proceso.
- Ejemplos: MS-DOS (hasta Windows 3.x) y MacOS.
- Un proceso puede monopolizar el procesador.
- Un proceso activo continúa ejecutándose hasta que:
- Apropiativa (preemptive):
- El SO detiene el proceso activo de acuerdo con un criterio preestablecido.
- Ejemplos: Windows 95/98, NT, OS/2, Unix y Linux.
Multiprogramación del Procesador: Algoritmos de Planificación
- Algoritmos de planificación:
- Turno rotatorio (Round Robin): A cada proceso se le asocia un intervalo de tiempo fijo. Presenta desafíos al elegir dicho intervalo.
- Planificación por prioridad: Puede ser estática, dinámica o una mezcla, a menudo con realimentación.
- FCFS (First Come First Served).
- SPN (Shortest Process Next).
- SRT (Shortest Remaining Time).
Gestión del Procesador: Swapping y Memoria Principal
- El número de trabajos que se pueden ejecutar concurrentemente depende (entre otros factores) de la capacidad de la memoria principal (MM).
- Solución: Intercambio de memoria principal / disco (swapping):
- Se pasa a disco uno de los procesos que están en MM (bloqueados o preparados), dejando espacio en MM para un nuevo proceso.
- Cuando le llega el turno al proceso que se pasó a disco, se realiza otro swapping con este proceso.
- El swapping es gestionado por el intercambiador (SO).
- El proceso que se pasa a disco se dice que está en estado intercambiado (preparado o bloqueado).
- Los procesos que permanecen en MM se denominan procesos residentes.
Gestión de la Memoria
- La memoria principal (MM) es una gran tabla de palabras o bytes que se referencian mediante una dirección única.
- La MM es de acceso rápido, volátil y es compartida por la Unidad Central de Procesamiento (UCP) y los dispositivos de E/S.
- El sistema de gestión de memoria es responsable de:
- Conocer qué partes de la MM están siendo utilizadas y por quién.
- Decidir qué procesos se cargan en MM cuando hay espacio libre.
- Asignar y liberar espacio de MM cuando sea necesario.
Gestión de la Memoria: Direcciones Lógicas y Físicas
- Un programa máquina es una secuencia de instrucciones en código máquina.
- Las instrucciones ocupan una o más palabras de la memoria.
- Si un programa máquina ocupa ‘n’ palabras, estas se numeran de la 0 a la n-1. Estas son las direcciones lógicas (DL).
- Los programas se cargan en la MM a partir de una dirección base (DB).
- Las direcciones reales donde se carga el programa son las direcciones físicas (DF).
- La relación es: DF = DL + DB.
Gestión de la Memoria: Paginación y Memoria Virtual
- La MM se divide en páginas (marcos) de longitud fija (ej. 512B, 4KiB, 8KiB, 4MiB).
- Los procesos se dividen en páginas lógicas de longitud fija.
- Para un sistema, el tamaño de marco es igual al de página.
- Las páginas de un proceso se almacenan en marcos libres, estén o no contiguos.
- Ventaja: No hay fragmentación externa.
- Inconveniente: Fragmentación interna.
- Concepto clave: Memoria virtual.
Deja un comentario