Buscar

Sistema Operacional - Processos - Apostila

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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
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 sistema
operacional implemente a concorrência entre programas .
A figura abaixo ilustra a Concorrência entre três programas associados aos
respectivos processos.
Figura 04 – Concorrência entre programas associados a processos
A figura abaixo ilustra a mudança de contexto, ou seja, a troca de um processo por
outro 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ço
de endereçamento) que juntas mantêm informações necessárias a execução de um
programa.
Figura 06 – Estrutura de um Processo
2.3.1 Contexto de Hardware
O 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 em
salvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-los
com os valores do novo processo que será executado.
Figura 08 – Mudança de Contexto
2.3.2 Contexto de Software
No 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 e
características
Figura 09 – Contexto de Software
Figura 10 – Contexto de Software
2.3.3 Espaço de Endereçamento
No contexto de software são especificados os limites e características dos recursos
que podem ser alocados pelo processo.
Figura 11 – Espaço de Endereçamento
2.3.4 Bloco de Controle de um Processo
O 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.
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 de
um comando usando a linguagem de comandos
Figura 13 – Listagem de processo no Linux
2.4 Estados de um Processo
Um processo pode estar nos seguintes estados: estado de pronto, estado de execução
e estado de espera. A figura abaixo explica as características de cada estado. Quando um
processo está em estado de espera ou em estado de pronto ele fica respectivamente na lista
de estados de espera e de pronto.
Figura 14 – Estados de um Processo
2.5 Mudanças de Estado de um Processo
Um processo pode sofrer as seguintes mudanças de estado: (a) pronto para
execução; (b) execução para espera; (c) espera para o estado de pronto e (d) de execução
para o estado de pronto. A figura abaixo explica as situações em que ocorrem estas
mudanças de estado
Figura 15 – Mudanças de Estados de um Processo
2.6 Tipos de Processos
Os 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
Figura 17 – Processo I/O-bound
Os processos podem também serem classificados em processos foreground e
background. Nas figuras abaixo descrevemos cada um deles
Figura 18 – Processo Foreground
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 de
comandos ou usando rotinas do sistema operacional. As figuras abaixo ilustram cada um
destas formas.
2.7.1 Logon Interativo
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 do
sistema operacional.
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 de
rotinas 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 entre
programas. A figura abaixo exemplifica uma situação em que o uso de concorrência é
benéfica
Figura 23 – Exemplo de situação em que o uso de concorrência é benéfico
2.8.1 Processos Independentes
LLeemmbbrree--ssee qquuee ccaaddaa pprrooggrraammaa eessttáá aassssoocciiaaddoo aa uumm pprroocceessssoo
Figura 24 – Todo programa está relacionado a um processo
2.8.2 Subprocessos
Em subprocesso existe a dependência existência ao processo pai que o criou.
Figura 24 – Subprocessos
2.8.3 Thread
As 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 economizar
recursos 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 mesmo
contexto de software
Figura 26 – Thread
A figura abaixo mostra um programa em java desenvolvido utilizando a
programação multithread. No referido programa são criadas 5 threads em que cada uma
executa chama a função PrintHello.
Figura 27 – Programação Multithread
Figura 28 – Possível saída do programa anterior
	Introdução
	Processos e Concorrência
	Estrutura de um Processo
	Contexto de Hardware
	Contexto de Software
	Espaço de Endereçamento
	Bloco de Controle de um Processo
	Listagem de Processos no Linux
	Estados de um Processo
	Mudanças de Estado de um Processo
	Tipos de Processos
	Formas de Criação de um Processo
	Logon Interativo
	Via Linguagem de Comandos
	Via Rotinas do Sistema Operacional
	Processos Independentes, Subprocessos e Threads
	Processos Independentes
	Figura 24 – Todo programa está relacionado a um processo
	Subprocessos
	Figura 24 – Subprocessos
	Thread
	Figura 26 – Thread
	Figura 27 – Programação Multithread
	Figura 28 – Possível saída do programa anterior

Outros materiais