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?
- Estado actual del proceso
- Identificador del proceso
- Prioridad del proceso
- Ubicación en memoria
- 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
- En ejecución en la CPU
- Preparado (esperando, activo)
- Bloqueado (retenido), por ejemplo, esperando que quede libre un recurso (lectora de DVD, etc.)
Comentarios Adicionales sobre Procesos
- Todo proceso tiene un Process ID (PID, Process Identity). (Ya se comentó en el apartado 3.1).
- 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
- Si un proceso (o hilo) cambia de estado, se produce un cambio de contexto.
- 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).
- 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:
- Tabla de páginas
- 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)
- Reubicables: Pueden cambiar de posición en la RAM si fuera necesario.
- Reentrantes: Si no se les necesita, se envían al disco duro (memoria virtual).
- Residentes: Permanecen alerta en memoria (ejemplo: antivirus).
- Reutilizables: Utilizables por más de un usuario a la vez.