Capitulo 4 grupo 2

28

description

Capitulo 4 - Grupo 2 Libro Silverschatz

Transcript of Capitulo 4 grupo 2

Page 1: Capitulo 4 grupo 2
Page 2: Capitulo 4 grupo 2

PROCESO

Puede considerarse como un programa

en ejecución

Necesita recursos para realizar su tarea, estos se

asignan al crearse el proceso o cuando se

está ejecutando.

Incluye la pila del

proceso, que

contiene datos

temporales y una

sección de datos

Es la unidad de trabajo en la

mayoría de los sistemas.

Un proceso puede generar muchos

procesos a medida que se ejecuta

Page 3: Capitulo 4 grupo 2

Sistema

Ocupación principal del SO:

ejecución de programas de

usuario

Consiste en una colección

de procesos

Procesos del SO ejecutando código del

sistema

Procesos de usuario

ejecutando código de usuario

Page 4: Capitulo 4 grupo 2

SO

(ayer)

SO

(hoy)

Page 5: Capitulo 4 grupo 2

Estados de un proceso

Nuevo El proceso se está creando

Ejecución Se están

ejecutando instrucciones

En espera Está esperando

que ocurra algún evento

Listo Está en espera

de ser asignado a un procesador

Terminado El proceso ha terminado su

ejecución

A medida que se ejecuta un proceso, cambia su estado, este se define en parte por la actividad actual de dicho proceso

Page 6: Capitulo 4 grupo 2

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.

Page 7: Capitulo 4 grupo 2

Cada proceso se

representa en el

SO mediante un

bloque de

control del

proceso (PCB),

llamado también

bloque de

control de tarea.

Información de planificación de la

CPU

Incluye prioridad del proceso,

apuntadores a colas de

planificación y otros

Información de administración de la

memoria

Puede incluir datos referentes al valor de

los registros base y límite, tablas de página

o de segmentos.

Información contable

Incluye la cantidad de tiempo de CPU

y tiempo real usado, límites de

tiempo, entre otros

Información de estado de E/S

Incluye la lista de dispositivos de E/S

asignados al proceso

Registros de la CPU

Varía dependiendo de la arquitectura del computador.

Incluyen acumuladores, apuntadores

Contador de programa

Indica la dirección de la siguiente instrucción a

ejecutar

Estado del proceso

Nuevo, listo, espera….

Page 8: Capitulo 4 grupo 2

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

Page 9: Capitulo 4 grupo 2

• Su objetivo es tener un proceso en ejecución en todo momento y así maximizar la utilización de la CPU

Multiprogramación

• Su objetivo es conmutar la CPU entre procesos tan frecuentemente que los usuarios puedan interactuar con cada programa que está en ejecución.

Tiempo compartido

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.

Page 10: Capitulo 4 grupo 2

Cola de trabajos

Aquí están todos los procesos en el sistema

Cola de procesos

Es una lista en la cual se encuentran los procesos que residen en la memoria principal listos y en espera de ejecutarse

Cola del dispositivo

Es la lista de procesos esperando por un dispositivo de E/S particular

Page 11: Capitulo 4 grupo 2

El planificador es un componente funcional muy importante de

los sistemas operativos.

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.

Multitarea y multiproceso.

Tiempo real (esencial).

Page 12: Capitulo 4 grupo 2

Seleccionar una buena mezcla de

procesos limitados por E/S y limitados

por CPU.

Así se obtiene un sistema con mejor

desempeño.

Los procesos pueden describirse como: Limitados por E/S o

Limitados por CPU

Limitados por E/S

Es el que consume mas de su tiempo haciendo operaciones de E/S que haciendo cálculos.

Limitados por CPU

Es el que genera solicitudes de E/S de manera poco frecuente.

Empleando mas tiempo en cálculos que un proceso limitado por E/S

IMPORTANTE

Page 13: Capitulo 4 grupo 2

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.

Incluye:

La información sobre

administración de la memoria.

El estado del

proceso.

El valor de los

registros de la CPU.

Page 14: Capitulo 4 grupo 2

PR

OC

ESO

Puede crear varios procesos nuevos a través de una

llamada para la creación de procesos.

Necesita recursos (tiempo de CPU, memoria, archivos,

dispositivos de E/S)

Puede ser padre y convertirse en hijo.

Page 15: Capitulo 4 grupo 2

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.

Page 16: Capitulo 4 grupo 2

Los procesos dentro de un sistema operativo pueden

ser independientes o cooperativos.

PROCESOS

INDEPENDIENTES

PROCESOS

COOPERATIVOS

Un proceso es

independiente si no puede

afectar o verse afectado

Un proceso es

cooperativo si puede

afectar o verse afectado

Existen varias razones para generar

un ambiente para la cooperación:

Compartir información

Aceleración de cálculos

Modularidad

Conveniencia

Page 17: Capitulo 4 grupo 2

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

Comunicación directa o indirecta

Comunicación simétrica o asimétrica

Uso automático o explícito de los buffers

Envió por copia o por referencia

Mensajes de tamaño fijo o variable

Page 18: Capitulo 4 grupo 2

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 DE NOMBRES Los procesos que desean comunicarse necesitan hacer referencia

entre ellos.

Para esto pueden usar una comunicación:

DIRECTA INDIRECTA

Page 19: Capitulo 4 grupo 2

En la comunicación Directa cada proceso que

quiere comunicarse debe nombrar al receptor o

emisor de la comunicación.

Simetría en el

Direccionamiento Asimetría en el

Direccionamiento

Esto presenta

El emisor como el receptor

nombra a otro para

comunicarse

Solo el emisor nombra al

receptor

Page 20: Capitulo 4 grupo 2

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.

Page 21: Capitulo 4 grupo 2

El paso de mensajes puede ser:

Con bloqueo (síncrono)

Sin bloqueo(asíncrono)

•El proceso emisor se bloquea hasta que el mensaje e

recibido por el proceso receptor

Envío con bloqueo

•El emisor envía el mensaje y continúa

su operación

Envío sin bloqueo •El receptor se

bloquea hasta que haya un mensaje

disponible

Recepción con bloqueo

•El receptor recupera un

mensaje válido o un valor nulo

Recepción sin bloqueo

Page 22: Capitulo 4 grupo 2

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.

Page 23: Capitulo 4 grupo 2

EJEMPLO DEL PRODUCTOR-CONSUMIDOR

Import java.util.*;

Public class ColaMensajes

{

Public ColaMensajes(){

cola=new Vector();

)

//Éste implementa un envío (send) sin bloqueo

Public void send(Object item){

Cola.agregaElemento(item);

}

//Éste implementa una recepción (receive) sin bloqueo

Public Object receive() {

Object item;

If(cola.tamaño()==0)

return null;

Else

{

item=cola.primerElemento();

cola.removerElementoEn(0);

return item;

}

}

Private Vector cola;

}

Solución al problema: Empleo

de paso de mensajes.

El productor y el consumidor se comunicarán indirectamente empleando el buzón compartido. El buffer se implementa usando la clase java.util.vector, lo que significa que habrá un buffer con apacidad ilimitada. Cuando el productor genera un elemento, coloca ese elmento en el buzón vía el método send().

Page 24: Capitulo 4 grupo 2

ColaMensajes Buzón;

While (true){

Date mensaje= (Date) buzon.receive();

if (mensaje !=null)

//consumir el mensaje

Proceso productor

Proceso consumidor

ColaMensajes Buzón;

While (true){

Date mensaje= new Date();

Buzon.send(mensaje);

}

Page 25: Capitulo 4 grupo 2

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

Page 26: Capitulo 4 grupo 2

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.

Page 27: Capitulo 4 grupo 2

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.

Page 28: Capitulo 4 grupo 2

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)