Tema
3:Gestión de los Recursos de un S.O
1Definición
de Proceso y aspectos generales
- Un proceso es un programa que se encuentra en ejecución.
-
Cada proceso tiene asociado una estructura de datos.
-
Esta estructura de datos, que es única para cada proceso, identifica el proceso respecto a los demás y sirve para controlar su correcta ejecución. Esta estructura se conoce como bloque de control de proceso (BCP)El BCP contiene la siguiente información:
+Estado
actual del proceso.
+Identificador
del proceso.
+Prioridad
del proceso.
+Ubicación
en memoria.
+Recursos
utilizados.
1.1Estados de Proceso
-Un
proceso puede encontrarse en tres
estados:
+En
ejecución:
Proceso que está siendo ejecutado por el
procesador. El estado del procesador
residirá en los registros del procesador.
+Bloqueado:
Está esperando a que ocurra un evento y no puede seguir
ejecutándose
hasta que termine el evento. Una situación típica de proceso
bloqueado se produce cuando el proceso solicita una operación E/S
(Entrada / Salida). En este estado el proceso reside en BCP.
+Listo:
Está listo para ejecutar cuando puede entrar en fase
de
procesamiento. Dado que puede haber varios procesos en este
estado,una de las tareas del sistema operativo será seleccionar
aquel que debe pasar a ejecución. El módulo
del S.O que toma esta decisión se denomina planificador.
En este estado el proceso reside en BCP.
-Cada
proceso
tiene
un número
asignado
por
el sistema operativo que sirve para identificar el proceso, lanzarlo
a ejecución, detenerlo, cancelarlo, reanudarlo,etc.
-Este
identificador
de
proceso
se
nombra con la abreviatura PID.
-Normalmente,
los procesos
son
lanzados por otros procesos.
Es decir la mayoría de los casos cada proceso que se lanza a
ejecución depende, en la mayoría de los casos de otro proceso
llamado proceso
padre.
Y al nuevo proceso lanzado se le denomina proceso
hijo.
1.2Transición
de procesos
-Una
vez que ha sido lanzado el proceso, este
proceso va atravesando por estados
hasta que finaliza.
-Cuando
un proceso
es lanzado,
se coloca en la cola
de
procesos
en un estado denominado como
preparado
o listo.
-Cuando
la CPU
le asigna su tiempo,
el proceso pasa a ejecución.
-Estos
dos estados se alternarán en el caso de ejecutarse más de un
proceso, los cambios de una estado a otro se denominan transiciones.
+Transición
A →Ocurre
cuando el programa que está en
ejecución necesita algún recurso para
poder continuar.
+Transición
B→Ocurre cuando un programa o
proceso ha utilizado el
tiempo asignado
por la CPU para su ejecución y tiene que dejar paso al siguiente
proceso.
+Transición
C →Ocurre cuando el proceso que está preparado
pasa al proceso de
ejecución. Cuando al proceso le llega
una nueva disposición de CPU para poder ejecutarse.
+Transición
D→Ocurre cuando el proceso recibe una
orden o señal que estaba
esperando para pasar al estado de preparado, y posteriormente, tras
la transición, a estado de
ejecución.
2Algoritmos
de planificación
Una
vez cargado el proceso, el sistema operativo asigna a través del
planificador la prioridad
del nuevo proceso
respecto a los que hay en ejecución. Cuando se están ejecutando
varias tareas a la vez (procesos), es necesario dividir el tiempo de
trabajo de la CPU.
Debido
a la necesidad de poder organizar los procesos de una manera
eficiente para el procesador, surgen los algoritmos
de planificación
que se encargan de asegurar que un proceso no se apodere del
procesador.
-FCFS(“First-Come,
First-Served”):En este, algoritmo
de planificación el procesador
ejecuta cada proceso hasta que termina, por consiguiente, los
procesos están en la cola de procesos preparados permanecerán en el
orden en que llegan, cuando les toque su turno de estar en ejecución.
Este método también se llama FIFO(first
input, first output, Primero en llegar primero
en salir).Este algoritmo aunque está
bien, pero los procesos largos hace esperar mucho a los cortos.
-SJF:(“Shortest
Job First”):En este algoritmo,
se da bastante prioridad a los procesos más
cortos al momento de estar en ejecución
y los coloca en la cola.
Aunque
este algoritmo seleccione a los procesos más
cortos, el problema radica en conocer
dichos valores, pero se puede predecir usando la información de los
ciclos anteriores ejecutados.
-SRTF:(“Short
Remaining Time First”):Es similar al SJF,
con la diferencia de que si un nuevo proceso pasa a listo se activa
el dispatcher para comprobar si es más
corto que lo que queda por ejecutar del proceso en ejecución. Si es
así, el proceso en ejecución pasa a listo y su tiempo de estimación
disminuye con el tiempo que ha estado ejecutándose.
El
intervalo de CPU es difícil de predecir, existe posibilidad
de inanición;
los trabajos largos no se ejecutarán mientras hayan trabajos cortos.
-Round
Robind:Es un método que consiste en repartir los ciclos
de ejecución
entre todos los procesos en un grupo de manera equitativa
y en un orden racional,tratando
a todos los proceso con la misma
prioridad; normalmente comenzando por el
primer elemento de la lista hasta llegar al último y empezando de
nuevo desde el primer elemento. Estructurándose como una cola
circular.
El
planificador la recorre asignando un
quantum de tiempo. Si el proceso se
bloquea o termina antes de agotar su quantum
se pasa al siguiente proceso.
3Páginación,
Segmentación y Swapping
-Paginación:Es
un proceso por el que se dividen los
programas en pequeñas
partes o páginas. Del mismo modo, la
memoria es dividida en trozos del mismo tamaño que las páginas
llamadas marcos de
páginas.
-Segmentación:Es
una técnica de gestión
de
memoria
que pretende acercarse más al punto de vista del usuario. Los
programas se desarrollan, generalmente, en torno a un núcleo
central
desde el que se bifurca a otras partes(rutinas) o se accede a zonas
de datos(tablas,
pilas,
etc..)
-Swapping:Es
el espacio
de
intercambio(también
conocido como Archivo de paginación o Memoria Virtual entendiendo
por memoria la RAM), es una zona de disco (un
fichero
o
partición)
que se usa para guardar las imágenes
de los procesos que han de mantenerse en memoria
física.
Comentarios
Publicar un comentario