• Nenhum resultado encontrado

Aula04 Processos

N/A
N/A
Protected

Academic year: 2021

Share "Aula04 Processos"

Copied!
35
0
0

Texto

(1)

Prof. Adolfo Guimarães

adolfoguimaraes@gmail.com

http://sites.google.com/site/adolfoguimaraes

Universidade Federal de Sergipe

Departamento de Sistema de Informação - Itabaiana 29/10/13

Sistemas Operacionais

Processos (Introdução)

(2)

Processos

 O que é um processo?

 De forma geral a gente viu que um processo é uma programa.

(3)

Processos

 O que é um processo?

 De forma geral a gente viu que um processo é uma programa.

 Um processo é mais do que simplesmente um

código de programa (Seção de Texto)  Contador do programa

 Pilha de processo  Seção de Dados

(4)

Estado de um processo

 Cada processo pode está em um dos seguintes

estados:

Novo: o processo está sendo criado

Em execução: as instruções estão sendo executadasEm espera: o processo está esperando a ocorrência

de algum evento

Pronto: o processo está esperando ser atribuído a

algum processador

(5)
(6)

Bloco de Controle

 Cada processo é representado por:

Bloco de Controle de Processo (PCB – Process Control Block)

(7)

Bloco de Controle

 O PCB armazena as seguintes informações

relacionadas a um processo:  Estado do processo

 Contador do programa  Registradores de CPU

 Informações de escalonamento de CPU  Informações de gerência de memória  Informações de contabilização

(8)
(9)

Estado de um processo

 Cada processo pode está em um dos seguintes

estados:

Novo: o processo está sendo criado

Em execução: as instruções estão sendo executadasEm espera: o processo está esperando a ocorrência

de algum evento

Pronto: o processo está esperando ser atribuído a

algum processador

(10)

Threads

 Até então trabalhamos com a ideia de que um

processo só executava uma ação por vez.

 Sendo assim, seria impossível digitar e fazer a correção ortográfica ao mesmo tempo em um processado de textos, por exemplo.

 Nos sistemas operacionais modernos isso não é

verdade.

 Um único processo pode ter vários fluxos de

(11)

Escalonamento de processos

 A CPU deve escalonar recursos para cada um dos

processo em execução

 Em um ambiente de multiprogramação, existem

processos sendo executados a todo momento para maximizar a utilização da CPU.

(12)

Escalonamento de processos

 A medida que o processo entra no sistema ele é

colocado em uma fila de jobs

A fila de jobs armazena todos os processos do

sistema

 O sistema operacional possui outras filas

Fila de processos prontos (ready queue)Fila de dispositivos (device queue)

 Cada dispositivo possui sua própria fila

 Os processos são alternados entre essas diversas

(13)
(14)
(15)

Operações sobre processos

 Os processos normalmente são:

 Executados de forma concorrentes

 Criados e Removidos Dinamicamente

 Os sistemas operacionais precisam fornecer um

(16)

Operações sobre processos

 Um processo pode criar diversos processos.  O processo que criou os novos processos é

chamado de processo pai.

O processo criado é denominado filho.

 Cada processo filho pode criar novos processos.

(17)
(18)

Operações sobre processos

 Como os recursos são compartilhados?

 Pai e filho podem compartilhar todos os recursos  O filho compartilha de parte dos recursos do

processo pai

(19)

Operações sobre processo

 Como os processos são executados?

 Pais e filhos são executados concorrentemente  Pais esperam os filhos terminarem de executar

 Como dividem o espaço de endereços reservado ao

processo pai?

 O processo filho é uma duplicata do processo pai  O processo filho tem um novo programa carregado

(20)

Operações sobre processo

 Término do processo

 Quando um processo executa sua última instrução ele solicita ao sistema operacional que o exclua

através de uma chamada de sistema exit();

 Um processo pode solicitar a finalização de um determinado processo.

Isso é feito através da syscall abort

(21)

Operações sobre processo

 Um pai pode terminar a execução de um de seus

filhos por vários motivos:

 O filho excedeu os recursos que foram alocados.  A tarefa atribuída ao filho não é mais exigida

 O pai está saindo, e o sistema operacional não permite que um filho continue se seu pai terminar

(22)

Processos cooperativos

 Um processo pode ser influenciado por outros

processos ou afetar outros processos.

 Esse tipo de processo é denominado de:

 Processos cooperativos

 O contrário deste tipo de processo é denominado:

(23)

Processos cooperativos

 Por que é interessante construir um ambiente que

permita que processos sejam cooperativos?  Compartilhamento de informações

 Velocidade de computação  Modularidade

 Conveniência

 Para que isso seja possível é preciso que os

processos se comuniquem entre si e sincronizem suas ações.

(24)

