Você está na página 1de 2

PROVA FINAL DE SISTEMAS OPERACIONAIS I Profa. Roberta Lima Gomes - 10/12/2009 Aluno: ................................................................................................................................. 1.

(1,5) Por que mecanismos adaptativos so desejveis nos escalonadores atuais? 2. (1,0) Explique detalhadamente como o algoritmo de Dekker garante a excluso mtua entre processos concorrentes (isto , mostre que no pode ocorrer deadlock, que no pode haver adiamento infinito e que a incluso mtua imposta com sucesso). 3. (1,5) Descreva o erro na implementao do produtor-consumidor mostrada abaixo. Crie uma seqncia de eventos que termina em algum comportamento indesejado para o programa. struct tipo_dado buffer[N]; int proxima_insercao = 0; int proxima_remocao = 0; ... semaphore exclusao_mutua = 1; semaphore espera_vaga = N; semaphore espera_dado = 0; ... void produtor( void) { ... P( exclusao_mutua ); P( espera_vaga ); buffer[ proxima_insercao ] = dado_produzido; proxima_insercao = ( proxima_insercao + 1 ) % N; V( espera_dado ); V( exclusao_mutua ); ... } ... void consumidor( void) { ... P( espera_dado ); P( exclusao_mutua ); dado_a_consumir = buffer[ proxima_remocao ]; proxima_remocao = ( proxima_remocao + 1 ) % N; V( exclusao_mutua ); V( espera_vaga ); ... }

4. (1,5) Analise o cdigo abaixo e responda: a seguinte sada seria possvel? Em caso afirmativo, apresente resumidamente uma seqncia de execuo das threads que levaria a esta sada. Em caso negativo, explique o motivo. Thread 0. Thread 0. Thread 0. Thread 0. Thread 4.
#define N_THR 5 void* f_thread(void *v) { int thr_id; thr_id = *(int *) v; printf("Thread %d. ", thr_id); return NULL; } int main() { pthread_t thr[N_THR]; int i; for (i = 0; i < N_THR; i++) pthread_create(&thr[i], NULL, f_thread, (void*) &i); for (i = 0; i < N_THR; i++) pthread_join(thr[i], NULL); return 0; }

5. (1,5) Se o algoritmo de substituio de pginas FIFO for usado com quatro molduras e oito pginas, quantas faltas de pgina ocorrero com o string de referncia 0172327103 se as quatro molduras estiverem inicialmente vazias? Repita o problema para o algoritmo LRU. Em ambos os casos construa (desenhe) o interpretador abstrato apresentado em sala de aula (isto , array M que mantm o estado da memria e que define a distance string associada). 6. (2,0) Fale sobre memria virtual baseada em paginao.
Palavras-chaves: motivao, memria real e virtual, endereo lgico e fsico, pgina, moldura de pgina, tabela de pginas, bits de presena e referncia, tamanho da tabela de pginas, memria associativa, tabela de pginas invertidas, algoritmos de substituio de pginas, working set, tamanho da pgina, etc.

7. (1,0) O espao livre em disco pode ser monitorado usando uma lista de blocos livres ou mapa de bits. Os endereos de disco requerem D bits. Para um disco com B blocos, F dos quais esto livres, declare a condio sob a qual a lista de livres utiliza menos espaos que mapas de bits. Para D tendo o valor de 16 bits, expresse a sua resposta como uma porcentagem do espao em disco que deve estar livre.
Deitel: /deitel_br Login: deitel_sistemas Senha: b612zke
Tanenbaum SO Modernos Login: pre_tan Senha: 2111

Você também pode gostar