Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
- Programadores não precisam entender cada detalhe para escrever código eficaz.
Modos de Operação:
- Modo núcleo (modo supervisor) é onde o sistema operacional opera, com acesso completo ao
hardware.
- Modo usuário é onde a maioria dos programas de usuário opera, com restrições de acesso a
instruções críticas.
Interação do Usuário:
- Shell (interpretador de comandos) ou GUI (interface gráfica do usuário) é a camada mais baixa do
software de usuário.
- Ele opera diretamente sobre o hardware e oferece suporte a todos os outros softwares.
- Sistemas operacionais como Windows e UNIX evoluem para novas versões, mantendo
compatibilidade.
- Mudar de sistema operacional é desafiador, levando a uma evolução gradual em vez de reescrita
completa.
- Os sistemas operacionais realizam duas funções principais: fornecer abstrações de recursos limpas
aos programadores de aplicativos e gerenciar esses recursos de hardware.
- Abstrações como arquivos permitem que os programas lidem com recursos complexos de forma
mais simples.
- Os sistemas operacionais são responsáveis por criar, implementar e gerenciar essas abstrações.
- Clientes reais dos sistemas operacionais são os programas aplicativos, que interagem com as
abstrações fornecidas pelas interfaces de usuário.
- Este livro se concentrará em estudar as abstrações fornecidas aos programas aplicativos, com
menos ênfase nas interfaces de usuário.
- Visão bottom-up: O sistema operacional é visto como um gerenciador de recursos que aloca e
controla o uso de processadores, memória e dispositivos de E/S entre programas.
- A alocação de recursos é crítica para evitar conflitos e caos quando vários programas ou usuários
competem por recursos compartilhados.
- A tarefa de determinar quem usa o recurso a seguir e por quanto tempo é responsabilidade do
sistema operacional.
- Impressora é outro exemplo de multiplexação no tempo, decidindo qual saída de impressão será
impressa em seguida.
- Múltiplos programas na memória simultaneamente são mais eficientes do que dar toda a memória
a um único programa.
- O disco também é um recurso multiplexado no espaço, onde vários usuários podem armazenar
seus arquivos em um único disco.
- Alocação de espaço em disco: O sistema operacional é responsável por alocar espaço de disco e
controlar o acesso aos blocos do disco por diferentes usuários.
- Os computadores pessoais modernos têm uma estrutura mais complexa, mas podem ser
abstraídos em um modelo básico com CPU, memória e dispositivos de E/S conectados por um
sistema de barramento.
Complexidade do hardware:
- Computadores modernos têm uma estrutura mais complexa do que o modelo básico, com
múltiplos barramentos e detalhes de organização.
Processador
- Cada CPU tem um conjunto específico de instruções que pode executar, e elas podem ser para
carregar, armazenar, combinar operações e muito mais.
- Além dos registradores gerais, existem registradores especiais como o contador de programa (PC),
o ponteiro de pilha e o Program Status Word (PSW).
- O PSW contém informações sobre o estado do programa, como códigos de condição, prioridade da
CPU, modo de execução etc.
- As CPUs modernas têm técnicas avançadas para melhorar o desempenho, como pipelines e CPUs
superescalares, que podem executar múltiplas instruções em paralelo.
- As CPUs têm modos de operação, núcleo e usuário, controlados por um bit no PSW. O modo núcleo
permite acesso total aos recursos do hardware, enquanto o modo usuário restringe o acesso a um
subconjunto de instruções e recursos.
- O sistema operacional também lida com exceções, como erros de divisão por zero ou underflow,
que podem ser ignoradas, tratadas ou causar o encerramento do programa.
- A lei de Moore observa que o número de transistores em um chip dobra a cada 18 meses devido ao
avanço na redução do tamanho dos transistores.
- Com o aumento no número de transistores, surge a questão de como aproveitar todos eles
eficientemente.
- O multithreading permite que a CPU mantenha o estado de dois threads diferentes e alternar entre
eles em nanossegundos.
- O multithreading não fornece paralelismo real, apenas permite que um processo de cada vez seja
executado, alternando rapidamente entre os threads.
- Chips multinúcleo possuem múltiplos núcleos independentes, permitindo que várias instruções
sejam executadas simultaneamente.
- GPUs (Graphics Processing Units) modernas possuem milhares de núcleos e são eficientes em
tarefas paralelas, mas são difíceis de programar e não são ideais para tarefas sequenciais.
Memoria
- Registradores internos à CPU são a camada de memória mais rápida, mas têm capacidade limitada.
- Memória principal, conhecida como RAM, é a próxima camada na hierarquia e é onde os dados não
presentes na cache são buscados.
- Memória não volátil, como ROM, EEPROM e memória flash, retém seu conteúdo mesmo após a
alimentação ser desligada e é usada para armazenar programas e dados persistentes.
- A memória CMOS, volátil, é frequentemente usada para armazenar informações como a hora, data
e configurações do sistema e é alimentada por uma pequena bateria.