Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais II
Caching, replicao, sistema de arquivos, concorrncia, troca de mensagens, etc Distribuio tambm considerada Threads (fortemente recomendado) RMI (introduo)
Sistemas Operacionais II 2
Programao
Planejamento da Disciplina
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
Notas Introdutrias
Sistemas Operacionais
De Rede Distribudos
Caractersticas desejadas
Sistemas Operacionais II
Agenda
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
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
10
Programa de Aprendizagem
Redes de Computadores Sistemas Operacionais HOJE! Execuo de processos em Rede Sistemas de arquivos distribudos
Sistemas Operacionais II
troca de mensagens
Sistemas Operacionais II
11
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
12
Reviso da Aula I
CPU
CPU
Memria Global
CPU
CPU
hardware de interconexo
Reviso da Aula I
CPU
CPU
CPU
CPU
CPU
CPU
mem. local
mem. local
mem. local
mem. local
mem. local
mem. local
rede de comunicao
SDC
Caractersticas
1. imagem do sistema 2. autonomia (kernels) 3. tolerncia a falhas
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
16
Reviso de SOs
Perifricos CPU Mouse
HD
Sistemas Operacionais II
17
Histria
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
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
21
Servios em SOs
Tipos de servios
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
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
Acesso a discos magnticos Terminais Impressoras HD externos, pendrives Servios tipo alocao de perifricos Leitura, escrita, liberao
Sistemas Operacionais II 24
Basta acessar?
Sistemas multiusurios
Uso de CPU, memria Perifricos: impressoras, HD, teclado (!) Importncia Pq? identificao de gargalos
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
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
Diferenas principais
Sistemas Operacionais II
28
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
29
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
Sistemas Operacionais II
31
CS - Kernel do SO (cont.)
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
CS - Kernel do SO (cont.)
Aplicaes
Microkernel Hardware
Outros exemplos?
Sistemas Operacionais II
Complexidade
33
Kernel
Utilitrios Programas 'normais', executados fora do kernel do SO Implementam tarefas bsicas para utiliz.
Sistemas Operacionais II
34
Antigamente ('60)
Visual C++ (Microsoft) GCC (GNU Compiler Collection, Linux) BCC (Borland C Compiler)
interpretador de comandos
Sistemas Operacionais II 35
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
popularizao do SO Windows
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
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
39
Gerncia do Processador
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
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
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
CPU
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
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
2) Rodar o processo
- Como antes
Sistemas Operacionais II
49
Salvar na pilha, carregar depois Uso da memria Se programa ocupar toda a memria?
Problemas
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
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
52
Escalonamento de Processos
Disputa de recursos por processos Qual processo vai ocupar a CPU? Escalonamento de processos
Escalonamento de Processos
Exemplo:
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
io-b
CPU
Sistemas Operacionais II
55
Algoritmos de Escalonamento
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
Prioridade
Algoritmos de Escalonamento
P1 P2 P3 P4 tempo
Exerccio
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
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
59
Gerenciamento de Memria
Memria lgica
Memria fsica
Gerenciamento de Memria
Transformaes
Agenda
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
62
Sistemas 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
Sistema de Arquivos
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
Servios em SOs Chamadas e Programas de Sistema Gerncia do Processador Escalonamento de Processos (threads) Gerenciamento de Memria Sistemas de Arquivos
65
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
Exerccios II
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
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
Programao em Redes
Sistemas Operacionais II
70
Agenda
Agenda
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
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
Comunicao
Troca de informaes
Troca de mensagens
Comunicao
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
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
Custo de Comunicao
Taxas baixas de erros Algoritmos mais simples de roteamento Baixos custos administrativos
Sistemas Operacionais II
81
Barramento multiacesso (multiaccess bus) - barramento compartilhado - uso de broadcast para transmisso de mensagens
Sistemas Operacionais II 82
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
Redes de Computadores
Sistemas Operacionais II
85
Protocolos de Comunicao
? porque ?
Definio de Interfaces
Agenda
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
Exemplo de Mensagem
enlace rede transporte sesso apresentao aplicao mensagem rodap
Sistemas Operacionais II
90
Detalhes de Camadas
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
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
Agenda
Programao em Redes
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?
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
Java
Programao em Redes
Criao de URL
URL gamelan; gamelan = new URL("http://www.sun.com");
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
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
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.)
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
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
Agenda
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.)
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.)
java.lang.Thread
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)
Sistemas Operacionais II
113
Threads (cont.)
Thread.sleep(time);
// em milisegundos
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?
Sistemas Operacionais II
115
Sincronismo
} }
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
Agenda
Enunciado do Trabalho T1
Sistemas Operacionais II
119
Agenda
Atividades Extra-Classe
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
Agenda da Aula IV
Sistemas Operacionais II
122
Sistemas Operacionais II
123
Agenda
Controle de concorrncia
Sistemas Operacionais II
124
Agenda
Controle de concorrncia
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
Controle de concorrncia
Sistemas Operacionais II
127
Sistemas Operacionais II
128
Agenda
Controle de concorrncia
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
Acessos memria sinalizam eventos para outros itens no sistema Mecanismos de proteo
Locking
Sistemas Operacionais II
132
Agenda
Controle de concorrncia
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
Mecanismos de Controle
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
Mecanismos de Controle
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:
Aes Atmicas
Sistemas Operacionais II
137
Semforos
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
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
MESA = 10;
MESA--; So colocados em mesas por ordem de chegada SE existirem mesas para todos
Sistemas Operacionais II 140
Exemplo de Semforo
Se lotado, novas chegadas devero esperar sua vez Um consumidor, ao sair, libera uma mesa
MESA++;
MESA--;
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
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
Servidores Centralizados
Sistemas Distribudos
Discusso
Sistemas Operacionais II 146
Outros problemas
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?
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
Por que?
Sistemas Operacionais II 151
Algoritmos de EM
Que um problema
Sistemas Operacionais II
152
Algoritmo Distribudo de EM
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
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
Algoritmo Distribudo de EM
P1 P2
P3
P4
Algoritmo Distribudo de EM
TS4 P1 P2
TS4
TS4
P3
P4
Algoritmo Distribudo de EM
TS4 P1 TS6 TS6 TS4 TS6 TS4 P2
P3
P4
Algoritmo Distribudo de EM
TS4 P1 TS6 TS6 TS4 TS6 TS4 P2
P3
P4
P2 P1
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
Algoritmo Distribudo de EM
P1 OK P2
P3
P4
Agenda
Controle de concorrncia
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
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
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
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
Algoritmo de Chandy-Misra-Haas
P1 P2 P3
S1 P9 P8
P10
S2 P6
P4 P5 P7 S3
175
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
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,3,4)
P10
P4 P5 P7 S3
179
Agenda
Controle de concorrncia
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
Jantar dos Filsofos Produtor/Consumidor Sincronizao de mensagens Tratamento de falhas Comunicao Introduo Sistemas Operacionais II a MPI
Programao Concorrente
182
Sistemas Operacionais II
183
Agenda
Modelos de Sincronizao
Sistemas Operacionais II
184
Agenda
Modelos de Sincronizao
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
Modelos de Sincronizao
Sistemas Operacionais II
187
Reviso da Aula IV
Computao Concorrente
Deadlocks
Sistemas Operacionais II
188
Agenda
Modelos de Sincronizao
Sistemas Operacionais II
189
Modelos de Sincronizao
1. Jantar dos Filsofos
2. Produtor / Consumidor
3. Leitor / Escritor
Problema clssico de compartilhamento de recursos No caso, faltam recursos, ou seja, garfos Primeira prioridade: pegar um garfo
191
Sistemas Operacionais II
Detalhes de Implementao
Verificam se vizinhos esto comendo para iniciar o processo de comer Uso de labels para os garfos
Outras solues
Sujos ou limpos
Sistemas Operacionais II
193
Produtor / Consumidor
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
Sistemas Operacionais II
195
Agenda
Modelos de Sincronizao
Sistemas Operacionais II
196
P1 P8 P7
tarefa em comum
passo1 passo2 passo3
P2 P3 P4 P6
P5
Sistemas Operacionais II
197
Troca de Mensagens
Comunicao inter-processos
Cada processo local pode ter uma lista de recursos utilizados em um dado momento Informaes sobre a carga recebida
198
Troca de Mensagens
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
199
Troca 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
Confiabilidade: sistemas distribudos executam em sistemas 'caticos', com mltiplas desconexes e quedas
Corretude: comunicao em gruposender envia para mltiplos receivers e um receiver recebe de mltiplos senders
201
Troca de Mensagens
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
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
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
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
MSN x email
Sistemas Operacionais II 209
Consideraes em TMs
Execuo do enviador Execuo do recebedor
execuo retornada
dge de acknowle envio ment
send(ack)
execuo retornada
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
Modelos de Sincronizao
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
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
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
Execuo do recebedor
em
send(ack) envia ack informando que est pronto receive(msg) execuo retornada
execuo retornada
Sistemas Operacionais II
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
em
execuo retornada
Sistemas Operacionais II
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
Ele l quando estiver apto A mensagem salva SE o receptor no estiver habilitado para process-la
Sistemas Operacionais II
219
Utilizada para comunicao assncrona Processo que envia no precisa esperar que o processo que recebe esteja pronto Implementao de um sistema com capacidade ilimitada
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
Mensagem
...
223
Agenda
Modelos de Sincronizao
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
Tratamento de Falhas
Cliente
requisi
Servidor
resposta
acknowle dgement
Sistemas Operacionais II
227
Tratamento de Falhas
Cliente
requisi
Servidor
resposta
acknowle dgement
Sistemas Operacionais II
228
Tratamento de Falhas
Cliente
requisi
Servidor
resposta
Sistemas Operacionais II
229
Tratamento de Falhas
Cliente
requisio
Servidor f
timeout timeout
de requisio de requisio
f execuo execuo
timeout
de requisio resposta
resposta
Sistemas Operacionais II
230
Agenda da Aula VI
Aula em Laboratrio
Dvidas gerais sobre o trabalho T1 Estou disposio para dvidas sobre o trabalho, de forma assncrona
Sistemas Operacionais II
231
Sistemas Operacionais II
232
Aula
Aula em laboratrio
Sistemas Operacionais II
233
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
236
Agenda
Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente
Troca de mensagens
Programa de Aprendizagem
reviso Redes de Computadores Sistemas Operacionais
Prova P1
Computao Concorrente: - Modelos de Comunicao - Controle de Concorrncia
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...
Sistemas Operacionais II
240
Antes de comear...
Modelos de Memria
Memrias locais
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:
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...
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
Troca de mensagens
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
Troca de mensagens
Sistemas Operacionais II
247
Agenda
Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente
Troca de mensagens
Computao Concorrente
Modelos de comunicao
Mltiplos recursos
Controle de Concorrncia
Agenda
Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente
Troca de mensagens
Troca de Mensagens
Bloqueante, no-bloqueante
Sistemas Operacionais II
251
Agenda
Reviso da Aula I at Aula VII Sistemas Operacionais e Redes (reviso) Sistemas Operacionais Distribudos Computao Concorrente
Troca de mensagens
Trabalho T1
Sistemas Operacionais II
253
Agenda da Aula IX
PROVA P1
Sistemas Operacionais II
254
Sistemas Operacionais II
255
Aula
Prova
Sistemas Operacionais II
256
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
RMI Eleies Processos Sinc. Relgios Com. Grupo Sist. Arq. Dist. Com. Confivel Prog. Paralela
Sistemas Operacionais II 260
Contextualizao da disciplina
Execuo de Processos
Sincronizao
Comunicao
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
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
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
void engatarMarcha(int n); void abastece(float n); Implementao concreta do que prometem fazer na sua definio
267
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
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
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
Objetos que podem ser invocados em diferentes VMs Sistemas Operacionais II remotos so objetos
RMI Arquitetura
Definio das interfaces remotas Implementao dos objetos remotos Implementao dos clientes
Sistemas Operacionais II
272
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
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
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
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
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
Algoritmos de Eleio
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
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
Sistemas Operacionais II
287
Sistemas Operacionais II
288
Agenda
Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 289
Sincronizao
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
Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 291
Sincronizao
RMI
Agenda
Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 293
Sincronizao
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?
Continuao de Algoritmo de SC
Sistemas Operacionais II 294
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
Algoritmos
Sistemas Operacionais II
296
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
Se possui prioridade superior ao atual coordenador, vence a eleio Se o de maior prioridade simplesmente diz que o "chefe"
Sistemas Operacionais II
298
Sistemas Operacionais II
299
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
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
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
Sistemas Operacionais II
303
Agenda
Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 304
Sincronizao
Sincronizao
Comunicao importante mas no o nico aspecto a ser considerado Sincronizao de processos importante
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
Coordenao
Transaes Distribudas
Sistemas Operacionais II
306
Sincronizao
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
Sistemas Operacionais II
308
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
Sistemas Operacionais II
310
Como sincroniz-los com relgios reais Como sincroniz-los entre si? Algoritmo de Cristian Algoritmo de Berkeley
Algoritmo de Cristian
Requisitos: todas as mquinas possuem um mecanismo de tempo Objetivo: todas as mquinas so sincronizadas com o mesmo valor de tempo
2. O servidor responde, o mais rpido que Sistemas Operacionais II puder, com uma mensagem com o tempo 312
Algoritmo de Cristian
Quais os problemas?
Sistemas Operacionais II
313
Sistemas Operacionais II
314
Atrasos na gerao e envio de mensagens na rede Estimaes do tempo de propagao de mensagens na rede
Solues
315
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
Algoritmo de Berkeley
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
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
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
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
Exemplo de Transao:
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
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
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
Mtodos
Sistemas Operacionais II
329
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
[x = 0 / 1]
[x = 0 / 1] [y = 0/2]
(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
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
Motivao Algoritmo do Valento (Bully) Algoritmo do Anel (Ring) Relgios lgicos e fsicos Transaes Distribudas
Sistemas Operacionais II 333
Sincronizao
Especificao do Trabalho T2
Demonstrao do sistema Algoritmos mais importantes Sada padro Discusso em sala de aula
Sistemas Operacionais II 334
Documentao:
Especificao
Migrao de Processos
Threads em sistemas distribudos Sistemas de Arquivos Distribudo (SAD) Exemplos de SADs Computao paralela
Sistemas Operacionais II
335
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
Valento Anel
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
Monoprocessado Multiprocessado
Sistemas Operacionais II 342
Gerenciamento de Processos
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
344
Gerenciamento de Processos
A seguir
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
Envolve a definio de um Espao de Endereamento nico por processo Cada processo executado em um contexto de execuo
Requer processamento custoso Salvamento do contexto de execuo inmeras vezes influencia o algoritmo de escalonamento utilizado
Utilizao de swap
P2
Espao de Endereamento thread1 thread2 thread3
Contexto de execuo
Contexto de execuo
Tradicionais: heavyweight processes Dificilmente sistemas paralelos tero um desempenho menor que sistemas sequenciais
350
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
BROWSERS da Internet Carrega pginas texto (html?) Carrega imagens Atualmente, streams de informao
Um Browser
Quais estratgias podem ser utilizadas para carregamento de pginas mais eficiente?
Sistemas Operacionais II
353
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
Sistemas Operacionais II
354
Utiliza diversas threads internas ao seu processo principal para acelerar e otimizar o tempo necessrio para o carregamento de uma pgina
Sistemas Operacionais II
355
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
Sistemas Operacionais II
357
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
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
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
Mensagens da Fila:
Verifica resposta do disco, se no existe, manda mensagem para o disco requisitando acesso
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
Se existe, cria um worker e entrega o pedido para ele (controle transferido) Thread dispatcher passa de running para ready Worker verifica o disco
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
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
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
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
Sistemas Operacionais II
370
Incio da Migrao
Balanceamento de carga necessria Usados quando o objetivo alcanar recursos particulares de uma rede
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
Suspenso Freezing
On-demand transfer
renicio
renicio
renicio
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
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
Migrao
Estado de I/O
Discusso
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
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
Dvidas
Sistemas Operacionais II
385
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
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
Sistemas Operacionais II
392
Sistemas de Arquivos
princpios
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:
Diretrios possuem:
Sistemas de Arquivos
compartilhamento de arquivos e diretrios
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 Operacionais II
396
Sistemas de Arquivos
distribuio de informao em uma rede
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
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
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
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
API
Mdulo cliente
Rede
Servio de diretrios
Projeto de SADs
servio de arquivo bsico
1o. componente: servio de arquivo Implementa operaes nos arquivos Arquivos so referenciados por seus FIDs
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
Projeto de SADs
mdulo de cliente
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
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
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
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
Sistemas Operacionais II
411
Semnticas de Compartilham.
semntica com transaes
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!!!
Sistemas Operacionais II
414
414
Caching
princpios
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]
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
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
Consistncia
tcnica iniciada pelo servidor
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
Ao fechar um arquivo, cliente notifica o servidor das mudanas, que atualiza Sistemas Operacionais II
421
Servidores de arquivos
paradigmas de servio
Servidores de Arquivos com Estado (Stateful) Servidores de Arquivos sem Estado (Stateless)
Distino
o
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?
Servidor assume uma operao open em uma requisio e retm dados at receber um close, descartando-as
Sistemas Operacionais II 423
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
Recuperao de Falhas
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
Outros servidores podem realizar as requisies de cliente pois cada uma auto-contida
Sistemas Operacionais II 425
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
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
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?
Replicao
Controle da Replicao
Conhece e pode at manipular Sistema automatiza replicao Realiza cpias onde julga necessrio
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
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
S1
Multicast atmico
C S2
S3
Sistemas Operacionais II
433
Protocolos de atualizao
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
Outros so secundrios Entregue para o primrio Atualiza cpia local Grava em memria estvel Notifica secundrios
Atualizao
Sistemas Operacionais II
435
No caso de falha
Sistemas Operacionais II
436
Algoritmos de votao
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)
440
Introduo ao Lustre
Sistemas Operacionais II
441
Sistemas Operacionais II
442
Agenda
Exerccios
Sistemas Operacionais II
443
Caractersticas
Algoritmos de Votao
Sistemas Operacionais II 444
Basic (example: NFS 3.0, NFS 4.0) Shared storage (example: Global FS) Wide-area (example: AFS) Fault-tolerant (example: Coda) Parallel (example: Lustre)
445
Basic (example: NFS 3.0, NFS 4.0) Shared storage (example: Global FS) Wide-area (example: AFS) Fault-tolerant (example: Coda) Parallel (example: Lustre)
446
Estudos de Caso
NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula
Sistemas Operacionais II
447
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
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
449
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
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
451
Estudos de Caso
NFS Network File System AFS Andrew File System Lustre Google FS Prxima aula
Sistemas Operacionais II
452
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
Transparncia de Localizao
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
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)
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
Necessidade de um sistema de arquivos Escalvel, distribudo, seguro e tolerante a falhas Sistemas Operacionais II
460
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
Sistemas Operacionais II
462
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
Aula no laboratrio
Sistemas Operacionais II
466
Aula
Aula em laboratrio
Sistemas Operacionais II
467
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
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
Portabilidade
Paradigma de comunicao
Ferramenta de programao
Modelagem do problema
Sistemas Operacionais II
471
Modelagem do Problema
Como distribuir o trabalho a ser feito (carga) entre os envolvidos? Quando comunicar/sincronizar?
afetam
Anlise de Desempenho
Speedup
Fator
Overhead de comunicao
Ideal
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
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
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
479
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
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:
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
Sistemas Operacionais II
482
Modelos de Programao
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
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
Modelos bsicos
Mestre/escravo Pipeline Diviso
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
Sistemas Operacionais II
489
Modelos de Aplicao
Fases paralelas
Overhead de comunicao
IN T E R A O
Sistemas Operacionais II
IN T E R A O
490
Problema
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
494
Aula
Prova P2
Sistemas Operacionais II
495