Buscar

Sistemas Operacionais Exercícios Comentados

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Os arquivos em anexo tratam de um introdução aos sistemas operacionais,
Estruturas de Sistemas Computacionais e Estruturas de Sistemas
Operacionais.
Referência:
Silberschatz, Abraham. Sistemas Operacionais com Java. 7 ed. Rio
de Janeiro: Elsevier, 2008.
 
 
 
Exercício 1:
Enade 2008 - Questão 11
 
Com relação às diferentes tecnologias de armazenamento de dados,
julgue os itens a seguir.
 
1. Quando a tensão de alimentação de uma memória ROM é
desligada, os dados dessa memória são apagados. Por isso, esse
tipo de memória é denominado volátil.
2. O tempo de acesso à memória RAM é maior que o tempo de
acesso a um registrador da unidade central de processamento
(UCP).
3. O tempo de acesso à memória cache da UCP é menor que o
tempo de acesso a um disco magnético.
https://online.unip.br/Arquivo?id=47939.PDF
https://online.unip.br/Arquivo?id=47938.PDF
https://online.unip.br/Arquivo?id=47937.PDF
https://online.unip.br/Arquivo?id=47936.PDF
4. O tempo de acesso à memória cache da UCP é maior que o
tempo de acesso à memória RAM.
Estão certos apenas os itens
A)
 I e II.
B)
 I e III.
C)
 II e III.
D)
II e IV
E)
III e IV.
O aluno respondeu e acertou. Alternativa(C)
Comentários:
C) Existem diferentes tecnologias de armazenamento de dados
e elas se caracterizam por apresentar tempo de acesso à
memória RAM superior ao tempo levado para acessar um CPU
– Unidade Central de Processamento, por exemplo. Além
disso, considerando a memória cache, seu tempo de memória
é inferior ao tempo de acesso a um disco magnético, mas é
superior ao tempo de acesso à memória RAM. Vale destacar
que quando a memória ROM é desligada, seus dados não são
apagados.
Exercício 2:
Sistemas operacionais de tempo real são utilizados em controle de processos
automatizados, em que o tempo de resposta a determinados eventos é um fator
crítico. Com relação a esse assunto, julgue os itens seguintes.
I Sistemas de tempo real estritos (hard real-time) não utilizam dispositivos de
memória secundária (como discos), pois estes não oferecem garantia de
término das operações dentro de uma quantidade máxima de tempo.
II Um sistema operacional de propósito geral pode ser modificado para ser de
tempo real atribuindo-se prioridades fixas para cada um dos processos.
III O escalonamento mais utilizado por sistemas operacionais de tempo real é o
shortest-job-first (tarefa mais curta primeiro).
Assinale a opção correta.
A)
Apenas um item está certo.
B)
Apenas os itens I e II estão certos.
C)
Apenas os itens I e III estão certos.
D)
Apenas os itens II e III estão certos.
E)
Todos os itens estão certos.
O aluno respondeu e acertou. Alternativa(A)
Comentários:
A) O sistema de tempo real pode ser definido como um
software que é responsável pelo gerenciamento dos recursos
de um sistema computacional, com o intuito de permitir que
todos os eventos sejam atendidos dentro de suas restrições de
tempo, e gerenciados da forma mais eficiente possível. O
sistema operacional de propósito geral trata-se de um sistema
computacional capaz de resolver uma ampla gama de tarefas
diversas. Possui um custo baixo e bom desempenho. O
escalonamento de processos shortest-job-first se aplica
somente quando todos os processos estão disponíveis
simultaneamente.
Exercício 3:
Petrobras  -Prova 8 - ANALISTA DE
SISTEMAS JÚNIOR Infraestrutura –
2012
 
 
 Questão 32
No ambiente UNIX, existem vários interpretadores de linha de comando conhecidos como
shell. É importante, para cada script, informar em que shell ele deve ser executado. Para isso, o
usuário pode especificar o shell desejado
 
 
 
 
A)
na primeira linha do script.
B)
na última linha do script.
C)
em qualquer linha do script.
D)
em um arquivo à parte.
E)
na linha de comando, após o nome do arquivo que contém o
script.
O aluno respondeu e acertou. Alternativa(A)
Comentários:
A) Para selecionar qual Shell será utilizado, devemos usar a
combinação de hashtag (#) mais exclamação (!) e caminho do
executável na primeira linha do arquivo script, isso vem a ser
conhecido como Shebang.
 
 
O arquivo em anexo trata da Gerência de Processos, Capítulo 3 do
livro:
 
Referência:
Silberschatz, Abraham. Sistemas Operacionais com Java. 7 ed. Rio
de Janeiro: Elsevier, 2008.
 
 
Exercício 3:
Qual a função do Bloco de Controle de Processos (BCP)?
A)
Repositório para quaisquer informações de um processo,
podem variar de um processo para outro.
B)
Controlar os processos que estão parados.
C)
Controlar e armazenar as informações dos programas inativos
dos usuários.
D)
https://online.unip.br/Arquivo?id=47940.PDF
Repositório para quaisquer informações do Sistema
Operacional.
E)
Repositório para quaisquer informações do Shell.
O aluno respondeu e acertou. Alternativa(A)
Comentários:
A) O bloco de controle de processo é uma estrutura de dados
no núcleo do sistema operacional que serve para armazenar a
informação necessária para tratar um determinado processo.
Exercício 21:
POSCOMP 2004
Questão 39.
Em um sistema operacional, um processo pode, em um dado instante de tempo,
estar em um de três estados: em execução, pronto ou bloqueado. Considere as
afirmativas abaixo sobre as possíveis transições entre estes estados que um
processo pode realizar.
I. Do estado em execução para o estado bloqueado
II. Do estado em execução para o estado pronto
III. Do estado pronto para o estado em execução
IV. Do estado pronto para o estado bloqueado
V. Do estado bloqueado para o estado em execução
VI. Do estado bloqueado para o estado pronto
Quais são as afirma�vas verdadeiras?
 
A)
Somente as afirma�vas I, II e III são verdadeiras.
B)
Somente as afirmativas I, II, III e VI são verdadeiras.
C)
Somente as afirmativas I, III, IV e VI são verdadeiras.
D)
Somente as afirma�vas I, III, IV e V são verdadeiras.
E)
Todas as afirma�vas são verdadeiras.
O aluno respondeu e acertou. Alternativa(B)
Comentários:
B) Durante sua “vida”, tempo que está “rodando”, um processo
pode se encontrar em um dos seguintes estados: Execução,
Pronto e Espera.
 
 
O arquivo em anexo trata dos conceitos de Threads: Capítulo 4 do livro
 
Referência:
Silberschatz, Abraham. Sistemas Operacionais com Java. 7 ed. Rio de Janeiro: Elsevier, 2008.
 
 
 
Fluxos de Execução
 
Nota
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
O estado de um processo é definido pelos recursos que ele está usando e pela posição na qual está sendo
executado. Existem muitos casos, entretanto, em que seriam úteis o acesso e o compartilhamento simultâneo
de recursos. Essa situação é similar ao caso em que a execução de uma chamada ao sistema fork é realizada
com um novo contador de instruções, ou fluxo de execução (thread), com o processamento
compartilhando o mesmo espaço de endereçamento.
 
q Estrutura de Fluxos de Execução
 
o Um fluxo de execução (thread) é uma unidade básica de utilização da CPU e
consiste em um contador de instruções, um conjunto de registradores e um
espaço de pilha. Ele compartilha com fluxos irmãos sua seção de código,
a seção de dados e os recursos do sistema operacional, como arquivos
abertos e sinais, conhecidos coletivamente como uma tarefa.
 
o Um processo tradicional é igual a uma tarefa com um único fluxo de execução.
 
o Uma tarefa não faz coisa alguma sem um fluxo de execução, enquanto um fluxo de
execução deve fazer parte de apenas uma tarefa.
 
o Compartilhamentos extensivos de recursos são beneficiados pela troca da CPU entre
fluxos de execução irmãos e pela criação de novos fluxos de execução, em
comparação com mudanças de contexto necessárias entre processos tradicionais.
 
Fork
 
No UNIX cada processo é identificado por um identificador de processo, um valor inteiro único que o
distingue dos outros processos. Um novo processo é criado pela chamada ao sistema fork. O espaço de
endereçamento do novo processo é uma cópia do espaço de endereçamento do processo original. Esse
mecanismo permite ao processo pai comunicar-se facilmente com seu processo filho, com uma diferença:
o códigoretornado pela chamada fork é zero para o processo novo (FILHO), enquanto o identificador de
processo (diferente de zero) do filho é retornado ao pai.
https://online.unip.br/Arquivo?id=48030.PDF
o Embora uma mudança de contexto entre fluxos de execução ainda exija uma
alteração no conjunto de registradores, não é necessário nenhum trabalho
relacionado ao gerenciamento de memória.
 
o Como qualquer ambiente de processamento paralelo, a existência de vários fluxos de
execução para um processo pode introduzir problemas de controle de concorrência que
necessitam do uso de regiões críticas ou semáforos.
 
o Podemos entender melhor o comportamento de fluxos de execução ao comparar o controle
de vários fluxos com o controle de vários processos.
 
o Quando diversos processos estão envolvidos, cada processo opera
independentemente dos outros, cada um deles tem seu próprio contador de
instruções, registrador apontador de topo da pilha e espaço de endereçamento.
o Esse tipo de organização é útil quando as tarefas realizadas pelos processos não
têm relação umas com as outras.
o Diversos processos podem também desempenhar uma mesma tarefa. Por exemplo,
eles podem fornecer dados para máquinas remotas na implementação de um
sistema de arquivos de uma rede de computadores.
o É mais eficiente ter um processo contendo diversos fluxos de execução que sirvam
ao mesmo propósito. Na implementação com diversos processos, cada processo
executaria o mesmo código, mas teria espaço em memória e recursos de arquivo
próprios.
o Uma implementação com um único processo e vários fluxos de execução usa menos
recursos do que no caso de vários processos redundantes, incluindo memória,
arquivos abertos e alocação da CPU. Por exemplo, à medida que o Solaris evolui,
daemons que implementam mecanismos de comunicação na rede estão sendo
reescritos como fluxos de execução do núcleo, para aumentar o desempenho das
funções de servidores em redes de computadores.
o Os fluxos de execução operam, em muitos aspectos, da mesma maneira que os
processos. Eles podem estar em um dos vários estados: pronto, bloqueado,
em execução ou finalizado.
o Assim como os processos, os fluxos de execução compartilham o uso da CPU
e apenas um fluxo de execução a cada vez está ativo (em execução).
o Um fluxo de execução é processado seqüencialmente e cada um tem sua
própria pilha e contador de instruções.
o Um fluxo de execução pode criar um fluxo filho e pode ser bloqueado, ficando
em espera até o término de uma chamada ao sistema.
o Se um fluxo de execução está bloqueado, um outro fluxo pode ser executado.
o Em contraste com os processos, os fluxos de execução não são independentes
uns dos outros.
o Como todos os fluxos podem usar os mesmos endereços em uma tarefa, um fluxo
pode ler e escrever sobre pilhas de outros fluxos.
o O mecanismo não oferece proteção fluxos de execução. Essa proteção,
entretanto, não deve ser necessária. Os processos podem se originar-se de
usuários diferentes, podendo interferir uns com os outros de maneira não
desejada, ao passo que, no caso de vários fluxos de execução, um único
usuário é responsável por uma dada tarefa.
 
 
Nota
 
 
O mecanismo de fluxos de execução permite que processos seqüenciais sejam executados
paralelamente, apesar de poderem fazer chamadas ao sistema que bloqueiam processos.
 
 
 
 
 
O uso de fluxos de execução está crescendo porque apresentam algumas das características de
processos tradicionais, mas podem ser executados de maneira mais eficiente.
 
 
 
Comunicação Entre Processos
 
Quando tratamos de comunicação entre processos dois mecanismos são possíveis:
 
Comunicação por meio de memória compartilhada
Requer que os processos usem uma área de armazenamento comum e que o código para
implementar as operações de armazenagem e leitura de valores da área de armazenamento seja
escrito explicitamente pelo programador da aplicação.
Sistema de troca de mensagens
Uma outra maneira de se obter a comunicação entre processos é permitida pelo sistema
operacional. Esse mecanismo permite que os processos se comuniquem uns com os outros e
realizem operações de modo sincronizado, através da troca de mensagens.
· Os esquemas de comunicação por meio de memória compartilhada e de sistema de troca de
mensagens não são mutuamente exclusivos e podem ser usados simultaneamente em um único
sistema operacional ou mesmo em um único processo.
 
q Estrutura Básica
o Os sistemas de troca de mensagens têm a função de permitir que os processos se comuniquem
entre si sem a necessidade de usar variáveis compartilhadas.
o Um mecanismo de suporte a esse sistema deve fornecer pelo menos duas operações, para
enviar e receber uma mensagem.
o Se dois processos P e Q querem se comunicar, eles devem enviar mensagens para receber um
do outro; deve existir um canal de comunicação entre eles.
o Nesse capítulo não vamos nos preocupar com métodos para implementação física desse canal
de comunicação (como memória compartilhada, barramento de hardware ou rede de
comunicação).
o Para que dois processos se comuniquem, eles devem ter uma maneira de se referir um ao
outro. Eles podem usar tanto comunicação direta quanto comunicação indireta:
§ Comunicação Direta – Cada processo que queira se comunicar com outro deve usar
explicitamente o nome do processo receptor ou remetente da mensagem.
§ Comunicação Indireta – As mensagens são enviadas e recebidas de caixas postais.
Uma caixa postal pode ser vista abstratamente como um lugar no qual processos
podem colocar mensagens e do qual mensagens podem ser retiradas.
· Cada caixa postal possui uma identificação única. Nesse esquema, um
processo pode se comunicar com outro por intermédio de diversas
caixas postais diferentes.
· Dois processos só podem se comunicar se compartilharem o uso de
alguma caixa postal.
· Um canal tem sua capacidade determinada pelo número máximo de
mensagens que pode estar na fila de mensagens associada ao canal.
Há basicamente três maneiras de implementar essa fila.
o Capacidade zero
o Capacidade limitada
o Capacidade ilimitada
 
 
Resumo
 
