Vous êtes sur la page 1sur 22

1.

Conceitos​ ​Gerais​ ​de​ ​Sistemas​ ​Operacionais


a.​ ​Discorra​ ​sobre​ ​as​ ​funcionalidades​ ​do
sistema:
O​ ​SO​ ​fornece​ ​duas​ ​funcionalidades​ ​básicas
que​ ​é​ ​a​ ​abstração​ ​e​ ​a​ ​gerência​ ​de​ ​recursos.
No​ ​que​ ​se​ ​refere​ ​a​ ​abstração​ ​o​ ​SO​ ​contribui
para​ ​fornecer​ ​uma​ ​interface​ ​mais​ ​amigável​ ​pro
usuário​ ​do​ ​que​ ​a​ ​complexa​ ​interface​ ​com​ ​o
HW​ ​e​ ​também​ ​permitir​ ​aplicações​ ​do​ ​usuário
rodem​ ​independente​ ​da​ ​tecnologia​ ​de​ ​HW.​ ​No
tocante​ ​a​ ​Gerencia​ ​de​ ​recursos,​ ​o​ ​SO​ ​fornece
a​ ​gerencia​ ​de​ ​Processos,​ ​de​ ​Memória,​ ​De
Arquivos,​ ​de​ ​dispositivos​ ​de​ ​E/S​ ​para​ ​que
todos​ ​os​ ​recursos​ ​executem​ ​de​ ​forma
coordenada.

d)​ ​Passo​ ​a​ ​passo​ ​entre​ ​ligar​ ​a​ ​maquina​ ​e​ ​SO
pronto​ ​para​ ​uso
O​ ​SO​ ​é​ ​o​ ​primeiro​ ​programa​ ​a​ ​ser​ ​carregado
quando​ ​a​ ​máquina​ ​é​ ​ligada​ ​(boot),​ ​ele​ ​está
presente​ ​no​ ​disco​ ​e​ ​nesse​ ​momento​ ​é
carregado​ ​em​ ​memória.​ ​Um​ ​de​ ​seus
componentes​ ​é​ ​o​ ​código​ ​de​ ​inicialização​ ​que​ ​é
responsável​ ​por​ ​carregar​ ​o​ ​núcleo​ ​do​ ​sistema.
Nesse​ ​momento​ ​também​ ​é​ ​feito​ ​o​ ​teste,​ ​a
configuração​ ​e​ ​o​ ​reconhecimento​ ​dos
periféricos​ ​para​ ​garantir​ ​que​ ​todos​ ​os
dispositivos​ ​estão​ ​funcionando,​ ​após​ ​essa
ultima​ ​etapa​ ​o​ ​SO​ ​inicia​ ​e​ ​o​ ​usuário​ ​acessa​ ​o
sistema.
2.Sobre​ ​Interrupções
a)​ ​Discorra​ ​sobre​ ​sobre​ ​a​ ​importancia​ ​das
interrupções​ ​e​ ​apresente​ ​um​ ​exemplo​ ​de
funcionamento​ ​para​ ​cada​ ​um​ ​dos​ ​tipos​ ​de
interrupções
As​ ​interrupções​ ​de​ ​SW​ ​são​ ​importantes​ ​pois
possibilitam​ ​a​ ​execução​ ​das​ ​chamadas​ ​do
sistema.​ ​Nelas​ ​o​ ​processador​ ​comuta​ ​para​ ​o
nível​ ​privilegiado​ ​e​ ​procede​ ​analogamente​ ​ao
procedimento​ ​de​ ​tratamento​ ​de​ ​interrupção.
Por​ ​Ex.​ ​uma​ ​aplicação​ ​deseja​ ​ter​ ​acesso​ ​a
recursos​ ​do​ ​núcle​ ​do​ ​SO.
No​ ​contexto​ ​de​ ​interrupções​ ​de​ ​hardware,​ ​elas
são​ ​importantes​ ​para​ ​permitir​ ​receber​ ​dados
de​ ​dispositivos​ ​externos,​ ​exemplo,​ ​o​ ​envio​ ​de
um​ ​pacote​ ​de​ ​rede​ ​ou​ ​um​ ​dado​ ​vindo​ ​do
teclado.

3.​ ​Sobre​ ​Tarefas


a.Discorra​ ​sobre​ ​a​ ​representação​ ​abstrata​ ​de
uma​ ​tarefa​ ​num​ ​sistema​ ​computacional
A​ ​tarefa​ ​constitui​ ​a​ ​unidade​ ​básica​ ​de
execução​ ​do​ ​sistema,​ ​ela​ ​é​ ​dinâmica​ ​diferente
de​ ​um​ ​programa,​ ​já​ ​que​ ​possui​ ​estados.
Corresponde​ ​a​ ​execução​ ​de​ ​um​ ​fluxo​ ​de
instruções​ ​que​ ​tem​ ​um​ ​propósito​ ​bem​ ​definido
e​ ​ela​ ​é​ ​representada​ ​por​ ​TCB​ ​(Took​ ​central
block)​ ​no​ ​núcleo​ ​onde​ ​são​ ​guardados​ ​as
informações​ ​necessárias.
b.​ ​Discorre​ ​sobre​ ​a​ ​funcionalidade​ ​troca​ ​de
contexto
O​ ​contexto​ ​informa​ ​o​ ​estado​ ​de​ ​uma​ ​tarefa​ ​em
um​ ​certo​ ​instante.​ ​A​ ​troca​ ​de​ ​contexto​ ​é
imprescindível​ ​no​ ​âmbito​ ​dos​ ​sistemas​ ​multi
tarefa​ ​ja​ ​que​ ​nesses​ ​sistemas​ ​enquanto​ ​uma
tarefa​ ​aguarda​ ​por​ ​dados​ ​externos,​ ​outra
tarefa​ ​pode​ ​ocupar​ ​o​ ​processador​ ​nesse
sentido,​ ​o​ ​despatcher​ ​realiza​ ​a​ ​troca​ ​de
contexto​ ​(​ ​Salva​ ​o​ ​contexto​ ​atual​ ​e​ ​restaura​ ​o
proximo​ ​contexto)​ ​e​ ​o​ ​Scheduler​ ​decide​ ​qual​ ​a
proxima​ ​tarefa​ ​a​ ​ser​ ​executada.​ ​Assim​ ​a​ ​troca
de​ ​contexto​ ​viabiliza​ ​a​ ​execução​ ​de​ ​varias
tarefas​ ​simultaneamente.

4.Sobre​ ​COmunicação​ ​Entre​ ​Tarefas


a.Diferentes​ ​formas​ ​de​ ​realizar​ ​comunicação
entre​ ​processos​ ​e​ ​Diferentes​ ​tipos​ ​de
implementação​ ​da​ ​comunicação​ ​entre
processos
A​ ​comunicação​ ​entre​ ​processos​ ​ocorre​ ​de​ ​de
forma​ ​distintas:​ ​De​ ​modo​ ​direto​ ​e​ ​indireto,​ ​de
forma​ ​síncrona,​ ​assincrona​ ​e​ ​semisincrona,
Entre​ ​outros.​ ​A​ ​comunicação​ ​direta​ ​ocorre
diretamente​ ​entre​ ​o​ ​emissor​ ​e​ ​o​ ​receptor,​ ​sem
utilizar​ ​um​ ​canal​ ​de​ ​comunicação​ ​para​ ​tal.Ja
na​ ​comunicação​ ​indireta​ ​ha​ ​a​ ​utilização​ ​de​ ​um
canal​ ​que​ ​intermedia​ ​a​ ​comunicação​ ​etre​ ​o
emissor​ ​e​ ​o​ ​receptor,​ ​o​ ​emissor​ ​envia​ ​o​ ​dado
para​ ​o​ ​canal​ ​que​ ​posteriormente​ ​será
acessado​ ​pelo​ ​receptor.​ ​A​ ​Comunicação
sincrona​ ​faz​ ​com​ ​que​ ​tanto​ ​o​ ​emissor​ ​quanto​ ​o
receptor​ ​sejam​ ​bloqueados​ ​na​ ​comunicação​ ​,
ja​ ​na​ ​comunicação​ ​assíncrona,​ ​não​ ​existe
esse​ ​bloqueio,​ ​e​ ​ambas​ ​as​ ​partes​ ​podem​ ​não
estar​ ​prontas​ ​para​ ​a​ ​comunicação​ ​que​ ​emitirá
uma​ ​mensagem​ ​de​ ​erro.​ ​Na​ ​comunicação
semisincrona​ ​há​ ​a​ ​utiliação​ ​de​ ​um​ ​buffer​ ​que
armazena​ ​os​ ​dados​ ​emitidos​ ​pelo​ ​emissor​ ​que
poderão​ ​ser​ ​acessados​ ​pelo​ ​receptor​ ​quando​ ​o
mesmo​ ​estiver​ ​disposivel
5.Coordenação​ ​entre​ ​tarefas
a.​ ​principais​ ​abordagens​ ​para​ ​evitar​ ​deadlocks
As​ ​4​ ​condições​ ​para​ ​ocorrer​ ​deadlocks​ ​são:
Exclusão​ ​mútua,​ ​Passe​ ​e​ ​espera,​ ​Espera
circular,​ ​Não​ ​preempção.​ ​Existem​ ​tecnicas
para​ ​previnir,​ ​impedir,​ ​detectar​ ​e​ ​resolver
deadlocks,​ ​A​ ​tecnica​ ​de​ ​prevenção​ ​consiste
em​ ​invalidar​ ​pelo​ ​menos​ ​uma​ ​das​ ​4​ ​condições.
Impedir​ ​consiste​ ​em​ ​monitorar​ ​continuamente
a​ ​alocação​ ​de​ ​recursos​ ​de​ ​forma​ ​a​ ​impedir​ ​a
ocorrencia​ ​do​ ​deadlock,​ ​por​ ​fim​ ​a​ ​detecção​ ​e
resolução​ ​consiste​ ​em​ ​detectar​ ​situções​ ​de
deadlock​ ​por​ ​meio​ ​de​ ​grafo​ ​de​ ​estados​ ​e
resolver​ ​retirando​ ​as​ ​tarefas​ ​envolvidas
6.SO​ ​de​ ​máquina​ ​virtual​ ​e​ ​sistemas​ ​como​ ​o​ ​Xen
costumam​ ​ser​ ​usados​ ​para​ ​executar​ ​múltiplas
cópias​ ​do​ ​mesmo​ ​SO​ ​convidado.​ ​Quais​ ​são​ ​as
vantagens​ ​dessa​ ​abordagem​ ​em​ ​relação​ ​a
execução​ ​de​ ​uma​ ​única​ ​cópia​ ​do​ ​SO​ ​convidado
diretamente​ ​do​ ​HW.
​ ​Com​ ​o​ ​uso​ ​de​ ​múltiplas​ ​cópias​ ​de​ ​um​ ​mesmo​ ​SO
convidado​ ​é​ ​possível​ ​realizar​ ​testes,​ ​verificações
de​ ​programas,​ ​simular​ ​múltiplas​ ​configurações​ ​de
ambiente​ ​para​ ​os​ ​mesmo​ ​SO​ ​convidado,​ ​Auxilia
na​ ​programação​ ​em​ ​baixo​ ​nível​ ​e​ ​reduz​ ​os​ ​custos
de​ ​Hardware
7.defina​ ​as​ ​propriedades​ ​essenciais​ ​dos​ ​seguintes
tipos​ ​de​ ​sistemas​ ​operacionais​.
*​ ​batch:​ ​não​ ​há​ ​interação​ ​com​ ​o​ ​usuário,​ ​trabalham
em​ ​lote.​ ​As​ ​instruções​ ​são​ ​colocadas​ ​numa​ ​fila​ ​e
executadas​ ​completamente.

