Guia de Estudio Unidad II-sistema de Operaciones
Guia de Estudio Unidad II-sistema de Operaciones
Guia de Estudio Unidad II-sistema de Operaciones
Qu es un proceso?
Se refiere a las instrucciones que ejecutara el procesador, mientras que lee un problema
determinado.
Qu es concurrencia?
Es la ejecucin de procesos al mismo tiempo
Cules son los estados de los procesos?
Corriendo (Running)
Listo (Ready)
Bloqueado (blocked)
Qu es una bandera y donde se aplica?
Es la que te indica si el proceso se va a aplicar, o hay que esperar y se aplica en el sistema.
Qu diferencia existe entre semforo y monitor?
El monitor es ms fcil de usar que los semforos. Semforo general: dos o ms procesos
pueden cooperar por medio de simples seales de forma que se pueda obligar a detener a un
proceso en una posicin determinada hasta que reciba una seal especfica. un monitor es una
coleccin de procedimientos y datos, agrupados en una especie de mdulo muy especial
conocido como mdulo monitor. Los procesos pueden llamar a los procedimientos del monitor
siempre que lo deseen, pero no pueden acceder directamente a las estructuras de datos internas
del monitor desde procedimientos declarados fuera del monitor.
Investigue dentro de Windows y Linux como matar un proceso
Windows: ctrl+alt+supr
Linux: primer debes mostrar la lista de procesos activos y luego con su PID (identificador situado
en la segunda columna) matarlo, Si ya ests cansado de hacerlo de esta forma, tienes PsDoom,
una herramienta con la que podemos tratar con los procesos jugando al Doom. Cada uno de los
procesos aparecer como un monstruo con su pid y su nombre. Para matarlo simplemente
habr que acribillarlo. xD
En qu consiste la tcnica de interbloqueo?
Es cuando varios procesos piden el mismo recurso y se salva.
Cules son las condiciones para producir un interbloqueo?
Antes de interbloquear debe existir concurrencia y se produce un bloque permanente.
9. Defina los conceptos de:
a) Sincronizacin: Ejecucin simultanea de dos procesos.
b) Exclusin mutua: Comunicacin requerida entre uno o dos procesos.
c) Semforo: Son aquellos que solucionan problemas de procesos concurrentes de manera
fiable.
Cules son los 5 estados de los procesos y sus similitudes?
Inicio
Listo
Espera
Suspendido
Ejecucin
Bloqueado
Bloqueado
Bloqueado- Suspendido
Liberado
Listo y suspendido
Definicion de procesos
Un proceso es una instancia de ejecucin de un programa, caracterizado por su contador
de programa, su palabra de estado(Palabra que recoge en binario el estado del entorno de
programa, despus de la ejecucin de cada instruccin.), sus registros ( pequea memoria
interna del microprocesador, formada generalmente por biestables) del procesador, su segmento
de texto, pila (zona reservada de la memoria o registros hardware donde se almacena
temporalmente el estado o informacin de un programa, rutina, etc..) y datos, etc.
Estados de procesos
Como se ha puesto de manifiesto, el proceso es un elemento dinmico que puede pasar por
diferentes estados a lo lo largo de su existencia. De forma general, un proceso puede
encontrarse en un instante determinado en uno de lo siguientes estados:
Activo, Preparado, Bloqueado o suspendido, Nonato y Muerto.
La tarea activa es la que est ejecutndose en un instante dado.En el caso de sistemas con un
nico procesador, slo puede haber una tarea en dicho estado en cada instante.
En el estado de preparado, se encuentran todas las tareas que estn listas para ejecutarse
pero que esperan a que un/el procesador quede libre(hay otros procesos ms prioritarios en
ejecucin).
Las tareas que estn a la espera de que se cumpla una condicin y que por lo tanto, no estn
preparadas para ejecutase, se dice que estn en el estado bloqueado o suspendido; alguno
ejemplos de condicin son: que se termine una operacin de E/S o que se reciba una seal de
sincronizacin.
Un proceso esta muerto cuando ha terminado su ejecucin o bien el sistema operativo a
detectado un error fatal y lo ha transferido a dicho estado. Tambien es posible que haya entrado
l como resultado de un fallo del propio sistema operativo(cuestin que desgraciadamente suele
ocurrir frecuentemente en algunos OS.
El estado de nonato indica que el programa realmente existe pero todava no es conocido por
el OS.
Control de procesos
La mayora de los procesadores dan soporte para dos modos de ejecucin por lo menos.
Ciertas instrucciones pueden ejecutarse slo en modo privilegiado. Entre stas estn la lectura o
modificacin de registros de control (como la palabra de estado del programa), instrucciones
primitivas de E/S e instrucciones relativas a la gestin de memoria. Adems, se puede acceder a
ciertas regiones de memoria slo en el modo ms privilegiado.
El modo menos privilegiado a menudo se conoce como modo de usuario, ya que los pro
gramas de usuario ejecutan normalmente en ese modo. Al modo ms privilegiado normal
mente se le conoce como modo del sistema, modo de controlo modo del ncleo. Este ltimo
trmino se refiere al ncleo del sistema operativo, que es la parte del sistema operativo que
lleva a cabo las funciones importantes del sistema.
La razn por la que se usan dos modos debe quedar clara. 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 ncleo, el software tiene control
completo del procesador y de todas sus instrucciones, registros y memoria. Este nivel de con
trol no es necesario y, por seguridad, tampoco conveniente para los programas de usuario.
Surgen dos preguntas: Cmo conoce el procesador en qu modo va a ejecutar? Cmo se
cambia de modo? Para la primera pregunta, normalmente hay un bit en la PSW que indica el
modo de ejecucin. 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 ncleo.
Esto se suele llevar a cabo ejecutando una instruccin que cambia el modo. Un ejemplo de cmo
se hace esto es la instruccin de Cambio de Modo (CHM, Change Mode) del VAX.
Concurrencia exclusin mutua y Sincronizacion
Concurrencia: exclusin mutua y sincronizacin
Los temas fundamentales del diseo de sistemas operativos estn relacionados con la gestin de
procesos e hilos:
Multiprogramacin: consiste en la gestin de varios procesos dentro de un sistema monoprocesador.
Multiprocesamiento: consiste en la gestin de varios procesos, dentro de un sistema
multiprocesador.
Procesamiento distribuido: consiste en la gestin de varios procesos, ejecutndose en sistemas
de computadores mltiples y distribuidos. La reciente proliferacin de las agrupaciones es el
principal ejemplo de este tipo de sistemas.
La concurrencia es fundamental en todas estas reas y para el diseo sistemas operativos. La
concurrencia comprende un gran nmero de cuestiones de diseo, incluida la comunicacin
entre procesos, comparticin y competencia por los recursos, sincronizacin de la ejecucin de
varios procesos y asignacin del tiempo de procesador a los procesos. Se ver que estas
cuestiones no solo surgen en entornos de multiprocesadores y proceso distribuido, sino incluso
en sistemas multiprogramados con un solo procesador.
La concurrencia puede presentarse en tres contextos diferentes:
Mltiples aplicaciones: la multiprogramacin se cre para permitir que el tiempo de procesador
de la mquina fuese compartido dinmicamente entre varias aplicaciones activas.
compartible. A estos recursos se les llama recursos crticos y la parte del programa que los
utiliza es la seccin crtica del programa. Es importante que slo un programa pueda acceder a
su seccin crtica en un momento dado.
Hacer que se cumpla la exclusin mutua provoca un interbloqueo.
Otro problema es la inanicin si tres procesos necesitan acceder a un recurso, P1 posee al
recurso, luego lo abandona y le concede el acceso al siguiente proceso P2, P1 solicita acceso de
nuevo y el sistema operativo concede el acceso a P1 YP2 alternativamente, se puede negar
indefinidamente a P3 el acceso al recurso.
El control de competencia involucra al sistema operativo, porque es el que asigna los recursos.
Cooperacin entre procesos por compartimiento Comprende los procesos que interactan con
otros sin tener conocimiento explcito de ellos. Ej. : Varios procesos pueden tener acceso a
variables compartidas.
Los procesos deben cooperar para asegurar que los datos que se comparten se gestionan
correctamente. Los mecanismos de control deben garantizar la integridad de los datos
compartidos.
Cooperacin entre procesos por comunicacin Los distintos procesos participan en una labor
comn que une a todos los procesos.
La comunicacin sincroniza o coordina las distintas actividades, est formada por mensajes de
algn tipo. Las primitivas para enviar y recibir mensajes, vienen dadas como parte del lenguaje
de programacin o por el ncleo del sistema operativo
REQUISITOS PARA LA EXCLUSIN MUTUA
Slo un proceso, de todos los que poseen secciones crticas por el mismo recurso compartido,
debe tener permiso para entrar en ella en un momento dado. Un proceso que se interrumpe en
una seccin no crtica debe hacerlo sin interferir con los otros procesos. Un proceso no debe
poder solicitar acceso a una seccin crtica para despus ser demorado indefinidamente, no
puede permitirse el interbloqueo o la inanicin. Si ningn proceso est en su seccin crtica,
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 nmero de procesadores. Un proceso
permanece en su seccin crtica por un tiempo finito. Una manera de satisfacer los requisitos de
exclusin mutua es dejar la responsabilidad a los procesos que deseen ejecutar
concurrentemente. Tanto si son programas del sistema como de aplicacin, los procesos deben
coordinarse unos con otros para cumplir la exclusin mutua, sin ayuda del lenguaje de
programacin o del sistema operativo. Estos mtodos se conocen como soluciones por software.
EXCLUSIN MUTUA: SOLUCIONES POR SOFTWARE
Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten
en mquinas monoprocesador o multiprocesador con memoria principal compartida.
ALGORITMO DE DEKKER
La solucin se desarrolla por etapas. Este mtodo ilustra la mayora de los errores habituales que
se producen en la construccin de programas concurrentes.
Primer intento
Cualquier intento de exclusin mutua debe depender de algunos mecanismos bsicos de
exclusin en el hardware. El ms habitual es que slo se puede acceder a una posicin de
memoria en cada instante, teniendo en cuenta esto se reserva una posicin de memoria global
llamada turno. Un proceso que desea ejecutar su seccin crtica primero evala el contenido de
turno. Si el valor de turno es igual al nmero del proceso, el proceso puede continuar con su
seccin crtica. En otro caso el proceso debe esperar. El proceso en espera, lee repetitivamente
el valor de turno hasta que puede entrar en su seccin crtica. Este procedimiento se llama
espera activa.
Despus de que un proceso accede a su seccin crtica y termina con ella, debe actualizar el
valor de turno para el otro proceso.
Segundo intento:
Cada proceso debe tener su propia llave de la seccin crtica para que, si uno de ellos falla,
pueda seguir accediendo a su seccin crtica; para esto se define un vector booleano seal. Cada
proceso puede evaluar el valor de seal del otro, pero no modificarlo. Cuando un proceso desea
entrar en su seccin crtica, comprueba la variable seal del otro hasta que tiene el valor falso
(indica que el otro proceso no est en su seccin crtica). Asigna a su propia seal el valor cierto
y entra en su seccin crtica. Cuando deja su seccin crtica asigna falso a su seal.
Si uno de los procesos falla fuera de la seccin crtica, incluso el cdigo para dar valor a las
variables seal, el otro proceso no se queda bloqueado. El otro proceso puede entrar en su
seccin crtica tantas veces como quiera, porque la variable seal del otro proceso est siempre
en falso. Pero si un proceso falla en su seccin crtica o despus de haber asignado cierto a su
seal, el otro proceso estar bloqueado permanentemente.
Tercer intento
El segundo intento falla porque un proceso puede cambiar su estado despus de que el otro
proceso lo ha comprobado pero antes de que pueda entrar en su seccin crtica.
Si un proceso falla dentro de su seccin crtica, incluso el cdigo que da valor a la variable seal
que controla el acceso a la seccin crtica, el otro proceso se bloquea y si un proceso falla fuera
de su seccin crtica, el otro proceso no se bloquea.
Si ambos procesos ponen sus variables seal a cierto antes de que ambos hayan ejecutado una
sentencia, cada uno pensar que el otro ha entrado en su seccin crtica, generando as un
interbloqueo.
Cuarto intento
En el tercer intento, un proceso fijaba su estado sin conocer el estado del otro. Se puede arreglar
esto haciendo que los procesos activen su seal para indicar que desean entrar en la seccin
crtica pero deben estar listos para desactivar la variable seal y ceder la preferencia al otro
proceso.
Existe una situacin llamada bloqueo vital, esto no es un interbloqueo, porque cualquier cambio
en la velocidad relativa de los procesos rompera este ciclo y permitira a uno entrar en la
seccin crtica. Recordando que el interbloqueo se produce cuando un conjunto de procesos
desean entrar en sus secciones crticas, pero ninguno lo consigue. Con el bloqueo vital hay
posibles secuencias de ejecucin con xito.
Una solucin correcta
Hay que observar el estado de ambos procesos, que est dado por la variable seal, pero es
necesario imponer orden en la actividad de los procesos para evitar el problema de cortesa
mutua. La variable turno del primer intento puede usarse en esta labor, indicando que proceso
tiene prioridad para exigir la entrada a su seccin crtica.
ALGORITMO DE PETERSON
El algoritmo de Deker resuelve el problema de la exclusin mutua pero mediante un programa
complejo, difcil de seguir y cuya correccin es difcil de demostrar. Peterson ha desarrollado una
solucin simple y elegante. Como antes, la variable global seal indica la posicin de cada
proceso con respecto a la exclusin mutua y la variable global turno resuelve los conflictos de
simultaneidad.
Considrese el proceso P0. Una vez que ha puesto seal[0] a cierto, P1 no puede entrar en su
seccin crtica. Si P1 esta aun en su seccin crtica, entonces seal[1] = cierto y P0 est
bloqueado en su bucle while. Esto significa que seal[1] es cierto y turno = 1. P0 puede entrar en
su seccin crtica cuando seal[1] se ponga a falso o cuando turno se ponga a 0. Considrense
ahora los siguientes casos exhaustivos:
P1 no est interesado en entrar en su seccin crtica. Este caso es imposible porque implica que
seal[1] = falso. P1 est esperando entrar en su seccin crtica. Este caso es tambin imposible
porque si turno = 1, P1 podra entrar en su seccin crtica. P1 entra en su seccin crtica varias
veces y monopoliza el acceso a ella. Esto no puede pasar porque P1 est obligado a dar a P0 una
oportunidad poniendo turno a 0 antes de cada intento de entrar en su seccin crtica. As pues,
se tiene una solucin posible al problema de la exclusin mutua para dos procesos. Es ms, el
algoritmo de Peterson se puede generalizar fcilmente al caso de n procesos.
Disciplina de cola
La disciplina de cola mas simple es la de primero en llegar/ primero en salir, pero sta puede no
ser suficiente si algunos mensajes son mas urgentes que otros. Una alternativa es permitir la
especificacin de prioridades de los mensajes, en funcin del tipo de mensaje o por designacin
del emisor. Otra alternativa es permitir al receptor examinar la cola de mensajes y seleccionar el
mensaje a recibir a continuacin.
Exclusin mutua
Supngase que se usan primitivas receive bloqueantes y send no bloqueantes. Un conjunto de
procesos concurrentes comparten un buzn, exmut, que puede ser usado por todos los procesos
para enviar y recibir. El buzn contiene inicialmente un nico mensaje, de contenido nulo. Un
proceso que desea entrar en su seccin crtica intenta primero recibir el mensaje. Si el buzn
est vaco, el proceso se bloquea. Una vez que un proceso ha conseguido el mensaje, ejecuta su
seccin crtica y, despus, devuelve el mensaje al buzn. De este modo, el mensaje funciona
como testigo que se pasa de un proceso a otro.
Esta tcnica supone que si hay ms de un proceso ejecutando la accin receive
concurrentemente, entonces:
Si hay un mensaje, se entrega slo a uno de los procesos y los otros se bloquean. Si el buzn
est vaco, todos los procesos se bloquean; cuando haya un mensaje disponible, slo se activar
y tomar el mensaje uno de los procesos bloqueados.
EXCLUSIN MUTUA: SOLUCIONES POR HARDWARE
Principios generales de concurrencia
En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo
aparentando una ejecucin simultnea. Aunque no se logra un procesamiento paralelo y produce
una sobrecarga en los intercambios de procesos, la ejecucin intercalada produce beneficios en
la eficiencia del procesamiento y en la estructuracin de los programas. La intercalacin y la
superposicin pueden contemplarse como ejemplos de procesamiento concurrente en un
sistema monoprocesador, los problemas son consecuencia de la velocidad de ejecucin 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:
1. Compartir recursos globales es riesgoso
2. Para el sistema operativo es difcil gestionar la asignacin ptima de recursos.
Acciones para realizar un interbloqueado
CONDICIONES PARA PRODUCIR INTERBLOQUEO
En la poltica del sistema operativo, deben darse tres condiciones para que pueda producirse un
interbloqueo:
1- Condicin de exclusin mutua: Cada recurso esta asignado a un nico proceso o esta
disponible.
2- Condicin de posesin y espera: Los procesos que tienen, en un momento dado, recursos
asignados con anterioridad, pueden solicitar nuevos recursos.
3- Condicin de no apropiacin: Los recursos otorgados con anterioridad no pueden ser forzados
a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita.
En la mayora de los casos, estas condiciones son bastantes necesarias. La exclusin mutua hace
falta para asegurar la consistencia de resultados y la integridad de la base de datos. De forma
similar, la apropiacin no se puede aplicar arbitrariamente y, cuando se encuentran involucrados
recursos de datos, debe estar acompaada de un mecanismo de recuperacin y reanulacin, que
devuelva un proceso y sus recursos a un estado previo adecuado, desde el que el proceso puede
finalmente repetir sus acciones.
Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo,
se necesita una cuarta condicin:
4- Condicin de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de
dos o mas procesos, cada uno de los cuales espera un recurso posedo por el siguiente miembro
de la cadena.
Las tres primeras condiciones son necesarias, pero no suficientes, para que exista interbloqueo.
La cuarta condicin es, en realidad, una consecuencia potencial de las tres primeras. Es decir,
dado que se producen las tres primeras condiciones, puede ocurrir una secuencia de eventos
que desemboque en un circulo vicioso de espera irresoluble. El circulo de espera de la condicin
4 es irresoluble porque se mantienen las tres primeras condiciones. Las cuatro condiciones en
conjunto constituyen una condicin necesaria y suficiente para el interbloqueo.
PREVENCIN DEL INTERBLOQUEO
La estrategia bsica de la prevencin del interbloqueo consiste, a grandes rasgos, en disear su
sistema de manera que est excluida, a priori, la posibilidad de interbloqueo.
Los mtodos para prevenir el interbloqueo son de dos tipos:
- Los mtodos indirectos que consisten en impedir la aparicin de alguna de las tres condiciones
necesarias para que se de el interbloqeo.
- Los mtodos directos que consisten en evitar la aparicin del circulo vicioso de espera.
PREDICCIN DEL INTERBLOQUEO
Una forma de resolver el problema del interbloqueo, que se diferencia sutilmente de la
prevencin, es la prediccin del interbloqueo. En la prevencin de interbloqueo, se obligaba a las
solicitudes de recursos a impedir que sucediera , por lo menos, alguna de las cuatro condiciones
de interbloqueo. Esto se hace indirectamente, impidiendo la aparicin de una de las tres
condiciones necesarias (exclusin mutua, retencin y espera, no apropiacin) o directamente,
impidiendo la aparicin de un circulo viciosos de espera. Se llega as a un uso ineficiente de los
recursos y una ejecucin ineficiente de los procesos. Con prediccin del interbloqueo, por otro
lado, se pueden alcanzar las tres condiciones necesarias, pero se realizan elecciones acertadas
para asegurar que nunca se llega al punto de interbloqueo. La prediccin, por lo tanto, permite
ms concurrencia que la prevencin. Con prediccin del interbloqueo, se decide dinmicamente
si la peticin actual de asignacin de un recurso podra, de concederse, llevar potencialmente a
un interbloqueo. La prediccin del interbloqueo necesita, por lo tanto, conocer las peticiones
futuras de recursos. Enfoques para la prediccin del interbloqueo: - - No iniciar un proceso si sus
demandas pueden llevar a interbloqueo. - - No conceder una solicitud de incrementar los
recursos de un proceso si esta asignacin puede llevar a interbloqueo.
- DETECCIN DEL INTERBLOQUEO
- Las estrategias de prevencin de interbloqueo son muy conservadoras; resuelven el problema
limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las
estrategias de deteccin de interbloqueo, no limitan el acceso a recursos ni restringen las
acciones del proceso. Con la deteccin del interbloqueo, se concedern los recursos que los
procesos necesiten siempre que sea posible. Peridicamente, el S. O. ejecuta un algoritmo que
permite detectar la condicin de circulo vicioso de espera. - La deteccin del interbloqueo es el
proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos
implicados en l. Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el
estado de los recursos. Cada vez que se solicita o se devuelve un recurso, se actualiza el estado
de los recursos y se hace una verificacin para observar si existe algn ciclo. - Este mtodo est
basado en suponer que un interbloqueo no se presente y que los recursos del sistema que han
sido asignados, se liberarn en el momento que otro proceso lo requiera
Pasos de mensajes de Sistemas Operativos
Paso de mensajes
El paso de mensajes es una tcnica empleada en programacin concurrente para aportar
sincronizacin entre procesos y permitir la exclusin mutua, de manera similar a como se hace
con los semforos, monitores, etc.
Su principal caracterstica es que no precisa de memoria compartida, por lo que es muy
importante en la programacin para sistemas distribuidos. Los elementos principales que
intervienen en el paso de mensajes son el proceso que enva, el que recibe y el mensaje.