Você está na página 1de 495

SISTEMAS OPERACIONAIS II

ltima Atualizao: 30/05/2010

Sistemas Operacionais II

Aspectos avanados de Sistemas Operacionais

Caching, replicao, sistema de arquivos, concorrncia, troca de mensagens, etc Distribuio tambm considerada Threads (fortemente recomendado) RMI (introduo)
Sistemas Operacionais II 2

Foco em Computao Paralela

Programao

Planejamento da Disciplina

18 encontros (2 trabalhos e 2 provas)


6 aulas tericas 1 aula prtica de modelagem de trabalho 1 seminrio 1 prova P1 6 aulas tericas 1 aula em laboratrio de programao 1 aula de apresentao de trabalho 1 prova P2
Sistemas Operacionais II 3

Referncias Utilizadas
Livros 1. Distributed Operating Systems, de Pradeep K. Sinha 2. Distributed Systems, de Andrew Tanenbaum 3. Coulouris Sites da Internet 1. Java Tutorial Track - threads, RMI, OO
Sistemas Operacionais II 4

Contextualizao da disciplina
Aula
I II III IV V VI VII VIII IX

Assunto
Motivao para a disciplina e contexto Reviso: Sistemas Operacionais Reviso: Redes de Computadores Computao Concorrente Modelos de Computao Concorrente Aula em Laboratrio Dvidas T1 Seminrio Reviso e preparao para P1 Prova P1
Sistemas Operacionais II 5

Sistemas Operacionais II Aula I

Sistemas Operacionais II

Notas Introdutrias

Sistemas Operacionais

De Rede Distribudos

Arquiteturas Paralelas e Distribudas Controle Centralizado x Distribudo

Vantagens e Desvantagens Transparncia, robustez, escalabilidade ...


Sistemas Operacionais II 7

Caractersticas desejadas

Sistemas Operacionais II Aula II

Sistemas Operacionais II

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
Sistemas Operacionais II 9

Exerccios e Agenda da prxima aula

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
10

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais HOJE! Execuo de processos em Rede Sistemas de arquivos distribudos

Sistemas Operacionais II

Comunicao Concorrncia Linguagens Concorrentes Sincronizao

troca de mensagens

Sistemas Operacionais II

11

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
12

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Reviso da Aula I

Sistemas de Computao Distribuda

Classificao quanto Arquitetura

CPU

CPU

Memria Global

CPU

CPU

hardware de interconexo

SISTEMAS DE PROCESSAMENTO PARALELO


Sistemas Operacionais II 13

Reviso da Aula I

Sistemas de Computao Distribuda

Classificao quanto Arquitetura

CPU

CPU

CPU

CPU

CPU

CPU

mem. local

mem. local

mem. local

mem. local

mem. local

mem. local

rede de comunicao

SISTEMAS DE COMPUTAO DISTRIBUDA


Sistemas Operacionais II 14

Reviso da Aula I (cont.)

SDC

Sistemas Oper. de Rede (SOR) Sistemas Oper. Distribudos (SOD)

Caractersticas
1. imagem do sistema 2. autonomia (kernels) 3. tolerncia a falhas

Abstrao e Transparncia Tarefas e Distribuio


Sistemas Operacionais II 15

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
16

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Reviso de SOs
Perifricos CPU Mouse

Teclado Computador Monitor

HD

Memria SISTEMA OPERACIONAL

Sistemas Operacionais II

17

Histria

Primeiro Mouse - Douglas Engelbart (1963)


Sistemas Operacionais II 18

Definio de SO

definio: camada de software entre o hardware e as aplicaes objetivos: tornar a utilizao mais eficiente, conveniente, simples

Diminuir tempo para construo de programas Reduo dos custos de software Uso racional dos recursos Esconder detalhes do hardware
Sistemas Operacionais II 19

SO e Usurios
U 3

Editor
Compilador

Warcraft Aplicaes
Planilha

U 4

U 2

Sistema Operacional

U 5

U 1

Hardware
U 6
Sistemas Operacionais II 20

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
21

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Servios em SOs

Tipos de servios

1) Principal: execuo de programas na memria principal

Arquivo contm um programa a ser executado SO recebe o nome do arquivo, aloca memria, copia o contedo para a memria, inicia sua execuo (seus comandos - PID)
Sistemas Operacionais II 22

Servios em SOs (cont.)


2) Abortar a execuo de programas

Laos infinitos O sistema precisa saber qual programa deve ser abortado (PID ou terminal) Servio implementado atravs do sistema de arquivos Criar, ler, escrever, excluir arquivos Leitura, cpia, impresso, consulta, atual. Renomear, obter tamanho, datas, etc
Sistemas Operacionais II 23

3) Utilizao de arquivos

Servios em SOs (cont.)


4) Acesso a perifricos

Acesso a discos magnticos Terminais Impressoras HD externos, pendrives Servios tipo alocao de perifricos Leitura, escrita, liberao
Sistemas Operacionais II 24

Basta acessar?

Servios em SOs (cont.)

Sistemas multiusurios

Problema: tarifao do uso dos recursos


Uso de CPU, memria Perifricos: impressoras, HD, teclado (!) Importncia Pq? identificao de gargalos

Monitorao dos recursos computacionais


Exemplos: pouca memria principal ou disco lento


Sistemas Operacionais II 25

Servios em SOs (cont.)


5) Contabilizao do uso dos recursos

Por usurios e programas Estatsticas de uso: tempo de processador gasto em um programa? Qual o espao em disco alocado por um usurio? Quantas pginas foram impressas (quota) Hora, data, processos, verso, etc
Sistemas Operacionais II 26

6) Outros servios

Servios em SOs (cont.)


7) Proteo aos usurios

Cancelamento de programas de outros Impresso pela quota de outros usurios Processos que invadem a memria Confiana nos usurios Garantir a coerncia, consistncia Integridade dos dados Confiana no sistema pelos usurios
Sistemas Operacionais II 27

Responsabilidade do SO

SO x Usurios

Como perceber um SO?


GUI (interfaces grficas) Consoles de execuo Chamadas de sistema Programas de sistema

Interface: grfica ou textual


Diferenas principais

Sistemas Operacionais II

28

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
29

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Chamadas de Sistema (CS)

Programas solicitam servios aos sistema operacional

A transferncia da execuo passada para o sistema operacional

Impresso na tela: comandos alto nvel (printf) x baixo nvel (INT 21H) Comandos ficam escondidos dentro de bibliotecas de compiladores Acesso aos perifricos (desenhar na tela)
Sistemas Operacionais II 30

CS - Kernel do SO

Ncleo do SO ltima camada antes do HW Interface Servios usados em outros programas

Sistemas Operacionais II

31

CS - Kernel do SO (cont.)

Parte do SO -> chamadas de sistema Kernel:


Gerncia do processador, memria virt. Gerncia da memria, protocolos comun. Sistema de Arquivos e E/S Gerncia do processador Alocao e liberao de memria fsica Instalao de novos tratad. de disposit.
Sistemas Operacionais II 32

Microkernel: servios mais bsicos


CS - Kernel do SO (cont.)

Usurios criam e usam aplicaes

Aplicaes

Microkernel Hardware

Outros exemplos?

Sistemas Operacionais II

Complexidade
33

No se preocupam com detalhes de implementao

Kernel

Programas de Sistema (PS)


Utilitrios Programas 'normais', executados fora do kernel do SO Implementam tarefas bsicas para utiliz.

So distribudos pelo fornecedor do SO Editores de texto (tarefas?) - CS!

Exemplo: utilitrios para manip. arquivos

Sistemas Operacionais II

34

Programas de Sistema (PS)

Antigamente ('60)

Compiladores vinham com o SO Com a expanso, passaram a ser programas


Visual C++ (Microsoft) GCC (GNU Compiler Collection, Linux) BCC (Borland C Compiler)

Mais importante programa de sistema

interpretador de comandos
Sistemas Operacionais II 35

Programas de Sistema (PS)

Interpretador de comandos

ativado pelo SO sempre que o usurio inicia sua sesso de trabalho recebe comandos e executa-os interpreta as informaes dos usurios

analisa o contedo e executa interpretador se confunde com a GUI

popularizao do SO Windows

Linux: importncia (GUI um utilitrio)


Sistemas Operacionais II 36

Programas de Sistema (PS)

Um comando do SO utiliza diversas chamadas interna de sistema Exemplo: listar diretrio


Ler o comando para listar o diretrio Interpretar o comando internamente Ler o diretrio do sistema de arquivos Formatar resultados Imprimir resultados na tela
Sistemas Operacionais II 37

Programas de Sistema (PS)

Chamada listar diretrio


uma chamada de sistema um utilitrio

Realiza as MESMAS chamadas internas Interpretador de Comandos e GUI


Realizam as mesmas operaes internas Evitam a memorizao de comandos Programadores x Usurios


Sistemas Operacionais II 38

Experincia e objetivos de usurios

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
39

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Gerncia do Processador

Informaes que o SO precisa manter a respeito de processos


prioridade localizao: diretrio tamanho identificadores de arquivos informaes para estatsticas estado: apto, executando, bloqueado contexto de execuo (registradores)
Sistemas Operacionais II 40

processo

Exemplo de Descritor
struct descritor { char estado_atual; int prioridade; unsigned int inicio_memoria; unsigned int tamanho_memoria; struct arquivo arquivos_abertos[20]; unsigned int tempo_cpu; unsigned int proc_PC; unsigned int proc_SP; unsigned int proc_ACC; unsigned int proc_RX; struct desc_proc *proximo; };
Sistemas Operacionais II 41

Algoritmo para rodar processo


1) De acordo com total de descritores, cria lista de descritores (encadeados); 2) Inicializar descritores para 'livres'; 3) Cria lista de processos 'esperando' CPU; 4) Cria apontador de processo 'usando'; 5) Retira um descritor da lista de 'livres' 6) Se descritor for nulo, no pode 7) Chamada para execuo de processo
Sistemas Operacionais II 42

Algoritmo para rodar processo


8) Inicializa o descritor com as informaes 9) Encontra o programa no disco 10) Aloca memria para execuo 11) Carrega programa para memria principal 12) Associar PID ao processo 13) Inserir na lista de 'esperando' pela CPU >Processo passa a disputar tempo<
Sistemas Operacionais II 43

Execuo de Processos

Simplificao

Detalhes da arquitetura (Mac, Win, Linux) Outros mdulos do SO Semelhante criao Liberao de memria e recursos (arq.) Retirada do descritor de listas Reaproveitamento de descritores Associao de grupos de processos
Sistemas Operacionais II 44

Destruio de processos

Execuo de Processos

Como voc implementaria (em alto-nvel) o conceito de Grupos de Processos?


Quais entidades envolvidas? Como executar mesmas tarefas para grupos de processos? Como realizar o processamento? Como guardar as informaes? Quais estruturas de dados? Extenso: aumente o problema
Sistemas Operacionais II 45

Chaveamento de Contexto

Multiprogramao: compartilhamento do processador entre os processos


processo1 processo5 processo8

processo3 processo4 processo7


baixa prioridade

CPU

processo2 processo9 processo23 processo14

Sistemas Operacionais II

alta prioridade
46

processo2

Chaveamento de Contexto

Impresso de Paralelismo Processos mais lentos (esperando perifricos) podem ser 'substitudos' por outros processos Necessidade de interrupo de processos

Execuo em outro momento Salvar contexto de execuo de processo Mais tarde ser restaurado
Sistemas Operacionais II 47

Chaveamento de Contexto de Processo


Chaveamento de Contexto

Processos devem fazer o chaveamento. (FALSO!!!!)

Registradores dos processos


SP, PC, Registradores auxiliares Porque a memria no chaveada? O que pode acontecer? Salvos quando perdem o processador Recuperados quando ganham o proc.
Sistemas Operacionais II 48

Erros no processo de chaveamento

Contedo dos registradores


Algoritmo para Escalonamento


1) Carregar o contexto do processo
- Inicializao

2) Rodar o processo
- Como antes

3) Salvar o contexto do processo 4) Rodar outros processos

Mdulo que repe o contexto: dispatcher

Sistemas Operacionais II

49

Algoritmo para Escalonamento


Como seria feito um escalonador? Outras ideias Uso da pilha


Salvar na pilha, carregar depois Uso da memria Se programa ocupar toda a memria?

Problemas

Solues: uso de pilha adicional (reserva)


Sistemas Operacionais II 50

Threads
Processo Linha de execuo

Processo

Fluxo de execuo Mltiplos fluxos Mais leve que gerncia de processos Threads x Processo
51

Linha de execuo

Gerncia de threads

Linha de execuo

Linha de execuo

Problemas de contexto

Sistemas Operacionais II

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
52

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Escalonamento de Processos

Disputa de recursos por processos Qual processo vai ocupar a CPU? Escalonamento de processos

Curto prazo Longo prazo

Memria principal pode ser sobrecarregada?


Alocao esttica de memria Soluo: swapping


Sistemas Operacionais II 53

Escalonamento de Processos

Exemplo:

10 processos, somente 8 na memria 2 processos esto em disco Revezamento Problemas de swapping

Swap-out (disco) e swap-in (memria) Questes de velocidade Escalonador ligado gerncia de memria e gerncia do processador
Sistemas Operacionais II 54

Algoritmos de Escalonamento

Objetivo: manter a CPU ocupada 100% Baixo tempo de resposta ao usurio

Rodar processos sem precisar esperar Na CPU esto misturados

Processos I/O bound e CPU bound

Homogeneizar os processos executados


io-b processo3 processo42 cpu-b processo7 processo1 cpu-b io-b

io-b

CPU

processo23 processo4 cpu-b

Sistemas Operacionais II

55

Algoritmos de Escalonamento

FIFO (first in first out)


Processos executam na ordem Libera quando faz chamada de sistema Ou erro na execuo Problema: no distingue IO-b de CPU-b Processo selecionado: menor ciclo Lista ordenada pela prioridade dos proc.
Sistemas Operacionais II 56

SJF (shortest job first)

Prioridade

Algoritmos de Escalonamento

Fatia de tempo (round-robin)

Cada processo roda em uma fatia de tempo

P1 P2 P3 P4 tempo

Problema: tamanho da fatia de tempo


Sistemas Operacionais II 57

Exerccio

Crie uma lista de processos


Associe prioridades Associe nmero de comandos Imprima a lista de acordo com um algoritmo de escalonamento Faa outros algoritmos Inclua informao temporal Aumente a complexidade
Sistemas Operacionais II 58

Simule a execuo do escalonador


Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
59

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Gerenciamento de Memria

Memria lgica

Processo enxerga e enderea Implementada pelos circuitos integrados

Memria fsica

Espao de endereamento Unidade de Gerncia de Memria (MMU)


Mecanismos para gerenciamento Proteo da memria


Sistemas Operacionais II 60

Gerenciamento de Memria

endereo lgico Processador MMU

endereo fsico Memria Fsica

Transformaes

Espao de endereamento Base e deslocamentos


61

Sistemas Operacionais II Paginao, segmentao, etc...

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
62

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Sistemas de Arquivos

Arquivos, diretrios, organizao memria Propriedades de arquivos

Tipo, tamanho, data, ID, lista de usurios Criao, destruio, leitura, alterao Escrita, execuo, renomeao, etc
Usurio Professor Secretria Leitura Direito Leitura e escrita
Sistemas Operacionais II 63

Operaes bsicas

Gerenciamento do controle de acesso

Sistema de Arquivos

Retomar sistema de arquivos

Sistema de arquivos distribudos

Processos de leitura, escrita, armazenamento em disco, tabela de alocao de arquivos, etc, etc, etc Detalhes de implementao e exemplos

Sistemas Operacionais II

64

Agenda

Programa de Aprendizagem Reviso da Aula I Reviso de SO


Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
65

Sistemas Operacionais II Exerccios e Agenda da prxima aula

Exerccios I

Descubra os elementos existentes em um Sistema Operacional Descubra suas divises e servios prestados Enumere seus atributos Crie suas interfaces de operao

Crie atributos

Simule em um alto-nvel como funcionaria Aumente a complexidade do problema


Sistemas Operacionais II 66

Exerccios II

Faa um simulador de um SO;

Elementos: Processador, Processo, Arquivo, Memria, Escalonador, Comando Operaes: inserir na lista de processos, trocar atributos, gerenciar a alocao de memria, relatrios de processos executados, chaveamento de contexto Avanado: sistema multi-processado (>1 processador), processos com threads Mudanas: cada processo executa uma Sistemas Operacionais II lista de comandos, I/O-b, CPU-b
67

Exerccios III

Faa um simulador visual (GUI) de um sistema operacional

Janelas para visualizar execuo do processador Parar/Continuar Definir prioridades de processos Visualizar execuo de threads Limpar memria para os programas

Verificar a pilha
Sistemas Operacionais II 68

Configurar o sistema (tamanhos, etc)

Agenda da Aula III


Reviso da Aula II Redes de Computadores


Protocolos de Comunicao Camada OSI Contextualizao com SO com Java exerccios


Sistemas Operacionais II 69

Programao em Redes

Sistemas Operacionais II Aula III

Sistemas Operacionais II

70

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 71

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 72

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais HOJE! Execuo de processos em Rede Sistemas de arquivos distribudos

Sistemas Operacionais II
Comunicao Concorrncia Linguagens Concorrentes Sincronizao

troca de mensagens

Sistemas Operacionais II

73

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 74

Reviso da Aula II

Definio de SO Servios Chamadas e Programas de Sistema Gerncia do Processador Escalonamento Gerenciamento de Memria Sistemas de Arquivos Exerccios
Sistemas Operacionais II 75

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 76

Comunicao

Comunicao entre processos

Sistemas distribudos Como?

Troca de informaes

Troca de mensagens

Comunicao

Rede x Primitivas de Memria Compart.

Qual a mais simples?

Sistemas Operacionais II

77

Comunicao
cpu
mem

cpu
mem

cpu
mem

cpu
mem

?
cpu cpu cpu cpu

memria compartilhada

Sistemas Operacionais II

78

Redes de Computadores

2 caractersticas: Conexes Protocolos de comunicao


Sistemas Operacionais II 79

Tipos de Redes

LAN (Local Area Network) WAN (Wide Area Network) Distribuio geogrfica Taxa de Transmisso Taxa de Erros Links de Comunicao (tipos, custos) Propriedade
Sistemas Operacionais II 80

Tipos de Redes (cont.)

Custo de Comunicao

Taxas baixas de erros Algoritmos mais simples de roteamento Baixos custos administrativos

Sistemas Operacionais II

81

Topologias para LAN

Barramento multiacesso (multiaccess bus) - barramento compartilhado - uso de broadcast para transmisso de mensagens
Sistemas Operacionais II 82

Topologia para LAN


R R R
Uso de repetidores - monitorao Protocolo: - mensagens circulam no anel - SRC DST em cabealho - envio na rede - nodo recebe, retira DST - se MSG para ele, trata - seno envia de volta Problemas? Pior caso? Melhor caso? Caso de erro no envio? Problemas com monitor Melhorias de desempenho? - links

R R

Sistemas Operacionais II

83

WAN
1

C
Conexes atravs de comutadores - tratam da comunicao - troca de informaes - pesos diferentes de comunicao - roteamento de pacotes (mlt. caminhos)

Sistemas Operacionais II

84

Protocolos de Comunicao

Definio

Conjunto de regras e convenes Implementao atravs de protocolos Ideia: camadas

Redes de Computadores

Definio de cabealhos, rodaps, dados ? porque ?

Sistemas Operacionais II

85

Protocolos de Comunicao

? porque ?

Abstrao! Separao de responsabilidades Dividir-para-conquistar Mais gerencivel Servios de cada camada


Sistemas Operacionais II 86

Tornar programao mais fcil

Definio de Interfaces

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 87

Modelo ISO/OSI

International Standardization Organization Open System International Reference model Trata-se de um guia Um framework (?) Definio de servios e protocolos

Sistemas Operacionais II

88

Modelo OSI
aplicao apresentao sesso transporte rede enlace fsico

Identifica e estabelece a aplicao Converso entre formatos Permite que duas aplic. definam 'sesso' Divide os pacotes e envia para p. camada Enderea pacotes: IP fsico Corrige erros do nvel fsico Conhece detalhes do hardware

Sistemas abertos se comunicam com outros sistemas abertos - atravs de protocolos


Sistemas Operacionais II 89

Exemplo de Mensagem
enlace rede transporte sesso apresentao aplicao mensagem rodap

Sistemas Operacionais II

90

Detalhes de Camadas

Camada TCP/IP Camada de Rede


Protocolo IP (Internet Protocol) Sender Receive = saltos Como descobrir o melhor caminho? Roteamento Menor caminho o melhor? Detalhes do trfego/tamanho das filas

Sistemas Operacionais II

91

Detalhes de Camadas

Protocolo de Transporte Perda de pacotes Aplicaes podem tratar erros Mas a camada pode oferecer este servio Camada de Aplicao

Envia pacote para Transporte Espera que seja entregue sem perda Quebra de pacotes
Sistemas Operacionais II 92

Detalhes de Camadas

Internet

TCP (Transmission Control Protocol) Usado como standard para comunicao HTTP, SMTP, FTP, SSH, Telnet, IRC, SNMP, POP3, BitTorrent, DNS, Ping

TCP/IP

Camada de Aplicao

Sistemas Operacionais II

93

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 94

Linguagem Java

Diferena entre Classe e Objeto Atributos e mtodos Instncias de Classes Mtodos de Classe Pacotes e organizao Mtodo main() // thread inicial Orientao a Objetos

Herana, interfaces, etc, etc, etc


Sistemas Operacionais II 95

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 96

Programao em Redes

Antes de comear... Leituras obrigatrias

Redes de computadores (Tanenbaum, Soares, Stallings) Tutoriais de Programao em Java Tutoriais de Programao em Rede

Java Tutorial:
http://java.sun.com/docs/books/tutorial/networking/index.html

Sistemas Operacionais II

97

Programao em Redes

Portas de comunicao Um computador possui uma conexo com a uma rede Como diferenciar o tratamento de dados para diferentes aplicaes?

Atravs da utilizao de portas Endereo da mquina destino Nmero da porta de tratamento


Sistemas Operacionais II 98

Dados possuem:

Programao em Redes

Endereamento: 16 bits

65535 possibilidades Servios comuns (HTTP, 80, etc) No usar estas portas! Package: java.net Classes: URL, URLConnection, Socket, e ServerSocket
Sistemas Operacionais II 99

Portas reservadas: 0-1023


Java

Programao em Redes

Criao de URL
URL gamelan; gamelan = new URL("http://www.sun.com");

Olhar documentao Java Docs

Sistemas Operacionais II

100

Exemplo
import java.net.*; import java.io.*; public class ParseURL { public static void main(String[] args) throws Exception { URL aURL = new URL("http://java.sun.com:80/docs/books/tutorial" + "/index.html?name=networking#DOWNLOADING"); System.out.println("protocol = " + aURL.getProtocol()); System.out.println("authority = " + aURL.getAuthority()); System.out.println("host = " + aURL.getHost()); System.out.println("port = " + aURL.getPort()); System.out.println("path = " + aURL.getPath()); System.out.println("query = " + aURL.getQuery()); System.out.println("filename = " + aURL.getFile()); System.out.println("ref = " + aURL.getRef()); } } Sistemas Operacionais II 101

Aplicao Cliente-Servidor

Servidor presta um servio aos clientes


Por exemplo, ele tem o BD Clientes requisitam informaes Servidor retorna consultas Comunicao deve ser confivel Recebimento de dados na ordem que foram enviados Um cliente e um servidor estabelecem uma conexo entre si e trocam dados
Sistemas Operacionais II 102

TCP prov comunicao ponto-a-ponto

Sockets

A conexo feita atravs de sockets Escrita e leitura so feitas atravs de escritas e leituras nos sockets Um socket possui uma porta associada Servidor fica esperando (ouvindo a porta)

Esperando que clientes escrevam Sabe o endereo do servidor Sabe a porta que ele est ouvindo
Sistemas Operacionais II 103

Lado cliente:

Sockets (cont.)

No incio, cliente requisita uma conexo com o servidor

Cliente se identifica para o servidor

Se o servidor quiser, aceita a requisio Cliente e servidor podem comear a comunicao atravs da escrita e leitura dos sockets Um socket um ponto de conexo bidirecional entre dois programas em uma Rede
Sistemas Operacionais II 104

Classes para usar Sockets


java.net.Socket; java.net.ServerSocket;

Olhar tutorial do Java e rodar exemplo de cliente-servidor Exerccio: criar um servio (qualquer) prestado pelo servidor e clientes que requisitam o servio Mostrar na tela os clientes sendo conectados e requisitando o servio Outras modificaes...
Sistemas Operacionais II 105

Exerccios Avanados

Siga no tutorial de Java Networks Usando Datagramas para envio de dados Trabalhando com Cookies e HTTP Defina outro problema e implemente um programa com cliente-servidor Acesse um banco de dados (ou arquivo) no servidor que retorna uma listagem qualquer

Formate no lado do cliente e apresente


Sistemas Operacionais II 106

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 107

Programao em Threads

Java Tutorial (track: concurrency) Processos e Threads Processos possuem um ambiente de execuo prprio E um espao de endereamento Para facilitar comunicao, SOs so equipados com recursos para IPC (Inter Process Communication) Pipes e Sockets Sistemas Operacionais II 108

http://java.sun.com/docs/books/tutorial/essential/concurrency/

Threads (cont.)

Threads so processos leves (lightweight)

Utilizam o mesmo espao de endereamento de processos mais fcil criar uma thread que um novo processo Threads existem dentro de processos Se no forem criadas nenhuma thread, um processo est rodando na thread principal Compartilhamento de arquivos abertos, recursos do processo
Sistemas Operacionais II 109

Threads (cont.)

Cada linha associada ao objeto Thread

java.lang.Thread

Aplicaes que criam instncias:


a) Interface Runnable
1) Implementao do mtodo run()

b) Extenso de subclasse Thread


1) Novamente, implementar run()

Sistemas Operacionais II

110

Threads (cont.)
a) Interface Runnable:
public class HelloRunnable implements Runnable { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new Thread(new HelloRunnable())).start(); } }
Sistemas Operacionais II 111

Threads (cont.)
b) Extenso de subclasse Thread:
public class HelloThread extends Thread { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new HelloThread()).start(); } }
Sistemas Operacionais II 112

Threads (cont.)

Observao

Ambas maneiras iniciam as threads com o mtodo start() Usando a interface, ainda se pode extender outra classe (single inheritance)

Diferena entre Runnable e subclasse:

Sistemas Operacionais II

113

Threads (cont.)

Thread.sleep(time);

// em milisegundos

preciso tratar InterruptedException Exerccios

Rodar a classe de exemplo de threads do tutorial de Java do site Modificar exemplo para mltiplas threads Configurar diferentes parmetros para Sleep e detectar as excees Usar outros comandos de threads, tais como join()
Sistemas Operacionais II 114

Sincronismo

Mtodos Sincronizados em Java Descrio do problema Contador de classe Mltiplas threads lem e escrevem sobre a mesma memria Como evitar que isso acontea?

Em alto nvel (sem semforos, por ex.)

Sistemas Operacionais II

115

Sincronismo

Soluo: mtodos sincronizados:


private int c = 0; public synchronized void increment() { c++; } public synchronized void decrement() { c--; } public synchronized int value() { return c;

public class SynchronizedCounter {

} }
Sistemas Operacionais II 116

Aspectos Avanados

Exerccio:

Leia sobre blocos sincronizantes Crie um problema que utilize mltiplas threads de execuo Abra arquivos e utilize mtodos sincronizados para acessar

Tente criar as threads e verificar os blocos com e sem mtodos sincronizados Crie o vetor aleatoriamente
Sistemas Operacionais II 117

Imprima um vetor de inteiros com threads

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 118

Enunciado do Trabalho T1

Sistemas Operacionais II

119

Agenda

Programa de Aprendizagem Reviso da Aula II Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Enunciado do Trabalho 1 Exerccios e Agenda da prxima aula


Sistemas Operacionais II 120

Atividades Extra-Classe

Leia a documentao de (Java):


Programao em Redes Programao em Threads Os clientes enviam pedaos de um arquivo para o servidor (threads) Servidor tenta montar o arquivo de acordo com as partes que recebe (em qq ordem)
Sistemas Operacionais II 121

Crie um programa cliente-servidor que:

Agenda da Aula IV

Reviso da Aula III Computao Concorrente


Introduo Compartilhamento de recursos Outros modelos Deadlocks e livelocks Exemplos e discusses

Sistemas Operacionais II

122

Sistemas Operacionais II Aula IV

Sistemas Operacionais II

123

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Deadlocks Agenda da prxima aula

Sistemas Operacionais II

124

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Deadlocks Agenda da prxima aula

Sistemas Operacionais II

125

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais Execuo de processos em Rede Sistemas de arquivos distribudos

Sistemas Operacionais II
Comunicao Concorrncia HOJE!
Sistemas Operacionais II 126

Linguagens Concorrentes

Sincronizao

troca de mensagens

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Sincronizao em Sistemas Distribudos Deadlocks Agenda da prxima aula

Sistemas Operacionais II

127

Reviso da Aula III

Reviso de Redes de Comunicao

Modelo OSI Reviso de Programao em Redes Reviso de Programao em Threads

Linguagem de Programao Java


Consideraes sobre o Trabalho 1 Exerccios e Agenda da prxima aula

Sistemas Operacionais II

128

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Deadlocks Agenda da prxima aula

Sistemas Operacionais II

129

Computao Concorrente

Forma de computao

Programas so colees de processos que interagem Podem (ou no) serem executados em paralelo Cada processo associado a um conjunto de processadores Distncia perto ou distribudo

Maiores desafios?
Sistemas Operacionais II 130

Computao Concorrente

Desafios

Correta sequncia de operaes Problemas de comunicao Coordenao de acesso aos recursos Compartilhamento de recursos

Sistemas Operacionais II

131

Modelos de Comunicao

Atravs da memria compartilhada

Acessos memria sinalizam eventos para outros itens no sistema Mecanismos de proteo

Locking

Atravs da troca de mensagens


Troca assncrona de mensagens Message Passing (prxima aula)

Sistemas Operacionais II

132

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Deadlocks Agenda da prxima aula

Sistemas Operacionais II

133

Controle de Concorrncia

Ambientes multi-threads Dados e recursos compartilhados Observar o acesso aos elementos Parte mais importante em computao distribuda

+: como os processos sincronizam atividades

Como? Excluso Mtua: semforos, monitores, locks, etc


Sistemas Operacionais II 134

Mecanismos de Controle

Excluso Mtua (EM)

Garante que mltiplos processos que compartilham recursos no tentem compartilh-las ao mesmo tempo;

Poro de cdigo que acessa o recurso compartilhado: seo crtica (SC) Objetivo: acesso exclusivo ao recurso

Garantias que apenas um processo acessa a seo crtica por vez


Sistemas Operacionais II 135

Mecanismos de Controle

Algoritmos que implementam mecanismos de controle satisfazem os seguintes critrios:

Excluso Mtua: dado um recurso compartilhado que pode ser acessado por diversos processos simultaneamente, somente um processo pode acessar por vez Starvation: cada processo que requisita o recurso deve recebe-lo em algum momento
Sistemas Operacionais II 136

Semforos

Proposto em 1965 por Dijkstra Estrutura de dados para resolver problemas de sincronizao Ideia:

valor inteiro que guarda o status do recurso protegido ?

Aes Atmicas

Sistemas Operacionais II

137

Semforos

Ou seja, um semforo um inteiro que:

Ao ser criado pode ter qualquer valor; entretanto, uma vez criado, apenas realiza incrementos e decrementos Quando uma thread decrementa um semforo, se negativo, esta se bloqueia e fica esperando outra thread incrementar o semforo Quando uma thread incrementa um semforo, se existem outras threads esperando, estas so desbloqueadas
Sistemas Operacionais II 138

Exemplo de Semforo

Restaurante

Recursos: mesas Processos: consumidores Semforo: matre

Matre sempre sabe quem sentar a seguir caso uma mesa vague Ningum interrompe o matre, ele sempre realiza seus clculos sem interferncia Matre sabe os recursos desocupados
Sistemas Operacionais II 139

Exemplo de Semforo

Restaurante com 10 mesas, vazias (inic.)

MESA = 10;

Um cliente chega, matre o coloca em uma mesa e reduz as mesas disponveis

MESA--; So colocados em mesas por ordem de chegada SE existirem mesas para todos
Sistemas Operacionais II 140

Muitos consumidores chegam

Exemplo de Semforo

Se lotado, novas chegadas devero esperar sua vez Um consumidor, ao sair, libera uma mesa

MESA++;

Se outro consumidor estiver esperando, coloca-o em uma mesa livre

