1. Início
  2. Explorar
  3. Informática
  4. Sistemas Operacionais

Sistemas Operacionais – Informática | Tuco-Tuco

Definição, funções e principais sistemas operacionais utilizados atualmente.

Sistemas Operacionais Definição e Propósito de um Sistema Operacional Um sistema operacional (SO) é um conjunto de programas e rotinas que atua como uma camada de abstração entre o hardware do computador e os softwares aplicativos (aplicações) e o usuário. Ele é o software mais fundamental de um dispositivo computacional, sendo responsável por gerenciar os recursos de hardware, fornecer serviços essenciais para os programas, garantir a segurança e a estabilidade do sistema, além de oferecer uma interface para interação humana. Sem um sistema operacional, cada programa precisaria conhecer diretamente os detalhes de baixo nível do hardware (endereços de memória, registradores de dispositivos, interrupções), o que tornaria o desenvolvimento de software impraticável. O SO abstrai essas complexidades, oferecendo uma interface padronizada (chamadas de sistema – system calls). Exemplos de sistemas operacionais amplamente utilizados incluem Microsoft Windows, Linux (em suas diversas distribuições), macOS, Android e iOS. Funções Essenciais de um Sistema Operacional 2.1. Gerenciamento de Processos Um processo é um programa em execução, que inclui o código executável, seus dados, pilha, registradores e contador de programa. O SO gerencia a criação, escalonamento, suspensão, retomada e término dos processos. As principais atividades são: Escalonamento (scheduling): Decide qual processo será executado pela CPU em cada momento, utilizando algoritmos como Round Robin, Prioridades, Shortest Job First, entre outros. O objetivo é maximizar a utilização da CPU, garantir tempo de resposta aceitável e evitar starvation (espera indefinida). Comunicação entre processos (IPC – Inter-Process Communication): Fornece mecanismos como pipes, filas de mensagens, memória compartilhada e semáforos para que processos possam trocar dados e sincronizar suas execuções. Criação e término: Chamadas de sistema como (Unix/Linux) ou (Windows) criam novos processos. O SO também é responsável por liberar os recursos quando um processo termina. 2.2. Gerenciamento de Memória A memória RAM é um recurso finito e compartilhado. O SO deve alocar espaço para cada processo, proteger a memória de acessos indevidos (um processo não pode ler ou escrever na área de outro) e otimizar o uso da memória física. As técnicas incluem: Partições fixas ou variáveis: Dividir a memória em blocos (partições) para alocar processos inteiros. Hoje em dia, obsoleto. Paginacão (paging): Divide a memória física e o espaço de endereço de cada processo em blocos de tamanho fixo chamados páginas (ex.: 4 KB). Uma tabela de páginas mapeia páginas virtuais para quadros físicos. Permite que um processo tenha espaço de endereço maior que a memória física, usando memória virtual. Memória virtual: Utiliza o disco rígido (ou SSD) como extensão da RAM. Quando a RAM está cheia, páginas menos usadas são movidas para um arquivo de troca (swap file ou pagefile). Isso permite executar programas maiores do que a memória física disponível, mas com penalidade de desempenho. Proteção de memória: A CPU, em conjunto com o SO, impede que um processo acesse áreas de memória que não lhe pertencem, gerando uma exceção (violação de segmentação ou segmentation fault). 2.3. Gerenciamento de Dispositivos de Entrada e Saída (E/S) O SO atua como intermediário entre os programas e os dispositivos de hardware (teclado, mouse, monitor, discos, impressoras, placas de rede). As principais responsabilidades são: Drivers: Software específico para cada dispositivo que traduz comandos genéricos do SO em instruções compreensíveis pelo hardware. Bufferização: Armazena temporariamente dados em trânsito entre dispositivo e memória, para acomodar diferenças de velocidade. Spooling: Sobreposição de operações de E/S com processamento, comum em impressoras (o spooler enfileira trabalhos). Gerenciamento de interrupções: Quando um dispositivo completa uma operação, envia um sinal de interrupção à CPU. O SO interrompe o processo em execução, atende o dispositivo e depois retoma o processo. 2.4. Gerenciamento de Arquivos O SO fornece um sistema de arquivos (file system) para organizar, armazenar, recuperar e proteger dados em dispositivos de armazenamento persistente (HD, SSD). Funções: Estrutura hierárquica: Diretórios (pastas) e subdiretórios, com nomes de arquivos. Operações: Criar, ler, escrever, apagar, renomear, copiar, mover, alterar permissões. Controle de acesso: Permissões de leitura, escrita, execução por usuário, grupo e outros (ex.: em Unix/Linux). Gerenciamento de espaço livre: Mantém listas ou mapas de bits de blocos não utilizados. Journaling (em sistemas modernos): Registra operações pendentes para recuperação após queda de energia ou travamento. 2.5. Segurança e Proteção O SO deve garantir que recursos (memória, arquivos, dispositivos) sejam acessados apenas por processos autorizados. Mecanismos incluem: Autenticação de usuários: Login com nome de usuário e senha (ou biometria, cartão inteligente). Controle de acesso discricionário (DAC): Proprietário de um recurso decide permissões. Controle de acesso obrigatório (MAC): Políticas globais definidas pelo sistema (ex.: SELinux no Linux). Auditoria: Registro de eventos de segurança (logins, acessos a arquivos sensíveis). Isolamento de processos: Cada processo executa em seu próprio espaço de endereço, não podendo acessar a memória de outros. 2.6. Interface com o Usuário O SO fornece meios de interação: CLI (Command-Line Interface): Linha de comando (bash, PowerShell, cmd). O usuário digita comandos textualmente. GUI (Graphical User Interface): Ambiente gráfico com janelas, ícones, menus, ponteiro (Windows Explorer, GNOME, macOS Finder). Interface touch (mobile): Gestos, toques, teclado virtual (Android, iOS). Classificação dos Sistemas Operacionais 3.1. Quanto ao Número de Usuários Monousuário: Projetado para ser usado por uma pessoa por vez. Ex.: MS-DOS, Windows 9x (embora tivesse rede, o foco era um usuário por console). Multiusuário: Permite que vários usuários acessem o sistema simultaneamente, cada um com sua própria sessão e recursos isolados. Ex.: Linux, Unix, Windows Server (com Terminal Services), macOS. 3.2. Quanto ao Número de Tarefas Monotarefa: Executa apenas um programa por vez. O usuário deve encerrar um programa para iniciar outro. Ex.: MS-DOS, sistemas embarcados muito simples. Multitarefa (multiprogramação): Executa vários programas aparentemente ao mesmo tempo, alternando rapidamente a CPU entre eles (multitarefa preemptiva ou cooperativa). Todos os sistemas operacionais modernos são multitarefa. 3.3. Quanto ao Tipo de Interface CLI: Interface textual. Ex.: Linux sem ambiente gráfico, Windows PowerShell. GUI: Interface gráfica. Ex.: Windows 11, macOS, Ubuntu com GNOME. 3.4. Quanto ao Propósito e Ambiente Sistemas de propósito geral: Windows, Linux, macOS – para desktops, laptops, servidores. Sistemas embarcados (RTOS – Real-Time Operating System): Pequenos sistemas dedicados com requisitos de tempo real (ex.: FreeRTOS, VxWorks). Usados em automóveis, eletrodomésticos, equipamentos médicos. Sistemas móveis: Android (baseado em Linux), iOS (baseado em Darwin/Unix), Windows Phone (descontinuado). Sistemas distribuídos: Gerenciam recursos de múltiplas máquinas como se fossem um único sistema (ex.: Plan 9, alguns clusters). Exemplos de Sistemas Operacionais e suas Características 4.1. Microsoft Windows Família: Windows NT (Windows 2000, XP, Vista, 7, 8, 10, 11, Windows Server). Núcleo: Híbrido (combina características de microkernel e monolítico). Sistema de arquivos padrão: NTFS (New Technology File System), com suporte a permissões, journaling, criptografia (EFS), compactação, quotas. Interface: GUI (Windows Explorer) e CLI (PowerShell, Prompt de Comando). Mercado: Dominante em desktops e laptops, forte em servidores (Windows Server) e em ambientes corporativos com Active Directory. Multiusuário: Sim, mas tipicamente usado como monousuário em desktops. 4.2. Linux Núcleo: Monolítico (com módulos carregáveis). Distribuições: Ubuntu, Debian, Fedora, Red Hat Enterprise Linux (RHEL), CentOS, Arch, SUSE, entre centenas. Sistema de arquivos padrão: ext4 (extended file system), também suporta XFS, Btrfs, ZFS. Interface: Ampla variedade (GNOME, KDE Plasma, Xfce, LXQt para GUI; bash, zsh para CLI). Características: Código aberto (GPL), altamente personalizável, segurança robusta, excelente para servidores e desenvolvimento. Multiusuário e multitarefa: Sim, desde o início. 4.3. macOS Núcleo: XNU (híbrido), baseado no NeXTSTEP e no Mach. A camada de espaço do usuário deriva do Darwin (Unix). Sistema de arquivos: APFS (Apple File System) – otimizado para SSDs, com snapshots, clonagem, criptografia nativa. Interface: Aqua GUI, integração com ecossistema Apple (iCloud, Continuidade). Características: Design refinado, baixa fragmentação de hardware (roda apenas em Macs), boa segurança. Base Unix: Certificado como Unix (SUS – Single UNIX Specification). 4.4. Android Núcleo: Linux (modificado). Máquina virtual: ART (Android Runtime) – executa código bytecode (DEX). Interface: Touchscreen, personalizável por fabricantes (Samsung One UI, MIUI, etc.). Características: Código aberto (AOSP – Android Open Source Project), mas com serviços Google proprietários na maioria dos dispositivos. Domina o mercado de smartphones. 4.5. iOS Núcleo: XNU (mesmo do macOS). Camada de aplicação: UIKit, SwiftUI. Características: Fechado, com rígido controle da Apple (App Store). Foco em segurança e desempenho. Conceitos Avançados e Modos de Operação 5.1. Modo Kernel e Modo Usuário A CPU suporta dois modos de execução (ou mais) para proteger o sistema: Modo kernel (privilegiado): O SO executa com acesso total ao hardware (instruções privilegiadas, acesso a toda memória, controle de interrupções). Nenhum programa de usuário roda nesse modo. Modo usuário (não privilegiado): Aplicações rodam com restrições. Se tentam executar instruções privilegiadas, ocorre uma exceção (trap) e o SO assume o controle. As chamadas de sistema são a ponte: o programa de usuário faz uma chamada (ex.: ), que dispara uma interrupção ou instrução especial (), mudando para modo kernel, o SO executa a operação e retorna ao modo usuário. 5.2. Interrupções e Exceções Interrupções de hardware: Geradas por dispositivos (teclado, temporizador, disco) para sinalizar eventos. Exceções (traps): Geradas pela CPU quando ocorre erro (divisão por zero, page fault) ou uma chamada de sistema. O SO possui uma tabela de vetores de interrupção que direciona o fluxo para o manipulador apropriado. 5.3. Processos vs. Threads Processo: Contém uma imagem de memória (código, dados, pilha), recursos (arquivos abertos) e pelo menos uma thread. Thread (linha de execução): Unidade de escalonamento dentro de um processo. Threads do mesmo processo compartilham o espaço de endereço e recursos, mas têm sua própria pilha e registradores. A troca entre threads é mais rápida que entre processos. 5.4. Boot (Inicialização do Sistema) Sequência típica em PCs: UEFI/BIOS: Executa o POST (Power-On Self-Test) e carrega o bootloader do dispositivo configurado. Bootloader (ex.: GRUB, Windows Boot Manager): Carrega o núcleo do SO e o initramfs (sistema de arquivos inicial) para memória. Kernel: Inicializa drivers, monta o sistema de arquivos raiz, cria o primeiro processo (init no Linux, , ou no Windows). Serviços de usuário: São iniciados (daemons em Linux, serviços do Windows). O sistema exibe a tela de login. Exemplo Prático: Gerenciamento de Processos e Memória Considere um usuário que abre um navegador web (Google Chrome) e um editor de texto (Microsoft Word) simultaneamente em um computador com 8 GB de RAM. O SO (Windows, Linux ou macOS) cria um processo para cada aplicação. Cada processo tem seu próprio espaço de endereço virtual (ex.: 4 GB no Windows de 64 bits, mas apenas uma parte mapeada na RAM física). O escalonador da CPU alterna entre as threads do Chrome e do Word, dando a impressão de execução simultânea (multitarefa preemptiva). Se o usuário minimiza o Word, o SO pode mover páginas da memória do Word para o arquivo de paginação (swap), liberando RAM para o Chrome. Quando o Word é restaurado, ocorre uma page fault – o SO carrega as páginas do disco de volta para a RAM. Quadro Comparativo: Monotarefa vs. Multitarefa | Característica | Monotarefa | Multitarefa | |----------------|------------|--------------| | Execução concorrente | Não | Sim (aparente ou real em multiprocessador) | | Exemplos | MS-DOS, sistemas embarcados simples | Windows, Linux, macOS | | Uso de CPU | Menos eficiente (períodos ociosos) | Mais eficiente | | Complexidade | Baixa | Alta (escalonamento, sincronização) | Quadro Comparativo: CLI vs. GUI | Característica | CLI | GUI | |----------------|-----|-----| | Curva de aprendizado | Íngreme (comandos, sintaxe) | Suave (intuitivo, ícones) | | Eficiência para tarefas repetitivas | Alta (scripts, automação) | Baixa (cliques manuais) | | Uso de recursos | Muito baixo | Alto (gráficos, memória) | | Acessibilidade | Ferramentas como leitores de tela podem ser menos intuitivas | Melhor para pessoas com deficiência visual (quando bem implementada) | | Exemplos | Bash, PowerShell, Cmd | Windows Explorer, GNOME, Finder | Considerações Finais Os sistemas operacionais são a espinha dorsal de qualquer dispositivo computacional. Para concursos e vestibulares, é essencial dominar as funções de gerenciamento (processos, memória, arquivos, dispositivos, segurança), conhecer as diferenças entre os principais SOs (Windows, Linux, macOS, Android, iOS) e entender conceitos como modo kernel vs. usuário, multitarefa, memória virtual e sistemas de arquivos. Questões podem cobrar também classificação (monousuário/multiusuário, monotarefa/multitarefa) e identificação de exemplos. O estudo prático (instalação e uso de diferentes SOs) consolida o aprendizado teórico.