Está en la página 1de 29

Unidad 6:

Procesos, hilos y recursos

Materia: Sistemas Operativos.


Ing. Diana López
2.1 Descripción Y Control De Procesos
• Cada programa que se ejecuta mediante una orden de ejecutar dada
por el usuario, se trata como un proceso independiente.
• Estos procesos generados por el S.O. se denominan implícitos. Una
vez terminada la ejecución de los mismos, su eliminación también la
realiza el propio S.O.
• Así mismo, el S.O. proporciona en tiempo real los servicios que son
necesarios para que el usuario pueda definir procesos de forma
explicita. Los programas acceden a estos servicios realizando
llamadas al sistema (system call).
• Estas llamadas pueden aparecer incrustadas en el có digo de un
programa de usuario o del propio sistema, se asemejan a
llamadas a procedimientos o funciones que dan lugar a
transferencias de rutinas del S.O. cuando se invocan en tiempo
real.
• Las llamadas al sistema se realizan también, pero de forma
indirecta, cuando se dan ó rdenes al S.O. a través de un terminal, la
rutina de monitorizació n del terminal se encarga de transformar
las ó rdenes en llamadas al sistema.
• De esta forma, al comienzo de la ejecució n del programa
principal de un usuario se inicia la ejecució n de un proceso. A su
vez el proceso podría crear nuevos procesos. El proceso que crea
otro nuevo se denomina proceso padre (parent process), y el
proceso creado de denomina proceso hijo (child process). Una
vez creado un proceso hijo, la ejecució n de padre e hijo
transcurre de manera concurrente.
• De esta manera se puede crear una jerarquía de procesos, en la
que un padre puede tener varios hijos y estos pueden tener
otros hijos, etc., pero donde cada hijo só lo tiene un padre.
Definición de Proceso
• Un proceso se refiere a las instrucciones que
ejecutará el microprocesador mientras lee un
programa determinado. Esto también implica a la
memoria reservada y a sus contenidos, el estado
de ejecució n en determinado momento, y la
informació n que permite al sistema operativo
planificar.
• Un proceso es una instancia de ejecució n de un
programa, caracterizado por su contador de
programa, su palabra de estado, sus registros del
procesador, su segmento de texto, y datos, etc.
Estados de Procesos
Los estados de los procesos son:
• Vacio
• Espera
• Ejecució n
El principal trabajo del procesador es ejecutar las
instrucciones de má quina que se encuentran en
memoria principal. Estas instrucciones se encuentran en
forma de programas.
Para que un programa pueda ser ejecutado, el sistema
operativo crea un nuevo proceso, y el procesador ejecuta
una tras otra las instrucciones del mismo.
Modelo de cinco estados

Los cinco estados de este diagrama son los siguientes:


Ejecución: el proceso está actualmente en ejecució n.
Listo: el proceso está listo para ser ejecutado, só lo está esperando que el
planificador de corto plazo así lo disponga.
Espera: el proceso no puede ejecutar hasta que no se produzca cierto
suceso, como la finalizació n de una operació n de Entrada/Salida
solicitada por una llamada al sistema operativo.
Nuevo: El proceso recién fue creado y todavía no fue
admitido por el sistema operativo. En general los procesos
que se encuentran en este estado todavía no fueron
cargados en la memoria principal.

Terminado: El proceso fue expulsado del grupo de


procesos ejecutables, ya sea porque terminó o por algú n
fallo, como un error de protecció n, aritmético, etc.
• La mayoría de los procesadores dan soporte para dos
modos de ejecució n por lo menos.
• Ciertas instrucciones pueden ejecutarse só lo en modo
privilegiado.
• El modo menos privilegiado a menudo se conoce como modo
de usuario
• Es necesario proteger al sistema operativo y a las tablas
importantes del mismo, tales como los bloques de control de
procesos, de las injerencias de los programas de usuario.
• En el modo del nú cleo, el software tiene control completo
del procesador y de todas sus instrucciones, registros y
memoria.
• Este nivel de control no es necesario y, por
seguridad, tampoco conveniente para los programas
de usuario.
Surgen dos preguntas:
• 1. ¿Cómo conoce el procesador en qué modo va a ejecutar?
• 2. ¿Cómo se cambia de modo?

