Вы находитесь на странице: 1из 65

SISTEMAS

OPERATIVOS

GESTIÓN DE PROCESOS
E.P de Ingeniería de Sistemas
IS--344

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
MECANISMO DE INTERRUPCIONES
 Procede del inglés “Interrup”, un nombre técnico que tiene
los siguientes significados:
 Señal para iniciar la parada del programa que se está
ejecutando para ejecutar otro (programa) después del
cual se seguirá ejecutando el programa original
(Diccionario Collins).
 Una característica del computador que permite la
interrupción temporal de una actividad (como la
ejecución de un programa) para realizar otra (Dicconario
Merriam-Webster).

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
MECANISMO DE INTERRUPCIONES

 Es decir el término interrupción se puede referir a


una señal, o a una característica del ordenador, a
un mecanismo.

 En S.O hay que pensar en las interrupciones como un


mecanismo que permite al S.O parar el programa
que se está ejecutando en ese momento.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
MECANISMO DE INTERRUPCIONES
Ejemplo de lo que ocurre cuando un dispositivo de E/S completa
una operación (Stalling, 2011)
1. El dispositivo emite una señal de interrupción al
procesador.
2. El procesador termina de ejecutar la instrucción actual.
3. Al finalizar de ejecutar la instrucción, el procesador
comprueba si hay alguna petición de interrupción
pendiente, determina que hay una y envía un
reconocimiento de señal al dispositivo que ha emitido la
interrupción. Este reconocimiento permite al dispositivo
retirar la señal de interrupción
Docente: Mercedes Ccesa Quincho
CONCEPTOS BÁSICOS
MECANISMO DE INTERRUPCIONES

4. El procesador transfiere el control a la rutina de


tratamiento de la interrupción. En primer lugar
guarda la información necesaria para continuar el
programa en el punto en el que se ha interrumpido.

5. El procesador carga el contador del programa con la


dirección en la que se encuentra la rutina de tratamiento
de la interrupción.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
CLASIFICACIÓN DE INTERRUPCIONES

1. Síncronas. Cuando las interrupciones son


consecuencia directa de las instrucciones máquina
que se están ejecutando.

Ejemplo:

 Interrupciones de Programa: Desbordamiento de pila,


Overflow, direccionamiento inválido.

 Interrupciones de llamada al supervisor: Inicio de


operaciones de E/S, Asignación de memoria y otros
recursos, lectura o escr itura en disco.
Docente: Mercedes Ccesa Quincho
CONCEPTOS BÁSICOS
CLASIFICACIÓN DE INTERRUPCIONES

2. Asíncronas. En el resto de los casos (provocado por


eventos externo al programa que se ejecuta)

Ejemplo

 Interrupción por falla de máquina: Sector de disco,


fuente de poder

 Interrupción de E/S: Una impresora terminó de imprimir

 Interrupciones externas: Interrupción de reloj.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
CAUSAS DE LAS INTERRUPCIONES

 Excepciones de Hardware síncronas. Producidas por el


programa en ejecución. Ejm: División por cero

 Excepciones de Hardware asíncronas. Producidas por un


error en el hardware. Ejem: Error de paridad en la memoria

 Interrupciones Externas. Elementos externos al procesador


como el reloj, otro procesador, dispositivos E/S

 Instrucciones máquina de la llamada al sistema. Genera


una interrupción de tipo síncrono, y sirve para que los
programas de usuario puedan usar los servicios del SO.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
CAUSAS DE LAS INTERRUPCIONES

 En todos los casos el resultado de las interrupciones es que


el procesador comienza a ejecutar código del SO en modo
privilegiado (o núcleo).

 Los procesadores suelen incluir varias líneas de solicitud de


interrupción y cada una tiene asociada una prioridad. En
caso de activarse al mismo tiempo varias de estas líneas se
tratará primero la de mayor prioridad, quedando las demás
a la espera de ser atendidas.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
CAUSAS DE LAS INTERRUPCIONES

 Las interrupciones más prioritarias suelen ser las


