Sei sulla pagina 1di 11

Universidad Nacional Federico Villarreal

Escuela de Ingenierí
Ingeniería de Sistemas

“SISTEMAS OPERATIVOS”

Ing. Tamariz Figueroa, Cesar


4to. Ciclo de Ingeniería de Sistemas

CAPITULO 3

PROCESOS

Ing. Tamariz Figueroa, Cesar -2-

Introducció
Introducción

Los Primeros Sistemas Computacionales permitían la ejecución de un


programa a la vez. Este programa asumía el control total del sistema, y
tenia acceso a todos sus recursos.
Los Sistemas computacionales actuales permiten cargar múltiples
programas en la memoria y ejecutarlos de manera concurrente. Esta
evolución requirió un control mas firme y mayor compartimentalización
de los distintos programas.
Estas necesidades dieron pie al concepto de Proceso, que es un
programa en ejecución. Un proceso es la unidad de trabajo en un
sistema de Tiempo compartido moderno.

Ing. Tamariz Figueroa, Cesar -3-

1
PROCESO

3.1. CONCEPTO DE PROCESO


El PROCESO es un programa en ejecución. La
ejecución de un proceso debe proceder de
manera secuencial. Es decir, en cualquier
instante, cuando mas una instrucción se estará
ejecutando a nombre del proceso.
Un proceso esta representado por el contador del
programa (PC, Program Counter) y el contenido
de los registros del Procesador. Generalmente el
proceso incluye la Pila (Stack) del proceso, que
contiene datos en temporales (parámetros de
subrutinas, direcciones de retorno y variables
temporales), y una sección que contiene
variables globales.
Aunque podrían haber 2 procesos asociados al mismo programa, se
considera como 2 secuencias de ejecución distintas.
Ing. Tamariz Figueroa, Cesar -4-

PROCESO

3.2. BLOQUEO DE CONTROL DE PROCESO


Cada Proceso se representa en el S.O. con un bloque de Control de
Proceso (PCB-Process Control Block). Este bloqueo contiene muchos
elementos de información asociados a un proceso específico, incluido los
siguientes:
Estado de Proceso: El estado puede ser: nuevo, listo, en ejecución,
Bloqueado y Terminado.
Contador de Programas: indica la dirección de la siguientes instrucciones
que se ejecutaran para este proceso.
Registros de CPU: el número de registro varia dependiendo de la
arquitectura del computador. Los registros incluyen acumuladores,
registros índices, punteros de pilas y registros de propósito general.
Información de Planificación del CPU: incluye prioridad de procesos,
punteros a colas de planificación y cualquier otro parámetro de
planificación.
Ing. Tamariz Figueroa, Cesar -5-

PROCESO

3.2. BLOQUEO DE CONTROL DE PROCESO


Información de Gestión de Memoria: Esta
información debe incluir datos tales como el valor
de los registros base y limite, las tablas de
segmentos, dependiendo del sistema de memoria
empleado por el Sistema Operativo.
Información Contable: Esta información incluye la
cantidad de tiempo de CPU y Tiempo Real
consumida, limites de Tiempo, números de cuenta,
números de trabajo o proceso y demás.
Información de estado de E/S: la inf. Incluye la lista
de dispositivos de E/S (como unidades, periféricos,
etc.) asignadas a este proceso.
Conclusión: “El PCB sirve como un deposito de
cualquier información que pueda variar de un
proceso a otro”
Ing. Tamariz Figueroa, Cesar -6-

2
PROCESO

Ing. Tamariz Figueroa, Cesar -7-

PROCESOS

3.3. PLANIFICACION DE PROCESOS

El objetivo de la multiprogramación es
tener algún proceso en ejecución en
todo momento, a fin de maximizar el
aprovechamiento de la CPU.
El objetivo del Tiempo Compartido es
conmutar la CPU entre procesos con tal
frecuencia que los usuarios puedan
interactuar con cada programa durante
su ejecución.

Ing. Tamariz Figueroa, Cesar -8-

PROCESOS

3.3.1. COLAS DE PLANIFICACION


Conforme los procesos ingresan en el Sistema, se colocan en una Cola
de Trabajos. Los procesos que están en la memoria principal y están listos
y esperando para ejecutarse se mantienen en una lista llamada Cola de
Procesos Listos, que generalmente se almacena como lista enlazada.
La cabecera de esta cola contiene punteros al primer y ultimo PCB de la
lista. Cada PCB tiene un campo de puntero que apunta al siguiente
proceso de la cola de procesos listos.
En el caso de una operación de E/S, la solicitud podría haberse hecho a
una unidad de cinta o dispositivos compartido, como un disco. Puesto
que hay muchos procesos en el sistema, el disco podría estar ocupado
con la solicitud de E/S de algún otro proceso teniendo que estar en una
lista de espera denominada Cola de dispositivo.

Ing. Tamariz Figueroa, Cesar -9-

3
PROCESO

Ing. Tamariz Figueroa, Cesar -10-

PROCESO

Ing. Tamariz Figueroa, Cesar -11-

PROCESO

3.3.2. CONMUTACION DE CONTEXTO.


El cambio de la CPU a otro proceso requiere
guardar el estado del proceso anterior y
cargar el estado guardado del nuevo
proceso. Esta tarea se denomina
Conmutación de Contexto (Context Switch).
El tiempo de conmutación de contexto es
exclusivamente Gasto Extra (Overhead),
porque el sistema no realiza trabajo útil
durante la conmutación.
La rapidez de conmutación varía de una
maquina a otra, dependiendo de la
velocidad de la memoria, el número de
registros que hay que copiar y la existencia
de instrucciones especiales.

Ing. Tamariz Figueroa, Cesar -12-

4
PROCESO

3.4. ESTADO DE UN PROCESO


La misión principal del procesador es ejecutar las instrucciones de la
máquina que residen en la memoria principal. Estas instrucciones se dan
en forma de programas que contienen secuencias de instrucciones.
Desde el punto de vista del procesador, éste ejecutará instrucciones de
entre un repertorio en una secuencia dictada por los valores cambiante
de un registro conocido como el Contador de Programa o Puntero de
Instrucciones. A lo largo del tiempo, este contador puede apuntar a
código de programas diferentes que son parte de diferentes
aplicaciones.
De esta manera, el comportamiento de un proceso individual puede
caracterizarse por el listado de La secuencia de instrucciones que se
ejecutan para dicho proceso. Dicho listado se llama traza del proceso.
Considere el siguiente ejercicio en la Figura de muestra.

Ing. Tamariz Figueroa, Cesar -13-

PROCESO

Ejecución de
Procesos

Ing. Tamariz Figueroa, Cesar -14-

PROCESO

Trazas de los
Procesos

Ing. Tamariz Figueroa, Cesar -15-

5
PROCESO

Trazas Combinada de
los Procesos

Ing. Tamariz Figueroa, Cesar -16-

PROCESOS

3.4.1. RAZONES PARA LA CREACION DE PROCESOS


Nuevo Trabajo por Lotes. El sistema operativo esta provisto de un flujo de
control de trabajos por lotes, generalmente para cintas y discos. Cuando
el sistema operativo se prepara para tomar un nuevo trabajo, leerá a
próxima secuencia de Ordenes de control de trabajos.
Conexión interactiva. Un usuario entra en el sistema desde un Terminal.
Creado por el SO para dar un servicio. El sistema operativo puede crear
un proceso para llevar a cabo una función de parte de un programa
usuario, sin que el usuario tenga que esperar (por ejemplo, imprimir).
Generado por un proceso existente. Con afán de modularidad o para
aprovechar el parale- ismo, un programa de usuario puede ordenar la
creación de una serie de procesos.

Ing. Tamariz Figueroa, Cesar -17-

Proceso

3.4.2. UN MODELO DE 5 ESTADOS


A medida que un proceso se va a ejecutando, cambia de estado. El
estado de un proceso esta definido en parte por la actividad actual de
ese proceso. Cada proceso puede estar en cualquiera de estos estados:
Nuevo (New): Proceso que se acaba de crear, pero que aún no ha sido
admitido por el sistema operativo en el grupo de procesos ejecutables.
En ejecución (Running): El proceso que está actualmente en ejecución.
Bloqueados: Proceso que no puede ejecutar hasta que se produzca
cierto suceso, como la terminación de una operación de E/S o la
recepción de una señal).
Listo (Ready): Proceso que está preparado para ejecutar, en cuanto se
le dé la oportunidad.
Terminado (Terminated): Un proceso que ha sido excluido por el S.O. del
grupo de procesos ejecutables, o que finalizo su ciclo.

Ing. Tamariz Figueroa, Cesar -18-

6
PROCESOS

Ing. Tamariz Figueroa, Cesar -19-

PROCESO

Estado de los Procesos para la Traza del Ejemplo Anterior

Ing. Tamariz Figueroa, Cesar -20-

PROCESO

Modelo de Colas

Ing. Tamariz Figueroa, Cesar -21-

7
PROCESO

Modelo de Colas
Ing. Tamariz Figueroa, Cesar -22-

PROCESO
3.5. DESCRIPCION DEL PROCESO
El S.O. es el controlador de los sucesos que se producen en un sistema
informático. Es el que planifica y expide a los procesos para su ejecución
en el procesador, el que asigna los recursos a los procesos y el que
responde a las solicitudes de servicios básicos realizadas por los
programas de usuario.
Esencialmente, se puede imaginar al S.O. como una entidad que
administra el uso que hacen los procesos de los recursos del sistema.

Ing. Tamariz Figueroa, Cesar -23-

PROCESO
3.5.1. ESTRUCTURAS DE CONTROL DE UN S.O.
Si el S.O. va a administrar los procesos y los recursos, entonces tiene que
disponer de información sobre el estado actual de cada proceso y de
cada recurso. El método universal para obtener esta información es
sencillo: El sistema operativo construye y mantiene tablas de información
sobre cada entidad que esté administrando.
Tablas de Memoria: se utilizan para seguir la pista de la memoria principal
(real) y secundaria (virtual).
Tablas de Dispositivos: son utilizadas por el sistema operativo para
administrar los dispositivos y los canales de E/S del sistema informático.
Tablas de Archivos: las cuales ofrecen información sobre la existencia de
los archivos, su posición en la memoria secundaria, su estado actual y
otros atributos.
Tablas de Procesos: debe mantener las tablas de procesos para su
administración por el Sistema informático.

Ing. Tamariz Figueroa, Cesar -24-

8
PROCESO

ESTRUCTURA GENERAL DE LAS TABLAS DE CONTROL DEL S.O.

Ing. Tamariz Figueroa, Cesar -25-

PROCESO

3.6. PROCESOS e HILOS.


Recordemos que un proceso se define
por los recursos que usa y por el lugar
donde se ejecuta. Sin embargo, hay
muchos casos en los en los que sería
útil compartir los recursos y acceder a
ellos de manera concurrente.
Esta situación es similar al caso en que
se hace una llamada al sistema
conocido como: Bifurcar (Fork) con un
nuevo contador de programa, o hilo de
control, ejecutándose dentro del mismo
espacio de direcciones.
Esta concepto es tan útil que varios S.O.
nuevos incluyen un mecanismo para
apoyarlo mediante Hilos.
Ing. Tamariz Figueroa, Cesar -26-

PROCESO

3.6.1. ESTRUCTURA DE LOS HILOS.


Un hilo, también llamado proceso ligero (LWP-lightweight process), es una
unidad básica de utilización de la CPU, y consiste en un contador de
programa, un juego de registros y un espacio de pila. El hilo comparte
con sus hilos pares la sección de código, sección de datos y recursos del
S.O. como archivos abiertos y señales, lo que se denomina
colectivamente un tarea.
Un proceso tradicional es igual a una tarea con un solo hilo. El extenso
compartir hace que la conmutación de la CPU entre hilos pares, y la
creación de hilos, sea económica en comparación con las
conmutaciones de contexto entre procesos. Aunque una conmutación de
procesos de hilos también requiere un cambio conjunto de registros, no
hay que realizar operaciones relacionadas con la gestión de la memoria.

Ing. Tamariz Figueroa, Cesar -27-

9
PROCESO

Múltiples Hilos dentro de


una Tarea

Ing. Tamariz Figueroa, Cesar -28-

PROCESO

EJEMPLO: SOLARIS 2

Hilo en el nivel de
Usuario
Proceso Ligero

Ing. Tamariz Figueroa, Cesar -29-

PROCESO

3.7. COMUNICACIÓN ENTRE PROCESOS


Este esquema requiere que los procesos
compartan una reserva de Buffers común, y
que el programador de la aplicación
escriba explícitamente el código para
implementar el buffer. Otra manera de lograr
el mismo efecto es que el S.O. proporcione
los medios para que los procesos se
comuniquen unos con otros por medio de un
mecanismo de Comunicación entre
Procesos (IPC – Interprocess comunication).
La IPC ofrece un mecanismo que permita a
los procesos comunicarse y sincronizar sus
acciones. La mejor forma de proveer la
comunicación entre procesos es mediante
un Sistema de Mensajes

Ing. Tamariz Figueroa, Cesar -30-

10
PROCESO

3.7.1. ESTRUCTURA BASICA.


La función de un Sistema de Mensajes es permitir a los procesos
comunicarse entre sí sin tener que recurrir a variables compartidas. Un
recurso IPC ofrece por lo menos 2 operaciones: enviar [mensaje] (send) y
recibir [mensaje] (receive)
Por ejemplo: Si los procesos P y Q quieren comunicarse, deberán enviarse
mensajes; para ello, debe de existir un enlace de comunicación entre
ellos.
¿Cómo se establecen los enlaces? ¿Un enlace puede estar asociado ?
¿Cuántos enlaces puede haber entre cada par de procesos? ¿Que
tamaño tienen los mensajes?¿El mensaje puede dar cabido a mensajes
de tamaño fijo o variable?¿El enlace es Unidireccional o bidireccional?

Ing. Tamariz Figueroa, Cesar -31-

PROCESO

3.7.2. USO DE BUFFERS


Un enlace tiene cierta capacidad que determina el número de mensajes
que puedan residir en él temporalmente. Esta propiedad se puede
visualizar como una cola de mensajes unida al enlace. Básicamente hay
3 formas de generar una cola de semejante:
Capacidad Cero: la cola tiene como longitud máxima 0, el enlace no
puede tener mensajes esperando en él. En este caso el emisor deberá
esperar hasta que el destinatario reciba el mensaje. Los 2 procesos deben
sincronizarse para que pueda haber una transferencia de mensajes. Esta
sincronización se denomina encuentro (rendezvous).
Capacidad Limitada: la cola tiene una longitud finita “n”; es decir,
cuando mas “n” mensajes pueda residir en ella.
Capacidad Ilimitada: la cola tiene una longitud potencialmente infinita;
en ella se puede esperar cualquier cantidad de mensajes. El emisor
nunca espera
Ing. Tamariz Figueroa, Cesar -32-

11

Potrebbero piacerti anche