Presentacion Tema 2 Procesos

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 24

TEMA 2

GESTIÓN DE
PROCESOS
Sistemas Operativos
Ing. Aris Castillo
GESTIÓN DE
PROCESOS

 Proceso es cualquier instancia de


un programa que deba ser ejecutada
por el procesador. También se dice
que es una entidad asignable y
ejecutable. Puede constar de una
sola traza de tareas o de varias.
 Un proceso es básicamente un
entorno formado por todos los
recursos necesarios para ejecutar Al igual que las instrucciones de programa, los procesos
programas. incluyen los contadores de programa que indican la dirección
de la siguiente instrucción que se ejecutará de ese proceso y los
registros de CPU, así como las pilas que contienen datos
temporales, como son los parámetros de subrutina, las
direcciones de retorno y variables locales.
GESTIÓN DE PROCESOS
Aplicación de Aplicación de
usuario Sistema
usuario Procesos de background del Utilidad
Sistema Operativo

Proceso Proceso Proceso TCP Correo Iniciar sesión Reloj Utilidad


A B C Proceso Proceso Proceso Proceso Proceso

Las aplicaciones
están formadas
por procesos del
sistema
operativo.
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13

Cada proceso tiene


uno o más hilos de Planificador (scheduler)
ejecución.

El planificador del sistema


La figura muestra como el CPU es planificado
operativo determina qué
subproceso ejecutar en
CPU entre los distintos procesos activos. Los procesos
función de un esquema de como se ve pueden ser desde una aplicación hasta
prioridad alguna tarea rutinaria del sistema operativo.
INTERACCIÓN DE LOS
PROCESOS CON EL SO Proceso de usuario Proceso de usuario Proceso del sistema
T1 T2 T3 T1 T1 T2

Datos locales Datos locales Datos locales


Un proceso contiene El espacio de la memoria de
hilos de ejecución, cada proceso se mantiene
que operan en separados por el sistema operativo
datos locales

El sistema operativo está en capas.


Sólo una pequeña
Los procesos se comunican Núcleo
sección tiene acceso a
a través de mecanismos del
los datos más críticos.
sistema operativo.
Es decir, mensajes,
Las funciones de nivel
memoria compartida y
superior son
semáforos
construidas sobre el
kernel

El SO debe garantizar que todos los procesos accedan ordenadamente a los recursos.
Los procesos se comunican y sincronizan. Se trata de alcanzar un objetivo común.
Por ejemplo al generar código ejecutable los procesos de compilación y ensamble deben comunicarse y sincronizarse.
ESTRUCTURAS DE CONTROL
DE PROCESOS
Process Memory Images
El bloque de control de proceso es la
estructura de datos central y más importante
Memory Tables para el OS.
Memory Process 1
Devices I/O Tables Cada bloque de control de proceso contiene
Files toda la información de un proceso que
Processes File Tables necesita un sistema operativo para su control.

Estos bloques son leídos y/o modificados por


casi todos los módulos de un sistema
Process Table operativo, incluyendo aquellos que tienen que
Process 1 ver con la planificación, la asignación de
recursos, el tratamiento de interrupciones y el
Process 2
.. análisis y supervisión del rendimiento.

Process N Process N
ADMINISTRACIÓN DE
PROCESOS
El bloque de control de proceso contiene:
 Un ID que identifica el proceso
 Punteros a memoria: incluye los punteros asociados al código de programa y los datos
asociados a dicho proceso, además de cualquier bloque de memoria compartido con otros
procesos
 Contenido de Registros.
 Estado de flags y switches.
 Una lista de archivos abiertos por los procesos.
 La prioridad del proceso.
 El estado de todos los dispositivos de entrada y salida necesitado por el proceso.
CARACTERÍSTICA DE
PROCESO
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado
por:
 Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
 Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para
dicho programa.
 Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
 Otra información que permite al sistema operativo su planificación.
MODELO DE 9 ESTADOS DE PROCESOS

Los procesos se encuentran en diferentes estados según las necesidades del equipo, sus recursos, y la coordinación y
manipulación por parte del S.O. De estos distintos estados, los más básicos serían: Nuevo, Activo, Preparado, Bloqueado y
Terminado; encontrándose obligatoriamente en alguno de ellos desde el comienzo del proceso a la finalización del mismo.
IMAGEN DE LOS PROCESOS

La imagen de un proceso es la colección de programa, datos, pila, y atributos que el sistema operativo construye para manejar
y controlar el proceso
La imagen del proceso se mantiene en memoria secundaria generalmente y no necesariamente será un bloque continuo de
información. La pila es usada para mantener una secuencia de las llamadas a procedimientos y paso de parámetros entre
procedimientos.
PROCESOS EN MEMORIA
Para que un proceso pueda ejecutarse debe estar
ubicado en la memoria principal del ordenador.

Una parte del sistema operativo se va a encargar de


gestionar la memoria principal, de forma que los
Program Counter
Dispatcher procesos puedan residir en la memoria sin conflictos.
La gestión de la memoria implica varias tareas, una de
ellas es llevar un registro de qué zonas están libres (es
decir, no están siendo utilizadas por ningún proceso),
Process A y qué zonas están ocupadas por qué procesos.

No todo el código y datos de un proceso se ubican en


Process la memoria principal. A menudo se debe pasar parte, o
Process B
Images la totalidad del código y datos de un proceso, de
memoria a disco, o viceversa; siendo el sistema
operativo responsable de esta tarea.
Process C
MODOS DEL SO: USUARIO Y
NÚCLEO
PSW: Program State Word
guarda el modo

Los procesos en modo usuario son menos


privilegiados y no puede acceder a recursos
del sistema directamente. Para ello deben
realizar llamadas al sistema (syscalls) y
pasan a ser ejecutados en modo núcleo.
El núcleo del sistema operativo es el nivel
más interno del sistema operativo. Actúa de
interfaz entre el hardware básico y el resto de
componentes del sistema operativo. El modo
kernel o núcleo es usado para acceder a
componentes de hardware, planificar
procesos, manejar software y la interacción
con el hardware.
El CPU intercambia entre modo usuario y
modo kernel a medida que se requiere.
CAMBIO DE CONTEXTO

Cambio de contexto se requiere cada vez que se cambia de proceso e involucra almacenar el estado del proceso o
subproceso, de modo que pueda restaurarse y reanudar la ejecución en un punto posterior, y luego restaurar un estado
diferente previamente guardado, estado. Esto permite que múltiples procesos compartan una sola unidad central de
procesamiento (CPU) y es una característica esencial de un sistema operativo multitarea.
INTERCAMBIO DE PROCESOS
Process 1
5000 El SO debe intercalar la ejecución de
5001
5002 múltiples procesos para optimizar al
5003 Process 2 máximo la utilización del procesador,
5004
12000 ofreciendo un tiempo de respuesta
Timeout
12001 razonable.
12002 Process 3
12003
8000
I/O Request 8001
8002
8003
8004 Se puede dar por:
12004 - El proceso entra en modo Bloqueado
I/O Completion (2)
12005 - Interrupción de E/S
12006
12080 - Interrupción de reloj
12081 - Fallo de memoria
5005 Program - Llamada de supervisor
5006
5007
Completion (2) - Trap
5008
5009
CAMBIO DE PROCESO
El cambio de proceso involucra:
 Guardar el contexto del procesador (PC y los demás registros)
 Actualizar el PCB del proceso en Ejecución con su nuevo estado y con otra información
asociada.
 Mover el PCB a la cola apropiada (Listo, Bloqueado, Suspendido, etc.)
 Seleccionar otro proceso para ejecución
 Actualizar el PCB del proceso seleccionado
 Restaurar el contexto del CPU del proceso seleccionado.
PLANIFICACIÓN DE
PROCESOS
El sistema operativo es el encargado de decidir qué procesos
entran en la CPU cuando ésta queda libre, y en qué momento
sale de la CPU el proceso que está en ejecución. Todo ello se
lleva a cabo a través de una política de planificación de
procesos. Se pueden definir múltiples políticas de
planificación de procesos: por orden de llegada, primero la
tarea más breve, por orden de prioridad, etc.

En definitiva, lo que una política de planificación debe


conseguir es que los procesos obtengan adecuadamente sus
turnos de ejecución por lo que son tratados de la misma
forma, que no se produzca sobrecarga, es decir, el
planificador debe responder rápidamente ante cargas de
trabajo ligera y responder de la misma forma ante cargas de
trabajo similares.
TIPO DE PLANIFICACIÓN
 A largo plazo

Determina qué trabajos se admiten en


el sistema para su procesamiento.
Inicialmente, los procesos son
encolados en un dispositivo de
almacenamiento masivo
(normalmente, un disco) para que
posteriormente el scheduler a corto
plazo los pueda seleccionar y consigan
iniciar su ejecución.
 A mediano plazo: Decide cuáles procesos es conveniente bloquear en determinado momento, sea por