excepciones de hardware asíncronas, seguidas por las
excepciones de hardware síncronas, las interrupciones
externas y las llamadas al sistema.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
MODO DE EJECUCIÓN

 Modo Usuario. Modo menos permisivo, el computador


ejecuta solamente un subconjunto de las instrucciones
máquina. Además de prohibir el acceso a determinados
registros, zonas del mapa de memoria y E/S.

 Modo núcleo o modo privilegiado. Modo más permisivo.


El computador ejecuta todas sus instrucciones sin
restricción, permite el acceso a todos sus registros y mapas
de direcciones.

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
EL PROCESADOR

 Procesador o CPU  Unidad aritmética + Unidad de


Control. Contiene pequeñas memorias o registros.

Almacenar dato,
instrucción o una
dirección de
memoria

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
EL PROCESADOR
 Unidad aritmética: registros de propósito general, permite
realizar operaciones aritméticas y lógicas sobre dos operandos.

 Unidad de control: Ejecuta un ciclo de Lectura-Ejecución,


consiste en lo siguientes pasos:
 Leer de la memoria principal la instrucción máquina apuntada por el
contador del programa.

 Incrementar el contador del programa para que apunte a la siguiente


instrucción máquina.

 Ejecutar la instrucción

 Comprobar si hay una interrupción

Docente: Mercedes Ccesa Quincho


CONCEPTOS BÁSICOS
EL PROCESADOR
Registros de la Unidad de Control:
 Registro contador del programa. Indica la dirección de la
siguiente instrucción máquina a ejecutar.

 Registro puntero de pila. Sirve para saber la posición de la pila


en la memoria principal.

 Registro de instrucción. Almacena la instrucción máquina a


ejecutar.
 Registro de Estado. Almacena distinta información 
ejecución de alguna de las últimas instrucciones del programa
e información sobre el comportamiento del procesador.

Docente: Mercedes Ccesa Quincho


2. EL MODELO DE PROCESOS
La función principal de un SO es gestionar la ejecución
de aplicaciones teniendo en cuenta las siguientes
condiciones:

 El procesador conmuta entre varias aplicaciones para que


todas lleguen a finalizar su ejecución.

 El procesador y los dispositivos de E/S se usan de la forma


más eficiente posible.

 Los recursos del computador pueden ser utilizados por


múltiples aplicaciones.
2. EL MODELO DE PROCESOS
Todo el software ejecutable en el ordenador, incluyendo al propio sistema
operativo, se organiza en procesos

En un sistema con un único procesador no se puede decir que haya varios


programas ejecutándose estrictamente de una forma simultánea. En
realidad, la posesión del procesador se va repartiendo entre los distintos
procesos, dando lugar a una ejecución pseudoparalela.
Interesa tener máquinas que ejecuten varios procesos al mismo tiempo

T3 Aprovechar tiempos muertos E/S


Soluciones elegantes concurrentes
T2 Más rapidez con más de una CPU

T1 pseudoparalelismo
t
18
T3 CPU2
Con multiprocesadores
T2 también interesa multiplexar
las CPU’s
CPU1
T1
t
13
3. DEFINICIÓN
DE PROCESOS
3. DEFINICIONES DE PROCESOS

 Un programa en ejecución.
 Un instancia de un programa ejecutando en un
computador.
 La unidad de procesamiento gestionada por el SO.
 Una unidad de actividad que se caracteriza por la ejecución
de una secuencia de instrucciones, un estado actual y un
conjunto de recursos del sistema asociados

Docente: Mercedes Ccesa Quincho


En esencia, un proceso es un recipiente que
guarda toda la información necesaria para
ejecutar un programa.
EJEMPLO
 El usuario puede haber iniciado un programa de edición
de video para convertir un video de una hora a un
formato específico (algo que puede tardar horas) y
después irse a navegar en la Web. Mientras tanto, un
proceso en segundo plano que despierta en forma
periódica para comprobar los mensajes entrantes puede
haber empezado a ejecutarse. Así tenemos (cuando
menos) tres procesos activos: el editor de video, el
navegador Web y el lector de correo electrónico.
Cada cierto tiempo, el sistema operativo decide detener
la ejecución de un proceso y empezar a ejecutar otro;
por ejemplo, debido a que el primero ha utilizado más
tiempo del que le correspondía de la CPU en el último
segundo.
¿QUÉ TIENE UN PROCESO?
 La imagen del programa (una copia de su código
ejecutable y de su área de datos).
 La información acerca de sus estado de ejecución:
– Los valores del program counter, registros y
variables.
– Información necesaria para su administración
por parte del Sistema Operativo (id, prioridad, ..).
DIFERENCIA ENTRE UN PROCESO Y UN
PROGRAMA
 La diferencia entre un proceso y un programa es
sutil pero crucial.
 Analogía: Científico horneando un pastel
Datos de entrada

Programa
Cocinar

Proceso: Actividad

Procesador (CPU)
DIFERENCIA ENTRE UN PROCESO Y UN
PROGRAMA
 La idea clave es que un proceso es una
actividad de cierto tipo: tiene un programa,
una entrada, una salida y un estado. Varios
procesos pueden compartir un solo procesador
mediante el uso de un algoritmo de planificación
para determinar cuándo se debe detener el
trabajo en un proceso para dar servicio a otro.
DIFERENCIA ENTRE UN PROCESO Y UN
PROGRAMA
 Vale la pena recalcar que si un programa se
está ejecutando por duplicado cuenta como
dos procesos.
 Por ejemplo, a menudo es posible iniciar un
procesador de palabras dos veces o imprimir dos
archivos al mismo tiempo si hay dos impresoras
disponibles. El hecho de que dos procesos en
ejecución tengan el mismo programa no importa;
son procesos distintos. El sistema operativo
puede compartir el código entre ellos de manera
que sólo haya una copia en la memoria, pero ése
es un detalle técnico que no cambia la situación
conceptual de dos procesos en ejecución.
4. CONTEXTO DE PROCESO

 Cada proceso se ejecuta en diferentes contextos,


entonces el sistema se ejecuta en el contexto de
dicho proceso.

 Por lo que cuando el núcleo decide pasar a ejecutar


otro proceso debe de cambiar de contexto, de forma
que el sistema pasará a ejecutarse en el contexto
del nuevo proceso.
4. CONTEXTO DE PROCESO
Información necesaria para especificar completamente el estado actual de un proceso. Incluye toda la
información que ha de salvarse cuando un proceso pierde la posesión de la CPU, y hay que restaurar
cuando se le vuelve a conceder la posesión del procesador.

Dependiendo del lugar donde reside la información, esta formado por tres tipos de información

Bloque de Control Información que siempre esta en la memoria principal


de Proceso (BCP) durante la existencia del proceso

Contexto de Instrucciones y los datos del programa. Esta parte solamente necesita
estar en memoria principal cuando el proceso esta realmente en
Memoria ejecución, el resto del tiempo puede encontrarse en disco

Es la parte almacenada en los registros del procesador cuando el


Contexto del proceso se está ejecutando. En estos registros se mantienen datos tales
Procesador como el Contador de Programa, el estado de la CPU, el puntero de la
pila, registros de control y registros de propósito general
ESBOZO DE IMPLEMENTACIÓN EN TÉRMINOS MÁS INFORMÁTICOS
El contexto de un proceso está distribuido en varias zonas
• Contexto de memoria (Código y Datos) MP/MSec
• Bloque de control (descriptor) del Proceso MP (S.O.)
• Contexto del procesador Reg/MP/MSec
MP
Ejecutándose
MSec
CPU

29
Bloqueado S.O.
5. CREACIÓN DE PROCESO
1. La inicialización del sistema
2. La ejecución por parte de un proceso (en ejecución) de una llamada al
sistema de creación de un nuevo proceso.
3. La petición por parte del usuario de la creación de un nuevo proceso.
4. El inicio de un trabajo en batch.

• Técnicamente, en todos los casos, se crea un nuevo proceso haciendo


que un proceso ya existente ejecute una llamada al sistema de creación
de un nuevo proceso.
• El proceso que hace la llamada puede ser un proceso de usuario, un
proceso del sistema invocado desde el teclado o el ratón, o un proceso
gestor de los trabajos en batch.
• Lo que ese proceso hace es ejecutar una llamada al sistema para crear
el nuevo proceso. Esa llamada al sistema solicita al sistema operativo
que cree un nuevo proceso, indicándole directa o indirectamente, qué
programa debe ejecutar sobre él.
5. CREACIÓN DE PROCESO

En UNIX sólo existe una


llamada al sistema para crear
un nuevo proceso: fork.

En Windows, se usa una única


llamada al sistema de Win32,
CreateProcess,
6. TERMINACIÓN DE LOS PROCESOS
1. El proceso completa su trabajo y termina (voluntariamente).
Se ejecuta una llamada al sistema para decirle al sistema
operativo que el proceso ha finalizado
2. El proceso detecta un error y termina (voluntariamente).
El proceso descubre un error fatal. En programas interactivos,
antes de terminar, despliegan una ventana de diálogo
emergente solicitando al usuario cierta información
3. El sistema detecta un error fatal del proceso y fuerza su
terminación.
Terminación por la aparición de un error causado por el
proceso, a menudo debido a un error de programación
4. Otro proceso fuerza la terminación del proceso (por ejemplo en
UNIX mediante la llamada al sistema kill).

Esta llamada es exit en UNIX y ExitProcess en


Windows
7. ESTADOS Y TRANSICCIONES DE UN
PROCESO
Un ejemplo del ciclo de vida
Creación
1. Se esta ejecutando (posee la CPU).
2. Realiza una operación de E/S y se
pone a esperar la respuesta
(abandona la CPU).
3. Cuando recibe la respuesta de la
operación de E/S desea continuar la
ejecución (necesita otra vez la
CPU).
También sabemos que el tiempo de
CPU se reparte en porciones entre
todos los procesos que lo solicitan, por lo
que un proceso puede ver como pierde
la posesión del procesador, de forma
involuntaria, cuando se le acaba la
porción de tiempo que tenia asignada.
ESBOZO DE IMPLEMENTACIÓN
¿Cómo es el ciclo de vida de un proceso?
CPU
Creación Terminación
P3
P4
P1
P3 P2
P4
P3
P1
P2
P3 P3
P4
P1
P1
P2
P3

Expulsión ¿P1.read(disco,
¿P2.sleep(5
¿P1
¿P4
¿P3 mucha
fin
read(cinta,
termina?
E/S?CPU?
)? ))?

P1 ¿Estados de un proceso?
• EnEjecución
Activo
• Preparado
P2 • EnEspera o Bloqueado

P4
ESTADOS DE UN PROCESO
Un proceso que esta ejecutando instrucciones (En ejecución), o esperando
a que le concedan la CPU para ejecutar instrucciones (Listo), o esperando
a que se produzca algún evento externo (Bloqueado).

En ejecución: utiliza la CPU en el instante dado. En este estado está el


proceso que está siendo ejecutado por el procesador, que está en la fase de
procesamiento. En esta fase el estado del proceso reside en los registros del
procesador.

Listo (o preparado): ejecutable, se detiene en forma temporal para que


se ejecute otro proceso. Un proceso está listo para ejecutar cuando puede
entrar en fase de ejecución. (dado que pueden ser varios -> trabajo de
planificador)

Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento


externo. Un proceso bloqueado está esperando a que ocurra un evento y no
puede seguir ejecutando hasta que suceda el evento. (Situación típica: se
produce cuando un proceso solicita una operación de E/S. hasta que no
termine esa operación, el proceso queda bloqueado) en esta fase, el estado
del proceso reside en el BCP
Gestión de Procesos
DIAGRAMA DE TRANSICIÓN DE ESTADOS
DE UN PROCESO

En exit
Ejecución

fork
Listo Bloqueado

