Академический Документы
Профессиональный Документы
Культура Документы
ADMINISTRACIN DE PROCESOS
Y
DE MEMORIA
4.1. INTRODUCCIN A LOS PROCESOS
Todas las computadoras modernas hacen varias cosas al mismo tiempo. A la vez que
ejecuta un programa del usuario, una computadora puede leer de un disco e imprimir en
una terminal o impresora. En un sistema de multiprogramacin, la CPU tambin alterna
de programa en programa, ejecutando cada uno de ellos por decenas o cientos de
milisegundos. Aunque, en sentido estricto, la CPU ejecuta en cierto instante un solo
programa, durante un segundo puede trabajar con varios de ellos, lo que da una apariencia
de paralelismo. A veces, las personas hablan de pseudoparalelismo para indicar este
rpido intercambio de los programas en la CPU, para distinguirlo del paralelismo real del
hardware, donde se hacen clculos en la CPU a la vez que operan uno o ms dispositivos
de entrada/salida. Es difcil mantener un registro de las distintas actividades paralelas.
Por lo tanto, los diseadores del sistema operativo han desarrollado con el tiempo un
modelo que facilita el uso del paralelismo.
Un programa en ejecucin.
Una actividad asncrona.
El "espritu animado" de un procedimiento.
El "centro de control" de un procedimiento en ejecucin
Lo que se manifiesta por la existencia de un "bloque de control del proceso" en el
sistema operativo.
La entidad a la que se asignan los procesadores.
La unidad "despachable"
Aunque se han dado muchas otras definiciones, no hay una definicin universalmente
aceptada, pero el concepto de "Programa en ejecucin" parece ser el que se utiliza con
ms frecuencia. Un programa es una entidad inanimada; slo cuando un procesador le
"infunde vida" se convierte en la entidad "activa" que se denomina proceso.
Un proceso pasa por una serie de datos discretos. Se dice que un proceso se est
ejecutando (estado de ejecucin), si tiene asignada la UCP2. Se dice que un proceso est
listo (estado listo) si pudiera utilizar una UCP en caso de haber una disponible. Un
proceso est bloqueado (estado bloqueado) si est esperando que suceda algn evento
antes de poder seguir la ejecucin.
1 (Multiplexed Information and Computing Service) fue uno de los primeros sistemas operativos de tiempo compartido
y tuvo una gran influencia en el desarrollo de los posteriores sistemas operativos.
2 Unidad central de procesamiento, donde se ejecutan las instrucciones de programas y se controla el funcionamiento
El S.O. crea procesadores virtuales. Cada uno de ellos es una copia idntica del
procesador fsico y ejecuta un programa sobre cada uno.
3 Mecanismo de control por realimentacin ampliamente usado en sistemas de control industrial. Este calcula la
desviacin o error entre un valor medido y un valor deseado. El algoritmo del control PID consiste de tres parmetros
distintos: el proporcional, el integral, y el derivativo.
4 (registrado oficialmente como UNIX) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en
principio, en 1969, por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Dennis Ritchie,
Ken Thompson y Douglas McIlroy.
Comunicacin entre procesos: El BCP puede contener espacio para
almacenar las seales y para algn mensaje enviado al proceso.
Un proceso se representa desde el punto de vista del sistema operativo, por un conjunto
de datos donde se incluyen el estado en cada momento, recursos utilizados, registros,
etc., denominado Bloque de Control de Procesos (PCB).
En UNIX, los procesos se crean mediante la llamada al sistema FORK5, el cual crea
una copia idntica del proceso que hace la llamada. Despus de la llamada FORK, el
padre sigue su ejecucin, en paralelo con el hijo. El padre puede dar lugar entonces a
ms hijos, de forma que en cualquier momento podran estar varis hijos en ejecucin.
Los hijos tambin pueden ejecutar FORK, por lo que es posible obtener un rbol de
procesos, de profundidad arbitraria.
5Esta es una llamada a sistema para el control de procesos que al ser invocada genera un proceso hijo, como una copia
del proceso en donde fue invocada la llamada, este hijo es casi exactamente igual a su padre (lo nico que los diferencia
es su pid), retorna el pid del hijo al padre, al hijo le retorna en la copia de la llamada fork() el valor cero sin generar
otra copia y ejecuta el proceso hijo desde este punto del cdigo, es decir, lo que hay tras la invocacin fork() no se
ejecuta.
4.8. CLASIFICACIN DE LOS PROCESOS
Unix estndar slo ofrece procesos pesados, pero como veremos existen extensiones
que implementan procesos livianos para Unix. Un ejemplo de sistema de procesos
livianos es el que implementaba el sistema operativo de los computadores
Commodore Amiga, que no tena la MMU necesaria para implementar procesos
pesados.
Como se observa en la figura siguiente el Sistema Operativo, a travs del Kernel, crea
esa mquina virtual que permite la ejecucin de los procesos sobre un procesador
(Hardware cableado para cada instruccin del programa en ejecucin) haciendo una
abstraccin de la complejidad del procesamiento.
Dado que la cantidad de objetos que puede usar un proceso para su ejecucin son
variables (espacio de nombres del proceso) y la cantidad de objetos del procesador son
fijos (espacio de nombres del procesador) es necesario homogenizar el espacio de
nombres que se carga sobre el procesador (imagen del proceso). Si el espacio de
nombres del proceso es ms grande se requiere hacer referencia mediante un registro
interno del procesador como puntero ndice a la direccin del Stack donde estn los
objetos del PCB an no cargados sobre el procesador. Sin embargo, si el espacio de
nombres del proceso es ms pequeo o igual al del procesador no es necesario este
puntero.
El Kernel tiene una lista de procesos activos cargados en el rea de Memoria reservado
para el S.O. El procesador ejecuta a travs del Program Counter (PC) los distintos
objetos involucrado en las instrucciones.
Los dems registros del procesador sirven para controlar los distintos recursos que
tiene asignado el proceso.
Por ejemplo base y lmite de memoria donde est cargado el programa o los datos, etc.
Los bloques de control de los procesos se almacenan en colas, cada una de las
cuales representa un estado particular de los procesos, existiendo en cada bloque,
entre otras informaciones. Los estados de los procesos son internos del sistema
operativo y transparente al usuario.
Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.
6. Paso a estado suspendido preparado. Este paso se puede producir bajo tres
circunstancias:
Suspensin de un proceso preparado pasando ste de la cola de procesos
preparados a la de suspendidos preparados
Suspensin de un proceso en ejecucin, con lo cual el proceso pasa a la
cola de suspendidos preparados.
Desbloqueo de un proceso suspendido bloqueado por desaparecer la causa
que impeda el ser activado de nuevo.
4.12. OPERACIONES SOBRE PROCESOS
Los S.O. con multitarea permiten numerosas operaciones dedicadas a la gestin de
procesos. Los sistemas operativos actuales poseen una serie de funciones cuyo
objetivo es el de la manipulacin de los procesos. Las operaciones que se pueden hacer
sobre un proceso son las siguientes:
Tiempo lmite El proceso ha ejecutado por ms tiempo lmite total especificado. Hay varias
excedido posibilidades para la clase de tiempo que se mide. Entre stas se incluyen el
tiempo total transcurrido ("tiempo de reloj"), el tiempo que ha estado ejecutado
y, en el caso de un proceso interactivo, el tiempo transcurrido desde que el
usuario realiz su ltima entrada de datos.
Violacin de
lmites
El proceso trata de acceder a una posicin de memoria a la que no le est
permitido acceder.
Error aritmtico El proceso intenta hacer un clculo prohibido, como una divisin por cero, o trata
de almacenar un nmero mayor del que el hardware acepta.
Tiempo mximo El proceso ha esperado ms all del tiempo mximo especificado para que se
de espera produzca cierto suceso.
rebasado
Fallo de E/S Se produce un error en la entrada o la salida, tal como la incapacidad de encontrar
un archivo, un fallo de lectura o escritura despus de un nmero mximo de
intentos (cuando, por ejemplo, hay una regin defectuosa en una cinta), o una
operacin ilegal (como intentar leer de una impresora).
Instruccin El proceso intenta ejecutar una instruccin inexistente (a menudo como resultado
invlida de un salto a una zona de datos para intentar ejecutar los datos).
Instruccin El proceso intenta usar una instruccin reservada para el sistema operativo.
privilegiada
Intervencin del Por alguna razn el operador o el sistema operativo termina con el proceso (por
operador o de ejemplo, si existe un interbloqueo).
SO
Terminacin del Cuando un proceso padre finaliza, el sistema operativo puede disearse para
padre terminar automticamente con todos sus descendientes.
Solicitud del Un proceso padre tiene normalmente la autoridad de terminar con cualquiera de
padre sus descendientes.
4.16. LA SINCRONIZACION
En muchos casos, los procesos se renen para realizar tareas en conjunto, a este tipo
de relacin se le llama procesos cooperativos. Para lograr la comunicacin, los
procesos deben sincronizarse, de no ser as pueden ocurrir problemas no deseados.
La sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar
a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinacin y
cooperacin de un conjunto de procesos para asegurar la comparacin de recursos de
cmputo. La sincronizacin entre procesos es necesaria para prevenir y/o corregir
errores de sincronizacin debidos al acceso concurrente a recursos compartidos, tales
como estructuras de datos o dispositivos de E/S, de procesos contendientes. La
sincronizacin entre procesos tambin permite intercambiar seales de tiempo
(ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones
especficas de precedencia impuestas por el problema que se resuelve. Sin una
sincronizacin adecuada entre procesos, la actualizacin de variables compartidas
puede inducir a errores de tiempo relacionados con la concurrencia que son con
frecuencia difciles de depurar. Una de las causas principales de este problema es que
procesos concurrentes puedan observar valores temporalmente inconsistentes de una
variable compartida mientras se actualizan. Una aproximacin para resolver este
problema es realizar actualizaciones de variables compartidas de manera
mutuamente exclusiva. Se pueden mejorar permitiendo que a lo ms un proceso entre
a la vez en la seccin crtica de cdigo en al que se actualiza una variable compartida
o estructura de datos en particular.
4.17. PLANIFICACIN DE PROCESOS
En pocas pasadas de los sistemas de procesamiento por lotes, con una entrada en
forma de imgenes de tarjetas en una cinta magntica, el algoritmo de planificacin
era sencillo: slo haba que ejecutar el siguiente trabajo en la cinta. En los sistemas de
multiusuario de tiempo compartido, que se combinaban con un fondo de trabajos
procesados en lote, el algoritmo era ms complejo. En forma invariable, existan
varios usuarios en espera de servicio y podan existir tambin otros trabajos para ser
procesados en lote. Incluso en los sistemas puros de tiempo compartido existen con
frecuencia los trabajos colaterales, como el sistema de correo electrnico, que a
menudo se ejecuta todo el tiempo para enviar o recibir correo o noticias.
4.20. PLANIFICADORES
El planificador o scheduler es un componente del Sistema Operativo que se encarga
de elegirla tarea siguiente que hay que admitir en el sistema y el proceso siguiente que
hay que ejecutar.
La finalidad del planificador es asignar procesos para que sean ejecutados por el
procesador o procesadores con el fin de obtener mejores tiempos de respuesta, mayor
productividad o rendimiento y eficiencia del procesador. En la mayora de los sistemas
esta actividad de planificacin se realiza en tres tipos de planificadores que se explican
a continuacin.
En UNX, las tareas de planificacin las resuelve el scheduler (planificador) mediante
un mecanismo de prioridades. Cada proceso tiene asignada una prioridad. Las
prioridades de los procesos de los usuarios son siempre menores que la prioridad ms
pequea de un proceso del sistema.
Multitarea Cooperativa
La Multitarea con Derecho Preferente
- No es apropiativa.
- Es justa, aunque los procesos largos hacen esperar mucho a los cortos.
- Es una poltica predecible.
- El tiempo promedio de servicio es muy variable ya que est en funcin
del nmero de procesos y la duracin promedio que tenga.
b) El trabajo ms corto primero: Llamado tambin SJF (Shortest Job First). Este
algoritmo de planificacin reduce la preferencia en favor de los procesos ms
largos dando ms importancia a los procesos cortos, como se muestra en la figura.
Cualquier algoritmo que se base en esta poltica puede ser apropiativo o no apropiativo.
En el primer caso, un proceso puede ser retirado del procesador si aparece otro de mayor
prioridad.
Volviendo a FCFS, una forma de mejorarlo es agregando apropiacin de tal forma que
cada proceso no retenga el procesador por ms de un quantum o periodo de tiempo
predefinido. Consiste en darle a cada proceso en ejecucin un cierto periodo de tiempo,
y una vez finalizado el tiempo, si el proceso no ha terminado, es colocado al final de la
cola de procesos listo, otorgndose el procesador al siguiente proceso. Trata de ser ms
justo en cuanto a tiempos de respuesta tanto de los procesos cortos como de los procesos
largos.