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?
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 controlador de 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.