Processos, Threads, Sincronização e Escalonamento em Sistemas Operacionais

ComputaçãoAtualizado em 19,42 KB

Resumo

Trabalho prático sobre Sistemas Operacionais que apresenta os conceitos de processos e threads, os mecanismos de sincronização e comunicação entre eles, o problema do deadlock e as políticas de escalonamento do processador. O texto também lista as métricas usadas para avaliar um escalonador, como throughput, tempo de espera e turnaround.

Pontos-chave

  • Processo é um programa em execução, definido por contexto de hardware, contexto de software e espaço de endereçamento.
  • Threads são fluxos de execução que compartilham os recursos do processo pai; podem ser monothreads ou multithreads.
  • Mecanismos de sincronização incluem barreiras, semáforos, mutex e trava compartilhada.
  • Deadlock ocorre quando um processo espera por um recurso que nunca será liberado sem a intervenção do sistema operacional.
  • Algoritmos de escalonamento citados: FIFO, SJF, Round Robin (circular), por prioridade, preemptivo e não preemptivo.
  • Métricas de escalonamento: throughput, tempo de UCP, tempo de espera, turnaround e tempo de resposta.

Teste-se

Faculdade Anhanguera de Rondonópolis

Av. Ary Coelho, nº 829 – Cidade Salmen – Rondonópolis, MT
CEP 78705-050 – (66) 3411-7600

Atividade Prática Supervisionada: Sistemas Operacionais

2º Bimestre

Rondonópolis – MT
2014

NomeRA
Ellen Priscilla Alves de Oliveira7060006922
Israel Marcos Silva de Almeida8088888616
Joelson Cavalcante Souza8094902267
Júlio Cesar de Oliveira Alves8403105067
Raimundo Nonato da Silva8208990518
Rhalel De Souza Dib9938029436
UnidadeAnhanguera
CursoCiência da Computação
Série1º Semestre
ProfessorPaulo Henrique C. Andrade

Trabalho desenvolvido na disciplina de Sistemas Operacionais apresentado à Anhanguera Educacional, sob orientação do professor Paulo Henrique C. Andrade.

Sumário

  1. Etapa 2 ......................................................................................... 5
  2. Passo 2.1 ......................................................................................... 6
  3. Passo 2.2 ......................................................................................... 6
  4. Passo 2.3 ......................................................................................... 6
  5. Passo 2.4 ......................................................................................... 6
  6. Etapa 3 ......................................................................................... 6
  7. Passo 3.1 ......................................................................................... 6
  8. Passo 3.2 ......................................................................................... 6
  9. Passo 3.3 ......................................................................................... 6
  10. Conclusão ....................................................................... 10
  11. Referências Bibliográficas ..................................................... 11

Introdução

Neste trabalho, apresentaremos de forma simplificada conceitos sobre processos, threads e gerenciamento de memória, além da sincronização e comunicação entre eles. Processos são programas em execução, enquanto threads são fluxos de execução independentes que atuam dentro de um programa maior.

Etapa 02 - Relatório de Atividades

Processos, Threads e Sincronização

Processos: Um processo é um programa em execução. A concorrência de programas exige um conjunto de informações para que o sistema operacional seja implementado, composto por três partes essenciais: contexto de hardware, contexto de software e espaço de endereçamento. A união dessas informações define um processo.

Threads: É uma forma de o processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente, compartilhando os recursos do processo pai. Existem dois tipos principais:

  • Monothreads: Apenas um fluxo de execução por programa.
  • Multithreads: Vários processos/fluxos executados de forma concorrente e eficiente.
Sincronização e Comunicação

Os sistemas operacionais possuem APIs para a comunicação entre processos e threads. No Windows, utiliza-se o COM (Component Object Model) e o WCF; no UNIX, os serviços POSIX; e no Mac OS X, o Core Foundation.

A sincronização é efetuada pelo sistema operacional multitarefa para garantir a integridade dos dados e prevenir conflitos no uso de recursos. Os meios de controle incluem:

  • Barreiras: O programa espera até que todos os processos alcancem o mesmo ponto.
  • Semáforos: Variáveis de controle que indicam quantos processos podem compartilhar um recurso.
  • Trava Simples (Mutex): Interrompe o uso do recurso por outros processos.
  • Trava Compartilhada: Permite que um único processo realize leitura e escrita, enquanto outros apenas realizam a leitura.
Deadlock (Bloqueio)

O deadlock ocorre quando um processo espera por um recurso que nunca será liberado sem a intervenção do sistema operacional. Estratégias para preveni-lo incluem:

  • Ordenar a precedência dos recursos;
  • Estabelecer períodos de alocação;
  • Garantir que nenhum processo tenha acesso restrito permanente;
  • Pré-alocação de todos os recursos no início da execução.

Política de Gerenciamento de Processador

Esta política define como o sistema operacional seleciona processos para execução. Os principais critérios são:

  • Manter o processador sempre ocupado;
  • Maximizar o throughput (processos por unidade de tempo);
  • Oferecer tempos de resposta aceitáveis;
  • Evitar a espera indefinida (starvation);
  • Priorizar processos de maior importância.
Tipos de Escalonamento
  • Preemptivo: O SO pode suspender um processo em execução para alocar outro.
  • Não Preemptivo: O processo detém o processador até terminar ou liberar voluntariamente.
  • FIFO (First-In, First-Out): O primeiro a chegar é o primeiro a ser servido.
  • SJF (Shortest-Job-First): Seleciona o processo com o menor tempo de execução restante.
  • Circular (Round Robin): Preemptivo, onde cada processo tem um tempo limite (quantum).
  • Por Prioridade: Baseado em valores atribuídos a cada tarefa.

Atualmente, processadores multi-core consolidam o uso de escalonamento preemptivo, priorizando fatores como o Turnaround (tempo total da criação ao término).

Funções Básicas da Política de Escalonamento
  • Throughput: Número de processos executados.
  • Tempo de UCP: Tempo efetivo de execução no processador.
  • Tempo de Espera: Tempo na fila de pronto.
  • Tempo de Turnaround: Tempo total desde a criação até o término.
  • Tempo de Resposta: Tempo entre o input e o output inicial.

Baixar

PDF Word HTML

Perguntas frequentes

Qual a diferença entre processo e thread?

Processo é um programa em execução com seus próprios recursos. Thread é um fluxo de execução que atua dentro do processo e compartilha os recursos do processo pai.

O que é deadlock?

É a situação em que um processo espera por um recurso que nunca será liberado sem a intervenção do sistema operacional.

O que é o escalonamento Round Robin?

É um escalonamento preemptivo em que cada processo recebe um tempo limite de execução, chamado quantum, antes de ceder o processador.

Teste-se

Cartões de revisão

Clique em um cartão para ver a resposta.

Teste

1. Segundo o texto, o que define um processo?
2. Qual mecanismo de sincronização permite que apenas um processo leia e escreva enquanto os outros apenas leem?
3. Qual algoritmo seleciona o processo com o menor tempo de execução restante?
4. Qual das opções é uma estratégia para prevenir deadlock citada no texto?
5. Qual métrica mede o tempo total desde a criação do processo até o seu término?
6. Qual é a característica do escalonamento preemptivo?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.