Escolar Documentos
Profissional Documentos
Cultura Documentos
Coluna 2:
( ) a) Melhora a utilização da UCP pois permite a troca de um trabalho para outro, quando por
exemplo um trabalho está esperando por uma operação de entrada.
( ) b) Usuário(s) pode(m) usar o computador ao mesmo tempo de modo interativo, pois o tempo de
troca entre usuário(s) é pequeno e o(s) usuário(s) têm a impressão que o computador está a sua
disposição.
( ) c) Prompt de comando do Windows, PowerShell e Shell do UNIX.
( ) d) Processadores tem memória privada, mas pode(m) ser organizado(s) em cluster(s).
( ) e) Divisão por zero, overflow, instrução inválida, falta de página, etc.
( ) f) Desabilitar interrupções e alterar o horário do relógio.
( ) g) Processadores compartilham a mesma memória física.
( ) h) Gerada(o) por evento assíncrono externo, possibilitando o escalonamento de processos.
( ) i) Possibilita a execução de um código binário Java independentemente da plataforma.
( ) j) Usada para implementar as chamadas de sistema (trap) ao SO.
( ) k) Ambiente para o compartilhamento e agregação de recursos geograficamente distribuídos.
( ) l) Ler o horário do relógio e passar do modo usuário para o modo núcleo (supervisor: kernel).
2
(D) usar um gerenciador para instalar pacotes próprios da edição em uso. Usar programas com
instaladores proprietários, destinados a restringir a quantidade de distribuições. Instalar o programa
a partir do códigofonte.
(E) usar um gerenciador para instalar pacotes próprios da distribuição em uso. Usar programas com
um instalador genérico, destinados a funcionar em distribuições de mineração de dados. Instalar o
programa a partir do código-objeto.
(E) na arquitetura em camadas, cada camada oferece um conjunto de funções que podem ser
utilizadas apenas pelas camadas superiores.
(B) x32.
(C) x80.
(D) x84.
(E) x86.
1 1 C 17.145% -0,48%
6 6 cn 4.051% -2.16%
13 37 F# 1.093% +0,86%
Considerando que, em ambos os processos, o código binário é o que será executado pelo
computador, e que a execução de dois programas gerados, cada qual por um dos processos
apresentados, ocorre em situações equivalentes, avalie as afirmações a seguir.
II. Na execução do programa gerado por meio do processo híbrido, o consumo de memória é
maior que na execução pelo processo de compilação clássica.
Em relação ao estudo de caso mencionado acima, avalie as asserções a seguir e a relação proposta
entre elas.
PORQUE
II. A virtualização, se associada a outras tecnologias atuais como GED, Cloud Computing e
Grid Computing, possibilita que as organizações foquem no negócio, eliminando os riscos
associados à área de Tl.
e) a lista circular: tipo especial de lista encadeada, na qual o último elemento tem como próximo o
primeiro elemento da lista, formando um ciclo, não havendo diferença entre primeiro e último, e a
estrutura deve possuir um nó com a informação (recorde) e um apontador, respectivamente, para o
próximo nó.
A tabela abaixo mostra os processos na fila de pronto para serem executadas por um processador.
A 7 2 2
B 4 3 1
C 12 1 3
D 11 3 2
c) De todos os escalonamentos listados acima, quais deles que geralmente resultam no:
- Tempo de resposta médio (TRM) mínimo.
- Tempo de espera médio (TEM) mínimo.
- Tempo de processamento médio (TPM/JTT) mínimo.
- Maior Tempo de processamento médio (TPM/JTT).
Porque
18
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.
( ) A) Ao ser executado, um processo pode passar por diferentes estados. Por exemplo, há
sistemas operacionais em que um processo pode estar sendo executado, estar aguardando a
ocorrência de algum evento ou estar pronto para ser executado. Para cada estado, há sistemas
operacionais que mantêm uma lista com blocos de controle dos processos no estado. (Questão 65
ANALISTA DE SISTEMAS)
( ) B) Em uma mudança de contexto, para que um processo possa ser futuramente executado a
partir de onde estava quando foi interrompido, um sistema operacional poderá armazenar dados
sobre o contexto do processo, sendo parte desse contexto composto por dados nos registradores do
processador. (Questão 70a ANALISTA DE SISTEMAS)
( ) C) Um sistema operacional pode implementar o escalonamento round-robin, mantendo uma
fila de processos prontos para execução. Uma vez posto em execução, um processo tipicamente
poderá liberar o processador voluntariamente ou ter a sua execução interrompida ao final de um
intervalo de tempo. (Questão 66b ANALISTA DE SISTEMAS)
( ) D) Em alguns algoritmos de escalonamento de processos classificados como round robin com
multilevel feedback, as prioridades dos processos são periodicamente calculadas e os processos são
movidos entre listas que representam as prioridades. Há implementações desses algoritmos nas
quais os processos podem influenciar as suas prioridades. (Questão 69a ANALISTA DE
SISTEMAS)
Ex11:
Descreva o processo de carga (booting) para os sistemas Linux e MS Windows.
Ex 15:
Quais são as principais diferenças entre threads e processos? Em que circunstâncias um tipo é mais
adequado do que o outro?
Tabela I
P01 CPU-BOUND 20
P02 CPU-BOUND 40
P03 CPU-BOUND 60
P04 IO-BOUND 50
Tabela II
4: Todos 306
Dias depois, revendo as tabelas, ele teve dúvida quanto à correção dos tempos anotados. Considere
ut = unidade de tempo.
Com relação a essa situação, avalie as afirmações a seguir.
22
Um processo tem um ou mais fluxos de execução, normalmente denominados apenas por threads.
TANENBAUM, A. D. Sistemas operacionais modernos. 3. ed. São Paulo: Pearson Prentice Hall, 2010 (adaptado).
(A) Preemptivo.
(B) First-Come, First Served.
(C) Hood-Robin.
(D) Quantum.
(E) Não-preemptivo.
(a) Explique porque este programa pode originar um deadlock? Qual o valor de x, y e z durante o
deadlock?
(b) Descreva um possível escalonamento no qual este programa termina. Qual o valor de x, y e z
neste caso?
27
100
200
300
400
500
600
700
800
900
1000
28
13
14
15
16
processo consumidor
comando_e
comando_f
retira do buffer
comando_g
comando_h
consome o item
A partir dessas informações, para que o problema do buffer limitado de tamanho N cujos
pseudocódigos foram apresentados possa ser resolvido a partir do uso dos semáforos mutex, cheio e
vazio, é necessário que comando_a, comando_b, comando_c, comando_d, comando_e, comando_f,
comando_g e comando_h correspondam, respectivamente, às operações
a) wait(vazio), wait(mutex), signal(mutex), signal(cheio), wait(cheio), wait(mutex), signal(mutex)
e signal(vazio).
b) wait(cheio), wait(mutex), signal(mutex), signal(vazio), wait(vazio), signal(mutex), signal(mutex)
e wait(cheio).
c) wait(mutex), wait(vazio), signal(cheio), signal(mutex), wait(mutex), wait(vazio), signal(cheio) e
signal(mutex).
d) wait(mutex), wait(vazio), signal(cheio), signal(mutex), wait(mutex), wait(cheio), signal(vazio) e
signal(mutex).
e) wait(vazio), signal(mutex), signal(cheio), wait(mutex), wait(cheio), signal(mutex), signal(vazio) e
signal(mutex).
30
QUESTÃO 54
class LockA {
private int turn = 0
public void acquire(int tid) {
while (turn == (1 - tid));
}
public void release(int tid) {
turn = (1 - tid);
}
31
}
class LockB {
public void acquire() {
disablelnterrupts();
}
public void release!) {
enablelnterrupts();
}
}
Considera-se que:
- as duas implementações de lock são utilizadas por aplicações com, no máximo, duas threads;
- uma aplicação que utilizar qualquer uma destas implementações invocará o método acqui re antes
de entrar em sua seção crítica e o método release após deixar a seção crítica;
- tanto o método acqui re quanto o método release são operações atómicas nas duas implementações
de lock;
- para a implementação que requer um tid (thread id), assume-se que ele sempre será 0 ou 1;
- os métodos disablelnterrupts e enablelnterrupts são utilizados para desabilitare habilitar
respectivamente as interrupções do processador onde o código for executado. O código desses dois
métodos foi desenvolvido para ser utilizado em uma máquina com um ou dois processadores.
printf("1 ");
pthread_exit(0) ;
}
void main() {
pthread_t tl, t2;
// Cria e dispara tl que executa funcaol
pthread_create(&tl, NULL,(void * ) funcaol, NULL);
// Cria e dispara t2 que executa funcao2
pthread_create(&t2, NULL,(void *)funcao2, NULL);
// Pai espera filho terminar
pthread_join(tl, NULL);
// Pai espera filho terminar
pthread_join(t2, NULL);
}
Ao final da execução da função mai n, será impresso
A) ambos os valores "1" e "2".
B) o valor "1", necessariamente.
C) o valor "2", necessariamente.
D) o valor "1", ou o valor "2", mas nunca ambos.
E) o valor "1", ou o valor "2", ou nenhum valor, mas nunca ambos.
Tl T2
Aloca El Aloca E2
Calcula a média M l dos valores de El Calcula a soma S I de todos os valores de E2
Aloca E2 Aloca El
Calcula a média M2 dos valores de E2 Calcula a soma S2 de todos os valores de E l
Calcula M3 = M1 + M2 Calcula S 3 = |S1 - S 2 |
Soma M3 em todos os valores de E2 Subtrai S2 de todos os valores de El
Libera E l Libera E2
Libera E2 Libera El
Durante a execução do referido programa, é possível que
A) não ocorra deadlock, porque a sequência de alocação dos recursos impede naturalmente o
(problema.
33
B) ocorra deadlock, que pode ser evitado se o programador tomar o cuidado de não executar
cálculos entre um pedido de alocação e outro.
C) ocorra deadlock, sendo a probabilidade dessa ocorrência tão baixa e sua consequência tão inócua
que não haverá comprometimento do programa.
D) não ocorra deadlock, desde que o programador use semáforos para controlar o acesso às
estruturas de dados, o que é suficiente para evitar o problema.
E) ocorra deadlock, que pode ser evitado se o programador tomar o cuidado de solicitar o acesso às
estruturas de dados na mesma ordem em ambas as threads.
b) ASOM: Arquitetura de Sistemas Operacionais, 3ª., 4ª. e 5ª. ed (2013), Francis Berenger;
Machado, Maia, Luiz Paulo, LTC. 2013.
e) SOD3ed: Sistemas operacionais, DEITEL, Harvey M.; DEITEL, Paul J.; CHOFFNES, David R,
Pearson, 3 ed, 2005.
f) SOJ7ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham; GALVIN, Peter B.;
GAGNE., 7a. ed., Campus. 2008.
g) SOJ8ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham; GALVIN, Peter B.;
GAGNE., 7a. ed., Campus. 2016.