Questão pública
Questão de Tecnologia da Informação
FCC - TRF 5 - Analista Judiciário - Área Apoio Especializado - Especialidade Informática/Infraestrutura - 2017 • FCC • 2017
ID 168908
Tecnologia da Informação Arquitetura de Computadores
FCC
Tribunal Regional Federal da 5ª Região Analista Judiciário - Área Apoio Especializado - Especialidade: Informática - Infraestrutura 2017
Quando um processo quer imprimir um arquivo na impressora, insere o nome do arquivo em um diretório de spool . Um outro processo verifica periodicamente se existe algum arquivo a ser impresso e, se houver, o imprime e remove seu nome do diretório. Suponha que o diretório de spool tenha vagas numeradas 0, 1, 2,... etc e que cada vaga é capaz de conter um nome de arquivo. Suponha que existem duas variáveis compartilhadas: Out , que indica o próximo arquivo a ser impresso e Free , que indica a próxima vaga livre do spool . Em um dado instante as vagas anteriores estão ocupadas e Free = 7. Quase simultaneamente, os processos A e B decidem colocar um arquivo na fila de impressão e ocorre a sequência de ações:
1. O processo A lê Free e armazena o valor 7 na sua variável local chamada proxima_vaga_livre.
2. Em seguida ocorre uma interrupção do relógio e a CPU decide que o processo A já executou o suficiente e alterna para o processo B.
3. O processo B também lê Free e obtém o valor 7. B armazena 7 na sua variável local proxima_vaga_livre.
4. Neste momento, ambos os processos têm a informação de que a vaga livre é a 7.
5. B prossegue sua execução, armazenando o nome do seu arquivo na vaga 7 e atualiza Free para 8.
6. Em seguida, o processo A executa novamente de onde parou. Verifica sua variável local proxima_vaga_livre , que é igual a 7, e então escreve o nome do seu arquivo na vaga 7. O processo A atualiza o valor de Free para 8.
Nesta situação,
1. O processo A lê Free e armazena o valor 7 na sua variável local chamada proxima_vaga_livre.
2. Em seguida ocorre uma interrupção do relógio e a CPU decide que o processo A já executou o suficiente e alterna para o processo B.
3. O processo B também lê Free e obtém o valor 7. B armazena 7 na sua variável local proxima_vaga_livre.
4. Neste momento, ambos os processos têm a informação de que a vaga livre é a 7.
5. B prossegue sua execução, armazenando o nome do seu arquivo na vaga 7 e atualiza Free para 8.
6. Em seguida, o processo A executa novamente de onde parou. Verifica sua variável local proxima_vaga_livre , que é igual a 7, e então escreve o nome do seu arquivo na vaga 7. O processo A atualiza o valor de Free para 8.
Nesta situação,
Quer responder esta questão e acompanhar seu desempenho?
Entre na QuestLab para responder, acessar a AURA, estatísticas, cadernos, anotações e outros recursos da plataforma.