Resumo de Conceitos-chave de Sistemas Operacionais

Conceitos Fundamentais de Sistemas Operacionais: Guia Completa para Estudantes

ResumoTeste de conhecimentoFlashcardsPodcastMapa mental

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):
    1. Em execução (Running): ocupa a CPU.
    2. Pronto (Ready): pode ser executado, mas aguarda a CPU.
    3. 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ísticaProcessoThread
Espaço de endereçamentoIsolado, próprioCompartilhado com threads do mesmo processo
Contador de programaPróprioPróprio
PilhaPrópriaPrópria
Registradores da CPUConjunto próprioConjunto próprio
Arquivos abertosCopiados/própriosCompartilhados
Comunicação entre entidadesMais 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

Regista-te para o resumo completo
FlashcardsTeste de conhecimentoResumoPodcastMapa mental
Começar grátis

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.

## 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): 1. **Em execução (Running)**: ocupa a CPU. 2. **Pronto (Ready)**: pode ser executado, mas aguarda a CPU. 3. **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