Chipset: Conjunto de chips conectado à placa-mãe que controla os dispositivos físicos, aceitando comandos do Sistema Operacional (SO).
Driver: Interface por meio da qual o controle dos dispositivos é realizado.
Manipulação de Controladores pelo Sistema Operacional
O Sistema Operacional manipula os controladores, carregando comandos especiais nos registradores das controladoras.
Sinais elétricos acionam os dispositivos.
Acesso Direto à Memória (DMA)
DMA (Acesso Direto à Memória): Permite a troca de dados entre a memória e os dispositivos físicos sem a intervenção do processador.
Arquiteturas de Conjunto de Instruções
RISC (Reduced Instruction Set Computer): Possui poucas instruções de máquina que são executadas diretamente pelo hardware.
CISC (Complex Instruction Set Computer): Possui instruções complexas que são executadas por microprogramas. Para cada instrução, existe um microprograma associado.
Ferramentas de Desenvolvimento e Execução
Interpretador
Não gera módulo-objeto.
Traduz cada comando e o executa.
Desvantagem: Tempo na tradução.
Vantagem: Suporte a dados dinâmicos.
Linker (ou Editor de Ligações)
Linker (ou Editor de Ligações): Junta os módulos-objeto e bibliotecas em um programa executável, resolvendo todas as referências simbólicas existentes entre os módulos.
Loader (Carregador)
Loader (Carregador): Carrega um programa na memória principal para ser executado.
Loader Absoluto: Carrega o programa em uma posição fixa na memória.
Loader Relocável: Permite que o programa seja carregado em qualquer posição da memória.
Depurador
Depurador: Permite acompanhar a execução de um programa e detectar erros.
Funcionalidades comuns:
Visualização e alteração de variáveis.
Breakpoints (pontos de interrupção).
Watchpoints (pontos de observação).
Sistema Operacional: Interação e Gerenciamento
Interpretador de Comandos (Shell)
O Interpretador de Comandos, também conhecido como Shell, permite ao usuário interagir com o sistema operacional.
Concorrência e Multiprogramação
A concorrência entre os processos é o princípio básico da multiprogramação nos Sistemas Operacionais.
A concorrência deve permitir que o processo interrompido retorne ao seu estado original após o período de interrupção.
Interrupções e Exceções
Para tratar uma interrupção, existe um vetor com o endereço do início de cada rotina de tratamento.
As interrupções podem ocorrer a qualquer momento, inclusive durante o tratamento de outra interrupção.
Uma exceção é semelhante a uma interrupção, sendo a principal diferença o motivo do disparo. A exceção é o resultado da execução de uma instrução do programa, como divisão por zero ou overflow.
Funções Essenciais do Kernel
Tratamento de interrupções e exceções.
Criação e eliminação de processos e threads.
Escalonamento e controle dos processos e threads.
Gerenciamento de Processos e Threads
System Calls (Chamadas de Sistema)
System Calls podem ser entendidas como portas de acesso ao núcleo do sistema operacional e seus serviços, que usuários ou aplicações utilizam para chamar suas rotinas.
Processos
Um processo é um conjunto de instruções sendo executadas, em conjunto com informações como os valores correntes do contador de programas, seus registradores e variáveis.
Um processo possui o contexto de software, de hardware e o espaço de armazenamento.
Identificação (PID): Cada processo recebe uma identificação única, o PID (Process Identification), representado por um número.
Quotas: São os limites de recursos que o processo pode alocar.
Threads
Uma thread pode ser definida como uma sub-rotina que pode ser executada paralelamente ao programa chamador.
Um processo pode ter diversas partes de seu código sendo executadas em paralelo por meio de threads.