*​ ​multi-usuário:​ ​identificação​ ​do​ ​"dono"​ ​de​ ​cada


recurso,​ ​para​ ​então​ ​compor​ ​regras​ ​de​ ​acesso

*​ ​de​ ​tempo​ ​real:​ ​Tem​ ​comportamento​ ​temporal


previsível,​ ​deve​ ​minimizar​ ​latência.
*​ ​distribuído:​ ​Os​ ​recursos​ ​de​ ​cada​ ​máquina​ ​são
disponibilizados​ ​globalmente​ ​e​ ​de​ ​forma
transparente​ ​pro​ ​usuário.

8.Quais​ ​são​ ​as​ ​diferenças​ ​entre​ ​uma​ ​interrupção​ ​de


software​ ​e​ ​interrupção​ ​de​ ​hardware?​ ​Qual​ ​a
utilidade​ ​de​ ​cada​ ​uma?
Interrupções de software diz respeito a uma
interrupção que ocorre no interior do sistema
operacional, devido a alguma operação que
gerou falha, como por exemplo uma divisão por
zero. Já a interrupção por hardware é causada
quando um dispositivo faz alguma requisição ao
sistema(por exemplo, uma tecla do teclado é
pressionada), e então o processador interrompe o
fluxo corrente de execução das instruções para
atender​ ​a​ ​essa​ ​interrupção.

9.Quais​ ​são​ ​as​ ​diferenças​ ​entre​ ​fluxo​ ​de​ ​execução


no​ ​nível​ ​de​ ​usuário​ ​e​ ​fluxo​ ​de​ ​execução​ ​que​ ​tem
suporte​ ​de​ ​núcleo?​ ​Em​ ​quais​ ​circunstâncias​ ​um
delas​ ​é​ ​melhor​ ​que​ ​a​ ​outra?​ ​Lembrando​ ​que​ ​um
fluxo​ ​de​ ​execução​ ​é​ ​uma​ ​tarefa​ ​mais​ ​atómica​ ​no
contexto​ ​de​ ​processamento.
A​ ​nível​ ​de​ ​usuário​ ​os​ ​programas​ ​usam​ ​apenas​ ​um
subconjunto​ ​de​ ​serviços​ ​disponibilizados​ ​pelo​ ​SO
e​ ​escolhidos​ ​por​ ​ele,​ ​existem​ ​restrições​ ​no​ ​uso​ ​de
certa​ ​instruções​ ​críticas,​ ​a​ ​fim​ ​de​ ​manter
segurança​ ​do​ ​sistema​ ​computacional.
A​ ​nível​ ​de​ ​núcleo,​ ​os​ ​fluxos​ ​têm​ ​acesso​ ​ao
hardware​ ​e​ ​todos​ ​os​ ​recursos​ ​do​ ​sistema
computacional,​ ​assim​ ​os​ ​fluxos​ ​de​ ​núcleo,
ganham​ ​em​ ​velocidade.

