Programación: Procesos y Semáforos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,56 KB
Ejecucion: El proceso se esta ejecutado en la cpu
listo o preparado : El proceso dispone de todos los recursos para su ejecución, solo falta la cpu
bloqueado : Al proceso le falta algún recurso para poder seguir ejecutándose
·define n 5 /* numero de filosofos
void philosopher (int i) /* numero de filosofos de 0 a 4 */
{
while (true) {
think () /* el filosofo esta pensando*/
take_ stick (i) /* tomar palillo izqquierdo*/
take stick ((i+1) % n ) /tomar palillo , % operador residuo*/
eat () i /* delicioso arroz*/
put_stick (i) /*poner stick izq otra ves en la mesa*/
put _stick ((i+1 % n) /* poner stick derecho eotra ves ebla mesa*/
Un semáforo es una variable especial
protegida (o tipo abstracto de datos) que constituye el
método clásico para restringir o permitir el acceso a
recursos compartidos (por ejemplo, un recurso de
almacenamiento) en un entorno de multiprocesamiento. Fueron
inventados por Edsger Dijkstra y se usaron por primera vez
en el sistema operativo THEOS.
los dispositivos de E/S se pueden clasificar
en dos grandes categorías:
* Dispositivos de bloque.
* Dispositivos de caracter.
Las principales características de los dispositivos de
bloque son:
* La información se almacena en bloques de tamaño fijo.
* Cada bloque tiene su propia dirección.
* Los tamaños más comunes de los bloques van desde los
128 bytes hasta los 1.024 bytes.
* Se puede leer o escribir en un bloque de forma
independiente de los demás, en cualquier momento.
* Un ejemplo típico de dispositivos de bloque son los
discos.
Las principales características de los dispositivos de
caracter son:
* La información se transfiere como un flujo de
caracteres, sin sujetarse a una estructura de bloques.
* No se pueden utilizar direcciones.
* No tienen una operación de búsqueda.
* Un ejemplos típico de dispositivos de caracter son
las impresoras de línea, terminales, interfaces de una red,
ratones, etc
Productor
Consumidor
producir(mensajeP);
P(vacío);
P(mutexprod);
buffer[cabeza] = mensajeP;
cabeza = (cabeza + 1) mod n;
V(mutexprod);
V(lleno);
P(lleno);
P(mutexcons);
mensajeC = buffer[cola];
cola = (cola + 1) mod n;
V(mutexcons);
V(vacío);
consumir(mensajeC);
Volver al índice .
listo o preparado : El proceso dispone de todos los recursos para su ejecución, solo falta la cpu
bloqueado : Al proceso le falta algún recurso para poder seguir ejecutándose
·define n 5 /* numero de filosofos
void philosopher (int i) /* numero de filosofos de 0 a 4 */
{
while (true) {
think () /* el filosofo esta pensando*/
take_ stick (i) /* tomar palillo izqquierdo*/
take stick ((i+1) % n ) /tomar palillo , % operador residuo*/
eat () i /* delicioso arroz*/
put_stick (i) /*poner stick izq otra ves en la mesa*/
put _stick ((i+1 % n) /* poner stick derecho eotra ves ebla mesa*/
Un semáforo es una variable especial
protegida (o tipo abstracto de datos) que constituye el
método clásico para restringir o permitir el acceso a
recursos compartidos (por ejemplo, un recurso de
almacenamiento) en un entorno de multiprocesamiento. Fueron
inventados por Edsger Dijkstra y se usaron por primera vez
en el sistema operativo THEOS.
los dispositivos de E/S se pueden clasificar
en dos grandes categorías:
* Dispositivos de bloque.
* Dispositivos de caracter.
Las principales características de los dispositivos de
bloque son:
* La información se almacena en bloques de tamaño fijo.
* Cada bloque tiene su propia dirección.
* Los tamaños más comunes de los bloques van desde los
128 bytes hasta los 1.024 bytes.
* Se puede leer o escribir en un bloque de forma
independiente de los demás, en cualquier momento.
* Un ejemplo típico de dispositivos de bloque son los
discos.
Las principales características de los dispositivos de
caracter son:
* La información se transfiere como un flujo de
caracteres, sin sujetarse a una estructura de bloques.
* No se pueden utilizar direcciones.
* No tienen una operación de búsqueda.
* Un ejemplos típico de dispositivos de caracter son
las impresoras de línea, terminales, interfaces de una red,
ratones, etc
Productor
Consumidor
producir(mensajeP);
P(vacío);
P(mutexprod);
buffer[cabeza] = mensajeP;
cabeza = (cabeza + 1) mod n;
V(mutexprod);
V(lleno);
P(lleno);
P(mutexcons);
mensajeC = buffer[cola];
cola = (cola + 1) mod n;
V(mutexcons);
V(vacío);
consumir(mensajeC);
Volver al índice .