2. Puede considerarse
como un programa
en ejecución
Necesita recursos
Es la unidad de
para realizar su
trabajo en la
tarea, estos se
mayoría de los
asignan al crearse el
sistemas.
proceso o cuando se
está ejecutando.
PROCESO
Incluye la pila del
proceso, que Un proceso puede
contiene datos generar muchos
procesos a medida
temporales y una
que se ejecuta
sección de datos
3. Ocupación
principal del SO:
Sistema ejecución de
programas de
usuario
Consiste en
una colección
de procesos
Procesos del SO Procesos de
ejecutando usuario
código del ejecutando
sistema código de usuario
5. A medida que se ejecuta
un proceso, cambia su
estado, este se define en
parte por la actividad El proceso se
Nuevo
está creando
actual de dicho proceso
Se están
Ejecución ejecutando
instrucciones
Estados de un Está esperando
proceso En espera que ocurra
algún evento
Está en espera
Listo de ser asignado
a un procesador
El proceso ha
Terminado terminado su
ejecución
6. Nombres de los procesos varían entre los SO, mas sin embargo, los
estados que representan están en todos los sistemas.
Sólo un proceso puede estar ejecutándose en un procesador en algún
momento.
Muchos procesos pueden estar listos y en espera.
7. Cada proceso se
Información de representa en el
planificación de la
Estado del CPU SO mediante un
proceso Incluye prioridad del bloque de
Nuevo, listo, proceso, control del
espera…. apuntadores a
colas de proceso (PCB),
planificación y otros llamado también
bloque de
Contador de Información de control de tarea.
administración de la
programa memoria
Indica la dirección Puede incluir datos
de la siguiente referentes al valor de
instrucción a los registros base y
límite, tablas de página
ejecutar o de segmentos.
Registros de la CPU Información
Varía dependiendo contable
de la arquitectura Incluye la cantidad
del computador. de tiempo de CPU
Incluyen y tiempo real
acumuladores, usado, límites de
apuntadores tiempo, entre otros
Información de
estado de E/S
Incluye la lista de
dispositivos de E/S
asignados al
proceso
8. Un proceso es un programa que sigue
un solo hilo (thread) de ejecución.
Un único hilo de control sólo permite
que el proceso realice una tarea a la
vez (procesador de palabras).
Muchos SO han extendido el concepto
de proceso para permitir que éste tenga
varios hilos de ejecución y a la vez pueda
realizar más de una tarea a la vez
9. • Su objetivo es tener un
proceso en ejecución en
todo momento y así
Multiprogramación maximizar la utilización de la
CPU
• Su objetivo es conmutar la
CPU entre procesos tan
Tiempo frecuentemente que los
usuarios puedan interactuar
compartido con cada programa que
está en ejecución.
En un sistema con un solo microprocesador, nunca hay más de un proceso en
ejecución.
En caso de existir más proceso deberán esperar hasta que la CPU esté libre y
puedan volver a planificarse.
10. Aquí están todos
Cola de
los procesos en el
trabajos sistema
Es una lista en la
cual se encuentran
los procesos que Cola de
residen en la memoria procesos
principal listos y en
espera de ejecutarse
Es la lista de
Cola del procesos esperando
dispositivo por un dispositivo de
E/S particular
11. El planificador es un componente funcional muy importante de
los sistemas operativos.
Multitarea y multiproceso.
Tiempo real (esencial).
El planificador a corto plazo: selecciona
procesos y los carga en la memoria para su
ejecución.
El planificador a largo plazo: selecciona de
entre los procesos que están listos para su
ejecución, y asigna la CPU a uno de ellos.
12. Los procesos pueden describirse como: Limitados por E/S o
Limitados por CPU
Limitados por Limitados por
E/S CPU
Es el que consume
mas de su tiempo Es el que genera
haciendo solicitudes de E/S
operaciones de E/S de manera poco
que haciendo frecuente.
cálculos.
IMPORTANTE
Empleando mas
Seleccionar una buena mezcla de tiempo en cálculos
procesos limitados por E/S y limitados que un proceso
limitado por E/S
por CPU.
Así se obtiene un sistema con mejor
desempeño.
13. La conmutación de contexto es la tarea de conservar el
estado de un proceso anterior y cargar el estado de guardado
del nuevo proceso.
El contexto de un proceso
se representa en su PCB. El valor de
los
registros
Incluye: de la CPU.
El estado
del
proceso.
La información
sobre
administración
de la memoria.
14. Puede crear varios procesos
nuevos a través de una
llamada para la creación de
PROCESO
procesos.
Necesita recursos (tiempo de
CPU, memoria, archivos,
dispositivos de E/S)
Puede ser padre y convertirse
en hijo.
15. Un proceso concluye cuando termina de ejecutar su declaración
final y le pide al sistema que lo borre (exit).
CIRCUNSTANCIAS ADICIONALES POR LAS QUE SE PUEDE TERMINAR UN PROCESO
Un proceso puede terminar la ejecución de otro
proceso por medio de una llamada apropiada al
sistema (abort).
El hijo se ha excedido en el uso de algunos de los
recursos que tiene asignados.
Ya no se requiere la tarea asignada al hijo.
El padre está saliendo, y el sistema no permite que un
hijo continúe si su padre termina.
16. Los procesos dentro de un sistema operativo pueden
ser independientes o cooperativos.
PROCESOS PROCESOS
INDEPENDIENTES COOPERATIVOS
Un proceso es Un proceso es Compartir
información
independiente si no puede cooperativo si puede
afectar o verse afectado afectar o verse afectado
Aceleración de
cálculos
Existen varias razones para generar Modularidad
un ambiente para la cooperación:
Conveniencia
17. Cuando dos procesos desean comunicarse requieren enviar y recibir
mensajes, para ello debe existir un enlace de comunicación, existen varias
formas de implementar enlaces:
• Implementación física
• Implementación lógica
Algunos métodos para la implementación lógicamente de un enlace ya las
operaciones send-receive
Mensajes de
Envió por tamaño fijo o
copia o por variable
Uso referencia
automático o
Comunicació
explícito de
n simétrica o
Comunicación los buffers
asimétrica
directa o
indirecta
18. Su función es permitir que los procesos se comuniquen entre ellos, sin
necesidad de recurrir a datos compartidos.
El tamaño de los mensajes enviados por un proceso puede ser fijo o
variable.
ASIGNACIÓN comunicarse necesitan hacer referencia
Los procesos que desean
DE NOMBRES
entre ellos.
Para esto pueden usar una comunicación:
DIRECTA INDIRECTA
19. En la comunicación Directa cada proceso que
quiere comunicarse debe nombrar al receptor o
emisor de la comunicación.
Esto presenta
Simetría en el Asimetría en el
Direccionamiento Direccionamiento
El emisor como el receptor Solo el emisor nombra al
nombra a otro para receptor
comunicarse
20. En la comunicación indirecta los mensajes se
envían y reciben de buzones o puertos.
Cada buzón tiene una identificación única
Puede ser propiedad de un proceso o del sistema operativo
Cuando un proceso propietario de un buzón termina, el buzón
desaparece.
21. El paso de mensajes puede ser:
Con bloqueo Sin
(síncrono) bloqueo(asíncrono)
Envío sin Recepción
•El proceso emisor bloqueo •El receptor se sin bloqueo
se bloquea hasta bloquea hasta que
que el mensaje e •El emisor envía el haya un mensaje •El receptor
recibido por el mensaje y continúa disponible recupera un
proceso receptor su operación mensaje válido o
un valor nulo
Envío con Recepción
bloqueo con bloqueo
22. Los mensajes intercambiados por los procesos
comunicados residen en una cola temporal. Existen tres
formas para implementarlas:
Capacidad cero: el enlace puede tener
mensajes esperando en él.
Capacidad limitada: n mensajes pueden
residir en ella.
Capacidad ilimitada: Cualquier número de
mensajes puede esperar en ella.
23. Solución al problema: Empleo
de paso de mensajes.
EJEMPLO DEL PRODUCTOR-CONSUMIDOR
Import java.util.*;
Public class ColaMensajes
{
Public ColaMensajes(){ El productor y el consumidor
cola=new Vector();
se comunicarán
)
//Éste implementa un envío (send) sin bloqueo
indirectamente empleando
Public void send(Object item){ el buzón compartido.
Cola.agregaElemento(item);
} El buffer se implementa
//Éste implementa una recepción (receive) sin bloqueo
usando la clase
Public Object receive() {
Object item; java.util.vector, lo que
significa que habrá un buffer
If(cola.tamaño()==0) con apacidad ilimitada.
return null; Cuando el productor
Else
{
genera un elemento, coloca
item=cola.primerElemento(); ese elmento en el buzón vía
cola.removerElementoEn(0); el método send().
return item;
}
}
Private Vector cola;
}
24. Proceso productor
ColaMensajes Buzón;
While (true){
Date mensaje= new Date();
Buzon.send(mensaje);
}
Proceso consumidor
ColaMensajes Buzón;
While (true){
Date mensaje= (Date) buzon.receive();
if (mensaje !=null)
//consumir el mensaje
25. EJEMPLO :MATCH (Sistema operativo
basado en mensajes)
La mayoría de las comunicaciones se
realizan mediante mensajes, éstos se
envían y reciben desde los llamados
puertos.
Cuando se crea cada tarea, también se
crean: el buzón kernel y el notify.
Se necesitan tres llamadas al sistema para
la transferencia: msg_send, msg_receive.
Las llamadas remotas a procedimientos a
través de msg_rpc
La llamada al sistema port_allocate crea
un nuevo buzón y asigna espacio para su
cola de mensajes.(8)
FIFO
26. Si el buzón está lleno, el hilo emisor debe:
Esperar hasta que haya espacio
Esperar a lo sumo n milisegundos
No esperar, sino regresar de inmediato
Poner temporalmente el mensaje en una caché. (tareas de
servidor
El sistema Mach intenta evitar
operaciones de copiado doble
utilizando técnicas de administración
de memoria virtual.
27. EJEMPLO: WINDOWS NT
Emplea modularidad.
Proporciona soporte para múltiples
ambientes de operación o
subsistemas.
Servidor de paso de mensajes:
servidor local de llamada a
procedimientos.
NT emplea dos tipos de puertos: de conexión(proporciona a las aplicaciones
una forma para preparar un canal de comunicación) y de comunicación.
La comunicación funciona así:
o El cliente abre un manejador al objeto puerto de conexión del subsistema
o El cliente envía una solicitud de conexión.
o El servidor crea dos puertos de comunicación privaos, y devuelve el manejador
de uno de ellos al cliente.
o El cliente y el servidor emplean el manejador del puerto correspondiente para
enviar mensajes o contestar.
28. NT emplea tres tipos de técnicas de paso de mensajes:
1. Usa la cola de mensajes
2. Pasa el mensaje a través de un objeto de sección(memoria
compartida).
3. Si el servidor decide que las respuestas serán largas, crea un
objeto de sección.
Desventajas
El rendimiento no es tan bueno
Para aumentar el rendimiento, emplea un tercer
método de paso de mensajes. (LCP rápido)