Fundamentos de Sistemas Operacionais: Processos e Threads
Classificado em Computação
Escrito em em
português com um tamanho de 4,06 KB
Conceitos Básicos de Sistemas Operacionais (SO)
- SO: Programa ou conjunto de programas que fazem a intermediação entre o hardware e o usuário.
- SO Estático: Projetado para executar uma única operação.
- SO Dinâmico: Possui um número variável de processos; necessita de formas de criar e destruir processos.
- Multiprogramados: Mantêm mais de um programa simultaneamente na memória para permitir o compartilhamento efetivo do tempo.
- Multiprocessados: Executam suas tarefas em múltiplas UCPs.
Gerenciamento de Processos
- Processo: Programas em execução, incluindo valores correntes do contador de programa, registradores e variáveis. É um conceito dinâmico.
- Criação: Inicialização do sistema, requisição do usuário ou processo em execução que chama outro.
- Término: Saída normal, erro, erro fatal ou destruído por outro processo.
- BCP (Bloco de Controle de Processo): Contém informações sobre o processo: identificação, estado, prioridade, localização e contador.
Estados e Transições de Processos
- Indefinido: Processo desconhecido pelo SO.
- Bloqueado: Aguarda um evento.
- Pronto para execução: Aguardando outro processo sair do processador.
- Em execução: Processo dentro do processador.
- Criar: Processo na memória, torna-se conhecido pelo SO.
- Acordar: Libera o andamento.
- Despachar: Dá sequência imediata ao andamento.
- Bloquear: Para o andamento do processo enquanto aguarda evento.
- Preempção: Para por motivos alheios.
- Destruir: Libera a área de memória ocupada pelo processo.
Escalonamento de Processos
- Escalonador: Avalia os processos e decide qual rodará primeiro.
- Escalonamento: Atividade organizacional que prioriza processos (ex: I/O).
- Critérios: Uso da CPU, fração de tempo ocupada, tempo de espera e tempo de chegada.
- Algoritmos:
- FIFO: Primeiro que chega, primeiro a ser executado.
- SJF: Menor processo ganha a CPU.
- SRT: Escolhido quem possui o menor tempo restante.
- RR (Round Robin): Utiliza um quantum (tempo fixo) para cada processo.
- Preemptivo vs. Não Preemptivo: O preemptivo libera o processador para outro processo via quantum; o não preemptivo roda pelo tempo necessário.
Threads e Multithreading
- Threads: Linhas de execução. Possuem interdependência, mas mantêm privadamente: contador de programa, registradores, pilha e estado.
- Multithread: Existência de várias threads no mesmo processo.
- Vantagens: Permite que o processo continue rodando mesmo se uma thread estiver bloqueada em I/O.
- Tipos:
- ULT (User Level Threads): Gerenciadas pelo programador.
- KLT (Kernel Level Threads): Gerenciadas pelo SO, mais lentas devido à troca de contexto.
Arquitetura e Classificação
- Máquina Multinivel: Aplicações, Software Básico (SO/Compiladores) e Hardware.
- Carga de Trabalho:
- Serial: Recursos dedicados a um único programa.
- Concorrente: Recursos reassociados entre vários programas.
- Classificação: Monoprogramado, Batch (Lote), Interativo e Tempo Real.
- Máquinas Virtuais (VM): Nível intermediário que oferece uma cópia virtual do hardware.