A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Alexandre Monteiro Recife

Apresentações semelhantes


Apresentação em tema: "Prof. Alexandre Monteiro Recife"— Transcrição da apresentação:

1 Prof. Alexandre Monteiro Recife
Processos Prof. Alexandre Monteiro Recife

2 Contatos Prof. Guilherme Alexandre Monteiro Reinaldo
Apelido: Alexandre Cordel /gtalk: Site: Celular: (81)

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 Compartilhamento de informações
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 Processos O Modelo de Processo
Multiprogramação de 4 programas Modelo conceitual de 4 processos sequenciais, independentes Somente um programa está ativo a cada momento

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

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

10 Introdução a Processos
4 programas na memória de um sistema multiprogramado e 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 Contador de programa (Program Counter - PC)
Armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico, por exemplo: Contador de programa (Program Counter - PC) Armazena o endereço de memória onde se encontra a próxima instrução a ser executada Apontador da pilha (Stack Poiter - 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 Identificação Quotas Privilégios
É 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 – Process Identification 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 – User Identification

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

24 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

25 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

26 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

27 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

28

29 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

30 Processo: Estrutura Detalhada

31 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 (Process Control Block - 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.

32 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 – Program Counter); Cópia do conteúdo dos demais registradores do processador; PID do processo pai (parent process); 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

33 PCB na Memória (Lista Encadeada)
Address Windowing Extensions

34 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)

35 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

36 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

37 Estados do Processo: Pronto (ready)

38 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

39 Estados do Processo: Bloqueado (blocked) – Espera (wait)

40 Processos x Programas A receita é o programa (algoritmos).
Diferença sutil mas crucial. Um processo é um programa em execução. CPU chaveam conjuntos de processos, o que chamamos de multiprogramação. Analogia da Receita de Bolo: A receita é o programa (algoritmos). O cozinheiro/programador é o processador (CPU) Os ingredientes são os dados de entrada. O processo é a atividade desempenhada pelo cozinheiro (ler receita, buscar e misturar ingredientes, assar o bolo)

41 Processos x Programas Agora imagine que no meio do preparo o filho do cozinheiro chegue chorando e dizendo que uma abelha o picou: O cozinheiro registra de onde está (estado atual do processo é salvo). Pega livro de primeiros socorros e começa a seguir as instruções. Quando o problema da picada de abelha tiver sido tratado, o processador (cozinheiro) volta ao bolo. Nesse ponto vemos que o processador alternou de um processo para outro de mais alta prioridade

42

43 Processos Programa Entrada Saída Estado.
Um processo constitui uma atividade composta de: Programa Entrada Saída Estado. Um programa sendo executado duas vezes, isso conta como dois processos. Apesar do SO compartilhar o código do programa em memória.

44 Criação de Processos Principais eventos que levam à criação de processos Início do sistema Execução de chamada ao sistema de criação de processos Solicitação do usuário para criar um novo processo Início de um job em lote Processos e Foreground (primeiro plano): interagem com usuários Processos e Background (segundo plano): função específica, que não se associam com o usuários (Daemons)

45 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.

46 Criação de Processos Novos processo derivam do Processo Pai, sendo criada uma cópia dos endereços de memória para Processos Filhos UNIX (fork: cria novo processo e execve: sobrepõe espaço de endereçamento) Windows (CreateProcess) Pai e Filho tem seus Endereços de Memória distintos, principalmente para escrita. No UNIX há pouco compartilhamento, no Windows os espaços são distintos desde o início da criação do Processo Filho.

47 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)

48 Árvore de Processos Windows

49 Criação de Processos

50 Saída normal (voluntária) Saída por erro (voluntária)
Término de Processos Condições que levam ao término de processos Saída normal (voluntária) Saída por erro (voluntária) Erro fatal (involuntário) Cancelamento por um outro processo (involuntário)

51 Término de Processos UNIX (exit) Windows (ExitProcess)
Todos os programas baseados em tela também suportam o término voluntário. Término do Erro Fatal: executar arquivo inexistente. Instrução Ilegal: divisão por zero, referência a memória inexistente. Término por cancelamento UNIX (Kill) e Windows (TerminateProcess)

52 Eliminação de Processo
Quando um processo é eliminado seus recursos associados são desalocados e o SO elimina o PCB. Além dos 3 estados de um processo, a maioria dos SO têm mais 2 estados (um para criação e outro para eliminação) Criação (New) O SO criou um novo PCB, porém o processo não está na lista de prontos Terminado (Exit) Não pode ser mais executado, porém o SO ainda mantém seu PCB O SO usa o PCB para contabilizar os recursos usados. Após isto, o processo pode deixar de existir

53 Eliminação de Processo
Pais podem terminar a execução de processos Filhos (abort) Filhos excederam os recursos alocados Tarefa de incumbência do Filho não é mais necessária NO caso de Pai terminando SO não permite que o Filho continue se seu pai terminou Terminação em cascata

54 Criação e Eliminação de Processos

55 Hierarquias de Processos
Pai cria um processo filho, processo filho pode criar seu próprio processo Formam uma hierarquia UNIX chama isso de “grupo de processos” Windows não possui o conceito de hierarquia de processos Todos os processos são criados iguais

56 Estados de Processos (1)
Possíveis estados de processos em execução bloqueado Pronto terminado Mostradas as transições entre os estados

57 Transições Possíveis entre Estados

58 Estados de Processos De forma resumida existem 4 mudanças de estado que podem ocorrer a um processo: • (a) Pronto -> Execução • (b) Execução -> Bloqueado/Espera • (c) Bloqueado/Espera -> Pronto • (d) Execução -> Pronto

59 Mudança de Estado de Processo
(a) Pronto -> Execução Quando um processo é criado, o sistema o coloca em uma fila de processos prontos, onde aguardará uma oportunidade para ser executado. Cada SO tem seus próprios critérios e algoritmos para a escolha da ordem em que os processos serão executados (escalonamento). Esta transição também ocorre quando todos os processos já tiveram o seu tempo de execução (fatia de tempo) e agora é novamente a vez do primeiro processo da fila de prontos ser executado pela CPU Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.

60 Estados do Processo: Pronto

61 Mudança de Estado de Processo
(b) Execução -> Bloqueado/Espera Um processo executando pode passar para o estado bloqueado por meio de eventos gerados pelo próprio processo Ex: uma operação de E/S Um processo executando também pode passar para o estado bloqueado por eventos gerados pelo sistema Ex: SO suspende por um período a execução de um processo.

62 Estados do Processo: Bloqueado (blocked) – Espera (wait)

63 Mudança de Estado de Processo
(c) Bloqueado/Espera -> Pronto Um processo no estado de bloqueado/espera passa para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é concedido. Um processo no estado de bloqueado/espera sempre terá que passar pelo estado de pronto antes de poder ser novamente selecionado para execução Não existe mudança de estado de bloqueado/espera para o estado de execução diretamente

64 Mudança de Estado de Processo
(d) Execução -> Pronto Um processo em execução pode passar para o estado de pronto quando ocorrer o término da sua fatia de tempo, por exemplo. Nesse caso, o processo volta para a fila de processos prontos, onde aguarda uma nova fatia de tempo; Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo. OBS. Um processo em estado pronto ou bloqueado/espera pode não estar em RAM. Isto ocorre quando não existe espaço suficiente para todos os processo na RAM e parte do contexto do processo é levada para o HD. E isso leva mais tempo para executar.

65 Conceito de Escalonamento
Para cada estado existe uma Fila que contém os PCBs. Nas transações entre estados, o PCB do processo é movido entre as filas apropriadas.

66 Razões para Suspender Processos
Uma técnica conhecida como swapping retira processos da RAM, liberando espaço de memória para outro processo, e os traz de volta seguindo critérios de cada SO. Neste caso, os processos em estado bloqueado/espera e pronto podem estar residentes ou não residentes na RAM. SO pode suspender processos: Em background Utilitário Suspeito de estar causando problemas Solicitação de usuário interativo Temporização: execução periódica Solicitação do processo pai.

67 Mudanças de Estados do Processo
RAM HD

68 Estados de Processos (2)
Camada mais inferior de um SO estruturado por processos trata interrupções, escalonamento Acima daquela camada estão os processos sequenciais

69 Escalonamento de Processos
Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro A parte do sistema operacional responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento Para que um processo não execute tempo demais, praticamente todos os computadores possuem um mecanismo de relógio (clock) que causa uma interrupção, periodicamente

70 Implementação de Processos (1)
Campos da entrada de uma tabela de processos

71 Implementação de Processos (2)
Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção

72 Processos Foreground e Background
Permite a comunicação direta do usuário com o processo durante o seu processamento Tem como base processamento interativo (teclado, mouse e monitor) - Processos Background: Não permite a comunicação com o usuário durante o seu processamento Tem como base processamento tipo batch (arquivos de E/S)

73 Processos Foreground e Background

74 Processos Foreground e Background
Processo Foreground e Background – PIPE É possível associar a saída de um processo a entrada de um outro. Para isso usa-se um pipe ligando os processos. Exemplo em UNIX cat cap1 cap2 cap3 | grep linguagem cat está sendo usado para concatenar 3 arquivos grep mostrará as linhas da saída de cat com a palavra linguagem

75 Processos Foreground e Background

76 Processos CPU-Bound e I/O Bound
Passa a maior parte do tempo no estado de execução, ou seja, utilizando a CPU Esse tipo de processamento realiza pouca E/S (aplicações científicas) Processos I/O-Bound Passa a maior parte do seu tempo no estado de bloqueado (ou espera), pois realiza muita E/S Esse tipo de processamento usa pouco a CPU (aplicações comerciais)

77 Processos CPU-Bound e I/O Bound

78 Múltiplos Processos

79 Concorrência Processos Independentes Subprocessos Threads
São formas diferentes de implementar concorrência Busca-se subdividir o código em partes que permitam o trabalho cooperativo entre estas partes São elas: Processos Independentes Subprocessos Threads

80 Processos Independentes
O uso de processo independentes é a forma mais simples de implementar a concorrência em sistemas multiprogramáveis Neste caso não existe vínculo do processo criado com o seu criador A criação de um processo independente exige a alocação de um PCB. A criação e eliminação de processos independentes e subprocessos demanda recursos do sistema (CPU, RAM,...). Além disso, como cada processo tem seu espaço de endereçamento, a comunicação e sincronização entre processo é pouco eficiente

81 Subprocessos(Cooperativos)
São processos criados dentro de uma estrutura hierárquica Processo criador = processo pai Novo processo = subprocesso ou processo filho Um subprocesso pode criar outros subprocessos Existe dependência entre o processo pai e filho Se o pai morre, o filho morre automaticamente Também possuem seu próprio PCB Subprocessos podem compartilhar quotas com seu pai Vantagens: Compartilha informações, aumenta a velocidade computacional (speed-up), modularidade, conveniência.

82 Subprocessos

83 Referências Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008. Modern Operating Systems 3 e. Prentice-Hall, 2008.


Carregar ppt "Prof. Alexandre Monteiro Recife"

Apresentações semelhantes


Anúncios Google