Sie sind auf Seite 1von 10

Temario Prueba 1 P.C.

Conceptos
Programa: Un programa es un conjunto de instrucciones. Se trata de
algo esttico. Para que el programa pueda hacer algo hay que ponerlo
en ejecucin.
Proceso: A grandes rasgos, un proceso es un programa o parte de l en
ejecucin. Una mejor definicin es la de una actividad asncrona
susceptible de ser asignada a un procesador.
Concurrencia: Dos procesos sern concurrentes cuando la primera
instruccin de uno de ellos se ejecuta despus de la primera y antes de
la ltima del otro.
Programacin paralela: Tenemos una situacin de programacin
paralela si dos procesos se ejecutan al mismo tiempo. No confundir con
programacin concurrente.
Multiprogramacin: Consiste en una forma de gestionar los procesos
en un sistema monoprocesador de manera que los procesos vayan
alternndose para ocupar la CPU durante un tiempo.
Sistemas fuertemente acoplados: Tanto los procesadores como otros
dispositivos estn conectador a un bus. Esto permite que todos los
procesadores puedan compartir memoria. Suele llamarse multiproceso
a la gestin de varios procesos dentro de estos sistemas.
Sistemas dbilmente acoplados: En este caso no existe una
memoria compartida por los procesadores, sino que cada uno tiene su
propia memoria local y est conectado con otros procesadores mediante
algn tipo de enlace de comunicacin. La gestin de los procesos en
este tipo de sistema suele denominarse procesamiento distribuido.
Exclusin mutua: Decimos que dos conjuntos de instrucciones deben
ejecutarse en exclusin mutua cuando la ejecucin concurrente de
ambos conjuntos no garantiza el funcionamiento correcto (determinista)
de las instrucciones.
Condicin de sincronizacin: Se refiere a cuando es posible que
determinado recurso compartido por varios procesos se encuentre en un
estado en el que un proceso no puede hacer una determinada accin
con l hasta que no cambie su estado.
Seccin crtica: Porcin de cdigo que es necesario que se ejecute de
forma indivisible para el correcto funcionamiento. Tambin se refiere a

los recursos no compartibles, de modo que cuando un proceso est


accediendo a un recurso no compartible se dice que se encuentra en su
seccin crtica.
Interbloqueo: Tambin conocido como deadlock o interbloqueo
pasivo, se produce cuando todos los procesos estn esperando que
ocurra un evento que nunca se producir.
Interbloqueo activo: Es una situacin en la que varios procesos se
estn ejecutando, pero ninguno es capaz de avanzar. Tambin se conoce
como livelock.
Inanicin: Se produce este tipo de situacin cuando el sistema en su
conjunto hace progresos, pero existe un grupo de procesos que nunca
progresan porque no se les otorga tiempo de procesador.

Procesos
Una forma de programar concurrentemente es dividir un programa en
procesos ya que, por lo general, los sistemas operativos proveen de un
sistema de ejecucin concurrente para stos. Para hacer una
comparacin entre procesos e hilos aqu se presentan una serie de
caractersticas de los procesos:

Poseen espacios de memoria independientes. Algunos sistemas


operativos permiten que distintos procesos compartan memoria.

Pueden encontrarse en diferentes estados. Los cambios de estado


(cambios de contexto) son relativamente costosos en trminos
de tiempo.

La estructura de los procesos se encuentra en la memoria del


ncleo. Esto causa que sea necesario realizar costosas llamadas al
sistema para acceder a ella.

Ciclo de vida de un proceso: es prcticamente un estndar en todos


los sistemas operativos. En principio el proceso no existe, es creado,
luego pasa a listo (el proceso est en condiciones de usar la cpu) hasta
que se el planificador de procesos scheduler (que suele ser parte del
sistema operativo) le d la oportunidad. de usar el procesador.
Los procesos tienen estado listo hasta que el planificador decide darles
tiempo de ejecucin pasando al estado en ejecucin.

Un proceso puede pasar de ejecucin a listo, esta decisin la toma el


planificador. Que sigue alguna poltica para asignar la CPU a los distintos
procesos. Una forma que lo realiza es mediante la asignacin de un
quantum de tiempo, de tal forma que cuando un procesador cumpla su
tiempo de permanencia en el procesador, es desalojado pasando
nuevamente a estado listo. Puede que un proceso abandone
voluntariamente la cpu y pase a listo.
Un proceso puede pasar de estado en ejecucin a bloqueado cuando ha
de esperar que suceda un evento o suceso. Ejemplo: esperar una
operacin de entrada salida, la espera de finalizacin de una tarea por
parte de otro proceso, un bloqueo voluntario durante un determinado
tiempo, etc. Una vez ocurrido el evento que estaba esperando, el
proceso pasa a listo. El acto de cambiar un proceso de estado se
denomina cambio de contexto.

Hilos
Tambin conocidos como threads, se definen como una secuencia de
control dentro de un proceso que ejecuta sus instrucciones de forma
independiente. Los hilos presentan las siguientes caractersticas:

Comparten el espacio de memoria del usuario. Pueden compartir


variables entre distintos hilos.

Un hilo tambin puede encontrarse en uno de varios estados, pero


los cambios de contexto entre hilos consumen poco tiempo.

Las estructuras de los hilos pueden encontrarse en el espacio de


memoria del ncleo (implementacin a nivel de ncleo) o en la
memoria del usuario (librera al nivel de usuario).

Tipos de Sincronizacin y su Solucin


Los dos tipos de sincronizacin necesarios entre procesos concurrentes
son la exclusin mutua y la condicin de sincronizacin. Cuando se
hable de procesos se asume que tambin se habla sobre los hilos.
Exclusin Mutua
Cuando un proceso se encuentra en su seccin crtica, el resto de
procesos no podr estar en esa misma seccin y si quisieran acceder a
ella debern esperar a que quede libre. Cuando un proceso termina de
ejecutar su seccin crtica se deber permitir que otro proceso en espera
entre en la seccin.
Por lo general se aplica el siguiente esquema de proceso para ejecutar
en exclusin mutua su seccin crtica:

Los protocolos de entrada y salida deben garantizar la exclusin


mutua, la limitacin en la espera y el progreso en la ejecucin.
Limitacin en la espera: Significa que ningn proceso esperar
indefinidamente para entrar en su seccin crtica.

Progreso en la ejecucin: Cuando un proceso quiere entrar en su


seccin crtica, podr hacerlo si est libre.
Condicin de Sincronizacin
Cuando un proceso requiere de la accin de otro para realizar un evento,
debe esperar a que esta accin ocurra antes de seguir su ejecucin.

Semforo
Un semforo binario es un indicador (S) de condicin que registra si un recurso est
disponible o no. Un semforo binario slo puede tomar dos valores: 0 y 1. Si, para un
semforo binario, S = 1 entonces el recurso est disponible y la tarea lo puede utilizar;
si S = 0 el recurso no est disponible y el proceso debe esperar. Los semforos se
implementan con una cola de tareas o de condicin a la cual se aaden los procesos
que estn en espera del recurso.

Los semforos pueden realizar tres operaciones: wait, signal y initial. Estas
operaciones son atmicas, de modo que slo un proceso podr estar
ejecutndolas sobre un semforo en determinado momento.

wait(s): Decrementa el valor del semforo s. Si s es 0 bloquea el


proceso que realiza la llamada. Es importante saber que, segn la
implementacin, cuando un proceso realiza esta llamada puede,
decrementar s sin importar su valor o decrementarlo slo si es mayor
que 0. As s podr tener valores negativos o no segn como se haya
implementado.

signal(s): Si hay algn proceso bloqueado lo desbloquea y si s permite


valores negativos lo incrementa. Si no hay procesos bloqueados
solamente incrementar el valor de s.

initial(s, v): Inicializa el valor de s a v. Esta operacin es especfica de


Pascal-fc, donde la implementacin de los semforos no permite valores
negativos.

Se asume que los procesos bloqueados se insertan en una cola FIFO (First In
First Out), as el primero en ser bloqueado es el primero que se desbloquea.

Resolucin de Problemas Usando Semforos


El Problema del Productor/Consumidor
La siguiente solucin contempla el caso de un buffer finito de tipo array [0..N1]. Las variables frente y cola son enteros inicializados a 0. Por otra parte los
semforos vacios, llenos y mutex se inicializarn a N, 0 y 0 respectivamente.

El Problema de los Lectores y Escritores: Prioridad Lectura


Esta solucin hace que el primer lector que intente acceder al recurso intente
bloquear a los escritores mediante wait(wrt). As cuando no haya ms
escritores en la seccin crtica bloquear a todos los escritores hasta que el
ltimo lector desocupe el recurso mediante signal(wrt).

Los semforos mutex y wrt se inicializarn a 1 mientras la variable nl (nmero


de lectores) se inicializar a 0.

El

Problema de los
Lectores
y
Escritores:

Prioridad Escritura
solucin se caracteriza por el desbloqueo
encadenado en el protocolo de entrada de los
lectores. As cuando un lector va a entrar en la seccin crtica desbloquea a
otro si hay alguno esperando.
Esta

Los semforos mutex, lector y escritor se inicializan a 1, 0 y 0 respectivamente.


Adems las variables nle (nmero de lectores en espera), nl (nmero de
lectores en la seccin crtica), y nee (nmero de escritores en espera) de
inicializarn a 0. Finalmente, la variable booleana escribiendo tendr el valor
inicial false.

El Problema de la Comida de Filsofos


La mejor de las soluciones presentadas en el libro diferencia a los filsofos
sentados en posiciones pares e impares. De este modo si un filsofo para
empezar a comer primero toma su palillo derecho, los dos filsofos a su lado
tomarn primero su palillo izquierdo.
Para la siguiente solucin definimos palillo como array[0..N] of semaphore
siendo N los sitios de la mesa. Todos los semforos del array se inicializarn a
1.

Inconvenientes del Mecanismo de los Semforos


1. Es un mecanismo de bajo nivel por lo que su uso puede fcilmente llevar a
errores.
2. No se pueden restringir las operaciones sobre los recursos.
3. El programador puede olvidar incluir todas las sentencias referentes a los
objetos compartidos en las secciones crticas.
4. Es dificil reconocer la finalidad de una sentencia wait o signal ya que ambas son
utilizadas para tratar la exclusin mutua y la condicin de sincronizacin.
5. Los programas con semforos son difciles de mantener.

Das könnte Ihnen auch gefallen