Buscar

Avaliação de Sistemas Operacionais

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 461 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 461 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 461 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

Fechar 
 
Avaliação: CCT0166_AV_ » SISTEMAS OPERACIONAIS 
Tipo de Avaliação: AV 
Aluno: 
Professor: 
MAURO CESAR CANTARINO GIL 
MARCELO RIBEIRO DE OLIVEIRA 
Turma: 9001/AA 
Nota da Prova: 7,3 Nota de Partic.: 2 Data: 22/11/2014 14:10:08 
 
 
 1a Questão (Ref.: 201201871225) Pontos: 1,0 / 1,0 
Um computador com endereços de 32 bits usa uma tabela de páginas de dois níveis. Os endereços virtuais são 
divididos em um campo de 11 bits para o primeiro nível da tabela, outro campo de 11 bits para o segundo nível 
e um último campo para o desloamento. Quantas páginas podem existir neste sistema? 
 
 
232 
 
212 
 222 
 
211 
 
210 
 
 
 
 2a Questão (Ref.: 201201872462) Pontos: 0,5 / 0,5 
Preciso de canetas e apagador para a aula. Peguei as canetas, mas parei para conversar um pouco. Ao tentar 
pegar o apagador fiquei sabendo que outro professor pegou o apagador para um reunião não programada e 
aguardava a caneta que não estava mais sobre a mesa para começar a reunião. 
Fiquei esperando que o apagador fosse devolvido e, como isso não aonteceu, resolvi guardar as canetas para a 
segunda aula e continuar aguardando o apagador. 
Fiquei sabendo que o outro professor também não começou a reunião pois ficou aguardando as canetas e 
também resolveu aguardar. 
Nesta situação podemos identificar a ocorrência de: 
 
 
Um deadlock que poderá ser solucionado se um dos professores tirar o recurso das mãos do outro. 
 Um deadlock em função da exclusão mútua no acesso aos dois recursos 
 
Um deadlock que poderá ser solucionado quando o professor desistir da aula. 
 Uma condição de corrida 
 
Um evento que será solucionado assim que terminar a aula 
 
 
 
 3a Questão (Ref.: 201201871063) Pontos: 0,5 / 0,5 
Para melhor análise do desempenho dos processos com os diferentes tipos de escalonamento existentes, os 
processos são classificados em dois tipos: CPU-bound e I/O-bound. Com esse conceito definido podemos 
afirmar que: 
 
Exercício: CCT0224_EX_A2_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 Os processos I/O-bound levam vantagem em escalonamentos feitos com o mecanismo de preempção 
por tempo, enquanto os processos CPU-bound se beneficiam através de mecanismos de preempção 
por prioridade 
 Os processos I/O-bound podem levar vantagem em qualquer escalonamento baseado composto com 
critérios de prioridade 
 Os processos CPU-bound levam vantagem em escalonamentos feitos com o mecanismo de 
preempção por tempo, enquanto os processos I/O-bound se beneficiam através de mecanismos de 
prioridade dinâmica. 
 Não faz diferença o tipo de escalonamento, pois sempre os processos CPU-bound levam vantagem 
sobre os processos I/O-bound 
 Independente do tipo de escalonamento, os processos I/O-bound levam vantagem sobre os 
processosCPU-bound 
 
 
 
 4a Questão (Ref.: 201201872453) Pontos: 0,5 / 0,5 
Considere uma aplicação baseada em threads em um sistema operacional com suporte a threads de kernel. Se 
uma das threads desta aplicação for bloqueada para aguardar um acesso ao disco podemos afirmar que as 
demais threads deste processo: 
 
 
Não serão bloqueadas mas ficaram aguardando o desbloqueio da thread que solicitou o acesso ao disco 
 
Serão interrompidas provocando um erro no processo. 
 
Serão bloqueadas também para impedir a ocorrência de erros 
 Poderão continuar executando se não dependerem da thread que foi bloqueada 
 
Terão a prioridade reduzida para aguardar o desbloqueio da thread que solicitou o acesso ao disco 
 
 
 
 5a Questão (Ref.: 201201866296) Pontos: 0,5 / 0,5 
Deadlock pode ser definido como uma situação em que um processo aguarda por um recurso que nunca estará 
disponível ou um evento que nunca ocorrerá. Para que ocorra a situação de deadlock, algumas condições são 
necessárias simultaneamente. Assinale alternativa que contém todas essas condições: 
 
 
Espera por recurso e não-preempção. 
 
Exclusão mútua e espera por recurso. 
 Exclusão mútua, espera por recurso e não-preempção. 
 
Não-preempção. 
 
Exclusão mútua e não-preempção. 
 
 
 
 6a Questão (Ref.: 201201871202) Pontos: 0,5 / 0,5 
Considerando que um processo em um determinado sistema operacional pode estar no estado executando, 
pronto ou bloqueado, marque a sentença correta. 
 
 
O processo passa do estado de execução para o estado de pronto se o próprio processo solicitar acesso a 
um dispositivo de hardware 
Exercício: CCT0224_EX_A3_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 O processo passa do estado de execução para o estado de pronto se for interrompido pelo temporizador 
(relógio) 
 
O processo passa do estado de execução para o estado de pronto se for interrompido pelo sistema 
operacional. 
 
O processo passa do estado de pronto para o estado de bloqueado se for solicitado um acesso ao disco. 
 
O processo passa do estado de bloqueado para o estado de executando se for solicitado pelo próprio 
processo. 
 
 
 
 7a Questão (Ref.: 201201917627) Pontos: 0,8 / 1,5 
Uma das partes que compõe um processo é o contexto de hardware e que está relacionado com a troca de 
contexto (mudança de contexto) de um processo. Explique o que é o contexto de hardware de um processo e 
como é a implementação da troca de contexto. 
 
 
Resposta: A implementação da troca de contexto depende de um escalonador para ser feito, podemos usar o 
nome "dispatcher" para este processo. O contexto de hardware de um processo trata-se das informações que 
ficarão guardadas no próprio hardware caso ocorra uma interrupção de processo. 
 
 
Gabarito: O contexto de harware armazena o conteúdo dos registradores gerais da UCP, além dos registradores 
de uso específico. A mudança de contexto consiste em salvar o conteúdo dos registradores do processo que está 
deixando a UCP e carregá-los com os valores referentes aos do novo processo que será executado. Ou 
seja´substituir 0 contexto de hardware de um processo por outro. 
 
 
 
 8a Questão (Ref.: 201201872356) Pontos: 0,5 / 0,5 
Um sistema operacional multitarefa tem como característica fundamental: 
 
 
Ser também multiusuário 
 
A execução simultânea de processos 
 A execução concorrente de processos 
 
Uso simultâneo de mais de uma unidade de disco. 
 
Uso de interface gráfica 
 
 
 
 9a Questão (Ref.: 201201866188) Pontos: 1,5 / 1,5 
Suponha um posto de abastecimento que venda apenas gasolina. Este posto tem 5 (cinco) 
caixas para que os clientes façam o pagamento. Cada caixa executa uma instância de um 
programa que atualiza o estoque (em litros) de gasolina. O arquivo que contém o estoque fica 
em um servidor, sendo compartilhado entre os cinco caixas. Sempre que um cliente faz o 
pagamento, o sistema do caixa faz, basicamente, três operações: 
1. Lê o arquivo de estoque para saber a quantidade de litros que há em estoque. 
2. Subtrai do estoque a quantidade de litros comprada pelo cliente. 
Exercício: CCT0224_EX_A4_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
3. Grava o arquivo de estoque com a quantidade de litros calculada no passo "2". 
Considerando a situação exposta, descreva que problemas podem decorrer do 
compartilhamento do recurso "arquivo de estoque" pelos cinco processos executados de forma 
concorrente. 
 
 
Resposta: Teremos um problema referente a inconsistência de dados. Isso ocorrerá porque enquanto,por 
exemplo, o caixa 1 estiver executando as funções descritas em "1" e em "2" poderá haver um caixa 
completando o que está em "3", ou seja, é evidente que estarão trabalhando com informações desatualizadas. 
 
 
Gabarito: O arquivo de estoque pode ser gravado de forma inconsistente. Se um caixa já tiver 
executado o passo 1 ou 2 e ainda não tiver executado o passo 3 (ou seja, a gravação do 
arquivo) e outro caixa executar o passo 1, esse segundo caixa irá fazer uma leitura do arquivo 
de estoque desatualizado, desconsiderando a operação realizada pelo primeiro caixa. Dessa 
forma, quando o segundo caixa fizer a gravação, a operação realizada pelo primeiro caixa terá 
sido ignorada. 
 
 
 
 10a Questão (Ref.: 201201871218) Pontos: 1,0 / 1,0 
Em um sistema monoprocessado, um escalonador pode interromper o processo em execução? Marque a 
resposta correta com a justificatia correta. 
 
 
Não, nenhum processo pode ser interrompido quando está de posse do processador. 
 
Sim, o sistema operacional emite um aviso para o escalonador executar a interrupção. 
 
Sim, o escalonador deve interromper o processo no final da fatia de tempo destinada ao processo que 
está em execução. 
 
Depende do sistema operacional. 
 Não, o escalonador é um processo e não pode executar nenhuma operação enquanto não estiver de 
posse do processador. 
 
 SISTEMAS OPERACIONAIS 
 
