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.

Entradas relacionadas: