O que é um Sistema Operacional e Suas Funções

Classificado em Computação

Escrito em em português com um tamanho de 10,47 KB

O sistema operacional é uma coleção de programas que:

  • inicializa o hardware do computador
  • fornece rotinas básicas para controle de dispositivos
  • fornece gerência, escalonamento e interação de tarefas
  • mantém a integridade do sistema

Há muitos tipos de sistemas operacionais, cuja complexidade varia e depende do tipo de funções que provê e para qual computador está sendo usado. Alguns sistemas são responsáveis pela gerência de muitos usuários, outros controlam dispositivos de hardware como bombas de petróleo.

Um sistema operacional muito simples para um sistema de controle de segurança poderia ser armazenado numa memória ROM (Só de Leitura - um chip que mantém instruções para um computador) e assumir o controle ao ser ligado o computador. Sua primeira tarefa seria reajustar (e provavelmente testar) os sensores de hardware e alarmes, e então ativar uma rotina monitorando ininterruptamente todos os sensores introduzidos. Se o estado de qualquer sensor de entrada for mudado, é ativada uma rotina de geração de alarme.

Em um grande computador multiusuário, com muitos terminais, o sistema operacional é muito mais complexo. Tem que administrar e executar todos os pedidos de usuários e assegurar que eles não interfiram entre si. Tem que compartilhar todos os dispositivos que são seriais por natureza (dispositivos que só podem ser usados por um usuário de cada vez, como impressoras e discos) entre todos os usuários que pedem esse tipo de serviço. O SO poderia ser armazenado em disco, e partes dele serem carregadas na memória do computador (RAM) quando necessário. Utilitários são fornecidos para:

  • Administração de Arquivos e Documentos criados por usuários
  • Desenvolvimento de Programas
  • Comunicação entre usuários e com outros computadores
  • Gerenciamento de pedidos de usuários para programas, espaço de armazenamento e prioridade

Adicionalmente, o SO precisaria apresentar a cada usuário uma interface que aceita, interpreta e então executa comandos ou programas do usuário. Essa interface é comumente chamada de SHELL (=cápsula, manteremos o nome original em inglês) ou interpretador de linha de comando (CLI). Em alguns sistemas ela poderia ser uma simples linha de texto que usa palavras-chave (como MSDOS ou UNIX); em outros sistemas poderiam ser gráficas, usando janelas e um dispositivo apontador como um mouse (como Windows 95 ou X-Windows).

As Várias Partes de um Sistema Operacional

Um sistema operacional de um computador que é usado por muitas pessoas ao mesmo tempo é um sistema complexo. Contém milhões de linhas de instruções escritas por programadores. Para tornar os sistemas operacionais mais fáceis de serem escritos, eles são construídos como uma série de módulos, cada módulo sendo responsável por uma função. Os módulos típicos em um grande SO multiusuário geralmente são:

  • Núcleo (Kernel em inglês - também conhecido como "executivo")
  • Gerenciador de processo
  • Escalonador (Scheduler, em inglês)
  • Gerenciador de arquivo

O Núcleo - Um Executivo em Tempo Real

O núcleo de um sistema operacional é algumas vezes chamado de EXECUTIVO em tempo real. Algumas das funções executadas por ele são:

  • chaveamento entre programas
  • controle e programação de dispositivo de hardware
  • gerenciamento de memória
  • gerenciamento de processos
  • escalonamento de tarefas
  • comunicação entre processos
  • processamento de exceções e de interrupção

Nosso sistema simples de monitoração de segurança não teria todas as funções acima, já que provavelmente seria um sistema mono-tarefa, executando apenas um programa. Como tal, não precisaria processar permutas entre mais de um programa ou permitir comunicação entre programas (comunicação entre processos). A gerência da memória seria desnecessária, já que o programa residiria permanentemente em ROM ou em EPROM (uma forma programável especial de ROM).

Um sistema operacional projetado para manusear um grande número de usuários precisaria de um núcleo para executar todas as funções acima. Programas de usuários geralmente são armazenados em disco, e precisam ser carregados em memória antes de serem executados. Isso apresenta a necessidade de gerência da memória, já que a memória do computador precisaria ser pesquisada para localizar uma área livre para carregar um programa de usuário. Quando o usuário tiver encerrado a execução do programa, a memória consumida por ele precisaria ser liberada e se tornaria disponível para outro usuário quando solicitado.

Gerenciamento e Escalonamento (Scheduling) de processos também são necessários, de forma que todos os programas possam ser executados de forma razoável. Não há como um programa de um usuário específico ser executado por um tempo excessivo, negando o funcionamento de qualquer outro programa e fazendo todos os outros usuários esperarem. Adicionalmente, alguns programas poderiam precisar ser executados mais frequentemente que outros, por exemplo, checando comunicações de rede ou imprimindo. Alguns programas podem precisar ser suspensos temporariamente e serem reiniciados depois, assim introduzindo a necessidade da comunicação interprocessos.

Sistemas operacionais são divididos em categorias que definem as suas características. Sistemas modernos podem usar combinações dessas categorias descritas a seguir.

BATCH (em LOTE)

O tipo mais antigo de SO permite apenas um programa ser executado de cada vez. O programa que é carregado no computador é executado completamente. Os dados usados pelo programa não podem ser modificados enquanto o programa está sendo executado. Qualquer erro no programa ou nos dados significa começar tudo novamente.

INTERATIVO

Esses sistemas permitem a modificação e entrada de dados ainda durante a execução do programa. Sistemas típicos são reservas de voo aéreo e linguagens como BASIC.

TIME-SHARING/MULTI-USUÁRIO

Esses SOs compartilham o computador entre mais de um usuário e adotam técnicas de escalonamento preemptivo.

MULTI-TAREFAS

Mais de um processo pode ser executado concorrentemente. O processador é escalonado rapidamente entre os processos. Um usuário pode ter mais de um processo executado de cada vez.

TEMPO REAL

Principalmente usados em controle de processos, telecomunicações, etc. O SO monitora várias entradas que afetam a execução de processos e reage a elas, afetando as saídas, dentro de um período de tempo garantido (normalmente < 1 segundo).

MULTI-PROCESSAMENTO

Um computador que tem mais de um processador central dedicado à execução de processos.

O Que é um Sistema Operacional?

Um sistema operacional é uma coleção de programas para gerenciar as funções do processador, o input, o output, o armazenamento e o controle dos dispositivos. O sistema operacional tem todos os comandos básicos que os aplicativos vão usar, em vez de ter todas estas funções reescritas para cada aplicativo.

Exemplo: para imprimir um arquivo, os processadores de texto mandam o arquivo para o programa "imprimir" do sistema operacional.

História de Alguns dos Sistemas Operacionais para Computadores Pessoais

1965 - O "Project MAC" desenvolve o sistema operacional Multics.

1970 - O Unix é desenvolvido nos Bell Labs por Dennis Ritchie e Kenneth Thomson.

1980 - A IBM seleciona PC-DOS da Microsoft como o sistema operacional para o IBM-PC.

1984 - A Apple introduz o Macintosh com o System 1.0, que seria chamado macOS eventualmente.

1985 - A Microsoft desenvolve o Windows 1.0, que adiciona características semelhantes ao macOS ao DOS (Mas o Windows ainda não era um sistema operacional completo como o macOS, apenas uma interface para o DOS.) Linus Torvalds, um estudante finlandês, desenvolve o Linux, uma versão do Unix para processadores Intel.

1990 - A Microsoft introduz o Windows 3.0, que intensifica o debate legal entre a Microsoft e a Apple em relação à semelhança do Windows com o macOS.

1994 - A Microsoft introduz o Windows NT, desenvolvido para redes.

1995 - Microsoft introduz o Windows 95, previamente conhecido como 'Chicago'.

1998 - Microsoft introduz o Windows 98.

2000 - Microsoft introduz o Windows 2000, combinando as características do Windows 98 e do Windows NT.

Sistemas operacionais mais recentes incluem Windows XP, Windows Vista e Linux.

Tipos de Interfaces para Usuários

  • Interface de linha de comando (command line interface).

    Usa comandos alfanuméricos simples para navegar entre discos e pastas, realizar funções como copiar, formatar, deletar, etc., e executar aplicativos.

    Exemplos: DOS, Unix e Linux.

  • Interface gráfica para usuários (Graphical User Interface ou GUI).

    Usam ícones, menus e janelas para acessar programas, discos e executar comandos do sistema.

    Alguns GUIs não são sistemas operacionais completos, mas sim extensões de um sistema operacional com uma interface de linha de comando. Exemplos deste tipo de relação: Windows 3.0 para DOS e X-Windows para Unix.

    Exemplos de sistemas operacionais com GUIs próprios: Windows 98/NT, macOS e OS/2 Warp.

Como um Sistema Operacional Funciona

Componentes funcionais dos sistemas operacionais:

  • Interpretador de Comandos: traduz comandos para instruções que o processador entende.
  • Gerenciador de Usuários: gerencia as tarefas de cada usuário separadamente.
  • Gerenciador de Tarefas: gerencia as operações de cada tarefa separadamente.
  • Gerenciador de Recursos: gerencia o uso de recursos de hardware entre usuários e tarefas em qualquer ponto do tempo.
  • Gerenciador de Arquivos: cria, deleta, move, renomeia arquivos e gerencia o acesso a eles.
  • Interface do Usuário: gerencia o acesso do usuário ao interpretador de comandos e ao gerenciador de arquivos.

Entradas relacionadas: