Conceitos Fundamentais de Sistemas Operacionais
Classificado em Computação
Escrito em em
português com um tamanho de 5,48 KB
Deadlock
Ocorre quando dois ou mais processos bloqueiam uns aos outros permanentemente, pois cada um detém um recurso que o outro processo necessita. As quatro condições necessárias para a sua ocorrência são:
- Exclusão Mútua: Pelo menos um recurso deve ser mantido em modo não compartilhável, ou seja, apenas um processo pode usar o recurso de cada vez.
- Posse e Espera: Um processo, que já detém pelo menos um recurso, solicita novos recursos que estão alocados a outros processos e não libera os que já possui.
- Não Preempção: Um recurso não pode ser retirado de um processo que o detém; ele deve ser liberado voluntariamente pelo próprio processo.
- Espera Circular: Existe um conjunto de processos em espera, onde cada processo aguarda por um recurso que está sendo utilizado pelo próximo processo na cadeia.
Gerenciamento de Memória
Memória Principal
É onde o processador executa as instruções. É aconselhável que a memória seja suficiente para alocar todos os processos em execução.
Swapping
Técnica que permite que um processo seja temporariamente movido da memória principal para a memória secundária (disco), para que a memória principal possa ser utilizada por outros processos.
Swap In e Swap Out
São as operações da técnica de swapping: swap in é o ato de trazer um processo da memória secundária para a principal, e swap out é o ato de levar um processo da memória principal para a secundária.
Fragmentação da Memória
É um problema que ocorre quando os espaços de memória livres não são contíguos, dificultando a alocação de novos processos, mesmo que o total de memória livre seja suficiente.
Fragmentação Externa
Ocorre quando existem espaços de memória livres, mas são tão pequenos e não contíguos que não podem ser utilizados para alocar um novo processo.
Fragmentação Interna
Ocorre quando um processo é alocado em um bloco de memória maior do que o necessário, resultando em um desperdício de espaço dentro do próprio bloco alocado.
Alocação de Memória
Alocação Estática
O endereço de memória para um processo é definido no momento da compilação.
Alocação Dinâmica
O endereço de memória para um processo é definido durante a sua execução.
Alocação Contínua Simples
Consiste em organizar a memória principal em duas partes: uma para o sistema operacional e outra para os processos do usuário.
Desvantagens:
- Não permite a utilização eficiente do processador e da memória.
- Se um processo não utilizasse todo o espaço alocado, o restante se tornaria um espaço desperdiçado.
- Se um processo fosse maior que o espaço de memória disponível, ele não poderia ser executado.
Alocação Particionada Fixa
A memória é dividida em partições de tamanho fixo, e cada processo é alocado em uma partição que seja grande o suficiente para contê-lo.
Técnicas de Otimização
Overlay
Técnica que permite que um processo seja maior que a quantidade de memória alocada para ele, dividindo-o em módulos (overlays) que são carregados conforme a necessidade.
Cache
É uma memória menor e mais rápida que armazena cópias de dados de locais de memória principal usados com frequência, a fim de acelerar o acesso a esses dados.
Paginação
Técnica de gerenciamento de memória que permite que o espaço de endereçamento físico de um processo não seja contíguo. A memória é dividida em blocos de tamanho fixo chamados frames (quadros), e a memória lógica é dividida em blocos do mesmo tamanho chamados pages (páginas).
Gerenciamento de Entrada/Saída (I/O)
Devido à sua complexidade, o gerenciamento de I/O (Entrada/Saída) é frequentemente dividido em camadas, dependendo da existência de um controlador.
System Calls (Chamadas de Sistema) ou APIs
As operações de I/O são iniciadas através de system calls. Elas podem ser de dois tipos:
- Síncronas: O processo fica bloqueado até que a operação de I/O seja concluída.
- Assíncronas: O processo continua suas atividades enquanto aguarda um sinal de que a operação de I/O foi concluída.
Subsistemas de I/O
Componente do sistema operacional responsável por gerenciar os dispositivos de I/O, prover uma interface padronizada para os drivers e oferecer proteção no acesso aos dispositivos.
Componentes de I/O
Drivers
Software responsável por traduzir os comandos genéricos de I/O do sistema operacional em comandos específicos que o controlador de um dispositivo entende.
Controladores
Hardware que recebe as informações do driver e opera diretamente o dispositivo. É responsável por ações como a transferência de dados e o uso de interrupções (IRQs).
Métodos de Acesso a Arquivos
Acesso Sequencial
Os dados de um arquivo são processados em ordem, um registro após o outro. Novos registros são geralmente gravados no final do arquivo.
Acesso Indexado
Utiliza um índice para encontrar e acessar registros diretamente em um arquivo, sem a necessidade de ler o arquivo desde o início.