36
TRANSICIONES ENTRE ESTOS TRES ESTADOS
(*)Creación – Listo: Inicialmente, al crear un proceso, no puede pasar
directamente al estado de bloqueado, pues no se ha ejecutado ninguna
instrucción que así se lo indique; por lo tanto, expresa su necesidad de
ejecución entrando en la cola de procesos Listos.

Listo - En ejecución: Una vez que el proceso esta listo, solamente tiene que
esperar a que le llegue el turno. Los turnos del procesador se establecen en
función de la política de planificación de la CPU. Cuando le llegue el turno
tomara posesión del procesador y empezara a ejecutar instrucciones.

Desde el estado de ejecución se puede pasar a cualquiera de los otros dos


estados (Bloqueado y Listo)

En ejecución – Listo: Pasara a Listo si abandona la CPU involuntariamente,


es decir si se le expulsa (o expropia), bien porque haya terminado su porción de
tiempo, o porque haya pasado a Listo otro proceso de mayor prioridad.
TRANSICIONES ENTRE ESTOS TRES ESTADOS
En ejecución – Bloqueado: En cambio, pasa al estado de Bloqueado si cede
voluntariamente el procesador, por tener que esperar a que se produzca un
evento externo a la CPU.

Bloqueado – Listo: Desde el estado de Bloqueado no se puede volver


directamente a ejecución, sino que cuando se haya cumplido el evento externo,
para recuperar la posesión del procesador hay que pasar de nuevo por la cola de
los procesos Listos. Así tenemos que para conseguir la posesión de la CPU
siempre hay que pasar por su cola correspondiente (como un recurso mas que
es).

(*)En ejecución – Terminación: Como ya hemos dicho antes, el proceso


termina cuando ejecuta su ultima instrucción, luego siempre pasara al estado de
Terminado desde ejecución.
UN PROCESO TIENE DOS ESTADOS BÁSICOS:
ACTIVO Y EN ESPERA.

Activo: El proceso no depende de ninguna condición externa al


procesador para poder continuar su ejecución. o bien se esta
ejecutando, o se encuentra esperando en la cola de procesos Listos a
que le concedan la posesión de la CPU.

En Espera: El proceso no puede continuar la ejecución. Esta


bloqueado, a la espera de que se cumpla un evento externo a la
CPU, tal como una respuesta de un dispositivo de E/S, que llegue
una hora determinada, etc.
PARA IMPLEMENTAR LA PERTENENCIA DE LOS PROCESOS
A DETERMINADO ESTADO, SE GUARDAN, ASOCIADAS CON
CADA ESTADO, LISTAS DE PCB.
Una “Lista de Listos” para los procesos “listos” y una “Lista de Bloqueados” para los
“bloqueados”.

La “Lista de Listos” se mantiene en orden prioritario y la “Lista de Bloqueados” está


desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los
eventos que están esperando.

Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado


en la última parte de la “Lista de Listos”.

La asignación de la CPU al primer proceso de la “Lista de Listos” se denomina


“Despacho”, que es ejecutado por una entidad del Sistema Operativo llamada
“Despachador”.

El “Bloqueo” es la única transición de estado iniciada por el propio proceso del


usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al
proceso.
LOS SISTEMAS QUE ADMINISTRAN LOS PROCESOS DEBEN PODER
CREAR, DESTRUIR, SUSPENDER, REANUDAR, CAMBIAR LA
PRIORIDAD, BLOQUEAR, DESPERTAR Y DESPACHAR UN PROCESO.

La “creación” de un proceso significa:


1. Dar nombre al proceso.
2. Insertar un proceso en la lista del sistema de procesos conocidos.
3. Determinar la prioridad inicial del proceso.
4. Crear el bloque de control del proceso.
5. Asignar los recursos iniciales del proceso.
Un proceso puede “crear un nuevo proceso”, en cuyo caso el proceso
creador se denomina “proceso padre” y el proceso creado “proceso hijo”
y se obtiene una “estructura jerárquica de procesos”.
La “destrucción” de un proceso implica:

1. Borrarlo del sistema.