1. Para la primera pregunta, normalmente hay un bit en la


PSW(Program Status Word) que indica el modo de ejecució n. El bit es
cambiado como respuesta a ciertos sucesos. Por ejemplo, cuando
un usuario hace una llamada a un servicio del sistema operativo, el
modo se cambia al de nú cleo.
2. Esto se suele llevar a cabo ejecutando una instrucció n que cambia el
modo. Un ejemplo de có mo se hace esto es la instrucció n de Cambio
de Modo (CHM, Change Mode). Cuando el usuario hace una llamada
a un servicio del sistema o cuando una interrupció n transfiere el
controla una rutina del sistema, la rutina ejecuta CHM para entrar en
un modo má s privilegiado y la ejecuta de nuevo para pasar a un
modo menos privilegiado, antes de devolver el control alproceso del
usuario.
•Listo: Tiene todo lo necesario para
ejecutarse excepto el procesador.
• Suspendido: No está en memoria
principal.
• Bloqueado: Está esperando un evento.
• Bloqueado y suspendido.
• Listo y suspendido.
Hilos
Proceso ligero.
Unidad mínima de expedició n: hilo.

Dos hilos de una misma tarea (denominados hilos pares) comparten


el segmento de có digo, el segmento de datos y un espacio de pila, es
decir, los recursos asignados a la tarea.
•En el caso de los procesos, cada uno opera independientemente de los
otros; cada proceso tiene su propio contador de programa, registro de
pila, y espacio de direcciones.
•Cuando un hilo está en ejecució n, posee el acceso a todos los
recursos que tiene asignados la tarea.
• Estado.
• Contexto del procesador.
• Pila de ejecució n.
• Espacio de almacenamiento
está tico.
• Acceso a los recursos de la tarea.
•Se tarda menos tiempo en crear un hilo de una tarea existente
que en crear un nuevo proceso.
•Se tarda menos tiempo en terminar un hilo que en terminar un
proceso.
•Se tarda menos tiempo en cambiar entre dos hilos de una
misma tarea que en cambiar entre dos procesos (porque los
recursos no cambian, por ejemplo)
Los temas fundamentales del diseñ o de sistemas operativos
está n relacionados con la gestió n de procesos e hilos:

•Multiprogramación: consiste en la gestió n de varios procesos


dentro de un sistema mono-procesador.

•Multiprocesamiento: consiste en la gestió n de varios


procesos, dentro de un sistema multiprocesador.

•Procesamiento distribuido: consiste en la gestió n de varios


procesos, ejecutá ndose en sistemas de computadores
mú ltiples y distribuidos.
•Múltiples aplicaciones: la multiprogramació n se creó para
permitir que el tiempo de procesador de la má quina fuese
compartido diná micamente entre varias aplicaciones activas.

•Aplicaciones estructuradas: como ampliació n de los principios


del diseñ o modular y la programació n estructurada, algunas
aplicaciones pueden implementarse eficazmente como un
conjunto de procesos concurrentes.

•Estructura del sistema operativo: las mismas ventajas de


