Please enable JavaScript.
Coggle requires JavaScript to display documents.
Capítulo 2 Estrutura de um SO - Coggle Diagram
Capítulo 2
Estrutura de um SO
2.1 Elementos do sistema operacional
Um sistema operacional é composto por vários componentes, cada um desempenhando funções específicas e interagindo entre si para garantir o funcionamento adequado do sistema como um todo.
Núcleo: O "coração" do sistema operacional é responsável por gerenciar os recursos utilizados pelo hardware.
Código de inicialização: Tem a função de testar e inicializar o hardware, reconhecendo dispositivos, configurando e carregando o núcleo do sistema operacional na memória.
Drivers: São pequenos programas responsáveis pela comunicação entre dispositivos, como dispositivos USB, discos rígidos SATA e placas gráficas, e o sistema operacional.
Programas Utilitários: São programas que tornam o uso do sistema operacional mais fácil, fornecendo funcionalidades como formatação de disco, terminal, configuração de dispositivos, gerenciador de tarefas e manipulação de arquivos.
2.2 Elementos de hardware
2.2.1 Arquitetura do computador
Na maioria dos computadores modernos, segue-se o modelo de Neumann, no qual o programa a ser executado é armazenado na memória junto com os dados
Processador: Lê e executa as instruções, realiza operações lógicas através da Unidade Lógica Aritmética (ULA) e envia os resultados processados.
MMU: "Unidade de gerenciamento de memória": encarregada de lidar com endereços de memória, validando-os e realizando conversões necessárias.
Cache: armazena dados temporariamente para acesso rápido pelo processador.
Memória: contém diversas informações acessíveis através de endereços específicos.
Controladores: contém diversas informações acessíveis através de endereços específicos.
Barramento de endereços: indica a posição de memória que será acessada.
Barramento de controle: indica a operação que será realizada.
Barramento de dados: transporta a informação que será transferida entre o processador, memória ou controlador de dispositivo.
2.2.2 Interrupções e exceções
Durante a execução dos programas, podem ocorrer eventos imprevistos, o que resulta no desvio do fluxo de execução do programa.
Interrupções: Eventos provocados por dispositivos externos ao processador podem provocar interrupções. Quando o processador recebe uma solicitação de interrupção, ele pausa o fluxo de execução atual e direciona para um fluxo pré-determinado. Após o processamento da interrupção, o processador retoma a execução do que estava sendo realizado anteriormente.
Exceções: Eventos provocados pelo próprio processador, como divisão por zero ou instruções inexistentes, levam à ativação de um tratamento específico.
2.2.3 Níveis de privilégio
O núcleo, os drivers, os utilitários e as aplicações interagem com o hardware, mas cada um possui níveis de permissão distintos para evitar danos significativos em caso de instabilidade.
Nível Núcleo: O processador disponibiliza todas as suas funcionalidades.
Nível usuário: As funcionalidades são limitadas, algumas instruções consideradas perigosas, como RESET (para resetar o processador) e IN/OUT (para acessar portas de entrada e saída), não são permitidas.
2.3 Chamadas de sistema
Com a garantia exercida pelo MMU sobre os acessos à memória, surge um novo problema: como invocar rotinas que apenas o núcleo oferece. Neste caso, temos as "chamadas de sistema", que solicitam serviços do núcleo do sistema. Essas chamadas de sistema podem ser agrupadas em conjuntos, tais como:
Gestão de processos: criar, carregar código, terminar, esperar, ler/mudar atributos.
Gestão da memória: alocar/liberar/modificar áreas de memória.
Gestão de arquivos: criar, remover, abrir, fechar, ler, escrever, ler/mudar
atributos.
Comunicação: criar/destruir canais de comunicação, receber/enviar dados.
Gestão de dispositivos: ler/mudar configurações, ler/escrever dados.
Gestão do sistema: ler/mudar data e hora, desligar/suspender/reiniciar o sistema.