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

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

Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução.

Apresentações semelhantes


Apresentação em tema: "Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução."— Transcrição da apresentação:

1 Processos

2  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução de um programa, como conteúdo de registradores, espaço de memória e todas as variáveis por ele manipuladas.

3 É constituído pelo código executável, dos dados referentes ao código, da pilha de execução (é a estrutura de dados que o sistema mantém informações sobre as tarefas que estavam sendo processadas), do valor do contador de programas (PC - armazena o endereço da próxima instrução a ser executada pela CPU), do valor do apontador de pilha (SP - contém o endereço de memória do topo da pilha), dos valores dos demais registradores do HW, além do conjunto de outras informações necessárias à execução do programa.

4 PROCESSO = PROGRAMA + DADOS + ESTADO

5

6

7 Modelo de Processo  Todo software é passível de ser executado em um computador, muitas vezes incluindo o próprio sistema operacional é organizado como um conjunto de processos seqüenciais ou simplesmente processos.

8  Conceitualmente pode-se dizer que cada processo possui o seu processador virtual. Porém, o que na verdade ocorre é o chaveamento entre cada um dos processos (para o usuário é como se fossem vários processos sendo executados em paralelo).  Este chaveamento rápido do processador entre os diversos processos é chamado de multiprogramação.

9

10  Com o processador sendo chaveado entre diversos processos, pode-se observar que a velocidade de execução de determinado processo não é constante.  Logo, nunca se consegue que o mesmo processo seja executado duas vezes gastando o mesmo tempo de execução.

11  Exemplo - considere um processo de I/O que esteja acessando uma unidade de fita magnética. Caso a fita esteja parada, o processo deve executar um loop de instruções nop (no operation) para aguardar que a fita atinga a velocidade nominal. Somente então o processo poderá emitir um comando de leitura. Imagine se o processador for obrigado a trocar de contexto durante o loop de nops. O primeiro registro poderá passar pela cabeça de leitura/gravação quando o processo estiver inativo.

12 O sistema operacional materializa o processo através de uma estrutura chamada bloco de controle de processo (Process Control Block - PCB) ou Tabela de Processos. Com isso, o sistema operacional mantém todas as informações sobre o processo, onde cada campo desta tabela armazena uma parte da informação do processo.

13

14  As informações da tabela de processos varia de acordo com o sistema operacional. Todas estas informações serão necessárias para que o processo saia do estado de pronto para a execução;

15  o processo pode ser dividido em três elementos básicos:  contexto de hardware - é formado basicamente pelo conteúdo dos registradores SP, PC e dos bits de estado;

16  enquanto um processo está em execução, o seu contexto de hardware está armazenado nos registradores do processador;  no momento que o processo perde a utilização da CPU, o sistema salva as suas informações no seu contexto de hardware;  o contexto de hardware é fundamental para a implementação de sistemas time-sharing, onde são realizadas mudanças de contexto (troca de processo por outro na CPU);

17  conclui-se que um processador é chaveado entre diversos processos, e com isso num dado instante somente um processo está efetivamente progredindo na sua execução.

18

19  contexto de software - especifica as características do processo que vão influenciar na execução de um programa (ex: nr máximo de arquivos abertos simultaneamente, tamanho do buffer para operações de I/O). O contexto de software define três grupos de informações sobre um processo:

20  identificação - cada processo possui uma PID (process identification - um número). O processo possui também a identificação do usuário ou processo que o criou (owner), UID (User identification), atribuído ao processo quando criado. Com isso, pode-se estabelecer um padrão de segurança, no qual arquivos, processos, etc, que possuem a mesma UID do usuário (processo) podem ser acessados;

21  quotas - são os limites de cada recurso do sistema que um processo poderá alocar para ser executado.

22 Exemplo de recursos:  nr máximo de arquivos abertos simultaneamente;  tamanho máximo de memória que o processo pode alocar;  número máximo de operações I/O pendentes;  tamanho máximo de buffer para operações de I/O;  nr máximo de processos e subprocessos que podem ser criados.

23  privilégios - definem o que o processo pode ou não fazer em relação ao sistema e aos outros processos (ex: privilégios de processos relativos a administração do sistema)

24  espaço de endereçamento - é a área de memória do processo onde o programa será executado, mais o espaço para os dados utilizados por ele. Cada processo possui o seu próprio espaço de endereçamento protegido do acesso de outros processos.

