Fundamentos de Sistemas Operacionais: Conceitos Essenciais

Classificado em Computação

Escrito em em português com um tamanho de 12,26 KB

Fundamentos de Sistemas Operacionais

O que é um Sistema Operacional?

Um Sistema Operacional (SO) é um programa essencial para gerenciar os recursos do computador, provendo uma interface simplificada para o usuário manipular o hardware. Ele atua como intermediário entre o usuário e o hardware, além de servir como base para a execução de programas aplicativos.

Objetivo e Função do Sistema Operacional

A principal função do sistema operacional é permitir uma interface homem-máquina mais amigável, encapsulando as complexas rotinas de acesso a recursos de hardware, como interface de programação e gerenciamento de recursos. Tarefas simples, como salvar um pequeno texto, sem o sistema operacional, demandariam grande esforço e extenso conhecimento da arquitetura interna do computador. Esta pequena tarefa necessitaria das seguintes etapas simplificadas:

  1. Localizar os dados do arquivo na memória.
  2. Obter o nome do arquivo e local de gravação.
  3. Validar os dados do item 2.
  4. Posicionar o cabeçote de leitura e gravação no cilindro correto.
  5. Posicionar o cabeçote de leitura e gravação na trilha correta.
  6. Posicionar o cabeçote de leitura e gravação no setor correto.
  7. Salvar o arquivo.

O software responsável pelo gerenciamento dos recursos do hardware para o usuário, a fim de que os softwares aplicativos não tenham que interagir diretamente com os dispositivos periféricos, é definido como Sistema Operacional.

Sistemas Monoprogramáveis/Monotarefas

Os sistemas operacionais monoprogramáveis foram os primeiros a serem utilizados. Este tipo de sistema operacional tem a característica de permitir a execução de um único programa por vez.

Troca de Contexto

A troca de contexto é uma tarefa efetuada pelo Sistema Operacional na gerência de tarefas. Consiste em salvar informações de uma tarefa para que o processador possa ser entregue a outra, carregando seu contexto.

Chamadas de Sistema (System Calls) e Firmware

O Sistema Operacional (SO) é uma camada de software colocada sobre o hardware para gerenciar todos os componentes do sistema, apresentando-o ao usuário como uma interface simples de entender e de programar.

Os programas de aplicação solicitam serviços ao SO através da execução de chamadas de sistema. Os SOs oferecem Application Program Interfaces (APIs) para que os programadores usem funções para interagir com suas rotinas.

Firmware são programas ou instruções gravados no hardware da máquina que permitem a comunicação com outros dispositivos eletrônicos.

Para que o usuário ou alguma aplicação possa usufruir de algum serviço fornecido pelo Kernel, deve acessá-lo por meio de um mecanismo conhecido como System Calls. O System Calls é um intermediário entre as aplicações do usuário e o sistema operacional. Usuários ou aplicações acessam os serviços do Kernel chamando uma de suas rotinas através de uma System Call. O serviço é processado, com base nos parâmetros definidos na System Call, e retorna à aplicação os resultados obtidos.

Gerência do Processador e Escalonamento

A gerência do processador apresenta alguns critérios que devem ser considerados em uma política de escalonamento.

Tempo de Turnaround

O Tempo de Turnaround representa o tempo que decorre entre o instante em que um processo é criado e o seu término.

Funções do Kernel

As principais funções do Kernel são:

  • Tratamento de interrupções e exceções;
  • Criação e eliminação de processos e threads;
  • Sincronização e comunicação entre processos e threads;
  • Escalonamento e controle dos processos e threads;
  • Gerência de memória;
  • Gerência de sistema de arquivos;
  • Gerência de dispositivos de E/S;
  • Suporte a redes locais e distribuídas;
  • Contabilização do uso do sistema;
  • Auditoria e segurança do sistema.

Estados de um Processo

Os estados possíveis para um processo são:

  • Pronto: Este estado indica que o processo aguarda para ser executado. Como normalmente há vários processos em estado de Pronto, primeiramente o sistema operacional efetua um enfileiramento destes processos. Em seguida, utiliza um mecanismo denominado escalonamento com o objetivo de determinar a ordem e os critérios de uso do processador pelos processos.
  • Em Execução: Este estado indica que o processo está sendo executado pelo processador. A troca de um processo por outro na utilização do processador deve respeitar os critérios de escalonamento.
  • Em Espera: Este estado indica que o processo está aguardando por um evento externo ou ser atendida alguma chamada ao sistema operacional. Os processos neste estado são organizados em fila e, assim que o evento esperado ou o retorno da chamada ao sistema operacional acontece, o processo é transferido para o estado de pronto.

Ao longo de sua execução, um processo pode assumir os seguintes estados:

  • New: Processo foi criado (núcleo aloca entrada na tabela de processos).
  • Running/Executando: Instruções sendo executadas.
  • Waiting/Bloqueado: Processo aguarda por algum evento ou recurso para prosseguir.
  • Ready/Pronto: Processo aguarda por alocação do processador.
  • Terminated: Processo deu exit(), núcleo desaloca entrada.

Vantagens da Utilização de Processos

