descripcion y procesos de control

Anuncio
GUIA DE TRABAJO
PROGRAMA: INGENIERIA DE SISTEMAS
CICLO DE FORMACIÓN: TECNICO
ASIGNATURA: SISTEMAS OPERATIVOS
DOCENTE – TUTOR: CARLOS MAURICIO DIAZ ROYERTH
EJE DE APRENDIZAJE: DESCRIPCIÓN Y CONTROL DE PROCESOS
COMPETENCIAS:
 Los y las estudiantes estarán en capacidad de identificar las fases de los procesos y las
acciones de control que se llevan a cabo.
 Identificar los elementos constitutivos de los sistemas operativos, y formular con argumentos
consideraciones sobre las estrategias de gestión que realizan y las relaciones que se
establecen entre el software, el hardware y el usuario.
ACTIVIDADES:
 Construcción de modelos gráficos de la estructura de los procesos de los S.O.
PREGUNTA PROBLEMATIZADORA:




¿Qué es un proceso?
¿Cuáles son las fases de los procesos?
¿Qué procesos lleva a cabo los S.O.?
¿Cómo se controla la ejecución de procesos?
PROCESOS
1. ¿QUÉ ES UN PROCESO?
Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, Una
vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un
programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de
cierto tipo que contiene un programa, entradas salidas y estados.
Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los
procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos
independientes en general se debe a que no interactúan y un proceso no requiere información
de otros o bien porque son procesos que pertenecen a distintos usuarios.
Un proceso tiene recursos como:
o
o
o
o
Datos
Registros temporales
Stack (pila)
Program Counter
Operaciones sobre procesos
Los sistemas que administran los procesos deben ser capaces de realizar ciertas operaciones
sobre los procesos. Estos incluyen:
Los procesos en un S.O. pueden ejecutarse concurrentemente y deben ser creados
y eliminados dinámicamente. Para esto se deben proveer llamadas al sistema que permitan:
- Crear procesos
- Destruir procesos
- Terminar procesos
Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es el de la
manipulación de los procesos. Las operaciones que se pueden hacersobre un proceso son las
siguientes:
Crear el proceso. Se produce con la orden de ejecución del programa y suele necesitar varios
argumentos, como el nombre y la prioridad del proceso. Aparece en este momento el PCB, que
será insertado en la cola de procesos preparados. La creación de un proceso puede ser de dos
tipos:
Jerárquica. En ella, cada proceso que se crea es hijo del proceso creador y hereda el
entorno de ejecución de su padre. El primer proceso que ejecuta un usuario será hijo
del intérprete de comandos con el que interactúa.
No jerárquica. Cada proceso creado por otro proceso se ejecuta independientemente
de su creador con un entorno diferente. Es un tipo de creación que no suele darse en
los sistemas operativos actuales.
Un proceso puede crear nuevos procesos. El proceso que crea se denomina proceso
padre y los procesos creados, procesos hijos. Cada uno de estos procesos, puede a
su vez crear nuevos procesos. De esta forma se logra una jerarquía de procesos.
Como cada proceso necesita recursos, éstos los puede obtener directamente del S.O,
o compartir recursos con su padre.
Cuando se crea un nuevo proceso existen dos alternativas:
- El padre continúa ejecutándose en forma concurrente con el hijo.
- El padre espera hasta que alguno o todos sus hijos terminen.
Destruir un proceso. Se trata de la orden de eliminación del proceso con la cual el sistema
operativo destruye su PCB. Un proceso termina cuando ejecuta su última sentencia y pide al
S.O que lo elimine. Cuando esto ocurre, todos los recursos son devueltos al S.O.
Pero ¿cuándo un proceso termina?
- Se ejecutó la última sentencia.
- El proceso decide terminar.
- Un proceso decide matar a otro.
- Un proceso padre puede matar a sus hijos.
Suspender un proceso. Es un proceso de alta prioridad que paraliza un proceso que puede
ser reanudado posteriormente. Suele utilizarse en ocasiones de mal funcionamiento o
sobrecarga del sistema.
Reanudar un proceso. Trata de activar un proceso que ha sido previamente suspendido.
Cambiar la prioridad de un proceso.
Temporizar la ejecución de un proceso. Hace que un determinado proceso se ejecute cada
cierto tiempo (segundos, minutos, horas...) por etapas o de una sola vez, pero transcurrido un
periodo de tiempo fijo.
Despertar un proceso. Es una forma de desbloquear un proceso que habrá sido bloqueado
previamente por temporización o cualquier otra causa.
Prioridades
Todo proceso por sus características e importancia lleva aparejadas unas determinadas
necesidades de ejecución en cuanto a urgencia y asignación de recursos.
Las prioridades según los sistemas operativos se pueden clasificar del siguiente modo:
Asignadas por el sistema operativo. Se trata de prioridades que son asignadas a un
proceso en el momento de comenzar su ejecución y dependen fundamentalmente de
los privilegios de su propietario y del modo de ejecución.
Asignadas por el propietario. En este caso es el propio usuario el que asigna a cada
proceso la prioridad con que éste debe ejecutarse. Esta modalidad de asignación de
prioridades es muy utilizada en sistema de tiempo real, ya que algunos de sus
procesos necesitan atender rápidamente algún evento sin que tengan que
interrumpirse.
Otra clasificación de prioridades atendiendo a la posibilidad de variación de las mismas es la
siguiente:
Estáticas. No pueden ser modificadas durante la ejecución del proceso.
Pueden ser utilizadas en sistemas de tiempo compartido, pero no en los de tiempo real.
Dinámicas. La prioridad de un proceso puede ser modificada con el fin de atender
cualquier evento que se produzca.
Estructuras de datos de procesos
La creación de un proceso implica varias operaciones, incluyendo:
PID. Identificador del proceso.
Estado. Wait, Run, Ready etc.
PC (Program Counter). Información relativa al contenido del contador de programa.
Registros de CPU. Archivo de registros en uso.
Información de itineración (Información para el Scheduler). Contadores, relojes, prioridad,
punteros a colas de ejecución.
Información de Manejo de Memoria. Registros base y límite, tablas para manejo de memoria
virtual, lista de páginas, etc.
Información de Contabilidad. Tiempo de CPU utilizado, tiempo real utilizado, límites de
tiempo, etc.
Información sobre el estado de E/S. Dispositivos asignados al proceso, lista de archivos
abiertos, estado de esos archivos, etc.
Credenciales. UID, GID, PPID (identificadores de usuario y de proceso).
2. ESTADOS DE LOS PROCESOS
Los Sistemas Operativos deben disponer de una forma de crear y destruir procesos cuando se
requiera durante la operación, teniendo además presente que los procesos pueden generar
procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo.
Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:

Cada proceso es una entidad independiente pero frecuentemente debe interactuar
con otros procesos

Los procesos pueden bloquearse en su ejecución porque:
o
o

Desde el punto de vista lógico no puede continuar porque espera datos que aún no
están disponibles.
El Sistema Operativo asignó la CPU a otro proceso.
Los estados que puede tener un proceso son:
o
o
o
En ejecución: utiliza la CPU en el instante dado.
Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
Transiciones entre los estados
De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT
sobre un semáforo a cero (en el tema de procesos concurrentes se estudiarán los
semáforos).
De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso
que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente (agota su cuanto) el
sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba
la CPU a estado listo.
De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el
planificador de la CPU en el tema de planificación de procesos).
De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por
ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo
en que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.
Obsérvese que de las cuatro transiciones de estado posibles, la única iniciada por el proceso
de usuario es el bloqueo, las otras tres son iniciadas por entidades externas al proceso.
EJERCICIO
Supongamos la existencia de tres proceso cada uno con la siguiente información básica:
PROCESO 1:
Name:
Time Slice:
Prioridad:
Tamaño:

Proc1
3 ms
5
4000 líneas de código objeto
En la línea 2000 esta la representación en código objeto de la instrucción read(a).
PROCESO 2:
Name:
Time Slice:
Prioridad:
Tamaño:
Proc2
2 ms
3
5000 líneas de código objeto
PROCESO 3:
Name:
Time Slice:
Prioridad:
Tamaño:

Proc3
2 ms
4
1000 líneas de código objeto
En la línea 900 esta la representación en código objeto de la instrucción write(b).
Suponga que se tienen estructuras de datos adecuadas para llevar una imagen o control del
estado de procesos, básicamente la lista enlazada de los procesos en estado de LISTOS, así
como la lista enlazada de los procesos en operaciones de E/S, estas listas inicialmente están
como NULL. Adicionalmente el contador de programas PC, apunta la próxima instrucción de
código a ejecutar.
Suponga por simplicidad y para efectos de ilustración (ya que en la vida real las cifras son
otras) que todas las operaciones de E/S tardan 5 ms en llevarse acabo, y que además el
procesador es capaz de ejecutar 1000 líneas de código cada milisegundo.
Entonces empieza a suceder los siguientes eventos:



En el tiempo T1 se crea el PROCESO 1
Un milisegundo mas tarde se crea el PROCESO 2
1.50 ms después de T1 se crea el PROCESO 3
Haga una descripción del estado del sistema para cada uno de los eventos que se sucedan en
el tiempo y que se representarán como Ti, desde T1 hasta que finalice la ejecución de todos los
procesos. Recuerde que el modelo que subyace es la maquina de estados finito. Incluya para
cada proceso en cada estado después de un evento el estado de las LISTAS ENLAZADAS y
del PC.
Solución
TIEMPO
(ms)
T1 0
T2 1
T3 1.5
T4 3
T5 3.9
T6 5.9
T7 6.9
T8 7.9
T9 8.9
T10 10
T11 11.9
T12 13.9
LISTO
Proc1
Proc1, proc3
Proc1, proc2
Proc1
Proc2
EJECUCION BLOQUEADO
Proc1
Proc2
Proc2
Proc3
Proc2
Proc1
Proc2
Proc3
CP
PROC1
CP
PROC2
CP
PROC3
TERMINADO
1000
500
2000
Proc3
Proc3
Proc1, proc3
Proc1, proc3
Proc1
Proc1
900
4000
2000
5000
Proc2
1000
Proc3
Proc1
4000
Proc1
Descargar