Está en la página 1de 13

Procesos

Captulo 4 Silberschatz Galvin

Procesos

Sistemas Operativos

Procesos
Concepto de proceso Planificacin de los procesos Operaciones en procesos Procesos cooperantes Comunicacin entre procesos

Procesos

Sistemas Operativos

Concepto de proceso
Un sistema operativo ejecuta una variedad de programas:
Sistemas por lotes trabajos Sistemas de tiempo compartido programas de usuario o tareas

Los trminos usados trabajo y proceso se refieren a lo mismo

Procesos

Sistemas Operativos

Concepto de proceso
Proceso un programa en memoria (virtual), puede estar en ejecucin, o listo para ejecutarse Un proceso incluye:
Contador de programa Stack Seccin de datos

Procesos

Sistemas Operativos

Estados de un proceso
Mientras un proceso se ejecuta, cambia su estado
Nuevo
El proceso se est creando

Ejecucin
Las instrucciones del proceso se estn ejecutando

Bloqueado
El proceso est esperando a que ocurra un evento

Listo
El proceso est esperando a que se le de el CPU

Terminado
El proceso termin su ejecucin
Procesos Sistemas Operativos 5

Diagrama de estados de un proceso

Pasar a ejecucin Nuevo Admitir Listo Fin de plazo (time-out) E/S o Evento ocurre E/S o Espera evento Ejecucin

Liberar Salida

Bloqueado
Procesos Sistemas Operativos 6

Process Control Block (PCB)


Informacin asociada con cada proceso.
Estado de proceso Contador del programa Registros del CPU Informacin de planificacin del CPU Informacin del manejo de la memoria Informacin contable Informacin del estatus de E/S

Procesos

Sistemas Operativos

PCB (Process Control Block)


Apuntador Estado del proceso

Nmero de proceso Contador del programa PC Registros

Lmites de memoria Lista de archivos abiertos . . .


Procesos Sistemas Operativos 8

Cambio de CPU entre un proceso y otro proceso Proceso P Proceso P Sistema Operativo
0 1

Interrupcin o llamada al sistema

Guarda el estado en el PCB0

Espera
Recupera el estado del PCB1

Espera

Interrupcin o llamada al sistema Guarda el estado en el PCB1

Espera
Recupera el estado del PCB0

Procesos

Sistemas Operativos

Colas de procesos
Cola de procesos conjunto de todos los procesos en el sistema. Cola de listos conjunto de todos los procesos que residen en memoria principal Colas de dispositivos Conjunto de procesos que esperan un dispositivo de E/S Los procesos migran entre las diferentes colas

Procesos

Sistemas Operativos

10

Cola de listos y Varias colas de E/S


Cola de listos PCB7 PCB2 Registros Cabeza Cola Unidad de cinta 0 Unidad de cinta 1 Unidad de disco 0 Cabeza Cola Registros

Cabeza Cola Cabeza Cola PCB6 Cabeza Cola Registros


Sistemas Operativos 11

PCB3 Registros

PCB14 Registros

PCB6 Registros

Unidad terminal 0
Procesos

Representacin de la planificacin de procesos


Procesos Cola de listos Cola de listos CPU CPU

E/S E/S Evento

Cola de E/S Cola de E/S

Solicitudes E/S Solicitudes E/S Termina Termina rebanadade rebanada de tiempo tiempo

Recurso Se Se ejecuta ejecuta el hijo el hijo


Ocurre Ocurre interrupcin interrupcin

Crea un hijo Crea un hijo

Espera una Espera una interrupcin interrupcin


12

Procesos

Sistemas Operativos

Planificadores
Planificador a largo plazo
Planificador de tareas Selecciona que procesos se llevan a la cola de listos

Planificador a corto plazo


Planificador del CPU Selecciona que proceso debe ser el prximo en ejecutarse y otorgrsele el CPU

Procesos

Sistemas Operativos

13

Adicin de Planificacin a Mediano Plazo


Intercambio disco a memoria
Procesos en memoria secundaria Procesos en memoria secundaria parcialmente ejecutados parcialmente ejecutados

Intercambio memoria a disco

Cola de listos Cola de listos

CPU CPU

Fin

E/S E/S

Colas de espera Colas de espera de E/S de E/S

Procesos

Sistemas Operativos

14

Planificadores
El planificador a corto plazo se invoca con mucha frecuencia
Milisegundos Debe ser rpido

