Prévia do material em texto
Prova 1 - Sistemas Operacionais
1) Um sistema monousuário pode ser um sistema multiprogramável? Por que e dê um exemplo.
Sim, pode, pois as características de um sistema multiprogramável não dependem de ele ser
multiusuário, apenas de alguns pontos, como por exemplo: Existir interrupção, para assim
poderem ser executadas tarefas “concorrentes”.
2) Qual o número máximo de células endereçadas em arquiteturas com MAR de 16, 32, e 64 bits?
Explique.
Significado de MAR =
MAR = 16 bits número max células = 216
MAR = 32 bits número max células = 232
MAR = 64 bits número max células = 264
3) Descreva os ciclos de leitura e gravação de dados na memória principal.
No ciclo de leitura, a UCP armazena no MAR, o endereço da célula a ser lida e gera um sinal de
controle para a
memória principal, indicando que uma operação de leitura deve ser realizada. O conteúdo da(s)
célula(s), identificada(s)
pelo endereço contido no MAR, é transferido para o MBR
No ciclo de gravação, a UCP armazena no MAR, o endereço da célula que será gravada e
armazena no MBR, a
informação que deverá ser gravada. A UCP gera um sinal de controle para a memória principal,
indicando que uma
operação de gravação deve ser realizada e a informação contida no MBR é transferida para a
célula de memória
endereçada pelo MAR
4) Por que o mecanismo de interrupção é fundamental para a implementação da
multiprogramação?
É algo fundamental porque somente assim o sistema operacional pode trocar o que está sendo
executado se quiser, ou seja, compartilhar o tempo de processamento, permitindo assim a
multiprogramação, e caso tenha dado algum problema, não dependerá exclusivamente do
programa que está sendo executado terminar para sair do processador.
5) Um processador tem cinco estágios de pipeline. Suponha que cada uma das etapas do
processador (busca, decodificação, execução, leitura ou escrita de dados em memória e escrita
em registrador) seja executada em 5ns.
O tempo total para que 5 instruções sejam executadas em pipeline, supondo que não haja
dependência de dados entre as instruções é:
45ns
Justificativa:
“Escadinha"
Quando é carregada uma nova instrução, ela primeiramente passa pelo primeiro estágio, que
trabalha nela durante apenas um ciclo de clock, passando-a adiante para o segundo estágio. A
instrução continua então sendo processada sucessivamente pelo segundo, terceiro, quarto e
quinto estágios do processador. A vantagem desta técnica, é que o primeiro estágio não precisa
ficar esperando a instrução passar por todos os demais para carregar a próxima, e sim carregar
uma nova instrução assim que se livra da primeira, ou seja, depois do primeiro pulso de clock.
6) O que é concorrência e como este conceito está presente nos sistemas operacionais
multiprogramáveis?
Concorrência é o princípio básico para projeto e implementação dos sistemas operacionais
multiprogramáveis onde é possível o processador executar instruções em paralelo com
operações de E/S. Isso possibilita a utilização concorrente da UCP por diversos programas
sendo implementada de maneira que, quando um programa perde o uso do processador
e depois retorna para continuar o processamento, seu estado deve ser idêntico ao do momento
em que foi interrompido. O programa deverá continuar sua execução exatamente na instrução
seguinte àquela em que havia parado, aparentando
ao usuário que nada aconteceu.
7) Em relação aos sistemas operacionais, para que uma operação possa executar uma instrução
privilegiada, o processador implementa o mecanismo de modos de acesso. Esse mecanismo
está dividido basicamente em dois modos de acesso conhecidos por:
Modo Usuário e Modo Kernel
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
8) O que é um system call e qual sua importância para a segurança do sistema? Como as system
calls são utilizadas por um programa?
9) Considere o seguinte código para implementar exclusão mútua entre dois processos i e j:
Processo Pi
do
while (turn != i); //Entrada da seção crítica
Seção Crítica
turn = j;
Código restante
while ( 1 );
Em relação ao código acima, todas as afirmativas estão corretas, exceto:
[ ] A implementação garante exclusão mútua.
[x] A implementação garante progresso.
[ ] Os processos fazem espera ativa.
[ ] Exige alternância estrita.
[ ] Um processo bloqueia o outro mesmo não estando na seção crítica.
10) Compare as arquiteturas monolíticas e de camadas de sistemas operacionais. Quais as
vantagens e desvantagens de cada arquitetura?
11) Por que o conceito de processo é tão importante no projeto de sistemas multiprogramáveis?
12) Os Sistemas Operacionais estão sujeitos a um fenômeno denominado deadlock. Para que
uma situação de deadlock seja criada, as seguintes condições devem acontecer
simultaneamente:
[x] Exclusão mútua (mutual exclusion), monopolização de recursos (hold and wait), não
preempção (no preemption) e espera circular (circular wait).
13) O que é contexto de hardware de um processo e como é a implementação da troca de
contexto?
Lembrar daquele desenho… Pode ser que ajude
14) Sobre estados de processos em Sistemas Operacionais, analise as assertivas e assinale a
alternativa que aponta a(s) correta(a).
I. Um processo, em um sistema multiprogramável (multitarefa), não é executado todo o tempo
pelo processador. Durante sua existência, ele passa por uma séria de estados. Basicamente,
existem três estados em que um processo pode se encontrar no sistema.
II. Execução (running), um processo é classificado como running quando aguarda uma
oportunidade para executar, ou seja, esperando que o sistema operacional aloque a UCP
para sua execução.
III. Pronto (ready), um processo é dito nesse estado quando está sendo processado pela UCP.
Em sistemas com apenas um processador, somente um processo pode estar pronto em um
dado instante de tempo.
IV. Espera (wait), neste estado um processo aguarda algum evento externo ou por algum recurso
para poder prosseguir seu processamento. Como exemplo, podemos citar o término de uma
operação de entrada/saída ou a espera de uma determinada data e/ou hora para poder
continuar sua execução.
[x] Apenas I e IV estão corretas.
15) Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento
entre threads de um processo?
Acredito que uma das vantagens seja não duplicar tais dados na memória do computador, e uma
das desvantagens está só poder uma das threads poder acessar no modo escrita/alteração tais
endereços.
(Pensar também no contexto de execução)
16) São vantagens da utilização de threads no espaço do usuário, exceto:
[ ] Nenhuma modificação é necessária no kernel.
[x] O sistema operacional escalona a thread.
[ ] O escalonamento pode ser específico para a aplicação.
[ ] A criação e o gerenciamento das threads são mais eficientes.
[ ] Maior portabilidade da aplicação.
Justificativa:
17) Considere o seguinte programa com dois processos concorrentes. O escalonador poderá
alternar entre um e outro, isto é, eles poderão ser intercalados durante sua execução. As
variáveis x e y são compartilhados pelos processos e inicializadas antes de sua execução.
program P
int x = 0;
int y = 0;
processo A{
while ( x == 0);
print (“a”) ;
y = 1;
y = 0;
print( “d”);
y = 1;
}
processo B{
print(“b”);
x = 1;
while ( y == 0 );
print(“c”);
}
As possíveis saídas são:
[ ] adbc ou bcad
[x] badc ou bacd
[ ] abdc ou abcd
[ ] dbca ou dcab
[ ] Nenhuma das opções anteriores
18) Analise as seguintes afirmativas.
I. Condições de corrida podem ocorrerse múltiplas threads fazem leituras de um dado
compartilhado, mesmo que nenhuma realize escritas.
II. O uso do mutex para exclusão mútua em seções críticas garante que não hajam condição de
corrida, porém pode ocasionar deadlock se não for corretamente empregado.
III. Monitores são baseados em um tipo abstrato de dados e um controle de acesso aos dados.
Apenas funções do monitor acessam os dados e apenas um thread ou processo pode
executar funções de um monitor por vez.
IV. Semáforos têm duas operações, P( ) e V( ), sendo que apenas a operação P( ) pode bloquear
um processo ou thread.
( a ) Apenas as afirmativas I, II e III são verdadeiras.
( b ) Apenas as afirmativas I, III e IV são verdadeiras.
( c ) Apenas as afirmativas II e IV são verdadeiras.
( d ) Apenas as afirmativas II, III e IV são verdadeiras.
( e ) Nenhuma das alternativas é verdadeira.
Alternativa: C
Justificativa:
19) Uma alternativa para o aumento de desempenho de sistemas computacionais é o uso de
processadores com múltiplos núcleos, chamadas multicores. Nesses sistemas, cada núcleo,
normalmente, tem as funcionalidades completas de um processador, já sendo comuns,
atualmente, configurações com 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 independentes, 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 do 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:
( b ) As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da
primeira
20)
21)