Gestión Avanzada de Recursos en Sistemas Operativos: Procesos, Planificación y Memoria Virtual

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,88 KB

Gestión de los Recursos

Procesos y Flujos

  • Definición de Procesos: Programa en ejecución.
  • Otros nombres:
    • Flujos de control
    • Tareas (Tasks)
    • Threads (se comentará el ejemplo en lenguaje Java)
    • Hilos (de ejecución)
  • A todo Proceso el Sistema Operativo (SO) le asigna una estructura de datos denominada Bloque de Control de Proceso (BCP).

¿Qué contiene el BCP?

  1. Estado actual del proceso
  2. Identificador del proceso
  3. Prioridad del proceso
  4. Ubicación en memoria
  5. Recursos utilizados

Hebras y Estados de los Procesos

  • Definición de Hebra: Punto de ejecución de un proceso (un proceso puede tener uno o más hebras).
  • Ejemplo: Word ejecutándose (1 proceso).
    • Abro 1 documento (1ª hebra)
    • Abro 2 documento (2ª hebra)

Estados de un Proceso

  1. En ejecución en la CPU
  2. Preparado (esperando, activo)
  3. Bloqueado (retenido), por ejemplo, esperando que quede libre un recurso (lectora de DVD, etc.)

Comentarios Adicionales sobre Procesos

  1. Todo proceso tiene un Process ID (PID, Process Identity). (Ya se comentó en el apartado 3.1).
  2. Un proceso ejecutándose (PPID, Parent Process Identity, o proceso padre) puede necesitar crear a otros procesos (hijos).

Transición de los Procesos

  • Pregunta: ¿Un proceso puede cambiar de estado? Respuesta: Sí.
  • Los cambios (transiciones) se visualizan en la figura 3.2, página 56. (Estudiarla, junto al texto explicativo de su parte inferior).

Comentarios Adicionales sobre Transiciones

  1. Si un proceso (o hilo) cambia de estado, se produce un cambio de contexto.
  2. Si el cambio es entre hilos del mismo proceso, se denomina cambio de contexto parcial. Si es entre hilos de diferentes procesos, es un cambio de contexto completo (C.C. completo).
  3. Los cambios de estado están directamente relacionados con las prioridades entre procesos.

El Planificador (Scheduler)

  • ¿Quién maneja la ejecución de los procesos?
  • Respuesta: El planificador (Scheduler o Scheduling).
  • El planificador se encarga de: planificar la ejecución de los procesos, implementar el mecanismo de asignación de prioridades, aplicar el algoritmo de planificación y gestionar el quantum.

Algoritmos de Planificación

a) Algoritmo Round-Robin (Rueda)

  • A cada proceso se le asigna el mismo intervalo de tiempo de ejecución (quantum).
  • La selección entre procesos utiliza una cola FIFO (First In, First Out).
  • Ejemplo de flujo: P1 → P2 → P3 → CPU (con un quantum = 5 ms).

b) Algoritmo FCFS (First Come, First Served)

  • Se usa igualmente una cola FIFO.
  • Se inicia un proceso y se espera a que acabe para iniciar el siguiente.

c) Algoritmo STR (Short Time Remainder)

  • Se prioriza a procesos cortos, con la idea de que acaben antes (similar a SJF, Shortest Job First).

d) Algoritmo SRTF (Shortest Remaining Time First)

  • Se prioriza a aquel proceso al que le falte menos tiempo para acabar.

Memoria RAM y Memoria Virtual

  • Memoria Virtual: Concepto introducido en 1961 (Fotheringham).
  • Consiste en utilizar parte de la memoria secundaria como si fuera memoria RAM (virtualización).
  • Problema: La menor velocidad de la memoria secundaria provoca una ralentización del sistema.
  • Pregunta: ¿Puedo asignar toda (o casi toda) la memoria secundaria como RAM?

Intercambio (Swapping)

  • Si un proceso necesita entrar en memoria, el Scheduler solicita memoria al Administrador de Memoria.

Técnicas de Gestión de Memoria

  • Particiones Fijas:
  • Particiones Variables: Técnicas de paginación.

Fragmentación

  • Interna: Ejemplo: memoria expandida.
  • Externa: Segmentación.

Paginación, Segmentación y Swapping

1 Paginación

  • Dividimos:
    • Memoria RAM en frames (marcos de página).
    • Proceso en páginas.
  • Colocamos las diferentes páginas en frames.
  • Necesitaremos:
    1. Tabla de páginas
    2. Gestor de páginas

2 Segmentación

  • Definimos bloques de tamaño variable, pero con un tamaño máximo permitido.
  • Técnica usada en la arquitectura (diseño) de procesadores, que divide el programa en ejecución en 4 bloques:
    • CS (Code Segment)
    • DS (Data Segment)
    • ES (Extra Segment)
    • SS (Stack Segment)
  • Cada segmento se corresponde con un registro interno de la CPU.

Clasificación de los Programas

(Según cómo, dónde y cuándo se ubiquen en memoria)

  1. Reubicables: Pueden cambiar de posición en la RAM si fuera necesario.
  2. Reentrantes: Si no se les necesita, se envían al disco duro (memoria virtual).
  3. Residentes: Permanecen alerta en memoria (ejemplo: antivirus).
  4. Reutilizables: Utilizables por más de un usuario a la vez.

Entradas relacionadas: