Capitulo 4 grupo 1

28
QUINTO NIVEL “B”

Transcript of Capitulo 4 grupo 1

Page 1: Capitulo 4 grupo 1

QUINTO NIVEL

“B”

Page 2: Capitulo 4 grupo 1

Ser una unidad con alto prestigio académico, con eficiencia, transparencia y calidad en la educación, organizada en sus actividades, protagonista del

progreso Regional y Nacional.

Formar profesionales en el campo de la Ciencias Informáticas, que con honestidad, equidad y solidaridad, den respuesta a las necesidades de la

sociedad elevando su nivel de vida.

Page 3: Capitulo 4 grupo 1

PROCESOS

Los primeros sistemas de cómputo solo permitían

la ejecución de un programa a la vez y tenía el

control absoluto del sistema y el acceso a todos

sus recursos.

Actualmente permiten cargar

varios programas en la memoria y

ejecutarlos de manera

concurrente.

Un proceso es la

unidad de trabajo en

un sistema moderno

de tiempo compartido.

Page 4: Capitulo 4 grupo 1

PROCESOS

Un sistema consiste en una

colección de procesos.

Procesos del sistema operativo ejecutando código

del sistema.

Procesos de usuario ejecutando código de usuario

Todos estos procesos pueden ejecutarse de manera

concurrente, multiplexando el o los procesadores.

Page 5: Capitulo 4 grupo 1

PROCESOS

En un sistema de un solo usuario, el usuario es capaz

de ejecutar varios programas a la vez.

4.1 CONCEPTO DE PROCESO

Un sistema por lotes ejecuta trabajos

Un sistema de tiempo compartido tiene

programas de usuario o tareas.

Si el usuario ejecuta solo un programa a la vez, el

sistema operativo necesita dar soporte a sus propias

actividades internas programadas, como la

administración de la memoria.

Page 6: Capitulo 4 grupo 1

PROCESOS 4.1.1. EL PROCESO

Un proceso es un programa en ejecución.

4.1.2. ESTADO DE UN PROCESO

A medida que se ejecuta

un proceso, cambia su

estado.

El estado de un proceso

se define en parte por la

actividad actual de dicho

proceso.

Se encuentran en todos

los sistemas.

NUEVO

EJECUCIÓN

ESPERA LISTO

TERMINADO

Un proceso involucra a un programa en ejecución más información.

Page 7: Capitulo 4 grupo 1

PROCESOS

Cada proceso se representa en

el sistema operativo mediante

un bloque de control del

proceso, denominado bloque

de control de tarea.

4.1.3. BLOQUE DE CONTROL DEL PROCESO

Estado del proceso

Contador de programa

Registros de la CPU

Información de planificación de la CPU

Información de administración de la memoria

Información Contable

Información de estado de E/S El PCB sirve como depósito de

cualquier información que

pueda variar de un proceso a

otro.

Page 8: Capitulo 4 grupo 1

PROCESOS

Un proceso es un programa que sigue un solo hilo de

ejecución.

La mayoría de sistemas operativos modernos han extendido el

concepto de proceso para permitir que este tenga varios hilos

de ejecución. De esta forma , se permite que el proceso

realice mas de una tarea a la vez.

4.1.4. HILOS

4.2. PLANIFICACIÓN DE PROCESOS

El objetivo de la multiprogramación es tener un proceso en

ejecución en todo momento, para maximizar la utilización de la

CPU.

En un sistema con un solo microprocesador, nunca hay mas

de un proceso en ejecución. Si existen mas procesos el resto

debe esperar hasta que la CPU este libre y pueda volver a

planificarse.

Page 9: Capitulo 4 grupo 1

PROCESOS 4.2.1. COLAS DE PLANIFICACIÓN

• A medida que los procesos van entrando al sistema

• Se los coloca en una cola de trabajos

• Los procesos que residen en la memoria principal y listos

• Y en espera de ejecutarse

• Se mantienen en una lista

• Denominada la cola de procesos listos.

Page 10: Capitulo 4 grupo 1

PLANIFICADORES

Un proceso migra entre las diversas colas a lo largo de su existencia. El SO debe seleccionar en alguna forma los procesos de estas colas. Esta selección se la realiza mediante un planificador.

En un sistema por lotes, existen procesos que se pueden ejecutar de inmediato; estos procesos se colocan en reserva en un dispositivo de almacenamiento donde se mantienen para su posterior ejecución.

El planificador de largo plazo (planificador de trabajos) selecciona procesos de esta reserva y los carga en memoria para su ejecución.

El planificador de corto plazo (planificador de la CPU) selecciona de entre los procesos que están listos para su ejecución, y asigna la CPU a uno de ellos.

Page 11: Capitulo 4 grupo 1

PLANIFICADORES

Algunos SO como los sistemas de tiempo compartido, pueden introducir un nivel intermedio adicional de planificación.

El planificador de mediano plazo

tiene

Como idea clave la ventaja para remover procesos de la memoria y de esta manera reducir el grado de multiprogramación.

En algún momento posterior el proceso puede ser introducido nuevamente a la memoria y continuar su ejecución desde el punto donde se suspendió. Este esquema se denomina intercambio (swapping).

Este intercambio puede ser necesario para mejorar la mezcla de procesos., o debido a que un cambio en los requerimientos de memoria ha comprometido en exceso la memoria disponible y se requiere liberarla.

Page 12: Capitulo 4 grupo 1

CONMUTACIÓN DE CONTEXTO

La conmutación de la CPU a otro proceso requiere conservar el estado del proceso anterior y cargar el estado guardado del nuevo proceso. Esto es lo que llamamos conmutación de contexto.

El contexto de un

proceso se representa

En su PCB;

* el valor de los registros de la CPU,

* el estado del proceso y

* la información sobre administración de la memoria.

Cuando ocurre una

conmutación de contexto

El kernel guarda el contexto del proceso

anterior en su PCB y carga el del nuevo

proceso programado para ejecución.

Page 13: Capitulo 4 grupo 1

OPERACIONES SOBRE PROCESOS

Los procesos en el sistema pueden ser ejecutados de manera concurrente y deben ser creados y eliminarse de manera dinámica.

OPERACIONES SOBRE PROCESOS

Es por esto que el SO debe proporcionar un mecanismo para crear y terminar procesos.

Page 14: Capitulo 4 grupo 1

CREACIÓN DE PROCESOS

Un proceso puede crear varios procesos nuevos, a través de una llamada al sistema para la creación de procesos durante el curso de ejecución.

El proceso creador se denomina proceso padre, mientras que los nuevos son los hijos. Cada uno de estos nuevos procesos puede también crear otros procesos formando así un árbol de proceso.

Un proceso necesitará ciertos recursos para realizar su tarea. Cuando un proceso crea un subproceso, este último puede ser capaz de obtener sus recursos directamente del SO o puede estar restringido a un subconjunto de recursos del proceso padre.

Page 15: Capitulo 4 grupo 1

CREACIÓN DE PROCESOS

1.- El padre continúa ejecutándose de manera concurrente con sus hijos.

2.- El padre espera hasta que alguno o todos sus hijos hayan terminado.

Cuando un proceso crea uno

nuevo, existen dos posibilidades

en términos de ejecución

1.- El proceso hijo es un duplicado del proceso padre.

2.- Se carga un programa en el proceso hijo.

También hay dos posibilidades en

términos del espacio de

direcciones del nuevo proceso

Page 16: Capitulo 4 grupo 1

TERMINACIÓN DE UN PROCESO

Un proceso concluye cuando termina de ejecutar su declaración final y le pide al SO que lo borre usando la llamada exit.

En dicho punto, el proceso puede regresar datos (salida) a su proceso padre (mediante wait). Todos los recursos del proceso son liberados por el SO.

Un proceso

Puede ocasionar la terminación de otro por medio de una llamada apropiada al sistema (ejemplo

abort). Tal llamada puede invocarse sólo por el padre del

proceso que se debe terminar, de lo contrario los usuarios podrían

matar arbitrariamente sus trabajos entre ellos.

Page 17: Capitulo 4 grupo 1

TERMINACIÓN DE UN PROCESO

Un padre puede terminar la ejecución de uno de sus hijos por varias razones

El hijo se ha excedido en el uso de alguno 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.

Muchos sistemas no permiten que un hijo exista si su padre ha terminado, es por esto que si un proceso concluye, entonces todos sus hijos también deben ser finalizados. Este fenómeno es conocido como una terminación en cascada, y por la general es iniciado por el SO.

Page 18: Capitulo 4 grupo 1

PROCESOS COOPERATIVOS

Los procesos concurrentes que se ejecutan en el SO

pueden ser

Procesos Independientes

Procesos Cooperativos

cuando cuando

No puede afectar o verse afectado por los otros procesos que se están ejecutando en el sistema. Es independiente si no comparte algún dato con cualquier otro proceso.

Puede afectar o verse afectado por los otros procesos que se están ejecutando en el sistema. Es cooperativo si cualquier proceso comparte datos con otros procesos.

Page 19: Capitulo 4 grupo 1

PROCESOS COOPERATIVOS

Existen varias razones para proporcionar un ambiente que permita la cooperación entre procesos.

Debido a que varios usuarios pueden estar interesados en la misma pieza de información debemos proporcionar un ambiente que permita el acceso

concurrente a estos tipos de recursos.

Si deseamos que una tarea particular se ejecute más rápido, la debemos descomponer en subtareas, cada una de las cuales se estará ejecutando en

paralelo con las otras.

Tal vez queramos construir el sistema de forma modular, dividiendo las funciones del sistema en procesos distintos o hilos.

Un usuario individual puede tener varias tareas sobre las cuales trabajar en un momento; por ejemplo, puede estar editando, imprimiendo y

compilando en paralelo.

Compartir información

Aceleración de cálculos

Modularidad

Conveniencia

Page 20: Capitulo 4 grupo 1

COMUNICACIÓN ENTRE PROCESOS

Los procesos cooperativos pueden comunicarse en un ambiente de memoria compartida. Este esquema requiere que estos procesos compartan un a reserva común de buffers y que el programador de la aplicación escriba de manera explícita el código para implementar el buffer.

Otra forma de lograr el mismo efecto es que el sistema operativo

proporcione los medios para que los procesos cooperativos se

comuniquen entre ellos a través de un servicio de comunicación entre

procesos (IPC). El IPC proporciona un mecanismo tanto para que los procesos se comuniquen como para sincronizar sus acciones sin compartir el mismo espacio de direcciones. El IPC es útil en un ambiente distribuido, en donde los procesos que se comunican pueden residir en diferentes computadoras conectadas en una red.

Page 21: Capitulo 4 grupo 1

SISTEMA DE PASO DE MENSAJES

La función de un sistema de mensajes es permitir que los procesos se comuniquen entre ellos, sin necesidad de recurrir a datos compartidos. Los servidores IPC proporcionan dos operaciones: envió, send (mensaje) y recepción, received (mensaje) El tamaño de los mensajes enviados por un proceso puede ser:

Requieren una implementación mas compleja pero la tarea de programación es mas sencilla.

TAMAÑO FIJO

La implementación es sencilla y directa

TAMAÑO VARIABLE

Page 22: Capitulo 4 grupo 1

ASIGNACIÓN DE NOMBRES

Los procesos que desean comunicarse necesitan una forma de hacer referencia entre ellos, pueden usar:

COMUNICACIÓN DIRECTA

Cada proceso que quiere comunicarse debe nombrar explícitamente al receptor o al emisor de la comunicación.

COMUNICACIÓN INDIRECTA

Los mensajes se envían y se reciben de buzones o puertos. Cada buzón tiene una identificación única , en este esquema , un proceso se puede comunicar con otro utilizando varios buzones diferentes. Dos procesos solo se pueden comunicar si tienen un buzón compartido.

Page 23: Capitulo 4 grupo 1

Un buzón cuyo propietario es el sistema operativo tiene una existencia propia. Es independiente y no esta ligado a un proceso en particular. El sistema operativo debe entonces proporcionar un mecanismo que permita los procesos: •Crear un nuevo buzón •Enviar y recibir mensajes a través del buzón •Borrar un buzón

Page 24: Capitulo 4 grupo 1

La comunicación entre procesos tiene lugar mediante las llamadas primitivas send y recibe.

El paso de mensajes puede ser:

Emisor bloqueado hasta ser

recibido el mensaje

Receptor bloqueado hasta

que halla un mensaje

disponible

Receptor recupera un

mensaje valido

Emisor envía el mensaje y

continua su operación

Con bloqueo Sin bloqueo

Envío

Recepción

SINCRONIZACIÓN

Page 25: Capitulo 4 grupo 1

Los mensajes intercambiados por los procesos comunicados residen en una cola temporal.

Ahí tres formas de implementarla:

• Longitud máxima de 0

• El emisor se bloquea hasta que el receptor lea el mensaje Capacidad Cero

• Longitud finita igual a n

• El emisor continua su ejecución sin espera.

Capacidad Limitada

• Longitud infinita

• El Emisor nunca se bloquea

Capacidad ilimitada

Mensajes sin Buffers

Uso automático de Buffers

USO DE BUFFERS

Page 26: Capitulo 4 grupo 1

Es un sistema operativo basado en mensajes.

Los mensajes se envían y reciben desde buzones o puertos.

El tamaño máximo de la cola es de ocho mensajes

Mach se diseño especialmente para sistemas distribuidos.

UN EJEMPLO: MACH

Page 27: Capitulo 4 grupo 1

Es un sistema operativo de diseño moderno que disminuye el tiempo necesario para implementar nuevas características.

Su servicio de paso de mensajes se conoce como Servicio local de llamada a procedimientos.(LPC)

Emplea dos tipos de puertos: puertos de conexión y puertos de comunicación.

UN EJEMPLO: WINDOWS NT

Page 28: Capitulo 4 grupo 1