Procesos y Administración del Procesador
Definición de Proceso
Un proceso se trata básicamente de un programa que entra en ejecución. Los procesos son una sucesión de instrucciones que pretenden llegar a un estado final o que persiguen realizar una tarea concreta.
Diagrama de estados simplificado
Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados:
Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos. La información almacenada en un BCP incluye típicamente algunos o todos los campos siguientes:
El BCP Es una estructura de datos con campos para registrar los diferentes aspectos de ejecución del proceso, así como la de la utilización de los recursos. La información del BCP se agrupa generalmente en las siguientes categorías:
Identificación del proceso.
La información correspondiente a la identificación consiste en un conjunto de identificadores que incluyen:
Estados de los Procesos.
Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución en que se encuentra. El número de posibles estados varía de un sistema operativo a otro.Diagrama de estados simplificado
Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados:
- Activo: el proceso está empleando la CPU, por tanto, está ejecutándose. Puede haber tantos procesos activos como procesadores haya disponibles. Por tanto, si el sistema dispone de un único procesador, únicamente puede haber un proceso activo a la vez.
- Preparado: el proceso no está ejecutándose, pero es candidato a pasar a estado activo. Es el planificador el que, en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos preparados para pasar a estado activo.
- Bloqueado: el proceso está pendiente de un evento externo que le ha hecho bloquear, tales como una operación de lectura/escritura, la espera de finalización de un proceso hijo, una señal o una operación sobre un semáforo. El dispositivo/hecho externo "avisa" al S.O. cuando ha terminado la acción que realizaba mediante una INTERRUPCIÓN, dejando el S.O. lo que está haciendo para atender a esta última. Tras esto, el S.O. comprueba cuales son los procesos que fueron bloqueados por ese evento externo, cambiándolos al estado de preparado.
- En espera / Preparación: Estado por el que pasan los procesos antes de pasar a estar preparados por primera vez. Los procesos, cuando comienzan a existir, no están preparados para comenzar a ejecutar instrucciones hasta que el sistema no ha llevado a cabo una serie de actividades. Una vez que el proceso está completamente cargado, ya se puede producir la primera transición al estado preparado.
- Terminado: La transición de activo a este estado ocurre cuando el proceso realiza una llamada al sistema solicitando su propia terminación. En estas circunstancias, hay estructuras de datos correspondientes al proceso que no pueden ser liberadas hasta que el proceso padre del que está terminando recoja el código de terminación del mismo. Hasta que esto ocurra, estas estructuras se mantendrán y el proceso seguirá existiendo en estado terminado.
- Transición: cuando la operación que mantiene a un proceso en estado bloqueado termina, el proceso puede haber perdido parte de los recursos que necesita para proseguir su ejecución. Este es por ejemplo el caso de un sistema con memoria virtual, en el que parte de las páginas de memoria del proceso han sido descargadas a disco. En dicho caso, el proceso tendría que pasar por un estado intermedio transición mientras recupera dichos recursos, y una vez que todos sus recursos vuelven a estar disponibles, volvería al estado preparado.
- El proceso que se encuentra en el estado activo hace una llamada al sistema que, por su naturaleza, resulta en una transición al estado bloqueado. Este es el caso de las llamadas read(), write(), wait(), pause(), entre muchas otras. Al pasar a estado bloqueado, se invoca al planificador para que decida que otro proceso se asignará al procesador.
- Si el proceso que se encuentra en el estado activo excede el tiempo máximo de asignación, en caso de que lo hubiere.
- Si el proceso que hasta ese momento se encontraba en estado activo termina de ejecutar su código.
Operaciones de procesos
La manifestación de un proceso en Un sistema operativo es Un bloque de control de proceso (PCB). El es una estructura de datos que contiene cierta información importante acerca del proceso, incluyendo:- Estado actual del proceso
- Identificación única del proceso
- Prioridad del proceso
- Apuntadores para localizar la memoria del proceso
- Apuntadores para asignar recursos
- Área para preservar registros
Planificación de Procesos.
Conjunto de políticas y mecanismos incorporados al sistema operativo, a través de un módulo denominado planificador, que debe decidir cuál de los procesos en condiciones de ser ejecutado conviene ser despachado primero y qué orden de ejecución debe seguirse. Esto debe realizarse sin perder de vista su principal objetivo que consiste en el máximo aprovechamiento del sistema, lo que implica proveer un buen servicio a los procesos existentes en un momento dado.Bloque de Control del Proceso.
Es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso.Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos. La información almacenada en un BCP incluye típicamente algunos o todos los campos siguientes:
- Identificador del proceso (Process Identificator -PID-, de sus siglas en inglés).
- Estado del proceso. Por ej.: listo, en espera, bloqueado.
- Contador de programa: dirección de la próxima instrucción a ejecutar.
- Valores de registro de CPU. Se utilizan también en el cambio de contexto.
- Espacio de direcciones de memoria.
- Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.
- Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
- Estadísticas del proceso.
- Datos del propietario (owner).
- Permisos asignados.
- Signals pendientes de ser servidos. (Almacenados en un mapa de bits).
El BCP Es una estructura de datos con campos para registrar los diferentes aspectos de ejecución del proceso, así como la de la utilización de los recursos. La información del BCP se agrupa generalmente en las siguientes categorías:
Identificación del proceso.
La información correspondiente a la identificación consiste en un conjunto de identificadores que incluyen:
- El identificador del proceso (PID): Consiste en un número entero asignado por el sistema.
- Identificador del proceso padre.
- La identificación del usuario: Es una cadena de caracteres.
- Registros Visibles para el usuario: Son los registros utilizados por el proceso para almacenar datos de entrada y resultados.
- Registros de control y estado: entre los cuales se incluyen el contador de programa (PC), los registros de códigos de condición, los registros con indicadores de habilitación o inhabilitación de interrupciones y modo de ejecución.
- Puntero de pila del proceso: El proceso utiliza una estructura para almacenar parámetros y direcciones de retorno de funciones y procedimientos.
- Información de planificación y estado: esta información es necesaria para el SO lleve a cabo sus funciones de planificación. Los elementos típicos de esta información son los siguientes:
- Estado del proceso (Ejecución, preparado , etc).
- Prioridad de planificación (se utilizaran algoritmos de planificación que usara esta información).
- Información para la planificación: esta depende del algoritmo de planificación utilizado.
- Suceso por el que se encuentre esperando el suceso para reanudar su ejecución.
- Estructuracion de datos: Un proceso puede estar enlazado a otros procesos formando una cola, unanillo o algun otra estructura o alguna otra estructura.
- Comunicacion entre Procesos: en el BCP pueden ubicarse indicadores, señales y mensajes asociados con la comunicacion entre procesos independientes.
- Privilegios de los recursos: A los procesos le otorgan privilegios en términos de la memoria a la que pueden acceder y los tipos de instrucciones que pueden ejecutar. Además, también se pueden aplicar privilegios al uso de servicios y utilidades del sistema.
- Gestión de memoria: Esta sección incluye punteros a las tablas de las paginas y/o segmentos que describen la memoria asignada al proceso.
- Recursos en propiedad y utilizacion de los procesos. Se incluyen los recursos controlados por el proceso tales como los ficheros abiertos por éste. También se suele incluir un historico de la utilización del procesador o de otro recurso.
Planificación del Procesador.
En general, se distinguen varios niveles de planificación, como se refleja- Planificación a largo plazo (planificador de trabajos). Decide cuál será el próximo trabajo que se va a ejecutar. Este nivel sólo existe en los sistemas de proceso por lotes, donde la decisión se basa en las necesidades de recursos y su disponibilidad. En los sistemas de tiempo compartido tiene como única misión cargar los programas que se desean ejecutar en memoria. Este nivel es, por tanto, el encargado de crear los procesos.
- Planificación a medio plazo (planificador de swapping). Decide si un proceso que está en ejecución en estado bloqueado o suspendido debe ser extraído de la memoria temporalmente. Posteriormente, cuando el sistema se encuentre más descargado, devolverá dicho proceso a la memoria y al estado de ejecución. Este nivel, por tanto, gestiona los procesos suspendidos en espera de algún recurso no disponible en el momento de la suspensión.
- Planificación a corto plazo (planificador del procesador). Es el encargado de decidir cómo y cuándo tendrá acceso al procesador un proceso que está preparado para utilizarlo. Por tanto, lleva a cabo las funciones de la multiprogramación, estando siempre residente en memoria y ejecutándose con mucha frecuencia; por ello, debe ser de ejecución muy rápida. En este nivel es donde se debe dar un buen servicio a los procesos interactivos para que el usuario no perciba, o lo haga en pequeño grado, que está compitiendo por el procesador junto con otros usuarios.







Comentarios
Publicar un comentario