quarta-feira, 2 de abril de 2014

Gerenciamento de Processos

RICARDO DE MAGALHÃES SIMÕES - Sobre o Autor
Doutorando em Engenharia Elétrica, Mestre em Informática (2006) e Bacharel em Ciência da Computação (2003), todos pela Universidade Federal do Espírito Santo. Atualmente, Professor Substituto de Informática no CEFET-ES, Professor de Programação I no Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas à Distância no CEFET- ES, professor de Sistemas Operacionais pela ESAB. Tem experiência na área de Ciência da Computação, com ênfase em Desenvolvimento de Algorítmos, Educação de Informática para estudantes do Ensino Médio, atuando principalmente nos seguintes temas: Informática Básica, Programação nas linguagem C/C++/C#, Java, Pascal.
Página pessoal:
Curriculo Lattes::

UNIDADE 8
Objetivo: Entender o mecanismo de gerenciamento dos processos feito pelo sistema operacional, e conhecer os modelos que podem ser utilizados para realizar esta tarefa.

1. Introdução

O gerenciamento de processos é um dos conceitos fundamentais dos sistemas operacionais modernos. No gerenciamento dos processos serão definidas as propriedades dos processos em execução, e a maneira como cada um receberá o tempo de execução no processador. A principal função do gerenciador de processos é exatamente a execução do processo no processador de maneira adequada (considerando a prioridade do processo e a quantidade de processos gerenciados).

2. Tipos de Gerenciadores de Processos

Em relação à execução dos processos, os gerenciadores podem ser separados em três categorias:

Gerenciadores por Admissão: neste caso o gerenciador irá escolher quais processos serão selecionados para serem executados no processador. Quando um programa solicita ao sistema operacional a execução de alguma operação, é o gerenciador de processos que irá decidir o momento em que esta solicitação será atendida. Esta escolha é feita verificando-se alguns fatores, sendo que o principal fator é a Prioridade do Processo.

Esse tipo de gerenciador geralmente é utilizado em Sistemas de Tempo Real, em que o controle da execução das operações deve ser rigorosamente definido e obedecido. Não existe nenhum sistema operacional para computadores pessoais que utilize esse tipo de gerenciador de processos;

Gerenciadores por Tempo Médio: este está presente em todos os sistemas que trabalham com Memória Virtual (descrito na Unidade 12) que temporariamente irá retirar processos da memória principal e guardá-los na memória secundária, e vice- versa. A escolha de qual processo irá sair da memória principal para a secundária é feita de acordo com o estado do processo.

Como visto na Unidade 5, enquanto o processo está nos estados de Espera e Execução, ficará na memória principal e quando passar para o estado de Bloqueio será retirado da memória principal e será armazenado na memória secundária. Quando o processo passar do estado de Bloqueio para Espera, será enviado da memória secundária para a principal;

Gerenciadores Despachantes: os despachantes designam os processos para serem executados pelo processador baseados em alguma alteração ocorrida no sistema, que pode ser causada por uma interrupção do relógio do processador, por um dispositivo, por uma instrução de Chamada do Sistema, ou por algum outro sinal identificável. Dessa maneira, não será nem a prioridade do processo, nem a alteração do seu estado que influenciarão na escolha feita pelo gerenciador. As execuções dos processos serão feitas de acordo com o nível de “atividade” do sistema.

Quando houver uma carga de trabalho muito grande, os processos receberão em intervalos regulares o devido tempo de execução no processador. Quando a carga de trabalho for menor, cada processo terá mais tempo para executar no processador. (O tempo de interrupção causado pelo relógio pode ser definido pelo programador do sistema operacional).

3. Algoritmos para Gerenciamento de Processos

Na informática o termo algoritmo define o conjunto de instruções que irão executar uma determinada tarefa. Um algoritmo para um Gerenciador de Processos contém as instruções necessárias para que o gerenciamento seja feito de maneira correta e organizada. Atualmente os sistemas operacionais têm uma necessidade por algoritmos extremamente eficientes, devido ao maior número de programas em execução nos computadores, e da maior quantidade de recursos disponíveis.

Um algoritmo pode ser escrito definindo-se um Gerenciador Despachante, com a troca entre os processos no processador feita a partir de interrupções do relógio a cada 100ms, e a troca entre os processos ser feito por um método de rodízio. Esse tipo de algoritmo é um dos mais simples de ser feito. Os sistemas operacionais atuais necessitam de um algoritmo com maior capacidade de controle dos processos e com maior aproveitamento do processador. Pode-se planejar um algoritmo que trabalhe com prioridade de execução nos processos, ou com base no Estado de Execução deles.

Essa escolha é feita durante o desenvolvimento do Sistema Operacional e influenciará diretamente o desempenho geral do computador. A escolha é feita pensando-se no tipo de utilização que o usuário fará dos recursos computacionais e do tipo de aplicação que será executado.

Um exemplo de algoritmo avançado para gerenciamento de processos é chamado de Fila de Resposta Multi-nível. Os objetivos desse algoritmo são:

Executar preferencialmente Processos com poucas instruções;
Executar preferencialmente Processos que irão fazer acesso a algum dispositivo;
Definir rapidamente a natureza do processo, e gerenciá-lo adequadamente.

Nesse algoritmo cada processo tem a oportunidade de concluir suas instruções a cada instante. Caso isso não aconteça, o gerenciador irá reclassificar o processo, colocando-o em um determinado nível de controle.

5 comentários: