Está en la página 1de 31

TEMA:

Gestión de procesos en los SO


GESTIÓN DE PROCESOS

Un proceso es una abstracción de un programa en ejecución y es la unidad de trabajo del


sistema. Se puede definir a un proceso como un programa en ejecución.

Hemos de tener en cuenta que en el ordenador se ejecutan los programas, y cada


programa es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El
sistema operativo es el encargado de hacerlo todo, la carga de los procesos en memoria y
la ejecución de dichos procesos, pues para que se ejecute un programa es necesario que el
microprocesador ejecute los procesos de ese programa.

El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina
que proceso se debe ejecutar y cuanto tiempo debe estar ejecutándose, a todo esto se le
denomina gestión de procesos.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 2


Sistemas Operativos - Período 2021-01 - Segundo Parcial 3
Procesos de Sistema.

Durante el proceso de arranque del computador, el


sistema operativo, una vez cargado, pone en
ejecución un conjunto de procesos que realizan
funciones vitales dentro del sistema. Estos procesos
reciben el nombre de procesos de sistema.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 4


Estados de un Proceso

Los estados por los que transita un proceso son:

✓ Nuevo: El proceso esta siendo creado.

✓ En Ejecución: Se están ejecutando las instrucciones.

✓ En espera: El proceso está esperando a que se produzca un suceso.

✓ Preparado: El proceso está a la espera de que se le asigne a un procesador.

✓ Terminado: Ha finalizado su ejecución.

Los procesos no pueden pasar por ellos mismos de listos a ejecución, es el S.O. el que decide cuando se
pasa de listo a ejecutado.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 5


Sistemas Operativos - Período 2021-01 - Segundo Parcial 6
Bloque De Control De Procesos

Cada proceso se encuentra representado en el S.O. mediante una estructura


denominada “Bloque de Control de Procesos” o “PCB”, que contiene toda la
información que se necesita saber sobre el proceso, entre otras cosas debe guardar
el estado actual del proceso.

Un BCP contiene muchos elementos de información asociados con un proceso


específico, entre los que se incluyen:

Sistemas Operativos - Período 2021-01 - Segundo Parcial 7


• Estado del proceso: El estado puede ser nuevo, en ejecución, en espera, etc.

• Contador de programas: Contiene la dirección de la siguiente instrucción a ejecutar por


el proceso.

• Registro de CPU: Varían en cuanto a número y tipo, dependiendo de la arquitectura de


la computadora. Incluye acumuladores, registro de índices, punteros de pila y registros de
propósito general.

• Información de planificación CPU: Incluye prioridad del proceso, apuntadores a colas de


planificación, etc. (Información del algoritmo de planificación).

Sistemas Operativos - Período 2021-01 - Segundo Parcial 8


• Información de gestión de memoria: Incluye información acerca del valor de los
registros base y limites, las tablas de paginación o tablas de segmentos,
dependiendo del mecanismo de gestión de memoria.

• Información contable: Contiene información acerca de la cantidad de CPU y


tiempos empleados, los límites de tiempo asignados, el número de trabajo o de
proceso.

• Información del estado de E/S: Esta información incluye, solicitudes pendientes de


E/S, dispositivos de E/S asignados al proceso, etc.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 9


HEBRAS (Hilos)

Los hilos son procesos ligeros que se componen de registros, un


espacio de pila y un contador de programa.
Los hilos comparten su código ejecutable, su pila y los recursos
que utiliza. Con el uso de hilos deja de ser necesaria la costosa
conmutación de contexto de uno a otro proceso.

Los hilos son especiales para realizar procesamiento paralelo,


pero esto incurre en algunos problemas como la consistencia
de datos, para lo que se usan distintos mecanismos para
solucionarlos como secciones críticas y cerraduras.

Los hilos pueden estar a nivel del núcleo del sistema operativo
o a nivel de usuario.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 10


Planificación de Procesos

La planificación de procesos tiene como objetivos obtener siempre la mayor productividad, o


la mayor cantidad de trabajos realizados en una unidad de tiempo, por Ejemplo: 77 procesos
por hora.
El concepto de planificación podría llamarse al conjunto de políticas y mecanismos
incorporados al sistema operativo por el que se rige el orden en el que se completa el trabajo
que hay que realizar.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 11


Con la planificación se pretende:

• Justicia en el reparto de la CPU entre los diferentes usuarios.

• Evitar la postergación indefinida de los procesos siempre dentro de la seguridad de las


prioridades.

• Logra la máxima capacidad de ejecución con el mayor número de usuarios interactivos.

• Se busca el equilibrio del uso de los recursos y de la respuesta de utilización.

• Se pretende poder discriminar procesos de tal manera que se permita dar mayor prioridad
a aquellos procesos que tengan asignados recursos claves.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 12


Se puede planificar a tres niveles distintos:

• A alto nivel o de trabajo. Determinar a que trabajos


se les va a permitir competir activamente por los
recursos del sistema.

• A nivel intermedio. Discriminamos a qué procesos se


les puede permitir competir por la C.P.U., siempre
intentando conseguir el mayor rendimiento del
sistema.

• A bajo nivel. Determina a que proceso de los que


están listos se le va a asignar la C.P.U. al quedar ésta
disponible.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 13


Criterios de Planificación

Los algoritmos de planificación deben tener en cuenta una serie de casos:

• Utilización de la C.P.U: Queremos que la C.P.U. se mantenga tan ocupada como sea
posible.

• Rendimiento: Una medida del trabajo es el número de procesos que se completa por
unidad de tiempo.

• Tiempo de Retorno: Sería la suma de los periodos transcurridos esperando entrar en la


memoria, esperando en la cola de procesos listos, ejecutándose en la C.P.U. y efectuando
operaciones de E/S.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 14


• Tiempo de Espera: Es el tiempo que el proceso espera en la cola de procesos listos.

• El tiempo de Respuesta: El tiempo transcurrido desde la presentación de una solicitud


hasta que se produce la primera respuesta.

Siempre vamos a intentar maximizar la productividad (el tiempo de C.P.U.) y se intenta


minimizar el tiempo de retorno, de respuesta y el de espera.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 15


Sistemas Operativos - Período 2021-01 - Segundo Parcial 16
Colas De Planificación

A medida que los procesos entran al sistema se colocan en una cola de trabajos que
contiene todos los procesos del sistema.

Los procesos que residen en memoria principal y están preparados y en espera de


ejecución se encuentran en la cola de procesos preparados (lista enlazada, contiene un
puntero al primer y último PCB de la lista).

Cada PCB incluye un campo de puntero que apunta al siguiente PCB de la cola de procesos
preparados.

El sistema también incluye otras colas como son las colas de dispositivos.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 17


Sistemas Operativos - Período 2021-01 - Segundo Parcial 18
Planificadores

Durante el tiempo de vida, los procesos se mueven entre las diferentes colas de
planificación. El SO como parte de la planificación debe seleccionar un proceso
que se encuentran en las colas. Este proceso se lo realiza a través de un
Planificador.

En un sistema de procesamiento por lotes, se envía más procesos de los que se


puede ejecutar de forma inmediata. Estos procesos se guardan en dispositivos de
almacenamiento masivo, donde se mantiene para su posterior ejecución.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 19


Sistemas Operativos - Período 2021-01 - Segundo Parcial 20
Planificación De Procesos

• La clave de la multiprogramación es la planificación. Implica tres tipos de planificación.

• Planificadores a largo plazo (Planificador de trabajos): Decide si se añade al conjunto de


programas a ser ejecutados.

• Planificador a mediano plazo: Decide si se añade al número de procesos que están total o
parcialmente en memoria principal.

• Planificadores a corto plazo (Planificador de CPU): Decide cuál de los procesos disponibles
ejecutará el procesador.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 21


Cambio de Contexto

Cuando se produce una interrupción el sistema tiene que guardar el contexto actual del
proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto
cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después.
El tiempo dedicado al cambio de contexto es tiempo desperdiciado. El tiempo empleado para
el cambio de contexto depende fundamentalmente del soporte hardware.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 22


Operaciones Básicas con Procesos

Lo mínimo que se puede hacer con un proceso es:

• Crearlo: Darle un nombre o identificador, meterlo en la lista de procesos listos, asignarle


una prioridad, crear el PCB y darle los recursos que necesite, etc..

• Destruir un proceso: Liberándose todos los recursos que tenía asignado el proceso. La
prioridad del proceso sería la prioridad en el PCB.

• Cambiarle la prioridad al proceso: Modificar la prioridad en el PCB.

• Bloquear un proceso: Pasar de estado activo a bloqueado debido a que tiene que esperar
a que suceda un evento.

