Prévia do material em texto
24/10/2020 1 Sistemas Operacionais – Processos, Threads, Comunicação entre processos, Escalonamentos Parte 1 FATEC-SCS Profª MSc. Aletéia Processo O processo: pode ser entendido como um programa em execução, só que seu conceito é mais abrangente. É a estrutura responsável pela manutenção de todas as informações necessárias à execução de um programa, como conteúdo de registradores e espaço de memória. 1 2 24/10/2020 2 Processo X Programa em execução Um programa é uma seqüência de instruções. É algo passivo dentro do sistema, não altera seu próprio estado. O processo altera o seu estado, à medida que executa um programa. É processo que faz chamadas de sistema ao executar os programas. O processo pode ser dividido em três elementos básico: contexto de hardware, software e espaço de endereçamento. Processo Estrutura do Processo Programa Contexto de Software Contexto de Hardware Espaço de Endereçamento 3 4 24/10/2020 3 Contexto de hardware Constitui-se, basicamente, do conteúdo de registradores: program counter (PC), stack pointer (SP); e bits de estado Contexto de Software Especifica características do processo que vão influir na execução de um programa, como, por exemplo: o número máximo de arquivos abertos simultaneamente ou o tamanho do buffer para operações de E/S. Define basicamente três grupos de informações sobre um processo: sua identificação, suas quotas e seus privilégios. 5 6 24/10/2020 4 Espaço de endereçamento É a área de memória do processo onde o programa será executado, além do espaço para os dados utilizados por ele. Cada processo possui seu próprio espaço de endereçamento, que deve ser protegido do acesso dos demais processos. Processo Características da Estrutura de um Processo Programa Contexto de Software prioridade de execução registrador PC data/ hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status owner (UID) PID nome registradores gerais Contexto de Hardware Espaço de Endereçamento 7 8 24/10/2020 5 Tela do Windows 8 Tela do Windows 8 9 10 24/10/2020 6 Tela do Linux: Comando TOP do Linux Tela do Linux: Comando PS do Linux 11 12 24/10/2020 7 Bloco de controle de processo Cada processo é representado no sistema operacional por um bloco de controle do processo (Process Control Block – PCB). A partir do PCB, o sistema operacional mantém todas as informações sobre o processo, como sua identificação, prioridade, estado corrente, recursos alocados por ele e informações sobre o programa em execução. Bloco de Controle de Processo (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 13 14 24/10/2020 8 Sistemas Operacionais com Java Silberschatz, Galvin e Gagne (c) 2003 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 Sistemas Operacionais com Java Silberschatz, Galvin e Gagne (c) 2003 Diagrama de Estado do Processo 15 16 24/10/2020 9 Sistemas Operacionais com Java Silberschatz, Galvin e Gagne (c) 2003 Troca da CPU de um Processo para Outro Sistemas Operacionais com Java Silberschatz, Galvin e Gagne (c) 2003 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 17 18 24/10/2020 10 Mudança de Estado do Processo Um processo muda de estado diversas vezes, durante seu processamento, em funções de eventos originados por ele próprio (eventos voluntários) ou pelo sistema operacional (eventos involuntários). Basicamente existem quatro mudanças de estado que podem ocorrer a um processo: Pronto ---- Execução Quando um processo é criado, o sistema o coloca em uma lista de processos no estado de pronto, onde aguarda uma oportunidade para ser executado. 19 20 24/10/2020 11 Execução -- Espera Um processo em execução passa para o estado de espera por eventos gerados pelo próprio processo, como, por exemplo, uma operação de entrada/saída. Execução - Pronto Um processo em execução passa para o estado de pronto por eventos gerados pelo sistema, como, por exemplo, o fim da fatia de tempo que o processo possui para sua execução. 21 22 24/10/2020 12 Espera -- Pronto Um processo no estado de espera passa para o estado de pronto quando a operação solicitada é atendida ou o recurso esperado é concedido. Processo e Subprocesso Um processo pode criar outros processos de maneira hierárquica; Quando um processo (processo pai) cria um outro, chamamos o processo criado de subprocesso ou processo filho; O subprocesso, por sua vez, pode criar outros subprocessos; Como conseqüência dessa estrutura, caso um processo deixe de existir, os subprocessos subordinados são eliminados. 23 24 24/10/2020 13 Processo Estrutura de Processos e Subprocessos Processo A Processo CProcesso B Processo EProcesso D 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 Execução Pai e filhos são executados concorrentemente Pai espera até que os filhos terminem 25 26 24/10/2020 14 Processos do Windows http://www.answersthatwork.com/ Processos CPU-bound x I/O-bound 5/13 (a) CPU-bound tempo tempo E/S E/ S UCP UCP (b) I/ O-bound 27 28 24/10/2020 15 Tipos de processos CPU-BOUND Um processo é dito CPU-bound quando passa a maior parte do tempo no estado de execução, ou seja, utilizando o processador. I/O-BOUND Um processo é chamado de IO-bound (ligado à E/S) quando passa a maior parte do tempo no estado de espera, pois realiza um elevado número de operações de entrada/saída. 29