Universidade Federal de Minas Gerais - Departamento de Ciência da Computação - Segundo Semestre de 2013 Sistemas Operacionais Professor: Monitor: Sérgio Vale de Aguiar Campos [email protected] Carlos Antônio Caetano Júnior [email protected] Lista 01 de Exercícios 1. O que é concorrência e como este conceito está presente nos sistemas operacionais multiprogramáveis? 2. Escreva as ações tomadas por um kernel para fazer a troca de contexto entre processos. 3. Quais são duas diferenças entre os threads em nível de usuário e os threads em nível de kernel? Sob quais circunstâncias um tipo é melhor que o outro? 4. Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo? 5. Qual é a função de um escalonador? Explique detalhadamente. 6. Explique porque: a. A implementação básica do problema clássico do Jantar dos Filósofos pode ocasionar DeadLock. b. A implementação do problema clássico do Jantar dos Filósofos, que possibilita ao filósofo soltar o primeiro garfo se o segundo estiver ocupado pode causar Starvation. 7. A maioria dos escalonadores Round Robin usa um quantum de tamanho fixo. Dê um argumento em favor de um quantum pequeno. Agora pense em um argumento que justifique um quantum grande. 8. Considere os processos A, B e C executam o mesmo código com região crítica definida através do semáforo binário mutex (código parcial apresentado abaixo). O algoritmo de escalonamento é circular (Round Robin). Suponha que a região crítica gaste o tempo de 1 (um) quantum (intervalo de tempo) para ser executada e fora da rc gaste 2 (dois) quantuns. Preencha, justificando, a tabela abaixo com o estado de cada processo (P = Pronto; E = Execução; B = Bloqueado) em cada intervalo de tempo até que todos os processos tenham executado dentro e fora da região crítica, iniciando pelo processo C, depois B e A (fila de pronto). //Código do Processo semaphore mutex = 1; void main( ){ while(TRUE) { wait(&mutex); dentro_ da _região_crítica( ); signal(&mutex); fora _da _região_crítica( ); } } FILA DE PRONTO: C, B, A (inicia pelo processo C) TABELA A SER PREENCHIDA (AUMENTAR A TABELA CASO SEJA NECESSÁRIO): (ESCREVA AS JUSTIFICATIVAS AO LADO DA TABELA) (OBS: Tabela preenchida sem as justificativas não será considerada) Intervalo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Mutex A B C Justificativa