São grandes as vantagens da utilização de processos pelo sistema operacional, tais como:

  • Simplicidade: Um processo pode ser decomposto em vários outros processos, permitindo que se realizem várias operações independentes em um sistema.
  • Velocidade: Se um processo está em espera, por exemplo, aguardando alguma solicitação a um dispositivo de entrada e saída, este processo é substituído por outro.
  • Segurança: Cada processo pode estar associado a um determinado direito.

Classificação de Processos

Em geral, os processos podem ser classificados em três classes:

  • Interativos (Foreground): São processos que necessitam de algum tipo de interação com o usuário. Normalmente, esta interação é relativa a solicitações de entrada e saída, feitas através de interface gráfica, que exigem do sistema operacional um tempo de resposta rápido. Exemplo: editor de texto, planilhas eletrônicas, jogos, etc.
  • Batch (Background): São processos que realizam o processamento de dados de entrada, produzindo um conjunto de dados de saída sem que haja a intervenção do usuário. Exemplo: backups, compiladores, programas de cálculo numérico, etc.
  • Daemons: São processos carregados pelo sistema operacional durante sua inicialização e permanecem em execução até que o sistema seja finalizado. Processos Daemons ficam em espera em segundo plano até que seja requerido algum serviço. Exemplo: gerenciamento de log do sistema, serviços de e-mail, etc.

Processos Foreground e Background

Processos em foreground mantêm uma ligação direta com o usuário enquanto estão sendo processados. Esta ligação é feita através dos canais de comunicação associados ao teclado, mouse, monitor, etc.

Processos em background não têm ligação direta com o usuário enquanto estão sendo processados. Este tipo de processo é muito utilizado em processamentos do tipo batch.

Classificação de Processos por Uso de Recursos

Os processos podem ser classificados de acordo com vários critérios, entre eles, em função do modo como utilizam o processador e os dispositivos de entrada e saída:

  • Processo CPU-Bound: São processos que utilizam de modo muito intenso o processador durante o seu ciclo de vida. A maior parte do tempo, os estados destes processos são Pronto ou Em Execução.
  • Processo I/O-Bound: Este tipo de processo está mais ligado aos dispositivos de entrada/saída do que propriamente ao processador. O estado deste processo fica Em Espera durante grande parte do seu ciclo de vida devido aos longos tempos aguardando respostas das solicitações feitas aos dispositivos de entrada e saída.

Conceitos e Abstrações Fundamentais em Sistemas Operacionais

A maioria dos sistemas operacionais fornece certos conceitos e abstrações básicas:

  • Processo: É basicamente um programa em execução.
  • Hierarquia de Arquivos: Pode ser organizada em árvores, assim como os processos.
  • Chamadas de Sistema (System Calls): Fazem parte da interface entre o sistema operacional e os programas de usuários.
  • Memória Virtual: Confere a capacidade de executar programas maiores que a memória física da máquina, movendo peças entre a memória RAM e o disco.

Time-Sharing

O conceito utilizado pelo sistema operacional, quando o tempo de CPU é compartilhado para atender a muitos processos, é time-sharing.

Deadlock

Uma das causas de deadlocks em sistemas operacionais é a disputa por recursos do sistema que podem ser usados apenas por um processo de cada vez. Deadlock é a situação em que dois processos não conseguem mais ser executados, pois existe uma dependência entre eles.

Gerência de Memória e Swapping

Sobre gerência de memória em sistemas operacionais, Swapping é a técnica de gerenciamento de memória usada pelo sistema operacional para diminuir o tempo ocioso do processador, movendo alguns processos bloqueados da memória principal para a memória secundária.

Em um computador, quando o sistema de memória virtual está habilitado, a memória RAM é dividida em blocos chamados de páginas. Quando a memória RAM está toda ocupada e o Sistema Operacional ou algum software necessita de mais memória, para liberar espaço, o processador armazena o conteúdo de páginas de memória que não estão sendo usadas naquele exato momento no swap file.

A função dos computadores é executar processos, mas para que os processos sejam executados, eles devem estar na memória do computador. O gerenciamento da memória é uma das funções dos sistemas operacionais. Uma técnica empregada pelo sistema operacional para permitir que processos não carregados na memória principal sejam executados, a partir da emulação de uma memória significativamente maior, é o swapping.

Região Crítica e Sincronização

Uma vez identificada a região crítica, o próximo passo para a solução do problema é atender aos seguintes aspectos:

  • Exclusão Mútua: Garantir que apenas um processo por vez terá acesso à região crítica.
  • Progresso: Caso um processo deseje utilizar uma região crítica que não está em uso, outros processos não podem bloqueá-lo de utilizar a região crítica.
  • Espera Limitada: Caso um processo deseje utilizar uma região crítica, o mesmo não deve esperar indefinidamente para a utilização da região crítica.

Starvation

Starvation é a situação onde um processo nunca consegue ter acesso a um recurso compartilhado. A política nesta situação é garantir que todos os processos tenham o mesmo tempo de uso do processador.

Escalonamento FIFO

A vantagem do escalonamento FIFO é que é de fácil entendimento e implementação, além de que nunca acontecerá o fenômeno starvation, logo, todos os processos da fila de pronto serão executados. A desvantagem é com relação ao desempenho, o escalonamento FIFO tem grande sensibilidade à ordem de chegada dos processos para serem executados.

Entradas relacionadas: