0% acharam este documento útil (0 voto)
39 visualizações

Lista 1

Enviado por

troberta765
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
39 visualizações

Lista 1

Enviado por

troberta765
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 8

Lista 1

Quais são as duas principais funções de um sistema operacional?

Simplificação da interface com o hardware e gerenciamento de recursos de harware

compartilhados são as duas principais funções de um sistema operacional.

Qual é a diferença entre sistemas de compartilhamento de tempo e de multiprogramação?

Compartilhamento de tempo permite que vários usuários acessem uma CPU


remotamente

através de terminais, executando seus programas na CPU de forma compartilhada. Na

multiprogramação, vários programas compartilham a CPU rodando em uma única


máquina.

Desta forma, todo sistema de compartilhamento permite multiprogramação, mas nem todo

sistema de multiprogramação permite compartilhamento de tempo, pois estão


geralmente

associados ao uso por um único usuário.

Para usar a memória de cache, a memória principal é dividida em linhas de cache, em geral

de 32 a 64 bytes de comprimento. Uma linha inteira é capturada em cache de uma só vez.

Qual é a vantagem de fazer isso com uma linha inteira em vez de um único byte ou palavra

de cada vez?

Evidências empíricas mostram que o acesso à memória exibe o princípio da localidade


de

referência, onde, se um local é lido, a probabilidade de acessar locais próximos é muito alta,

principalmente os seguintes locais de memória. Portanto, ao armazenar em cache uma linha

de cache inteira, a probabilidade de ocorrência de um cache é aumentada em seguida. Além

disso, o hardware moderno pode fazer uma transferência em bloco de 32 ou 64 bytes para

uma linha de cache muito mais rápido do que ler os mesmos dados que palavras individuais.

Nos primeiros computadores, cada byte de dados lido ou escrito era executado pela CPU

(isto é, não havia DMA). Quais implicações isso tem para a multiprogramação?

O principal motivo da multiprogramação é dar à CPU algo para fazer enquanto aguarda
a

conclusão da E / S. Se não houver DMA, a CPU estará totalmente ocupada executando E / S,

portanto, não há nada a ser ganho (pelo menos em termos de utilização da CPU) pela

multiprogramação. Não importa quanta E / S um programa faça, a CPU estará 100% ocupada.
Obviamente, isso pressupõe que o grande atraso é a espera enquanto os dados são copiados.

Uma CPU poderia fazer outro trabalho se a E / S estivesse lenta por outros motivos (chegando

em uma linha serial, por exemplo).

Instruções relacionadas ao acesso a dispositivos de E/S são tipicamente instruções

privilegiadas, isto é, podem ser executadas em modo núcleo, mas não em modo usuário. Dê

uma razão de por que essas instruções são privilegiadas.

O acesso a dispositivos de E / S (por exemplo, uma impressora) normalmente é restrito para

diferentes usuários. Alguns usuários podem imprimir quantas páginas quiserem, outros podem

não imprimir, enquanto alguns podem se limitar a imprimir apenas um determinado número

de páginas. Essas restrições são definidas pelos administradores do sistema com base
em

algumas políticas. Essas políticas precisam ser aplicadas para que os programas no nível
do

usuário não possam interferir com eles.

Uma razão para a adoção inicialmente lenta das GUIs era o custo do hardware necessário

para dar suporte a elas. Quanta RAM de vídeo é necessária para dar suporte a uma tela de

texto monocromo de 25 linhas 80 colunas de caracteres? E para um bitmap colorido de 24

bits de 1.200 900 pixels? Qual era o custo desta RAM em preços de 1980 (US$ 5/KB)?

Quanto é agora?

Uma tela de texto monocromático de 25 × 80 caracteres requer um buffer de 2000 bytes. O

bitmap colorido de 24 bits de 1200 × 900 pixels requer 3.240.000 bytes. Em 1980, essas duas

opções teriam custado US $ 10 e US $ 15.820, respectivamente. Para preços atuais, verifique

quanto RAM atualmente custa, provavelmente centavos por MB.

Há várias metas de projeto na construção de um sistema operacional, por exemplo,

utilização de recursos, oportunidade, robustez e assim por diante. Dê um exemplo de duas

metas de projeto que podem contradizer uma à outra.

Considere justiça e tempo real. A justiça exige que cada processo aloque seus recursos
de

maneira justa, sem que nenhum processo obtenha mais do que seu quinhão. Por outro lado, o

tempo real exige que os recursos sejam alocados com base nos horários em que
diferentes
processos devem concluir sua execução. Um processo em tempo real pode ter uma parcela

desproporcional dos recursos.

Qual é a diferença entre modo núcleo e modo usuário? Explique como ter dois modos

distintos ajuda no projeto de um sistema operacional.

