teor a de sistemas operativos n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Teoría de Sistemas Operativos PowerPoint Presentation
Download Presentation
Teoría de Sistemas Operativos

Loading in 2 Seconds...

play fullscreen
1 / 24

Teoría de Sistemas Operativos - PowerPoint PPT Presentation


  • 147 Views
  • Uploaded on

Teoría de Sistemas Operativos. Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz gabriel.astudillo@elo.utfsm.cl http://www.elo.utfsm.cl/~elo321. Problemas clásicos de IPC. Dos procesos comparten un buffer de tamaño definido (N). Buffer. Filósofos. Productor.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Teoría de Sistemas Operativos' - morrie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
teor a de sistemas operativos

Teoría de Sistemas Operativos

Departamento de Electrónica

2º Semestre, 2002

Gabriel Astudillo Muñoz

gabriel.astudillo@elo.utfsm.cl

http://www.elo.utfsm.cl/~elo321

slide2

Problemas clásicos de IPC

  • Dos procesos comparten un buffer de tamaño
  • definido (N)

Buffer

Filósofos

Productor

Lectores ...

Consumidor

slide3

Problemas clásicos de IPC

  • Dos procesos comparten un buffer de tamaño
  • definido (N)

Buffer

Filósofos

Productor

Lectores ...

Escribe datos

slide4

Problemas clásicos de IPC

  • Dos procesos comparten un buffer de tamaño
  • definido (N)

Buffer

Filósofos

Productor

Lectores ...

Saca datos

Consumidor

slide5

Problemas clásicos de IPC

  • ¿Qué sucede cuando el buffer está lleno y el productor desea poner un dato?

Buffer

Filósofos

Productor

Lectores ...

¿?

Consumidor

slide6

Problemas clásicos de IPC

  • ¿Qué sucede cuando el buffer está vacío y el consumidor desea sacar un dato?

Buffer

Filósofos

Productor

Lectores ...

¿?

Consumidor

slide7

Problemas clásicos de IPC

  • Solución

Buffer

Filósofos

  • En el primer caso ==> productor se va a dormir
  • En el segundo, ==> consumidor se va a dormir

Lectores ...

slide8

Problemas clásicos de IPC

  • Solución

Buffer

Filósofos

  • En el primer caso ==> productor se va a dormir

Lectores ...

Cuando el consumidor saca un elemento,

debe “despertar al productor”

slide9

Problemas clásicos de IPC

  • Solución

Buffer

Filósofos

  • En el segundo, ==> consumidor se va a dormir

Lectores ...

Cuando el productor coloca un elemento,

debe “despertar al consumidor”

slide10

Problemas clásicos de IPC

Buffer

Filósofos

Lectores ...

slide11

Problemas clásicos de IPC

F1

F5

F2

F4

F3

Buffer

Filósofos

Lectores ...

Filósofo

slide12

Problemas clásicos de IPC

F1

F5

F2

F4

F3

Buffer

Filósofos

Lectores ...

Tenedor

slide13

Problemas clásicos de IPC

F1

F5

F2

F4

F3

Buffer

Filósofos

Lectores ...

Plato de tallarines

slide14

Problemas clásicos de IPC

Buffer

Filósofos

Cada Filósofo (proceso):

Lectores ...

Pensando

Hambriento

Comiendo

slide15

Problemas clásicos de IPC

Buffer

Filósofos

Cada Filósofo (proceso):

Lectores ...

Pensando

Hambriento

Devuelvo los

tenedores

Puedo tomar

los tenedores?

Comiendo

slide16

Problemas clásicos de IPC

Buffer

Filósofos

Solución:

Lectores ...

Estado(N) : actividad de cada filósofo:

AMBRIENTO

COMIENDO

PENSADO.

S(n) : arreglo de semáforos. Permite dormir

a los filósofos ambrientos si no pueden obtener

los tenedores.

slide17

Problemas clásicos de IPC

Buffer

Solución:

Filósofos

Toma_tenedor()

Lectores ...

void toma_tenedor(int i){

down(&mutex);

estado[i]=HAMBRIENTO;

test(i);

up(&mutex);

down(&s[i]);

}

slide18

Problemas clásicos de IPC

Buffer

Solución:

Filósofos

devuelve_tenedor()

Lectores ...

void devuelve_tenedor(int i){

down(&mutex);

estado[i]=PENSANDO;

test[VECINO_IZQ];

test[VECINO_DER];

up(&mutex);

}

slide19

Problemas clásicos de IPC

Buffer

Solución:

Filósofos

test()

Lectores ...

void test(int i){

if(estado[i]==HAMBRIENTO &&

estado[VECINO_IZQ]!=COMIENDO &&

estado[VECINO_DER]!=COMIENDO){

estado[i]=COMIENDO;

up(&s[i]);

}

slide20

Problemas clásicos de IPC

Problema

Buffer

Filósofos

  • Varios procesos pueden leer una
  • base de datos.
  • Si un proceso modifica la BD, ninguno
  • de los demás procesos puede acceder
  • a ella.

Lectores ...

slide21

Problemas clásicos de IPC

Solución

Buffer

Filósofos

  • La BD es una región crítica ==>
    • debe haber un semáforo binario
    • que permita realizar la exclusión.
  • El primer lector realiza un wait de este
  • semáforo y el último realiza un signal.
  • Se necesita un contador de lectores.

Lectores ...

slide22

Problemas clásicos de IPC

Solución

Buffer

semaphore mutex=1;

semaphre db=1;

int rc=0;

void lector(void){

down(&mutex);

rc++;

if(rc==1) down(&db);

up(&mutex);

lea_base_datos();

down(&mutex);

rc--;

if(rc==0) up(&db);

up(&mutex);

use_datos(); //sección no crítica

}

Filósofos

Lectores ...

slide23

Problemas clásicos de IPC

Solución

Buffer

Filósofos

void escritor(void){

cree_data();

down(&db);

escriba_base_datos();

up(&db);

}

Lectores ...

slide24

Problemas clásicos de IPC

Buffer

Filósofos

Lectores ...