MESA--;

Eventualmente, todos sairo do restaurante e MESA == 10;


Sistemas Operacionais II 141

Exemplo em Pascal
procedure V (S : Semaphore); begin S := S + 1; end; procedure P (S : Semaphore); begin repeat Wait(); until S > 0; S := S - 1; end;
Sistemas Operacionais II 142

Problemas de Semforos

Controle est para os programadores Erros ao usar as primitivas de controle podem resultar em deadlocks no inexistentes Primitivas mais alto-nvel para sincronizao so necessrias

Monitores

Sistemas Operacionais II

143

Monitores

Ideia principal

Deixar os problemas de excluso mtua para o compilador ao invs dos programadores Construo suportada pelos compiladores de linguagens de programao Grupo de procedimentos, variveis e estruturas de dados agrupados

Como?

Sistemas Operacionais II

144

Monitores

Para garantir excluso mtua:

Monitores no permitem que mais de um processo esteja ativo a qualquer momento Caso ocorra, o monitor bloqueia o procedimento at que o processo que esteja utilizando os recursos libere o controle Por baixo de um monitor esto implementados semforos
Sistemas Operacionais II 145

Compilador resolve o problema

Controle Central x Distribudo

Servidores Centralizados

Clientes conectados Problemas? ./ effect, digg.com Todo cliente um servidor

Sistemas Distribudos

Camada adicional de controle Problemas de Comunicao e Sincronizao de tarefas

Discusso
Sistemas Operacionais II 146

Controle Central x Distribudo

Outros problemas

Segurana Sistemas Dinmicos

Tolerncia a Falhas

Mais problemas?

Sistemas Operacionais II

147

Dvida

Reviso de Excluso Mtua em sistemas mono-processados com memria nica Mas em ambientes distribudos

Como seria?

Algoritmo Centralizado de EM Algoritmo Distribudo de EM

Sistemas Operacionais II

148

Algoritmo Centralizado de EM

Um processo eleito como o coordenador e coordena as entradas na SC Cada processo que deseja acessar a SC requisita ao coordenador Se no existe processo acessando, libera o acesso a quem requisitou, de imediato > 1 proc. pede acesso, apenas um ganha Aps uso, informa a liberao Coordenador libera SC para outros
Sistemas Operacionais II 149

Algoritmo Centralizado de EM

Quais os problemas?????????????????

Sistemas Operacionais II

150

Algoritmo Centralizado de EM

Quais os problemas?????????????????

Coordenador cai Processo no informa que saiu de SC Aviso de liberao de sada no chega Erro ao processar mensagens Uso indefinido de recursos

Outros ficam esperando

Em sistemas grandes, o coordenador o gargalo

Por que?
Sistemas Operacionais II 151

Algoritmos de EM

Sem entidade centralizadora

Que um problema

Em sistemas distribudos, como funcionaria?


Apenas com trocas de mensagens Recursos distribudos

Necessidade de protocolos para acessar a SC

Sistemas Operacionais II

152

Algoritmo Distribudo de EM

Processo deseja acessar SC

Envia mensagens para todos os outros processos Identificador do processo Nome da SC que deseja acessar Timestamp nico gerado pelo processo que originou a mensagem

Mensagem contm:

Sistemas Operacionais II

153

Algoritmo Distribudo de EM

Ao receber uma mensagem, o processo

responde ao processo que enviou a mensagem garantindo acesso SC se:


No quer acessar Quer acessar mas timestamp maior do que o processo que enviou mensagem Processo que recebeu mensagem est executando na SC Processo est esperando e timestamp menor de quem enviou mensagem
Sistemas Operacionais II 154

no responde se:

Algoritmo Distribudo de EM
P1 P2

P3

P4

4 processos executando em um SD
Sistemas Operacionais II 155

Algoritmo Distribudo de EM
P1 P2

P3

P4

P4 est usando seo crtica


Sistemas Operacionais II 156

Algoritmo Distribudo de EM
P1 P2

P3

P4

P1 e P2 querem acessar seo crtica


Sistemas Operacionais II 157

Algoritmo Distribudo de EM
TS4 P1 P2

TS4

TS4

P3

P4

T=4, P2 envia mensagem


Sistemas Operacionais II 158

Algoritmo Distribudo de EM
TS4 P1 TS6 TS6 TS4 TS6 TS4 P2

P3

P4

T=6, P1 envia mensagem


Sistemas Operacionais II 159

Algoritmo Distribudo de EM
TS4 P1 TS6 TS6 TS4 TS6 TS4 P2

P3

P4

P2 P1

P4 defere acesso a P1 e P2, pois est usando


Sistemas Operacionais II 160

Algoritmo Distribudo de EM
P1 OK P2 P1

OK

OK

P3

P4

P2 P1

P1 responde pois T1>T2 P4 no responde pois est usando SC P3 responde pois no quer usar a SC
Sistemas Operacionais II 161

Algoritmo Distribudo de EM
P1 P2 P1

OK

OK

P3

P4

P4 avisa que saiu da SC P2 entra na SC


Sistemas Operacionais II 162

Algoritmo Distribudo de EM
P1 OK P2

P3

P4

P2 avisa que saiu da SC P1 entra na SC


Sistemas Operacionais II 163

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Deadlocks Agenda da prxima aula

Sistemas Operacionais II

164

Deadlocks

Conjunto de processos bloqueados esperando que outros processos liberem recursos para continuar Outras situaes

Alocao total de recursos de uma mquina No conseguem acabar tarefas por falta de recursos, no liberam recursos por no acabar as tarefas Alocao cclica de recursos
Sistemas Operacionais II 165

Deadlocks

Sistemas Operacionais II

166

Deadlocks

Condies para deadlock:

Excluso Mtua: se recurso bloqueado por processo P ento outros processos esperam por P para usar o recurso Segura e Espera: processos podem requerer uso de novos recursos sem liberao dos recursos em uso No-Preempo: recurso se torna disponvel apenas pela liberao do recurso pelo processo Espera-Circular: dois ou mais processos formam cadeia circular na qual cada processo est a espera de um recurso bloqueado pelo prximo membro Sistemas Operacionais II 167

Deadlocks

Condies so vlidas ao mesmo tempo Se uma no for satisfeita, no acontece deadlock no sistema Estratgias para combater deadlocks:

Evitar: aloca recursos com cuidado Prevenir: no permite a ocorrncia Detectar: permite ocorrncia, mas detecta e trata

Projetar o sistema evitando deadlocks Garantir que pelo menosII 1 no ocorra! Sistemas Operacionais
168

Deadlocks

Mtodos:

Collective requests Ordered requests Preempo Se um processo tem um recurso, ento ele no pode ter outros Fazer requisio de todos recursos; se todos estiverem disponveis, executa; Pode requerer recursos SE liberar outros
Sistemas Operacionais II 169

Collective requests

Deadlocks

Problemas de collective requests:

Processo aloca recursos que nunca so usados ou nada frequente Se processo precisa de muitos recursos, cada vez que ele faz um pedido, pode encontrar j alocados, precisando esperar e voltar a pedir Associa um nmero a cada recurso Ataca o problema da espera circular Processo s aloca recursos em ordem Sistemas Operacionais II
170

Ordered requests:

Deadlocks

Preempo (precedncia)

Se processo precisa de recurso, faz pedido, se outro processo que detm o recurso est bloqueado a espera de outros recursos, recurso preemptado e passado ao primeiro caso contrrio, primeiro processo espera Enquanto esperam, recursos so preemptados para que outros processos 'evoluam' (continuem o processamento)

Sistemas Operacionais II

171

Algoritmos Centralizados

Cada mquina possui um grafo de alocao de recursos Coordenador centralizado mantm grafo completo do sistema (unio de todos os 'subgrafos' de todos os processos) Quando o coordenador detecta ciclo, mata processo e evita o deadlock

Sistemas Operacionais II

172

Algoritmo Distribudo

Cada mquina possui um grafo local de recursos associados a processos Ou seja, mensagens devem ser enviadas ao coordenador (ou aos outros processos distribudos) Problema: falso deadlock

Mensagens demoram pra chegar

Sistemas Operacionais II

173

Algoritmo de Chandy-Misra-Haas
Inicia quando um processo tem que esperar por um recurso alocado por outro processo Processo envia mensagem para processo (s) que est (o) utilizando recursos Mensagens contm 3 informaes

PID do que est bloqueado PID do que enviou a mensagem PID que est recebendo a mensagem
Sistemas Operacionais II 174

Probes (i,j,k) na rede

Algoritmo de Chandy-Misra-Haas
P1 P2 P3

S1 P9 P8

P10

S2 P6

P4 P5 P7 S3
175

P1 inicia deteco de deadlock


Sistemas Operacionais II

Algoritmo de Chandy-Misra-Haas
P1 P2 P3

S1 P9 P8

P10

S2 P6

P4 P5 P7 S3
176

