O GERENCIAMENTO DE PROCESSOS E THREADS
Por: Eliasebv • 24/5/2015 • Projeto de pesquisa • 1.063 Palavras (5 Páginas) • 412 Visualizações
GERENCIAMENTO DE PROCESSOS E THREADS
ETAPA 2 – PASSO 1 : Anotações sobre processos, threads, sincronização e comunicação entre processos e threads e gerência de processador
PROCESSOS - Um programa ao ser executado deve estar associado a um processo, que é a base para implementação de um sistema multiprogramável. Processo é um programa em execução.
Processo é dividido em três partes: Contexto de Hardware, Contexto de Software, Espaço de Endereçamento.
Bloco de Controle do Processo - O processo é implementado pelo SO através do PCB. Através dele o SO mantém informações sobre contexto de hardware, de software e espaço de endereçamento.
Estados do Processo: Execução (running); Pronto (ready); Espera (wait).
Sinais – permitem notificar processos de eventos gerados pelo SO ou por outros processos.
SWAPPING- é quando não há espaço na memória principal, e parte do contexto do processo é levado para memória secundária.
THREAD - Um thread é uma sub-rotina de um programa que pode ser executada concorrentemente ao programa chamador. Vantagem: podemos minimizar a alocação de recursos do sistema e diminuir overhead na criação, eliminação, troca de processos.
Ambiente monothread tem apenas um processo no seu espaço de endereçamento, para ter aplicações concorrentes é necessário que haja múltiplos processos independentes ou subprocessos.
Com múltiplos threads (multithread) é possível projetar e implementar aplicações concorrentes de maneira eficiente. Os threads de um mesmo processo compartilham o mesmo espaço de endereçamento, facilitando a comunicação entre threads.
SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS
Programação concorrente é um paradigma de programação para a construção de programas de computador que fazem uso da execução concorrente (simultânea) de várias tarefas computacionais interativas, que podem ser implementadas como programas separados ou como um conjunto de threads criadas por um único programa. Vantagens: incluem o aumento de desempenho.
Soluções de Hardware
Desabilitação de Interrupções: Desabilitar interrupções externas ao entrar numa região critica e habilitar ao sair; Se o processo não habilitar as interrupções ao sair da região crítica, o sistema pode estar comprometido.
Instrução Test-and-set: Instrução especial que permite ler uma variável, armazenar seu conteúdo em uma outra área e atribuir um novo valor a essa variável; Executa sem interrupção; É uma instrução invisível. Assim, dois processos não podem manipular uma variável compartilhada ao mesmo tempo (exclusão mútua).
Solução de Software - Fatores para a solução de problemas de sincronização:
O número de processadores e o tempo de execução dos processos concorrentes devem ser irrelevantes. Um processo, fora de sua região crítica, não pode impedir que outros processos entrem em suas próprias regiões críticas. Um processo não pode permanecer indefinidamente esperando para entrar em sua região crítica.
Semáforos- Solução mais geral e simples de ser implementada. Variável inteira, não negativa, que só pode ser manipulada por duas instruções: DOWN e UP.
Monitores- Mecanismos de sincronização de alto nível que tentam tornar mais fácil o desenvolvimento e correção de programas concorrentes. Conjunto de procedimentos, variáveis e estrutura de dados definidos dentro de um módulo. Somente um processo pode estar executando um dos procedimentos do monitor em um determinado instante.
Troca de Mensagens - Mecanismo de comunicação e sincronização entre processos.
Deadlock - Um processo espera por um evento que nunca ocorrerá. Consequência, em geral, do compartilhamento de recursos do sistema entre vários processos de forma exclusiva.
GERÊNCIA DE PROCESSADOR - A Gerência do processador tornou-se uma das atividades mais importantes de um sistema operacional, e que diversos processos podem estar no processo de pronto, para determinar qual processo fará uso do processador e a chamada política de escalonamento que é a base da gerência do processador e da multiprogramação em um sistema operacional.
Funções Básicas manter o processador ocupado a maior parte de tempo, balancear o uso do UCP entre processos ,privilegiar a execução de aplicações críticas, maximizar o throughput do sistema e oferecer tempos de respostas razoáveis para usuários interativos.
Critérios de Escalonamento
Utilização do processador= na maioria dos sistemas operacionais é desejável que o processador permaneça a maior parte do tempo ocupado.
Throughput= representa o número de processos executados em um determinado intervalo de tempo.
Tempo de Processador/Tempo UCP= é o tempo que um processo leva no estado de execução durante seu processamento.
Tempo de Espera=é o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado.
...