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
| Nome | RA |
|---|---|
| Ellen Priscilla Alves de Oliveira | 7060006922 |
| Israel Marcos Silva de Almeida | 8088888616 |
| Joelson Cavalcante Souza | 8094902267 |
| Júlio Cesar de Oliveira Alves | 8403105067 |
| Raimundo Nonato da Silva | 8208990518 |
| Rhalel De Souza Dib | 9938029436 |
| Unidade | Anhanguera |
| Curso | Ciência da Computação |
| Série | 1º Semestre |
| Professor | Paulo Henrique C. Andrade |
Trabalho desenvolvido na disciplina de Sistemas Operacionais apresentado à Anhanguera Educacional, sob orientação do professor Paulo Henrique C. Andrade.
Sumário
- Etapa 2 ......................................................................................... 5
- Passo 2.1 ......................................................................................... 6
- Passo 2.2 ......................................................................................... 6
- Passo 2.3 ......................................................................................... 6
- Passo 2.4 ......................................................................................... 6
- Etapa 3 ......................................................................................... 6
- Passo 3.1 ......................................................................................... 6
- Passo 3.2 ......................................................................................... 6
- Passo 3.3 ......................................................................................... 6
- Conclusão ....................................................................... 10
- 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.