Sunteți pe pagina 1din 25

SISTEMAS OPERATIVOS

Procesos

ING. CIP. Jess Torres Chirito


jetchirito@hotmail.com

CONCEPTOS
Concepto

de proceso

Estructuras
Niveles

de planificacin

Creacin
Hilos

de datos: BCP y colas de procesos

y finalizacin de procesos

CONCEPTO DE UN PROCESO
Un
Un

proceso es un programa en ejecucin


proceso necesita recursos para poder ejecutarse:

memoria, dispositivos de E/S, la CPU, etc.


reas

tpicas de la memoria:

Cdigo

Datos (variables globales, memoria dinmica)

Pila (parmetros y variables locales de subrutinas)

ESTADO DE UN PROCESO

A medida que un proceso se ejecuta, cambia de estado:


nuevo: recin creado por el S.O.
en ejecucin: est en la CPU ejecutando instrucciones
bloqueado:

esperando a que ocurra algn evento (ej. una

operacin de E/S)
preparado: esperando a que le asignen un procesador
terminado: no ejecutar ms instrucciones y el S.O. le retirar los

recursos que consume

ESTADO DE UN PROCESO

BLOQUE DE CONTROL DE ESTADO


(BCP)

Para cada proceso, el S.O. debe guardar su estado y cualquier otra informacin
que debe mantenerse mientras no est en ejecucin.

Bloque de control de proceso:

estado actual (preparado, en espera...)

registros de la CPU (contador de programa, otros registros)

informacin del planificador (id, prioridad, etc.)

apuntadores a las zonas de memoria del proceso

info. de contabilidad (tiempo consumido, etc.)

info. de E/S (dispositivos por los que espera, lista de archivos abiertos, etc.)

PLANIFICACIN DE PROCESOS

Objetivo de la multiprogramacin:
Maximizar el aprovechamiento de la CPU

Objetivo del tiempo compartido


Conmutar

la CPU entre procesos con tal frecuencia que los

usuarios puedan interactuar con cada programa durante su


ejecucin

Sistemas con un solo procesador


Los procesos esperan por CPU y por dispositivos de E/S

COLA DE PLANIFICACIN

Conjunto de procesos esperando por la utilizacin de un determinado recurso

Generalmente se implementa mediante una lista encadenada, donde cada elemento


es una estructura de control que representa la peticin a servir

Su administracin se lleva a cabo de acuerdo con la poltica de planificacin


ejecutada por el planificador del recurso

COLAS DE PROCESOS

El S.O. organiza los BCP en colas de espera por el procesador o por


los dispositivos de E/S.(colas de planificacin: cola de procesos, colas
de dispositivos)

PROCESOS: UBICACIN EN
MEMORIA

NIVELES DE PLANIFICACIN
En

los sistemas por lotes, existe un planificador de largo plazo


(PLP) o de alto nivel, que suministra procesos a la cola de
preparados.

El

planificador de corto plazo o de bajo nivel es el que asigna y


desasigna la CPU.

El

PLP trata de conseguir una mezcla adecuada de trabajos


intensivos en CPU y en E/S. Se ejecuta con poca frecuencia.

Planificador

de medio plazo. Enva al disco procesos bloqueados,


para liberar memoria principal a los otros procesos =>Intercambio
(swapping).

NIVELES DE PLANIFICACIN

CAMBIO DE CONTEXTO

Es la operacin que consiste en desalojar a un proceso de la CPU y


reanudar otro.

Hay que guardar el estado del proceso que sale en su BCP, y recuperar los
registros del proceso que entra. Cada contexto se encuentra en cada BCP.

El cambio de contexto es tiempo perdido, as que debe ser lo ms rpido


posible.

Para minimizar ese tiempo perdido:

El hardware a veces tiene instrucciones para facilitar el cambio de


contexto (ej. PUSHA = guardar todos los registros)

Hilos (threads)

CAMBIO DE CONTEXTO

CREACIN DE PROCESOS
Un
El

proceso se crea mediante una llamada al sistema.

proceso creador se denomina padre, y el creado, hijo.

Variantes

en las relaciones padre/hijo:

Comparticin de recursos: todos, algunos, ninguno?


Espacio de memoria
Sincronizacin del padre: espera a que el hijo termine?
Terminacin

CREACIN DE PROCESOS

EJEMPLOS DE LLAMADAS AL
SISTEMA

Windows:
CreateProcess:

se indica el fichero ejecutable donde est el cdigo

del hijo

UNIX:
fork: crea un proceso hijo que es un duplicado del padre
exec:

sustituye el cdigo por un nuevo fichero ejecutable (no crea


un nuevo proceso)

TERMINACIN DE PROCESOS
Un

proceso termina cuando invoca a una llamada al


sistema especfica (ej. exit)

Tambin

si se genera una excepcin y el S.O. decide

abortarlo
En

UNIX, cuando un proceso termina, con l muere su


descendencia (genocidio)

Podra

existir una llamada al sistema para abortar otro


proceso

RELACIONES DE COMUNICACIN
ENTRE PROCESOS
Los

procesos pueden tener distintas relaciones de comunicacin


entre s:
independientes/competidores
cooperantes

Los

procesos independientes compiten por el uso de recursos


escasos (ej. CPU, E/S)

Los

procesos cooperantes colaboran entre s para llevar a cabo


un objetivo comn

HILOS
Un

hilo o proceso ligero es una unidad bsica de ejecucin, con


su propio:
contador de programa
registros de CPU
pila (stack)

Los

hilos dentro de una misma aplicacin comparten:

cdigo y datos
recursos del SO. (ficheros, E/S, etc.)
NOTA:

thread se pronuncia zred, NOzrid

PROCESOS PESADOS E HILOS


Dos

niveles de procesos:

procesos pesados
procesos ligeros o hilos
Un

proceso pesado contiene uno o varios hilos que comparten la


misma memoria y recursos.

Quin

implementa los hilos?

el sistema operativo
el programa de usuario

PROCESOS PESADOS E HILOS

Proceso
Pesado

PORQU LOS HILOS?


El

objetivo es facilitar la escritura de aplicaciones concurrentes


cooperativas:
Dado

que todos los hilos comparten los recursos, un proceso


pesado puede contener decenas de hilos sin mucho coste
adicional (slo los pequeos BCP de sus hilos)

La

comunicacin entre los hilos del proceso es ms sencilla


(usando la memoria que comparten)

El cambio de contexto entre hilos de un mismo

es menos costoso

proceso pesado

S-ar putea să vă placă și