Tema IV Gestión del Núcleo y los Procesos de los Sistemas Operativo
Docente: María Teresa Alumno: Liber Siso
Definición de Proceso
Es una serie de
tareas interrelacionadas que, juntas transforman las entradas en
salidas. Estas pueden ser realizadas por personas, la naturaleza o
máquinas utilizando diversos recursos; un proceso de ingeniería debe
considerarse en el contexto de los agentes que realizan las tareas y los
atributos de recursos involucrados.
Los
documentos normativos de la ingeniería de sistemas y los relacionados con los
modelos de madurez se basan generalmente en procesos, por ejemplo, los procesos
de ingeniería de sistemas del EIA-632 y los procesos involucrados en el enfoque
de institucionalización y mejora de la Integración del modelo de madurez de
capacidades (CMMI).
Las restricciones impuestas a las tareas y los recursos necesarios para implementarlas son esenciales para ejecutar las tareas mencionadas.
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:
·
· · 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.
·
La transición de activo a preparado y viceversa depende de decisiones tomadas por el planificador del sistema operativo en base a un cierto criterio. La transición de activo a bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al sistema.
Ø
Diagrama de Estados Ampliado
· · 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.
Planificación de
Procesos
Son un 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.
Un proceso es un
programa en ejecución. Existen 3 estados en los que puede encontrarse un
proceso, estos son: "Listo", "Bloqueado" y "En
ejecución". Para el control de los mismos internamente son almacenados en
una lista, cada uno de los nodos guarda información de un proceso. En esa
información se almacena, entre otros aspectos, el estado en que se encuentra el
proceso, el tiempo que el proceso ha usado el CPU, e información de E/S
(entrada/salida). Los sistemas operativos cuentan con un componente llamado
planificador, que se encarga de decidir cuál de los procesos hará uso del
procesador. La toma de esta decisión, así como el tiempo de ejecución del
proceso, estará dada por un algoritmo, denominado Algoritmo de Planificación.
Bloque de Control del
Sistema o en Ingles PCB (Process Control Block)
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
de 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.
· Señales
(Signals) pendientes de ser servidas. (Almacenados en un mapa de bits).
Esta lista es
simplemente indicativa, cada sistema operativo tiene su propio diseño de BCP,
con el conjunto de metadatos necesarios para la administración. Puede medir
desde 32 bits a 1024. Su denominación cambia según el sistema operativo, por
ej. en IBM se designa PSW por palabra de estado de proceso. Difiere
significativamente entre los sistemas de procesamiento por lotes (BATCH) y los
sistemas interactivos.
Algunos sistemas
de multiprogramación incluyen información de mantenimiento con el propósito de
facturar a los usuarios individuales el tiempo de procesador, el
almacenamiento, las operaciones de E/S y otras utilizaciones de recursos.
Una vez creado,
el BCP se rellena con los atributos definidos como parámetros que se hallan en
la plantilla del proceso o que son especificados como parámetros de la llamada
al sistema operativo crear proceso. En ese momento el sistema operativo suele
asignar valores a otros campos.
Por ejemplo,
cuando se crea un proceso, los registros e indicadores hardware se fijan a los
valores proporcionados por el cargador/enlazador. Cada vez que un proceso queda
suspendido, el contenido de los registros del procesador es generalmente
guardado en la pila, y el puntero al marco de la pila en cuestión se almacena
en el BCP. De este modo los valores de los registros son restaurados cuando el
proceso es seleccionado para ejecutarse nuevamente.
Bloque de Control de
Proceso Planificación del Procesador
Es la estructura
de datos central y más importante de un sistema operativo. Cada bloque de
control de proceso contiene toda la información de un proceso que necesita un
sistema operativo para su control.
Estos bloques
son leídos o modificados por casi todos los módulos de un sistema operativo,
incluyendo aquellos que tienen que ver con la planificación, la
asignación de recursos, el tratamiento de interrupciones y
el análisis y supervisión del rendimiento. El conjunto de todos los PCB’s se
guarda en una estructura del sistema operativo llamada tabla de procesos,
la cual se puede implementar como un vector o un lista enlazada.
La tabla de procesos reside en memoria principal, debido a su alta
frecuencia de consulta.
En un sistema de
multiprogramación, se requiere una gran cantidad de información de cada proceso
para su administración. Los distintos sistemas que organizan esta información son
las siguientes:
Ø Información del estado del procesador: Es la información de estado del procesador. Básicamente, está formada por el contenido de los registros del procesador. Por supuesto, mientras el proceso está ejecutándose, la información está en los registros. Cuando se interrumpe el proceso, toda la información de los registros debe salvarse de forma que pueda restaurarse cuando el proceso reanude su ejecución. La naturaleza y número de registros involucrados depende del diseño del procesador. Normalmente, en el conjunto de registros se incluyen los registros visibles para el usuario, los registros de control y de estado (contador de programa y palabra de estado) y los punteros a pila.
Ø Ø Información de control del proceso: Es la información adicional necesaria para que el sistema operativo controle y coordine los diferentes procesos activos. Como, por ejemplo, información de planificación y estado (estado del proceso, su prioridad, información de planificación, suceso), apuntadores(punteros) a estructuras de datos (los procesos que esperan en un semáforo), punteros a zonas de memoria del proceso, recursos controlados por el proceso (ficheros abiertos), etc.





0 comments:
Publicar un comentario