2. Devolver sus recursos al sistema.

3. Purgarlo de todas las listas o tablas del sistema.

4. Borrar su bloque de control de procesos.

La “destrucción” de un proceso puede o no significar la destrucción de


los procesos hijos, según el Sistema Operativo.
DIAGRAMA COMPLETO CON LOS ESTADOS DE UN PROCESO
Además de los 3 estados, los procesos pueden estar en los estados de “espera” y de
“suspendido”

Los procesos
batch pueden
entrar al
sistema
pasando al
estado de listo
o ha
suspendido
FORMACION DE UN PROCESO
Las operaciones que debe hacer el SO son:
1. Asignar un espacio de memoria para albergar la imagen de
memoria. (espacio virtual compuesto por varios segmentos)
2. Seleccionar un BCP libre de la tabla de procesos
3. Rellenar BCP con la información de identificación de proceso, con la
descripción de memoria asignada, con los valores iniciales de los
registros indicados en el archivo objeto
4. Cargar en el segmento de texto el código más las rutinas de sistema
y en segmento de datos los datos iniciales contenidos en el archivo
objeto.
5. Crear en el segmento de pila la pila inicial del proceso. La pila
incluye inicialmente el entorno del proceso y los parámetros que se
pasan en la invocación del programa correspondiente
Completada la información se puede marcar como listo para ejecutar
IMPLEMENTACION DE UN BLOQUE DE
CONTROL DE PROCESO

Para implementar el modelo


de los procesos el sistema
operativo mantiene una tabla
(un array de registros o
estructuras), denominada la
tabla de procesos, con una
entrada por proceso. Algunos
autores denominan a cada
una de esas entradas
descriptor de proceso o
bloque de control de
proceso. Estas entradas
contienen información sobre
el estado de cada proceso: La información relativa a su planificación y a la
contabilidad de los recursos que ha consumido cualquier
• contador de programa, otra información sobre el proceso que deba guardarse
• puntero de pila cuando el proceso conmute del estado de en ejecución al
estado de preparado o bloqueado, de forma que su
• asignación de memoria ejecución pueda retomarse posteriormente como si nunca
• el estado de sus ficheros se hubiera detenido.
abiertos
DESCRIPTOR DE PROCESOS O BCP
El siguiente cuadro muestra algunos de los campos más importantes que aparecen en el
descriptor de proceso de cualquier sistema operativo típico. Los campos en la primera columna
están relacionados con la gestión de los procesos. Las otras dos columnas tienen que ver con la
gestión de memoria y la gestión de ficheros, respectivamente. Hay que señalar que los campos
concretos que tienen los descriptores de la tabla de procesos varían mucho de un sistema
operativo a otro, pero la figura da una idea general del tipo de información que es necesario
mantener para la gestión de los procesos.

Gestión de procesos Gestión de Gestión de ficheros


Registros memoria Directorio raíz
Contador de programa (PC) Puntero al segmento Directorio de trabajo
Registro de estado (SR o PSW) de código Descriptores de ficheros
Puntero de pila (SP) Puntero al segmento Identificador de usuario
Estado del proceso de datos (uid)
Prioridad Puntero al segmento Identificador de grupo
Parámetros de planificación de pila (gid)
Identificador de proceso (pid)
Proceso padre
Grupo del proceso
Señales
Instante de comienzo
Tiempo de CPU utilizado
Tiempo de CPU de los hijos
Tiempo restante para la
siguiente alarma
BLOQUE DE CONTROL DE PROCESO

Docente: Mercedes Ccesa Quincho


BLOQUE DE CONTROL DE PROCESO
 Los campos de esta estructura son:

– Identificador. Id único para cada proceso

– Estado. Se especifica el estado de un proceso (ejecutando,


listo, bloqueado, etc)

– Prioridad. Nivel de prioridad relativo al resto de procesos

– Contexto. Los datos que están presentes en los registros


del procesador, incluido el contador del programa, que
apunta a la siguiente instrucción que se ejecutará del
programa

Docente: Mercedes Ccesa Quincho


