Baixe o app para aproveitar ainda mais
Prévia do material em texto
Primeira Prova de INF1019 - Sistemas da Computação I 14 de abril de 2016 Duração: 1 h e 45 minutos Atenção: Clareza conta ponto, por isso, responda as questões de forma clara e objetiva, a caneta e sem rasuras. Escolha um conjunto de questões que some 10 pontos. Se a soma for maior do que 10 pontos eu irei desconsiderar aleatoriamente alguma questão. Questão 1 (2 pontos) Mostre o pseudo-código das primitivas down() e up() de semáforos e em seguida dê um exemplo de uso de semáforos para uma sincronização de condição entre processos. Questão 2 (2 pontos) Escreva o pseudo-código de um programa que implemente um controle hirerárquico de execução entre processos: um processo (P) cria um processo filho (F1) que por sua vez cria um outro processo (F2). O pai P controla a execução de F1, (interrompendo-o periodicamente por 1 segundo e dando continuidade a sua execução por outro 1 segundo), e F1 controla a execução de F2 (interrompendo-o periodicamente por 2 segundos e dando continuidade a sua execução por outros 2 segundos). O processo F2, por sua vez, executa um programa passado como argumento na linha de comando. Obs: • no seu pseudo-código voce não precisa tratar o caso de fork() retornar um código de um erro. • seu código deve estar bem estruturado, legível, bem identado e com comentários em pontos-chave. Se não, haverá desconto de pontos. • Questão 3 (2 pontos) Dentre as seguintes ações, quais são necessariamente executadas em modo kernel/supervisor? Apresente uma breve justificativa para cada uma: 1. Passar um processo do estado bloqueado para o estado pronto. 2. Controlar se o quantum de tempo de um processo já se esgotou. 3. Executar programas como usuário root. 4. Gerenciar a prioridade dos processos, 5. Tratar um sinal recebido por um processo, 6. Executar o procedimento tratador de uma interrupção. 7. Criar, escalonar e terminar threads. Questão 4 (1 ponto) Explique qual é a principal diferença entre o escalonamento com filas em múltiplos níveis (ML) e o escalonamento com filas em múltiplos níveis com feedback (MLF). Questão 5 (2 pontos) Sejam dois processos concorrentes P1 e P2 compartilhando apenas as variáveis A e B (incializadas com os valores 1 e 2, respectivamente) e o semáforo mutex s, ambos executando o seguinte trecho de código: … down(s); T = A; A = B; up(s); B = T; … Assumindo que as variáveis A e B não são modificadas em qualquer outra parte do código de P1 e P2, diga se os valores de A e B sempre serão diferentes em ambos os processos após a atribuição B=T? Justifique ilustrando com as possíveis sequências de instruções executadas. Questão 6 (2 pontos) Considere um sistema multitarefa com um único procesador e os seguintes jobs com seus instantes de ativação e seus tempos de CPU. Para a politica de escalonamento Shortest Remaining Time (SRT) desenhe o diagrama de tempo mostrando em quais intervalos de tempo cada job estará executando na CPU, e calcule o tempo médio de espera para esse conjunto de jobs. Job Instante de Ativação Tempo de CPU J1 0 u.t. 6 u.t. J2 1 u.t. 4 u.t. J3 5 u.t 4 u.t J4 6 u.t. 1 u.t. Obs: Lembre-se que o SRT é uma política preemptiva onde o job/processo com o menor tempo remanescente de CPU é escolhido para ser o próximo a executar, isto incluindo os jobs recém-chegados. E que quando há vários jobs com igual tempo remanescente de CPU, usa-se o instante de ativação como critério de desempate (tempos mais atuais têm maior prioridade). Questão 7 (1 ponto) Apresente pelo menos uma vantagem e uma desvantagem de se implementar threads em modo usuário.
Compartilhar