Вы находитесь на странице: 1из 14

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

UNIDAD II. COMPONENTES DE LOS SISTEMAS OPERATIVOS


1.-ADMINISTRACIN DE PROCESOS
ALGUNOS CONCEPTOS.Hasta ahora hemos utilizado siempre el trmino programa. A partir de ahora
distinguiremos entre programa y proceso. Un PROGRAMA es una secuencia de
instrucciones escrita en un lenguaje dado. Un PROCESO es una instancia de
ejecucin de un programa. Un programa es un concepto esttico, mientras que
un proceso es un concepto dinmico. Es posible que un programa sea
ejecutado por varios usuarios en un sistema multiusuario, por cada una de
estas ejecuciones existir un proceso, con su contador de programa, registros,
etc. El sistema operativo necesita el concepto de proceso para poder gestionar
el procesador mediante la tcnica de multiprogramacin o de tiempo
compartido, de hecho, el proceso es la unidad planificable, o de asignacin de
la CPU.
Una SEAL es una interrupcin software que permite la comunicacin entre
procesos, de hecho es muy frecuente que el ncleo enve seales a los
procesos durante su ejecucin. Un proceso puede enviarle una seal a otro y
ste, al recibirla, puede comportarse de tres formas diferentes:

Ignorar la seal.
Invocar a una rutina de tratamiento por defecto. Esta rutina la
aporta el ncleo y, normalmente, provoca la finalizacin del proceso.
Invocar una rutina especfica realizada por el programador. No todas
las seales permiten este tipo de atencin.

Tipos de seales
Todas las seales tienen una rutina de servicio, o una accin, por defecto.
Dicha accin por defecto puede ser de varios tipos;

A: terminacin del proceso,


B: ignorar la seal,
C: volcar un fichero
D: parar el proceso,
E: la rutina de servicio no puede modificarse, y
F: la seal no puede ser ignorada.

Cada una de las seales se identifica mediante un nmero entero mayor que
cero. En la siguiente tabla se describen las seales ms importantes.
Seal

Identifica Tip
dor
o

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

Descripcin

SISTEMAS OPERATIVOS

UNIDAD II.

SIGKILL

SIGSTOP 19

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

AEF Aborta la ejecucin del proceso.


DEF Para el proceso.

SIGCONT 18

Contina si el proceso est parado.

SIGCHLD 17

Un proceso hijo ha terminado o ha


parado.

SIGUSR1 10

Seal de usuario.

SIGUSR2 12

Seal de usuario.

EL BLOQUE DE CONTROL DEL PROCESO (PCB)


Un proceso se representa por un conjunto de datos denominado PCB. Estos
datos permiten al Sistema Operativo localizar informacin sobre el proceso y
mantenerlo registrado por si hay que suspender la ejecucin temporalmente.
La manifestacin de un proceso en un Sistema Operativo es un Bloque de
Control de Proceso (PCB) con informacin que incluye:

Estado actual del proceso.


Identificacin nica del proceso.
Prioridad del proceso.
Apuntadores para localizar la memoria del proceso.
Apuntadores para asignar recursos.
rea para preservar registros.

TIPOS DE PROCESOS
1.-Segn el uso y la forma en que se haya construido el cdigo ejecutable:
Reutilizables: son aquellos en los que pueden cambiar los datos, pero
necesitan comenzar desde el principio.
Reentrantes: slo contienen cdigo puro. Los datos se encuentran en
registros internos y no pueden ser modificados (programas compartidos por
varios usuarios).
2.-Segn la capacidad de acceso al procesador y a los recursos:
Apropiativos: no permiten compartir recursos, hasta que hayan acabado.
No apropiativos: permiten a otros procesos el uso de un recurso que estn
utilizando.
3.-Segn la forma de ejecucin:
Residentes: permanecen en memoria mientras se ejecutan.
Intercambiables: pueden ser llevados al disco mientras estn bloqueados
ESTADOS DE LOS PROCESOS:

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

A continuacin, se enumeran los distintos estados en los que se puede


encontrar un proceso en este tipo de sistemas:

Preparado (R).- Proceso que est listo para ejecutarse. Simplemente


est esperando a que el sistema operativo le asigne un tiempo de CPU.
Ejecutando (O).- Slo uno de los procesos preparados se est
ejecutando en cada momento (monoprocesador).
Suspendido (S).- Un proceso se encuentra suspendido si no entra en el
reparto de CPU, ya que se encuentra esperando algn tipo de evento
(por ejemplo, la recepcin de una seal software o hardware). En cuanto
dicho evento se produce, el proceso pasa a formar parte del conjunto de
procesos preparados.
Parado (T).- Un proceso parado tampoco entra en el reparto de CPU,
pero no porque se encuentre suspendido esperando algn evento. En
este caso, slo pasarn a estar preparados cuando reciban una seal
determinada que les permita continuar.
Zombie (Z).- Todo proceso al finalizar avisa a su proceso padre, para
que ste elimine su entrada de la tabla de procesos. En el caso de que el
padre, por algn motivo, no reciba esta comunicacin no lo elimina de la
tabla de procesos. En este caso, el proceso hijo queda en estado zombie,
no est consumiendo CPU, pero s continua consumiendo recursos del
sistema.

PARADO

COLA DE
PROCESOS
PARADOS

EJECUTANDO

ZOMBIE

SUSPENDIDO

Un ejemplo que permite aclarar la diferencia entre procesos suspendidos y


procesos preparados es el siguiente: se tiene un proceso que debe esperar a
que el usuario introduzca un valor por teclado. En principio, pueden proponerse
dos soluciones diferentes:

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

Espera activa. El proceso est codificado utilizando un bucle, en el cual


slo se comprueba el valor de una variable para saber si el usuario ha
introducido el valor o no. En este caso, el proceso es un proceso
preparado que est consumiendo CPU para realizar la comprobacin de
la variable continuamente.
Interrupcin.
El proceso est codificado de forma que el proceso se suspende. De esta
forma, ya no consume CPU porque no tiene que comprobar en cada
ejecucin del bucle si el usuario ha introducido un valor. Slo espera a
que sea el propio usuario el que le ``avise'' y lo despierte para, as,
pasar a estar preparado.

TRANSICIN ENTRE ESTADOS


Los procesos a lo largo de su existencia pueden cambiar varias veces de
estado (transicin entre estados).
Comienzo de la ejecucin, (entrada a preparados) al ser dada la orden de
arrancar el proceso (depende del tipo de gestin de la cola de trabajos).
Paso a estado de ejecucin, el procesador est inactivo y entra un proceso
desde preparado.
Paso a estado bloqueado, el proceso est en ejecucin y solicita un recurso
externo (se inserta su PCB en la cola). El procesador ejecuta el siguiente
proceso de los preparados.
Paso a estado preparado:
Recibe la orden de ejecucin.
Si estando bloqueado, finaliza la operacin de E/S
Si estaba en ejecucin y llega una interrupcin que lo desplaza a preparados,
entrando otro proceso en la CPU.
Activacin (reanudacin), cuando el proceso estaba suspendido y pasa a
preparado.
Paso a estado suspendido bloqueado, cuando un proceso estando bloqueado y
se recibe la orden de suspenderlo.
Paso a estado suspendido preparado:
Cuando se suspende un proceso preparado.
Cuando se suspende un proceso en ejecucin.
Cuando desaparece la causa de bloqueo de un proceso suspendido
bloqueado
OPERACIONES SOBRE PROCESOS
Creacin La creacin de un proceso se produce con la orden de ejecucin del
programa y requiere de varios argumentos (nombre, prioridad,). En ese
instante el PCB ser insertado en la cola de procesos preparados.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

Dar nombre al proceso.


Insertar un proceso en la lista del sistema de procesos conocidos.
Determinar la prioridad inicial del proceso.
Crear el bloque de control del proceso (PCB)
Asignar los recursos iniciales del proceso.

Hay dos tipos de creacin de un proceso:


Jerrquica: cada proceso que se crea hereda el entorno de ejecucin del
proceso padre. Es el ms habitual.
No jerrquica: al crearse el proceso se ejecuta de forma independiente del
entorno de su creador.
Destruir un proceso: se elimina el PCB del proceso.
Suspender un proceso: operacin de alta prioridad que detiene un proceso
momentneamente por mal funcionamiento.
Borrarlo del sistema.
Devolver sus recursos al sistema.
Purgarlo de todas las listas o tablas del sistema.
Borrar su bloque de control de procesos.
Reanudar un proceso previamente suspendido.
Cambiar la prioridad de un proceso.
Temporizar la ejecucin de un proceso: obliga a ejecutar un proceso
despus de transcurrido un periodo de t. Fijo.
Despertar un proceso: se pone en marcha un proceso que haba sido
bloqueado previamente (por temporizacin)
PRIORIDADES:
A cada proceso se le asigna una prioridad en funcin de la urgencia y de
los recursos que precise, lo cual determina la frecuencia de acceso al
procesador.
Las prioridades pueden ser de distinto:
Asignadas por el Sistema Operativo: dependiendo de los privilegios de su
propietario y del modo de ejecucin.
Asignadas por el propietario: antes de comenzar la ejecucin (en sistemas
Tiempo Real).
Estticas: si no pueden ser modificadas durante la ejecucin (no vale para
Tiempo Real)
Las principales caractersticas de las prioridades estticas son las siguientes:
* No cambian.
* Los mecanismos de implementacin son sencillos.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

*Implican una sobrecarga relativamente baja.


* No responden a cambios en el ambiente (contexto) que haran
deseable ajustar alguna prioridad.
Dinmicas: que puede ser modificada en funcin de los eventos que se
produzcan.
Las principales caractersticas de las prioridades dinmicas son las siguientes:
* Responden al cambio.
*La prioridad inicial asignada a un proceso puede durar poco tiempo,
luego se la reajusta a un mejor valor.
* Los mecanismos de implementacin son ms complicados que para
prioridades estticas.
* Implican una sobrecarga mayor que para esquemas estticos.
- Asignadas automticamente por el sistema
- Asignadas desde el exterior
- Asignadas racionalmente
- Asignadas arbitrariamente: En el caso de prioridades asignadas
arbitrariamente, un mecanismo del sistema necesita distinguir entre procesos
sin importarle cul es el ms importante.
EXCEPCIONES:
Cuando se est ejecutando un proceso pueden aparecer fallos que el S.O. debe
detectar e intentar corregir (fallos de hardware o de software, datos
incorrectos, etc.). Para eso los S.O. disponen del gestor de excepciones.
Los fallos pueden ser:
Catastrficos: imposibilitan el funcionamiento y no son recuperables.
No recuperables: no afectan al sistema pero impiden que el proceso pueda
continuar.
Recuperables: con ciertos ajustes el proceso puede continuar.
El tratamiento de una excepcin puede seguir dos modelos:
Tratamiento y continuacin del proceso.
Tratamiento y finalizacin del proceso.
PLANIFICACIN DE PROCESOS

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

La Planificacin se como el conjunto de polticas y mecanismos construidos


dentro del sistema operativo que gobiernan la forma de conseguir que los
procesos a ejecutar lleguen a ejecutarse.
Es necesaria una planificacin cuando se dan lo siguiente:

Introducir un nuevo proceso en el Sistema.


Determinar el orden de ejecucin de los procesos del sistema.

La planificacin est muy relacionada con la gestin de los recursos. Existen


tres niveles de planificacin, estos niveles son:

Planificador de la CPU o a corto plazo.


Planificador a medio plazo.
Planificador a largo plazo.

Planificacin a largo plazo


Este planificador est presente en algunos sistemas que admiten
adems de procesos interactivos trabajos por lotes. Usualmente, se les asigna
una prioridad baja a los trabajos por lotes, utilizndose estos para mantener
ocupados a los recursos del sistema durante perodos de baja actividad de los
procesos interactivos. Normalmente, los trabajos por lotes realizan tareas
rutinarias como el clculo de nminas; en este tipo de tareas el programador
puede estimar su gasto en recursos, indicndoselo al sistema. Esto facilita el
funcionamiento del planificador a largo plazo.
El objetivo primordial del planificador a largo plazo es el de dar al
planificador de la CPU una mezcla equilibrada de trabajos, tales como los
limitados por la CPU (utilizan mucho la CPU) o la E/S. As, por ejemplo, cuando
la utilizacin de la CPU es baja, el planificador puede admitir ms trabajos para
aumentar el nmero de procesos listos y, con ello, la probabilidad de tener
algn trabajo til en espera de que se le asigne la CPU. A la inversa, cuando la
utilizacin de la CPU llega a ser alta, y el tiempo de respuesta comienza a
reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia de
admisin de trabajos.
Normalmente, se invoca al planificador a largo plazo siempre que un
proceso termina. La frecuencia de invocacin depende, pues, de la carga del
sistema, pero generalmente es mucho menor que la de los otros dos
planificadores. Esta baja frecuencia de uso hace que este planificador pueda
permitirse utilizar algoritmos complejos, basados en las estimaciones de los
nuevos trabajos.
Planificacin a Medio Plazo

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

En los sistemas de multiprogramacin y tiempo compartido varios


