Escolar Documentos
Profissional Documentos
Cultura Documentos
1 / 21
Agenda
Suporte necessrio para middleware e Sistemas Distribudos Implementao de threads Virtualizao Clientes Servidores Servidores cluster
2 / 21
3 / 21
Processos (1)
Os processos so um construtor fundamental para os sistemas distribudos. Processo - programa em execuo (um uxo de execuo)
caracterizado por um espao de endereamento e um contexto (ambiente de execuo e estado do processo guardado em registos e memria)
Troca de contexto
sempre que o SO comuta a execuo de dois processos tem custos bvios (overheads)
4 / 21
Processos e Threads
A funo de um SO tornar transparente a execuo de mltiplos processos que concorrem pela partilha do mesmo CPU, s que tem custos: gesto segmentos de memria independentes overheads das trocas de contexto swapping de processos entre memria e disco O que necessrio? possibilitar ter vrios uxos de execuo comutao rpida e de baixo custo entre os vrios uxos de execuo Soluo: threads
Fernando Silva (DCC-FCUP) 3. Suporte de Sistemas de Operao para Sistemas Distribudos 5 / 21
Threads de um processo:
partilham o mesmo espao de endereamento trocas de contexto entre threads realizadas sem interveno do OS (5-50 vezes mais eciente) partilham dados e outros recursos no esto protegidos uns dos outros
6 / 21
7 / 21
8 / 21
9 / 21
Clientes multithreaded - objectivo sobrepor comunicao e processamento Exemplo: cliente Web multithreaded (browser)
ao carregar uma pgina HTML, o browser analisa-a e verica que necessrio carregar outros objectos (e.g. imagens) cada objecto ou cheiro carregado por um thread distinto, cada um atravs de um pedido HTTP (bloqueante) o browser vai visualizando os cheiros medida que estes vo chegando.
10 / 21
11 / 21
Virtualizao
A virtualizao de recursos cada vez mais importante, pois permite que os sistemas sejam independentes do hardware sejam facilmente portveis e o cdigo migrvel quem isolados de falhas ou ataques a componentes suportem legacy software No essencial, a virtualizao permite substituir interfaces existentes de modo a imitar o comportamento de outro sistema.
Program Interface A Program Interface A Hardware/software system A (a)
Fernando Silva (DCC-FCUP)
Process VM (a): um program compilado para cdigo intermdio (portvel) que executado por um emulador (E.g. Java VM) VM Monitor (b): camada independente de software que imita o conjunto de instrues do hardware permite a execuo concorrente e independente de mltiplos SOs (E.g. VMware, Xen, VirtualBox)
Fernando Silva (DCC-FCUP) 3. Suporte de Sistemas de Operao para Sistemas Distribudos 13 / 21
Xlib Local OS X protocol X kernel Device drivers Terminal (includes display keyboard, mouse, etc.)
Interfaces mais modernas permitem interaco com a aplicao (documentos compostos) comunicao entre aplicaes. drag-and-drop: movimento de objectos pode originar interaco com outras aplicaes (e.g. mover o cone do cheiro para o cesto do lixo) in-place editing: integrao de vrias aplicaes na interface (e.g. processamento de texto e desenho)
Fernando Silva (DCC-FCUP) 3. Suporte de Sistemas de Operao para Sistemas Distribudos 14 / 21
Replicated request
15 / 21
Superservers: servidores que escutam em vrias portas, i.e. fornecem vrios servios independentes (e.g. inetd em UNIX) Servidores sequenciais vs. concorrentes: lidar com um cliente de cada vez vs. mltiplos clientes
Fernando Silva (DCC-FCUP) 3. Suporte de Sistemas de Operao para Sistemas Distribudos 16 / 21
Comunicao out-of-bound
Ser possvel interromper um servidor aps ter aceite um pedido de um servio? Soluo 1: usar uma porta separada para dados urgentes (possivelmente por pedido de servio):
o servidor tem um thread espera de mensagens com pedidos urgentes quando a mensagem urgente chega, o pedido correspondente ca em espera Necessrio que o SO suporte scheduling de threads com prioridade-elevada
18 / 21
19 / 21
Servidores Cluster
Na maioria dos casos, servidores cluster esto organizados em trs nveis diferentes:
Logical switch (possibly multiple) Application/compute servers Distributed file/database system
Client requests
Dispatched request
First tier
Second tier
Third tier
Importante: o primeiro nvel , geralmente, responsvel pela entrega do pedido ao servidor apropriado.
20 / 21
Client
Request
Switch
Server
21 / 21