Envia msgs no seu site (S1) para o controlador do S3 Sistemas (onde P2 precisa de P3 e P1 de P2 Operacionais II

Algoritmo de Chandy-Misra-Haas
P1 P2 P3

S1 P9 P8

(1,3,4)

P10

S2 P6

P4 P5 P7 S3
177

P4 precisa de P5, que por sua vez Sistemas Operacionais II precisa de P6 e P7

Algoritmo de Chandy-Misra-Haas
P1 P2 P3

S1 P9 P8 (1,6,8) S2 P6 (1,7,10)
Sistemas Operacionais II P7 precisa de P10 e P6 precisa de P8

(1,3,4)

P10

P4 P5 P7 S3
178

Algoritmo de Chandy-Misra-Haas
P1 P2 P3

(1,9,1) S1 P9 P8 (1,6,8) S2 P6 (1,7,10)


Sistemas Operacionais II Mas P9 precisa de P1, ento P1 recebe o prprio PID e o deadlock acontece!

(1,3,4)

P10

P4 P5 P7 S3
179

Agenda

Programa de Aprendizagem Reviso da Aula III Computao Concorrente

Controle de concorrncia

Deadlocks Agenda da prxima aula

Sistemas Operacionais II

180

Exerccios e discusses

Qual a vantagem de se considerar distribuio para modelagem de sistemas? Considere um problema onde existam 2 recursos distribudos sendo requisitados por 5 processos. Como funcionaria as trocas de mensagens para excluso mtua distribuda? Execute o algoritmo passo a passo informando as mensagens enviadas a cada momento no tempo.
Sistemas Operacionais II 181

Agenda da Aula V

Modelos de Compartilhamento de Recursos


Jantar dos Filsofos Produtor/Consumidor Sincronizao de mensagens Tratamento de falhas Comunicao Introduo Sistemas Operacionais II a MPI

Troca de Mensagens (Message Passing)


Programao Concorrente

182

Sistemas Operacionais II Aula V

Sistemas Operacionais II

183

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

184

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

185

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais Execuo de processos em Rede Sistemas de arquivos distribudos

Sistemas Operacionais II
Comunicao Concorrncia Linguagens Concorrentes HOJE!
Sistemas Operacionais II 186

Sincronizao

troca de mensagens

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

187

Reviso da Aula IV

Computao Concorrente

Controle de concorrncia Semforos e monitores Protocolos de comunicao Algoritmos de deteco de deadlock

Algoritmos de Excluso Mtua Distribuda

Deadlocks

Sistemas Operacionais II

188

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

189

Modelos de Sincronizao
1. Jantar dos Filsofos

Dining Philosophers Problem Producer / Consumer Reader / Writer

2. Produtor / Consumidor

3. Leitor / Escritor

4. Sleeping barber problem 5. Cigarette smokers problem


Sistemas Operacionais II 190

Jantar dos Filsofos

Problema clssico de compartilhamento de recursos No caso, faltam recursos, ou seja, garfos Primeira prioridade: pegar um garfo
191

Sistemas Operacionais II

Jantar dos Filsofos

Detalhes de Implementao

Entidade filsofos Recursos: garfos na mesa Estados: comendo, filosofando

Soluo 1: esperar 5 minutos e tentar pegar um garfo

Problema: todos chegaram ao mesmo tempo

Soluo 2: rbitro (matre) sabe os recursos que esto sendo utilizados


Sistemas Operacionais II 192

Jantar dos Filsofos

Soluo 3: uso de monitores

Verificam se vizinhos esto comendo para iniciar o processo de comer Uso de labels para os garfos

Outras solues

Sujos ou limpos

Flexibilizao das solues Equilibrar a utilizao dos recursos

Sistemas Operacionais II

193

Produtor / Consumidor

Producer/Consumer Descreve dois processos


Um o consumidor O outro o produtor

Compartilham um buffer limitado Produtor: gera um dado, pe no buffer e recomea Consumidor: retira do buffer e processa
Sistemas Operacionais II 194

Produtor / Consumidor

Problema

No deixar o produtor inserir dados em um buffer cheio No deixar o consumidor retirar dados de um buffer vazio Condio de corrida

Soluo 1: sleep() e wake()

Soluo 2: semforos ou monitores

Sistemas Operacionais II

195

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

196

Troca de Mensagens (TMs)

Message Passing (em ingls)

P1 P8 P7
tarefa em comum
passo1 passo2 passo3

P2 P3 P4 P6

P5

Sistemas Operacionais II

197

Troca de Mensagens

Comunicao inter-processos

Concretizao de objetivos comuns

Processos esto rodando em diferentes mquinas e ambientes


Necessitam sincronizar tarefas Meio: trocando mensagens entre si

Cada processo local pode ter uma lista de recursos utilizados em um dado momento Informaes sobre a carga recebida

BalanceamentoOperacionais II processos Sistemas entre os

198

Troca de Mensagens

Mecanismos para facilitar a troca de mensagem

Comunicao Interprocesso (IPC Interprocess Communication)

Paradigma 'troca de mensagens' utilizado para definir um padro de troca de informaes entre processos Um sistema de troca de mensagens esconde detalhes de envio de dados na rede dos programadores

Primitivas simples: send e receive Sistemas Operacionais II

199

Troca de Mensagens

Funcionalidades de bons sistemas de trocas de mensagens

Simplicidade: uso de primitivas simples para enviar e receber informaes Semntica Uniforme: sistemas locais e distribudos devem fornecer mesmo forma de comunicao Eficincia: observar o desempenho de comunicao e reduo das trocas de mensagens existentes; se for caro, usurios evitaro a utilizao
Sistemas Operacionais II 200

Troca de Mensagens

Funcionalidades de bons sistemas de trocas de mensagens (cont.)

Confiabilidade: sistemas distribudos executam em sistemas 'caticos', com mltiplas desconexes e quedas

Mecanismos de tratamento de falhas e recuperao de erros

Corretude: comunicao em gruposender envia para mltiplos receivers e um receiver recebe de mltiplos senders

Ou todas as mensagens so entregues para Sistemas Operacionais II todos ou nenhuma (atomicidade)

201

Troca de Mensagens

Funcionalidades de bons sistemas de trocas de mensagens (cont.)

Flexibilidade: nem todas aplicaes necessitam de altos nveis de confiabilidade e corretude; por exemplo, em roteamento adaptativo, devem ser observados os atrasos em diferentes caminhos de uma rede; tambm, algumas aplicaes no precisam de entrega ordenada de mensagens ou mesmo garantias de entrega

Sistema deve flexvel o suficiente para permitir diferentes nveis de controle Sistemas Operacionais II

202

Troca de Mensagens

Funcionalidades de bons sistemas de trocas de mensagens (cont.)

Segurana: deve garantir a segurana na comunicao, mensagens devem ser lidas pelos processos endereados; mecanismos de autenticao para participao em grupos (exemplo) Portabilidade: heterogeneidade deve ser considerada, permitindo a construo de sistemas para diferentes plataformas, utilizando as mesmas primitivas de comunicao
Sistemas Operacionais II 203

Funcionalidades x SDs

Estas caractersticas devem ser sempre observadas para Sistemas Distribudos

Pois utiliza-se um meio no confivel para comunicao No existem garantias totais que todos os processos saibam o que os demais esto fazendo Deadlocks so comuns Dependendo da tarefa, mltiplos sincronismos so necessrios Novos membros entram e saem frequent.
Sistemas Operacionais II 204

Consideraes em TMs
Bloco de informao Formatada por Processos Entendvel por recebedores Consiste de um cabealho: Endereo Nmero de Sequncia Informaes estruturais

MENSAGEM

Processos conhecem o protocolo que utilizaro Novos formatos e opes podem ser codificados Implementao de um protocolo de comunicao

Sistemas Operacionais II

205

Consideraes em TMs

Design de um IPC

Quem est enviando a mensagem? Quem est recebendo a mensagem? Existe um recebedor ou mltiplos? Deve existir garantia de entrega? Quem envia deve esperar uma mensagem? O que deve ser feito em caso de falhas? O que fazer caso o recebedor no est pronto para receber mensagens?
Sistemas Operacionais II 206

Consideraes em TMs

Semntica de sincronizao

Bloqueante No-bloqueante

Invocao no bloqueia a execuo do processo executor Controle retornado quase imediatamente aps utilizao

Utilizada nas primitivas send() e receive() Exemplo:

send() bloqueante permanece bloqueado at receber resposta


Sistemas Operacionais II

207

Consideraes em TMs

J um send() no bloqueante

Recebe o controle logo aps mensagem ser copiada para um buffer de sada Fica preso at receber uma mensagem Recebe o controle depois que o sistema operacional avisa o recebimento de msg Atravs de diretivas internas

receive() bloqueante

receive() no bloqueante

Polling e Interrupo
Sistemas Operacionais II 208

Consideraes em TMs

Timeout em receive() bloqueante Quando ambos send e receive so bloqueantes comunicao sncrona Seno, assncrona Comunicao Sncrona x Assncrona

Explora o mximo de paralelismo Custo em termos de desempenho Utilizada em Sistemas Distribudos

MSN x email
Sistemas Operacionais II 209

Consideraes em TMs
Execuo do enviador Execuo do recebedor

send(msg) execuo suspensa


envio de m ensa gem

receive(msg) execuo suspensa

execuo retornada
dge de acknowle envio ment

send(ack)

execuo retornada

send e receive bloqueantes

Sistemas Operacionais II

210

Comunicao sncrona

De fcil implementao Menos flexvel que assncrona Deadlock de comunicao Limita a concorrncia Mecanismos de IPC

Oferecem ambas formas para os usurios escolherem a mais adaptada para o problema sob considerao

Sistemas Operacionais II

211

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

212

Buferizao

Mensagens so enviadas entre processos Processo recebedor pode no estar pronto para receber uma mensagem Deseja que o sistema operacional salve a mensagem para ler quando puder Para tanto, deve existir uma regio de memria que salve mensagens

Buffer, ou regio auxiliar de memria

Sistemas Operacionais II

213

Buferizao

Em IPC

Buferizao de mensagens relaciona-se com a estratgia de sincronizao Buffer nulo ou sem buffer Buffer com capacidade infinita (ilimitados) Mensagem nica Mltiplas mensagens II capacidade finita Sistemas Operacionais e
214

Comunicao sncrona

Comunicao assncrona

Outras formas de buferizao


Buferizao Buffer Nulo

No existe regio para armazenamento de mensagens Mensagem permanece no espao de armazenamento do enviador, esperando uma chamada de recebimento (receive) Uma nica diretiva de cpia de mensagens entre dois pontos da rede feita Problemas... Como implementaramos?
Sistemas Operacionais II 215

Buferizao Buffer Nulo


Execuo do enviador send(msg) execuo postergada send(msg) execuo resumida
ment cknowledge envio de a
envio de m ensa g

Execuo do recebedor

em

send(ack) envia ack informando que est pronto receive(msg) execuo retornada

execuo retornada

ement acknowledg envio de

send(ack) envia confirmao


216

1. Estratgia para envio de msg com buffer nulo

Sistemas Operacionais II

Buferizao Buffer Nulo


Execuo do enviador send(msg) send(msg) send(msg)
ent knowledgem nvio de ac
envio de m ensa g

Execuo do recebedor

Tentativas de envio de msg send(ack) envia ack informando que est pronto receive(msg) execuo retornada send(ack) envia confirmao
217

send(msg) execuo resumida

em

execuo retornada

ement acknowledg envio de

2. Estratgia com uso de timeout para buffer nulo

Sistemas Operacionais II

Buferizao Mensagem nica

Buffer nulo usado para comunicao sncrona Em sistemas distribudos, oferece muito overhead de comunicao e sincronizao Deseja-se comunicar de forma sncrona Implementao de buferizao com mensagem nica Um buffer com capacidade para uma mensagem definido no recebedor
Sistemas Operacionais II 218

Buferizao Mensagem nica

Ideia bsica: deixar uma mensagem para ser usada no recebedor


Ele l quando estiver apto A mensagem salva SE o receptor no estiver habilitado para process-la

Duas operaes de cpias de mensagem so necessrias

Sistemas Operacionais II

219

Buferizao Capac. Ilimitada


Utilizada para comunicao assncrona Processo que envia no precisa esperar que o processo que recebe esteja pronto Implementao de um sistema com capacidade ilimitada

Recebimento de todas as mensagens Receptor trata quando quiser, como quiser

Mecanismos que garantem que todas as mensagens enviadas chegam ao destino


Sistemas Operacionais II 220

Buferizao Capacidade Finita

Capacidade ilimitada virtualmente impossvel de ser implementada Buffers com capacidade finita, implementao de mltiplas mensagens Problemas?

Buffer overflow

Comunicao sem sucesso: transferncias apenas falham quando no existe espao Comunicao controlada: enviador fica bloqueado at que o receptor acuse recebimento de algumas mensagens 221 Sistemas Operacionais II

Buferizao Discusses

Como definir o tamanho de um buffer? Estratgias para aumentar o tamanho? Problemas ao no processar mensagens? Problemas ao enviar mltiplas mensagens? Diferentes problemticas, diferentes implementaes ltima estratgia a melhor e a mais difcil de ser implementada
Sistemas Operacionais II 222

Buferizao - Estratgias
Processo que envia Processo que recebe Mensagem

Mensagem

Buffer Msg nica

Mensagem

Mensagem 1 Mensagem 2 Mensagem 3 Mensagem 4

...

Sistemas Operacionais II Mensagem n

223

Nmero de cpias de mensagens

Agenda

Programa de Aprendizagem Reviso da Aula IV Computao Concorrente

Modelos de Sincronizao

Troca de Mensagens Buferizao (buffering) Tratamento de Falhas

Sistemas Operacionais II

224

Tratamento de Falhas
Cenrio 1
pedido f f pedido execuo do pedido

Cenrio 2

Cenrio 3
pedido Falha na execuo do pedido f

Sistemas Operacionais II

Legenda: f = FALHA

225

Tratamento de Falhas

Problemas
1. Perda de mensagem do pedido 2. Perda de mensagem de resposta 3. Execuo sem sucesso do pedido

Para lidar com estes problemas

Retransmisso de mensagens depois de timeouts Mensagens de confirmao de recebimento


Sistemas Operacionais II 226

Tratamento de Falhas
Cliente
requisi

Servidor

ent knowledgem envio de ac

resposta
acknowle dgement

IPC confivel com quatro trocas de mensagens

Sistemas Operacionais II

227

Tratamento de Falhas
Cliente
requisi

Servidor

resposta
acknowle dgement

IPC confivel com trs trocas de mensagens

Sistemas Operacionais II

228

Tratamento de Falhas
Cliente
requisi

Servidor

resposta

IPC confivel com duas trocas de mensagens

Sistemas Operacionais II

229

Tratamento de Falhas
Cliente
requisio

Servidor f

timeout timeout

retransmisso retransmisso retransmisso

de requisio de requisio

f execuo execuo

timeout

de requisio resposta

resposta

Semntica 'ao menos uma' (at least once)

Sistemas Operacionais II

230

Agenda da Aula VI

Aula em Laboratrio

Introduo MPI Exerccios de programao Utilizao de primitivas de comunicao

Dvidas gerais sobre o trabalho T1 Estou disposio para dvidas sobre o trabalho, de forma assncrona

Sistemas Operacionais II

231

Sistemas Operacionais II Aula VI

Sistemas Operacionais II

232

Aula

Aula em laboratrio

Sistemas Operacionais II

233

Sistemas Operacionais II Aula VII

Sistemas Operacionais II

234

Seminrio

Seminrio em sala de aula sobre programao massivamente paralela Vantagens e desvantagens Arquiteturas paralelas Dependncia de dados Manycores

Sistemas Operacionais II

235

Sistemas Operacionais II Aula VIII

Sistemas Operacionais II

236

Agenda

Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente

Modelos de comunicao Excluso Mtua, modelos Semnticas de sincronizao


Sistemas Operacionais II 237

Troca de mensagens

Exerccios e Agenda da prxima aula

Programa de Aprendizagem
reviso Redes de Computadores Sistemas Operacionais

Prova P1
Computao Concorrente: - Modelos de Comunicao - Controle de Concorrncia

Troca de Mensagens - Semnticas de sincronizao

Algoritmos de Excluso Mtua

Sistemas Operacionais II

238

Antes de comear...

Aulas passadas... Relevncia em sistemas distribudos? GPU melhor que CPU? Abstrao para multicore Multicore distribudo pq no usar? GPU: paralelismo x escalabilidade

Sistemas Operacionais II

239

Antes de comear...

Programas puramente sequenciais e programas puramente paralelos


Dependncia de dados Problemas?? deteco destas caractersticas...

Quando vantajoso utilizar GPU ao invs de CPUs?

Exemplos dados na palestra?

Sistemas Operacionais II

240

Antes de comear...

Modelos de Memria

Memrias locais

Quais? vantagens? Vantagens? Desvantagens? Multicores... acesso...

Memria compartilhada

Como poderia ser implementados outros modelos de memria? Onde seria melhor aplicada?
Sistemas Operacionais II 241

Aplicaes de GPU

Antes de comear...

Pesquisa em GPU:

Grau de paralelismo de aplicaes

Problema no trivial

Modelagem da dependncia de dados Mapeamento de programas para explorar o mximo de paralelismo Mesma abstrao para sistemas distribudos?

Sistemas Operacionais II

242

Antes de comear...

Programao paralela e distribuda


Problemas? Arquitetura de execuo

Modelo de memria Bibliotecas especializadas Programadores especializados

Abstraes para utilizar os mltiplos cores


Clusters de GPUs

problemas?
Sistemas Operacionais II 243

Agenda

Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente

Modelos de comunicao Excluso Mtua, modelos Semnticas de sincronizao


Sistemas Operacionais II 244

Troca de mensagens

Exerccios e Agenda da prxima aula

Reviso (SOs e Redes)

Servios do Sistema Operacional

Execuo de programas, abortar execuo, utilizao de arquivos, acesso a perifricos, controle de usurios, sistema de arquivos, gerenciamentos, escalonamento, etc Topologias: LAN/WAN Modelo OSI

Redes de Computadores

Sistemas Operacionais II

245

Agenda

Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente

Modelos de comunicao Excluso Mtua, modelos Semnticas de sincronizao


Sistemas Operacionais II 246

Troca de mensagens

Exerccios e Agenda da prxima aula

Sistemas Operacionais Dist.


Caractersticas desejveis Diferenciao Vantagens Desvantagens Importncia

Sistemas Operacionais II

247

Agenda

Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente

Modelos de comunicao Excluso Mtua, modelos Semnticas de sincronizao


Sistemas Operacionais II 248

Troca de mensagens

Exerccios e Agenda da prxima aula

Computao Concorrente

Modelos de comunicao

Memria compartilhada Troca de mensagens Problemas associados Excluso Mtua Distribuda

Mltiplos recursos

Controle de Concorrncia

Condies para ocorrncia de deadlocks Compartilhamento de recursos


Sistemas Operacionais II 249

Agenda

Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente

Modelos de comunicao Excluso Mtua, modelos Semnticas de sincronizao


Sistemas Operacionais II 250

Troca de mensagens

Exerccios e Agenda da prxima aula

Troca de Mensagens

Definio de mensagem Trocas de mensagens em sistemas distribudos Semntica de sincronizao

Bloqueante, no-bloqueante

Primitivas de comunicao Buferizao de mensagens

Sistemas Operacionais II

251

Agenda

Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente

Modelos de comunicao Excluso Mtua, modelos Semnticas de sincronizao


Sistemas Operacionais II 252

Troca de mensagens

Exerccios e Agenda da prxima aula

Trabalho T1

Perguntas sobre o trabalho T1


Escalonamento de processos Problemas etc...

Sistemas Operacionais II

253

Agenda da Aula IX

PROVA P1

Sistemas Operacionais II

254

Sistemas Operacionais II Aula IX

Sistemas Operacionais II

255

Aula

Prova

Sistemas Operacionais II

256

Sistemas Operacionais II Aula X

Sistemas Operacionais II

257

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 258

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula

Sistemas Operacionais II

259

Contextualizao da disciplina
Sistemas Operacionais Redes de Computadores Estruturas de Dados

Concorrncia Troca de Mensagens Sincronizao Tratamento de falhas Comunicao

RMI Eleies Processos Sinc. Relgios Com. Grupo Sist. Arq. Dist. Com. Confivel Prog. Paralela
Sistemas Operacionais II 260

Contextualizao da disciplina

Execuo de Processos

Eleies e migrao de processos Distribuda: relgios Orientada a Grupos e Confivel

Sincronizao

Comunicao

Sistemas de Arquivos Distribudo Programao


Invocao Remota de Mtodos (RMI) Paralela e clculo de speed-up


Sistemas Operacionais II 261

Contextualizao da disciplina
Aula
X XI XII XIII XIV XV XVI XVII XVIII

Assunto
Programao RMI Algoritmos de Eleio, sincronizao de relgios, Transaes distribudas Gerenciamento de Processos (migrao) Sistemas de Arquivos Distribudo (SAD) Estudos de Caso de SADs Aula em Laboratrio Dvidas T2 Computao Paralela Reviso e preparao para P2 Prova P2
Sistemas Operacionais II 262

Agenda

Comentrios sobre a prova Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2 Sistemas Operacionais II
263

Remote Method Invocation


Invocao Remota de Mtodos Por que usar?? Objetos invocam mtodos em outros objetos em outras JVMs Transparncia Facilidade no uso Se fssemos implementar um RMI, do que precisaramos?
Sistemas Operacionais II 264

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula

Sistemas Operacionais II

265

RMI Motivao e Introduo

Equivalente a RPC (remote procedure call) mas orientado a objetos RMI: API escrita em Java Programao Orientada a Interfaces Mas o que uma Interface??

Alguma ideia?

Exemplo: carro

Sistemas Operacionais II

266

Java - Interfaces

Objetos interagem com o mundo atravs da sua interface Interface Carro


void engatarMarcha(int n); void abastece(float n); Implementao concreta do que prometem fazer na sua definio
267

Objetos implementam interfaces

Podemos construir Operacionais II interfaces?!? apenas Sistemas

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 268

RMI Arquitetura

Aplicaes em RMI

Server e Client Criam objetos remotos Criam referncias para estes objetos serem acessados remotamente Esperam clientes invocarem mtodos Obtm referncias remotas para objetos Invocao de mtodos remotos Sistemas Operacionais II
269

Servidores

Clientes

RMI Arquitetura

Neste sentido, a funo de RMI :

Prover mecanismos para que clientes e servidores se comuniquem Conhecida por ser uma Aplicao de Objetos Distribudos (Distributed Object Application DOA) Localizam objetos remotos Comunicam-se com objetos remotos

DOA

Transparncia (parece uma aplicao)

Carregam definies de classes, passam 270 Sistemas Operacionais II

RMI Arquitetura

Caractersticas de RMI

Permitem que objetos sejam carregados em diferentes JVMs com a funcionalidade principal Composta por classes e interfaces Interfaces declaraes de mtodos Classes implementam mtodos de interfaces e adicionam outros mtodos
271

Aplicao distribuda com Java RMI


Objetos que podem ser invocados em diferentes VMs Sistemas Operacionais II remotos so objetos

RMI Arquitetura

Objeto se torna remoto quando:

Extende a interface java.rmi.Remote

Os mtodos da interface jogam


java.rmi.RemoteException

Implementao de aplicaes com RMI


Definio das interfaces remotas Implementao dos objetos remotos Implementao dos clientes

Sistemas Operacionais II

272

RMI Stubs e Segurana

Ao invs de criar cpias de objetos e passar estas cpias pelas JVMs, so usados 'stubs' Stubs agem como representantes de classes (uma referncia completa) para os objetos remotos Devem ser compilados nos clientes

Criam classes auxiliares (rmic)

Mecanismos de segurana esto presentes em RMI limitam quem acessa Sistemas Operacionais II 273 os recursos presentes (no.policy)

RMI Ferramentas

Compilao de arquivos usando a linguagem Java Compilao da interface (javac) Compilao do Servidor (javac) Compilao do Cliente (javac) Criao de stubs (rmic) Execuo do servidor (rmiregistry e java) Execuo de clientes (java)
Sistemas Operacionais II 274

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 275

RMI Principais Mtodos


Depende do que se est implementando Ideia: chamada a objetos remotos Clientes pegam referncias de objetos em um servidor e executam mtodos nestes objetos Fontes do exemplo

Explicaes sobre os mtodos

Sistemas Operacionais II

276

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 277

RMI Exemplos

Mostrar exemplo em RMI Execuo de servidor e cliente

Sistemas Operacionais II

278

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 279

Exerccios

Executem o exemplo Modifiquem o servidor para retornar outras respostas reflexo? Modifiquem o cliente para chamar remotamente outros mtodos nos objetos remotos Rodem em mquinas diferentes da mesma rede para verificar a mudana dos IPs Habituem-se a RMI e gerao dos Sistemas Operacionais II arquivos
280

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 281

Agenda da prxima aula

Algoritmos de Eleio

Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring)