No modo núcleo a CPU pode executar qualquer instrução de sua arquitetura, já no


modo

usuário somente um sub-conjunto das instruções é permitido. Desta forma, programas criados

pelos usuários rodaram no modo usuário e não terão acesso a recursos críticos do
sistema

diretamente.

Quais das instruções a seguir devem ser deixadas somente em modo núcleo? (a) Desabilitar

todas as interrupções. (b) Ler o relógio da hora do dia. (c) Configurar o relógio da hora do

dia. (d) Mudar o mapa de memória.

No exemplo acima, desabilitar as interrupções, configurar o relógio e mudar o mapa de

memória são operações que podem comprometer o funcionamento correto do sistema,

portanto devem ser executadas no modo núcleo somente.

Considere um sistema que tem duas CPUs, cada uma tendo duas threads (hiper-threading).

Suponha que três programas, P0, P1 e P2, sejam iniciados com tempos de execução de 5, 10

e 20 ms, respectivamente. Quanto tempo levará para completar a execução desses

programas? Presuma que todos os três programas sejam 100% ligados à CPU, não bloqueiem

durante a execução e não mudem de CPUs uma vez escolhidos.

Pode demorar 20, 25 ou 30 ms para concluir a execução desses programas, dependendo de

como o sistema operacional os agendar. Se P0 e P1 estiverem agendados na mesma CPU e P2

estiver agendado na outra CPU, serão necessários 20 ms. Se P0 e P2 estiverem agendados na

mesma CPU e P1 estiver agendado na outra CPU, serão necessários 25 ms. Se P1 e P2

estiverem agendados na mesma CPU e P0 estiver agendado na outra CPU, serão necessários

30 ms. Se todos os três estiverem na mesma CPU, serão necessários 35 ms.

Um computador tem um pipeline com quatro estágios. Cada estágio leva um tempo
para
fazer seu trabalho, a saber, 1 ns. Quantas instruções por segundo essa máquina consegue

executar?

Cada instrução de nanossegundo emerge do pipeline. Isso significa que a máquina está

executando 1 bilhão de instruções por segundo. Não importa quantos estágios o


pipeline

possui. Um pipeline de 10 estágios com 1 nsec por estágio também executaria 1 bilhão
de

instruções por segundo. O que importa é a frequência com que uma instrução
concluída

aparece no final do pipeline.

Considere um sistema de computador que tem uma memória de cache, memória principal

(RAM) e disco, e um sistema operacional que usa memória virtual. É necessário 1 ns para

acessar uma palavra da cache, 10 ns para acessar uma palavra da RAM e 10 ms para acessar

uma palavra do disco. Se o índice de acerto da cache é 95% e o índice de acerto da memória

principal (após um erro de cache) 99%, qual é o tempo médio para acessar uma palavra?

Average access time = 0.95 × 1 nsec (word is in the cache)

+ 0.05 × 0.99 × 10 nsec (word is in RAM, but not in the cache)

+ 0.05 × 0.01 × 10,000,000 nsec (word on disk only)

= 5001.445 nsec

= 5.001445 μ sec

Quando um programa de usuário faz uma chamada de sistema para ler ou escrever um

arquivo de disco, ele fornece uma indicação de qual arquivo ele quer, um ponteiro para o

buffer de dados e o contador. O controle é então transferido para o sistema operacional, que

chama o driver apropriado. Suponha que o driver começa o disco e termina quando ocorre

uma interrupção. No caso da leitura do disco, obviamente quem chamou terá de ser

bloqueado (pois não há dados para ele). E quanto a escrever para o disco? Quem chamou

precisa ser bloqueado esperando o término da transferência de disco?

uma instrução? Explique o uso em sistemas operacionais.

Uma instrução de trap alterna o modo de execução de uma CPU do modo de usuário para o

modo de kernel. Esta instrução permite que um programa do usuário chame funções no kernel

do sistema operacional.
Qual é a diferença essencial entre um arquivo especial de bloco e um arquivo especial de

caractere?

Os arquivos especiais de bloco consistem em blocos numerados, cada um dos quais pode ser

lido ou gravado independentemente de todos os outros. É possível procurar qualquer bloco e

começar a ler ou escrever. Isso não é possível com arquivos especiais de caracteres.

Sistemas operacionais modernos desacoplam o espaço de endereçamento do processo da

memória física da máquina. Liste duas vantagens desse projeto.

Isso permite que um programa executável seja carregado em diferentes partes da memória da

máquina em diferentes execuções. Além disso, permite que o tamanho do programa exceda o

tamanho da memória da máquina.

Para um programador, uma chamada de sistema parece com qualquer outra chamada para

uma rotina de biblioteca. É importante que um programador saiba quais rotinas de

biblioteca resultam em chamadas de sistema? Em quais circunstâncias e por quê?

No que diz respeito à lógica do programa, não importa se uma chamada para um

procedimento de biblioteca resulta em uma chamada do sistema. Mas se o desempenho for

um problema, se uma tarefa puder ser realizada sem uma chamada do sistema, o programa

será executado mais rapidamente. Toda chamada de sistema envolve tempo extra na

mudança do contexto do usuário para o contexto do kernel. Além disso, em um


sistema

multiusuário, o sistema operacional pode agendar outro processo para ser executado quando

uma chamada do sistema for concluída, retardando ainda mais o progresso em tempo real de

um processo de chamada.

A Figura 1.23 mostra que uma série de chamadas de sistema UNIX não possuem

equivalentes na API Win32. Para cada uma das chamadas listadas como não tendo um

equivalente Win32, quais são as consequências para um programador de converter um

programa UNIX para ser executado sob o Windows?

Várias chamadas UNIX não têm contrapartida na API do Win32:

Link: um programa Win32 não pode se referir a um arquivo por um nome alternativo ou vê-lo

em mais de um diretório. Além disso, tentar criar um link é uma maneira conveniente de testar

e criar um bloqueio em um arquivo.


Mount e unmount: um programa Windows não pode fazer suposições sobre nomes de

caminho padrão, porque em sistemas com várias unidades de disco, a parte do nome
da

unidade pode ser diferente.

Chmod: Windows usa listas de controle de acesso.

kill: os programadores do Windows não podem matar um programa que não esteja se

comportando de maneira incorreta.

Um sistema operacional portátil é um sistema que pode ser levado de uma arquitetura de

sistema para outra sem nenhuma modificação. Explique por que é impraticável construir um

sistema operacional que seja completamente portátil. Descreva duas camadas de alto nível

que você terá ao projetar um sistema operacional que seja altamente portátil.

Toda arquitetura de sistema possui seu próprio conjunto de instruções que pode ser

executado. Portanto, um Pentium não pode executar programas SPARC e um SPARC não pode

executar programas Pentium. Além disso, diferentes arquiteturas diferem na arquitetura de

barramento usada (como VME, ISA, PCI, MCA, SBus, ...), bem como no tamanho da palavra da

CPU (geralmente 32 ou 64 bits). Devido a essas diferenças de hardware, não é possível criar

um sistema operacional que seja completamente portátil. Um sistema operacional altamente

portátil consistirá em duas camadas de alto nível - uma camada dependente da máquina
e

uma camada independente da máquina. A camada dependente da máquina aborda as

especificações do hardware e deve ser implementada separadamente para todas as

arquiteturas. Essa camada fornece uma interface uniforme na qual a camada independente da

máquina é construída. A camada independente da máquina deve ser implementada


apenas

uma vez. Para ser altamente portátil, o tamanho da camada dependente da máquina deve ser

o menor possível.

Explique como a separação da política e mecanismo ajuda na construção de sistemas

operacionais baseados em micronúcleos.

A separação de política e mecanismo permite que os designers de SO implementem um


pequeno número de primitivas básicas no kernel. Essas primitivas são simplificadas,
porque

não dependem de nenhuma política específica. Eles podem ser usados para
implementar

mecanismos e políticas mais complexas no nível do usuário.

Máquinas virtuais tornaram-se muito populares por uma série de razões. Não obstante, elas

têm alguns problemas. Cite um.

A camada de virtualização apresenta maior uso de memória e sobrecarga do


processador,

além de maior sobrecarga de desempenho.

Lista 2

Na Figura 2.2, são mostrados três estados de processos. Na teoria, com três estados, poderia

haver seis transições, duas para cada. No entanto, apenas quatro transições são mostradas.

Existe alguma circunstância na qual uma delas ou ambas as transições perdidas possam

ocorrer?

A transição de bloqueado para execução é concebível. Suponha que um processo esteja

bloqueado na E / S e a E / S termine. Se a CPU estiver inativa, o processo pode


passar

diretamente do bloqueio para a execução. A outra transição ausente, de pronta para

bloqueada, é impossível. Um processo pronto não pode executar E / S ou qualquer outra coisa

que possa bloqueá-lo. Somente um processo em execução pode bloquear.

Empresa

 Sobre Nós

 Classificação Mundial De Universidades StuDocu 2021

 Bom Trabalho

 Integridade Acadêmica

 Vagas

 Dutch Website

Contato & Ajuda

 Perguntas Frequentes

 Contato

Legal
 Termos

 Política De Privacidade

 Declaração De Cookie

Social

 Facebook

 Twitter

 Instagram

 YouTube

 TikTok

 Blog

Baixe o aplicativo

Copyright © 2021 StudeerSnel B.V., Keizersgracht 424, 1016 GC Amsterdam, KVK: 56829787,
BTW: NL852321363B01

Você também pode gostar