10. Diversos​ ​sistemas​ ​operacionais​ ​não​ ​permitem​ ​o


processamento​ ​concorrente​ ​ou​ ​fazem​ ​de​ ​maneira
limitada.​ ​Discuta​ ​as​ ​maiores​ ​complicações​ ​que​ ​o
processamento​ ​concorrente​ ​acrescenta​ ​a​ ​um
sistema​ ​operacional.
Processamento​ ​concorrente​ ​geralmente​ ​leva​ ​a
condições​ ​de​ ​disputa,​ ​ou​ ​seja,​ ​a​ ​tentativa​ ​de​ ​uso
de​ ​um​ ​mesmo​ ​recurso​ ​por​ ​diferente​ ​tarefas,​ ​logo
deve-se​ ​ter​ ​um​ ​cuidado​ ​para​ ​manter​ ​a
consistência​ ​do​ ​sistema.​ ​Existe​ ​uma​ ​série​ ​de
formas​ ​para​ ​se​ ​tratar​ ​esse​ ​tipo​ ​de​ ​problema,
sendo​ ​as​ ​mais​ ​importantes:
-​ ​Inibição​ ​de​ ​interrupções:​ ​impede​ ​a​ ​troca​ ​de
contexto​ ​dentro​ ​da​ ​seção​ ​crítica
-​ ​Espera​ ​ocupada:​ ​testa​ ​continuamente​ ​se​ ​um
recurso​ ​está​ ​"livre"​ ​ou​ ​"ocupado”
-​ ​Semáforos:​ ​mecanismo​ ​de​ ​sincronização​ ​utilizado
para​ ​sinalizar​ ​as​ ​seções​ ​críticas,​ ​tarefas
"solicitam"​ ​ao​ ​semáforo​ ​o​ ​uso​ ​do​ ​recurso​ ​e​ ​por
ele​ ​são​ ​organizadas.

11. Em​ ​relação​ ​ao​ ​gerenciamento​ ​de​ ​processos,


atribua​ ​V​ ​(verdadeiro)​ ​ou​ ​F​ ​(falso),​ ​às​ ​afirmativas
a​ ​seguir:
I.​ ​F​ ​Na​ ​espera​ ​ocupada,​ ​o​ ​processo​ ​é​ ​transferido
para​ ​estado​ ​de​ ​bloqueado​ ​até​ ​que​ ​sua​ ​fatia​ ​de
tempo​ ​termine​ ​e​ ​então​ ​ele​ ​retorna​ ​para​ ​fila​ ​de
prontos.
II.​ ​O​ ​bloco​ ​de​ ​controle​ ​de​ ​processos​ ​(BCP​ ​-
Process​ ​Control​ ​Block)​ ​é​ ​utilizado​ ​para
armazenar​ ​informações​ ​sobre​ ​o​ ​processo,​ ​e
essas​ ​informações​ ​são​ ​utilizada​ ​na​ ​troca​ ​de
contexto​ ​de​ ​processos.
III.​ ​Threads​ ​apresentam​ ​menor​ ​custo​ ​de​ ​criação
quando​ ​comparadas​ ​aos​ ​processos,​ ​pois
compartilha​ ​alguns​ ​elementos​ ​do​ ​processo,​ ​como
espaço​ ​de​ ​endereçamento,
IV.​ ​F​ ​Um​ ​processo​ ​pode​ ​estar​ ​nos​ ​seguintes
estados:​ ​pronto,​ ​aguardando​ ​execução,​ ​em
execução​ ​e​ ​bloqueado.

V.​ ​Um​ ​processo​ ​pode​ ​ser​ ​uma​ ​chamada​ ​de​ ​sistema


fork(),​ ​nesse​ ​caso,​ ​o​ ​processo​ ​gerado​ ​(conhecido
como​ ​filho)​ ​é​ ​uma​ ​cópia​ ​exata​ ​do​ ​processo
original,​ ​com​ ​os​ ​mesmos​ ​valores​ ​de​ ​variáveis​ ​em
memória,​ ​diferenciando-se​ ​apenas​ ​no
identificador​ ​do​ ​processo.

Justif.​ ​IV:​ ​os​ ​estados​ ​são​ ​‘novo’,​ ​‘pronto’,


‘execução’,​ ​‘suspenso’​ ​e​ ​‘término’

12. Julgue​ ​os​ ​seguintes​ ​itens​ ​em​ ​Verdadeiro​ ​(V)​ ​ou


