Skip to content

GSD

Sections
Personal tools
You are here: Home » Teaching » Sistemas Operativos II » 5306O2 - Sistemas Operativos II (2006 - 2007) » Guiões das Aulas Práticas » #07 - Interface de sincronização de Threads Posix: Variáveis de Condição (cont.)

#07 - Interface de sincronização de Threads Posix: Variáveis de Condição (cont.)

Document Actions

Objectivos

Implementação de uma biblioteca de controlo de concorrência com exclusão mútua entre leitores e escritores: caso clássico de prioridade aos leitores; discussão de outros cenários.

Exercícios propostos

  1. Implemente uma biblioteca de controlo de concorrência que exclua mutuamente leitores e escritores no acesso a recursos partilhados. Considere o cenário clássico em que se favorece os leitores, dando-lhes prioridade no acesso a esses recursos. Para o efeito, considere os protótipos das operações a suportar:
           int lock_init(lock_t *lock);
           int lock_acquire(lock_t *lock, operation_t oper);
           int lock_release(lock_t *lock, operation_t oper);
           int lock_destroy(lock_t *lock);
    
  2. Reimplemente a biblioteca proposta no primeiro exercício, considerando agora que se pretende dar prioridade aos escritores relativamente aos leitores.
  3. Implemente uma nova biblioteca que, especificamente, ofereça controlo de concorrência no acesso a ficheiros. Para o efeito, faça uso da biblioteca genérica implementada no exercício anterior. Considere os protótipos das operações a suportar:
           int file_open(const char *file, int flags, mode_t mode);
           int file_close(int fd);
           int file_lib_initialize();
           int file_lib_cleapup();
    
Created by gsd
Last modified 2007-05-21 11:07 AM
« February 2015 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
 
 

Powered by Plone

This site conforms to the following standards: