Introducao Flashcards
Quais são as três finalidades principais de um sistema operacional?
Oferecer um ambiente conveniente e eficiente para que os usuários de computador executem programas no hardware.
Alocar recursos do computador de forma justa e eficiente, conforme necessário para resolver problemas apresentados.
Atuar como um programa de controle, desempenhando duas funções fundamentais: supervisionar a execução de programas de usuário para prevenir erros e uso indevido do computador, e gerenciar a operação e controle de dispositivos I/O.
Quando é apropriado que o sistema operacional n use eficientemente o hardware e “desperdice” recursos? Por que tal sistema não é, na verdade, perdulário?
Os sistemas de usuário único devem maximizar o uso do sistema para o usuário. Uma GUI pode “desperdiçar” ciclos de CPU, mas otimiza a interação do usuário com o sistema.
Qual é a principal dificuldade que um programador deve superar ao escrever um sistema operacional para um ambiente de tempo real?
maior desafio em S.O de tempo real é manter o cumprimento de prazos rígidos. Se uma tarefa não for concluída a tempo, pode causar uma falha em todo o sistema. Portanto, em sistemas de tempo real, o escalonamento deve garantir que o tempo de resposta permaneça dentro dos limites de tempo especificados.
considere se o sistema operacional deve incluir aplicações como navegadores web e programas de e-mail. Argumente tanto o que ele deve quanto o que ele não deve fazer isso e embase suas respostas.
Um argumento a favor da inclusão de aplicativos populares no sistema operacional é que, quando incorporados, podem tirar melhor proveito dos recursos do kernel, proporcionando melhor desempenho. No entanto, os argumentos contra essa prática geralmente prevalecem: (1) aplicativos são distintos do sistema operacional, (2) qualquer ganho de desempenho é superado por questões de segurança, e (3) isso resulta em um sistema operacional excessivamente volumoso.
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)?
A distinção entre modo kernel e modo usuário fornece uma proteção rudimentar ao restringir a execução de instruções e o acesso a dispositivos de hardware apenas ao modo kernel. Isso controla a habilitação e desabilitação de interrupções, restringindo a capacidade da CPU quando em modo de usuário e, assim, protege recursos críticos.
Qual das instruções a seguir deve ser privilegiada?
a.Configurar o valor do timer.
b.Ler o relógio.
c.Limpar a memória.
d.Emitir uma instrução de exceção.
e.Desativar interrupções.
f.Modificar entradas na tabela de status de dispositivos.
g.Passar da modalidade de usuário para a de kernel.
h.Acessar dispositivo de I/O
Ordem das operações privilegiadas: Definir valor do temporizador, limpar memória, desligar interrupções, modificar entradas na tabela de status do dispositivo, acessar dispositivo de E/S. O resto pode ser executado no modo usuário.
computadores antigos protegiam o sistema operacional inserindo-o em uma partição da
memória que não podia ser modificada pelo job do usuário ou pelo próprio sistema operacional.
Descreva duas dificuldades que você entende que poderiam surgir
Os dados críticos do sistema operacional, como senhas e informações contábeis, precisariam ser armazenados ou transmitidos através de memória desprotegida, tornando-os vulneráveis a acesso não autorizado.
Algumas CPUs fornecem mais de duas modalidades de operação. Cite dois usos possíveis para
essas modalidades múltiplas.
Alguns sistemas possuem múltiplos modos além dos tradicionais de usuário e kernel, possibilitando uma política de segurança mais detalhada. Isso inclui distinguir entre diferentes tipos de modos de usuário, permitindo que usuários de um mesmo grupo executem o código uns dos outros. Além disso, diferentes modos de kernel podem ser usados para funções específicas, como permitir a execução de drivers de dispositivos USB sem entrar no modo kernel completo, possibilitando a execução de drivers em um modo quase intermediário entre usuário e kernel.
Os timers podem ser usados para computar a hora corrente. Forneça uma breve descrição de como isso pode ser feito.
Um programa pode calcular a hora atual usando interrupções de temporizador definindo um cronômetro para o futuro, adormecendo e atualizando seu estado local ao ser despertado por interrupções. Esse processo de definir interrupções de temporizador e atualizar o estado local é repetido para acompanhar o tempo.
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?
Caches funcionam como buffers de velocidade intermediária entre componentes que transferem dados a diferentes velocidades. Eles evitam que o dispositivo mais rápido espere pelo mais lento ao armazenar dados. Manter a consistência dos dados entre o cache e os componentes é crucial, especialmente em sistemas multiprocessadores com vários processos acessando os mesmos dados. Um componente pode ser eliminado por um cache de tamanho igual, desde que ambos compartilhem a capacidade de retenção de estado de dados e o cache seja acessível, uma vez que armazenamento mais rápido costuma ser mais caro.
Qual a diferença entre os modelos cliente-servidor e entre pares dos sistemas distribuídos?
No modelo cliente-servidor, as funções de cliente e servidor são distintas, onde o cliente solicita serviços do servidor. Por outro lado, o modelo peer-to-peer é mais flexível, pois todos os nós no sistema são considerados pares e podem atuar como clientes, servidores ou ambos. No exemplo de um sistema de compartilhamento de receitas culinárias, no modelo cliente-servidor, todas as receitas são armazenadas no servidor, e os clientes solicitam receitas a ele. Em um sistema peer-to-peer, qualquer nó pode solicitar ou fornecer receitas a outros nós, pois todos podem desempenhar ambos os papéis de cliente e servidor.