procesos residen en la memoria principal. El tamao limitado de sta hace que
el nmero de procesos que residen en ella sea finito. Puede ocurrir que todos
los procesos en memoria estn bloqueados, desperdicindose as la CPU. En
algunos sistemas se intercambian procesos enteros (swap) entre memoria
principal y memoria secundaria (normalmente discos), con esto se aumenta el
nmero de procesos, y, por tanto, la probabilidad de una mayor utilizacin de
la CPU.
El planificador a medio plazo es el encargado de regir las transiciones de
procesos entre memoria principal y secundaria, acta intentando maximizar la
utilizacin de los recursos. Por ejemplo, transfiriendo siempre a memoria
secundaria procesos bloqueados, o transfiriendo a memoria principal procesos
bloqueados nicamente por no tener memoria.
ALGORITMOS DE PLANIFICACIN:
1.-Planificacin Primero en Entrar-Primero en Salir (FIFO, First In First
Out)
Cuando se tiene que elegir a qu proceso asignar la CPU se escoge al que
llevara ms tiempo listo. El proceso se mantiene en la CPU hasta que se
bloquea voluntariamente.
La ventaja de este algoritmo es su fcil implementacin, sin embargo, no es
vlido para entornos interactivos ya que un proceso de mucho clculo de CPU
hace aumentar el tiempo de espera de los dems procesos. Para implementar
el algoritmo slo se necesita mantener una cola con los procesos listos
ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a listo
se sita el ltimo de la cola.
En a) el proceso P7 ocupa la CPU, los procesos P2, P4 y P8 se mantienen en la
lista de preparados. En b) P7 se bloquea (ya sea al realizar una E/S u otra
causa) y P2 pasa a ocupar la CPU. En c) ocurre un evento (finalizacin de la
operacin de E/S) que desbloquea a P7, esto lo vuelve listo, pasando al final de
la cola de procesos listos.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

Algunas de las caractersticas de este algoritmo es que es no apropiativo y


justo en el sentido formal, aunque injusto en el sentido de que: los trabajos
largos hacen esperar a los cortos y los trabajos sin importancia hacen esperar a
los importantes. Por otro lado es predecible pero no garantiza buenos tiempos
de respuesta y por ello se emplea como esquema secundario.
2.- Planificacin por Turno Rotatorio (Round Robin).
Este es uno de los algoritmos ms antiguos, sencillos y equitativos en el
reparto de la CPU entre los procesos, muy vlido para entornos de tiempo
compartido. Cada proceso tiene asignado un intervalo de tiempo de ejecucin,
llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se
elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina
antes de agotar su cuantum tambin se alterna el uso de la CPU. El round robin
es muy fcil de implementar. Todo lo que necesita el planificador es mantener
una lista de los procesos listos, como se muestra en la figura 6.2.
En esta figura en a) el proceso P7 ocupa la CPU. En b) P7 se bloquea pasando
P2 a ocupar la CPU. En c) P2 agota su cuantum con lo que pasa al final de la
lista y P4 ocupa la CPU. La figura 4 representa un ejemplo ms largo de la
ocupacin de la CPU utilizando el algoritmo round robin.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

Este algoritmo presupone la existencia de un reloj en el sistema. Un reloj es un


dispositivo que genera peridicamente interrupciones. Esto es muy importante,
pues garantiza que el sistema operativo (en concreto la rutina de servicio de
interrupcin del reloj) coge el mando de la CPU peridicamente. El cuantum de
un proceso equivale a un nmero fijo de pulsos o ciclos de reloj. Al ocurrir una
interrupcin de reloj que coincide con la agotacin del cuantum se llama al
dispatcher.

3.- Tamao del Cuanto


La determinacin del tamao del cuanto es vital para la operacin efectiva
de un sistema de cmputo. Debe el cuanto ser pequeo o grande?, fijo o

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