Falso​ ​(F)​ ​relativas​ ​à​ ​ocorrência​ ​de​ ​deadlocks​ ​(os
impasses).
I.​ ​(​V​)​ ​A​ ​estratégia​ ​de​ ​tratamento​ ​de​ ​deadlocks
conhecida​ ​como​ ​detecção​ ​requer​ ​que​ ​se
determine​ ​uma​ ​condição​ ​suficiente​ ​a​ ​que​ ​eles
ocorram.​ ​Uma​ ​vez​ ​que​ ​determinada​ ​a​ ​condição,​ ​o
tratamento​ ​por​ ​detecção​ ​consiste​ ​em​ ​verificar​ ​sua
validade​ ​e,​ ​em​ ​caso​ ​afirmativo,​ ​concluir​ ​que
existe​ ​um​ ​deadlock.
II.​ ​(​F​)​ ​As​ ​estratégias​ ​como​ ​prevenção​ ​e​ ​detecção
para​ ​o​ ​tratamento​ ​de​ ​deadlocks​ ​são
complementares​ ​uma​ ​à​ ​outra:​ ​Enquanto​ ​primeira
guia​ ​o​ ​projeto​ ​dos​ ​algoritmos​ ​de
compartilhamento​ ​de​ ​recursos​ ​para​ ​que
deadlocks​ ​jamais​ ​ocorram,​ ​a​ ​segunda​ ​trata​ ​de
impedir​ ​que​ ​ocorram​ ​quaisquer​ ​condições
necessárias​ ​à​ ​ocorrência​ ​de​ ​deadlocks.
III.​ ​(​F​)​ ​A​ ​estratégia​ ​de​ ​tratamento​ ​de​ ​deadlocks
conhecida​ ​como​ ​prevenção​ ​requer​ ​que​ ​se
determine​ ​uma​ ​condição​ ​suficiente​ ​a​ ​que​ ​eles
ocorram.​ ​Uma​ ​vez​ ​que​ ​determinada​ ​a​ ​condição,
os​ ​algoritmos​ ​de​ ​manipulação​ ​dos​ ​recursos
compartilhados​ ​em​ ​questão​ ​devem​ ​ser​ ​projetados
de​ ​forma​ ​que,​ ​garantidamente,​ ​ela​ ​jamais​ ​ocorra.
IV.​ ​(​V​)​ ​Para​ ​que​ ​ocorra​ ​um​ ​deadlock​ ​é​ ​necessário
que​ ​haja​ ​um​ ​ciclo​ ​de​ ​espera​ ​envolvendo​ ​um
determinado​ ​conjunto​ ​de​ ​processos.​ ​Uma
estratégia​ ​comum​ ​de​ ​prevenção​ ​é​ ​a​ ​criação​ ​de
algoritmos​ ​de​ ​compartilhamento​ ​de​ ​recursos​ ​que
impeçam​ ​a​ ​ocorrência​ ​de​ ​ciclos.
II.​ ​Justificativa​ ​-​ ​As​ ​estratégias​ ​de​ ​prevenção​ ​e
detecção​ ​não​ ​são​ ​complementares​ ​uma​ ​à​ ​outra.
III.​ ​Justificativa​ ​-​ ​A​ ​prevenção​ ​não​ ​requer​ ​que​ ​se
determine​ ​uma​ ​condição​ ​para​ ​que​ ​o​ ​deadlock
ocorra,​ ​ela​ ​apenas​ ​guia​ ​o​ ​projeto​ ​impedindo-o​ ​de
criar​ ​essas​ ​situações.

13. Um​ ​dos​ ​componentes​ ​vitais​ ​em​ ​um​ ​sistema


operacional​ ​é​ ​a​ ​estrutura​ ​que​ ​armazena​ ​dados
sobre​ ​os​ ​processos​ ​em​ ​execução,​ ​muitas​ ​vezes
chamada​ ​Bloco​ ​de​ ​Controle​ ​de​ ​Processos​ ​(BCP).
Essa​ ​estrutura​ ​é​ ​manipulada​ ​por​ ​todos​ ​os
mecanismos​ ​de​ ​gerenciamento​ ​do​ ​SO,​ ​o​ ​que
evidentemente​ ​cria​ ​problemas​ ​de​ ​condição​ ​de
corrida​ ​nesse​ ​acesso.​ ​Considerando​ ​essas
informações,​ ​assinale​ ​a​ ​alternativa​ ​que
apresenta,​ ​corretamente,​ ​o​ ​tratamento​ ​do​ ​acesso
ao​ ​BCP​ ​em​ ​um​ ​SO.
(a)x​ ​O​ ​controle​ ​de​ ​acesso​ ​ao​ ​BCP​ ​pode​ ​tratar
exclusão​ ​mútua​ ​por​ ​inibição​ ​de​ ​interrupções​ ​sem
prejuízo​ ​de​ ​desempenho.
(b)​ ​A​ ​condição​ ​de​ ​corrida​ ​para​ ​acesso​ ​ao​ ​BCP
inexiste​ ​em​ ​sistemas​ ​operacionais​ ​multithread.
(c)​ ​O​ ​controle​ ​de​ ​acesso​ ​ao​ ​BCP​ ​é​ ​possível​ ​apenas
com​ ​o​ ​uso​ ​de​ ​semáforos,​ ​mesmo​ ​com​ ​o​ ​risco​ ​de
ocorrência​ ​de​ ​deadlocks,
(d)​ ​O​ ​controle​ ​de​ ​acesso​ ​ao​ ​BCP​ ​tem​ ​que​ ​ser​ ​feito
sem​ ​bloqueio​ ​dos​ ​mecanismos​ ​de
gerenciamento,​ ​independente​ ​de​ ​condição​ ​de
corrida.
(e)​ ​Os​ ​mecanismos​ ​de​ ​gerenciamento​ ​de​ ​memória
e​ ​de​ ​entrada/saída​ ​não​ ​tratam​ ​condição​ ​de
corrida,​ ​pois​ ​não​ ​necessitam​ ​alterar​ ​dados​ ​no
BCP.
14. Uma​ ​alternativa​ ​para​ ​o​ ​aumento​ ​de
desempenho​ ​de​ ​sistemas​ ​computacionais​ ​é​ ​uso
de​ ​processadores​ ​com​ ​múltiplos​ ​núcleos
chamados​ ​multicores.​ ​Nestes​ ​sistemas,​ ​cada
núcleo​ ​,​ ​normalmente​ ​tem​ ​as​ ​funcionalidades
completas​ ​de​ ​um​ ​processador,​ ​já​ ​sendo​ ​comuns,
atualmente,​ ​configurações​ ​de​ ​2,​ ​4​ ​ou​ ​mais
núcleos.​ ​Com​ ​relação​ ​ao​ ​uso​ ​de​ ​processadores
multicores,​ ​e​ ​sabendo​ ​que​ ​threads​ ​são​ ​estruturas
de​ ​execução​ ​associadas​ ​a​ ​um​ ​processo,​ ​que
compartilham​ ​suas​ ​áreas​ ​de​ ​código​ ​e​ ​dados,​ ​mas
mantém​ ​contextos​ ​independente,​ ​analise​ ​as
seguintes​ ​asserções.

Ao​ ​dividirem​ ​suas​ ​atividades​ ​em​ ​múltiplas​ ​threads


que​ ​podem​ ​ser​ ​executadas​ ​paralelamente,
aplicações​ ​podem​ ​se​ ​beneficiar​ ​mais
efetivamente​ ​dos​ ​diversos​ ​núcleos​ ​dos
processadores​ ​multicores.

Porque
O​ ​sistema​ ​operacional​ ​nos​ ​processadores
multicores​ ​pode​ ​alocar​ ​os​ ​núcleos​ ​existentes​ ​para
executar​ ​simultaneamente​ ​diversas​ ​sequências
de​ ​código,​ ​sobrepondo​ ​suas​ ​execuções​ ​e,
normalmente,​ ​reduzindo​ ​o​ ​tempo​ ​de​ ​resposta​ ​das
aplicações​ ​às​ ​quais​ ​estão​ ​associadas.

Acerca​ ​dessas​ ​asserções,​ ​assinale​ ​a​ ​opção