Simulado: CCT0166_SM_201207057851 V.1 VOLTAR 
Aluno(a): DIEGO LAMEIRA TAVARES Matrícula: 201207057851 
Desempenho: 4,0 de 8,0 Data: 27/09/2013 22:05:49 (Finalizada) 
 
 
 1a Questão (Ref.: 200729921256) Pontos: 1,0 / 1,0 
Suponha que um usuário acionou um programa que, ao ser carregado, solicitou a digitação de uma senha. Quando o 
programa foi acionado, o processo passou pelos estados "pronto" e "execução". Em seguida o programa ficou no estado 
"espera", pois dependia de uma operação de E/S (leitura do teclado) para prosseguir. Quando o usuário informar a 
senha o processo passará para qual estado? 
 
 
CRIADO 
 PRONTO 
 
EXECUÇÃO 
Exercício: CCT0224_EX_A5_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 
TERMINADO 
 
ESPERA 
 
 
 
 2a Questão (Ref.: 200729921246) Pontos: 0,0 / 1,0 
Em relação ao uso de threds em modo kernel, analise as assertivas a seguir: 
 
I - Threads em modo kernel podem ser utilizados em sistemas operacionais monothread 
II - Threads em modo usuário são criadas e destruidas pelo sistema operacional. 
III - Threads em modo kernel não bloqueiam o processo quando entram em estado de espera 
 
Marque a alternativa que contém as assertivas VERDADEIRAS: 
 
 
 Somente I 
 Somente III 
 
Somente II 
 Somente I e III 
 
Todas são verdadeiras 
 
 
 
 3a Questão (Ref.: 200729920388) Pontos: 1,0 / 1,0 
Em relação ao conceito de processos, marque a assertiva CORRETA: 
 
 
Quando há duas instâncias de um mesmo programa em execução, pode-se dizer que há um único processo 
responsável pelas duas instâncias. 
 
Quando há duas instâncias de um mesmo programa em execução, pode-se dizer que há dois processos iguais. 
 
Sistemas multitarefa não suportam mais de uma instância do mesmo programa em execução. 
 Quando há duas instâncias de um mesmo programa em execução, pode-se dizer que há dois processos diferentes 
(um para cada instância). 
 
Apenas sistemas operacionais monotarefa suportam mais de uma instância de um programa em execução. 
 
 
 
 4a Questão (Ref.: 200729920326) Pontos: 0,0 / 1,0 
Um processo divide-se, basicamente, em três partes: contexto de hardware, contexto de software e espaço de 
endereçamento. Assinale a alternativa que representa exemplos de componentes do contexto de hardware: 
 
 
Prioridade de execução. 
 
PID e UID. 
 Endereços de memória principal alocados. 
 Registrador PC e registrador status. 
 
Owner. 
 
 
 
Exercício: CCT0224_EX_A6_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 5a Questão (Ref.: 200729920399) Pontos: 1,0 / 1,0 
Suponha que um usuário esteja utilizando um editor de texto em um terminal Windows. Em um dado momento ele nota 
que o computador ficou lento. O usuário confirma que aparentemente não há nenhum programa sendo executado além 
do Windows e do Word. Ao conferir no gerenciador de tarefas, ele observa que existe um novo processo chamado 
"backup". Entretanto, não há nenhuma interface para lidar com esse processo. Neste caso, podemos dizer que o 
processo "backup" é um processo do tipo: 
 
 background. 
 
I/O-bound. 
 
CPU-bound. 
 
foreground. 
 
monotarefa. 
 
 
 
 6a Questão (Ref.: 200729919915) Pontos: 0,0 / 1,0 
Threads são definidos como fluxos de execução de um mesmo processo. Sobre as thraeds, considere as afirmativas a 
seguir: 
I- Dentro de um mesmo processo, threads compartilham o mesmo contexto de hardware e espaço de endereçamento 
com os demais threads. 
II - A grande diferença entre aplicações monothreads e multithreads está no uso do espaço de endereçamento. 
III- A grande vantagem no uso de threads é a possibilidade de minimizar a alocação de recursos do sistema, além de 
diminuir o overhead na criação, troca e eliminação de processos. 
IV- Em um ambiente multithread, ou seja, com múltiplos threads, não existe a idéia de programas associados a 
processos, mas, sim, a threads. 
V - De forma simplificada, um thread pode ser definido como uma sub-rotina de um programa que pode ser executada 
de forma assíncrona, ou seja, executada concorrentemente ao programa chamador. 
Está(ão) correta(s) a(s) afirmativa(s) 
 
 I e III, apenas 
 
II, III e IV, apenas 
 
I e II, apenas 
 II, III, IV e V apenas 
 
II e III, apenas 
 
 
 
 7a Questão (Ref.: 200729921227) Pontos: 1,0 / 1,0 
Marque a alternativa INCORRETA em relação ao conceito de sistemas operacionais: 
 
 
Um sistema operacional é responsável por gerenciar os recursos computacionais. 
 É impossível fazer uso de um computador que não tenha um sistema operacional instalado. 
 
São componentes básicos de um sistema operacional: interface com o usuário; gerência do processador; gerência 
de memória; gerência de dispositivos; sistema de arquivos. 
 
Atua como uma interface entre o usuário e o computador. 
 
Um sistema operacional deve facilitar acesso aos recursos do sistema, assim como compartilhá-los de forma 
organizada e protegida. 
 
 
 
Exercício: CCT0224_EX_A7_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 8a Questão (Ref.: 200729919996) Pontos: 0,0 / 1,0 
Um processo, segundo Machado, é formada por três partes, conhecidas como contexto de hardware, contexto de 
software e espaço de endereçamento.A figura ilustra, de maneira abstrata, os componentes da estrutura de um 
processo, que juntos, mantêm todas as informações necessárias a execução de um programa. Sobre os componentes é 
correto afirmar que: 
 
 
 
o contexto de hardware de um processo é composto por três grupos de informações sobre o 
processo:identificação, quotas e privilégios. 
 o contexto de hardware mantém informações nos registradores do processador, enquanto um processo está em 
execução, podendo salvá-las caso o processo seja interrompido. 
 
o espaço de endereçamento armazena o conteúdo dos registradores gerais da UCP, além dos registradores de 
uso específico, como program counter(PC), stack pointer (SP) e registrador de status(PSW). 
 
o contexto de softwarearmazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso 
específico, como program counter(PC), stack pointer (SP) e registrador de status(PSW). 
 o contexto de hardware mantém informações nos registradores do processador, enquanto um processo está em 
execução, mas não pode salvá-las caso o processo seja interrompido. 
 
 
 
 9a Questão (Ref.: 200729920273) 
 
Suponha que um programador precisou desenvolver um programa para solucionar a seguinte 
equação: 
X = (100 x 3) + (2 x (A + 30)) + (20 - 2) + (3 x B) 
Para otimizar o processamento, este programador optou por dividir a equação em partes menores e 
distribuí-las em diferentes threads. 
O resultado foi: 
PROGRAM EQUACAO; 
 VAR X, A, B, C, D: integer; 
Exercício: CCT0224_EX_A8_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
BEGIN 
 A := (100*3); 
 B := 2 * (A + 30); 
 C := (20-2); 
 D := (3 * B); 
 X := A + B + C + D; 
END. 
O algoritmo acima contém um erro, que ilustra a complexidade do uso de threads. Descreva o erro do 
algoritmo acima e apresente uma solução para este problema. 
 
 
Sua Resposta: 
 
 
Compare com a sua resposta: Haverá um problema de sincronização entre os threads. Uma das soluções para este 
problema seria executar criar threads apenas para as instruções que atribuem valores as variáveis "A" e "C". A atribuição 
de valores às variáveis "B", "C" e "X" devem ficar fora dos trheads. 
 
 
 
 10a Questão (Ref.: 200729921313) 
 
Suponha um posto de abastecimento que venda apenas gasolina. Este posto tem 5 (cinco) caixas para 
que os clientes façam o pagamento. Cada caixa executa uma instância de um programa que atualiza o 
estoque (em litros) de gasolina. O arquivo que contém o estoque fica em um servidor, sendo 
compartilhado entre os cinco caixas. Sempre que um cliente faz o pagamento, o sistema do caixa faz, 
basicamente, três operações: 
1. Lê o arquivo de estoque para saber a quantidade de litros que há em estoque. 
2. Subtrai do estoque a quantidade de litros comprada pelo cliente. 
3. Grava o arquivo de estoque com a quantidade de litros calculada no passo "2". 
Considerando a situação exposta, descreva que problemas podem decorrer do compartilhamento do 
recurso "arquivo de estoque" pelos cinco processos executados de forma concorrente. 
 
 
Sua Resposta: 
 
 
Compare com a sua resposta: O arquivo de estoque pode ser gravado de forma inconsistente. Se um caixa 
já tiver executado o passo 1 ou 2 e ainda não tiver executado o passo 3 (ou seja, a gravação do 
arquivo) e outro caixa executar o passo 1, esse segundo caixa irá fazer uma leitura do arquivo de 
estoque desatualizado, desconsiderando a operação realizada pelo primeiro caixa. Dessa forma, 
quando o segundo caixa fizer a gravação, a operação realizada pelo primeiro caixa terá sido ignorada. 
 
Lista de exercícios Sistemas Operacionais Resolvida 
 
 
Exercício: CCT0224_EX_A9_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
1. Os serviços e funções oferecidas por um sistema operacional podem ser divididas em duas 
categorias. Descreva brevemente as duas categorias e discuta como elas se diferem. 
• Conveniência 
Execução de programas 
Operações de I/O 
Sistema de arquivos 
Detecção de erros 
• Eficiência 
Alocação de recursos 
Proteção 
Contabilizações 
 
 
2. Liste 5 (cinco) serviços, oferecidos por um sistema operacional, que são projetados para 
tornar o sistema de computação mais conveniente para os usuários. 
1. Gerenciamento de processos, criação, fechamento, escalonamento, prioridades e comunicação entre 
eles. 
2. Gerenciamento da memória principal: Alocação, desalocação, proteção e abstração da memória 
virutal. 
3. Gerenciamento dos sistemas de I/O. 
4. Conexão em rede: Conexão com os dispositivos e implementação dos protocolos de rede. 
5. Sistema de proteção (autorização a usuários). 
6. Implementação de sistema de arquivos. 
3. O que são System Calls, cite 4 exemplos. 
Constituem uma interface entre o processo e o sistema operacional. 
Exemplos: 
• Inicia ou finaliza processo 
• Altera atributos dos processos 
• Espera sinal 
• Abre ou fecha arquivo 
• Lê relógio do sistema 
• Envia ou recebe mensagens 
Exercício: CCT0224_EX_A10_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
4. Os sistemas operacionais podem ser construídos de diferentes maneiras. Descreva as 
principais arquiteturas existentes. 
 
Do ponto de vista de projeto (arquitetura), segundo Tanenbaum (1999): 
* Núcleo monolítico ou monobloco: o núcleo consiste em um único processo executando numa memória 
protegida executando as principais funções. 
* Micronúcleo ou modelo cliente-servidor: o núcleo consiste de funções mínimas (comunicação e 
gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, 
são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. 
 
 
5. Descreva as ações tomadas pelo kernel para fazer a troca de contexto entre processos. 
A troca de contexto exige que o estado do processo antigo (a sair do processamento) seja salvo e que o 
estado do processo novo (a entrar no processamento) seja carregado. O contexto é representado no PCB 
que inclui o valor dos registradores. 
 
 
6. Explique o que são os anéis de execucação. Qual a diferença entre código executando no 
nível 0 e em outros níveis. 
São extenções dos processadores que possibilitam separar os códigos sendo executados na CPU por 
camadas. Nos CHIPs Intel Vão de RING0 (Kernel), passado por RING1 (Drivers), RING2 (Drivers) até 
RING3 (Aplicativos). O Kernel do Linux e do Windows XP usam somente o RING0 e RING3. O código 
executado em RING0 é o que tem mais privilégios (ou seja mais acesso ao hardware). 
 
 
7. O que são processos, e quais os estados que podem assumir? 
São programas em execução na memória. 
* Novo 
* Em execução 
* Em espera 
* Pronto 
* Terminado 
 
 
Exercício: CCT0224_EX_A11_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
8. O que são threads? Em que diferem de processos convecionais? 
Um thread é uma unidade básica de execução na CPU. Um único processo pode ter diferentes threads. 
Cada thread compreende um ID, um contador de programa, um conjunto de registradores e uma pilha. 
 
 
8.1. As principais seções de um processo são Pilha, Heap, Dados e Código. Quais destas 
seções podem e/ou devem ser compartilhadas entre threads? 
Os threads do mesmo processo compartilham com outros sua seção de código, sua seção de dados, 
arquivos abertos e sinais. 
 
8.2. Qual a diferença de threads em nível de usuário e em nível de SO 
Thread em nível de SO é implementada em uma biblioteca pelo Sistema Operacional por exemplo pthreads 
no Linux. Utilizando-a as threads em nível de SO são como processos independentes para o escalonador, 
também se o sistema tiver mais de 1 processador elas podem ser executadas 1 em cada processador. 
As threads em nível de usuário é uma implementação da aplicação em que voluntariamente um thread se 
retira do processamento e cede espaço a outra thread. Para o sistema operacional é apenas 1 processo. 
 
 
9. Mostre um exemplo de uso do fork(). Explique quais são os valores retornados pela função. 
int i; 
i=fork(); 
if(i==0) 
{ 
printf("ProcessoFilho\n"); 
} 
else if(i>0) 
{ 
printf("Processo Pai, que criou um filho numero: %i\n", i); 
} 
 
 
Exercício: CCT0224_EX_A12_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
10. Na criação de processos utilizando fork() um novo processo é criado com a imagem do 
processo pai. Como o kernel Linux evita a necessidade de realizar esta cópia no momento da 
chamada do fork? 
Sim, uma otimização do Kernel do Linux implementa Copy-on-write. Consistem em compartilhar os dados 
somente referenciando a mesma área nos forks criados pelo mesmo processo. Ao modificar alguma das 
páginas uma cópia da página é feita. 
 
 
11. O que significa escalonamento preemptivo? 
Envolve o uso de interrupções para suspender o processo em execução no momento e invoca um 
escalonador para determinar qual o próximo processo que deve ser executado. Sendo assim todo processo 
terá um tempo de execução na CPU em algum momento. 
 
 
12. O que significa dizer que o Kernel também é preemptivo? 
Significa dizer que operações de kernel (serviços ou funções) podem ser interrompidas. 
 
 
13. O que é starvation? Mostre um algoritmo que poderia levar a essa condição. 
Ocorre quando um processo depende de um recurso e seu acesso é negado perpétuamente. Sem este recurso 
o processo não pode terminar sua tarefa. 
 
 
14. O que é um deadlock? Mostre um um algoritmo que pode entrar em deadlock. 
Ocorre quando, um processo (ou mais) está em posse de um recurso não compartilhado e esperando por 
outro recurso em posse de outro processo que também aguarda um recurso. Essa espera pode ser do 
processo anterior ou outro processo de forma que feche um ciclo. E conseqüentemente estes processos não 
sofrem preempção. 
 
 
 
Exercício: CCT0224_EX_A13_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
15. Quais dos seguintes algoritmos de escalonamento podem levar a "starvation" e porque? 
a) First-come, Fist-served 
Pode ocorrer inanição (starvation), se o primeiro processo (que chega primeiro) da fila for longo. Então o 
tempo de espera médio de todos os outros processos será muito grande. 
 
 
b) Shortest job first 
É o algoritmo ótimo (do ponto de vista computacional) no tempo de espera. O maior tempo de espera será 
o processo com maior pico de CPU. 
 
 
c) Round Robin 
Depende exclusivamente do tamanho do quantum da CPU. Se for muito grande será equivalente a FCFS, 
mas se for pequeno será a sensação de dividir a CPU pelo numero de processos. 
 
 
d) Priority 
Um processo que esteja pronto para executar, mas não tennha a posse da CPU pode ser considerado 
bloqueado. Um algoritmo por prioridades pode deixar alguns processos de baixa prioridade esperando 
indefinidamente pela CPU. 
 
 
16. Que técnica é usada para evitar que um processo em um algoritmo de escalonamento por 
Multilevel Feedback-Queue nunca execute? 
Define-se que os processos que estão esperando por muito tempo na fila de menor prioridade são 
promovidos com maior prioridade. 
 
 
17. O que deve ser considerando ao escrever um algoritmos de escalonamento em um sistema 
SMP? 
Exercício: CCT0224_EX_A14_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Primeiramente deve ser considerado que os processadores são idênticos (ou homogêneos), esta diferença 
mudaria toda a abordagem. Depois pode-se criar uma fila de processos para cada processador, ou se for 
uma fila deve se evitar que 2 processadores peguem o mesmo processo ou que algum processo se perca da 
fila. 
 
 
18. Explique como funcionava o escalonador de prioridades no Kernel Linux (de 2.6 até 
2.6.23) 
1. Escalonador por prioridade dinâmica. 
2. Heurística para dizer se o processo é IO bound, CPU bound ou interativo. 
3. Quantum varia durante o tempo e processos. 
4. É O(1) 
5. Todo processo tem prio estática entre 100 e 139 e dinâmica entre 100 e 139 (menor valor é maior 
prioridade) 
6. Quantum base é => Prio_estat > 120 ? (140-Prio_estat)*20 : (140-Prio_estat) * 5 
7. Prioridade dinâmica => max(100, min(prio_estat – bonus + 5, 139)) 
19. Explique o algoritmo de escalonamento Completely Fair Scheduler 
que atualmente é utilizando no kernel Linux. 
1. Não tem 1 fila, 
2. Dividir n CPU's entre os processos igualmente 
3. linha do tempo de execução 
4. Redblack tree O(log(n)) 
5. Relógio preciso de nano segundos 
6. Relógio para incrementar este tempo baseado no wallclock / núm de processos 
esperando para executar 
7. Quando executa decrementa waiting time 
8. Prioridade → padrão do decaimento do waiting time 
20. Mostre como funciona a solução de alternância estrita. Explique qual é sua limitação na 
prática. 
Esta é uma solução a qual obriga que a região crítica seja dada a um dos processos por vez, 
em uma estrita alternância. 
O problema com a solução de alternância estrita é que requer que os dois processos se alternem 
precisamente, o que significa que o número de acessos de cada processo deve ser exatamente igual ao do 
outro. Além disso pode acontecer de um dos processos não poder prosseguir normalmente. Pois após 
entregar a seção crítica para o outro processo não pode mais pedi-la novamente. 
 
 
Exercício: CCT0224_EX_A15_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
21. O que é o problema da Região Crítica? Mostre um exemplo onde não tratá-lo poderia 
levar a um erro. 
Região crítica é um segmento de código que enquanto está em execução não é permitido a nenhum outro 
processo sua execução ao mesmo tempo. Pode ser a operação em tabelas, arquivos e assim por diante. 
 
 
22. Mostre e explique o funcionamento da solução de Peterson. 
O algoritmo de Peterson é um algoritmo de programação concorrente para exclusão mútua, que permite a 
dois ou mais processos ou subprocessos compartilharem um recurso sem conflitos, utilizando apenas 
memória compartilhada para a comunicação (Wikipedia). 
flag[0] = 0; 
flag[1] = 0; 
turn; 
P0: flag[0] = 1; 
turn = 1; 
while (flag[1] == 1 && turn == 1) 
{ 
// busy wait 
} 
// critical section 
... 
// end of critical section 
flag[0] = 0; 
 
 
 
P1: flag[1] = 1; 
turn = 0; 
while (flag[0] == 1 && turn == 0) 
{ 
// busy wait 
} 
// critical section 
... 
// end of critical section 
flag[1] = 0; 
O algoritmo utiliza duas variáveis, flag e turn. O valor de flag 1 indica que o processo quer entrar na região 
crítica. A variável turn guarda o ID do processo com a vez. A entrada na região crítica é garantida para P0 
se P1 não quiser entrar na região crítica ou se P1 deu prioridade para P0 atribuindo o valor de turn para 0. 
 
Este algoritmo satisfaz os 3 problemas de regiões críticas: a exclusão mútua, o progresso e espera limitada. 
Exercício: CCT0224_EX_A16_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 
 
23. O que são semáforos? Mostre um exemplo de uso. 
É uma ferramenta de sincronização generalizável. É uma variável inteira que a parte de sincronização é 
acessada somente por duas operações wait e signal. 
void wait(S){ 
while (s<=0); // loop sem operação 
s--; 
} 
void signal(s){ 
s++; 
} 
Exemplo de uso: 
do{ 
wait(mutex); 
<SEÇÃO CRITICA> 
signal(mutex); 
<SEÇÃO REMANESCENTE> 
}while(1);24. Mostre uma solução usando semáforos para o problema "Bounded-Buffer" 
/* PRODUTOR*/ 
do{ 
wait(empty); 
wait(mutex); 
insere_buffer(elemento); 
signal(mutex); 
signal(full); 
}while(1); 
 
/*CONSUMIDOR*/ 
do{ 
wait(full); 
wait(mutex); 
remove_buffer(elemento); 
signal(mutex); 
signal(empty); 
Exercício: CCT0224_EX_A17_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
}while(1); 
 
 
25. Mostre uma solução usando semáforos para o problema "Readers-Writers" 
 
26. Mostre uma solução usando semáforos para o problema "Dining-Philosophers" 
 
27. Resolva pelo menos 3 problemas de sincronização do Livro "The Little Book of Semaphores". 
 
 
28. O que é copy-on-write e sob quais circunstâncias ela é útil? 
Consistem em compartilhar os dados somente referenciando a mesma área. Ao se modificar alguma das 
páginas uma cópia da página é feita. E somente aquela página que é alterada fica “diferente” do resto. É útil 
pois torna programa implementados com forks mais leves. 
 
 
1. Explique a diferença entre fragmentação interna e externa. 
(wikipédia) 
A fragmentação interna é a perda de espaço dentro de uma área de tamanho fixo. 
Numa memória secundária, ela ocorre quando um arquivo ou fragmento de arquivo 
não ocupa completamente o espaço da unidade de alocação destinado a ele, 
causando desperdício de espaço. Cada unidade de alocação não pode comportar 
fragmentos de arquivos diferentes. 
 
A fragmentação externa ocorre em sistemas de arquivo quando muitos arquivos de 
tamanhos diferentes são criados, modificados em seu tamanho, e/ou eliminados. O 
efeito é pior se um arquivo que é dividido em muitas pequenas partes for eliminado, 
porque isto deixa regiões pequenas de espaço livre. 
 
Quanto maior for o tamanho dos clusters no sistema de arquivos usado e maior for o 
número de arquivos pequenos armazenados, maior é o índice de fragmentação 
interna, que além de perda de espaço, causa perda de desempenho, já que teremos 
áreas vazias entre os arquivos armazenados nos discos magnéticos. 
Exercício: CCT0224_EX_A18_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 
2. Dadas partições de memória de 100KB, 500KB, 200KB, 300KB e 
600KB (em ordem), como cada um dos algoritmo: Fist-fit, best-fit e 
worst-fit, alocariam processos de 212Kb, 417Kb, 112KB e 426KB? 
Qual dos algoritmos faria o uso mais eficiente de memória. 
First Fit acomoda espaço na memória pelo começo da memória disponível até o fim, 
até encontrar o primeiro espaço livre que seja grande o suficiente. Se não retorna 
erro. 
Best Fit tenta determinar o melhor lugar para alocar os dados. A definição de melhor 
varia nas implementações, mas por exemplo pode ser escolhido o espaço que 
deixaria menor resíduo no final do bloco. 
Worst Fit. O algoritmo seleciona o maior espaço possível que a informação pode ser 
armazenada (maior que a informação). É o completamente oposto do best-fit que 
procura o menor espaço possível. 
 
3. Explique os seguintes algoritmos para substituição de páginas 
(page replacement): FIFO, Optimal e LRU. No caso do LRU, você deve 
explicar quais são as políticas de aproximação para o LRU. 
FIFO é uma fila normal onde o primeiro que entra é o primeiro que sai. É simples e 
tem desempenho ruim (pode aumentar o paginamento com aumento de memória o 
que é absurdo) 
 
Optimal: Quando uma página precisa ser trocada, o sistema operacional troca a 
página que o seu próximo uso será num futuro distante. Por exemplo, uma página 
que não será usada nos próximos 6 segundos será trocada por uma página que será 
usada em 0.4 segundos. 
 
Exercício: CCT0224_EX_A19_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
LRU: Quando uma página é usada é marcada como referenciada. Em certo momento 
por interrupção de relógio, atribui-se a página os bits de não referenciados. Então 
divide-se a página em 4 classes, referenciado ou não e modificado ou não. 
4. Como funciona o mapeamento de arquivos em memória, qual a 
vantagem de utilizar esse modo de acesso. 
É o mapeamento de um arquivo como se fosse um array em memória. É eficiênte 
porque utiliza leitura preguiçosa só lendo os dados que realmente precisam ser lidos. 
No Posix pode ser feito por mmap() 
 
5. O que é o modo de alocação de memória "Buddy System". Qual a 
sua desvantagem? 
O modo de alocação Buddy System divide a memória em pedaços com tamanho 
potência de 2. Existe um limite superior (maior bloco que pode ser alocado) e 
inferior (menor bloco que pode ser alocado). Quando é feita uma requisição 
arredonda-se o tamanho requisitado e se o tamanho é maior que a metade do bloco 
inicial então o bloco inteiro é alocado. Senão o bloco é dividido em dois "buddies" e 
assim recursivamente. 
O método de liberar a memória é eficiente e relativamente rápido. Tipicamente é 
implementado por uma árvore binária que representa blocos usados e não usados. 
Contudo ainda existem problemas de fragmentação interna. 
 
6. O que é o mecanismo de alocação chamado SLAB? 
A idéia fundamental por trás do SLAB é baseada na observação de que alguns 
objetos do kernel são frequentemente criados e destruídos e após isso nunca mais 
são necessários. 
Isso implica que cada alocação de memória para estes objetos as vezes custa uma 
busca best-fit. E ainda a desalocação do espaço de memória após a destruição do 
objeto causa fragmentação. 
Exercício: CCT0224_EX_A20_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Na implementação do SLAB existe cache e uma estrutura Slab que pode ser empty, 
partial, full. Como ele aloca somente o espaço necessário a fragmentação interna 
não existe. 
7. O que é o Overcommit de memória? 
Overcommit de memória é uma função do kernel que permite alocar mais memória 
do que realmente é disponível. A idéia por de trás dessa funcionalidade é de que 
alguns aplicativos alocam mais espaço que precisam, mas nunca usam. Isso permite 
que se rode mais aplicativos que cabem na memória, mas ele não podem usar a 
memória, caso isso aconteça estes aplicativos são fechados. 
8. Qual a relação entre o espaço de endereçamento virtual e utilização 
da memória física? 
O endereçamento virtual agrega tando endereços armazenados em memória 
secundária quando endereços resididos na memória ram. 
 
 
9. O que significa dizer que a memória virtual de um processo é 50MB, 
a memória residente 20MB e a memória compartilhada 10MB. 
Significa que 20 mb estão na memória RAM, e 10 mb é compartilhado com outro 
processo por ter gerado (ou sido gerado) por um Fork e estas páginas não sofreram 
escrita ainda. 
10. Quais as vantagens e desvantagens de guardar o nome do 
programa criador junto aos atributos do arquivo? 
Vantagem: Livra o sistema operacional de saber com qual aplicativo deve ser aberto 
o arquivo, facilita também a vida do usuário por ter acesso rápido e simples a leitura 
e edição do arquivo. 
 
Desvantagem: Um terceiro pode alterar o arquivo para apontar para um programa 
mal intencionado. 
11. Na semântica de sistema de arquivos do Unix o que acontece 
quando um arquivo que está aberto é removido? 
Exercício: CCT0224_EX_A21_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Ele não ficarámais acessível aos programas que quiserem o acessar logo após o 
momento de remoção. Porém continuará acessível por aqueles programas que já 
estavam com o arquivo aberto no momento da remoção. 
Para cada arquivo o file system mantem um contador que indica quantos procesos o 
estão usando, quando é removido o arquivo se o contador não for 0 é apagado 
somente o acesso ao mesmo, mas o arquivo é mantido no disco até que todos os 
processos se encerrem. 
12. No NFS (Network File System) o que é o "Silly Rename"? Porque 
surgem os arquivos .nfsXXXXXX ? 
(Segundo NFS FAQ) 
Aplicações em Unix geralmente criam arquivos de rascunho e removem sua ligação. 
Quando fazem isso o arquivo passa a não ser visível no sistema de arquivos para 
quando a aplicação fechar o arquivo este ser removido. Conhecido como "delete on 
last close", é comum em aplicações Unix. 
Pela forma como o NFS foi especificado, não existe maneira de apagar o arquivo do 
sistema, o deixando disponível para aplicações. O que o NFS faz é emular este 
comportamento renomeando o arquivo para algo como ".nfsXXXXX". que esconde o 
arquivo para seu uso. Isso é conhecido como "silly rename." Após o fechamento do 
processo o arquivo é apagado. Ou fica residual em caso de crash da aplicação. 
O NFS é stateless, e não sabe quais arquivos estão sendo utilizados, assim pra 
manter compatibilidade com os programas linux (onde um arquivo aberto pode ser 
excluído sem problemas) ele renomeia o arquivo e deixa ele oculto, quem estava 
com o arquivo aberto continua lendo deste .nfsX 
13. Sobre métodos de alocação de espaço, responder: 
a) Como funciona a alocação de espaço contígua? Que problemas 
apresenta? 
Cada arquivo ocupa um conjunto de blocos contíguos no disco. Somente é 
necessário armazenar a localização inicial (número do bloco) e o tamanho do arquivo 
(quantidade de blocos). Pode ser feito mapeamento de endereço lógico para o físico, 
mas os arquivos não podem crescer. 
Exercício: CCT0224_EX_A22_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
A alocação de espaço contígua requer que cada arquivo ocupe um conjunto de 
blocos contíguos no disco. Os endereços de disco definem um ordenamento linear no 
disco. Com isso, o número de operações de busca no disco, exigidos para acesso a 
arquivos alocados contiguamente, é mínimo, assim como o tempo de busca quando 
uma operação de busca for necessária. 
Como problemas encontrados na alocação contígua temos: 
- a dificuldade de encontrar espaço para um novo arquivo. Sistemas de 
gerenciamento de espaço livre devem ser utilizados para realizar esta operação, mas 
tais sistemas geram fragmentação externa; 
- a dificuldade de determinar a quantidade de espaço necessário para um arquivo. 
Pela falta de conhecimento na hora da criação do arquivo, ou para futura ampliação 
do mesmo. Em geral, o espaço necessário é superestimado. Gerando assim 
fragmentação interna. 
b) Como funciona a alocação de espaço por encadeamento (linked 
allocation). Quais os problemas apresentados por este método? 
Cada arquivo é uma lista encadeada de blocos em disco. Os blocos podem ser 
espalhados no disco. Tem pouca perda de espaço porém não tem acesso direto, tem 
que percorrer a lista. 
O diretório contém um ponteiro para o primeiro e último blocos do arquivo. E cada 
bloco contém um ponteiro para o proximo bloco. Não gera fragmentação externa. 
Como problemas encontrados na alocação por encadeamento temos: 
- O principal problema é que ela so pode ser efetivamente utilizada para arquivos de 
acesso sequencial. 
- O espaço perdido com a alocação dos ponteiros, logo, cada arquivo irá requerer um 
pouco mais de espaço do que necessitaria em outra situação. 
- O problema da confiabilidade, como a integridade do arquivo é mantida por 
intermedio de ponteiros espalhados por todo o disco, se um desses ponteiros for 
corrompido, pode-se ter grandes perdas de dados ou de espaço livre. 
Exercício: CCT0224_EX_A23_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
c) Como funciona a FAT (File-Allocation Table) usado pelo MS-DOS, 
qual a diferença em relação à alocação por encadeamento simples? 
A FAT usa uma tabela de alocação de arquivos, esta tabela fica alocada em uma 
seção do disco no inicio de cada partição. A FAT tem uma entrada para cada bloco do 
disco e é indexada pelo número do bloco. A entrada da tabela, indexada pela 
entrada do arquivo no diretório, contém o número do bloco do próximo bloco no 
aquivo. Assim continua até o bloco que contém o identificador de fim de arquivo. Ao 
contrario da alocação por encadeamento a FAT não utiliza um espaço em cada bloco 
do disco como ponteiro (utiliza os blocos com valor igual a zero na tabela que 
representam blocos livres). 
 
 
e) Em um sistema de arquivos usando uma FAT o que acontece se 
ocorrer a corrupção total da tabela de alocação de arquivos? 
Se a tabela FAT (tabela 1) corromper, existe uma tabela 2 de backup usada pelo 
scandisk. 
f) Como funciona a alocação de espaço indexada? Que problemas da 
alocação usando encadeamento ela tenta resolver? 
A alocação indexada utiliza ponteiros, como a alocação por encadeamento, mas 
agora todos esses ponteiros são armazenados juntos em um bloco de índices. Cada 
arquivo possui seu próprio bloco de índices que é um array de endereços de blocos 
de disco. O diretório contém o endereço do bloco de índices, e a í-esima entrada do 
bloco de índices aponta para o í-esimo bloco do arquivo. Desta maneira é possível 
realizar com facilidade o acesso direto ao arquivo. 
A alocação indexada tenta resolver o problema da falta de eficiência no acesso direto 
a arquivos, que ocorre quando se usa a alocação por encadeamento. 
f) Dentro da alocação indexada quais são os mecanismos usados para 
guardar os índices? 
A alocação indexada causa um desperdício de espaço em disco por conta do 
armazenamento do bloco de índices. Pois um bloco inteiro de índices deve ser 
armazenado para cada arquivo, mesmo que apenas um ou dois ponteiros sejam 
Exercício: CCT0224_EX_A24_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
realmente utilizados. Para reduzir esse desperdício devem ser utilizados blocos de 
tamanho menor para armazenar os índices. Mas blocos menores limitam a indexação 
de grandes arquivos. Para resolver este problema alguns mecanismos são usados 
para guardar os índices. Eles são: 
 - Esquema encadeado: Diversos blocos de índices encadeados, no caso, o ultimo 
endereço do bloco de índices é nulo (caso o bloco represente todo o arquivo) ou é 
um ponteiro para outro bloco de índices (para grandes arquivos). 
 - Índice multinível: Um bloco de índices de primeiro nível aponta para um 
conjunto de blocos de índices de segundo nível, que por sua vez aponta para os 
blocos do arquivo. Esta abordagem poderia ser estendida para um terceiro ou quarto 
níveis dependendo do tamanho máximo de arquivo requerido. 
 - Esquema combinado: Utiliza uma combinação dos dois esquemas anteriores. 
g) O que são i-nodes? Em qual mecanimos de alocação indexada eles 
se enquadram? 
I-node é o primeiro bloco encontrado quando se faz o acesso a um arquivo e consite 
em uma estrutura de dados que relaciona os atributos e os endereços em disco dos 
blocos do arquivo , este bloco de índice utiliza um mecanismo de alocação indexada 
do tipo combinada. Em geral utiliza-se um esquema onde os 12 primeiros ponteiros 
apontam para blocos diretos, ou seja,que contem dados do arquivo; os outros 3 
ponteiros apontam para blocos indiretos. O primeiro ponteiro para um bloco indireto 
é o endereço de um bloco indireto simples (um bloco de índices que não contém 
dados, mas endereços de blocos que contêm dados). Depois existe um ponteiro para 
um bloco indireto duplo (contém o endereço de um bloco que contém os endereços 
de blocos que contêm ponteiros para os blocos de dados reais). O último ponteiro 
conteria o endereço de um bloco indireto triplo. 
14. Considere um sistema com i-nodes com 15 ponteiros. Nestes i-
nodes os 12 primeiros são usados para alocação direta; o 13 ponteiro 
para alocação simples indireta; o 14 para alocação dupla indireta e o 
15 para alocação tripla-indireta. Considere ainda que cada bloco tem 
512Kb. Como ficaria a estrutura de inodes para armazenar um arquivo 
de 129024 bytes (252 blocos)? 
Pra salvar um arquivo de 252 blocos, no caso, seria os primeiros 12 blocos do 
primeiro i-node ocupado, depois mais 15 blocos do i-node nível 1. Depois vem o i-
Exercício: CCT0224_EX_A25_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
node de nível 2, que ficaria os quinze níveis dele apontando cada um para um inode 
distinto, e cada i-node destes teria 15 blocos; Ou seja, mais 225 blocos, e 
totalizando 242 blocos, faltam 10. O i-node de nível 3 apontaria para um de nível 
dois, que usaria apenas um de seus apontadores, pra um de nível 1, que salvaria 10 
blocos nele. 
 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> 1 bloco 