variable?, el mismo para todos los usuarios o debe determinarse por separado
para cada uno?
Si el cuanto de tiempo es muy grande, cada proceso tendr el tiempo
necesario para terminar, de manera que el esquema de planificacin por turno
rotatorio degenera en uno de primero-en-entrar-primero-en-salir. Si el cuanto
es muy pequeo, el gasto extra por cambio de proceso se convierte en el
factor dominante y el rendimiento del sistema se degradar hasta el punto en
que la mayor parte del tiempo se invierte en la conmutacin del procesador,
con muy poco o ningn tiempo para ejecutar los programas de los usuarios.
Exactamente dnde, entre cero e infinito, debe fijarse el tamao del cuanto?
La respuesta es, lo bastante grande como para que la mayora de las
peticiones interactivas requieran menos tiempo que la duracin del cuanto.
Pongamos un ejemplo, supongamos que el cambio de proceso tarda 5 mseg., y
la duracin del cuantum es de 20 mseg.. Con estos parmetros, se utiliza un
mnimo del 20% del tiempo de la CPU en la ejecucin del sistema operativo.
Para incrementar la utilizacin de la CPU por parte de los procesos de usuario
podramos establecer un cuantum de 500 mseg., el tiempo desperdiciado con
este parmetro sera del 1%. Pero consideremos lo que ocurrira si diez
usuarios interactivos oprimieran la tecla enter casi al mismo tiempo. Diez
procesos se colocaran en la lista de procesos listos. Si la CPU est inactiva, el
primero de los procesos comenzara de inmediato, el segundo comenzara
medio segundo despus, etc. Partiendo de la hiptesis de que todos los
procesos agoten su cuantum, el ltimo proceso deber de esperar 4'5 seg.
para poder ejecutarse. Esperar 4'5 seg. para la ejecucin de una orden sencilla
como pwd parece excesivo.
En conclusin, un cuantum pequeo disminuye el rendimiento de la CPU,
mientras que un cuantum muy largo empobrece los tiempos de respuesta y
degenera en el algoritmo FIFO. La solucin es adoptar un trmino medio como
100 mseg.

4.- Planificacin por Prioridad al ms corto (SJF, Short Job First).


Al igual que en el algoritmo FIFO las rfagas se ejecutan sin interrupcin, por
tanto, slo es til para entornos batch. Su caracterstica es que cuando se
activa el planificador, ste elige la rfaga de menor duracin. Es decir,
introduce una nocin de prioridad entre rfagas. Hay que recordar que en los
entornos batch se pueden hacer estimaciones del tiempo de ejecucin de los
procesos.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que


minimiza el tiempo de finalizacin promedio, como puede verse en el siguiente
ejemplo:
Ej: Supongamos que en un momento dado existen tres rfagas listos R1, R2 y
R3, sus tiempos de ejecucin respectivos son 24, 3 y 3 ms. El proceso al que
pertenece la rfaga R1 es la que lleva ms tiempo ejecutable, seguido del
proceso al que pertenece R2 y del de R3. Veamos el tiempo medio de
finalizacin (F) de las rfagas aplicando FIFO y SJF:
* FIFO F = (24 + 27 + 30) / 3 = 27 ms.
* SJF F = (3 + 6 + 30) / 3 = 13 ms.
Se puede demostrar que este algoritmo es el ptimo. Para ello, consideremos
el caso de cuatro rfagas, con tiempos de ejecucin de a, b, c y d. La primera
rfaga termina en el tiempo a, la segunda termina en el tiempo a+b, etc. El
tiempo promedio de finalizacin es (4a+3b+2c+d)/4. Es evidente que a
contribuye ms al promedio que los dems tiempos, por lo que debe ser la
rfaga ms corta, b la siguiente, y as sucesivamente. El mismo razonamiento
se aplica a un nmero arbitrario de rfagas.
No obstante, este algoritmo slo es ptimo cuando se tienen simultneamente
todas las rfagas. Como contraejemplo, considrense cinco rfagas desde A
hasta E, con tiempo se ejecucin de 2, 4, 1, 1 y 1 respectivamente. Sus
tiempos de llegada son 0, 0, 3, 3 y 3. Primero se dispone de A y B, puesto que
las dems rfagas no han llegado an. Con el algoritmo SJF las ejecutaramos
en orden A, B, C, D, y E con un tiempo de finalizacin promedio de 4.6. Sin
embargo, al ejecutarlas en orden B, C, D, E y A se tiene un promedio de
finalizacin de 4.4.

5.- Planificacin por Prioridad al Tiempo Restante ms Corto (SRTF,


Short Remaining Time First).

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

UNIDAD II.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS

Es similar al anterior, con la diferencia de que si un nuevo proceso pasa a listo


se activa el dispatcher para ver si es ms corto que lo que queda por ejecutar
del proceso en ejecucin. Si es as el proceso en ejecucin pasa a listo y su
tiempo de estimacin se decrementa con el tiempo que ha estado
ejecutndose.
En la figura 6.5 tenemos un ejemplo de funcionamiento del algoritmo en el que
se observa cmo se penalizan las rfagas largas (como en SJF). Un punto dbil
de este algoritmo se evidencia cuando una rfaga muy corta suspende a otra
un poco ms larga, siendo ms largo la ejecucin en este orden al ser preciso
un cambio adicional de proceso y la ejecucin del cdigo del planificador.

Ing. Mara Rosana Heredia


Ing. Andry Saavedra

SISTEMAS OPERATIVOS

Вам также может понравиться