Está en la página 1de 29

Docente:Ing Ivan Martinez Moran

SISTEMAS OPERATIVOS
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
SISTEMAS OPERATIVOS
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
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.

En el estado en ejecución solo puede haber un proceso, sin embargo, varios pueden estar
listos o bloqueados.
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
SISTEMAS OPERATIVOS
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
• 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).

• 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
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
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
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
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
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.

• 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
SISTEMAS OPERATIVOS
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
SISTEMAS OPERATIVOS
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
SISTEMAS OPERATIVOS
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
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
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
SISTEMAS OPERATIVOS
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
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
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
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
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
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
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

También podría gustarte