estructuració n son aplicables a los programadores de sistemas y
se ha comprobado que algunos sistemas operativos está n
implementados como un conjunto de procesos o hilos.
• En un sistema multiprogramado con un ú nico procesador, los
procesos se intercalan en el tiempo aparentando una ejecució n
simultá nea. Aunque no se logra un procesamiento paralelo y
produce una sobrecarga en los intercambios de procesos, la
ejecució n intercalada produce beneficios en la eficiencia del
procesamiento y en la estructuració n de los programas.
• La intercalació n y la superposició n pueden contemplarse como
ejemplos de procesamiento concurrente en un sistema
monoprocesador, los problemas son consecuencia de la velocidad
de ejecució n de los procesos que no pueden predecirse y depende
de las actividades de otros procesos, de la forma en que el sistema
operativo trata las interrupciones surgen las siguientes
dificultades:
Elementos de gestió n y diseñ o que surgen por causa de la concurrencia:
1) El sistema operativo debe seguir a los distintos procesos activos
2)El sistema operativo debe asignar y retirar los distintos recursos a
cada proceso activo, entre estos se incluyen:
• Tiempo de procesador
• Memoria
• Archivos
• Dispositivos de E/S
3) El sistema operativo debe proteger los datos y los recursos físicos
de
cada proceso contra injerencias no intencionadas de otros procesos.

4) Los resultados de un proceso deben ser independientes de la


velocidad a la que se realiza la ejecució n de otros procesos
concurrentes.
Para abordar la independencia de la velocidad debemos ver las
formas
Se puede clasificar los en que interactú an los procesos en funció n
del nivel de conocimiento que cada proceso tiene de la existencia
de los demá s. Existen tres niveles de conocimiento:
1)Los procesos no tienen conocimiento de los demá s: son
procesos independientes que no operan juntos. Ej: la
multiprogramació n de procesos independientes. Aunque los
procesos no trabajen juntos, el sistema operativo se encarga de la
“competencia” por los recursos.
2) Los procesos tienen un conocimiento indirecto de los otros: los
procesos no conocen a los otros por sus identificadores de
proceso, pero muestran cooperació n el objeto comú n.

3)Los procesos tienen conocimiento directo de los otros: los


procesos se comunican por el identificador de proceso y pueden
trabajar conjuntamente.
Exclusión Mutua
Consiste en que un solo proceso excluye temporalmente
a todos los demás para usar un recurso compartido de
forma que garantice la integridad del sistema

Sección crítica
Es la parte del programa con un comienzo y un final
claramente marcados que generalmente contiene la
actualización de una o más variables compartidas.
Competencia entre procesos por los recursos
• Los procesos concurrentes entran en conflicto cuando compiten por
el uso del mismo recurso; dos o má s procesos necesitan acceder a un
recurso durante su ejecució n .Cada proceso debe dejar tal y como
esté el estado del recurso que utilice.
• La ejecució n de un proceso puede influir en el comportamiento de los
procesos que compiten. Por Ej. Si dos procesos desean acceder a un
recurso, el sistema operativo le asignará el recurso a uno y el otro tendrá
que esperar.
• Cuando hay procesos en competencia, se deben solucionar tres
problemas de control: la necesidad de exclusió n mutua.
• Suponiendo que dos procesos quieren acceder a un recurso no
compartible. A estos recursos se les llama “recursos críticos” y la
parte del programa que los utiliza es la “secció n crítica” del
programa. Es importante que só lo un programa pueda acceder a su
secció n crítica en un momento dado.
• Hacer que se cumpla la exclusió n mutua provoca un interbloqueo.
• Sólo un proceso, de todos los que poseen secciones críticas por el mismo
recurso compartido, debe tener permiso para entrar en ella en un
momento dado. Un proceso que se interrumpe en una secció n no crítica
debe hacerlo sin interferir con los otros procesos. Un proceso no debe
poder solicitar acceso a una secció n crítica para despué s ser demorado
indefinidamente, no puede permitirse el interbloqueo o la inanició n.
• Si ningú n proceso está en su secció n crítica, cualquier proceso que
solicite entrar en la suya debe poder hacerlo sin demora. No se debe
suponer sobre la velocidad relativa de los procesos o el nú mero de
procesadores.
• Un proceso permanece en su secció n crítica por un tiempo finito. Una
manera de satisfacer los requisitos de exclusió n mutua es dejar la
responsabilidad a los procesos que deseen ejecutar
concurrentemente.
• Tanto si son programas del sistema como de aplicació n, los procesos
deben coordinarse unos con otros para cumplir la exclusió n mutua, sin
ayuda del lenguaje de programació n o del sistema operativo.
Exclusión mutua
• Consiste en que un solo proceso excluye temporalmente a todos los
demá s para usar un recurso compartido de forma que garantice la
integridad del sistema
• Los algoritmos de exclusió n mutua se usan en programació n para evitar
que fragmentos de có digo conocidos como secciones críticas sean
accedidas al mismo tiempo a recursos que no deben ser compartidos
• La té cnica que se emplea para conseguir la exclusió n mutua es inhabilitar
las interrupciones durante el conjunto de instrucciones má s pequeñ o que
impedirá la corrupció n de la estructura compartida
• La mayoría de los mé todos de exclusió n mutua clá sicos intentan reducir
la espera activa mediante las colas y cambios de contexto
• Algunos investigadores afirman que las pruebas indican que estos
algoritmos especiales pierden má s tiempo del que ahorran
• Algunos ejemplos de soluciones por software y hardware son los
algoritmos clá sicos de exclusió n mutua:
1. El algoritmo de
Dekker
2. El algoritmo de
Peterson
Semáforos
Un semáforo es un algoritmo de control de procesos diseñada
para sincronizar dos o más procesos, de modo que su ejecución
se realice de forma ordenada y sin conflictos entre ellos.

Los semá foros pueden ser usados para diferentes propó sitos, entre
ellos:
• Implementar cierres de exclusió n mutua o locks.
• Eliminar Barreras
• Permitir a un má ximo de N threads, acceder a
un recurso, inicializando el semá foro en N.
Se utilizan dos variables comunes para realizar el có digo.
La operació n P Se denomina "wait" o "espera"
Wait.- Pregunta a los procesos si su contador es > ó = que cero, en
caso de no ser así, los decrementa. El proceso que cambia en este
caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados
es el que automáticamente toma el control del procesador.
La operació n V se denomina "signal" o "señ al".

Signal.- determina el tiempo t, y pregunta a los procesos si su


contador es < que cero en caso de que sea afirmativa la respuesta,
saca a este proceso de su ejecució n.

Los semá foros tambié n se emplean para permitir el acceso a


diferentes partes de programas donde se manipulan variables o
recursos que deben ser accedidos de forma especial.

Los sistemas operativos usan semá foros para controlar el acceso a


una secció n crítica o recursos compartidos. El semá foro se inicializa
en un valor que corresponde al nú mero de recursos disponibles
Monitores
• El monitor del sistema es la herramienta que permite ver el estado
del sistema. Esta herramienta permite generar grá ficos a tiempo
real del estado de funcionamiento de los diversos componentes del
sistema, así como hacer un seguimiento de estos componentes,
obteniendo informes e incluso lanzando aplicaciones en respuesta a
determinadas condiciones. Los elementos de monitorizació n que
permite crear el monitor del sistema son de cuatro tipos: grá ficos,
alertas, registros e informes.
• Un monitor encapsula el có digo relativo a un recurso compartido
en un solo mó dulo de programa;

• Mantenimiento má s simple.
Menos errores de
programació n.
Monitores
• La interfaz del monitor es un conjunto de funciones que
representan las diferentes operaciones que pueden hacerse con
el recurso.
• La implementació n del monitor garantiza la exclusió n
mutua: Mediante semá foros o algú n otro mecanismo.
• Implícitamente en los lenguajes
concurrentes Monitor residente
• Son programas que residían en memoria y que gestionaban
la ejecució n de una cola de trabajos.
• Un monitor residente estaba compuesto por un cargador, un
Inté rprete de comandos y un Controlador (drivers) para el
manejo de entrada/salida.

También podría gustarte