Um processo é um programa em execução. Quando um processo é executado, ele muda de
estado. O estado de um processo é definido pelas atividades que estão sendo realizadas por esse
processo. Cada processo pode estar em um dos seguintes estados: novo, pronto, em execução,
em espera ou terminado. Cada processo é descrito no sistema operacional por um bloco de
controle de processos.
 
Quando um processo não está sendo executado, ele é colocado em alguma fila de espera. Existem duas
grandes classes de filas em um sistema operacional: fila de requisição de E/S e fila de processos prontos. A
segunda contém todos os processos que estão esperando pela CPU. Cada processo é representado por um
BCP, e os BCPs podem ser ligados para formar uma fila de processos prontos. O escalonador de processos
faz uma seleção de processos que podem passar a competir pela CPU. Normalmente, essa seleção é bastante
influenciada por considerações relativas à alocação de recursos, especialmente o gerenciamento de memória.
A alocação de CPU consiste em selecionar um processo da fila de processos prontos.
 
Existem diversas razões para permitir a execução concorrente de processos em um sistema: compartilhamento
de informações, aumento na velocidade de processamento, modularidade e conveniência. Para suporte à
execução concorrente, é preciso um mecanismo para criação e finalização de processos.
 
A execução de dois ou mais processos pode ser feita de modo independente ou cooperativo. Dois processos
cooperativos devem ter meios de comunicarem um com o outro. Existem basicamente dois esquemas de
comunicação complementares: memória compartilhada e troca de mensagens. O método de memória
compartilhada requer que processos em comunicação compartilhem o uso de variáveis. Em um sistema de
memória compartilhada,a responsabilidade de estabelecer uma comunicação é dos programadores de uma
aplicação; o sistema operacional precisa fornecer apenas a memória compartilhada. No método de troca de
mensagens, a responsabilidade de estabelecer uma comunicação é do próprio sistema operacional. Esses
dois esquemas não são mutuamente exclusivos e podem ser usados ao mesmo tempo em um único sistema
operacional.
 
Os processos cooperativos que compartilham diretamente um mesmo espaço de endereços lógicos podem ser
vistos como fluxos de execução. Um fluxo de execução é uma unidade básica de utilização da CPU e
compartilha com fluxos irmãos a seção de código, a seção de dados e os recursos do sistema operacional, que
são coletivamente conhecidos como uma tarefa. Uma tarefa não faz nada se não tiver algum fluxo de
execução a ela associado, e um fluxo de execução deve estar associado a apenas uma tarefa. O
compartilhamento extensivo de recursos entre fluxos de execução irmãos torna mais eficiente a mudança de
contexto entre eles, assim como a criação de novos fluxos, em comparação com as trocas de contexto entre
processos tradicionais.
 
 
 
Exercício 1:
Enade 2008 - questão 19
Uma alternativa para o aumento de desempenho de sistemas computacionais é o uso de processadores com
múltiplos núcleos, chamados 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 seqüê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, e a segunda é uma justificativa correta da primeira.
B)
As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira.
C)
A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
D)
A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
E)
Tanto a primeira quanto a segunda asserções são proposições falsas.
O aluno respondeu e acertou. Alternativa(A)
Comentários:
A) A resposta correta é a letra A, pois as duas asserções são proposições verdadeiras, sendo que
a segunda é uma justificativa correta da primeira. Tanto as definições sobre arquiteturas
multicore quanto sobre threads na primeira asserção estão corretas. A afirmação principal, a qual
diz que aumento de desempenho de sistemas computacionais pode ser obtido com o uso de
processadores com múltiplos núcleos, também está correta, e ainda se tomou o cuidado de
destacar que esta é apenas uma das alternativas possíveis para que este ganho de desempenho
ocorra. A segunda asserção pode ser entendida como uma justificativa correta da primeira, no
sentido que descreve mais detalhadamente uma das formas como as aplicações podem ser
preparadas para que este ganho de desempenho seja possível. Também está correta a explicação
de como essas aplicações com várias threads são executadas pelo sistema operacional para que
este aumento de desempenho possa efetivamente ser obtido. Aqui também se tomou o cuidado
de se fazer uma ressalva indicando que, mesmo com todas as condições atendidas, o tempo de
execução das aplicações pode não ser reduzido (por exemplo, devido a questões de E/S).

Continue navegando