• Nenhum resultado encontrado

SISTEMAS DISTRIBUÍDOS

N/A
N/A
Protected

Academic year: 2021

Share "SISTEMAS DISTRIBUÍDOS"

Copied!
29
0
0

Texto

(1)

SISTEMAS DISTRIBUÍDOS

Prof. Kleber Carrhá

[email protected]

www.carrha.com.br

(2)

SISTEMAS OPERACIONAIS DE REDE (SOR)

CADA NÓ POSSUI O SEU PRÓPRIO SISTEMA OPERACIONAL, ALÉM DE HARDWARE E SOFTWARE QUE POSSIBILITAM AO SISTEMA TER ACESSO A OUTROS COMPONENTES DE REDE E COMPARTILHANDO RECURSOS

- FUNÇOES DE UM SOR:

✓ CÓPIA REMOTA

✓ EMULAÇÃO DE TERMINAL

✓ IMPRESSÃO REMOTA

✓ CORREIO ELETRÔNICO

✓ GERÊNCIA REMOTA

(3)

SISTEMA OPERACIONAL DE REDE:

✓ NETWARE

✓ WINDOWS NT

✓ UNIX

(4)

SISTEMAS OPERACIONAIS DISTRIBUÍDOS

- CADA COMPONENTE DE REDE TAMBÉM POSSUI SEU PRÓPRIO SISTEMA OPERACIONAL, MEMÓRIA, PROCESSADOR E DISPOSITIVOS.

- O QUE DEFINE UM SISTEMA DISTRIBUÍDO É A EXISTÊNCIA DE UM RELACIONAMENTO MAIS FORTE ENTRE OS SEUS COMPONENTES, ONDE OS SISTEMAS OPERACIONAIS SÃO GERALMENTE OS MESMOS.

- PARA O USUÁRIO E SUAS APLICAÇÕES É GERALMENTE COMO SE NÃO EXISTISSE UMA REDE DE COMPUTADORES, MAS SIM UM ÚNICO SISTEMA CENTRALIZADO

- A GRANDE VANTAGEM DESTE SISTEMA É O BALANCEAMENTO DE CARGA

(5)

SISTEMAS OPERACIONAIS DISTRIBUÍDOS

(6)

PROCESSOS

(7)

PROCESSOS

MODO GERAL.

UM PROGRAMA EM EXECUÇÃO.

MODO CONCEITUAL

O CONCEITO DE PROCESSO PODE SER DEFINIDO COMO SENDO O AMBIENTE ONDE SE EXECUTA UM PROGRAMA

PCB PROCESS CONTROL BLOCK

O SISTEMA OPERACIONAL MATERIALIZA O PROCESSO ATRAVÉS DE UMA ESTRUTURA DE DADOS (PCB). ATRAVÉS DESTA ESTRUTURA O SISTEMA OPERACIONAL MANTÉM TODAS AS INFORMAÇÕES SOBRE O PROCESSO

(8)

PROCESS CONTROL BLOCK

(9)

MULTITAREFA

(10)

PARTES DE UM PROCESSO

UM PROCESSO PODE SER DIVIDIDO EM TRÊS PARTES:

- HARDWARE

CONSTITUI-SE BASICAMENTE DOS REGISTRADORES DE PROPÓSITO GERAL (AX, BX, CX, DX), APONTADOR DE INSTRUÇÃO (IP), STACK POINTER (SP) E BITS DE ESTADO

- SOFTWARE

ESPECIFICA CARACTERÍSTICAS DO PROCESSO QUE VÃO INFLUIR NA EXECUÇÃO DE UM PROGRAMA COMO: PRIORIDADE, NÚMERO DE ARQUIVOS ABERTOS, ETC.

- 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.

(11)

CONTEXTO DE HARDWARE DO PROCESSO -

MUDANÇA DE CONTEXTO

(12)

ESTADOS DE UM PROCESSO

UM PROCESSO EM UM SISTEMA TAREFA NÃO É EXECUTADO O TEMPO TODO PELO PROCESSADOR, ELE PASSA POR UMA SÉRIE DE ESTADOS QUE SÃO BASICAMENTE OS SEGUINTES:

✓NOVO - QUANDO O PROCESSO ESTÁ SENDO CRIADO

✓PRONTO - ESTÁ AGUARDANDO UMA OPORTUNIDADE PARA EXECUTAR, OS SO IRÁ DETERMINAR QUAL PROCESSO IRÁ SER EXECUTADO DENTRE OS QUE ESTÃO NO ESTADO DE PRONTO

✓EXECUTANDO - ESTÁ SENDO PROCESSADO PELA CPU

✓INTERROMPIDO - ESTÁ AGUARDANDO ALGUM EVENDO EXTERNO OU POR ALGUM RECURSO PARA PODER PROSSEGUIR SEU PROCESSAMENTO

✓FINALIZADO- O PROCESSO ESTÁ FINALIZADO E SEUS RECURSOS JÁ FORAM LIBERADOS

(13)

MUDANÇA DE ESTADOS DE UM PROCESSO

(14)

PROCESSO IO/CPU BOUND

PROCESSO CPU BOUND

PROCESSO IO BOUND

(15)

COMUNICAÇÃO ENTRE PROCESSOS

(16)

COMUNICAÇÃO ENTRE PROCESSOS

EM UM AMBIENTE MULTITAREFA, OS PROCESSOS PODEM SER CLASSIFICADOS CONFORME A SUA INDEPENDÊNCIA/DEPENDÊNCIA DE OUTROS PROCESSOS:

INDEPENDENTES - O PROCESSO INICIA A SUA EXECUÇÃO E PROSSEGUE ATÉ A SUA FINALIZAÇÃO, DESTA FORMA NÃO AFETA E NEM É AFETADO POR OUTROS

PROCESSOS EM EXECUÇÃO

✓COOPERATIVOS - O PROCESSO COOPERA COM OUTROS PROCESSOS, DESTA FORMA, SUA EXECUÇÃO AFETA OU É AFETADO POR OUTROS PROCESSOS.

EM GERAL OS PROCESSOS COOPERANTES COMPARTILHAM ALGUM RECURSO OU TROCAM MENSAGENS ENTRE SI.

(17)

MOTIVOS PARA COOPERAÇÃO ENTRE PROCESSOS

✓ COMPARTILHAMENTO DE RECURSOS

- VÁRIAS PESSOAS UTILIZANDO O MESMO ARQUIVO - COMPARTILHAMENTO DE PERIFÉRICOS

✓ AUMENTO DA VELOCIDADE DE PROCESSAMENTO

- DIVISÃO DE UM PROCESSO EM SUBTAREFAS INDEPENDENTES

✓ MODULARIDADE

- CONSTRUÇÃO DE SISTEMAS MODULARES

✓ CONVENIÊNCIA

(18)

MECANISMOS DE COMUNICAÇÃO

UMA EXECUÇÃO CONCORRENTE QUE REQUER COOPERAÇÃO ENTRE PROCESSOS REQUER TAMBÉM MECANISMOS QUE PERMITAM AOS PROCESSOS COMUNICAREM- SE UNS COM OS OUTROS E SINCRONIZAREM SUAS AÇÕES.

OS MECANISMOS COMUMENTE UTILIZADO ENTRE OS PROCESSOS COOPERANTES SÃO:

✓ MEMÓRIA COMPARTILHADA

✓ TROCA DE MENSAGENS;

(19)

COMUNICAÇÃO POR MEMÓRIA COMPARTILHADA

OS PROCESSOS UTILIZAM UMA REGIÃO DE MEMÓRIA FÍSICA COMUM, ONDE TODOS REALIZAM AS OPERAÇÕES DE LEITURA E GRAVAÇÃO

(20)

COMUNICAÇÃO POR TROCA DE MENSAGENS

TROCA DE MENSAGENS É UM MECANISMO DE COMUNICAÇÃO ENTRE

PROCESSOS, IMPLEMENTADO PELO SISTEMA OPERACIONAL ATRAVÉS DE DUAS ROTINAS DE SISTEMA:

✓ SEND - ENVIA UMA MENSAGEM

✓ RECEIVE - RECEBE UMA MENSAGEM

✓ SEND (RECEPTOR, MENSAGEM)

✓ RECEIVE (TRANSMISSOR, MENSAGEM)

(21)

FORMAS DE ENDEREÇAMENTO

DIRETO - O PROCESSO QUE DESEJA ENVIAR OU RECEBER A MENSAGEM ENDEREÇA EXPLICITAMENTE O NOME DO PROCESSO RECEPTOR OU

TRANSMISSOR, NESTE CASO SÓ EXISTE A COMUNICAÇÃO ENTRE DOIS PROCESSOS.

INDIRETO - UTILIZA UMA ÁREA COMPARTILHADA, ONDE AS MENSAGENS PODEM SER COLOCADAS PELO PROCESSO TRANSMISSOR E RETIRADAS PELO RECEPTOR, ESTA ÁREA É CONHECIDO COMO MAILBOX. ESTE MAILBOX

APRESENTA CARACTERÍSTICAS NO MOMENTO DA CRIAÇÃO, COMO POR EXEMPLO: QUANTIDADE DE MENSAGENS, TAMANHO DE MENSAGENS.

VÁRIOS PROCESSOS PODEM ESTAR ASSOCIADOS A UM MAILBOX, AS FUNÇÕES SEND/RECEIVE ENDEREÇAM O MAILBOX

(22)

TROCA DE MENSAGENS

DIRETO P1 - SEND (P2, MENSAGEM)

RECEIVE (P1, MENSAGEM) P2 - SEND (P1, MENSAGEM)

RECEIVE (P1, MENSAGEM)

INDIRETO SEND (MAILBOX, MENSAGEM) RECEIVE (MAIBOX, MENSAGEM) SEND (MAILBOX, MENSAGEM) RECEIVE (MAIBOX, MENSAGEM)

(23)

TROCA DE MENSAGENS

INDEPENDENTE DA FORMA DE ENDEREÇAMENTO ENTRE PROCESSOS, A COMUNICAÇÃO ENTRE ELES PODE ELES PODE BLOQUEAR OU NÃO OS PROCESSOS ENVOLVIDOS. BASICAMENTE EXISTEM DUAS FORMAS DE COMUNICAÇÃO ENTRE PROCESSOS ATRAVÉS DA TROCA DE MENSAGENS:

SINCRONA, UM PROCESSO ENVIA UMA MENSAGEM (SEND) E FICA ESPERANDO ATÉ QUE O PROCESSO RECEPTOR LEIA A MENSAGEM, O QUANDO O PROCESSO TENTA RECEBER UMA MENSAGEM (RECEIVE) E PERMANECE ESPERANDO, ATÉ QUE O PROCESSO TRANSMISSOR ENVIE A MENSAGEM. ESTE TIPO DE COMUNICAÇÃO. NA COMUNICAÇÃO SINCRONA NÃO EXISTE NECESSIDADE DE BUFFERS PARA GUARDAR AS MENSAGENS

(24)

TROCA DE MENSAGENS

ASSINCRONA, NEM RECEPTOR PERMANECE AGUARDANDO O ENVIO DE UMA MENSAGEM, NEM O TRANSMISSOR O SEU RECEBIMENTO, NESTE CASO EXISTE A NECESSIDADE DE BUFFERS PARA ARMAZENAR AS MENSAGENS.

DEVE EXISTIR MECANISMOS QUE PERMITAM AO PROCESSO IDENTIFICAR SE A MENSAGEM FOI ENVIADA OU RECEBIDA

✓VANTAGEM - A GRANDE VANTAGEM DA COMUNICAÇÃO ASSINCRONA É O GRAU DE PARALELISMO NA EXECUÇÃO DOS PROCESSOS, COMPARADO À COMUNICAÇÃO SÍNCRONA, ONDE A NECESSIDADE DE ESPERA DOS PROCESSOS REDUZ O GRAU DE CONCORRÊNCIA.

(25)

SINCRONIZAÇÃO ENTRE PROCESSOS

(26)

SINCRONIZAÇÃO ENTRE PROCESSOS

✓ É COMUM PROCESSOS QUE TRABALHAM JUNTOS (CONCORRENTES) COMPARTILHAREM RECURSOS DO SISTEMA, COMO ARQUIVOS, REGISTROS DISPOSITIVOS E ÁREAS DE MEMÓRIA.

✓ DE MANEIRA GERAL, O COMPARTILHAMENTO DE RECURSOS ENTRE PROCESSOS PODE GERAR SITUAÇÕES INDESEJÁVEIS CAPAZES DE COMPROMETER O SISTEMA.

✓ O MECANISMO QUE GARANTE O ACESSO AOS RECURSOS COMPARTILHADOS SÃO CHAMADOS DE MECANISMOS DE SINCRONIZAÇÃO

(27)

SINCRONIZAÇÃO ENTRE PROCESSOS

CONSIDERAREMOS DOIS PROCESSOS CONCORRENTES TROCANDO INFORMAÇÕES ATRAVÉS DE OPERAÇÕES DE GRAVAÇÃO E LEITURA EM UM BUFFER (MEMÓRIA COMPARTILHADA)

UM PROCESSO SÓ PODE GRAVAR DADOS NO BUFFER SE ELE NÃO ESTIVER CHEIO E UM PROCESSO SÓ PODE LER DADOS ARMAZENADOS DO BUFFER SE EXISTIR ALGUM DADO PARA SER LIDO. EM AMBOS OS CASOS OS PROCESSOS DEVERÃO AGUARDAR ATÉ QUE O BUFFER ESTEJA PRONTO PARA AS OPERAÇOES DE GRAVAÇÃO OU DE ESCRITA.

(28)

SINCRONIZAÇÃO ENTRE PROCESSOS

(29)

PROBLEMAS DE COMPARTILHAMENTO DE RECURSOS

EXEMPLO PRÁTICO: ATUALIZAÇÃO DE CONTA BANCÁRIA

SE DOIS CAIXAS ESTÃO MANIPULANDO A MESMA CONTA CORRENTE, UM REALIZA A OPERACÃO DE DÉBITO E OUTRO A OPERAÇÃO CRÉDITO.

SALDO ATUAL: R$ 200,00

VALOR DE DÉBITO - R$ 200,00 VALOR DO CRÉDITO - R$ 400,00

SE A OS DOIS CAIXAS ACESSAM SIMULTANEAMENTE A CONTA, O SALDO FINAL ESTARÁ ERRADO COM O VALOR DE R$ 600,00, QUANDO DEVERIA SER DE R$ 400,00

Referências

Documentos relacionados