Buscar

Sistemas Operacionais Lista de exercicios 3 RESPOSTAS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

SISTEMAS OPERACIONAIS 
LISTA DE EXERCÍCIOS 3 - RESPOSTAS 
 
1. Uma determinada aplicação é composta por diversos threads que 
acessam áreas comuns de memória, lendo e atualizando seus dados 
conforme algoritmos próprios. Em algumas ocasiões um thread 
altera dados que já estavam sendo manipulados por outro thread 
criando uma situação de instabilidade da aplicação e corrupção dos 
dados processados. Que técnicas de sincronização poderiam ter 
sido usadas pelo desenvolvedor para impedir esse tipo de 
problema? 
 
I - Monitor 
II - Bloqueio total 
III - Bloqueio seletivo 
IV - Mutex 
V - Deadlock 
 
(a) I e IV 
(b) II e III 
(c) II e IV 
(d) V, somente 
(e) IV e V 
 
 
Estão corretas I e IV 
Monitor - garante que dois processos não executam seus 
procedimentos simultaneamente. Basta programar a região crítica 
do código como um desses procedimentos. 
Mutex - Aplicar exclusão mútua sobre a região crítica do código. 
 
As demais opções não têm sentido nesse contexto. 
 
2. Uma situação desagradável para qualquer desenvolvedor é 
descobrir que seu sistema está sujeito a sofrer de "Condições de 
corrida" (race conditions). Esta condição ocorre quando dois ou 
mais processos compartilham dados comuns e, dependendo dos 
instantes em que cada processo manipula os dados compartilhados, 
podem ocorrer falhas imprevisíveis. A depuração desse tipo de 
problema nem sempre é trivial, porém, uma vez identificado o 
trecho crítico de código, o desenvolvedor pode evitar o problema 
lançando mão da técnica: 
 
(a) Preempção 
(b) Desfragmentação interna 
(c) Exclusão mútua 
(d) Particionamento 
(e) Uso de threads 
 
Se há um trecho crítico de código, que não pode ser executado 
simultaneamente por mais de um processo, deve-se aplicar a 
Exclusão Mútua nessa região do código. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3. Qual das assertivas abaixo é incorreta: 
(a) A técnica de escalonamento do tipo SJF (Shortest Job First) 
requer uma estimativa prévia do tempo de processamento 
exigido por um determinado programa. 
(b) O escalonador deve ter atenção especial a processos 
interativos, pois um tempo de resposta elevado propicia uma 
má experiência ao usuário. 
(c) Em um sistema não-preemptivo um processo é interrompido 
se realizar uma operação de E/S. 
(d) Em um ambiente com multitarefa cooperativa, o escalonador 
permite que um processo execute por um tempo acima da 
média antes de ser interrompido. 
(e) Uma das informações relacionadas a um processo é o seu 
"Tempo de Processador", que jamais poderá ser maior do que 
o seu tempo de vida, ou seja, o tempo desde que o processo 
foi criado. 
 
 
 
 
Em um ambiente com multitarefa cooperativa, o escalonador 
permite que um processo execute por um tempo acima da média 
antes de ser interrompido. 
ERRADO. Na multitarefa cooperativa um processo só é interrompido 
nas seguintes condições: 
1. O processo interrompe sua execução voluntariamente - não há 
limitação imposta pelo escalonador, nem interrupção forçada. 
2. O processo termina sua execução - fim do programa. 
3. O processo entra em modo de Espera (iniciou operação de E/S). 
 
 
 
 
 
 
 
4. Sobre um sistema operacional que utiliza preempção circular, 
analise as assertivas abaixo: 
I - O uso de um quantum muito elevado é adequado em sistemas 
com maioria de aplicações interativas. 
II - Quanto menor for o quantum, maior será o impacto das rotinas 
que compõem o escalonador sobre o desempenho do sistema 
operacional. 
III - Processos que realizam operação de E/S durante sua execução 
sempre esgotam o tempo definido pelo quantum antes da 
liberação. 
 
Estão corretas as assertivas: 
(a) II , somente 
(b) I, somente 
(c) II e III, somente 
(d) I e III 
(e) Nenhuma das assertivas 
 
 
I - O uso de um quantum muito elevado é adequado em sistemas 
com maioria de aplicações interativas. 
ERRADO. Se o quantum é muito elevado, os processos executarão 
por mais antes de serem interrompidos. No entanto, processos 
interativos em modo de espera irão demorar mais a responder a 
operações de E/S, por exemplo, uma tecla digitada. Como esse 
efeito é desagradável ao usuário, pode-se dizer que o quantum 
elevado é inadequado nessa situação. 
 
II - Quanto menor for o quantum, maior será o impacto das rotinas 
que compõem o escalonador sobre o desempenho do sistema 
operacional. 
CORRETO. Quanto menor for o quantum, mais rápido um processo 
será interrompido. Cada vez que isso ocorre, o escalonador entra 
em ação para decidir o próximo processo que entrará em execução. 
Se as interrupções ocorrerem com mais frequência, o escalonador 
será invocado um maior número de vezes, ou seja, o processador, 
em comparação com a situação anterior, gastará mais tempo 
processando rotinas do núcleo do SO, ao invés de processos. 
 
III - Processos que realizam operação de E/S durante sua execução 
sempre esgotam o tempo definido pelo quantum antes da 
liberação. 
ERRADO. Ao iniciar uma operação de E/S, o processo entra em 
modo de Espera e sua execução é imediatamente interrompida. O 
controle é retornado ao SO, que, através do escalonador, decidirá o 
próximo processo a ser executado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5. Suponha um programa composto por diversos módulos 
independentes, e cujo código é maior do que toda a área de 
memória principal do computador. Uma forma de permitir que ele 
possa ser executado em um sistema monotarefa é através do uso 
de: 
(a) Memória virtual 
(b) Overlay 
(c) Swapping 
(d) Paginação 
(e) Alocação particionada 
 
A técnica de overlay permite que apenas partes do programa sejam 
carregadas para a memória, conforme a necessidade, sendo 
possível executar um programa cujo código completo supera, em 
tamanho, a quantidade de memória disponível. 
 
Os conceitos de memória virtual, paginação, swapping e alocação 
particionada não se aplicam a sistemas monotarefa, como 
explicitado no enunciado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6. O problema de fragmentação interna ocorre quando: 
(a) O sistema operacional não utiliza proteção para evitar que 
um processo escreva na partição de outro, corrompendo os 
dados ali contidos. 
(b) Um bloco de memória, liberado por um processo que se 
encerrou, e localizado entre blocos pertencentes a outros 
processos, é pequeno demais para ser reutilizado por um 
novo processo. 
(c) Após uma operação de swapping, não restam blocos de 
memória de tamanho fixo disponíveis. 
(d) O disco onde é realizado o swapping possui pouco espaço 
livre, o que ocorre após longa utilização. 
(e) Um processo não utiliza toda a capacidade do bloco de 
memória que possui. 
 
Um processo não utiliza toda a capacidade do bloco de memória 
que possui. 
CORRETO. Como parte daquele bloco de memória não foi usado, 
sobra uma área de memória sem uso e que não pode ser oferecida 
a outro processo. 
 
O sistema operacional não utiliza proteção para evitar que um 
processo escreva na partição de outro, corrompendo os dados ali 
contidos. 
ERRADO. Sem relação com o conceito de fragmentação interna. 
 
Um bloco de memória, liberado por um processo que se encerrou, e 
localizado entre blocos pertencentes a outros processos, é pequeno 
demais para ser reutilizado por um novo processo. 
ERRADO. A causa refere-se à fragmentação externa. 
 
Após uma operação de swapping, não restam blocos de memóriade tamanho fixo disponíveis. 
ERRADO. Sem relação com o conceito de fragmentação interna. 
 
 
O disco onde é realizado o swapping possui pouco espaço livre, o 
que ocorre após longa utilização. 
ERRADO. Sem relação com o conceito de fragmentação interna. 
Além disso, a fragmentação interna ocorre na memória principal e 
não na memória secundária (disco, etc). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7. Qual das assertivas abaixo está incorreta: 
(a) O mecanismo que traduz um endereço virtual em um 
endereço real é o mapeamento. 
(b) Se o mapeamento indicar que uma determinada página não 
está residente, ocorre um page fault. 
(c) Com o uso de memória virtual, os processos podem fazer 
referência direta ao endereço da memória principal, mas não 
de memórias secundárias pois o processador não reconhece 
esse endereçamento. 
(d) O uso de memória virtual não exige que as páginas de um 
processo ocupem regiões contíguas da memória principal, e 
nem que estejam ordenadas. 
(e) Dois processos não compartilham uma mesma tabela de 
mapeamento. 
 
 
Com o uso de memória virtual, os processos podem fazer referência 
direta ao endereço da memória principal, mas não de memórias 
secundárias pois o processador não reconhece esse 
endereçamento. 
ERRADO. O uso de memória virtual tem como característica 
fornecer aos processos um endereçamento virtual de memória, sem 
qualquer relação com a memória real (principal ou secundária). 
 
O mecanismo que traduz um endereço virtual em um endereço real 
é o mapeamento. 
CORRETO. 
 
Se o mapeamento indicar que uma determinada página não está 
residente, ocorre um page fault. 
CORRETO. A página deverá ser trazida para a memória principal 
(page in). 
 
O uso de memória virtual não exige que as páginas de um processo 
ocupem regiões contíguas da memória principal, e nem que estejam 
ordenadas. 
CORRETO. Esse é um dos objetivos da memória virtual. 
 
Dois processos não compartilham uma mesma tabela de 
mapeamento. 
CORRETO: Cada processo possui, por definição, sua tabela. 
Compartilhamento de blocos de memória são realizados de outras 
maneiras. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8. Uma operação fundamental realizada pela MMU é determinar, a 
partir de um endereço virtual, o número da página virtual 
correspondente e, dentro dessa página, o deslocamento até o 
ponto representado pelo endereço virtual. Essa operação, que 
precisa ser realizada no menor tempo possível, é feita separando-se 
o endereço virtual em duas partes: um bloco de bits mais 
significativos representando o número da página, e os demais bits 
(menos significativos), o deslocamento. 
Para que a operação possa ser feita como descrito acima, qual das 
condições abaixo é necessária: 
 
(a) A página não pode estar armazenada em memória 
secundária. 
(b) Os processos deverão alocar um número par de páginas. 
(c) O endereço virtual deve possuir duas vezes mais bits que o 
endereçamento da memória real. 
(d) Páginas devem possuir tamanho fixo. 
(e) Recurso de Swapping desativado. 
 
Páginas devem possuir tamanho fixo. 
CORRETO. As páginas devem possuir tamanho fixo, mas não é só 
isso. O tamanho deve ser 2n. 
Por exemplo: 
página de 4096 bytes - os 12 bits (212) menos significativos 
representam o deslocamento (0 a 4095 bytes). Os 20 bits mais 
significativos representam o número da página. 
 
 
 
 
 
 
 
 
 
 
9. Sobre gerenciamento de memória, indique qual das opções abaixo 
está correta: 
(a) Se o limite de frames que podem ser ocupados por página de 
um mesmo processo for reduzido, o tempo até esse processo 
concluir sua tarefa pode aumentar. 
(b) O desempenho de um sistema operacional aumenta 
conforme aumenta a quantidade de page faults gerados 
pelos processos. 
(c) Ao selecionar um frame para liberar, o gerenciador deve 
preferir um cuja página alocada sofreu alteração desde o seu 
page in. 
(d) Quanto menor o tamanho das páginas, menor será a tabela 
de mapeamento. 
(e) Quando um processo faz referência a uma página residente, 
ele é colocado em estado de espera até o término do page in. 
 
Se o limite de frames que podem ser ocupados por página de um 
mesmo processo for reduzido, o tempo até esse processo concluir 
sua tarefa pode aumentar. 
CORRETO. Se em algum momento o processo precisar de um 
número de páginas residentes maior do que o limite, será 
necessária paginação, que consome tempo de E/S. Se o limite 
diminui, a taxa de substituição de páginas tenderá a aumentar, 
elevando o tempo de execução de um processo. Não confundir com 
o tempo de processador. 
 
O desempenho de um sistema operacional aumenta conforme 
aumenta a quantidade de page faults gerados pelos processos. 
ERRADO. Pelo contrário, page faults envolvem operações de E/S, 
que são mais demoradas e aumentam o tempo em que o processo 
ficará em espera. Portanto, o desempenho cai. 
 
Ao selecionar um frame para liberar, o gerenciador deve preferir 
um cuja página alocada sofreu alteração desde o seu page in. 
ERRADO. Se a página sofreu alteração será necessário copiá-la para 
a memória secundária antes da liberação. Se não tiver sido liberada, 
e já existir na memória secundária, os dados naquele frame podem 
ser simplesmente descartados, pois será possível recuperá-los 
posteriormente. 
 
Quanto menor o tamanho das páginas, menor será a tabela de 
mapeamento. 
ERRADO. Se o tamanho de cada página diminui (e a quantidade de 
memória não muda), a quantidade de páginas aumentará. Como a 
tabela de páginas possui uma entrada para cada página, essa tabela 
também crescerá. 
 
Quando um processo faz referência a uma página residente, ele é 
colocado em estado de espera até o término do page in. 
ERRADO. Se a página é residente, já está na memória principal, e 
nenhuma rotina de paginação (E/S) será necessária. O processo 
prossegue executando. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10. Sobre sistemas de arquivos, considere as assertivas abaixo: 
 
I - Se um processo solicita dados localizados no fim de um arquivo 
muito grande, a pesquisa será mais rápida num sistema de alocação 
indexada em relação a um sistema com alocação encadeada. 
II - Num sistema de arquivos com alocação contígua, as chances de 
não ser possível criar um arquivo aumentam quanto maior for esse 
novo arquivo. 
III - Num sistema de arquivos com alocação contígua, operações do 
tipo APPEND podem não ser possíveis, mesmo que exista espaço 
livre no disco. 
 
Estão corretas as assertivas: 
(a) I e III 
(b) II, somente 
(c) III, somente 
(d) II e III 
(e) I, II e III 
 
I - Se um processo solicita dados localizados no fim de um arquivo 
muito grande, a pesquisa será mais rápida num sistema de alocação 
indexada em relação a um sistema com alocação encadeada. 
CORRETO. No sistema de alocação encadeada o ponteiro para o 
próximo bloco está localizado no bloco anterior, portanto o sistema 
deve percorrer todos os blocos até chegar ao último. Num sistema 
de alocação indexada, a lista de blocos está numa área própria 
(índice). 
 
II - Num sistema de arquivos com alocação contígua, as chances de 
não ser possível criar um arquivo aumentam quanto maior for esse 
novo arquivo. 
CORRETO. Como é necessário que existam blocos contíguos que 
comportem todo o arquivo a ser criado, quanto maior o número deblocos necessários, menor será a chance de haver essa quantidade 
disponível e em sequência. 
 
III - Num sistema de arquivos com alocação contígua, operações do 
tipo APPEND podem não ser possíveis, mesmo que haja espaço livre 
no disco. 
CORRETO. A operação APPEND escreve dados no fim do arquivo, ou 
seja, o arquivo cresce. Se for preciso alocar mais um bloco do disco, 
será necessário que o bloco imediatamente posterior ao último 
esteja livre. Caso contrário, o arquivo não poderá crescer.

Outros materiais