[] -> [] x15-> 12 blocos 
[] -> [] x15-> [] x15 -> 225 blocos 
[] -> [] x1 -> [] x1 -> [] x10 -> 10 blocos 
 
No total você ocuparia 268 i-nodes 
Exercício: CCT0224_EX_A26_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 
15. Qual a diferença de simbolic links e hard links? E como é a 
implentação de cada um? Como é feito o controle de remoção de 
arquivo em cada caso? 
 
Existem dois conceitos de "links" no Unix, usualmente nomeadas de symbolic link e 
hard link. 
Um hard link é exatamente um nome para o arquivo (E um arquivo pode ter vários 
nomes. Aquilo só é apaguado do disco somente quando o último nome é removido.) 
Um symlink é totalmente diferente: é um pequeno arquivo especial que contém o 
nome de caminho. Assim, a ligação fraca pode apontar arquivos em diferentes 
sistemas de arquivos (talvez NFS montadas de diferentes máquinas), e não precisa 
de ponto para o arquivo existente atualmente. Quando acessado (com a chamada de 
sistema open ou stat, uma referência para o symlink é substituída pelo kernal do 
sistema operacional com uma referência para o arquivo nomeado no nome de 
caminho. (De qualquer forma, com rm ou unlink a ligação é removida, não o arquivo 
que ela aponta). 
 
16. Considere um sistema onde o espaço livre é gerênciado por uma 
lista de espaço livre. Suponha que o ponteiro para a lista de espaços-
livres foi perdido. Esta lista pode ser reconstruída? Explique sua 
resposta. 
Uma possível solução seria veirificar todos os blocos utilizados pelos 
diretórios/arquivos/sistema e considerar os outros como livres. 
Deve-se pensar no fato de que ao um arquivo ser deletado, não necessariamente os 
dados que ele tem são deletados nos blocos (geralmente que eu saiba não, é apenas 
deletado a ligação para ele). Então a solução de percorrer por todos os blocos e 
pegar os livres não funciona. 
Exercício: CCT0224_EX_A27_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
17. Quais são os métodos para gerênciamento de espaço livre em 
disco? 
- Vetor de Bits (bitmap) 
Cria um vetor onde cada posição corresponde a um bloco do disco, e possui valor 0 
para livre e 1 para ocupado. 
Vantagem: simplicidade e eficiência para encontrar o primeiro bloco livre. 
Desvantagem: ineficiente ao menos que sejam mantido na memória principal (senão 
fica muito custoso o acesso repetidamente ao disco) e ocupa muito espaço 
- Lista Encadeada 
Desvantagem:para varrer a lista é preciso ler cada bloco 
 
-Vetor de bits: 
A lista de espaço livre é implementada como um mapa de bits ou um vetor de bits. 
Cada bloco é representado por 1 bit. Se o bloco estiver livre o bit será 1; se o bloco 
estiver alocado o bit será 0. A principal vantagem é que é relativamente simples e 
eficiente encontrar o primeiro bloco livre, ou n blocos livres consecutivos no disco. 
Mas são ineficientes a não ser que todo o vetor seja mantido na memória principal. 
-Lista Encadeada: 
Encadear todos os blocos de disco livres, mantendo um ponteiro ao primeiro bloco 
livre em uma posição especial no disco e armazenando-os em cache na memória. 
Esse primeiro bloco contém um ponteiro ao próximo bloco livre de disco, e assim por 
diante. 
Não é eficiente, para percorrer a lista, precisamos ler cada bloco, o que requer 
tempo substancial de I/O. 
-Agrupamento: 
Exercício: CCT0224_EX_A28_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Armazena os endereços de n blocos livres no primeiro bloco livre. Os primeiros n-1 
desses blocos estão realmente livres. O bloco final contém os endereços de outros n 
blocos livres, e assim por diante. Assim os endereços de um grande número de 
blocos livres podem ser rapidamente encontrados. 
-Contadores: 
Em vez de manter uma lista de n endereços de disco livres, mantêm o endereço do 
primeiro bloco livre e o número n de blocos contíguos livres que seguem esse 
primeiro bloco. Cada entrada na lista de espaço livre consiste então em um endereço 
de disco e um contador.Embora cada entrada exija mais espaço que um endereço de 
disco simples, a lista global fica mais curta. Aproveita o fato de que em geral vários 
blocos contíguos podem ser alocados ou liberados simultaneamente. 
18. Quais as estapas de um checkagem de consistência de um file 
system? 
A verificação de consistência compara os dados na estrutura de diretório com os 
blocos de dados no disco e tenta corrigir quaisquer inconsistências encontradas. Os 
algoritmos de alocação e gerência de espaço livre determinam os tipos de problemas 
que o verificador poderá encontrar e qual será a taxa de sucesso na correção desses 
problemas. Um possível teste é verificar no número de hardlinks apontando para o 
inode. 
19. Como funcionam os sistema de arquivos baseados em Journaling? 
Quais suas vantagem? O que tentam garantir? 
Um sistema de arquivos com journaling dá permissão ao Sistema Operacional de 
manter um log (journal), de todas as mudanças no sistema de arquivos antes de 
escrever os dados no disco. Normalmente este log é um log circular alocado em uma 
área especial do sistema de arquivos. Por ser mais bem localizado em espaço menor 
costuma ter melhor desempenho também. 
 
 
 
Este tipo de sistema de arquivos tem a oferecer uma melhor probabilidade de não 
sofrer corrupção de dados no caso de o sistema travar ou faltar energia, e uma 
Exercício: CCT0224_EX_A29_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
recuperação mais rápida, pois não necessita verificar todo o disco, somente aqueles 
que pertenciam a um log que não fora fechado devidamente. 
 
20. Expliqueos seguintes algoritmos de escalonamento de requisições 
de disco: FCSF, SSTF (Shortest-Seek First), SCAN, C-SCAN e LOOK. 
FCSF atende as requisições em fila, SSTF escolhe o endereço com menor 
deslocamento, e isso pode causa inanição. 
Scan é o método elevador, o ponteiro do disco percorre de um lado para o outro 
atendendo as requisições. O C-SCAN é similar mas só funciona em um sentido e é 
melhor no tempo de resposta médio. O Look é como o SCAN é implementado na 
prática que não vai até o fim do disco mas só até o último endereço requisitado. 
21. Quais sao os algoritmos de escalonamentos disponíveis 
atualmente do kernel Linux? Descreva cada um deles. 
NOOP 
 
É o escalonador de I/O mais simples do Linux. Ele insere todas as requisições de I/O 
é uma fila FIFO (First In First Out) não ordenada. 
 
O escalonador assume que a otimização do desempenho de I/O será feito em 
alguma outra camada da hierarquia de I/O (por exemplo, no dispositivo de blocos, 
por um controlador RAID "inteligente" ou por um controlador externo como um 
subsistema de armazenamento (storage). 
 
O NOOP é melhor para dispositivos de estado sólido (SSD - Solid State Devices) 
como memória flash ou, em linhas gerais, dispositivo que não dependam de 
movimento mecânico para acesso aos dados (como a tecnologia tradicional de "disco 
rígido" que depende do tempo de acesso - seek time - e da latência rotacional). 
Dispositivos não-mecânicos não necessitam de reordenamento de múltiplas 
requisições de I/O, uma técnica que agrupa as requisiçòes de I/O que estão 
Exercício: CCT0224_EX_A30_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
fisicamente próximas no disco, dessa forma reduzindo o tempo médio de acesso e a 
variabililidade do tempo de "serviço" (pense em servir algo) de I/O. 
 
 
ANTICIPATORY 
 
O objetivo é aumentar a eficiência de utilização do disco "antecipando" operações de 
leitura síncrona. 
 
"Deceptive idleness" é uma situação onde um processo parece ter terminado a 
leitura do disco quando na verdade está processando dados enquanto se prepara 
para a próxima operação de leitura. Isto fará com que um escalonador que procura 
reduzir trabalho mude para outro processo não relacionado. Esta situação é 
prejudicial à vazão de leituras síncronas, pois sobrecarrega o trabalho de "acesso". A 
solução do escalonador Anticipatory para o "Deceptive idleness" é fazer uma pausa 
por um pequeno tempo (alguns milisegundos) após uma operação de leitura em 
antecipação a outra requisição de leitura fisicamente próxima. 
 
O Anticipatory pode reduzir o desempenho em discos usando TCQ (Tagged 
Command Queuing), discos de alto desempenho e conjuntos (arrays) RAID feitos via 
hardware. Este escalonador foi o padrão no Linux entre o kernel 2.6.0 e o 2.6.18, 
sendo substituído pelo CFQ. 
 
 
DEADLINE 
 
A principal meta deste escalonador é tentar garantir um tempo inicial para atender 
uma requisição. Ele faz isso impondo uma "deadline" em todas as operações de I/O 
Exercício: CCT0224_EX_A31_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
para evitar "starvation" dos recursos. São mantidas duas filas de "deadline" além 
das filas ordenadas (ambas de leitura e escrita). As filas de "deadline" são 
minimamente ordenadas por seu tempo de expiração, enquanto que as filas 
ordenadas usam o número do setor para definir a ordem. 
 
Antes de atender a próxima requisição, o Deadline decide qual fila usará. Filas de 
leitura recebem prioridade maior porque os processos usalmente "param" em 
operações de leitura. Em seguida, o escalonador verifica se a primeira requisição na 
fila "deadline" expirou, se não ele serve uma sequência de requisições da fila 
ordenada. Nos dois casos, o escalonador também serve uma sequência de 
requisições seguindo a requisição escolhida na fila ordenada. 
 
Por padrão, as requisições de leitura expiram em 500ms, requisições de escrita em 5 
segundos. 
 
A documentação indica que este é o escalonador recomendado para sistemas de 
bancos de dados, especialmente em discos que trabalham com TCQ (Tagged 
Command Queuing) ou quaisquer sistemas com discos de alto desempenho. 
 
 
CFQ (Completely Fair Queuing): 1 fila de I/O por processo, o objetivo é ser 
justo entre os processos. 
 
O CFQ funciona colocando requisições síncronas enviadas pelos processos em uma 
certa quantidade de filas por-processo e então alocando espaços de tempo para que 
cada uma das filas acesse o disco. A quantidade de tempo e o número de requisições 
que uma fila pode enviar depende da prioridade de IO de um determinado processo. 
 
Exercício: CCT0224_EX_A32_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Requisições assíncronas para todos os processos são processadas em conjunto em 
um número menor de filas que estão separadas por prioridade (uma fila por 
prioridade). 
 
Embora o CFQ não faça explicitamente escalonamento de I/O anticipatório, ele 
atinge o mesmo efeito de ter boa vazão para o sistema como um todo, permitindo 
que uma fila de processo "não faça nada" (idle) ao final de um IO síncrono e, dessa 
forma, "antecipando" IOs próximos vindos do mesmo processo. 
 
O CFQ pode ser considerado uma extensão natural da ação de conceder "fatias de 
tempo de IO" a um processo. 
22. Compare RAID0, RAID1, RAID5 e RAID6. 
RAID0 grava blocos espalhados pelo disco, o que dá baixa confiabilidade e alto 
desempenho. O espaço total é a soma de todos os discos. 
RAID1 grava os blocos duplicados nos discos, garante alta confiabilidade e 
desempenho ruim. Em especial a escrita se tiver 1 disco lento, fica tudo lento. 
Espaço total é o espaço de 1 disco. 
RAID5 faz paridade dos blocos, para isso tem que ter ao menos 3 discos. Com 1 
bloco e a paridade (ou 2 blocos) é possível refazer o outro bloco. As paridades ficam 
espalhadas nos discos. 
RAID6 2 Paridades. Podem falhar 2 discos e espaço é (n-2)*x 
 
23. Suponha que você possui 4 discos rígidos de 750GB. Quanto 
espaço disponível você obteria usando RAID5 e quanto espaço você 
obteria com RAID6? Quantos discos poderiam falhar em cada um 
destes casos? 
Com RAID5 para cada 2 blocos tem 1 bloco de paridade. Então, como os blocos 
estão espalhados, você teria 2000GB de espaço utilizável e 1 disco podendo falhar. 
Exercício: CCT0224_EX_A33_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Com RAID6 teria 1 paridade a mais que dá (4-2)*750 = 1500GB de espaço utilzável, 
mas podendo falhar 2 discos. 
 
 Avaliação: CCT0166_AV_ » SISTEMAS OPERACIONAIS Tipo de Avaliação: AV 
Aluno: - 
 Professor: MARCELO RIBEIRO DE OLIVEIRA Turma: 9001/AA 
Nota da Prova: 6,5 Nota de Partic.: 2 Data: 07/03/2015 11:18:22 (F) 
 
O que são system calls e qual a relação com a segurança dos sistemas operacionais? (MAIA, 3ª edição) 
Resposta: System calls são chamadas ao sistema para utilizar funcionalidades protegidas do S.O.; ou seja 
trata-se de uma interface entre os processos e o S.O.. Essas chamadas podem ser feitas em dois modos: de 
usuário, não privilegiado, e kernel, privilegiado. Esses modos de acesso são um mecanismo para garantir a 
segurança do S.O. e dos recursos de hardware por ele gerenciados. 
Gabarito: Pode ser entendida como a porta de entradapara o acesso ao núcleo do sistema operacional e a 
seus serviços. Para cada serviçodisponível no sistema existe uma system call associada e cada sistema 
operacional tem seu próprio conjunto de chamadas, com nomes, parâmetrose formas de ativação.. A sua 
importância está relacionada a implementação de mecanismos de proteção aonúcleo do sistema e de 
acesso aos seus serviços. 
 
Existem dois tipos de escalonamento os preemptivos e não preemptivos. Qual a diferença entre eles? Dê 
pelo menos um exemplo de algoritmo de escalonamento preemptivo e não preemptivo. 
Resposta: Os preemptivos possuem algum mecanismo de escalonamento em razão do tempo, ao contrário 
dos não-preemptivos. O escalonamento conhecido como FIFO (First in, First out) é do tipo 
não-preemptivo; as unidades de escalonamento são organizadas e selecionadas pelo critério de entrada. 
Já o Round Robin possui o mesmo tipo de organização e seleção, porém implementa um time-slice, ou 
seja, um tempo limite de permanência e execução no estado EXECUTANDO. Quando o tempo acaba, a 
unidade de escalonamento é devolvida para o final da fila de PRONTO 
 1 
a Questão ( Ref. : 610847) Pontos: 1 , 0 / 1 , 5 
 2 
a Questão ( Ref. : 62206) Pontos: 0 , 5 / 1 , 5 
Exercício: CCT0224_EX_A34_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Gabarito: No escalonamento não-preemptivo o sistema operacional não interrompe o processo em 
execução para subsituí-lo por outro processo. Já o preemptivo é caracterizado pela possibilidade do 
sistema opercional interromper um processo emexecução e passaá-lo para o estado de pronto. Exemplos: 
não-preemptivo: fifo, sjf preemptivo: escalonamento circular, por prioridades, por múltiplas filas 
 
Correlacione os conceitos com seus significados abaixo: 
Kernel - System Call - Modos de acesso - Operações de E/S 
I- Mecanismo para impedir a ocorrência de problemas de segurança e violação do sistema 
II- Elas podem ser implementadas por programa, por interrupção e o uso do DMA 
III- Fornece serviços básicos para todas as outras partes de um Sistema Operacional 
IV- Fornecem a interface entre os processos e o sistema operacional sendo um mecanismo de proteção ao 
núcleo 
 III - IV - II - I 
IV - III - II - I 
IV - III - I - II I - 
II - III - IV 
III - IV - I - II 
 Gabarito Comentado. 
 
Analise as possíveis transições entre os estados de um processo e assinale a opção que indica as sentenças 
corretas. 
i) um processo passa do estado de "executando" para o estado de "pronto" quando termina a fatia de 
tempo ii) um processo passa do estado de "pronto" para o estado de "bloqueado" quando solicita 
recurso 
iii) um processo passa do estado de "pronto" para o estado de "executando" quando é selecionado pelo 
sistema operacional 
 3 
a Questão ( Ref. : 227852) Pontos: 0 , 5 / 0 , 5 
 4 
a Questão ( Ref. : 16911) Pontos: 0 , 5 / 0 , 5 
Exercício: CCT0224_EX_A35_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
i e 
iii ii 
iii 
i ii e 
iii 
 
Considere uma aplicação baseada em threads em um sistema operacional com suporte a threads de 
kernel. Se uma das threads desta aplicação for bloqueada para aguardar um acesso ao disco podemos 
afirmar que as demais threads deste processo: 
Não serão bloqueadas mas ficaram aguardando o desbloqueio da thread que solicitou o acesso ao 
disco Serão interrompidas provocando um erro no processo. 
Terão a prioridade reduzida para aguardar o desbloqueio da thread que solicitou o acesso ao disco 
Poderão continuar executando se não dependerem da thread que foi bloqueada 
Serão bloqueadas também para impedir a ocorrência de erros 
 
Em programação concorrente, quando um processo nunca é executado ("morre de fome"), pois processos 
de prioridade maior sempre o impedem de ser executado, diante desta situação podemos concluir que 
ocorreu: 
Bloqueio 
Espera ocupada 
Exclusão mútua 
Deadlock 
Starvation 
 Gabarito Comentado. 
 5 
a Questão ( Ref. : 17003) Pontos: 0 , 5 / 0 , 5 
 6 
a Questão ( Ref. : 572860) Pontos: 0 , 5 / 0 , 5 
 
 
 
 
Exercício: CCT0224_EX_A36_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Uma condição de corrida é uma técnica computacional aplicada aos processos para que os mesmos 
sejam comparados com relação ao tempo de execução. 
Uma condição de corrida ocorre quando um ou mais processos iniciam a execução concomitante e 
competem no tempo para terminar primeiro. 
Não haverá condição de corrida em sistemas multitarefa. 
Uma condição de corrida pode ocorrer quando dois ou mais processos estão lendo ou escrevendo algum 
dado compartilhado e o resultado final depende de qual e quando executa precisamente. 
 Uma condição de corrida é uma técnica utilizada para medir o tempo de execução de um processo. 
 Gabarito Comentado. 
 
A gerência do processador apresenta alguns critérios que devem ser considerados em uma política de 
escalonamento. Qual o critério de escalonamento que representa o número de processos executados em 
um determinado intervalo de tempo? 
Throughput 
Tempo de Turnaround 
Tempo de processador 
Utilização do Processador 
Tempo de Espera 
 Gabarito Comentado. 
 
No contexto de gerência de memória, por que o algoritmo de substituição de páginas ótimo não pode ser 
implementado? 
 7 
a Questão ( Ref. : 15511) Pontos: 0 , 5 / 0 , 5 
No contexto de processos, como pode ocorrer uma condição de corrida? 
 8 
a Questão ( Ref. : 607249) Pontos: 0 , 5 / 0 , 5 
 9 
a Questão ( Ref. : 15515) Pontos: 1 , 0 / 1 , 0 
 
 
Exercício: CCT0224_EX_A37_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 O algoritmo de substituição de páginas ótimo não pode ser implementado porque não há poder 
computacional suficiente nos dias atuais. 
 O algoritmo de substituição de páginas ótimo não pode ser implementado porque exige uma 
quantidade de memória muito grande. 
 O algoritmo de substituição de páginas ótimo não pode ser implementado porque o hardware 
necessário seria absurdamente caro. 
O algoritmo de substituição de páginas ótimo não pode ser implementado porque é muito 
complexo. 
O algoritmo de substituição de páginas ótimo não pode ser implementado porque não é possível prever 
qual página será menos acessada no futuro. 
 
Um device driver, ou simplesmente driver, tem como função implementar a comunicação do subsistema 
de E/S com os dispositivos de E/S. Sendo assim, um device driver é bem definido na alternativa: 
torna as operações de E/S mais simples para o usuário bem como suas 
aplicações. realiza as funções comuns a todos os tipos de dispositivos. 
manipula diretamente os dispositivos de E/S. 
recebe comandos gerais sobre acessos aos dispositivos, traduzindo-os para comandos 
específicos, que poderão ser executados pelos controladores. permite a comunicação entre o 
sistema computacional e o mundo externo. 
 Gabarito Comentado. 
Período de não visualização da prova: desde 03/03/2015 até 17/03/2015. 
 
 
Avaliação: CCT0166_AV_201301262846 » SISTEMAS OPERACIONAIS 
Tipo de Avaliação: AV Aluno: 
Professor: MAURO CESAR CANTARINO GIL Turma: 9001/AA 
Nota da Prova: 3,0 Nota de Partic.: 0 Data: 09/06/2014 15:00:41 
 
 10 
a Questão ( Ref. : 227866) Pontos: 1 , 0 / 1 , 0 
 
 
 
Exercício: CCT0224_EX_A38_201308023405Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
Existem diferentes maneiras de implementar a concorrência dentro de uma aplicação. São exemplos desta 
implementação os processos independentes, subprocessos e threads. Quais as diferenças entre estas 
implementações? 
Resposta: 
Gabarito: Nos processos independentes não existe vínculo entre o processo criado e o seu criador. Cada processo 
possui seu próprio contexto de hardware, contexto de software e espaço de nedereçamento. Já os subprocessos 
são criados dentro de uma hierarquia, onde existe uma dependência entre o processo criador e o o subprocesso. 
Caso o processo pai deixe de existir o processo filho deixará também, apesar de cada processo possuir sua própri 
PCB. Diferentemente dos dois exemplos anteriores, os threads compartilham o espaço de endereçamento e o 
contexto de software, porém cada thread possui seu próprio contexto de hardware. 
 
Na execução de processos existem duas importantíssimas rotinas que são o escalonador e o dispatcher. Uma dest 
rotinas depende da outra para sua execução. Descreva a função de cada uma delas e responda qual a rotina que 
depende da outra para ser executada? 
Resposta: 
Gabarito: Escalonador é o responsável por implementar os critérios da política de escalonamento dos processos e 
dispatcher é o repsonsável pela troca de contexto dos processos. Após o escalonado determinar qual processo dev 
fazer uso do processor, o dispatcher irá realizar a troca. Sendo assim é o dispatcher que depende do escalonador. 
 
Para evitar os problemas causados pelo compartilhamento de recursos entre processos executados de forma 
concorrente foram propostos mecanismos de exclusão mútua. Os mecanismos de exclusão mútua são classificado 
entre soluções de hardware e soluções de software. Das alternativas abaixo, marque a unica que apresenta uma 
solução de HARDWARE para o problema da exclusão mútua. 
Algoritmo de Dekker. Primeiro 
algoritmo Instrução test-and-set. 
Algoritmo de Peterson. 
 Segundo algoritmo 
 
 
Exercício: CCT0224_EX_A39_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 
Uma alternativa para o aumento de desempenho de sistemas computacionais é o uso de processadores co múltiplos 
núcleos, chamados multicores. Nesses sistemas, cada núcleo, normalmente, tem as funcionalidad completas de um 
processador, já sendo comuns, atualmente, configurações com 2, 4 ou mais núcleos. Com relaç ao uso de 
processadores multicores, e sabendo que threads são estruturas de execução associadas a um proces que 
compartilham suas áreas de código e dados, mas mantêm contextos independentes, analise as seguint asserções: 
Ao dividirem suas atividades em múltiplas threads que podem ser executadas paralelamente, aplicações podem 
beneficiar mais efetivamente dos diversos núcleos dos processadores multicores. 
PORQUE 
O sistema operacional nos processadores multicores pode alocar os núcleos existentes para execu simultaneamente 
diversas sequências de código, sobrepondo suas execuções e, normalmente, reduzindo o tem de resposta das 
aplicações às quais estão associadas. 
Acerca dessas asserções, assinale a opção correta. 
As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeir A 
primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. 
As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. 
A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. Tanto a 
primeira quanto a segunda asserções são proposições falsas. 
 
Em relação ao uso de threds em modo kernel, analise as assertivas a seguir: 
I - Threads em modo kernel podem ser utilizados em sistemas operacionais monothread 
II - Threads em modo usuário são criadas e destruidas pelo sistema operacional. 
III - Threads em modo kernel não bloqueiam o processo quando entram em estado de espera 
Marque a alternativa que contém as assertivas VERDADEIRAS: 
 Somente I 
Somente III 
Todas são verdadeiras 
Somente II 
Somente I e III 
 
 
Exercício: CCT0224_EX_A40_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 6a Questão (Ref.: 201301304641) Pontos: 0,0 / 0 
No contexto de processos, como pode ocorrer uma condição de corrida? 
Uma condição de corrida é uma técnica utilizada para medir o tempo de execução de um processo. Uma 
condição de corrida ocorre quando um ou mais processos iniciam a execução concomitante e 
competem no tempo para terminar primeiro. 
Não haverá condição de corrida em sistemas multitarefa. 
Uma condição de corrida pode ocorrer quando dois ou mais processos estão lendo ou escrevendo algum 
dado compartilhado e o resultado final depende de qual e quando executa precisamente. 
Uma condição de corrida é uma técnica computacional aplicada aos processos para que os mesmos sejam 
comparados com relação ao tempo de execução. 
 
Os sistemas operacionais podem ser classificados em relação a possibilidade de concorrência entre processos e a 
possibilidade de uso concorrente por mais de um usuário. Neste contexto podemos afirmar que: 
Sistemas monotarefa podem ser multiusuário. 
Sistemas monousuário são obrigatoriamente monotarefa. 
Todo sistema multiusuário é também multitarefa. Alguns 
sistemas multiusuário são também multitarefa Todo sistema 
multitarefa é também multiusuário. 
 
Considerando uma lista de blocos livres para gerência de alocação de memória, em que consiste o algoritmo first 
(primeiro encaixe)? 
 O algoritmo first fit consiste em fazer o gerenciador de memória procurar pelo espaço na lista de blocos 
livres que se adeque melhor aos requisitos do processo solicitante. 
 O algoritmo first fit não está relacionado com gerência de alocação de memória, mas com gerência de 
processador em um sistema multiprocessado. Ele serve para alocar o primeiro processador disponível ao 
processo que foi escalonado. 
 O algoritmo first fit consiste em fazer o gerenciador de memória procurar pelo primeiro espaço na lista de 
blocos livres que seja grande o suficiente para os requisitos do processo solicitante. 
 O algoritmo first fit consiste em modificar a lista de blocos livres para que ela disponibilize um espaço livre 
para um processos solicitante o mais breve possível. 
 
 
Exercício: CCT0224_EX_A41_201308023405 
Aluno(a): DIEGO FERREIRA DE ALMEIDA Matrícula: 201308023405 
 Data: (Finalizada) 
 SISTEMAS OPERACIONAIS 
 VOLTAR 
 O algoritmo first fit consiste em fazer o gerenciador de memória procurar pelo espaço na lista de blocos 
livres que seja o menor possível para os requisitos do processo solicitante. 
 
Deadlock pode ser definido como uma situação em que um processo aguarda por um recurso que nunca estará 
disponível ou um evento que nunca ocorrerá. Para que ocorra a situação de deadlock, algumas condições são 
necessárias simultaneamente. Assinale alternativa que contém todas essas condições: 
Exclusão mútua e espera por recurso. 
Exclusão mútua, espera por recurso e não-preempção. 
Espera por recurso e não-preempção. 
Não-preempção. 
Exclusão mútua e não-preempção. 
 
Durante a execução de um programa podem ocorrer eventos inesperados, que causem um desvio forçado no flux 
de execução de um programa. Esses eventos são conhecidos por interrupção ou exceção. Em relação ao conceito 
de interrupção e exceção, é correto afirmar que: 
Exceções partem

Outros materiais