El planificador a largo plazo se invoca con poca frecuencia


Segundos o minutos Puede ser lento

El planificador a largo plazo controla el grado de multiprogramacin


Procesos Sistemas Operativos 15

Planificadores
Los procesos pueden describirse de las siguientes formas
E/S gastan mucho de su tiempo ejecutando E/S en vez de clculos, muchos perodos cortos de uso del CPU CPU gastan mucho tiempo haciendo cmputo (uso del CPU), muy pocos perodos largos de uso de CPU

Procesos

Sistemas Operativos

16

Cambio de contextos
Cuando el CPU cambia a otro proceso, el sistema debe:
Guardar el estado del proceso antiguo Cargar el contexto almacenado del proceso nuevo

El cambio de contexto es sobrecarga


El sistema no hace trabajo til mientras se hace el cambio

El tiempo depende del soporte del hardware

Procesos

Sistemas Operativos

17

Ejemplo
PROGRAMA 1 100: MOV A, 0 CICLO: 102: ADD A, 1 104: CMP A, 10 106: JNE CICLO
1F8 1FA

A:1 PSW PC:104 Stack: 200

1FC 1FE

PROGRAMA 2 300: MOV A,10 CICLO: 302: SUB A,1 304: CMP A,0 306: JNE CICLO

3F8

A:0 PSW PC:300 Stack: 400

3FA 3FC 3FE

INTERRUPCION 500: PUSH A 502: MOV TABLA_PROC[ACTUAL].SP, SP 504: /* INTERRUPCION RELOJ */ 510: /* SELECIONA NUEVO PROCESO */ 520: MOV ACTUAL, NUEVO_PROCESO 522: MOV SP, TABLA_PROC[ACTUAL].SP 524: POP A 526: IRET Procesos Sistemas Operativos

CPU SP: 1FA SP: 3FA 3FC 1FC 400 200 PC: 100 306 304 302 526 524 522 520 510 504 502 102 300 500 A: 10 A: 1 9 0
18

Creacin de procesos
Los procesos padres crean procesos hijos
Estos pueden crear otros procesos y forman un rbol de procesos

Comparticin de recursos, puede ser de las siguientes formas:


El padre y el hijo comparten todos los recursos El hijo comparte un subconjunto de recursos del padre El padre y el hijo

Ejecucin, puede ser de las siguientes formas:


Padre e hijo se ejecutan concurrentemente El padre espera a que el hijo termine
Procesos Sistemas Operativos 19

Creacin de procesos
Espacio de direcciones
El hijo duplica el del padre El hijo tiene ah cargado un programa

Ejemplos en UNIX
La llamada fork crea un proceso nuevo La llamada execve usada despus del fork para reemplazar el espacio de memoria del proceso con un programa nuevo

Procesos

Sistemas Operativos

20

10

Un rbol de procesos en un sistema UNIX tpico


root
pagedaemon

swapper

init

Usuario 1

Usuario 2

Usuario 3

Procesos

Sistemas Operativos

21

Terminacin de procesos
El proceso ejecuta la ltima sentencia y le indica al sistema salir (exit)
Envo de datos del hijo al padre (va wait) Los recursos de los procesos son des-asignados por el sistema operativo

Procesos

Sistemas Operativos

22

11

Terminacin de procesos
El padre debe terminar la ejecucin del proceso hijo (abort)
El hijo excedi los recursos asignados Ya no se requieren las tareas asignadas a los hijos El padre termina
El caso de que el sistema operativo no permite que el hijo contine si el padre termina Terminacin en cascada

Procesos

Sistemas Operativos

23

Procesos cooperantes
Procesos independientes
No pueden afectarse o ser afectados por la ejecucin de otro proceso

Procesos cooperantes
Pueden afectarse o ser afectados por la ejecucin de otros procesos

Ventajas de la cooperacin de procesos


Intercambio de informacin Velocidad de computacin Modularidad

Procesos

Sistemas Operativos

24

12

Ejemplo de procesos cooperantes: El problema del productor-consumidor


Paradigma de procesos cooperantes, el productor produce informacin que se consume por un consumidor

Procesos

Sistemas Operativos

25

Comunicacin entre procesos (IPC)


Mecanismos para comunicar procesos y sincronizar sus acciones
Seales Memoria compartida Semforos Sistema de mensajes

Procesos

Sistemas Operativos

26

13

También podría gustarte