1 / 83

Processos

Processos. Prof. Alexandre Monteiro Recife. Contatos. Prof. Guilherme Alexandre Monteiro Reinaldo Apelido: Alexandre Cordel E-mail/ gtalk : alexandrecordel@gmail.com greinaldo@fbv.edu.br Site: http://www.alexandrecordel.com.br/fbv Celular: (81) 9801-1878. Introdução a Processos.

eliot
Download Presentation

Processos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Processos Prof. Alexandre Monteiro Recife

  2. Contatos • Prof. Guilherme Alexandre Monteiro Reinaldo • Apelido: Alexandre Cordel • E-mail/gtalk: alexandrecordel@gmail.com greinaldo@fbv.edu.br • Site: http://www.alexandrecordel.com.br/fbv • Celular: (81) 9801-1878

  3. Introdução a Processos • Em um sistema multiprogramado vários programas estão na RAM e são executados concorrentemente • A CPU permuta entre programas, executando cada um por dezenas/centenas de milisegundos. • Uma CPU só pode executar um programa por vez. • Mas no curso de 1’’ uma CPU pode executar diversos programas ilusão de paralelismo (pseudoparalelismo) • Verdadeiro paralelismo = sistema multiprocessado

  4. Introdução a Processos • O conceito de processo é a base para a implementação de um sistema multiprogramável • A gerência de um ambiente multiprogramável é função do SO, o qual controla a execução dos programas e o uso concorrente da CPU • Neste contexto um programa esta associado a um processo • OBS: Apesar de denominações como tarefa ou job ainda serem usadas com o mesmo sentido, o termo processo é atualmente o mais utilizado. • job= tarefa = processo

  5. Introdução a Processos • Vantagens da Multiprogramação: • Aumento da taxa de utilização do processador • Melhor utilização dos recursos em geral • Redução do tempo de execução de um conjunto de programas • Dá a ideia ao usuário de que ele possui uma máquina só para si.

  6. Tipos de Processo • Independentes: não podem afetar a execução dos outros processos. • Cooperativos: podem afetar ou ser afetados pela execução de outros processos. • Vantagens: • Compartilhamento de informações • Aumento da veloc. de computação (speedup) • Modularidade • Conveniência

  7. ProcessosO Modelo de Processo • Multiprogramação de 4 programas • Modeloconceitual de 4 processossequenciais, independentes • Somente um programaestáativo a cadamomento

  8. Introdução a Processos • 4 programas na memória de um sistema multiprogramadoe a abstração em processos.

  9. Introdução a Processos • 4 programas na memória de um sistema multiprogramadoe a abstração em processos.

  10. Introdução a Processos • 4 programas na memória de um sistema multiprogramadoe a abstração em processos.

  11. Sequencial x Multiprogramado

  12. Introdução a Processos • Para que a troca de programa ocorra sem problemas é necessário que todas as informações do programa interrompido sejam guardadas • Todas as informações importantes à execução de um programa são parte do processo, por exemplo: • seu espaço de endereçamento, • seu tempo de processador e • sua área de disco

  13. Introdução a Processos • Um processo é formado por três partes • Contexto de Hardware • Contexto de Software • Espaço de endereçamento • Estas três partes mantêm todas as informações necessárias à execução de um programa • Quando um processador troca de processo caracteriza uma mudança de Contexto de Execução

  14. Estrutura de um Processo

  15. Contexto de Hardware • Armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico, por exemplo: • Contador de programa (ProgramCounter- PC) • Armazena o endereço de memória onde se encontra a próxima instrução a ser executada • Apontador da pilha (StackPoiter - SP) • A pilha contém valores que podem ser inteiros, reais ou endereços. • O SP aponta para o topo da pilha • Status (Estado do Processo) • Contém diversos flags que auxiliam à tomar decisões após instruções

  16. Contexto de Hardware • Quando um processo está em execução, o seu contexto de HW está armazenado nos registradores da CPU. • No momento em que o processo perde a utilização da CPU, o sistema salva as informações no contexto de HW do processo • A troca de um processo por outro na CPU é denominada mudança de contexto. • Esta consiste em salvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-los com os valores referentes ao do novo processo.

  17. (1) (2) (3) (4) (5) (6) (7)

  18. Contexto de Hardware • A troca de contexto resume-se em substituir o contexto de HW de um processo A pelo de outro processo B.

  19. Contexto de Software • Especifica as características e limites dos recursos que podem ser alocados pelo processo, como: • O número máximo de arquivos abertos simultaneamente, • A prioridade de execução e • O tamanho do buffer para E/S • Muitas informações do contexto de SW são provenientes de um arquivo do SO conhecido como arquivo de contas • Ele é gerenciado pelo Administrador do sistema e contém os limites dos recursos que cada processo pode alocar.

  20. Contexto de Software • É formado por 3 grupos de informações: • Identificação • Quotas • Privilégios

  21. Contexto de Software - Identificação • Grupo Identificação • Cada processo criado pelo sistema recebe uma identificação única • PID – ProcessIdentification • Através do PID o SO e outros processos podem fazer referência a qualquer processo existente • O processo também possui a identificação do usuário ou processo que o criou (owner). • Cada usuário possui uma identificação no sistema • UID – UserIdentification

  22. Contexto de Software - Identificação • A UID permite implementar um modelo de segurança, onde apenas os objetos (processos, arquivos, áreas de memória,...) que possuem a mesma UID do usuário (ou processo pai) podem ser acessado.

  23. Contexto de Software - Quotas • Grupo Quotas • As quotas são os limites de cada recurso do sistema que um processo pode alocar • Caso uma cota seja insuficiente, o processo poderá: • Ser executado lentamente • Interrompido durante seu processamento • Ou até nem ser executado

  24. Contexto de Software - Quotas • Grupo Quotas • Alguns exemplos de quotas: • Número máximo de arquivos abertos simultaneamente • Tamanho máximo de memória principal e secundária que o processo pode alocar • Número máximo de operações de E/S pendentes • Tamanho máximo do buffer para operações de E/S • Número máximo de processos, subprocessos e threads que podem ser criados

  25. Contexto de Software - Privilégios • Grupo Privilégios • Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processo e ao SO. • Alterar a prioridade de execução • Modificar os limites alocados de memória • Alteração de regras de segurança • Criação de outros processos privilegiados • Modificação de parâmetros de configuração do sistema

  26. Contexto de Software - Privilégios • Grupo Privilégios • Privilégio que afetam o SO são os mais amplos e poderosos. • A maioria do SO possui uma conta de acesso SUPER privilegiada • Windows = administrator • UNIX = root

  27. Espaço de Endereçamento • É a área de memória do processo onde as instruções e os dados do programa são armazenadas para execução • Cada processo possui seu espaço de endereçamento

  28. Processo: Estrutura Detalhada

  29. PCB - Bloco de Controle do Processo • O processo é implementado pelo SO através de uma estrutura de dados (Lista Encadeada) chamada de Bloco de Controle do Processo (ProcessControlBlock - PCB) • A partir do PCB, o SO mantém as informações sobre o contexto de HW, o contexto de SW e o espaço de endereçamento de cada processo. • O PCB possui todas as informações necessárias para que a execução do processo possa ser iniciada, interrompida e retomada conforme determinação do SO, sem prejuízo para o processo.

  30. PCB - Bloco de Controle do Processo • Algumas informações típicas que o PCB possui são: • Identificador de processo (pid); • Estado atual do processo; • Cópia do conteúdo do registrador contador de programa (PC – ProgramCounter); • Cópia do conteúdo dos demais registradores do processador; • PID do processo pai (parentprocess); • Ponteiro para a pilha; • Tempo em que o processo iniciou; • Tempo utilizado do processador; • Informações sobre diretório raiz e de trabalho. • OBS: Os PCBs de todos os processos residem na memória principal em uma área exclusiva do SO

  31. PCB na Memória (Lista Encadeada) AddressWindowing Extensions

  32. Estado do Processo • Para haver o compartilhamento da CPU em um sistema multiprogramável, os processos passam por diferentes estados ao longo do seu processamento • A troca de estado ocorre em função de eventos gerados pelo próprio processo (voluntário) ou pelo SO (involuntário) • Os estados em que um processo pode se encontrar variam de sistema para sistema mas, de uma maneira geral, pode-se citar: • Executando (Running) • Pronto (ready) • Bloqueado (blocked) – Também conhecido com Espera (Wait) • Terminado (exit)

  33. Estados do Processo:Executando (running) • Um processo está no estado executando quando ele está sendo executado pelo processador. • Em ambientes com uma única CPU, somente um processo pode estar sendo executado em um certo instante. • Em ambientes com mais de uma CPU, existe a possibilidade de mais de um processo estar sendo executado ao mesmo tempo • Neste tipo de sistema um mesmo processo também pode ser executado simultaneamente em mais de uma CPU

  34. Estados do Processo:Pronto (ready) • O processo está temporariamente parado para que outro processo possa ser executado. • O processo encontra-se pronto para a execução, aguardando apenas a liberação do processador para que ele seja executado; • Em geral existem vários processos no sistema no estado de pronto organizados em listas encadeadas; • Os processos são encadeados pela sua importância/prioridade

  35. Estados do Processo:Pronto (ready)

  36. Estados do Processo:Bloqueado (blocked) – Espera (wait) • Um processo está no estado bloqueado/espera quando aguarda a ocorrência de algum evento ou recurso externo para poder prosseguir, por exemplo: • O término de uma operação de E/S • Espera de uma data e/ou hora para continuar sua execução • O sistema também organiza os vários processos no estado de bloqueado/espera em listas encadeadas • Em geral, os processos são separados em listas de espera associadas a cada tipo de evento

  37. Estados do Processo:Bloqueado (blocked) – Espera (wait)

  38. Processosx Programas • Diferençasutil mas crucial. • Um processo é um programaemexecução. • CPU chaveamconjuntos de processos, o quechamamos de multiprogramação. • Analogia da Receita de Bolo: • A receita é o programa (algoritmos). • O cozinheiro/programador é o processador (CPU) • Osingredientessãoos dados de entrada. • O processo é a atividadedesempenhadapelocozinheiro (lerreceita, buscar e misturaringredientes, assar o bolo)

  39. Processosx Programas • Agora imagine que no meio do preparo o filho do cozinheirocheguechorando e dizendoqueumaabelha o picou: • O cozinheiroregistra de ondeestá (estadoatual do processo é salvo). • Pegalivro de primeirossocorros e começa a seguir as instruções. • Quando o problema da picada de abelhativersidotratado, o processador (cozinheiro) voltaao bolo. • Nessepontovemosque o processadoralternou de um processo para outro de maisaltaprioridade

  40. Processos • Um processoconstituiumaatividadecomposta de: • Programa • Entrada • Saída • Estado. • Um programasendoexecutadoduasvezes, issocontacomodoisprocessos. Apesar do SO compartilhar o código do programaemmemória.

  41. Criação de Processos • Principaiseventosquelevam à criação de processos • Início do sistema • Execução de chamadaaosistema de criação de processos • Solicitação do usuário para criar um novo processo • Início de um job emlote • Processos e Foreground (primeiroplano): interagem com usuários • Processos e Background (segundoplano): funçãoespecífica, quenão se associam com o usuários (Daemons)

  42. Criação de Processos • Sistemas Antigos: só o sistema podia criar novos processos • Sistemas Atuais: os usuários podem criar novos processos e destruir dinamicamente • SO deve fornecer chamadas para a manipulação e gerência de processos • Quando um novo processo é criado o seu PCB é preparado com as informações básicas e colocado na fila de prontos.

  43. Criação de Processos • Novosprocessoderivam do ProcessoPai, sendocriadaumacópia dos endereços de memória para ProcessosFilhos • UNIX (fork: cria novo processo e execve: sobrepõeespaço de endereçamento) • Windows (CreateProcess) • Pai e Filho tem seusEndereços de Memóriadistintos, principalmente para escrita. • No UNIX hápoucocompartilhamento, no Windows osespaçossãodistintosdesde o início da criação do ProcessoFilho.

  44. Criação de Processos • Processos Pais criam processos Filhos, que podem criar novos processos=> gerando uma árvore de processos • Compartilhamento de Recursos: • Pais e Filhos compartilham os mesmo recursos • Filhos compartilham um subconjunto de recursos do Pai • Pais e Filhos não compartilham recurso algum • Execução • Pai e Filhos executam concorrentemente • Pai aguarda até que o filho termine • Espaço de endereçamento • Filho é uma cópia do Pai (Firefox) • Filho tem um novo programa carregado (Google Chrome)

  45. Árvore de Processos Windows

  46. Criação de Processos

  47. Término de Processos Condiçõesquelevamaotérmino de processos • Saída normal (voluntária) • Saídaporerro (voluntária) • Erro fatal (involuntário) • Cancelamentopor um outro processo (involuntário)

More Related