BLOQUE DE CONTROL DE PROCESO
– Punteros a memoria. Incluye los punteros al código del
programa y los datos asociados a dicho proceso, además de
cualquier bloque de memoria compartido con otros procesos,

– Información de estado de E/S. Incluye las peticiones de


E/S pendientes, dispositivos de E/S asignados a dicho
proceso, una lista de ficheros en uso por el mismo, etc.

– Información de auditoría. Puede incluir la cantidad de


tiempo de procesador usado por el proceso y otros datos de
este tipo.

Docente: Mercedes Ccesa Quincho


CAMBIO DE CONTEXTO (CONTEXT SWITCH)
Cuando un proceso en ejecución pierde la posesión de la CPU, se debe
a uno de los siguientes motivos:

- Llamada al sistema

- Interrupcion

- Fin del proceso

Si un proceso pierde el control de la CPU habrá que asignárselo a otro


proceso. Efectivamente, y hay que realizarlo en dos pasos:

1° Seleccionar el siguiente proceso

2° Realizar el cambio de contexto


CAMBIO DE CONTEXTO (CONTEXT SWITCH)
 A la tarea de cambiar un proceso por otro en el procesador se
le denomina cambio de contexto(context switch).
 El cambio de contextos entre procesos implica las siguientes
tareas:
– Salvar el estado del proceso (registros, información de
punteros de memoria) que está ejecutando en su PCB.
– Cambiar el estado del proceso que estaba ejecutando al que
corresponda.
– Cargar el estado del proceso asignado a la CPU a partir de
su BCP.
– Cambiar el estado del proceso nuevo a ejecutando.

Docente: Mercedes Ccesa Quincho


6. CAMBIO DE CONTEXTO (CONTEXT SWITCH)

Docente: Mercedes Ccesa Quincho


COOPERACIÓN ENTRE PROCESOS
 Procesos concurrentes pueden ejecutar en un entorno aislado
(se debe asegurar la ausencia de interferencias) o,
eventualmente, podrán interactuar cooperando en pos de un
objetivo común compartiendo objetos comunes.
 Es necesario que el sistema operativo brinde unas
herramientas específicas para la comunicación y
sincronización entre los procesos (Inter Process
Communication – IPC ).
 IPC es una herramienta que permite a los procesos
comunicarse y sincronizarse sin compartir el espacio de
direccionamiento en memoria.
 Hay dos enfoques fundamentales:
– Memoria compartida
– Pasaje de mensajes

Docente: Mercedes Ccesa Quincho


9. HILOS (THREADS)
 Hay aplicaciones donde es necesario utilizar procesos que
compartan recursos en forma concurrente.
 IPC (Comunicación entre procesos) brindan una alternativa
a nivel de sistema operativo.
 Los sistemas operativos modernos están proporcionando
servicios para crear más de un hilo (thread) de ejecución
(control) en un proceso.
 Con las nuevas tecnologías multi-core esto se hace algo
necesario para poder sacar mayor provecho al recurso de
procesamiento.
 De esta forma, se tiene más de un hilo de ejecución en el
mismo espacio de direccionamiento.

Docente: Mercedes Ccesa Quincho


9. HILOS (THREADS)
 Todos los recursos, sección de código y datos son compartidos
por los distintos threads de un mismo proceso.

Docente: Mercedes Ccesa Quincho


9.1. VENTAJA DEL USO DE THREADS
 Compartir recursos: Los threadsde un proceso comparten
la memoria y los recursos que utilizan. A diferencia de IPC,
no es necesario acceder al kernelpara comunicar o
sincronizar los hilos de ejecución.
 Economía: Es más fácil un cambio de contexto entre
threadsya que no es necesario cambiar el espacio de
direccionamiento. A su vez, es más “liviano” para el sistema
operativo crear un threadque crear un proceso nuevo.
 Utilización de arquitecturas con multiprocesadores:
Disponer de una arquitectura con más de un procesador
permite que los threadsde un mismo proceso ejecuten en
forma paralela.
 Repuesta: Desarrollar una aplicación con varios hilos de
