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
SISTEMA OPERACIONAL DE REDE:
✓ NETWARE
✓ WINDOWS NT
✓ UNIX
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
SISTEMAS OPERACIONAIS DISTRIBUÍDOS
PROCESSOS
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
PROCESS CONTROL BLOCK
MULTITAREFA
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.
CONTEXTO DE HARDWARE DO PROCESSO -
MUDANÇA DE CONTEXTO
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
MUDANÇA DE ESTADOS DE UM PROCESSO
PROCESSO IO/CPU BOUND
PROCESSO CPU BOUND
PROCESSO IO BOUND
COMUNICAÇÃO ENTRE PROCESSOS
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.
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
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;
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
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)
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
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)
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
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.
SINCRONIZAÇÃO ENTRE PROCESSOS
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
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.
SINCRONIZAÇÃO ENTRE PROCESSOS
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