escasez/saturación de algún recurso (como la memoria primaria) o porque están realizando alguna
solicitud que no puede satisfacerse momentáneamente; se encarga de tomar decisiones respecto a los
procesos conforme entran y salen del estado de bloqueado (esto es, típicamente, están a la espera de
algún evento externo o de la finalización de transferencia de datos con algún dispositivo).
 A corto plazo (scheduler de la CPU): determina qué proceso debe ser ejecutado en cada instante de
tiempo o, dicho de otra forma, el scheduler a corto plazo determinará el proceso que seleccionará el
dispatcher para asignarle el control de la CPU.
CONSIDERACIONES PARA LA
PLANIFICACIÓN
Para evaluar el comportamiento de los distintos algoritmos, se definen los siguientes parámetros:
 Tiempo de retorno: Tiempo que transcurre entre la entrega del programa para su ejecución y
la obtención de los resultados. Es similar al tiempo de ejecución. Se utiliza en sistemas batch.
 Tiempo de respuesta: Tiempo que transcurre desde que el sistema tiene el programa hasta que
comienzan a salir los resultados. Estará formado por un tiempo de espera y un tiempo de
ejecución. Se usa en sistemas interactivos.
 Rendimiento o productividad: Número de trabajos procesados por unidad de tiempo.
ALGORITMO DE
PLANIFICACIÓN
 Primero en entrar primero en salir:

La carga de trabajo se procesa por


orden de llegada. Ofrece un bajo
rendimiento y un índice de
productividad bajo al no considerar el
estado del sistema y las necesidades
de recursos de los procesos, y un
pobre tiempo de respuesta a sucesos
del sistema debido a la falta de
prioridad de los procesos y a no ser
una planificación apropiativa.
 Planificación del trabajo más corto primero: SJF
(Shortest Job First) Es una planificación no
apropiativa según la cual se ejecuta primero el
proceso en espera que tenga menor tiempo
estimado de ejecución hasta terminar. SJF reduce
el tiempo de espera promedio del FIFO.
 Planificación por fracciones de tiempo: RR
(Round-Robin) En los entornos interactivos (como
los sistemas de tiempo compartido) el objetivo
principal es dar buenos tiempos de respuesta y, en
general, compartir equitativamente los recursos del
sistema entre todos los usuarios. Por ello, sólo las
planificaciones apropiativas se pueden considerar
en tales entornos y una de las más populares es la
división en el tiempo en fracciones o Round
Robin.
 Planificación por colas de niveles múltiples: MLQ
(Multi Level Queues) La idea de esta
planificación es clasificar la carga de trabajo de
acuerdo con sus características y mantener colas
separadas de procesos atendidos por distintos
planificadores.
CONCURRENCIA
Cuando hay más de un procesador ejecutando paralelamente varios procesos,
se pueden dar alguna de las siguientes situaciones:
1. Interbloqueo (deadlock): situación en que 2 o más procesos son incapaces
de actuar porque cada uno está esperando que alguno de los otros haga algo.
2. Inanición (starvation): un proceso preparado para avanzar es soslayado
indefinidamente por el planificador; aunque es capaz de avanzar, nunca se les
escoge.
3. Círculo vicioso (livelock): dos o más procesos cambian continuamente su
estado en respuesta a cambios en los procesos, sin realizar ningún trabajo útil.
SINCRONIZACIÓN
Técnicas como el cerrojo y otras para forzar la exclusión mutua
y el orden de eventos.
 Exclusión mutua: sólo un proceso puede estar en secciones
críticas a la vez. Dos formas:
 Por Hardware: se puede deshabilitar interrupciones o a través de
instrucciones especiales de máquina, como test&set, exchange.
 Por semáforos: mecanismo de sistema operativo y lenguaje de
programación.
 Gestión de memoria: asegurar consistencia cuando varios
procesadores comparten una página o segmento y por el
reemplazo de los mismos.
 Fiabilidad y tolerancia a fallos: acciones en caso de falla de
un procesador.
EJECUCIÓN DEL SO
 Núcleo separado: el núcleo está fuera de los procesos, los procesos se aplican solamente a
programas de usuario, el código del OS es ejecutado como una entidad separada en modo
privilegiado.
 Ejecución dentro de procesos de usuario: casi todo el OS está dentro del contexto de
procesos; el OS es una colección de rutinas que el usuario llama para realizar diferentes
funciones ejecutadas dentro de los procesos de usuarios.
 OS basado en procesos: el OS es implementado como una colección de procesos del sistema;
es modular, las funciones no críticas son implementadas como procesos externos, bueno para
sistemas multiprocesadores, incrementa el desempeño ya que la mayoría de las funciones son
procesos independientes.
VIDEOS
 Cores: https://www.youtube.com/watch?v=kKiUH9eJjH4

También podría gustarte