Noções básicas de computadores - Funções do sistema operacional

Como você sabe, o sistema operacional é responsável pelo funcionamento do sistema do computador. Para isso, realiza essas três grandes categorias de atividades -

  • Essential functions - Garante a utilização ótima e eficaz dos recursos

  • Monitoring functions - Monitora e coleta informações relacionadas ao desempenho do sistema

  • Service functions - Oferece serviços aos usuários

Vejamos algumas das funções mais importantes associadas a essas atividades.

Gerenciamento de processador

O gerenciamento da CPU de um computador para garantir sua utilização ideal é denominado processor management. O gerenciamento do processador envolve basicamente a alocação do tempo do processador para as tarefas que precisam ser concluídas. Isso é chamadojob scheduling. Os trabalhos devem ser programados de forma que -

  • Há utilização máxima da CPU
  • O tempo de resposta, ou seja, o tempo necessário para concluir cada trabalho, é mínimo
  • O tempo de espera é mínimo
  • Cada trabalho obtém o tempo de resposta mais rápido possível
  • O rendimento máximo é alcançado, onde o rendimento é o tempo médio gasto para completar cada tarefa

Existem dois métodos de agendamento de trabalho feito por sistemas operacionais -

  • Agendamento preventivo
  • Programação não preemptiva

Agendamento preventivo

Nesse tipo de agendamento, o próximo trabalho a ser feito pelo processador pode ser agendado antes que o trabalho atual seja concluído. Se surgir um trabalho de prioridade mais alta, o processador pode ser forçado a liberar o trabalho atual e assumir o próximo trabalho. Existem duas técnicas de agendamento que usam agendamento preventivo -

  • Round robin scheduling - Uma pequena unidade de tempo chamada time sliceé definido e cada programa obtém apenas um intervalo de tempo de cada vez. Se não for concluído durante esse tempo, ele deve entrar na fila de trabalhos no final e esperar até que todos os programas tenham obtido uma fração de tempo. A vantagem aqui é que todos os programas têm oportunidades iguais. A desvantagem é que, se um programa conclui a execução antes que a fração de tempo termine, a CPU fica ociosa pelo resto da duração.

  • Response ratio scheduling - A taxa de resposta é definida como

    $$ \ frac {Decorrido \: Tempo} {Execução \: tempo \: recebido} $$

    Um trabalho com menor tempo de resposta recebe maior prioridade. Portanto, um programa maior pode ter que esperar, mesmo que tenha sido solicitado antes do programa mais curto. Isso melhora o rendimento da CPU.

Programação não preemptiva

Nesse tipo de agendamento, as decisões de agendamento de trabalho são tomadas somente após a conclusão do trabalho atual. Um trabalho nunca é interrompido para dar precedência a trabalhos de prioridade mais alta. As técnicas de programação que usam programação não preemptiva são -

  • First come first serve scheduling - Essa é a técnica mais simples em que o primeiro programa a gerar uma solicitação é concluído primeiro.

  • Shortest job next scheduling - Aqui, o trabalho que precisa de menos tempo para execução é agendado a seguir.

  • Deadline scheduling - O trabalho com o prazo mais próximo é agendado para execução em seguida.

Gestão de Memória

O processo de regular a memória do computador e usar técnicas de otimização para melhorar o desempenho geral do sistema é chamado memory management. O espaço de memória é muito importante no ambiente de computação moderno, portanto, o gerenciamento de memória é uma função importante dos sistemas operacionais.

Como você sabe, os computadores têm dois tipos de memória - primary e secondary. A memória primária éfast but expensive e a memória secundária é cheap but slower. O sistema operacional precisa encontrar um equilíbrio entre os dois para garantir que o desempenho do sistema não seja prejudicado devido a muito menos memória primária ou os custos do sistema não aumentem devido ao excesso de memória primária.

Dados de entrada e saída, instruções do usuário e dados provisórios para a execução do programa precisam ser armazenados, acessados ​​e recuperados de forma eficiente para alto desempenho do sistema. Depois que uma solicitação de programa é aceita, o sistema operacional aloca suas áreas de armazenamento primário e secundário conforme a necessidade. Depois que a execução é concluída, o espaço de memória alocado para ela é liberado. O sistema operacional usa muitas técnicas de gerenciamento de armazenamento para manter um controle de todos os espaços de armazenamento alocados ou gratuitos.

Alocação de armazenamento contíguo

Esta é a técnica de alocação de espaço de armazenamento mais simples, em que localizações contíguas de memória são atribuídas a cada programa. O SO deve estimar a quantidade de memória necessária para o processo completo antes da alocação.

Alocação de armazenamento não contígua

Como o nome sugere, o programa e os dados associados não precisam ser armazenados em locais contíguos. O programa é dividido em componentes menores e cada componente é armazenado em um local separado. Uma tabela mantém um registro de onde cada componente do programa está armazenado. Quando o processador precisa acessar qualquer componente, o sistema operacional fornece acesso usando esta tabela de alocação.

Em um cenário da vida real, o espaço da memória primária pode não ser suficiente para armazenar todo o programa. Nesse caso, o sistema operacional tem a ajuda deVirtual Storagetécnica, onde o programa é fisicamente armazenado na memória secundária, mas parece estar armazenado na memória primária. Isso introduz um lapso de tempo minúsculo no acesso aos componentes do programa. Existem duas abordagens para armazenamentos virtuais -

  • Program paging - Um programa é dividido em tamanho fixo pagee armazenados na memória secundária. As páginas são dadaslogical address or virtual addressde 0 a n. UMApage table mapeia os endereços lógicos para os endereços físicos, que são usados ​​para recuperar as páginas quando necessário.

  • Program segmentation - Um programa é dividido em unidades lógicas chamadas segments, endereço lógico atribuído de 0 an e armazenado na memória secundária. UMAsegment table é usado para carregar segmentos da memória secundária para a memória primária.

Os sistemas operacionais normalmente usam uma combinação de segmentação de página e programa para otimizar o uso de memória. Um grande segmento de programa pode ser dividido em páginas ou mais de um pequeno segmento pode ser armazenado como uma única página.

Gerenciamento de arquivos

Dados e informações são armazenados em computadores na forma de arquivos. Gerenciar o sistema de arquivos para permitir que os usuários mantenham seus dados com segurança e corretamente é uma função importante dos sistemas operacionais. O gerenciamento de sistemas de arquivos por sistema operacional é denominadofile management. O gerenciamento de arquivos é necessário para fornecer ferramentas para essas atividades relacionadas a arquivos -

  • Criação de novos arquivos para armazenamento de dados
  • Updating
  • Sharing
  • Proteção de dados por meio de senhas e criptografia
  • Recuperação em caso de falha do sistema

Gerenciamento de dispositivo

O processo de implementação, operação e manutenção de um dispositivo por sistema operacional é denominado device management. O sistema operacional usa um software utilitário chamadodevice driver como interface para o dispositivo.

Quando muitos processos acessam os dispositivos ou solicitam acesso aos dispositivos, o SO gerencia os dispositivos de uma forma que os compartilha de forma eficiente entre todos os processos. Processa dispositivos de acesso através desystem call interface, uma interface de programação fornecida pelo sistema operacional.