Processos de Sistemas Distribudos Sincronizao de relgios

Sistemas Operacionais II

282

Agenda

Contextualizao da disciplina Remote Method Invocation (RMI) Motivao e Introduo Arquitetura e ferramentas Principais mtodos Exemplos Exerccios e Agenda da prxima aula Enunciado do Trabalho T2
Sistemas Operacionais II 283

Enunciado do Trabalho T2

Objetivo: construir um escalonador distribudo de processos proc. atmico Execuo: usar Java RMI em duplas Cada mquina na rede pode executar processos mnimo: 4 mquinas e 100pr. Servidor central possui lista de processos Eleio para decidir qual mquina ir rodar um processo (servidor decide) Sada padro cada mquina tem um log
Sistemas Operacionais Especificao no site da IIdisciplina (10/5) 284

Enunciado do Trabalho T2

Dvidas sobre o Trabalho (especificao completa na semana que vem) Definio das duplas Definio das datas

Entrega e apresentao (execuo) dia: 21/06/2010 (entrega dia 28/06 9,0) Entrega final dia 28/06

Sistemas Operacionais II

285

Depois de saber RMI...

Dicas

Comecem HOJE :) Se no sabe Java, escolha grupo certo Aumentem a complexidade pouco a pouco Faam Java RMI funcionar para um exemplo simples Implementem um algoritmo de eleio simples Codifiquem o escalonador distribudo Observem a sada padro Sistemas Operacionais II
286

Referncias

Internet procurar por RMI exemplos Wikipedia exemplo e links teis

http://en.wikipedia.org/wiki/Java _remote_method_invocation http://java.sun.com/docs/books/tu torial/rmi/overview.html

An Overview of RMI Applications

Sistemas Operacionais II

287

Sistemas Operacionais II Aula XI

Sistemas Operacionais II

288

Agenda

Reviso da aula passada Algoritmos de Eleio


Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 289

Sincronizao

T2 e Agenda da prxima aula

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais Execuo de processos em Rede Sistemas de arquivos distribudos

Sistemas Operacionais II
Comunicao Concorrncia Linguagens Concorrentes
troca de mensagens

Sincronizao HOJE!
290

Sistemas Operacionais II

Agenda

Reviso da aula passada Algoritmos de Eleio


Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 291

Sincronizao

T2 e Agenda da prxima aula

Reviso da Aula Passada

RMI

Modelo arquitetural Principais primitivas Execuo e discusso de exemplo

Exerccios Execuo do exemplo Modificaes Dvidas?


Sistemas Operacionais II 292

Agenda

Reviso da aula passada Algoritmos de Eleio


Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 293

Sincronizao

T2 e Agenda da prxima aula

Eleio em Sistemas Distr.

Porque eleger um lder???


Porque imprescindvel? Porque processos so derrubados e devem voltar a operar? Porque existem falhas na rede? Porque em Sistemas Distribudos no tem outro jeito? Porque seguem-se as recomendaes de outros pesquisadores para sua existncia?

Sincronizao de Sistemas Distribudos

Continuao de Algoritmo de SC
Sistemas Operacionais II 294

Eleio em Sistemas Distr.

Motivao

Vrios algoritmos distribudos utilizam um processo como coordenador, e algoritmos de eleio so utilizados para fazer esta escolha Processos tem um nmero nico (PID). Algoritmos de eleio tentam localizar o processo com o maior PID coordenador Algoritmos tambm assumem que todos os processos sabem o nmero de todos os outros processos, mas que no sabem quais esto funcionando e quais no esto O objetivo que ao final de sua execuo, todos os processos concordem em quem o novo Sistemas 295 coordenador Operacionais II

Eleio em Sistemas Distr.

Algoritmos

Valento (bully) Anel (ring)

Sistemas Operacionais II

296

Algoritmo do Valento (bully)

2 Passos:
1. Um processo Pi no obtendo resposta do coordenador envia uma mensagem de eleio para todos processos com maior prioridade que a sua

Se no receber nenhuma mensagem dentro de um time-out assume como novo coordenador Se processo Pi recebe mensagem de resposta a eleio, isso significa que tem um processo com prioridade superior

Espera para saber quem o coordenador


Sistemas Operacionais II 297

Algoritmo do Valento (bully)

2. Na recuperao de um processo Pk ele reinicia a eleio

Se possui prioridade superior ao atual coordenador, vence a eleio Se o de maior prioridade simplesmente diz que o "chefe"

Sistemas Operacionais II

298

Algoritmo do Valento (bully)

Sistemas Operacionais II

299

Algoritmo do Anel (ring)


Processos anel lgico (unidirecional) 4 Passos:

1. Pi no obtendo resposta do coordenador, inicia uma eleio enviando uma mensagem a seu sucessor Pi+1 informando sua prioridade 2. Pi+1 insere sua prioridade na mensagem e reenvia para o prximo

Sistemas Operacionais II

300

Algoritmo do Anel (ring)

Passos (continuao):

3. No final, processo que iniciou a eleio recebe a mensagem com a prioridade de todos os processos ativos e escolhe o novo coordenador (maior prioridade) 4. Envia uma mensagem para todos informando quem o novo coordenador

Sistemas Operacionais II

301

Algoritmo do Anel (ring)

Em recuperao

Pi envia uma mensagem de inquiry a seu sucessor Se Pi+1 no o coordenador reencaminha mensagem para o prximo O coordenador ao receber a mensagem de inquiry responde ao processo Pj

Sistemas Operacionais II

302

Algoritmo do Anel (ring)

Sistemas Operacionais II

303

Agenda

Reviso da aula passada Algoritmos de Eleio


Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 304

Sincronizao

T2 e Agenda da prxima aula

Sincronizao

Comunicao importante mas no o nico aspecto a ser considerado Sincronizao de processos importante

Acesso exclusivo aos recursos Mecanismos p/ exec. de mens. em ordem

Mais difcil que sincronizao em ambientes mono e multi-processados Ocorrem em muitas situaes de execuo de processos em Sist. Distr.
Sistemas Operacionais II 305

Sincronizao

Mecanismos

Excluso Mtua

Algoritmos de Excluso Mtua Distribuda Sincronizao de relgios Algoritmos de Eleio

Coordenao

Transaes Distribudas

Sistemas Operacionais II

306

Sincronizao

Em sistemas centralizados no existe ambiguidade temporal

Processos desejam saber o tempo, fazem uma chamada de sistema e o kernel retorna o tempo da mquina Se o processo A requisita o tempo e o processo B requisita a seguir, TA<TB

Em sistemas distribudos, obter concordncia temporal no trivial Pergunta: possvel sincronizar todos os relgios em umSistemas Operacionais distribudo? sistema II
307

Sincronizao

Importncia do conceito de relgio


Relgios fsicos Relgios lgicos

Sistemas Operacionais II

308

Sincronizao: Relgio Fsico

Todos os computadores possuem um circuito para guardar informaes sobre o tempo (Timer) Geralmente, cada CPU possui um mecanismo prprio de tempo O problema comea quando mltiplos relgios (mltiplas CPUs) so introduzidas

Sistemas Operacionais II

309

Sincronizao: Relgio Fsico

Em alguns sistemas, o tempo de relgio extremamente importante


Sistemas em tempo real (realtime) Normalmente utiliza relgios fsicos externos

Eficincia e redundncia: respostas em um tempo aceitvel

Definies para tomada de decises

Sistemas Operacionais II

310

Sincronizao: Relgio Fsico

Problemas de relgios fsicos


Como sincroniz-los com relgios reais Como sincroniz-los entre si? Algoritmo de Cristian Algoritmo de Berkeley

Algoritmos de Sincronizao de Relgios


Uso de protocolos internacionaisd e sincronizao (leia-se na Internet)


Sistemas Operacionais II 311

Sincronizao: Relgio Fsico

Algoritmo de Cristian

Requisitos: todas as mquinas possuem um mecanismo de tempo Objetivo: todas as mquinas so sincronizadas com o mesmo valor de tempo

1. Periodicamente, cada mquina envia uma mensagem para o servidor de tempo

Definio do tempo do servidor

2. O servidor responde, o mais rpido que Sistemas Operacionais II puder, com uma mensagem com o tempo 312

Sincronizao: Relgio Fsico

Algoritmo de Cristian

Quais os problemas?

Sistemas Operacionais II

313

Sincronizao: Relgio Fsico


Algoritmo de Cristian Problemas

Tempo no pode retroceder

Se o tempo est mais rpido, o tempo do servidor ser menor

Soluo: atraso gradual da mquina at atingir a sincronizao

Sistemas Operacionais II

314

Sincronizao: Relgio Fsico


Algoritmo de Cristian Problemas

Atrasos na gerao e envio de mensagens na rede Estimaes do tempo de propagao de mensagens na rede

Solues

Este tempo constante?

Existem outras formas de solucionar este problema?


Sistemas Operacionais II

315

Sincronizao: Relgio Fsico


Algoritmo de Cristian Problema da estimao de mensagens Soluo alternativa

Realizar uma srie de medidas de tempo e pegar a mdia dos tempos obtidos descartando mensagens que sofreram atrasos devido congesto da rede Entretanto, mltiplas mensagens na rede tambm causam congesto, no?
Sistemas Operacionais II 316

Sincronizao: Relgio Fsico

Algoritmo de Berkeley

No Algoritmo de Cristian o servidor passivo Em Berkeley, o servidor de tempo ativo

Pergunta, de tempos em tempos, qual o tempo de cada mquina Baseado nos tempos obtidos, calcula a mdia e responde com o tempo que as mquinas devem usar
Sistemas Operacionais II 317

Sincronizao: Relgio Fsico


Outros algoritmos de sincronizao NTP Network Time Protocol Sincronizao de execuo na Internet Mesmo assim, existem atrasos

Dependendo da aplicao so atrasos permitidos Aplicaes realtime na Internet so difceis de serem implementadas com alta qualidade?
Sistemas Operacionais II 318

Sincronizao:Relgio Lgico

Em algumas situaes, no importa saber o tempo exato da ocorrncia de eventos, mas sim um valor consistente para os relgios

A esta classe, d-se o nome de Relgios Lgicos so implementados como contadores Timestamps de Lamport Timestamps Vetoriais (Tanenbaum)
Sistemas Operacionais II 319

Para tanto, existem algoritmos para Rls:


Sincronizao:Relgio Lgico

Para sincronizar relgios lgicos, Lamport definiu a relao acontece antes (happens before) a b l-se a aconteceu antes de b Relao transitiva

Se a b e b c, ento a c

Uso da relao para resolver o seguinte problema de sincronizao usando-se relgios lgicos
Sistemas Operacionais II 320

Timestamps de Lamport - erro


0 6 12 18 24 30 36 42 48 54 60 D A 0 8 16 24 32 40 48 56 64 72 80
Sistemas Operacionais II

0 10 20 B 30 40 50 C 60 70 80 90 100
321

Timestamps de Lamport
0 6 12 18 24 30 36 42 48 70 76 D A 0 8 16 24 32 40 48 61 69 77 85
Sistemas Operacionais II

0 10 20 B 30 40 50 C 60 70 80 90 100
322

Transaes Distribudas

Transaes Atmicas

Abstrao de mais alto-nvel que permite que programadores abstraiam detalhes tcnicos de como excluso mtua obtida, como deadlocks so prevenidos, etc. Implementam a semntica de ou-tudo-ou-nada em sua execuo, isto , se a transao cancelada antes de sua finalizao, os objetos e arquivos do sistema alterados por esta transao atmica voltam ao estado anterior ao incio da mesma Implementao complicada pelo fato que transao pode estar sendo executada em Sistemas simultaneamente vrias mquinasOperacionais II

323

Modelo Transacional

O modelo transacional garante excluso mtua e suporta operaes atmicas

Exemplo de Transao:

OP1 Retirada de R$100 da conta 1 OP2 Depsito de R$100 na conta 2

A interrupo da transao aps a execuo de OP1 e antes da execuo da OP2 faz com que o dinheiro? Projetado para suportar quebras de computadores, implementado usandoSistemas Operacionais II 324 se discos backup (exemplo: RAID)

Armazenamento estvel

Primitivas de Transaes
Primitiva BEGIN_TRANSACTION END_TRANSACTION ABORT_TRANSACTION READ WRITE Descrio Marca o incio de uma transao Finaliza a transao e tenta aprov-la Aborta a transao e restaura valores antigos L dados de um arquivo, tabela, etc. Escreve dados em um arquivo, tabela, etc.

Commit Rollback
Sistemas Operacionais II 325

Propriedades de Transaes
1. Atomicidade: indivisibilidade 2. Consistncia: database se consistente permanece em estado consistente 3. Isolamento: Transaes concorrentes no interferem umas com as outras (serializao) 4. Durabilidade: Quando uma transao aceita, as mudanas so permanentes (requer um mecanismo de aceitao distribudo)
Sistemas Operacionais II 326

Classificao de Transaes

Transaes Planas (Flat)

Limitadas Resultados parciais no podem ser aceitos Exemplo: Manter primeiros dois trechos de um vo, por exemplo Transaes iniciam subtransaes, podem iniciar sub-subtransaes Transaes planas mas distribudas em Sistemas Operacionais II relao ao acesso aos dados

Transaes aninhadas (Nested)

Transaes distribudas (Distributed)

327

Transaes Distribudas

Transaes aninhadas permitem uma organizao hierrquica do sua transao mas complicam as operaes de aborto e aceitao Transaes distribudas so planas mas usam dados distribudos (exemplo: Sistemas Operacionais II bancos de dados do JFK e do aeroporto de Nairobi)
328

Implementao de Trans. Dist.

Mtodos

reas de Trabalho Privadas Writeahead Log Protocolo de Aceitao de Duas Fases

Sistemas Operacionais II

329

Implementao de Trans. Dist.


reas de Trabalho Privadas Quando um processo inicia uma transao, ganha uma rea de trabalho individual

Todas as leituras e escritas so feitas nesta rea, ao invs de serem feitas no sistema de arquivos Mas pode ser melhorado: apenas salvar o que foi modificado, etc
Sistemas Operacionais II 330

Problema: custo proibitivo

Implementao de Trans. Dist.

Writeahead Log gravao anterior


x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y=y+2 x = y * y; END_TRANSACTION; (a) Log Log Log

[x = 0 / 1]

[x = 0 / 1] [y = 0/2]

[x = 0 / 1] [y = 0/2] [x = 1/4] (d)

(b)

(c)

(b) (d) Log grava valores antigos e novos antes de cada operao ser executada Se transao aceita (commit) no necessrio se fazer nada Se a transao abortada, usa-se o log para fazer um retorno (rollback)
Sistemas Operacionais II 331

Implementao de Trans. Dist.

Protocolo de Aceitao de Duas Fases


Execuo do protocolo iniciada pelo coordenador aps a ltima operao da transao ter sido iniciada

Coordenador (processo que iniciou a transao) escreve uma entrada no log informando que vai iniciar o protocolo de aceitao

envia mensagens para todos os processos envolvidos (subordinados) informando-os que se preparem para a aceitao

Subordinado verifica se est pronto para aceitao, escreve em um log local, e envia a resposta para o coordenador CoordenadorSistemas Operacionais IIaceitao ou no e decide pela envia mensagem informando sua deciso
332

Agenda

Reviso da aula passada Algoritmos de Eleio


Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 333

Sincronizao

T2 e Agenda da prxima aula

Especificao do Trabalho T2

Organizao das duplas Entrega

Demonstrao do sistema Algoritmos mais importantes Sada padro Discusso em sala de aula
Sistemas Operacionais II 334

Documentao:

Especificao

Agenda da prxima aula

Migrao de Processos

Threads em sistemas distribudos Sistemas de Arquivos Distribudo (SAD) Exemplos de SADs Computao paralela

E nas prximas aulas


Sistemas Operacionais II

335

Sistemas Operacionais II Aula XII

Sistemas Operacionais II

336

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

337

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais HOJE! Execuo de processos em Rede Sistemas de arquivos distribudos

Sistemas Operacionais II
Comunicao Concorrncia Linguagens Concorrentes Sincronizao

troca de mensagens

Sistemas Operacionais II

338

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

339

Reviso da aula passada


Sincronizao Relgios lgicos e fsicos Algoritmos de Eleio


Valento Anel

Transaes Distribudas Trabalho T2

discusses
Sistemas Operacionais II 340

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

341

Gerenciamento de Processos

Antes: comunicao

RPC RMI Troca de Mensagens

Comunicao orientada a mensagens

Execuo de processos em um sistema operacional


Monoprocessado Multiprocessado
Sistemas Operacionais II 342

Gerenciamento de Processos

Antes ainda: threads

Porque utilizar threads?

Threads em ambientes monoprocessados Threads em ambientes multiprocessados Threads em sistemas distribudos e multiprocessados Objetivo: executar processos de forma eficiente (ou eficaz?)
Sistemas Operacionais II 343

Gerenciamento de Processos

De um ponto de vista do sistema operacional:


Importncia do gerenciamento Necessidade de escalonamento

Como dividir os processos no SD?

Mas execues de processos coordenadas em um sistema distribudo...


Outras questes devem ser observadas Algumas j vistas na disciplina

Coordenao, sincronismo, comunicao


Sistemas Operacionais II

344

Gerenciamento de Processos

A seguir

Threads em ambientes distribudos

Aumento da percepo de paralelismo

Combinao entre paralelismo e execuo sequencial


Modelos para uso de Threads Tcnicas para aumento do desempenho Importncia Escalabilidade Tcnicas e Operacionais II observaes Sistemas

Migrao de cdigo

345

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

346

Threads em Sistemas Distr.

Criao de um processo pelo S.O.

Envolve a definio de um Espao de Endereamento nico por processo Cada processo executado em um contexto de execuo

Registradores, segmentos de dados, pilha de execuo, pginas de memria

Escalonadores dividem a execuo dos processos pelas diversas CPUs

Mdulos especializados para salvar o contexto de execuo


Sistemas Operacionais II 347

Threads em Sistemas Distr.

Um processo pode ser enviado para execuo em diferentes CPUs


Requer processamento custoso Salvamento do contexto de execuo inmeras vezes influencia o algoritmo de escalonamento utilizado

Gro escolhido deve ser alocado para no inviabilizar os algoritmos

Se o S.O. suporta mais processos q mem.

Utilizao de swap

Cpias de processos da mem. para disco 348 Sistemas Operacionais II

Threads em Sistemas Distr.


P1
Espao de Endereamento thread

P2
Espao de Endereamento thread1 thread2 thread3

Contexto de execuo

Contexto de execuo

Espaos de Endereamento de Threads So chamadas de lightweight processes (processos leves)

Sistemas Operacionais criado Usam um contexto j II 349

Threads em Sistemas Distr.


Tradicionais: heavyweight processes Dificilmente sistemas paralelos tero um desempenho menor que sistemas sequenciais

Depende do caso, aplicaes altamente dependentes entram neste caso

Threads tambm dependem da implementao

Bom uso depende de um esforo intelectual design de linguagens

Sistemas Operacionais II Transparncia e utilizao

350

Threads em Sistemas Distr.


Clientes com multithreading comum que SDs dependam da Rede para processar informaes, realizar tarefas ou esperar a computao de outras tarefas Enquanto esperam o processamento, pode-se realizar outras tarefas interessantes Como: utilizao de threads nos clientes
Sistemas Operacionais II 351

Estudo de Caso de Threads

Estudo de Caso de utilizao de threads:

BROWSERS da Internet Carrega pginas texto (html?) Carrega imagens Atualmente, streams de informao

Um Browser

Como feita a comunicao em um browser?


Sistemas Operacionais II 352

Estudo de Caso de Threads

Quais estratgias podem ser utilizadas para carregamento de pginas mais eficiente?

Sistemas Operacionais II

353

Estudo de Caso de Threads

Estratgias

Por exemplo, textos ocupam menos espao que imagens, ento eles podem ser processados antes e enviados diretamente para os usurios Imagens seriam carregadas na sequncia Pginas acessam pginas indisponveis Outras pginas esto em locais lentos Caracterizao de pginas complexa

Problemas

Texto, fotos, streams, binrios,etc,

Sistemas Operacionais II

354

Estudo de Caso de Threads

Um browser implementa clientes multithreads

Utiliza diversas threads internas ao seu processo principal para acelerar e otimizar o tempo necessrio para o carregamento de uma pgina

Mas browsers fazem apenas isso?

Sistemas Operacionais II

355

Estudo de Caso de Threads

Browsers tambm precisam interpretar a stream de textos de controle


Leia-se HTML ou XML ou outro formato Converter essa representao textual para um formato grfico (padro?) Tambm executam outros controles de acordo com linguagens de programao que podem ser usadas

Javascript, AJAX, etc Execuo no cliente!


Sistemas Operacionais II 356

Motivao para Threads SD

Porque utilizar threads ao invs de mltiplos processos single threaded?


1. Overhead ao criar um novo processo que em geral maior que criar uma nova thread em um processo em execuo 2. Trocar a execuo (switch) entre threads e compartilhar endereamento custa menos caro que trocar entre processos com seus prprios endereamentos

Sistemas Operacionais II

357

Motivao para Threads SD

Porque utilizar threads ao invs de mltiplos processos single threaded?


3. Threads permitem a combinao entre paralelismo e execuo sequencial e o paralelismo melhora o desempenho da execuo 4. Compartilhamento de recursos melhor explorado e de forma mais natural que entre processos que no utilizam threads
Sistemas Operacionais II 358

Servidor de Arquivos

Objetivo: criar um servidor de arquivos que processos possam acessar. O servidor, por sua vez, acessa um disco rgido para buscar as informaes

Problemas

deseja-se acessar o disco de forma simultnea (mas coordenada) Deseja-se que mltiplos clientes acessem as informaes e que o servidor organize o acesso Do ponto de vista dos usurios, o sistema de processamento paralelo
Sistemas Operacionais II

359

Servidor de Arquivos

Implementaes possveis
1. Servidor como um processo singlethread 2. Implementao de uma Mquina de Estados Finita 3. Grupos de Threads [baseado no livro Distributed Operating Systems, de Pradeep K. Sinha pg. 399-401]
Sistemas Operacionais II 360

Servidor Single Threaded


No utiliza paralelismo Uso de chamadas de sistema para bloquear acessos indevidos Comunicao entre o disco e o servidor para acessar a informao requisitada Em um pedido, o servidor fica bloqueado esperando um retorno at recebe-lo do disco Normalmente, desempenho aceitvel

Sistemas Operacionais II Mas deseja-se sobrepor a execuo... 361

Servidor Mquina de Estados

Suporta paralelismo, mas trabalha com chamadas de sistema no bloqueantes Servidor single-threaded e opera como uma mquina de estados finita Fila de eventos

Ambas mensagens de requisio e retorno de clientes e do disco so grav. Processamento da fila de mensagens
Sistemas Operacionais II 362

Funcionamento

Servidor Mquina de Estados

Mensagens da Fila:

Se for uma requisio:

Verifica resposta do disco, se no existe, manda mensagem para o disco requisitando acesso

Guarda o estado completo do pedido em uma tabela para recuperao posterior

Trata a prxima mensagem Busca o estado do cliente da tabela e processa o request

Se for um retorno do disco:

Este mtodo paralelo, mas difcil implem363 Sistemas Operacionais II

Servidor - Grupos de Threads

Suporta paralelismo com chamadas de sistema bloqueantes Servidor possui uma thread dispatcher e mltiplas threads worker Threads podem ser criadas medida que so necessrias ou utilizando um pool de threads criado uma nica vez A thread dispatcher fica em loop esperando requisies de clientes
Sistemas Operacionais II 364

Servidor - Grupos de Threads

Quando um cliente faz uma requisio

Verifica permisso do cliente seo HD

Se existe, cria um worker e entrega o pedido para ele (controle transferido) Thread dispatcher passa de running para ready Worker verifica o disco

Se precisa permisso, faz pedido ao disco e fica bloqueado at receber resposta

Escalonador do SO escolhe uma thread ready do grupo de threads

Quando disco retorna, worker volta a ficar Sistemas Operacionais II ready e escalonador resume execuo 365

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

366

Migrao

Mas qual a necessidade de se migrar a execuo de processos em uma Rede?

Um processo pode querer trocar de lugar se seu ambiente est hostil: Funcionamento vai ser interrompido

Falta de luz!

Sistema Operacional est instvel Sistema est com superuso Recurso ser liberado e mais rpido Rede melhor em outros pontos
Sistemas Operacionais II 367

Criogenia de Processos

congelar a execuo de um processo

Salvar seu estado em um arquivo com algum formato

O estado do processo pode ser serializado estaticamente

Objetivo: ser 'ressucitado' e executar em outro lugar remoto

dar vida a um processo e fazer com que nada tenha acontecido apenas o local de execuo mudou
Sistemas Operacionais II 368

Migrao de Processos

Mas porque migrar processos?

Aproveitar recursos de outras mquinas ociosas em uma rede Otimizar a execuo de um processo Aproveitar CPUs para manter o mximo de funcionamento de mquinas participante Aproximar mquinas da rede para reduzir os custos de comunicao Mover processos para locais onde o acesso aos dados mais rpido (perto do BD)

Sistemas Operacionais II

369

Migrao de Processos

Disponibilidade

Processos de execuo longa Previses que uma mquina vai interromper a execuo e no deseja-se ter que recomeo tudo de novo Processos podem aproveitar recursos de hardware ou software de diferentes mquinas em uma rede

Utilizao de recursos especiais

Sistemas Operacionais II

370

Incio da Migrao

Detalhes de Sistema Operacional

Balanceamento de carga necessria Usados quando o objetivo alcanar recursos particulares de uma rede

Detalhes sobre os Processos

Processo de migrao de processos


Processo na origem deve ser 'destrudo' e recriado no destino (porque?) A imagem do processo e seus blocos de controle so movidos em conjunto
Sistemas Operacionais II 371

Migrao de Processos
Tempo

Nodo Origem
Processo P1 : : : : Execuo suspensa

Nodo Destino

Freezing

Transferncia de controle
Execuo Reiniciada : : : : Processo P1

Selecionar um processo para ser migrado Selecionar o nodo destino Suspender o processo Capturar o estado do processo Mandar o estado para o destino Continuar execuo do processo Encaminhar futuras mensagens para o destino

Problemas: Envia processo, no acha destino (estratgias?) Avisar os outros processos que o destino mudou de lugar Outros erros podem acontecer erro ao enviar, erro ao Sistemas Operacionais II avisar mudana...

372

Migrao de Processos
Benefcios

Melhor tempo de resposta e speed-up da execuo Balanceamento de carga dinmico entre mltiplos nodos Uso de CPUs em diferentes lugares da rede Alta taxa de transferncia (throughput) entre processos e utilizao eficiente de recursos Migrao de processos I/O e CPU-bound para servidores especficos de processamento Reduo de trfego na rede Migrao de processos mais perto dos recursos sendo utilizados em um determinado momento Aumento da confiabilidade dos sistemas Migrao de processos de um site em falha para sites mais confiveis Replicao e migrao de processos crticos para um local remoto
Sistemas Operacionais II 373

Migrao de Processos
Captura do Estado

Registradores da CPU So capturados (salvos) em um chamada de congelamento (freeze) Espao de Endereamento Pode ser difcil restaurar ponteiros mecanismos para tratamento de ponteiros em memria Estado dos mecanismos de I/O: Operaes I/O Rpidas Completadas antes do incio da migrao Operaes I/O Durveis Operations como arquivos e interaes de usurios

Difcil de transportar arquivos correntemente em uso para depois realizar chamadas de sistema de restaurao Talvez alguns arquivos 'populares' de um sistema possam estar j disponveis nos nodos destino
Sistemas Operacionais II 374

Migrao de Processos
Mecanismos de Transferncia de Endereos
Total Freezing
Nodo Origem Nodo Destino

Pretransferring
Nodo Origem Nodo Destino

Transfer-on-reference
Nodo Origem Nodo Destino

Suspenso

Deciso de Migrao

Deciso de Migrao

Suspenso Freezing

Deciso de Migrao

Freezing

Transfer of address space

Suspenso Freezing

Transfer of address space

On-demand transfer

renicio

renicio

renicio

Mritos: fcil implementao Demritos: espera alta

Mritos: tempo de freezing reduz. Demritos: tempo total extendido Mritos: migrao rpida Demritos: espera por referncia

Migrao de Processos
Sistemas Heterogneos
Representao de dados externos (incoerncias entre arquiteturas) Dados em ponto flutuante (depende de implementao) Espao suficiente para representao deve ser previamente alocado para representao de ponto flutuante Migrao de Processos restrita para mquinas que conseguem evitar over/underflow e perda de preciso Em geral, migrao de processos em sistemas heterogneos simplesmente muito cara de ser implementada com sucesso Trabalho rduo de converso de representaes Representao de tipos de dados especficos para cada arquitetura
Sistemas Operacionais II 376

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

377

Agentes Mveis
Paradigma

Abordagem Convencional
cliente Rede servidor

Abordagem com Mobile Agents


cliente agente

Rede
Sistemas Operacionais II

cliente agente

servidor

378

Agentes Mveis

Baixo trfego e latncia na rede Comunicao entre agentes e servidor local Encapsulamento Todo o cdigo e dados so carregados por um agente Navegao autnoma e assncrona Agentes desconectam a comunicao com seus clientes e visitam os servidores quando acham necessrio Adaptabilidade em tempo de execuo (run-time) Agentes podem carregar novos objetos dinamicamente a medida que migram na rede Robustez Agentes podem detectar erros futuros e sair de nodos em falha (e avisar outras entidades)
Sistemas Operacionais II 379

Agentes Mveis
Definio de Agentes e Locais

Agentes: 1. Estado: Estado de execuo do processo a ser restaurado 2. Implementao: Cdigos dependentes de arquitetura 3. Interface: Facilidades para comunicaco em outros locais com outros agentes 4. Identificador: Identificador do Agente 5. Autoridade/Direo: Responsvel pelo agente (ou criador) Locais: 1. Engine: Local para executar os agentes 2. Resource: CPU, memria, banco de dados, etc. 3. Endereo de Rede: IP + identificador lgico 4. Diretor: O responsvel por todo o local

Sistemas Operacionais II

380

Agentes Mveis
Migrao de Processos vs Agentes Mveis
Migrao de Processos Autonomia Navegacional Execuo de Cdigo Deciso feita por um sistema. Agentes Mveis Agentes tomam decises prprias sobre onde ir e quando ir ( go( ) ou hop( ) ). Maioria dos agentes so implementados em Java ou Tcl, executando em VMs. Agentes baseados em Java reiniciam sua execuo a partir do incio de uma chamada de mtodo pr-estabelecida. Agentes abandonam conexes I/ O sempre que partem para um novo destino.
381

Programas so compilados e executados de forma nativa.

Migrao

Execuo reiniciada do exato ponto em que parou.

Estado de I/O

Chamadas longas de I/Os podem ser migradas para um destino.


Sistemas Operacionais II

Discusso

Vantagens e desvantagens de se migrar processos


Aproveitar os recursos otimizadamente Auxiliar na congesto da rede (minimiz.) Estado de processos e endereamento difcil de se 'salvar' Pode acabar prejudicando a execuo, dependendo do caso
Sistemas Operacionais II 382

Problemas

Atualmente (2010): openMosix, LinuxPMI

Agenda

Reviso da aula passada Gerenciamento de Processos Execuo de threads em ambientes distribudos Migrao de cdigo Agentes Mveis Exerccios e Agenda da prxima aula

Sistemas Operacionais II

383

Exerccios

Aula passada

Porque existem eleies em SODs? Como o funcionamento da execuo de processos em sistemas monoprocessados? E multiprocessados? Porque migrar um processo? Porque utilizar agentes mveis?
Sistemas Operacionais II 384

Execuo de processos

Migrao de cdigo e agentes mveis


Agenda da prxima aula