correta.
(a)​ ​As​ ​duas​ ​asserções​ ​são​ ​proposições
verdadeiras,​ ​mas​ ​a​ ​segunda​ ​não​ ​é​ ​uma
justificativa​ ​correta​ ​da​ ​primeira.
(b)​ ​A​ ​primeira​ ​asserção​ ​é​ ​uma​ ​proposição
verdadeira,​ ​e​ ​a​ ​segunda,​ ​uma​ ​proposição​ ​falsa.
(c)​ ​As​ ​duas​ ​asserções​ ​são​ ​proposições​ ​verdadeira,
e​ ​a​ ​segunda​ ​é​ ​uma​ ​justificativa​ ​correta​ ​da
primeira.
(d)​ ​A​ ​primeira​ ​asserção​ ​é​ ​proposição​ ​falsa,​ ​e​ ​a
segunda,​ ​uma​ ​proposição​ ​verdadeira.
(e)​ ​Tanto​ ​a​ ​primeira​ ​quanto​ ​a​ ​segunda​ ​asserções
são​ ​proposições​ ​falsas.
15. Uma​ ​antiga​ ​empresa​ ​de​ ​desenvolvimento​ ​de
software​ ​resolveu​ ​atualizar​ ​toda​ ​sua​ ​infraestrutura
computacional​ ​adquirindo​ ​um​ ​sistema
operacional​ ​multitarefa,​ ​processadores​ ​multicores
(múltiplos​ ​núcleos)​ ​e​ ​o​ ​uso​ ​de​ ​uma​ ​linguagem​ ​de
programação​ ​com​ ​suporte​ ​a​ ​threads.​ ​O​ ​sistema
operacional​ ​multitarefa​ ​de​ ​um​ ​computador​ ​é
capaz​ ​de​ ​executar​ ​vários​ ​processos​ ​(programas)
em​ ​paralelo.​ ​Considerando​ ​esses​ ​processos
implementados​ ​com​ ​mais​ ​de​ ​um​ ​thread
(multi-threads),​ ​analise​ ​as​ ​afirmações​ ​abaixo.
I.​ ​Threads​ ​de​ ​diferentes​ ​processos​ ​compartilham
memória.
II.​ ​Os​ ​ciclos​ ​de​ ​vida​ ​de​ ​processos​ ​e​ ​threads​ ​são
idênticos.
III.​ ​Somente​ ​processadores​ ​multi-core​ ​são​ ​capazes
de​ ​executar​ ​programas​ ​multi-threads.
IV.​ ​Em​ ​sistemas​ ​operacionais​ ​multitarefas​ ​threads
podem​ ​migrar​ ​de​ ​um​ ​processo​ ​para​ ​outro,
É​ ​correto​ ​apenas​ ​o​ ​que​ ​se​ ​afirma​ ​em:​ ​II

I.​ ​Justificativa​ ​-​ ​Threads​ ​de​ ​diferentes​ ​processos


não​ ​compartilham​ ​memória
III.​ ​Justificativa​ ​-​ ​Independente​ ​do​ ​número​ ​de​ ​cores
é​ ​possível​ ​executar​ ​um​ ​programa​ ​multithread.
IV.​ ​Justificativa​ ​-​ ​Threads​ ​não​ ​podem​ ​migrar​ ​de​ ​um
processo​ ​para​ ​outro​ ​em​ ​um​ ​SO​ ​multitarefa

16. ​ ​Entre​ ​os​ ​métodos​ ​de​ ​exclusão​ ​mútua,


desabilitação​ ​de​ ​interrupções,​ ​instruções
test-and-set​ ​e​ ​semáforos,​ ​quais​ ​podem​ ​ser
utilizados​ ​pelos​ ​processos​ ​de​ ​usuário​ ​e​ ​quais
deveriam​ ​ser​ ​reservados​ ​para​ ​utilização​ ​do
sistema​ ​operacional?​ ​Pq?

Exclusão​ ​mútua​ ​e​ ​semáforos​ ​podem​ ​ser​ ​utilizados


pelos​ ​processos​ ​de​ ​usuários,​ ​enquanto​ ​que​ ​a
desabilitação​ ​de​ ​interrupções​ ​e​ ​instruções
test​and​set​ ​devem​ ​ser​ ​reservados​ ​ao​ ​SO​ ​pois​ ​são
operações​ ​privilegiadas​ ​e​ ​processos​ ​de​ ​usuários
não​ ​teriam​ ​acesso​ ​a​ ​esses​ ​métodos.

Exclusão​ ​mútua:​ ​programador,​ ​ele​ ​que​ ​define​ ​o


início​ ​e​ ​fim​ ​da​ ​seção​ ​crítica​ ​(dentro​ ​do​ ​programa).
Desabilitação​ ​de​ ​interrupções:​ ​SO,​ ​é​ ​algo​ ​inerente
ao​ ​kernel,​ ​não​ ​se​ ​pode​ ​deixar​ ​o​ ​usuário
desabilitar​ ​as​ ​interrupções,​ ​poderia​ ​gerar​ ​n
problemas.
Test-and-set:​ ​programador,​ ​ele​ ​que​ ​cria​ ​e​ ​usua​ ​a
variável​ ​busy.
Semáforo:​ ​ambos,​ ​a​ ​variável​ ​não​ ​é​ ​acessível
diretamente​ ​pelo​ ​programador,​ ​são
implementadas​ ​no​ ​núcleo​ ​do​ ​sistema,​ ​mas​ ​o
programador​ ​também​ ​pode​ ​implementar​ ​um
semáforo​ ​no​ ​seu​ ​código.

13.​ ​Suponha​ ​que​ ​um​ ​lote​ ​de​ ​jobs​ ​seja​ ​submetido,