Processos cooperativos

 Exemplo:

 O problema do PRODUTOR-CONSUMIDOR

 Um processo produtor produz informações que são

(25)

Comunicação entre processos

 No exemplo do produtor-consumidor, os processos

se comunicam em um ambiente de memória compartilhada.

 Eles se utilizam de um buffer implementado pelo

programador

 Outra forma de se obter o mesmo efeito é fornecer o

meio para os processos cooperativos se

comunicarem entre si através de um recurso de comunicação entre processos (IPC).

(26)

Comunicação entre processos

 O IPC fornece um meio de comunicação sem

precisar o compartilhamento de endereços de memória.

 Útil para processos que residem em diferentes máquinas

 Ex: um programa de bate-papo

 O IPC é implementado por meio de troca de

(27)

Comunicação entre processos

 Sistema de troca de mensagens

 A função de um sistema de troca de mensagens é permitir que os processos se comuniquem entre si sem recorrer a dados compartilhados

 Se dois processos A e B querem se comunicar, eles devem criar um canal de comunicação entre eles.

(28)

Comunicação entre processos

 Sistema de troca de mensagens

 Existem vários métodos para implementar um canal de comunicação logicamente e as

operações send/receive:

 Comunicação direta ou indireta

 Comunicação simétrica ou assimétrica  Buffering automático ou explícito

 Enviar por cópia ou referência

(29)

Comunicação entre processos

 Comunicação Direta

 Os processos devem ser identificados explicitamente

 send(A, message)  receive(B, message)

 Outra forma é identificando apenas para quem você manda a mensagem:

 send(A, message)  receive(id, message)

(30)

Comunicação entre processos

 Comunicação Indireta

 Nesse caso as mensagens são enviadas e

recebidas através de caixas de correios ou portas.  Uma caixa de correio pode ser vista de forma

abstrata como um objeto onde as mensagens podem ser colocadas e retiradas.

 Cada caixa possui uma identificação

 Dois processos só podem se comunicar se tiverem uma caixa de correio em comum.

(31)

Comunicação entre processos

 Comunicação Indireta

 send(C, message)  receive(C, message)

 Suponha que …

 Processos P1 P2 e P3 compartilham a mesma

caixa de correio C. P1 envia uma mensagem para C, enquanto P2 e P3 executam a operação de

(32)

Comunicação entre processos

 Comunicação indireta

 Suponha que os processos P1 P2 e P3

compartilham a mesma caixa de correio C. P1 envia uma mensagem para C, enquanto P2 e P3 executam a operação de receive em C. Quem

recebe a mensagem de P1?  Depende :)

 Permitir que um canal seja associado com no máximo dois processos

 Permitir que um canal execute o receive por vez  Permitir que o sistema seleciona arbitrariamente

(33)

Comunicação entre processos

 Sincronização …

 A troca de mensagem pode ser de dois tipos

 Bloqueante (síncrono)  Não-bloqueante (assíncrono)  Envio bloqueanteo  Envio não-bloqueante  Recepção bloqueante  Recepção não-bloqueante

(34)

Comunicação entre processos

 Buffering ...

 Independente do tipo de comunicação (direta ou indireta), as mensagens ficam retidas em uma fila temporária que podem ser de 3 tipos:

 Capacidade zero

 Capacidade limitada

(35)

35

OBRIGADO!!!

Referências

Documentos relacionados

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça

Estes sintomas podem ser explicados por um conjunto de fatores presentes na literatura, como presença de sarcopenia (11), fraqueza muscular respiratória (12), redução da

Mulheres e crianças, negros e índios, trabalhadoras domésticas ou retirantes da seca, lei e conflito, cultura e gênero, além de partidos e sindicatos, são hoje em

Com um caráter exploratório, este trabalho teve como objetivo verificar possíveis relações entre os IDHs longevidade, educação e renda com efetivo do rebanho bovino, produção e

Seus resultados dão margem a afirmar que, perante a complexidade de interações sociais compreendidas pela teoria da estruturação, os processos operados pela produtora

UNIVERSIDADE DE SÃO PAULO FACULDADE DE FILOSOFIA, LETRAS E CIÊNCIAS HUMANAS DEPARTAMENTO DE HISTÓRIA PROGRAMA DE PÓS-GRADUAÇÃO EM HISTÓRIA ECONÔMICA O cativeiro à sombra:

que o Teorema seja válido para todos os grupos cuja ordem do seu quociente pelo subgrupo de Fitting seja menor que |G/F (G)|... No entanto, como mostra a seguinte Proposição,

em Didelphis albiventris Lund, 1841 Resumo A leishmaniose é uma doença de caráter zoonótico que afeta milhões de pessoas no mundo, tendo como reservatório uma grande diversidade