Guia de Conceitos Fundamentais de Sistemas Operacionais
Classificado em Computação
Escrito em em
português com um tamanho de 8,74 KB
Capítulo 3: Interrupção e Execução
- Interrupção e execução: Durante a execução de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no seu fluxo de execução.
- Operações de E/S: Nos primeiros sistemas computacionais, a comunicação entre o processador e os periféricos era controlada por um conjunto de instruções especiais, denominadas instruções de entrada/saída, executadas pelo próprio processador. Essas instruções continham detalhes específicos de cada periférico.
- Buffering: Utilização de uma área da memória principal denominada buffer, para transferência de dados entre dispositivos de E/S e a memória principal.
- Spooling: Utiliza uma área em disco como um grande buffer. Dados podem ser lidos ou gravados em disco enquanto programas são executados.
- Reentrância: Capacidade de um código ser compartilhado por diversos usuários.
Capítulo 5: Processos e Contextos
- Contexto de hardware: Armazena o conteúdo dos registradores da CPU. Constitui-se do conteúdo de registradores. A troca de um processo por outro na CPU, pelo sistema operacional, é denominada mudança de contexto.
- Contexto de software: São especificadas características e limites dos recursos que podem ser alocados pelo processo, como o número máximo de arquivos abertos simultaneamente, prioridade, etc.
- Espaço de endereçamento: Área da memória pertencente ao processo onde as instruções e os dados do programa são armazenados para execução.
- Bloco de Controle do Processo (PCB): O sistema operacional mantém todas as informações sobre o contexto de hardware e software, e o espaço de endereçamento de cada processo. É a estrutura onde o SO guarda todas as informações do processo, contendo sua identificação, prioridade, estado corrente, recursos alocados por ele e informações sobre o programa em execução.
- CPU-bound: O processo passa a maior parte do tempo no estado de execução; realiza poucas operações de I/O.
- I/O-bound: O processo passa a maior parte do tempo no estado de espera. Encontrado em aplicações comerciais com bastante leitura, processamento e gravação.
- Estados do Processo:
- Execução (Running): Está sendo processado pela CPU.
- Pronto (Ready): Está pronto quando tem condições lógicas de executar e apenas aguarda para ser executado.
- Espera (Wait): Aguarda por algum evento externo ou algum recurso para prosseguir seu processamento; não tem condições lógicas de executar.
- Processo foreground: Permite comunicação direta do usuário com o processo durante o processamento.
- Processo background: Não existe comunicação com o usuário durante o processamento.
- Sinais: Mecanismos que permitem notificar os processos de eventos gerados pelo S.O. ou por outros processos.
Capítulo 7: Concorrência e Sincronização
- Concorrente: Aplicação estruturada para que partes diferentes do código do programa possam executar concorrentemente.
- Exclusão mútua: Impedir que dois ou mais processos acessem o mesmo recurso simultaneamente.
- Starvation: Um processo nunca consegue executar sua região crítica e, consequentemente, acessar o recurso compartilhado.
- Espera ocupada: Toda vez que um processo não consegue entrar em sua região crítica, por já existir outro processo acessando o recurso, o processo permanece em looping até que lhe seja permitido o acesso.
- Sincronização condicional: O acesso ao recurso compartilhado exige sincronização de processos vinculada a uma condição de acesso.
- Semáforo: Variável inteira, não negativa, que só pode ser manipulada por instruções down e up.
- Monitores: Mecanismo de sincronização de alto nível que torna mais simples o desenvolvimento de aplicações concorrentes.
- Deadlock: Situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que nunca ocorrerá.
Capítulo 8: Escalonamento de Processos
- Política de escalonamento: Composta por critérios estabelecidos para determinar qual processo em estado de pronto será escolhido para fazer uso do processador.
- Escalonador: Rotina do sistema que tem como principal função implementar os critérios da política de escalonamento.
- Dispatcher: Responsável pela troca dos processos após o escalonador determinar qual processo deve 'rodar'.
- Tempo de processador (Tempo de UCP): Tempo que o processo leva no estado de execução durante seu processamento.
- Tempo de espera: Tempo total que um processo permanece na fila de pronto.
- Tempo turnaround: Tempo que o processo leva desde sua criação até o término.
- Tempo de resposta: Tempo decorrido entre uma requisição ao sistema e o instante em que a resposta é exibida.
- Escalonamento preemptivo: O S.O. pode interromper um processo em execução e passá-lo para o estado de pronto.
- Escalonamento não preemptivo: Quando o processo está em execução, nenhum evento pode ocasionar a perda do uso do processador.
- Escalonamento FIFO: O processo que chegar primeiro ao estado de pronto é o selecionado para execução.
- Escalonamento circular: Projetado especialmente para sistemas de tempo compartilhado. Quando um processo passa para o estado de execução, existe um tempo limite para uso contínuo do processador, denominado fatia de tempo.
- Escalonamento SJF: Seleciona o processo que tiver o menor tempo de processador ainda por executar.
- Escalonamento por prioridades: Baseado em um valor associado a cada processo com prioridade de execução.
- Escalonamento adaptativo: O S.O. identifica o comportamento dos processos e adapta as políticas automaticamente.
Capítulo 4: Chamadas de Sistema
- System Call: Porta de entrada para o acesso ao núcleo de algum serviço do sistema; é realizada uma chamada a uma de suas rotinas através de uma system call.
Capítulo 6: Threads
- Thread: Fluxo de controle sequencial isolado dentro de um programa; permite que um programa possa executar várias tarefas diferentes ao mesmo tempo.
- Monothread: Sequência de instruções composta por desvios, repetições e chamadas a procedimentos e funções. Um processo suporta apenas um programa no seu espaço de endereçamento.
- Multithread: Um thread de execução pode compartilhar seu espaço de endereçamento com inúmeros threads.
Capítulo 9: Gerência de Memória
- Funções da gerência de memória: Maximizar o número de processos na memória, permitir a execução de programas maiores que a memória física, etc.
- Fragmentação interna: Ocorre em espaços livres e contínuos na memória principal que são pré-alocados para os processos.
- Fragmentação externa: Espaços livres e contínuos, porém tão pequenos que não possibilitam a alocação de programas por processos.
- Swapping: O sistema escolhe um processo residente, que é transferido da memória principal para a memória secundária.
Capítulo 10: Memória Virtual
- Mapeamento: Traduzir um endereço localizado no espaço virtual para um associado no espaço real.
- Thrashing: Excessiva transferência de páginas/segmentos entre a memória principal e a memória secundária.
- Página virtual: Conjunto de endereços virtuais que faz parte do espaço de endereçamento.
- Página real: Conjunto de endereços reais localizado na memória principal, sempre associada a uma página virtual.
- Bit de validade: Indica se a página ou segmento se encontra na memória principal.
- Page Fault: Quando um processo faz referência a uma página que não se encontra mapeada.