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.
  • 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