Resumo de Conceitos-chave de Sistemas Operacionais
Conceitos Fundamentais de Sistemas Operacionais: Guia Completa para Estudantes
Introdução
Sistemas operacionais gerenciam recursos e executam programas, transformando-os em entidades chamadas processos e threads. Este material explica o que é um processo, como seu ciclo de vida é gerenciado, as principais diferenças entre processos e threads, escalonamento e sincronização básica, além de conceitos associados a entrada/saída e tempo real.
Definição: Um processo é uma abstração de um programa em execução que inclui seu espaço de endereçamento, registradores do processador, contador de programa, pilha e recursos alocados.
1. O que é um processo? — Elementos e estrutura
- Um processo contém:
- Código (segmento de texto)
- Dados (segmento de dados)
- Pilha (stack) para chamadas e variáveis locais
- Heap (heap) para memória dinâmica
- Registradores da CPU, incluindo o contador de programa
- Recursos do sistema (arquivos abertos, descritores)
Definição: A imagem de usuário de um processo integra o segmento de texto, o segmento de dados, a pilha e o heap.
1.1 Bloco de Controle de Processo (PCB)
- O núcleo armazena as informações do processo em seu PCB.
- O PCB contém o estado do processo, registradores, informações de escalonamento e recursos alocados.
2. Ciclo de vida de um processo
- Estados essenciais (modelo básico):
- Em execução (Running): ocupa a CPU.
- Pronto (Ready): pode ser executado, mas aguarda a CPU.
- Bloqueado (Blocked): aguarda um evento externo (por exemplo, E/S).
Definição: Troca de contexto (context switch) ocorre quando o SO suspende o processo ativo, salva seu estado no PCB e carrega o estado de outro processo.
2.1 Troca de contexto
- Ocorre em transições entre processos devido a interrupções, fim do quantum de tempo, chamadas de sistema ou eventos de E/S.
- O sistema salva e restaura registradores e o contador de programa.
3. Processos vs Threads
- Tabela comparativa:
| Característica | Processo | Thread |
|---|---|---|
| Espaço de endereçamento | Isolado, próprio | Compartilhado com threads do mesmo processo |
| Contador de programa | Próprio | Próprio |
| Pilha | Própria | Própria |
| Registradores da CPU | Conjunto próprio | Conjunto próprio |
| Arquivos abertos | Copiados/próprios | Compartilhados |
| Comunicação entre entidades | Mais custosa (IPC) | Mais econômica (memória compartilhada) |
Definição: Uma thread é uma unidade de execução dentro de um processo que possui seu próprio contador de programa, pilha e registradores, mas compartilha o espaço de endereçamento e recursos globais.
3.1 Características práticas de threads
- Menor sobrecarga ao criar e trocar de contexto entre threads do que entre processos.
- Uso típico: tarefas ligadas que exigem acesso direto à mesma memória (por exemplo, um servidor multithread que atende conexões).
Curiosidade: Em muitos sistemas modernos, o uso adequado de threads melhora a capacidade de resposta de aplicações de usuário e servidores sem duplicar grandes blocos de memória.
4. Escalonamento de Processos
4.1 Agente Decisor
- O escalonador (Scheduler) decide qual processo pronto ocupará a CPU.
4.2 Escalonamento Preemptivo vs Não Preemptivo
- Preemptivo (preemptive): o SO pode interromper um processo em execução para alocar a CPU a outro processo.
- Não Preemptivo (non-preemptive): um processo retém a CPU até que ele se bloqueie ou termine.
4.3 Round Robin (RR)
- Algoritmo preemptivo típico de sistemas de tempo compartilhado.
- Aloca um quanto de tempo (quantum) fixo e alterna entre processos prontos.
- Métrica central: tamanho do quantum e tempo de resposta médio.
Definição: Round Robin é um algoritmo preemptivo que concede a cada processo uma fatia de tempo chamada quanto de tempo.
4.4 Inanição (Starvation)
- Definição: situação em que um processo pronto é postergado indefinidamente porque o escalonador favorece continuamente outros processos.
5. Sincronização e exclusão mútua (visão geral)
ATENÇÃO: O detalhe ap
Já tem uma conta? Entrar
Processos e Threads - Resumo
Klíčové pojmy: Um processo é um programa em execução com seu espaço de endereçamento e PCB., O PCB armazena o estado e os registradores de um processo que não está em execução., Estados básicos: Running, Ready, Blocked., Troca de contexto salva o estado do processo e carrega outro a partir de seu PCB., Threads compartilham espaço de endereçamento, mas possuem contador de programa, pilha e registradores próprios., Round Robin usa um quantum fixo e é preemptivo., fork() cria um processo filho idêntico ao pai em sistemas UNIX., E/S assíncrona retorna o controle imediatamente e necessita de notificação posterior., Monitores agrupam dados e procedimentos garantindo exclusão mútua., Deadlock: processos em ciclo de espera por recursos mútuos.