• Nenhum resultado encontrado

05 Sistemas operacionais - Processo v2

N/A
N/A
Protected

Academic year: 2021

Share "05 Sistemas operacionais - Processo v2"

Copied!
33
0
0

Texto

(1)

PROCESSO

SISTEMAS OPERACIONAIS

Prof. Filippo Valiante Filho http://prof.valiante.info

(2)

INTRODUÇÃO

Processo = programa em execução.

São executados de forma concorrente. Quando há múltiplas CPUs (multiprocessamento) é possível a execução simultânea de processos.

(3)

ESTRUTURA DO PROCESSO

Indo um pouco além...

O processo é um programa em execução, mas é preciso garantir a concorrência e armazenar as informações de contexto para permitir que o processo volte a ser executado.

Assim o processo pode ser definido como “o conjunto necessário de informações para que o sistema operacional implemente a concorrência de programas”, ou “o ambiente onde o programa é executado”.

(4)

ESTRUTURA DO PROCESSO

Concorrência de processos → Mudança/Chaveamento de contexto.

(5)

ESTRUTURA DO PROCESSO

3 partes além do programa:

Contexto de hardware

Contexto de software

Espaço de endereçamento (memória principal)

(6)

CONTEXTO DE HARDWARE

Armazena as informações dos registradores da CPU como o PC (Program Conter), PSW (Program Status Word) e registradores de propósito geral.

Necessário para se poder retornar ao processo posteriormente.

Chaveamento/mudança de contexto =>

(7)

CONTEXTO DE SOFTWARE

Algumas características definidas na criação do processo e outras dinâmicas.

Composto por 3 grupos de informações:

Identificação

Quotas

(8)

CONTEXTO DE SOFTWARE

Identificação

PID (Process Identification)

Número único que identifica o processo. Pode haver um nome também.

UID (User ID)

Identificação do usuário que criou o processo (proprietário / owner). Usado nas política de segurança.

(9)

CONTEXTO DE SOFTWARE

Quotas

Limites de recursos do sistema que o processo pode alocar.

Exemplos:

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;

Número máximo de processos, subprocessos e threads que podem ser criados.

(10)

CONTEXTO DE SOFTWARE

Privilégios

Ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional.

Privilégios podem afetar o próprio processo como Prioridade de execução e quotas;

Processos podem ter privilégios que afetam o sistema como, por exemplo, alterar regras de segurança, criar outros processos privilegiados e alterar configurações do sistema. A execução desses processos requer um usuário

(11)

ESPAÇO DE ENDEREÇAMENTO

Área de memória principal pertencente ao processo onde instruções e dados do programa são armazenados para execução.

(12)

ESTRUTURA DO PROCESSO

Contexto de hardware

Contexto de software

Espaço de endereçamento

(13)

BLOCO DE CONTROLE DO PROCESSO (PCB)

PCB (Process Control Block).

Reúne todos os dados do processo.

Residem na memória principal em uma área exclusiva do sistema operacional.

(14)

ESTADOS DO PROCESSO

Execução (running)

Processo na CPU.

Pronto (ready)

Aguardando sua vez para ir à CPU. Escalonamento!

Espera (wait) ou bloqueado (blocked)

Depende de algo antes de poder prosseguir (E/S, temporização, etc.).

O SO organiza filas de processos em estado de espera e pronto e pode (deve) estabelecer prioridades.

(15)

MUDANÇAS DE ESTADO DO PROCESSO

Causadas por eventos voluntários, ou seja, originados pelo próprio processo (p.ex. uma operação de E/S) ou involuntários, ou seja, originados pelo SO (p.ex. limite de tempo de execução do processo).

4 possibilidades de mudança:

Pronto → Execução;

Execução → Espera;

Espera → Pronto;

Execução → Pronto. Machado e Maia (2013)

(16)

MUDANÇAS DE ESTADO DO PROCESSO

Swapping

Processos em estado de espera ou pronto podem ser “transferidos” da memória principal, caso não haja espaço suficiente, para a memória secundária.

A saída da memória principal é o swap out.

A volta para a memória principal é o swap in.

O processo fora da memória principal, ou “não residente, é chamado de outswapped.

(17)

MUDANÇAS DE ESTADO DO PROCESSO

swap out

swap in

outswapped

swap out

Adaptado de Machado e Maia (2013)

(18)

CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS

Estado de criação (new)

O SO cria o PCB mas não pode colocá-lo no estado de pronto.

Criação de Processos

O processo pode ser criado de forma interativa pelo usuário (CLI ou GUI), ou a partir de outro programa, invocando a rotina do sistema operacional para criação de processos (fork no Unix/Linux e CreateProcess no Windows).

(19)

CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS

Estado de término (exit)

O processo não está mais ativo, mas o SO pode coletar algumas informações antes de eliminá-lo por completo.

O processo pode ser terminado normalmente, eliminado por outro processo, ou eliminado de maneira forçada pela ausência de recursos disponíveis no sistema.

(20)

CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS

(21)

AFINIDADE DE PROCESSOS

PROCESSOS CPU-BOUND E I/O BOUND

Processos CPU-bound

Passam maior parte do tempo nos estados pronto e execução.

Processos I/O-bound

Passam maior parte do tempo no estado de espera.

Lembram dos

perfis dos

programas!?

(22)

PROCESSOS FOREGROUND E BACKGROUND

Os processos possuem dois canais de comunicação. Um de entrada (input) e outro de saída (output).

Processos foreground (primeiro plano)

Permitem a interação direta com o usuário. Canais de entrada e saída associados a um terminal (seja shell ou GUI).

Processos background (segundo plano)

(23)

PROCESSOS FOREGROUND E BACKGROUND

(24)

PIPES

Podemos associar o canal de saída de um processo ao canal de entrada de outro processo através de um pipe (tubo, “|”).

(25)

PROCESSOS INDEPENDENTES, SUBPROCESSOS E

THREADS

Diferentes maneiras de se implementar a concorrência dentro de uma aplicação.

O código é dividido em partes que possam trabalhar de forma cooperativa.

Processos independentes são... Independentes do processo que os criou.

Subprocessos possuem uma estrutura hierárquica. O processo-filho, ou subprocesso, mantém o vínculo com o processo-pai que o criou. E ainda pode criar outros subprocessos.

Ao se eliminar um processo-pai, todos os seus subprocessos também são eliminados.

(26)

PROCESSOS INDEPENDENTES, SUBPROCESSOS E

THREADS

Cada subprocesso tem seu próprio PCB. Isto implica em consumo de recursos do sistema e em maior complexidade para comunicação e sincronismo entre

processos.

Subprocessos podem compartilhar quotas com o processo-pai.

(27)

PROCESSOS INDEPENDENTES, SUBPROCESSOS E

THREADS

Threads, ou “linhas de execução”, são

mais eficientes e economizam recursos do sistema.

Em um ambiente multithread, um processo pode suportar múltiplas threads, cada qual associada a uma parte do código.

Apenas o contexto de hardware

precisa ser exclusivo de cada thread.

As threads de um processo podem ser executadas de forma concorrente.

(28)

PROCESSOS DO SISTEMA OPERACIONAL

Muitos serviços do sistema operacional podem ser implementados através de processos, diminuindo o código do kernel e tornando-o mais confiável, além de consumir menos recursos do sistema e melhorar seu gerenciamento.

Por exemplo:

Serviços de rede;

Contabilização do uso de recursos;

Gerência de impressão;

(29)

SINAIS

Similar às interrupções... O SO envia um sinal ao processo, porém o processo obviamente só pode responder quando for escalonado (selecionado para execução). Até mesmo se o sinal for para a eliminação do processo.

(30)

SINAIS

Similar às interrupções... É preciso salvar o contexto. O sinais são tratados pelo signal handler (tratador de sinais), geralmente no kernel do sistema.

O sinal está para o processo como as interrupções e exceções estão para o sistema operacional.

(31)

NA PRÁTICA

Veja o Monitor do Sistema no desktop.

Verifique os comandos:

ps, top e htop

kill, xkill, killall e killall5

bg, fg, jobs e o operador “&”

Verifique os operadores “|”, “>”, “>>”, “<” e “<<” relacionados ao redirecionamento dos canais de entrada e saída dos processos.

(32)

NA PRÁTICA

Veja o Gerenciador de Tarefas.

Veja os comandos:

tasklist

taskkill

O comando ps também funciona no PowerShell.

Os redirecionadores “>”, “>>”, “<” e “<<” também funcionam no Windows.

(33)

Referências

Machado, Francis Berenger

e Maia, Luiz

Paulo. Arquitetura de Sistemas Operacionais

- 5ª edição. LTC Editora. 2013.

Referências

Documentos relacionados

A placa EXPRECIUM-II possui duas entradas de linhas telefônicas, uma entrada para uma bateria externa de 12 Volt DC e uma saída paralela para uma impressora escrava da placa, para

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

As questões acima foram a motivação para o desenvolvimento deste artigo, orientar o desenvol- vedor sobre o impacto que as cores podem causar no layout do aplicativo,

Desta forma, conforme Winnicott (2000), o bebê é sensível a estas projeções inicias através da linguagem não verbal expressa nas condutas de suas mães: a forma de a

5) “Estado da arte” do desenvolvimento local sertaginense. “A Sertã continua a ser pequenina e com pouca população. O setor turístico tem vindo a melhorar e temos

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Foi membro da Comissão Instaladora do Instituto Universitário de Évora e viria a exercer muitos outros cargos de relevo na Universidade de Évora, nomeadamente, o de Pró-reitor (1976-

These gases are emitted into the atmosphere from natural aquatic sources, terrestrial ecosystems and anthropogenic sources (Tremblay, et al., 2011). Foram usadas as