SOPA - SOP

Views:
 
Category: Education
     
 

Presentation Description

TRAMPO DE SISTEMAS OPERACIONAIS

Comments

Presentation Transcript

Slide 1: 

Sistemas Operacionais Processos

Gerência de Processos : 

Gerência de Processos Conceito de Processo Escalonamento de Processos Operações sobre Processos Processos Cooperantes Comunicação entre Processos Comunicação em Sistemas Cliente-Servidor

Conceito de Processo : 

Conceito de Processo Um sistema operacional executa uma variedade de programas: Sistemas Batch– tarefas Sistemas de tempo compartilhado – programas de usuário ou tarefas Processo Um programa em execução Ambiente onde um programa é executado A execução do processo precisa ocorrer de maneira seqüencial

Estrutura do Processo : 

Estrutura do Processo Estrutura do processo

Espaço de Endereçamento : 

Espaço de Endereçamento Estrutura de um processo

Bloco de Controle de Processo (PCB) (Process Control Block) : 

Bloco de Controle de Processo (PCB) (Process Control Block) Informações associadas a cada processo Estado do processo Contador de programa Registradores da CPU Informação de escalonamento de CPU Informação de gerenciamento de memória Informação contábil Informação de status de E/S

Bloco de Controle de Processo (Process Control Block) : 

Bloco de Controle de Processo (Process Control Block)

Estado do Processo : 

Estado do Processo Conforme um processo é executado, ele muda de estado novo: O processo está sendo criado executando: As instruções estão sendo executadas esperando: O processo está esperando que ocorra algum evento pronto: O processo está esperando para ser atribuído a um processador terminado: O processo terminou sua execução

Diagrama de Estado do Processo : 

Diagrama de Estado do Processo

Troca de Contexto : 

Troca de Contexto Quando a CPU passa para outro processo, o sistema precisa salvar o estado do processo antigo e carregar o estado salvo do novo processo O tempo da troca de contexto é custo adicional; o sistema não realiza qualquer trabalho útil durante a troca O tempo depende do suporte do hardware

Troca da CPU de um Processo para Outro : 

Troca da CPU de um Processo para Outro

Filas de Escalonamento de Processo : 

Filas de Escalonamento de Processo Fila de tarefas (Job Queue) – conjunto de todos os processos no sistema Fila de prontos (Ready Queue) – conjunto de todos os processos residindo na memória principal que estão prontos e esperando para serem executados Fila de dispositivo (Device Queue) – conjunto dos processos esperando um dispositivo de E/S Migração de processo entre as diversas filas

Fila de Prontos e Várias Filas de Dispositivo de E/S : 

Fila de Prontos e Várias Filas de Dispositivo de E/S

Representação do Escalonamento de Processos : 

Representação do Escalonamento de Processos

Escalonadores : 

Escalonadores Escalonador de longo prazo (ou escalonador de tarefas) – seleciona os processos que devem ser trazidos para a fila de prontos Escalonador de curto prazo (ou escalonador de CPU) – seleciona os processos que devem ser executados em seguida e aloca a CPU

Acréscimo do Escalonamento de Médio prazo : 

Acréscimo do Escalonamento de Médio prazo

Escalonadores : 

Escalonadores O escalonador de curto prazo é chamado freqüentemente (milissegundos) precisa ser veloz O escalonador de médio prazo é chamado raramente (segundos ou minutos) pode ser lento O escalonador de longo prazo controla o grau de multiprogramação Os processos podem ser descritos como: Processos I/O-Bound – gasta mais tempo realizando E/S do que cálculos; muitos surtos de CPU curtos Processos CPU-Bound – gasta mais tempo realizando cálculos; poucos surtos de CPU muito longos

Criação de Processo : 

Criação de Processo Os processos pai criam processos filhos, que, por sua vez, criam outros processos, formando uma árvore de processos Compartilhamento de recursos Pai e filhos compartilham todos os recursos Filhos compartilham um subconjunto dos recursos do pai Pai e filho não compartilham recurso algum Execução Pai e filhos são executados concorrentemente Pai espera até que os filhos terminem

Criação de Processo : 

Criação de Processo Espaço de endereços Cópia filha do processo pai Filho contém um programa carregado Exemplos do UNIX Chamada de sistema fork cria novo processo Chamada de sistema exec usada após um fork para substituir o espaço de memória do processo por um novo programa

Programa em C criando um processo separado : 

Programa em C criando um processo separado #include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { int pid; /* cria outro processo */ pid = fork(); if (pid < 0) { /* ocorreu erro na execução do Fork */ fprintf(stderr, “Falha no Fork "); exit(-1); } else if (pid == 0) { /* processo filho */ execlp("/bin/ls","ls",NULL); exit(1); } else { /* processo pai */ wait(NULL); /* pai espera o término do filho */ printf(“Filho terminou "); exit(0); } }

Árvore de Processos no UNIX : 

Árvore de Processos no UNIX

Término de processo : 

Término de processo O processo executa sua instrução final e pede ao sistema operacional que o termine (exit()) Envia os dados de saída do filho para o pai (através do wait()) Os recursos do processo são desalocados pelo sistema operacional

Término de processo : 

Término de processo O pai pode terminar a execução dos processos filhos (abort()) O filho excedeu os recursos alocados A tarefa atribuída ao filho não é mais necessária Se o pai está terminando Alguns sistemas operacionais não permitem que o filho continue se seu pai tiver terminado Todos os filhos terminaram – término em cascata

Processos Cooperativos : 

Processos Cooperativos Um processo independente não pode afetar ou ser afetado pela execução de outro processo Um processo cooperante pode afetar ou ser afetado pela execução de outro processo Vantagens da cooperação de processos Compartilhamento de informações Agilidade na computação Modularidade Conveniência

Problema Produtor-Consumidor : 

Problema Produtor-Consumidor Paradigma para os processos cooperativos, um processo produtor gera informações que são consumidas por um processo consumidor