Prof. Kleber R. Rovai Msn: [email protected] E
Transcrição
Prof. Kleber R. Rovai Msn: [email protected] E
08/03/2012 Prof. Kleber R. Rovai Msn: [email protected] E-mail: [email protected] Skype: klrovai Prof. Kleber R. Rovai [email protected] 2 1 08/03/2012 • Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); • Processo: um programa em execução (entidade ativa). É uma abstração para um programa em execução; • Termo: processo = job; Prof. Kleber R. Rovai [email protected] 3 • Vários processos podem existir ao mesmo tempo no sistema; • Processador se reveza entre os processos. • Um processo inclui: • contador de instruções; • pilha; • área de dados; Prof. Kleber R. Rovai [email protected] 4 2 08/03/2012 • Quando o processador muda de um processo para outro, algumas informações devem ser salvas (identificação do processo, estado da máquina, ponteiro da área de dados, de código entre outras); • Ao conceito de processo estão associadas algumas informações que caracterizam o seu contexto de execução. Prof. Kleber R. Rovai [email protected] • 5 Para a solução de uma tarefa, processos podem: • Criar processos filhos; • Comunicar (comunicação interprocessos); • Interpretador de Comandos (shell) é o processo que recebe e trata comandos do usuário; • Processos são identificados por um PID e geralmente associados a um UID. Prof. Kleber R. Rovai [email protected] 6 3 08/03/2012 • • • • Sistemas antigos: só o sistema operacional podia criar novos processos; Sistemas atuais, os usuários podem criar e destruir processos dinamicamente; SO deve fornecer chamadas para a manipulação e gerência de processos; Quando um novo processo é criado, o seu PCB (Bloco de Controle de Processo) é preparado com as informações básicas e colocado na fila de prontos. Prof. Kleber R. Rovai [email protected] • 7 Quatro eventos principais: • Início do Sistema; • Execução de uma chamada ao sistema de criação de processo por um processo em execução; • Uma requisição do usuário para criar um novo processo; • Início de um job em lote. Prof. Kleber R. Rovai [email protected] 8 4 08/03/2012 • Atribui um PID único; • Aloca as estruturas de dados associadas a um processo; • Aloca o espaço necessário em memória; • PCB deve ser iniciado; • Gera consistência das listas do SO que devem ser mantidas; Prof. Kleber R. Rovai [email protected] Identificação do Processo PCB 9 Criação de Processo Informação do Estado Informação de Controle Pilha do Usuário Espaço de Endereçamento privativo do usuário (programas, dados) Espaço de Endereçamento Compartilhado Prof. Kleber R. Rovai [email protected] Estrutura com Lista de processos Processo de usuário na memória 10 5 08/03/2012 • • • Processos pais criam processos filhos, que podem criar novos processos árvore de processos; Compartilhamento de recursos: • Pais e filhos compartilham os mesmos recursos; • Filhos compartilham um subconjunto dos recursos do pai; • Pais e filhos não compartilham algum recurso. Execução • Pai e filhos executam concorrentemente; • Pai aguarda até que os filhos terminem. Prof. Kleber R. Rovai [email protected] 11 • Espaço de endereçamento • Filho é uma cópia do pai; • Filho tem um novo programa carregado. • Exemplos do UNIX: • Chamada ao sistema: • Fork cria novos processos; • Execve usada após um fork para sobrepor o espaço de endereçamento do processo com um novo programa. Prof. Kleber R. Rovai [email protected] 12 6 08/03/2012 root pagedaemon swaper user 1 init user 2 user 3 Prof. Kleber R. Rovai [email protected] 13 • Processos executam a última linha chama o SO para controlar a terminação (exit); • Saída de dados do filho para o pai (wait); • Recursos do processo são desalocados pelo SO; Prof. Kleber R. Rovai [email protected] 14 7 08/03/2012 • Pais podem terminar a execução de processos filhos (abort); • filhos excederam os recursos alocados; • tarefa de encumbência do filho não é mais necessária; • Pai está terminando: • SO não permite que o filho continue se o seu pai terminou; • Terminação em cascata; Prof. Kleber R. Rovai [email protected] 15 • Unix – em um processo, todos os seus filhos e descendentes formam um grupo de processo. Não podendo deserdar seus filhos. Pertencendo a uma única árvore; • Windows – não apresenta nenhum conceito de hierarquia de processos. Todos são iguais. Prof. Kleber R. Rovai [email protected] 16 8 08/03/2012 • Processos podem estar: • Ativos - em execução na CPU; • Prontos – executável, mas temporariamente parado para dar lugar a outro processo; • Bloqueados – incapaz de executar enquanto não ocorrer um evento externo. Prof. Kleber R. Rovai [email protected] 1 2 3 4 17 - O processo bloqueia aguardando uma entrada; - O escalonador seleciona outro processo; – O escalonador seleciona esse processo; – A entrada torna-se disponível. Prof. Kleber R. Rovai [email protected] 18 9 08/03/2012 • • Camada mais inferior de um SO estruturado por processos trata as interrupções, escalonamento; Acima daquela camada estão os processos sequenciais. Prof. Kleber R. Rovai [email protected] • 19 O SO mantem uma tabela (vetor de estruturas) chamada de tabela de processos, com uma entrada para cada processo. • Bloco de controle de processo (PCB); • Representação de um processo no SO: Prof. Kleber R. Rovai [email protected] 20 10 08/03/2012 estado do processo ponteiro número do processo apontador de instruções registradores limites na memória lista de arquivos abertos . . . Prof. Kleber R. Rovai [email protected] • 21 Informações associadas à cada processo: • Estado do processo; • Apontador de instruções; • Registradores da CPU; • Informações relativas ao escalonamento da CPU; • Informações relativas ao gerenciamento de memória; • Dados para contabilidade (estatísticas); • Informações relativas ao status de I/O. Prof. Kleber R. Rovai [email protected] 22 11 08/03/2012 Campos da entrada de uma tabela de processos Prof. Kleber R. Rovai [email protected] 23 Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção Prof. Kleber R. Rovai [email protected] 24 12 08/03/2012 • DEADLOCK • É uma situação onde dois processos competem por recursos do sistema e ficam indefinidamente bloqueados Prof. Kleber R. Rovai [email protected] • • • 25 Processos independentes não podem afetar a execução de outros processos. Processos cooperativos podem afetar ou ser afetados pela execução de um outro processo envolvido; Vantagens da cooperação entre processos: • Compartilhamento de informações; • Aumento da velocidade de computação; Prof. Kleber R. Rovai [email protected] 26 13 08/03/2012 1) No slide 18, são mostrados três estados de processos. Na teoria, com três estados poderia haver seis transições, duas para cada estado. Contudo, somente quatro transições são mostradas. Há alguma circunstância na qual uma delas ou ambas as transições não ilustradas Possam ocorrer? Prof. Kleber R. Rovai [email protected] 27 2) Suponha que você seja o projetista de uma arquitetura de computador avançada que fez a alternância entre processo por hardware em vez de usar interrupções. De que informação a CPU precisaria? Descreva como o processo de alternância por hardware poderia funcionar. 3) Em todos os computadores atuais, pelo menos uma parte dos tratadores de interrupção é escrita em linguagem de montagem. Por quê? Prof. Kleber R. Rovai [email protected] 28 14 08/03/2012 • Sistemas Operacionais Modernos • • Sistemas Operacionais • • Andrew S. Tanenbaum Abrahan Silberschatz, Peter Galvin, Greg Gagne Embedded Software Development with eCos • Anthony J. Massa Prof. Kleber R. Rovai [email protected] 29 15
Documentos relacionados
Prof. Kleber R. Rovai Msn: [email protected] E
O Windows 7 (em inglês: Windows Seven) é o atual sistema operacional da Microsoft, sucessor do Windows Vista. Sua história começa com o lançamento do Windows Vista, onde a Microsoft já fazia planos...
Leia mais