identificados​ ​por​ ​levar​ ​100,30,20,240​ ​e​ ​120
segunos,​ ​respectivamente,​ ​suponha​ ​que​ ​eles
chegem​ ​nessa​ ​mesma​ ​ordem,​ ​mas​ ​que​ ​não​ ​haja
tempo​ ​entre​ ​suas​ ​chegadas.​ ​Qual​ ​o​ ​tempo​ ​média
de​ ​vida​ ​para​ ​o​ ​escalonamento​ ​"primeiro​ ​a​ ​chegar,
primeiro​ ​a​ ​ser​ ​servido"?​ ​Qual​ ​é​ ​esse​ ​tempo​ ​para
"job​ ​mais​ ​curto​ ​primeiro"?​ ​fifo:​ ​Tt​ ​=
(100+130+150+390+510)/5​ ​=​ ​256s
sjf:​ ​Tt​ ​=​ ​(150+50.20+510+270)/5​ ​=​ ​200s

14..​ ​A​ ​maioria​ ​dos​ ​escalonadores​ ​por​ ​revezamento


(round​ ​robin)​ ​usa​ ​quantum​ ​de​ ​tamanho​ ​fixo.​ ​Dê
um​ ​argumento​ ​em​ ​favor​ ​de​ ​um​ ​quantum
pequeno.​ ​Agora​ ​esboce​ ​um​ ​argumento​ ​que
justifique​ ​um​ ​quantum​ ​grande.
Um​ ​Quantum​ ​pequeno,​ ​evita​ ​starvation​ ​ou​ ​que
tarefas​ ​que​ ​entrem​ ​em​ ​loop​ ​atrasem​ ​infinitamente
outra​ ​tarefas.​ ​Quantum​ ​grande​ ​favorece​ ​threads,
dado​ ​que​ ​o​ ​tempo​ ​da​ ​thread​ ​é​ ​divida​ ​entre​ ​as
demais.

15.​ ​ ​Algumas​ ​pessoas​ ​já​ ​disseram​ ​que​ ​o​ ​uso


adequado​ ​de​ ​mecanismo​ ​de​ ​spooling​ ​eliminaria​ ​a
ocorrência​ ​de​ ​impasses.​ ​Certamente,​ ​ele​ ​evita
concorrência​ ​no​ ​uso​ ​de​ ​impressoras​ ​e​ ​similares.
É​ ​possível​ ​que​ ​ocorra​ ​um​ ​impasse​ ​envolvendo
esses​ ​recursos?​ ​Se​ ​for,​ ​como​ ​esse​ ​impasse
poderia​ ​ocorrer?​ ​Se​ ​não​ ​pq?​ ​Qual​ ​metodo​ ​para
lidar​ ​com​ ​impasses​ ​seria​ ​mais​ ​adequado​ ​para
eliminar​ ​esses​ ​impasses​ ​(se​ ​for​ ​possível​ ​usar
algum)​ ​ou​ ​que​ ​condição​ ​impede​ ​esse​ ​uso​ ​(se​ ​não
for​ ​possível)?
No​ ​caso​ ​de​ ​impressoras​ ​e​ ​similares,​ ​não,​ ​pois​ ​o
método​ ​gerenciador​ ​recebe​ ​as​ ​requisições​ ​e​ ​as
processa​ ​criando​ ​uma​ ​fila​ ​de​ ​impressão​ ​(caso​ ​da
impressora).
Posse​ ​e​ ​espera​ ​também​ ​seria​ ​aplicável​ ​aqui,​ ​cada
processo​ ​toma​ ​posse​ ​da​ ​impressora,​ ​imprime
completamente​ ​seu​ ​arquivo​ ​e​ ​então​ ​a​ ​libera.

16.​ ​ ​Considere​ ​um​ ​sistema​ ​que​ ​consiste​ ​de​ ​quatro


recursos​ ​da​ ​mesma​ ​classe,​ ​compartilhados​ ​por
três​ ​processos,​ ​cada​ ​um​ ​dos​ ​quais​ ​precisar​ ​usar
no​ ​máximo​ ​dois​ ​recursos.​ ​Mostre​ ​que​ ​não​ ​ocorre
impasse.
Vamos​ ​considerar​ ​o​ ​pior​ ​caso:​ ​todas​ ​as​ ​tarefas
necessitam​ ​de​ ​dois​ ​recursos​ ​simultaneamente​ ​e
cada​ ​tarefa​ ​já​ ​tem​ ​a​ ​posse​ ​de​ ​um.
Dessa​ ​forma​ ​temos​ ​três​ ​tarefas​ ​com​ ​um​ ​recurso
cada​ ​e​ ​um​ ​recurso​ ​livre,​ ​uma​ ​delas​ ​irá​ ​pegar​ ​esse
recursos,​ ​executará​ ​e​ ​o​ ​liberará,​ ​resultando​ ​em
duas​ ​tarefas​ ​com​ ​um​ ​recurso​ ​cada,​ ​e​ ​dois
recursos​ ​livres,​ ​no​ ​momento​ ​seguinte​ ​cada​ ​uma
dessas​ ​tarefas​ ​pega​ ​um​ ​recurso​ ​e​ ​executa.

Vous aimerez peut-être aussi