ltimo assunto da disciplina

Duas prximas aulas

1. Sistemas de Arquivos Distribudos 2. Casos de Uso de Sistemas de Arquivos Distribudo

Comentrios sobre o trabalho T2

Dvidas

Sistemas Operacionais II

385

Sistemas Operacionais II Aula XIII

Sistemas Operacionais II

386

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

387

Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais Execuo de processos em Rede Sistemas de arquivos distribudos HOJE!

Sistemas Operacionais II
Comunicao Concorrncia Linguagens Concorrentes Sincronizao

troca de mensagens

Sistemas Operacionais II

388

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos (SAD) Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

389

Reviso da Aula Passada


Migrao de Processos Vantagens Desvantagens Espao de Endereamento Criogenia de Processos Proximidade de aplicao

Sistemas Operacionais II

390

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos (SAD) Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

391

Sistemas de Arquivos
princpios

Porque necessrio existir um sistema de arquivo?

Visto l em Sistemas Operacionais I

Sistemas Operacionais II

392

Sistemas de Arquivos
princpios

Armazenamento permanente de informaes Compartilhamento de informaes Sistema de Arquivos


Subsistema de um SO Responsvel pelo gerenciamento, organizao, armazenamento, recuperao, nomeao, compartilhamento e proteo Abstrao para o mecanismo fsico (HW)
Sistemas Operacionais II 393

Sistemas de Arquivos
princpios

Sistemas de Arquivos

Arquivos e diretrios
Nome e.g. /home/alex/slides.ppt Dados sequncia de bytes que encapsulam info. Tamanho Informaes relativas sua proteo Lugar que encontram-se no disco (location)
Sistemas Operacionais II 394

Arquivos possuem:

Normalmente possuem:

Sistemas de Arquivos
principais componentes e estruturas

J diretrios:

Uma abstrao de um 'continer' que auxiliam no salvamento de informaes


Geralmente seguem uma estrutura hierrquica Normalmente so um tipo especial de arquivo Nome Arquivos e diretrios (se a estrutura for hierrquica) existentes dentro deste Tamanho
Sistemas Operacionais II 395

Diretrios possuem:

Sistemas de Arquivos
compartilhamento de arquivos e diretrios

Dois mecanismos para compartilhamento de arquivos

1. Baseados em cpias
Uma aplicao realiza cpias explcitas de arquivos entre as mquinas Exemplos: UUCP (Unix to Unix Copy), FTP, gridFTP, {.*}FTP, rcp, scp, etc.

2. Acesso transparente

Sistemas de Arquivos Distribudos

Sistemas Operacionais II

396

Sistemas de Arquivos
distribuio de informao em uma rede

Prov abstrao similar para os arquivos

Acesso remoto como se fosse local

Torna conveniente o acesso aos usurios Mais complexo que sistemas de arquivos localizados em uma mesma mquina

Discos encontram-se fisicamente dispersos Prov: compartilhamento remoto, mobilidade de usurios, disponibilidade (tolerncia a falhas), estaes sem disco (ou diskless) e Sistemas Operacionais II 397 custo associado

Sistemas de Arquivos Distribudos (SAD)

Sistemas de Arquivos
sistemas de arquivos distribudos

Um sistema de arquivos distribudo um sistema de arquivos que pode possuir arquivos em mais de uma mquina SADs possuem muitas implementaes:

Network File Systems Parallel File Systems Access Transparent Distributed File Systems Outros...

Sistemas Operacionais II

398
398

Sistemas de Arquivos
benefcios de se utilizar distribuio

Compartilhamento de arquivos com outros usurios


Outros usuriospodem acessar seus arquivos possvel ter acesso a arquivos que no estariam disponveis de outra forma (HD com capacidade baixa)

Tornar arquivos disponveis em mais de uma mquina Acesso a arquivos de grande porte que no eram possveis de serem acessados antes Uso reduzido de recursos locais e reduo de falhas Problemas de versionamento de arquivos em um sistema distribudo SAD implementado para tratar destes problemas
Sistemas Operacionais II 399
399

Sistemas de Arquivos
principais propriedades

Desempenho

Usualmente medida como o tempo mdio para satisfazer requisies de clientes Semntica de uso deve ser fcil de entender Sistemas distribudos heterogneos uma realidade Diferentes plataformas e diferentes aplicaes Localizao alterada de forma transparente
Sistemas Operacionais II 400

Simplicidade e facilidade de uso

Heterogeneidade

Mobilidade de arquivos

Escalabilidade

Sistemas de Arquivos
principais propriedades

Transparncia

De rede (network) e de localizao (location) Arquivo no revela sua localizao fsica Arquivo no precisa ser modificado se localizao fsica for alterada Usurios podem trabalhar em mltiplos nodos sem se preocuparem onde est a informao servidores devem operar normalmente na falha dos clientes, e vice-versa
Sistemas Operacionais II

Independncia de localizao

Mobilidade de usurios

Tolerncia a falhas

401

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos (SAD) Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

402

Projeto de SADs
princpios fundamentais

Para preencher os requisitos, SA implementado com trs componentes


1. Servio de arquivo bsico 2. Servio de diretrio 3. Mdulo de cliente
Programa de usurio Programa de usurio Programa de usurio

API

Mdulo cliente

Quem faz o que?


Interface RPC do serv. de dir.

Rede

Servio de diretrios

Interface RPC do serv. de arq.

Servio de arquivo bsico Sistemas Operacionais II 403

Projeto de SADs
servio de arquivo bsico

1o. componente: servio de arquivo Implementa operaes nos arquivos Arquivos so referenciados por seus FIDs

nicos no SD Gera um FID e devolve ao requisitante

Criao de um novo arquivo?

Sistemas Operacionais II

404

Projeto de SADs
servio de diretrio

2o. componente: servio de diretrio Responsvel por converter nomes textuais em FIDs Diretrio

Conjunto de FIDs e nomes textuais Arquivos de diretrio so arquivos, e gerenciados pelo SAB Hierarquia de diretrios
Sistemas Operacionais II 405

Cliente do servio de arquivo bsico


Projeto de SADs
mdulo de cliente

3o. componente: mdulo de cliente Chamadas de sistema para manipulao de arquivos

Criar, ler, escrever...

Armazena localizao na redes do servio de diretrio e de arquivo bsico Pode gerenciar cache local

Sistemas Operacionais II

406

Projeto de SADs
semnticas de compartilhamento

Quando h mais de um processo lendo/ escrevendo em um arquivo Controle de concorrncia Semntica de compartilhamento

Quatro tipos bsicos


Semntica UNIX Semntica de sesso Arquivos imutveis Transaes


Sistemas Operacionais II 407

Semnticas de Compartilham.
semntica UNIX

Quando um READ segue um WRITE, o READ retorna o valor que acabou de ser escrito

Sempre retorna o valor mais atual Servidor central que processa requisies na ordem (lgica)

Implementao trivial

Sistemas Operacionais II

408

Semnticas de Compartilham.
semntica de sesso

Padres de acesso a arquivos so fixos


Clientes abrem arquivos Realizam sries de escritas/leituras Clientes fecham arquivos Sries de mudanas em arquivos

So criadas sesses

Visvel apenas para quem criou sesso Quando sesso acaba, mudanas so visveis para outros processos
Sistemas Operacionais II 409

Semnticas de Compartilham.
semntica de sesso

Mltiplos clientes podem realizar acessos de escrita/leitura concorrentemente Quando clientes fecham sesso, os outros possuem cpias antigas dos arq. Quando sesso acaba, uma cpia enviada para o servidor de arquivos

Quem fecha por ltimo tem a ltima verso Dependendo da rede, no claro se o ltimo a modificar ser o arquivo mais atual

so processados no servidor em uma ordem diferente da que fechou a sesso

Sistemas Operacionais II

410

Semnticas de Compartilham.
semntica com arquivos imutveis

Baseado no modelo de arquivos imutveis Estes arquivos no podem ser modificados depois de criados Mudanas so feitas tratando os arquivos como novas verses

Novos arquivos so criados

Sistemas Operacionais II

411

Semnticas de Compartilham.
semntica com transaes

Tratar operaes de forma atmica

Uma transao Transaes permitem concorrncia Sistema faz serializao

Dois processos ao mesmo tempo?


Sistemas Operacionais II

412

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

413

Caching
detalhes de implementao

Funcionalidade arquitetural mais importante no desempenho de um SAD!! Causa de inmeros problemas para programadores de SADs!!!

Manter semntica consistente em um SD mais difcil Problemas de escalabilidade

Sistemas Operacionais II

414
414

Caching
princpios

Caching serve para que?

Sistemas Operacionais II

415

Caching
princpios

Reter arquivos recentemente acessados na memria principal Acessos repetidos as mesmas informaes podem ser feitas sem transferncias de discos Esquemas de caching em Sds devem reformar a escalabilidade e confiabilidade

possvel utilizar uma cache remota para servir aos clientes que fazem requisies
Sistemas Operacionais II 416

Caching
introduo

Tamanho das unidades de dados utilizadas para caching Tamanhos grandes utilizam a rede mais eficientemente Usam e liberam os recursos mais rapidamente Localidade espacial, latncia Semntica que utiliza arquivos 'completos' no consegue armazenar alguns arquivos em alguns nodos locais Tamanhos pequenos ?
Sistemas Operacionais II 417
417

Consistncia
detalhes importantes

Cpia local consistente com a cpia original? Duas tcnicas para verificar a validao de dados em cache [Levy, Silberschatz 1990]

Tcnica iniciada pelo cliente

(client-initiated approach) (server-initiated approach)

Tcnica iniciada pelo servidor

Sistemas Operacionais II

418

Consistncia
tcnica iniciada pelo cliente

Clientes iniciam verificaes de validao Servidor verifica se a cpia local est consistente com a cpia original

Verificar antes de cada acesso

No eficiente pois contata o servidor cada vez Verifica a cada intervalo de tempo Somente quando o arquivo for ser usado que a verificao feita (ltima modif.) Sistemas Operacionais II 419

Verificao peridica

Verificar ao abrir arquivo

Consistncia
tcnica iniciada pelo servidor

Frequncia de validao onerosa em tcnicas iniciadas pelos clientes

Muitas trocas de mensagens

Para mitigar esse problema, tcnicas iniciadas pelo servidor foram propostas Clientes informam ao servidor ao abrirem arquivos

Informam se querem ler, gravar ou ambos Servidor mantm uma lista de arquivos abertos e os modos
Sistemas Operacionais II

420

Consistncia
tcnica iniciada pelo servidor

Servidor grava, para cada cliente, os (ou partes de) arquivos que esto na cache

Se clientes requisitam arquivos apenas para leitura, nenhum problema Se clientes requisitam para leitura e outro cliente em modo escrita

servidor no deve permitir

Clientes no devem abrir arquivos para leitura se j abertos em modo escrita

Ao fechar um arquivo, cliente notifica o servidor das mudanas, que atualiza Sistemas Operacionais II

421

Servidores de arquivos
paradigmas de servio

Servidores podem ser implementados atravs de dois paradigmas de servio

Servidores de Arquivos com Estado (Stateful) Servidores de Arquivos sem Estado (Stateless)

Distino
o

histrico das requisies de servio afetam a execuo das prximas requisies?


Sistemas Operacionais II 422

Tipos de Servios de Arquivo


Servidores de Arquivos Stateful

Mantm informaes de estados de clientes entre as requisies de acesso Estas informaes so utilizadas nas prximas execues Como descobrir quanto tempo reter informaes de estado?

Entre operaes open e close Conceito de Sesso

Servidor assume uma operao open em uma requisio e retm dados at receber um close, descartando-as
Sistemas Operacionais II 423

Tipos de Servios de Arquivo


Servidores de Arquivos Stateless

No mantm informaes sobre o estados dos clientes Todas as requisies so auto-contidas

Devem ter todas as informaes necessrias para efetuar uma determinada operao Identificador do arquivo, posio do arquivo, modificadores de acesso

Sem necessidade de estabelecimento e terminao de uma conexo utilizando operaes de open e close
Sistemas Operacionais II 424

Tipos de Servios de Arquivo


distines entre stateful e stateless

Recuperao de Falhas

Um servidor stateful perde todas as informaes de estado no crash

Pode tentar restaurar atravs de protocolos de recuperao baseados em dilogos com clientes Servidor deve estar ciente de falhas de clientes para liberar espao alocado pelo cliente

Em servidores stateless os efeitos das falhas e recuperaes passam quase desapercebidos

Outros servidores podem realizar as requisies de cliente pois cada uma auto-contida
Sistemas Operacionais II 425

Tipos de Servios de Arquivo


distines entre servios stateful e stateless

Penalidades de se utilizar servios stateless robustos:


Mensagens de requisio so mais longas Processamento de requisies mais lento

Alguns ambientes exigem servios stateful

Mensagens devem ser processadas em ordem especfica, ento devem ser guardadas, constituindo servidor stateful
Sistemas Operacionais II 426

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

427

Replicao != Caching

Ambos tratam de mltiplas cpias de dados Diferenas bsicas

Rplicas esto associadas com um servidor, e cpias na cache, com clientes Rplicas so mais persistentes, disponveis, seguras, completas e precisas, informaes na cache so mais volteis
Sistemas Operacionais II 428

Replicao

SDs geralmente oferecem alguma forma de replicao de dados

Mltiplas cpias do mesmo objeto Aumentar confiabilidade e disponibilidade Permitir acesso mesmo na caso de falha Diviso de carga entre servidores Maior escalabilidade (baixo overload no servidor)
Sistemas Operacionais II 429

Por que?

Principal problema: transparncia (!)

Replicao

Controle da Replicao

Em nvel de usurio (explcito)

Conhece e pode at manipular Sistema automatiza replicao Realiza cpias onde julga necessrio

Em nvel automtico (implcito)


Replicao pode ser feita, basicamente, de trs formas


Replicao explcita Replicao atrasada Replicao usandoOperacionais II grupo Sistemas

430

Replicao explcita

Programador faz todo o trabalho Servio de diretrio pode permitir mltiplos FIDs por arquivo

Recupera todos no lookup Quando for manipular, tenta seqencialmente um por um dos FIDs, at conseguir

Funciona, mas muito trabalhoso, e nada transparente


Sistemas Operacionais II 431

Replicao atrasada

Sistema automtico controlado sem o conhecimento dos usurios Quando um processo cria um arquivo, no informa seus detalhes de localizao Depois, o sistema cria rplicas de acordo com uma poltica de criao Replicaes atrasadas (lazy replications) so feitas em background

Quando o sistema julgar necessrio


Sistemas Operacionais II 432

Replicao usando grupo

Operao de escrita feita ao mesmo tempo em todos

S1

Multicast atmico
C S2

Abstrao de grupos facilita o trabalho a ser feito Atrasada x grupo


S3

Um servidor x grupo Segundo plano x atmica

Sistemas Operacionais II

433

Protocolos de atualizao

At agora, s resolvemos o processo de criao Atualizao no to simples


Mensagem de update para cada cpia Se o processo coordenador falhar, cpias no alteradas inconsistncias

Duas formas
1. Replicao de cpia primria 2. Algoritmos de votao
Sistemas Operacionais II 434

Replicao de cpia primria

Um servidor eleito primrio

Outros so secundrios Entregue para o primrio Atualiza cpia local Grava em memria estvel Notifica secundrios

Atualizao

Sistemas Operacionais II

435

Replicao de cpia primria

No caso de falha

Primrio entra no ar Recupera da memria estvel as atualizaes Continua a atualizar

Leitura pode ser feita de qualquer um Problema

Ponto nico de falha

Sistemas Operacionais II

436

Algoritmos de votao

Gifford formalizou em 1979

Para ler, necessrio quorum de leitura

Pelo menos NR servidores Pelo menos NW servidores

Para escrever, quorum de escrita

Restrio: NR + NW > N
Garante que existe pelo menos um arquivo em comum nos dois grupos

Sistemas Operacionais II

437

Algoritmos de votao
Qr 1 7 5 2 3 6 8 4 Qw

n=8 cpias de um arquivo replicado Quorum de leitura Qr: r=4 Quorum de escrita Qw: w=5

r+w>n?
Gravao no Quorum de escrita: cpias ganham verso nova Novas leituras no QuorumSistemas Operacionais II de leitura pegam verso mais recente 438

Agenda

Reviso da aula passada Sistemas de Arquivos Distribudos Projeto de SADs Caching e Consistncia Replicao Estudos de caso e Agenda da prxima Aula

Sistemas Operacionais II

439

Estudos de Caso

Basic (example: NFS 3.0, NFS 4.0, SMB) Shared storage (example: Global FS) Wide-area (example: AFS) Fault-tolerant (example: Coda) Parallel (example: Lustre)

Outros: HDFS, Google FS

Fault-tolerant and Parallel (dCache) Non-Parallel Unified Namespace

Sprite, AFSSistemas Operacionais3.0 2.0, AFS II

440

Agenda da Prxima Aula

Estudos de caso que veremos com maior nvel de detalhe


NFS AFS GoogleFS

Motivao de mais um FS... Primitivas principais e implementao

Introduo ao Lustre

Sistemas Operacionais II

441

Sistemas Operacionais II Aula XIV

Sistemas Operacionais II

442

Agenda

Reviso da aula passada Exemplos de Sistemas de Arquivos Distribudos atuais (2010)

Mais comerciais e mais utilizados

Exerccios

Sistemas Operacionais II

443

Reviso da Aula Passada

Sistemas de Arquivos Distribudos

Caractersticas

Projeto de SADs (polticas de transferncia de arquivos) Caching Replicao Protocolo de Atualizao

Algoritmos de Votao
Sistemas Operacionais II 444

Lembrando: Estudos de Caso


Basic (example: NFS 3.0, NFS 4.0) Shared storage (example: Global FS) Wide-area (example: AFS) Fault-tolerant (example: Coda) Parallel (example: Lustre)

Outros: HDFS, Google FS

Fault-tolerant and Parallel (dCache) Non-Parallel Unified Namespace

Sprite, AFSSistemas Operacionais3.0 2.0, AFS II

445

Lembrando: Estudos de Caso


Basic (example: NFS 3.0, NFS 4.0) Shared storage (example: Global FS) Wide-area (example: AFS) Fault-tolerant (example: Coda) Parallel (example: Lustre)

Outros: HDFS, Google FS

Fault-tolerant and Parallel (dCache) Non-Parallel Unified Namespace

Sprite, AFSSistemas Operacionais3.0 2.0, AFS II

446

Estudos de Caso

NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula

Sistemas Operacionais II

447

Network File System (NFS)


Desenvolvido pela Sun em 1980 SAD mais conhecido Interface padro POSIX para Sistemas de Arquivos Drives de rede so montados na estrutura de diretrios local Todos na sala j devem ter usado o NFS de uma forma ou de outra para mapear diretrios em uma rede...
Sistemas Operacionais II 448

Network File System (NFS)

Inicialmente implementava servio de arquivos do tipo stateless

Operao sobre UDP; no usava streams TCP Lock de arquivos implementados em protocolos de alto-nvel Implicao: Todas as requisies de clientes tinham todas as informaes necessrios (conforme j visto) Vantagem: Escalabilidade

O estado do servidor de arquivos no Sistemas Operacionais II cresce com mais clientes

449

Network File System (NFS)

Implementaes modernas usam TCP/IP & servios de arquivos do tipo stateful RFCs (Request for Comments):

RFC 1094 para v2 (3/1989) RFC 1813 para v3 (6/1995) RFC 3530 para v4 (4/2003)

http://www.ietf.org/rfc.html

Sistemas Operacionais II

450

Network File System (NFS)


Bastante popular Nomeao de arquivos no uniforme Cada cliente decide como montar os volumes de um servidor NFS Sem transparncia de localizao

Movimentao de dados implica em remontar novos volumes Ponto de falha e problemas de Sistemas Operacionais II escalabilidade

Carga elevada no servidor central

451

Estudos de Caso

NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula

Sistemas Operacionais II

452

Andrew File System (AFS)

Devenvolvido na Carnegie Mellon University desde 1983 Segurana: autenticao com Kerberos (protocolo de autenticao de rede) Mais alta escalabilidade se comparado com outros SAD da mesma poca Suporte a mais de 50.000 clientes

Sistemas Operacionais II

453

Andrew File System (AFS)

Espao de identificao global

Escopo WAN Movimentao de arquivos funciona sem remontar volumes

Transparncia de Localizao

Implementao de Caching em clientes Suporte a replicao de arquivos apenas para leitura


Sistemas Operacionais II 454

AFS x NFS

Replicao robusta

Servidores NFS servers caem e levam juntos seus clientes Servidores AFS caem e ningum fica sabendo (OK, acesso aos dados somente em modo de leitura) NFS no prov muita confiabilidade AFS funciona sem problemas

Compartilhamento de arquivos WAN


Segurana nunca foi uma preocupao no Sistemas Operacionais II 455 AFS (kerberos4)

Estudos de Caso

NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula

Sistemas Operacionais II

456

Lustre

Necessidade de um sistema de aquivos para clusters de tamanho massivo com as seguintes caractersticas

Altamente escalvel > 10,000 nodos Provendo petabytes de armazenamento Alto throughput (100 GB/sec)

Datacenters possuem diferentes necessidades

Implementao de um SA de propsito geral que trabalhe com estas demandas


Sistemas Operacionais II 457

Lustre

Boa escalabilidade e alto desempenho Lawrence Livermore National Lab BlueGene/L possui 200,000 clientes

Processos acessam o SA lustre com 2.5 Petabytes Com 1024 nodos de E/S Rede 1Gbit Ethernet a 35 GB/s

Sistemas Operacionais II

458

Estudos de Caso

NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula

Sistemas Operacionais II

459

Google File System


Mltiplos clusters distribudos globalmente Milhares de consultas por segundo


Cada l centenas de Mb de dados Cada consome bilhes de ciclos de CPU

Google armazena dezenas de cpias de toda a Internet! Concluso


Necessidade de um sistema de arquivos Escalvel, distribudo, seguro e tolerante a falhas Sistemas Operacionais II
460

Google File System

Servidor de Chunks (pedaos)

Arquivos so divididos em chunks de tamanho fixo (64 MB) Cada identificado por um identificador nico global de 64 bits Servidores de chunks armazenam-os em discos locais como arquivos Linux e lem/escrevem em dados de acordo com os identificadores de arquivos

Para confiabilidade, cada chunk replicado em mltiplos servidores de Sistemas Operacionais II chunks (default: 3 rplicas)

461

Google File System

Sistemas Operacionais II

462

Google File System

Viso no convencional (padro) sobre as falhas

Trata falhas como a normalidade, no como a exceo Monitoramento constante Replicao de dados cruciais Recuperao rpida e automtica Checksum para verificar corrupo de dados
Sistemas Operacionais II 463

Tolerncia a Falhas

Estudos de Caso

NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula

Sistemas Operacionais II

464

Prxima Aula: Laboratrio

Aula no laboratrio

Trabalho Final da disciplina Dvidas para a Prova P2

Lista de exerccios e questionamentos para a Prova ltima aula: Computao Paralela


Depois apresentao do trabalho E Prova P2...


Sistemas Operacionais II 465

Sistemas Operacionais II Aula XV

Sistemas Operacionais II

466

Aula

Aula em laboratrio

Sistemas Operacionais II

467

Sistemas Operacionais II Aula XVI

Sistemas Operacionais II

468

Programao Paralela
introduo

Programao paralela a diviso de um problema em partes, de maneira que essas partes possam ser executadas paralelamente por diferentes processadores. Os processadores devem cooperar entre si, utilizando primitivas de comunicao e sincronizao. Objetivos Principal: Ganho de desempenho Secundrio: Tolerncia a falhas

Sistemas Operacionais II

469

Programao Paralela
motivao

Necessidade de poder computacional


Soluo de aplicaes complexas Metereologia Prospeco de petrleo

Anlise de local para perfurao de poos Aerodinmica, energia nuclear Anlise de algoritmos para criptografia Simulao computacional da dinmica molecular de protenas

Simulaes fsicas

Matemtica computacional

Bioinformtica

Sistemas Operacionais II

470

Conhecimento do Hardware

Ideal seria no precisar conhecer detalhes da mquina

Portabilidade

Em PP o conhecimento da mquina influencia diretamente o desempenho

Paradigma de comunicao

Memria compartilhada x distribuda Preciso comunicar Threads, openMP MPI

Ferramenta de programao

Modelagem do problema

Sistemas Operacionais II

471

Modelagem do Problema

Quantas processadores utilizar?


Quanto

mais processadores mais rpido?

Como distribuir o trabalho a ser feito (carga) entre os envolvidos? Quando comunicar/sincronizar?
afetam

Desempenho final da aplicao paralela


Sistemas Operacionais II 472

Anlise de Desempenho

Speedup
Fator

de acelerao Melhor tempo seqencial Normalmente sp<np

Overhead de comunicao

Ideal

linear sp=np Superlinear sp>np


efeito de cache

Sistemas Operacionais II

473

Anlise de Desempenho

Eficincia
Medida

de utilizao do processador

Lei de amdahl
Usado

para encontrar o maior Speedup para uma aplicao onde apenas uma parte do sistema foi paralelizada. O Speedup limitado pelo tempo necessrio para execuo da parte seqencial.
P = Parte paralelizvel (1-P) = Parte seqencial

Sistemas Operacionais II

474

Cluster IC1

Centro de computao Universidade Karlsruhe Cluster Transtec AG Contm ns SMP com processadores Intel Xeon e um sistema hbrido PPM.

2 login nodes each with 8 cores with a theoretical peak performance of 85.3 GFLOPS and 32 GB main memory per node, 200 compute nodes each with 8 cores (2 Quad-core Intel Xeon X5355 2.667GHz) with a theoretical peak performance of 85.3 GFLOPS and 16 GB main memory per node and an InfiniBand 4X DDR Interconnect with ConnectX Dual Port DDR HCA 104 novembro 2007 265 junho 2008 497 novembro 2008 23 Junho 2009 nova lista

Posio top500:

Sistemas Operacionais II

475

Top500

www.top500.org

Sistemas Operacionais II

476

Anlise de Desempenho

Exerccio: O tempo para execuo em paralelo de um programa para multiplicao de duas matrizes de dimenso 5000 esta representado na tabela abaixo. Complete a tabela com o Speedup e a eficincia para cada nmero de processadores Tempos de execuo feitos no cluster IC1 da universidade de Karlsruhe.

Nr proc 1 2 4 6 8 10 12 14

T. Exec 25,64 15,28 8,37 6,3483 5,4437 5,01 4,69 4,85

speedup 1

Efic. 1

Sistemas Operacionais II

477

Anlise de Desempenho
nmero de processadores 1 2 4 6 8 10 12 14 Tempo de execuo Speedup Eficincia

25,64 15,28 8,37 6,3483 5,4437 5,01 4,69 4,85

1 1,67801 3,063321 4,038877 4,710032 5,117764 5,466951 5,286598

1 0,839005 0,76583 0,673146 0,588754 0,511776 0,455579 0,377614


478

Sistemas Operacionais II

Speedup
16 14 12 Speedup 10 8 6 4 2 0 1 2 4 6 8 10 12 14 Nmero de Processadores Speedup Ideal

Eficincia
1,2 1 Eficincia 0,8 0,6 0,4 0,2 0 1 2 4 6 8 10 12 14 Eficincia Ideal

Sistemas Operacionais II Nmero de processadores

479

Desafios na Modelagem do Problema

Converso da aplicao seqencial em paralela

Algumas aplicaes no so paralelizveis Modelos de distribuio de dados Dependncia das operaes Necessidade de troca de informao entre processos Diviso adequada da computao entre os recursos Faz send e no receive

Particionamento de cdigo e dados


Custo de sincronizao

Balanceamento de carga

Deadlocks (comunicao)

Dificuldade de depurao

Sistemas Operacionais II

480

Modelagem

Modelos de mquina: descrevem as caractersticas das mquinas Modelos de programao: aspectos ligados a implementao e desempenho Modelos de aplicao: paralelismo de um algoritmo Vantagens:

Compreender diferentes aspectos da aplicao na implementao de um programa paralelo


Quantidade de clculo envolvido total e por atividade Volume de dados manipulado Dependncia de informaes entre atividades em execuo

Sistemas Operacionais II

481

Modelos de Mquina

Classificao de Flynn

SISD (pc), SIMD (maq vetorial), MISD, MIMD (maq par e dist) Multiprocessador SMP, NUMA Comunicao realizada atravs de escritas e leituras na memria compartilhada Multicomputador MPP,NOW,Cluster Comunicao realizada por troca de mensagens em uma rede de interconexo

Arquiteturas com memria compartilhada


Arquiteturas com memria distribuda


Sistemas Operacionais II

482

Modelos de Programao

Distribuio do trabalho granulosidade


Relao

entre o tamanho de cada tarefa e o tamanho total do programa, ou seja, a razo entre computao e comunicao. Pode ser alta (grossa), media ou baixa (fina)

O tamanho de cada tarefa depende do poder de processamento de cada n A comunicao depende da latncia e da vazo da rede de interconexo

Sistemas Operacionais II

483

Modelos de Programao

Granulosidade grossa

Maior custo processamento Dificulta balanceamento de carga Muito processamento, pouca comunicao Menor custo de sincronizao Maior freqncia de comunicao Facilita balanceamento de carga Pouco processamento, muita comunicao Alto custo de sincronizao

Granulosidade fina

Indica o tipo de arquitetura mais adequado: procs vetoriais (fina), SMP (mdia), cluster (grossa)

Sistemas Operacionais II

484

Modelos de Programao

Como o paralelismo da aplicao caracterizado

SPMD (Single Program Multiple Data) - Paralelismo de dados execuo de uma mesma atividade sobre diferentes partes do conjunto de dados. Dados determinam o paralelismo e a forma como os clculos devem ser distribudos

Rplica, mas precisa ateno com comunicao entre processos Mais fcil balanceamento por ser a mesma atividade

MPMD (Multiple Program Multiple Data) - Paralelismo de tarefa execuo paralela de diferentes atividades sobre conjuntos distintos de dados. Identificao das atividades paralelas e como so distribudas pelos recursos disponveis

Balanceamento de carga mais difcil do que em SPMD Processos comunicam menos durante as operaes

Sistemas Operacionais II

485

Modelos de Aplicao

As aplicaes so modeladas usando um grafo que relaciona as tarefas e trocas de dados


Ns:

tarefas Arestas: trocas de dados (comunicao e/ou sincronizao)

Modelos bsicos
Mestre/escravo Pipeline Diviso

e conquista Fases paralelas

Sistemas Operacionais II

486

Modelos de Aplicao

Mestre/escravo ou Master/worker

Mestre executa as tarefas essenciais do programa e divide o resto entre processos escravos Escalonamento centralizado gargalo 1-N Maior tolerncia a falhas: um escravo para, no todo processamento

Mestre

escravo

escravo
Sistemas Operacionais II

escravo
487

Modelos de Aplicao

Pipeline

Encadeamento de processos Pipeline virtual (rede no muda) Fluxo contnuo de dados Sobreposio de comunicao e computao No tolerante a falhas 1 para, todos param

Sistemas Operacionais II

488

Modelos de Aplicao

Diviso e conquista

Processos organizados em uma hierarquia (pai e filhos) Processo pai divide trabalho e repassa uma frao deste ao seus filhos Integrao dos resultados de forma recursiva Dificuldade de balanceamento de carga na diviso das tarefas

Diviso do problema

Integrao dos resultados

Sistemas Operacionais II

489

Modelos de Aplicao

Fases paralelas

Etapas de computao e sincronizao Problema de balanceamento devido ao sincronismo

Processos que acabam antes Toda comunicao realizada ao mesmo tempo

Overhead de comunicao

IN T E R A O
Sistemas Operacionais II

IN T E R A O
490

Problema

Como paralelizar a ordenao de um grande vetor?


Mestre/escravo Pipeline Fases

paralelas Diviso e conquista

Sistemas Operacionais II

491

Memria compartilhada

A comunicao entre os processos realizada atravs de acessos do tipo load e store a uma rea de endereamento comum. Para utilizao correta da rea de memria compartilhada necessrio que os processos coordenem seus acesso utilizando primitvas de sincronizao.

Sistemas Operacionais II

492

Memria distribuda

Troca de Mensagens
Linguagem padro com biblioteca para troca de mensagens Exemplos: MPI (Message Passing Interface), PVM (Parallel Virtual Machine) descrio explcita do paralelismo e troca de mensagens entre processos mtodos principais

criao de processos para execuo em diferentes computadores troca de mensagens (envio e recebimento) entre processos sincronizao entre processos

Sistemas Operacionais II

493

Sistemas Operacionais II Aula XVIII

Sistemas Operacionais II

494

Aula

Prova P2

Sistemas Operacionais II

495