ATPS SISTEMAS OPERACIONAIS
Dissertações: ATPS SISTEMAS OPERACIONAIS. Pesquise 862.000+ trabalhos acadêmicosPor: Ti_Show • 12/5/2014 • 2.035 Palavras (9 Páginas) • 350 Visualizações
2 – Relatório 02 Gerenciamento de Processos e Threads.
Todos os softwares que podem executar em um computador, inclusive o SO (os mais tradicionais são assim), são organizados para serem executados num processador, como vários processos sequenciais (também chamados processos). Um processo é uma atividade (ou tarefa) de um programa, que contém o código e dados de uma atividade. Essas são: leitura de dados, escrita de dados, cálculos no processador, comunicação com o usuário, comunicação com um BD, comunicação com a rede interna ou externa, entre outras. Um processo define a unidade de processamento concorrente, que é executada num dado instante num processador, utilizando um contador de programa lógico, usando o único contador de programa físico (registro no processador), valores em registradores, variáveis do programa e uma pilha de execução. Processos são escalonados para o processador, que faz uma troca a todo o momento do processo sendo executado, através do mecanismo chamado multiprogramação.
Em SO tradicionais, cada processo tem um único fluxo de execução (o que define uma thread), a unidade de processamento concorrente destinada para ser executada sob as condições de desempenho de um processador da época. Com o surgimento de processadores de mais alto desempenho, uma nova unidade de processamento concorrente pôde ser definida dentro do próprio processo, materializando novas unidades de fluxo de execução e assim podem-se ter múltiplos fluxos de execução (múltiplas threads) num mesmo processo.
O que as threads
acrescentam ao modelo de processo é permitir que múltiplos fluxos de execução ocorram no mesmo ambiente do processo, com um grau de independência uma das outras. Assim, múltiplas threads executam concorrentemente em um processo, e é análogo a múltiplos processos executando concorrentemente em um único computador.
2.1 Política de Gerenciamento de Processador:
Essa política é um das diferenças entre os sistemas operacionais existentes no mercado, pois cada sistema operacional possui a sua política adequada a suas características. Apesar de cada sistema operacional adotar seus critérios, podemos citar alguns dos principais:
* Todos os processos são tratados igualmente, não ficando processo sem tratamento;
* Deve maximizar seu desempenho com maior numero possível de processos por unidade de tempo;
* Atender os usuários em tempos de respostas aceitáveis;
* Previsibilidade e fundamental independentemente do sistema;
* Mitigar recursos perdidos;
* Balancear o uso de recursos;
* Ocupar o máximo o processador;
* Evitar espera indefinida (starvation), e principalmente o deadlock;
* Priorizar os processos de forma a identificar os de maiores prioridades;
O objetivo de escalonamento e maximizar a utilização da CPU via multiprogramação. O escalonamento de processador ocorre quando existe uma politica do sistema para escolher quais processos executar. A politica de escalonamento deve atender algumas premissas ligadas a desempenho e maximização do numero de processos executados, reduzir o
tempo de latência (tempo de espera antes da execução), evitar antecipação indefinida de processos e aperfeiçoar o uso do(s) processador (es).
Escalonamento Preemptivo: E quando o sistema operacional atua de forma sublime, pois deve saber parar um processo em execução e ate mesmo substitui-lo por um novo processo. O mercado denomina “processadores multicore” os circuitos integrados que possuem dois ou mais núcleos de processamento completos no seu interior.
Atualmente com o surgimento desses processadores (dual core, core 2 duo, quad-core) com maior poder de processamento, consolidam nos sistemas operacionais as politicas de escalonamento do tipo Preemptivo. Um forte uso dessa técnica esta desenvolvida em aplicações de sistemas de tempo real, onde caracteriza por se preocupar com o fator tempo: de processador, de espera, de resposta, “turnaround”.
* Tempo de processador: e o tempo que um processo leva no estado de execução durante seu processamento.
* Tempo de espera: e o tempo total que um processo permanece na fila durante seu processamento, aguardando para ser executado.
* Tempo de turnaround: é o tempo que um processo leva desde a sua criação até ao seu término, inclusive o tempo para alocação de memória, espera na fila, processamento na CPU e nas operações de Entrada e Saída.
* Tempo de resposta: é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida.
Escalonamento Não-Preemptivo: Foi o precursor em sistemas multiprogramável, possibilitando
ao sistema operacional atuar somente ao término do processo iniciado. Estando presente em sistemas com processamento em bacth(lote).
2.2 Gerenciamento de processos
Nos sistemas operacionais, um processo é a forma de representar um programa em execução. É o processo que utiliza os recursos da maquina, processador, memória, etc.
Por esse motivo é importante gerencia-los.
2.2.1 Criação de um processo
Com o simulador SOsim criamos um Processos.
Na janela Gerência de Processos, observe algumas informações sobre o contexto de software do processo como PID, prioridade, estado do processo e tempo de processador.
Na janela Gerência de Processador, observe o processo transacionando entre estados.
Na janela Gerência de Processador, movimente a barra de Clock de UCP e observe as variações ocorridas.
2.2.2 Tipos de processo
Criamos um processo do tipo CPU-bound e um processo do tipo I/O-bound
Na janela Gerência de Processos, observe as mudanças de estado dos dois processos.
Na janela Gerência de Processador, observe o comportamento dos processos e as mudanças de contexto em função do tipo I/O-bound e CPU-bound.
Na janela Gerência
...