Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

• 14/09 
 
1. Quais são as duas principais funções de um sistema operacional? 
• controlar o hardware e permitir executar os softwares. 
 
3. Qual é a diferença entre sistemas de compartilhamento de tempo e de 
multiprogramação? 
• A principal diferença entre multiprogramação e compartilhamento de 
tempo é que a multiprogramação é a utilização efetiva do tempo da CPU, 
permitindo que vários programas usem a CPU ao mesmo tempo, mas o 
compartilhamento de tempo é o compartilhamento de uma instalação de 
computação por vários usuários que desejam usar a mesma instalação ao 
mesmo tempo. Cada usuário em um sistema de compartilhamento de 
tempo obtém seu próprio terminal e tem a sensação de que está usando 
apenas a CPU. Na verdade, os sistemas de compartilhamento de tempo 
usam o conceito de multiprogramação para compartilhar o tempo da CPU 
entre vários usuários ao mesmo tempo. 
1. 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? 
• Isto pode trazer perda de desempenho muito grande ao sistema. Já que com 
a multiprogramação você tem vários processos sendo executados 
sequencialmente com alternância rápida e constante, se todas operações 
de dados envolverem E/S, sempre que pelo menos um dos processos 
estiver executando E/S todos os outros tem de esperar pelo término da 
operação. 
1. 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. 
• Dois exemplos de metas de projeto que se contradizem seriam o tempo 
real, o qual os recursos são alocados em momentos distintos já que há uma 
variedade de execução de processos e que cada um destes completa sua 
execução em tempos diferentes e necessidade de recursos diferentes, e 
outro exemplo seria a forma “justa” ao qual são repartidos os recursos 
entre os processos, onde nenhum processo recebe mais recursos que o 
outro. A contradição se dá justamente pelo fato de que um processo em 
tempo real pode receber recursos de forma desproporcional em relação a 
outros. 
 
• 16/09 
2. 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. 
• A razão destas instruções serem privilegiadas corresponde ao fato de que 
muitas instruções só devem ser executadas pelo sistema operacional ou 
pelo administrador. Isso evita problemas relacionados à segurança e 
integridade do sistema. As instruções não -privilegiadas são as instruções 
em nível de usuário, às quais não apresentam riscos de comprometer o 
sistema. 
10. 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. 
• O modo núcleo permite que a C PU execute todas as instruções em seu 
conjunto de instruções além de usar todos os recursos de hardware do 
sistema. Já o modo usuário limita o acesso da CPU a um determinado 
subconjunto de instruções e a um subconjunto de recursos de hardware 
do sistema. Esses dois modos ajudam aos programadores a executar 
programas de usuário em modo de usuário restringindo-os ao acesso 
de instruções críticas do sistema. 
 
12. Quais das instruções a seguir devem ser deixadas somente em modo núcleo? 
 
• Opções (a) Desabilitar todas as interrupções, (c) Configurar o relógio 
da hora e (d) Mudar o mapa de memória. 
 
16. 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? 
• Depende. Caso o driver copie os dados para um buffer privado antes 
da interrupção, quem chamou poderá continuar o seu processo e o 
processo do driver atual será suspenso. Porém, se quem chamou 
obtiver o controle e com isso modifica os dados de forma imediata, os 
dados modificados pelo chamador atual serão salvos ao final da 
gravação. 
1.5 De que modo a diferença entre modalidade de kernel e modalidade de usuário 
funciona como um tipo rudimentar de sistema de proteção (segurança)? 
• Um bit, chamado bit de modalidade, é adicionado ao hardware do 
computador para indicar a modalidade corrente: kernel (0) ou usuário 
(1). Com o bit de modalidade, podemos distinguir entre uma tarefa que 
é executada em nome do sistema operacional e a que é executada em 
nome do usuário. A modalidade do Kernel trata da responsabilidade 
de um sistema se defender contra ataques externos e internos, portanto, 
certas instruções só podem se-executadas quando a CPU nesta 
modalidade, garantindo assim a segurança. A modalidade de usuário 
pode ser qualquer tipo de mecanismo que controle o acesso de 
processos ou usuários aos recursos que um sistema de fina. 
1.10.Cite duas razões que tornam os caches úteis. Que problemas eles resolvem? Que 
problemas eles causam? Se um cache pode ser aumentado até o tamanho do 
dispositivo para o qual está armazenando (por exemplo, um cache tão extenso 
quanto um disco), por que não lhe dar esse tamanho e eliminar o dispositivo? 
• Os caches são úteis quando dois ou mais componentes precisam trocar 
dados, e esses componentes executam transferências com diferenças. 
Os caches resolvem o problema da transferência de fornecimento de 
um buffer de velocidade intermediária entre os componentes. Se o 
dispositivo rápido achar os dados de que precisa no cache, não espere 
pelo dispositivo mais lento. Os dados no cache devem ser coletivos 
consistentes com os dados nos componentes. Se um componente tiver 
um valor de dado alterado, e o dado também estiver no cache, o cache 
também deve ser atualizado. Isso é um problema principalmente em 
sistemas multiprocessadores em que mais de um processo pode estar 
acessando um dado. Um componente pode ser eliminado por um cache 
de mesmo tamanho, mas apenas se: (a) o cache e o componente 
possuem capacidade equivalente de salvamento de estado (isto é, se o 
componente retiver seus dados quando a energia é removida, o cache 
também deve reter dados) e (b) o cache pode ser custeado, porque uma 
memória mais rápida tende a ser mais cara. 
1.19 Qual é o objetivo das interrupções? Em que uma interrupção difere de uma 
exceção? As exceções podem ser geradas intencionalmente por um programa de 
usuário? Caso possam, com que propósito? 
• O objetivo das interrupções é indicar a concorrência de um evento. A 
diferença é que a interrupção demanda mensagem via hardware para o 
Sistema Operacional. Uma execução envia um programa para o 
Sistema Operacional. As execuções podem ser geradas 
intencionalmente com um hardware de alertar sobre algum erro. 
1.20 O acesso direto à memória é usado em dispositivos de I/O de alta velocidade 
para impedir o aumento da carga de execução da CPU. 
a) Como a CPU interage com o dispositivo para coordenar a transferência? 
• Os sistemas operacionais têm um driver de dispositivo para cada 
controlador de dispositivos. Esse driver entende o driver de 
dispositivos e dispositivos uma interface uniforme entre o dispositivo 
e o resto do sistema operacional. 
b) Como a CPU sabe quando as operações da memória foram concluídas? 
• É gerada, uma interrupção por bloco para informar ao driver que uma 
operação foi concluída. 
c) A CPU pode executar outros programas enquanto o controladorde DMA está 
transferindo dados. Esse processo interfere na execução dos programas de 
usuário? Caso interfira, descreva que tipos de interferência são gerados. 
• Não interfere. Enquanto o controlador do dispositivo está fazendo 
essas operações uma CPU está disponível para cumprir outras tarefas.

Mais conteúdos dessa disciplina