02 processos - ime-uspadao/tproc.pdf · um processo pode ser criado a partir de qualquer programa...

19
02 PROCESSOS 2.1 Introdução Para poder controlar a execução dos diversos programas e o uso concorrente do processador e dos demais recursos um programa deve sempre estar sempre associado a um processo. Os processos são executados concorrentemente compartilhando o uso do processador, memória principal e dispositivos de E/S. Figura 01 – Programa e Processo 2.2 Processos e Concorrência O processador executa instruções sem distinguir qual programa encontra-se em processamento: busca instruções na MP, armazena-a no registrador de instruções (RI) e decodifica seus bits e executa a instrução. O registrador Program counter (PC) armazena sempre a próxima instrução a ser executada Figura 02 – Estrutura de um Computador

Upload: others

Post on 13-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

02 PROCESSOS2.1 Introdução

Para poder controlar a execução dos diversos programas e o uso concorrente doprocessador e dos demais recursos um programa deve sempre estar sempre associado a umprocesso.

Os processos são executados concorrentemente compartilhando o uso doprocessador, memória principal e dispositivos de E/S.

Figura 01 – Programa e Processo

2.2 Processos e Concorrência

O processador executa instruções sem distinguir qual programa encontra-se emprocessamento: busca instruções na MP, armazena-a no registrador de instruções (RI) edecodifica seus bits e executa a instrução. O registrador Program counter (PC) armazenasempre a próxima instrução a ser executada

Figura 02 – Estrutura de um Computador

Page 2: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

A figura abaixo ilustra a situação em que o uso da concorrência é benéfica

Figura 03 - Concorrência no acesso a um banco de dados de uma loja

Processo é definido como o conjunto de informações necessárias para que o sistemaoperacional implemente a concorrência entre programas .

A figura abaixo ilustra a Concorrência entre três programas associados aosrespectivos processos.

Figura 04 – Concorrência entre programas associados a processos

Page 3: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

A figura abaixo ilustra a mudança de contexto, ou seja, a troca de um processo poroutro no processador

Figura 05 – Concorrência de Programas associados a processos

2.3 Estrutura de um Processo

Um processo é formado por três partes (contexto de hardware, de software e espaçode endereçamento) que juntas mantêm informações necessárias a execução de umprograma.

Page 4: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 06 – Estrutura de um Processo

2.3.1 Contexto de HardwareO contexto de hardware armazena o conteúdo os registradores gerais, além dos de

uso específico, como o program counter (PC), stack pointer

Figura 07 – Contexto de Hardware

A mudança de contexto, base para a implementação da concorrência consiste emsalvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-loscom os valores do novo processo que será executado.

Page 5: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 08 – Mudança de Contexto

2.3.2 Contexto de SoftwareNo contexto de software são especificados os limites e características dos recursos

que podem ser alocados pelo processo. As figuras abaixo mostram estes limites ecaracterísticas

Page 6: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 09 – Contexto de Software

Figura 10 – Contexto de Software

Page 7: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

2.3.3 Espaço de Endereçamento

No contexto de software são especificados os limites e características dos recursosque podem ser alocados pelo processo.

Figura 11 – Espaço de Endereçamento

2.3.4 Bloco de Controle de um ProcessoO BCP reside na memória principal e mantêm todas informações sobre contexto de

hardware, software e espaço de endereçamento de cada processo.

Page 8: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 12 – Bloco de Controle de um Processo

2.3.5 Listagem de Processos no Linux

A figura abaixo exibe uma lista de processos correntes no linux obtido a partir deum comando usando a linguagem de comandos

Figura 13 – Listagem de processo no Linux

Page 9: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

2.4 Estados de um Processo

Um processo pode estar nos seguintes estados: estado de pronto, estado de execuçãoe estado de espera. A figura abaixo explica as características de cada estado. Quando umprocesso está em estado de espera ou em estado de pronto ele fica respectivamente na listade estados de espera e de pronto.

Figura 14 – Estados de um Processo

Page 10: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

2.5 Mudanças de Estado de um Processo

Um processo pode sofrer as seguintes mudanças de estado: (a) pronto paraexecução; (b) execução para espera; (c) espera para o estado de pronto e (d) de execuçãopara o estado de pronto. A figura abaixo explica as situações em que ocorrem estasmudanças de estado

Figura 15 – Mudanças de Estados de um Processo

Page 11: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

2.6 Tipos de ProcessosOs processos podem ser classificado em CPU-bound (ligados à CPU) ou I/O-

bound (ligado à E/S). Nas figuras abaixo descrevemos cada um deles

Figura 16 – Processo CPU-bound

Page 12: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 17 – Processo I/O-bound

Os processos podem também serem classificados em processos foreground ebackground. Nas figuras abaixo descrevemos cada um deles

Figura 18 – Processo Foreground

Page 13: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 19 – Processo BackGround

2.7 Formas de Criação de um Processo

Um processo pode ser criado pelo processo de logon interativo, via linguagem decomandos ou usando rotinas do sistema operacional. As figuras abaixo ilustram cada umdestas formas.

2.7.1 Logon Interativo

Page 14: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 20 – Criação de um processo via logon

2.7.2 Via Linguagem de Comandos

Um processo é criado para atender a um comando da linguagem de comandos dosistema operacional.

Page 15: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 21 – Criação de um processo via linguagem de comandos

2.7.3 Via Rotinas do Sistema Operacional

Um processo pode ser criado a partir de qualquer programa executável com o uso derotinas do sistema operacional

Figura 22 – Criação de um processo com uso de rotinas do sistema operacional

2.8 Processos Independentes, Subprocessos e Threads

Processo, subprocessos e thread são formas de implementar a concorrência entreprogramas. A figura abaixo exemplifica uma situação em que o uso de concorrência ébenéfica

Page 16: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 23 – Exemplo de situação em que o uso de concorrência é benéfico

2.8.1 Processos IndependentesLLeemmbbrree--ssee qquuee ccaaddaa pprrooggrraammaa eessttáá aassssoocciiaaddoo aa uumm pprroocceessssoo

Figura 24 – Todo programa está relacionado a um processo

2.8.2 SubprocessosEm subprocesso existe a dependência existência ao processo pai que o criou.

Page 17: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 24 – Subprocessos

2.8.3 ThreadAs threads são uma tentativa de reduzir o tempo gasto na criação/eliminação de

processos, troca de contexto em processos na aplicações concorrentes e economizarrecursos do sistema como um todo

Em uma aplicação multithread um único processo pode suportar múltiplos threads,cada qual associado a uma parte do código da aplicação. Elas compartilham o mesmocontexto de software

Figura 26 – Thread

Page 18: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

A figura abaixo mostra um programa em java desenvolvido utilizando aprogramação multithread. No referido programa são criadas 5 threads em que cada umaexecuta chama a função PrintHello.

Figura 27 – Programação Multithread

Page 19: 02 PROCESSOS - IME-USPadao/tproc.pdf · Um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional Figura 22 – Criação de

Figura 28 – Possível saída do programa anterior