control (threads) permite tener un mejor tiempo de
respuesta.

Docente: Mercedes Ccesa Quincho


9.2. DESVENTAJA DEL USO DE THREADS
 Dificulta la programación: Al compartir todo el espacio de
direccionamiento un threadmal programado puede romper el
funcionamiento del resto de los threads.

Docente: Mercedes Ccesa Quincho


9. THREADS
 Los threads pueden ser implementados tanto a nivel de
usuario como a nivel de sistemas operativo:
– Hilos a nivel de usuario(user threads): Son
implementados en alguna librería de usuario. La librería
deberá proveer soporte para crear, planificar y administrar
los threadssin soporte del sistema operativo. El sistema
operativo solo reconoce un hilo de ejecución en el proceso.
– Hilos a nivel del núcleo(kernel threads): El sistema es
quien provee la creación, planificación y administración de
los threads. El sistema reconoce tantos hilos de ejecución
como threads se hayan creado

Docente: Mercedes Ccesa Quincho


9. THREADS
 Ventajas de user threads sobre kernel threads:
– Desarrollo de aplicaciones en sistemas sin soporte a
hilo: Se pueden aprovechar todos los beneficios de
programar orientado utilizando threads. Además se puede
portar la aplicación a un sistema operativo que carezca de
la noción de varios hilos de ejecución.
– Cambio de contexto: El cambio de contexto entre
threadsde usuario es más simple ya que no consume el
overheadque tendría en el sistema operativo (system call).
– Planificación independiente: Se puede crear una nueva
estrategia de planificación diferente a la que tenga el
sistema operativo.

Docente: Mercedes Ccesa Quincho


9. THREADS
 Ventajas de kernel threads sobre user threads:
– Mejor aprovechamiento de un sistema
multiprocesador: el sistema operativo puede asignar
threads del mismo proceso en distintos procesadores. De
esta forma, un proceso puede estar consumiendo más de un
recurso procesador a la vez.
– Ejecución independiente: Al ser independientes los
hilos de ejecución, si un thread se bloquea (debido a p.ej.
una operación de E/S) los demás threads pueden seguir
ejecutando.

Docente: Mercedes Ccesa Quincho


9. THREADS
 La mayoría de los sistemas proveen threads tanto a nivel de
usuario como de sistema operativo.
 De esta forma surgen varios modelos:
– Mx1(Many-To-One): Varios threads de a nivel de usuario
a un único thread a nivel de sistema.
– 1x1(One-to-One): Cada thread de usuario se corresponde
con un thread a nivel del núcleo (kernel thread).
– MxN(Many-To-Many): Varios threads a nivel de usuario
se corresponde con varios threads a nivel del núcleo.

Docente: Mercedes Ccesa Quincho


MX1 (MANY-TO-ONE)
 Este caso se corresponde al de tener los threads implementados a
nivel de usuario.
 El sistema solo reconoce un thread de control para el proceso.
 Los threads de usuario ejecutarán cuando estén asignados al
kernel thread del proceso (tarea llevada a cabo por el planificador
a nivel de usuario) y, además, a este le asigne la CPU el
planificador del sistema operativo.

Docente: Mercedes Ccesa Quincho


1X1 (ONE-TO-ONE)
 Cada threadque es creado a nivel de usuario se genera un nuevo
thread a nivel de sistema que estará asociado mientras exista.
 El sistema reconoce todos los threads a nivel de usuario y son
planificados independientemente. En este caso no hay
planificador a nivel de usuario.

Docente: Mercedes Ccesa Quincho


MXN(MANY-TO-MANY)
 Cada proceso tiene asignado un conjunto de kernel threads
independiente de los threadsa nivel de usuario que el proceso
haya creado.
 El planificador a nivel de usuario asigna los threadsen los kernel
threads.
 El planificador de sistema solo reconoce los kernel threads.

Docente: Mercedes Ccesa Quincho


GRACIAS POR SU ATENCIÓN…

Вам также может понравиться