Académique Documents
Professionnel Documents
Culture Documents
3 Procesos
Prof. Oscar Encina C.
Nota
El texto gua es: Operating System Concepts, Eight Edition, Avi Silberschatz, Peter Baer Galvin, Greg Gagne Estas PPT estn basadas en las PPT originales que el autor del texto gua mantiene en: http://www.os-book.com/
Copyright Note
The slides below are copyright Silberschatz, Galvin and Gagne, 2008. The slides are authorized for personal use, and for use in conjunction with a course for which Operating System Concepts is the prescribed text. Instructors are free to modify the slides to their taste, as long as the modied slides acknowledge the source and the fact that they have been modied. Paper copies of the slides may be sold strictly at the price of reproduction, to students of courses where the book is the prescribed text. Any use that differs from the above, and any for prot sale of the slides (in any form) requires the consent of the copyright owners; contact Avi Silberschatz (avi@cs.yale.edu) to obtain the copyright owners consent.
Temario
1. El concepto de proceso 2. Itineracin de procesos 3. Operaciones sobre procesos 4. Comunicacin Inter proceso (IPC) 5. Ejemplos de IPC
Objetivos
Introducir el concepto de proceso como
un programa en ejecucin. Esta unidad forma la base de cualquier computacin. como itineracin, creacin, trmino y comunicacin.
1 El Concepto de Proceso
Un SO ejecuta en general, dos tipos de
programas:
Los SO Batch ejecutan los llamados jobs Los SO de Tiempo-Compartido ejecutan programas de usuario o tareas (task)
... Procesos
Un proceso es un programa en ejecucin.
La ejecucin de un proceso es secuencial. recursos:
Un proceso en memoria
Estados de Proceso
En la medida que un proceso se ejecuta, va
cambiando de estado. Estos estados son:
new: el proceso es creado running: las instrucciones estn siendo ejecutadas waiting: el proceso espera que ocurra algn evento ready: el proceso espera que se le asigne un procesador terminated: el proceso termin su ejecucin.
2 Itineracin de procesos
Cola de jobs: Conjunto de todos los procesos del sistema Cola Ready: Conjunto deytodos los procesos que estn en memoria principal listos esperando ser ejecutados. Cola de dispositivos: Procesos que esperan por I/O. Los procesos se mueven entre estas colas en su ciclo de vida
Itineradores (Schedulers)
Existen dos tipos de itineradores:
De largo plazo (job scheduler): selecciona cual proceso se debe llevar a la cola ready. En algunos SO, este scheduler no existe o es mnimo (UNIX y MS/W) De corto plazo (CPU Scheduler): selecciona el proceso a ejecutar a continuacin y asigna CPU.
Tipos de procesos
Los procesos se pueden clasicar en dos
tipos:
Limitados por I/O: pasan ms tiempo haciendo I/ O que computaciones. Muchas rfagas cortas de CPU Limitados por CPU: pasan ms tiempo haciendo computaciones. Pocas rfagas largas de CPU.
Context Switch
Cuando la CPU conmuta a otro proceso, el
sistema debe salvar el estado del antiguo proceso y cargar el estado salvado del nuevo proceso. Esta accin se denomina Context Switch (Conmutacin de contexto). representado en la PCB
Creacin de Procesos
Un proceso padre puede crear procesos
hijos, los cuales a su vez pueden crear otro procesos creando de esta manera un rbol de procesos. denomina pid. El pid permite realizar diversas operaciones sobre procesos.
Padres e hijos comparten todos sus recursos. Los hijos comparten un subconjunto de los recursos del padre. Padres e hijos no comparten recursos
Ejecucin de procesos
Hay dos alternativas para la ejecucin: Hay dos alternativas para el espacio
direccionable:
Los padres e hijos se ejecutan concurrentemente El padre espera hasta que el hijo termine.
Ejemplo UNIX
En UNIX:
la llamada al sistema fork crea un nuevo proceso.
La llamada exec se sa despus del fork para reemplazar el espacio de memoria con un nuevo programa
Ejemplo en C
Terminacin de procesos
Un proceso ejecuta su ltima sentencia y
pide al sistema operativo que lo elimine (exit). (wait)
El hijo entrega datos de salida al padre Los recursos del proceso son liberados
por el sistema operativo.
El hijo ha excedido sus recursos asignados La tarea asignada al hijo ya no es necesaria Si el padre termina, algunos SO no permiten que los hijos continen vivos: En este caso se genera un trmino en cascada
... IPC
Hay varias razones para que procesos
cooperen:
Compartir informacin Si el computador tiene ms de un procesador se logra Speedup Modularidad Conveniencia: el usuario puede hacer varias cosas al mismo tiempo
... IPC
Los procesos que cooperan necesitan IPC Hay dos modelos de IPC:
Memoria compartida Paso de mensajes
Modelos de Comunicacin
Permite mxima velocidad y conveniencia en la comunicacin. Se requieren llamadas al sistema slo para establecer las regiones compartidas de memoria.
Procesos Cooperativos
Los procesos independientes no
ser afectados por otros procesos. pueden afectar o ser afectados por otros procesos.
out
return item;
Preguntas interesantes
Cmo se establecen los enlaces de comunicacin? Puede asociarse un enlace con ms de dos procesos? Cuntos enlaces pueden existir entre cada par de procesos que se comunican? Cul es la capacidad de un enlace? El enlace soporta mensajes de tamao jos o variables?
Comunicacin directa o indirecta Comunicacin sincrnica o asincrnica Uso de buffers automticos o explcitos
Comunicacin Directa
Los procesos deben nombrarse
explcitamente:
Comunicacin Indirecta
ggg Los mensajes son dirigidos y recibidos por mailboxes (tambin llamados puertos)
cada mailbox tiene un id nico Procesos pueden comunicarse, slo si comparten un mailbox.
Operaciones:
Operaciones primitivas:
send(A, msg): enva mensaje al mailbox A receive(A, msg): recibe mensaje desde mailbox A.
Sincronizacin
El sistema de comunicacin por mensajes
puede ser bloqueante o no bloqueante. sincrnico.
... Sincronizacin
Un sistema no bloqueante se considera
asincrnico.
en el send no bloqueante el proceso enva y continua. en el receive no bloqueante del receptor recibe un mensaje vlido o nulo.
Buffers
Las colas de mensajes asociadas a un enlace se pueden implementar en uno de los siguientes modos:
1. Capacidad cero: El proceso que enva debe esperar al receptor (rendezvous) 2. Capacidad acotada: Capacidad para n mensajes. El proceso que enva debe esperar si el enlace est lleno. 3. Capacidad sin lmite: El tamao es innito. El proceso que enva nunca espera
Subrutina
main
A call A return
Co-Rutina
A B
resume B resume A
resume B call A
resume A
... Co-Rutinas
El mecanismo rendezvous es adecuado para
la implementacin de co-rutinas Resume(id) { send(id, --); receive(id, --); }
Los procesos que deban accesar el segmento compartido deben estar asociados a l:
shared_memory = (char *) shmat(id, NULL, 0);
Mach est en el kernel de Mac OS X. Su mecanismo de comunicacin est basado en mensajes:
incluso las llamadas al sistema son mensajes Cada tarea, en el momento de su creacin obtiene dos mailboxes: Kernel y Notify Slo tres llamadas al sistema se necesitan:
msg_send(), msg_receive(), msg_rpc()
Comunicacin va Pipes
Los Pipes fueron el primer mecanismo de
comunicacin de los primeros sistemas UNIX.
... Pipes
Normalmente pipes permiten la
comunicacin de dos procesos en la forma productor - consumidor estndar:
El productor escribe en un extremo del pipe y el consumidor lee desde el otro extremo. Pipes corrientes son unidireccionales
fd[0] para leer el pipe fd[1] para escribir en el pipe Se utilizan las llamadas al sistema read() y write()
child
pipe
fd(1)
Ejemplo
Sistemas Operativos
3 Procesos
Prof. Oscar Encina C.