25  A diferença entre um processo e um programa é : O processo constitui um certo tipo de atividade. O processo constitui um certo tipo de atividade. O programa para ser realizado precisa da execução de vários processos. O programa para ser realizado precisa da execução de vários processos. O processo possui um programa, uma entrada e saída de dados e um estado. O processo possui um programa, uma entrada e saída de dados e um estado.

26 Um único processador pode ser compartilhado entre vários processos, com o uso de algum algoritmo de escalonamento para determinar quando o trabalho de um processo deve ser interrompido e determinado qual outro processo deve ser executado. Um único processador pode ser compartilhado entre vários processos, com o uso de algum algoritmo de escalonamento para determinar quando o trabalho de um processo deve ser interrompido e determinado qual outro processo deve ser executado.

27  Processo além de estar associado às aplicações, pode também estar associado ao sistema operacional da máquina. Exemplo de funções do SO que podem ser implementadas através de processos: auditoria e segurança, serviços de rede, contabilização do uso de recursos, contabilização de erros, etc.

28  Tipos de processo  CPU-BOUND - quando o processo passa a maior parte do seu tempo no estado de execução, isto é, sendo utilizado pela CPU. Este tipo de processo realiza poucas operações de I/O. Ex: utilizado em aplicações matemáticas ou científicas  I/O - BOUND - quando o processo passa a maior parte do seu tempo no estado bloqueado, isto é, realizando várias operações de I/O. Ex: utilizado em aplicações comerciais (realizam várias operações de leitura e gravação).

29 Hierarquia de Processos  Os SO que suportam o conceito de processo devem fornecer alguma forma de criar os processos necessários. Em sistemas simples ou projetados para rodar numa única aplicação é possível ter todos os processos criados quando o sistema é inicializado.  A maioria dos SO possuem mecanismos de criar e deletar processos quando necessário durante a operação.

30  Exemplos: No UNIX, os processos são criados pela chamada de sistema FORK, que cria um processo idêntico àquele que chamou. Após a criação o processo-pai fica trabalhando em paralelo com o processo-filho. Tanto o processo-pai quanto o processo-filho podem criar mais processos, formando uma árvore de processos. No UNIX, os processos são criados pela chamada de sistema FORK, que cria um processo idêntico àquele que chamou. Após a criação o processo-pai fica trabalhando em paralelo com o processo-filho. Tanto o processo-pai quanto o processo-filho podem criar mais processos, formando uma árvore de processos.

31 O MS-DOS executa uma chamada de sistema para carregar um arquivo binário específico da memória, e executá-lo como processo-filho. O MS-DOS suspende a execução do processo-pai até que o(s) processos-filhos terminem a sua execução. Não operam em paralelo. O MS-DOS executa uma chamada de sistema para carregar um arquivo binário específico da memória, e executá-lo como processo-filho. O MS-DOS suspende a execução do processo-pai até que o(s) processos-filhos terminem a sua execução. Não operam em paralelo.

32 Estados de Processo  Apesar de cada processo ser uma entidade independente, com o seu próprio fluxo de controle e com o seu próprio estado interno, muitas vezes eles têm a necessidade de interagir com outros processos. Ex: cat cap1 cap2 cap3 | grep teste //concatena três arquivos num só e seleciona todas as linhas com a palavra teste.

33 Dependendo da velocidade relativa entre os dois processos (baseada na função da complexidade de cada um e do tempo do processador aloca para cada um deles), pode ocorrer que grep esteja pronto para ser executado, mas que não haja nenhuma entrada disponível para permitir a sua execução. Logo, grep será bloqueado até que haja uma entrada.

34  O bloqueio de um processo ocorre normalmente pelo fato dele não Ter condições lógicas para prosseguir com sua execução, tipicamente por estar aguardando uma entrada ainda não disponível.  O bloqueio de um processo também pode ocorrer por força de decisão do sistema operacional, entregando o processador a outro processo. Esta decisão normalmente deve-se ao fato de só haver um processador e muitos usuários.

35  Os três estados são: Execução – está utilizando o processador neste instante Execução – está utilizando o processador neste instante Pronto – em condições de ser executado, mas bloqueado temporariamente para dar vez a outro processo Pronto – em condições de ser executado, mas bloqueado temporariamente para dar vez a outro processo Bloqueado – impedido de ser executado até que ocorra um determinado evento externo ao processo Bloqueado – impedido de ser executado até que ocorra um determinado evento externo ao processo

36  São possíveis 4 transições entre os 3 estados: 1 - executando para bloqueado – processo bloqueado para a entrada de dados 1 - executando para bloqueado – processo bloqueado para a entrada de dados 2 – executando para pronto – escalonador escolhe um novo processo. É uma rotina do sistema operacional que acontece quando o escalonador decide que o processo corrente já ocupou o processador por tempo suficiente, sendo o momento de deixar que outro processo execute. 2 – executando para pronto – escalonador escolhe um novo processo. É uma rotina do sistema operacional que acontece quando o escalonador decide que o processo corrente já ocupou o processador por tempo suficiente, sendo o momento de deixar que outro processo execute.

37 3 – pronto para execução – escalonador entrega o processador a esse novo processo. Também é uma rotina do sistema operacional que ocorre quando todos os demais processos já tiveram oportunidade de executar, sendo a vez deste ser executado. 3 – pronto para execução – escalonador entrega o processador a esse novo processo. Também é uma rotina do sistema operacional que ocorre quando todos os demais processos já tiveram oportunidade de executar, sendo a vez deste ser executado. 4 – bloqueado para pronto – entrada de dados concluída 4 – bloqueado para pronto – entrada de dados concluída

38  A camada mais baixa de um sistema operacional estruturado no modelo de processos manipula interrupções e realiza funções de escalonamento do processador. O resto do sistema operacional é constituído de processos seqüenciais.

39 Implementação do Processo  Para implementar o modelo de processo, o sistema operacional deve manter uma tabela, tabela de processos, com uma entrada por processo.

40  Cada entrada possui informações sobre o estado do processo, memória alocada, valores do contador de programas, entre outras, de forma que quando um processo sai do estado de execução para o pronto, seja possível reiniciar o seu processamento mais tarde, como nada tivesse acontecido.

41  Apesar das informações contidas na tabela de processos variarem de sistema operacional para sistema operacional, sempre algumas dizem a respeito à gerência do processo, outras à gerência da memória e outras ao sistema de arquivos.

42  Todo sistema possui um conjunto de dispositivos de I/O (discos rígidos, terminais, etc). Associado a cada classe de dispositivos de I/O, existe uma informação armazenada em um endereço normalmente situado na parte baixa da memória chamada de vetor de interrupção, no qual contém o endereço da rotina de serviço de interrupção referente a um tipo de dispositivo.

43  Exemplo: O processo 1123 está sendo executado quando ocorre uma interrupção de disco:

44 INTERRUPÇÃO DE PROCESSO  O que o HW faz: a) Os valores do PC, SP e outros registradores são SALVOS na pilha. b) Atualiza o valor do SP com o conteúdo do vetor de interrupção; c) O Hardware passa para a rotina de interrupção.

45 O que o SW faz (rotina de serviço de interrupção) a) Os valores de todos os registradores são salvos na entrada da tabela de processos, correspondente ao processo corrente. b) A rotina trata o número do processo e um ponteiro para a entrada da tabela de processos como variáveis globais do sistema, possibilitam um rápido acesso a mesma.

46 c) As informações colocadas na pilha pelo HW são removidas, e o SP é ajustado para apontar para uma pilha temporária utilizada pela rotina de interrupção. d) Identifica o processo que requisitou o serviço do disco e que conseqüentemente gerou a interrupção. O processo estava bloqueado passa para pronto. O escalonador (é o módulo que possui o algoritmo responsável em decidir qual processo será executado) é chamado.

47 e) Atualmente existem dois processos na fila de pronto - o processo interrompido e o processo que solicitou o serviço ao disco. O escalonador decide qual processo será executado (normalmente em alguns SO são dadas prioridades aos processos I/O-BOUND, em detrimento aos processos CPU-BOUND, pelo motivo destes realizarem várias operações de I/O, liberando a CPU).

48 f) Restaura os valores dos registradores e da memória (espaço onde será executado) para o processo, escolhido pelo escalonador, possa reiniciar o seu processamento.

49 Comunicação entre Processos  Normalmente processos que trabalham de forma concorrente, compartilhando recursos do sistema (arquivos, dispositivos e áreas de memória, etc), poderão ocorrer problemas independente do recurso compartilhado;  O exemplo, demonstra o problema de dois processos concorrentes. Um processo só pode gravar dados no buffer caso ele não esteja cheio, na mesma forma que um processo só poderá ler dados se houver conteúdo no buffer.

50  Os mecanismos que garantem a comunicação entre processos concorrentes e o acesso a recursos compartilhados são chamados de mecanismos de sincronização.  Em sistemas multiprogramáveis é notória a necessidade de se ter mecanismos de sincronização de forma a garantir a integridade e a confiabilidade do sistema.

51


Carregar ppt "Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução."

Apresentações semelhantes


Anúncios Google