• Activar un proceso: Cuando termina un evento por el que está esperando un proceso y se
encontrase este bloqueado, entonces pasa este a listo.

• Despachar un proceso: El procesador asigna el primer proceso que se encuentra en la lista


de listos, pasando éste de estado listo a activo.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 23


Sistemas Operativos - Período 2021-01 - Segundo Parcial 24
Comunicación Interprocesos
Los procesos pueden ser:

• Procesos independientes: Si no puede afectar o verse afectado por los restantes procesos
del sistema.

• Procesos cooperativos: Si puede afectar o verse afectado por otros procesos.

Hay varias razones para proporcionar un entorno que permita la cooperación entre procesos:

* Compartir información * Acelerar los cálculos

* Modularidad. * Conveniencia.

Los procesos Cooperativos requieren mecanismos de comunicación interprocesos (IPC). Que


les permita intercambiar datos e información.

Existen dos modelos fundamentales de IPC:

1. Memoria Compartida 2. Paso de mensajes.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 25


Sistemas de memoria Compartida

La comunicación interprocesos que emplea memoria compartida requiere que los procesos
que se estén comunicando establezcan una región de memoria compartida. El SO evita que
otro proceso pueda ingresar a direcciones de memoria de otro proceso, por cual los procesos
cooperativos deben eliminar esta restricción.

Sistemas de Paso de Mensajes

La comunicación tiene lugar mediante el intercambio de mensajes entre los procesos


cooperativos.
Proporciona un mecanismo que permite a los procesos comunicarse y sincronizar sus acciones
sin compartir el mismo espacio de direcciones. Una facilidad de paso de mensajes
proporciona al menos dos operaciones: en vio de mensajes y recepción de mensajes.
Existen métodos para implementar lógicamente un enlace y las operaciones de envío y
recepción:

• Comunicación directa o indirecta.


• Comunicación síncrona o asíncrona.
• Almacenamiento en búfer explicito o automático.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 26


Nombrado

• Comunicación directa: se envía un mensaje de un proceso a otro cuyos parámetros son


nombre de proceso y mensaje. Su sintaxis es: enviar(procesoP, mensaje) y
recibir(procesoQ, mensaje).

• Comunicación indirecta: el mensaje se envía a un buzón de mensajes. La sintaxis es:


enviar(buzón, mensaje) y recibir(buzón, mensaje). Cada proceso tiene un buzón propio y
este se puede implementar a través de un buffer, que puede ser de capacidad cero,
capacidad limitada, o capacidad ilimitada.

En todos los casos el sistema operativo o el subsistema de comunicación entre procesos (IPC)
deben asegurar la consistencia y la correctitud de los mensajes. Para esto se pueden
implementar sumas de verificación (checksum) o similares.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 27


Sincronización

Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia


de los datos.

Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un
mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores
incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento
de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por
vez, así nos aseguramos que los datos quedan consistentes.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 28


Almacenamiento en búfer

Los mensajes intercambiados por los procesos que se están comunicando residen en una cola
temporal, tales colas se pueden implementar de tres maneras:

• Capacidad Cero: La longitud máxima es de cero; por lo cual no hay ningún mensaje
esperando en el enlace.

• Capacidad Limitada: Tiene una longitud finita n; por lo cual hay n mensajes esperando.

• Capacidad ilimitada: La longitud es infinita, por lo cual puede haber infinitos mensajes
esperando en la cola.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 29


COMUNICACIÓN ENTRE PROCESOS Y OPERACIONES

La comunicación entre procesos (comúnmente IPC, del inglés Inter-Process Communication)


es una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a
través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través
de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite
a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un sistema de
bajo nivel de paso de mensajes que ofrece la red subyacente.

La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación). Los


protocolos desarrollados para internet son los mayormente usados: IP (capa de red),
protocolo de control de transmisión (capa de transporte) y protocolo de transferencia de
archivos , protocolo de transferencia de hipertexto (capa de aplicación).

Sistemas Operativos - Período 2021-01 - Segundo Parcial 30


Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red.
Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes, sincronización,
memoria compartida y llamadas de procedimientos remotos (RPC). El método de IPC usado
puede variar dependiendo del ancho de banda y latencia (el tiempo desde el pedido de
información y el comienzo del envío de la misma) de la comunicación entre procesos, y del
tipo de datos que están siendo comunicados.

Sistemas Operativos - Período 2021-01 - Segundo Parcial 31

También podría gustarte