Sistemas Operacionais: Processos, Threads e Escalonamento

Classificado em Computação

Escrito em em português com um tamanho de 19,42 KB

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.

Entradas relacionadas: