SlideShare uma empresa Scribd logo
1 de 74
Processos
CURSO DE CIÊNCIA DA COMPUTAÇÃO
DISCIPLINA DE SISTEMAS DISTRIBUÍDOS
PROF. MESSIAS R. BATISTA
Agenda
 Threads
 Virtualização
 Clientes
 Servidores
 Migração do Código
2
3
O que é um Processo?
O que é um Thread?
Processo
4
“Um processo costuma ser definido como um
programa em execução, isto é, um programa
que está sendo executado em um dos
processadores virtuais do sistema operacional
no momento em questão”
Thread
5
“é uma forma de um processo dividir a si
mesmo em duas ou mais tarefas que podem
ser executadas concorrencialmente”
Conceito
Threads
Processos
6
Funcionamento
Geral dos
Processos
7
▫ Os processos são criados a partir de uma ação qualquer;
▫ É reservado um espaço na memória para o determinado
processo;
▫ Mas, os processos concorrem pelo hardware sob o qual
estão rodando;
▫ A perda de desempenho está ligada ao chaveamento da
CPU de um processo para o outro;
▪ Podendo ser necessário retirar um outro processo
da memória, exigindo interação com o disco rígido
para guardar um processo A de modo que o
processo B possa ser criado e alocado;
Threads
Processos
8
MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos. 2013.
9
TANENBAUM, A. S.; WOODHULL,. A. S. Sistemas Operacionais - Projeto e Implementação, 3ª ed. Bookman, 2008.
Threads
10
▫ Como seria o funcionamento de um planilha
eletrônica se ela fosse um processo único e
com thread?
Processos
Threads
11
A importância da utilização de threads em
sistemas distribuídos está na capacidade de
obter vantagens de desempenho na
execução de processos.Processos
Implementação
de Thread
Thread
Processos
12
13
Threads em
Sistemas
Distribuídos
Threads
Processos
14
“
Uma importante propriedade de threads
é que eles podem proporcionar um meio
conveniente de permitir chamadas
bloqueadoras de sistemas sem bloquear
o processo inteiro no qual o thread está
executando.
15
Cliente
Multithread
▫ A thread resolve o problema de precisar ficar
esperando que uma ação seja concluída antes de
executar outras tarefas;
▫ O browser executa várias tarefas de forma
simultânea;
▫ Como funciona o browser ao acessar uma página?
▪ O usuário não esperar carregar toda a página
para visualizar. O que for sendo carregado vai
ser mostrado, até que toda a página possa ser
visualizada.
Threads em
Sistemas
Distribuídos
16
Cliente
Multithread
▫ Outro ponto de destaque:
▪ é a capacidade dos browsers poderem abrir
várias conexões com o servidor;
▫ Como funciona?
▪ Servidores replicados em uma mesmo site, por
meio de alternância cíclica ou balanceamento
de carga um cliente multithread pode ter cada
execução ou chamada em um servidor
diferente;
Threads em
Sistemas
Distribuídos
17
“
A prática mostra que o multithreading não
somente simplifica consideravelmente o
código do servidor, mas também facilita
muito o desenvolvimento de servidores
que exploram paralelismo para obter alto
desempenho [...]
18
19
O que é paralelismo em
computação?
Servidores
Multithread
20
Threads em
Sistemas
Distribuídos
Servidores
Multithread
21
Quais as vantagens de cada estratégia para
servidores Multithread?
Três modos de construir um servidor
Threads em
Sistemas
Distribuídos
Modelo Características
Threads
Paralelismo, chamadas
bloqueadoras de sistema
Processos Monothread
Sem paralelismo, chamadas
bloqueadoras de sistema
Máquina de Estado Finito
Paralelismo, chamadas de
sistemas não bloqueadoras
Virtualização
Processos
22
“
Em sua essência, a
virtualização trata de
estender ou substituir uma
interface existente de modo a
imitar o comportamento de
um outro sistema [...]
23
Virtualização
em Sistemas
Distribuídos
▫ A ideia central nasce na década de
1970 com o objetivo de reutilizar
hardware;
▫ Um case de sucesso foi aplicado nos
IBM’s 370 e sucessores, no qual
ofereciam uma máquina virtual;
Virtualização
24
Virtualização
em Sistemas
Distribuídos
“A medida que o hardware ficava mais barato,
os computadores ficavam mais potentes e a
quantidade de tipos diferentes de sistemas
operacionais diminuía, a virtualização deixava
de ser um problema tão importante. Todavia,
as coisas mudaram desde o final da década de
1990 por várias razões [...]”
Virtualização
25
Virtualização
em Sistemas
Distribuídos
▫ Uma aplicação prática:
▪ Exemplo do Detran;
▫ Software da década de 1950;
▫ Virtualização é a solução para auxiliar a
manutenção de middelwares;
▫ Auxiliar na permanência de softwares
legados;
▪ Exemplo da Secretaria de educação;
Virtualização
26
27
Arquiteturas
de Máquinas
Virtuais
28
“[...] sistemas de computadores oferecem quatro tipos
diferentes de interfaces em quatro níveis diferentes”
1. Uma interface entre o hardware e o software, o qual
consiste em instruções de máquina que possa ser
invocadas por qualquer programa;
2. Uma interface entre o hardware e o software, o qual
consistem em instruções de máquina que possam ser
invocadas somente por programas privilegiados, como
um sistema operacional;
3. Uma interface que consistem em chamadas de
sistemas como oferecidas por um sistema operacional;
4. Uma interface que consistem em chamadas de
biblioteca que, em geral, formam o que é conhecido
como interface de aplicação de programação
(application programming interface – API).
Virtualização
29
Modos de
Virtualização
30
▫ Primeira forma relacionada com a
interpretação ou emulação de um conjunto
de instruções;
▪ Exemplos:
▫ JVM
▫ Dalvik
▫ Wine (Play On Linux)
Arquiteturas de
Máquinas Virtuais
Virtualização
Modos de
Virtualização
31
▫ A segunda abordagem fornece um sistema
que é implementado sobre uma camada que
protege o hardware original, mas oferece
interface para o usuário;
▪ Exemplo:
▫ Virtualbox (sistema)
▫ Docker
▪ Exemplo de Interfaces de usuário:
▫ Genymotion
▫ Vagrant
Arquiteturas de
Máquinas Virtuais
Virtualização
32
Apresentar
sistemas de
virtualização
33
Clientes
Processos
34
“
Uma tarefa importante de
máquinas clientes é
proporcionar aos usuários
meios de interagir com
servidores remotos.
35
Interfaces de
Usuário em
Rede
36
Duas formas de comunicação em rede por interfaces
de usuários:
1. Primeira forma: as aplicações se comunicam e
sincronizam informações por meio de um
protocolo implementando em nível de usuário;
2. Segunda forma: o terminal burro é utilizado
apenas para enviar comandos enquanto o
servidor é quem de fato executa as informações;
Clientes
37
38
“
Em muitos casos, parte do
nível de processamento e
dados em uma aplicação
cliente-servidor são
executadas também do lado
do cliente.
39
Transparência
de Distribuição
▫ Exemplos:
▪ Caixas automáticos;
▪ Caixas registradoras;
▪ Algumas aplicações web com formulário;
▫ Neste modelo o ideal é que o cliente não saiba
com quem está se conectado, mas que forneça as
informações necessárias para a interface de
usuário.
Software do lado
do cliente
40
Transparência
de Acesso
▫ É ocultado que está havendo comunicação
com qual arquitetura de um computador
servidor;
▫ A transparência de acesso busca criar uma
interface que possa abstrair o hardware;
▫ O middleware pode ocultar a mudança de
requisição de servidores, tornando
transparente a conexão, e assim o usuário
não percebe, no caso de uma desconexão,
em qual servidor o cliente está sendo
alocado;
Software do lado
do cliente
41
Transparência
de Replicação
Software do lado
do cliente
42
43
Transparência
a falhas e a
concorrência
▫ Técnicas de transparência a falhas utilizam,
por exemplo, softwares que possam trocar
de servidor após verificar repetidas conexões
ou utilizar cache;
▫ Transparência de concorrência pode ser
resolvido com servidores intermediários que
monitoram as transações;
Software do lado
do cliente
44
Servidores
Processos
45
“
Um servidor é um processo
que implementa um serviço
específico em nome de um
conjunto de clientes.
46
Tipos de
Servidores
47
▫ Servidor iterativo
▪ É o próprio servidor que manipula a requisição
e, se necessário, retorna uma resposta ao
cliente requisitante;
▫ Servidor concorrente
▪ Não manipula por si uma requisição, delega a
uma thread separado ou a outro processo,
enquanto aguarda por outra requisição;
Servidores
48
Como clientes contatam
servidores?
Como clientes sabem qual a
porta de um serviço?
49
50
51
Um servidor pode ter sua
comunicação com o cliente
interrompida?
Qual estratégia você usuária?
Estado do
Servidor
▫ Servidores sem estado
▪ Não mantém informações sobre o estado de seus clientes e
pode mudar seu próprio estado sem ter de informar a
nenhum cliente;
▪ Exemplo: servidor web.
▫ Servidores com estado flexível
▪ O servidor “promete” manter o estado em nome do cliente,
mas apenas por tempo limitado;
▫ Servidor com estado
▪ Mantém informações persistentes sobre seus clientes.
▪ Problema: Se o servidor falha é preciso recuperar a tabela
de entradas (cliente, arquivo);
Servidores
52
Estado de
Sessão e
Estado
Permanente
▫ Estado de sessão
▪ É mantido em arquiteturas de três camadas,
no qual o servidor de aplicação precisa acessar
um servidor de banco de dados por meio de
um conjunto de consultas antes de responder
ao cliente;
▫ Estado permanente
▪ Informações mantidas em bancos de dados
como informações de clientes, chaves
associadas com software comprado, entre
outras;
Servidores
53
Cluster de
Servidores
Servidores
54
55
Cluster de
Servidores
com
Comutador
Servidores
56
“
Nesses cluster, muitas vezes há
uma máquina de administração
separada que monitora
servidores disponíveis e passa
essa informação para outras
máquinas conforme adequado,
tal como o comutador.
57
Servidor
Distribuído
58
“É um conjunto de máquinas que
possivelmente muda dinamicamente, com
vários pontos de acesso também
possivelmente variáveis, mas que, quanto ao
mais, se apresenta ao mundo externo como
uma única e poderosa máquina.”
Conceito
Servidor
Distribuído
59
Otimização de rota
(IPV6)
Migração de
Código
Processos
60
Motivação
▫ Aumentar o desempenho;
▫ Então a migração de código, ou migração de
processo, busca diminuir o impacto de uma
máquina para outra menos requisitada.
“A carga costuma ser expressa em termos do
comprimento da fila da CPU ou da utilização da
CPU, mas outro indicadores de desempenho
também são usados”
61
Motivação
▫ Exemplo 1
▪ Uma aplicação no cliente que realiza
muito acesso ao banco de dados.
▪ Transferir esse código para o servidor é o
ideal já que o impacto na rede é muito
alto.
▪ O sentido está em processar o código
onde o mais próximo dos dados.
Exemplos
62
Motivação
▫ Exemplo 2
▪ Tratamento de formulários no servidor;
▪ O ideal é que o tratamento inicial seja
realizado no cliente, buscando evitar
processamento desnecessário no
servidor;
Exemplos
63
Modelo de
Descarga de
Código
▫ O código a ser utilizado só será carregado na
hora que o cliente precisar se comunicar
com o servidor;
▫ Envolve um problema de segurança.
▪ Acessar as informações e descarregar um
código no seu disco sem você saber o que
ele faz, que tipo de informação ele envia;
64
Modelo de
Descarga de
Código
65
“
[...] migração de código trata
da movimentação de
programas entre máquinas
com a intenção de executá-
los na máquina-alvo.
66
Segmentos de
um Processo
67
▫ Segmento de código
▪ É a parte que contém as instruções que compõem o
programa em execução;
▫ Segmento de recursos
▪ Contém referências a recursos externo que o
processo necessita (impressoras, arquivos...)
▫ Segmento de execução
▪ Utilizado para armazenar o estado de execução de
um processo no momento determinado;
Migração de
Código
Mobilidade
68
▫ Mobilidade fraca
▪ É possível transferir somente o segmento de
código;
▫ Mobilidade forte
▪ Nesta qualificação, a mobilidade permite não
apenas enviar o segmento de código, mas
também o segmento em execução;
▪ O processo deverá ser parado, transferido, e
em seguida iniciado do exato ponto onde
parou;
Alternativas
para migração
de código
69
Segmento de
Recurso
70
▫ Três tipos de vinculações:
▪ Vinculação mais forte, por identificador;
▫ Exemplo: URL;
▪ Vinculação processo-recurso mais fraca, por
valor;
▫ Exemplo: bibliotecas do java;
▪ Vinculação mais fraca de todas, por tipo;
▫ Exemplo: referências a dispositivos locais
como monitores e impressoras;
Migração de
Código e Recursos
Locais
71
Migração em
Sistemas
Heterogêneos
▫ Possíveis problemas para tratar esse tipo de
migração
1. Empurrar páginas de memória para a nova
máquina e reenviar as que forem modificadas
mais tarde durante a migração do processo.
2. Parar a máquina virtual corrente; migrar
memória e iniciar a nova máquina virtual;
3. Deixar que a nova máquina virtual puxe novas
páginas conforme necessário, isto é, deixar
que processos comecem imediatamente na
nova máquina virtual e copiar páginas por
demanda;
Migração de
Código
72
Referências
73
TANENBAUM, A. S.; STEEN, M. V. Sistemas
Distribuídos: princípios e paradigmas. 2.ed. São
Paulo, SP: Pearson Prentice Hall, 2008
Processos
CURSO DE CIÊNCIA DA COMPUTAÇÃO
DISCIPLINA DE SISTEMAS DISTRIBUÍDOS
PROF. MESSIAS R. BATISTA

Mais conteúdo relacionado

Mais procurados

Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processosComputação Depressão
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosPortal_do_Estudante_SD
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Renato William
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresDalton Martins
 
Windows server 2003
Windows server 2003Windows server 2003
Windows server 2003guestdf16d4b
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisLuciano Crecente
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaVictor Hazin da Rocha
 

Mais procurados (20)

Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidos
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
 
Windows server 2003
Windows server 2003Windows server 2003
Windows server 2003
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas Operacionais
 
Tipos de Sistema operacional
Tipos de Sistema operacionalTipos de Sistema operacional
Tipos de Sistema operacional
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 

Destaque

Aula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - ComunicaçãoAula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - ComunicaçãoMessias Batista
 
Aula01 Tópicos em Ambiente Web - Internet
Aula01 Tópicos em Ambiente Web - InternetAula01 Tópicos em Ambiente Web - Internet
Aula01 Tópicos em Ambiente Web - InternetMessias Batista
 
Aula01 Desenvolvimento em Ambiente Web - HTML
Aula01 Desenvolvimento em Ambiente Web - HTMLAula01 Desenvolvimento em Ambiente Web - HTML
Aula01 Desenvolvimento em Ambiente Web - HTMLMessias Batista
 
Estudante empreendedor - UFPB Campus IV
Estudante empreendedor - UFPB Campus IVEstudante empreendedor - UFPB Campus IV
Estudante empreendedor - UFPB Campus IVLuiz Mauricio
 
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)Messias Batista
 
1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionaisPMP
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Softwarel xf
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Leinylson Fontinele
 
Inserindo apresentações do Slideshare no Moodle
Inserindo apresentações do Slideshare no MoodleInserindo apresentações do Slideshare no Moodle
Inserindo apresentações do Slideshare no MoodleFernando Vargas
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosValberto Carneiro
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Winl xf
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...Sehrish Asif
 
Lecture 6
Lecture  6Lecture  6
Lecture 6Mr SMAK
 
Aula 1 automação de processos
Aula 1   automação de processosAula 1   automação de processos
Aula 1 automação de processosMaurício Botelho
 
message passing vs shared memory
message passing vs shared memorymessage passing vs shared memory
message passing vs shared memoryHamza Zahid
 
Moodle Presentation
Moodle PresentationMoodle Presentation
Moodle PresentationFrank Fucile
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...siouxhotornot
 

Destaque (20)

Aula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - ComunicaçãoAula05 Sistemas Distribuídos - Comunicação
Aula05 Sistemas Distribuídos - Comunicação
 
Aula01 Tópicos em Ambiente Web - Internet
Aula01 Tópicos em Ambiente Web - InternetAula01 Tópicos em Ambiente Web - Internet
Aula01 Tópicos em Ambiente Web - Internet
 
Aula01 Desenvolvimento em Ambiente Web - HTML
Aula01 Desenvolvimento em Ambiente Web - HTMLAula01 Desenvolvimento em Ambiente Web - HTML
Aula01 Desenvolvimento em Ambiente Web - HTML
 
Estudante empreendedor - UFPB Campus IV
Estudante empreendedor - UFPB Campus IVEstudante empreendedor - UFPB Campus IV
Estudante empreendedor - UFPB Campus IV
 
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
Aula02 Tópicos em Ambiente Web - Produção de Páginas Web (conceitos)
 
1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Software
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
 
Inserindo apresentações do Slideshare no Moodle
Inserindo apresentações do Slideshare no MoodleInserindo apresentações do Slideshare no Moodle
Inserindo apresentações do Slideshare no Moodle
 
Apostila de sistemas operacionais
Apostila de sistemas operacionaisApostila de sistemas operacionais
Apostila de sistemas operacionais
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas Distribuidos
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Win
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
 
Lecture 6
Lecture  6Lecture  6
Lecture 6
 
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - ClustersSistemas Distribuídos - Clusters
Sistemas Distribuídos - Clusters
 
Aula 1 automação de processos
Aula 1   automação de processosAula 1   automação de processos
Aula 1 automação de processos
 
message passing vs shared memory
message passing vs shared memorymessage passing vs shared memory
message passing vs shared memory
 
Moodle Presentation
Moodle PresentationMoodle Presentation
Moodle Presentation
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
 

Semelhante a Aula04 Sistemas Distribuídos - Processos

Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaDaniel Silveira
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidorDavi Silva
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Sistemas operacionais de redes II
Sistemas operacionais de redes IISistemas operacionais de redes II
Sistemas operacionais de redes IIDaniel Brandão
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...WordCamp Floripa
 
Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática Demis Gomes
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosClaudio Eckert
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorEdgar Costa
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016Fábio dos Reis
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAntony Barbosa
 
Relatorio VNC (Virtual Network Computing)
Relatorio VNC (Virtual Network Computing)Relatorio VNC (Virtual Network Computing)
Relatorio VNC (Virtual Network Computing)amarildox2
 

Semelhante a Aula04 Sistemas Distribuídos - Processos (20)

Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiula
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidor
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Cflp t017
Cflp t017Cflp t017
Cflp t017
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
World Wide Web
World Wide WebWorld Wide Web
World Wide Web
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Mod06 licao01-apostila
Mod06 licao01-apostilaMod06 licao01-apostila
Mod06 licao01-apostila
 
Sistemas operacionais de redes II
Sistemas operacionais de redes IISistemas operacionais de redes II
Sistemas operacionais de redes II
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
 
Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizados
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/Servidor
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
Windows server 2012
Windows server 2012Windows server 2012
Windows server 2012
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
 
Relatorio VNC (Virtual Network Computing)
Relatorio VNC (Virtual Network Computing)Relatorio VNC (Virtual Network Computing)
Relatorio VNC (Virtual Network Computing)
 
Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 

Mais de Messias Batista

Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...Messias Batista
 
Aula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas OrganizaçõesAula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas OrganizaçõesMessias Batista
 
Aula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas ImportantesAula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas ImportantesMessias Batista
 
Aula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e MatrizesAula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e MatrizesMessias Batista
 
Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)Messias Batista
 
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...Messias Batista
 
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
 Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto... Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...Messias Batista
 
Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)Messias Batista
 
Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)Messias Batista
 
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...Messias Batista
 
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaAula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaMessias Batista
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosMessias Batista
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasMessias Batista
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosMessias Batista
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Aula09 SD - Replicação e Consistência
Aula09 SD - Replicação e ConsistênciaAula09 SD - Replicação e Consistência
Aula09 SD - Replicação e ConsistênciaMessias Batista
 
Aula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - SincronizaçãoAula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - SincronizaçãoMessias Batista
 
Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Messias Batista
 
Apresentação Club do Android 2017.1 - Google Developers Group João Pessoa
Apresentação Club do Android 2017.1 - Google Developers Group João PessoaApresentação Club do Android 2017.1 - Google Developers Group João Pessoa
Apresentação Club do Android 2017.1 - Google Developers Group João PessoaMessias Batista
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaMessias Batista
 

Mais de Messias Batista (20)

Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
Aula 02.1 FSI - Terminologia da Informática e Sistemas de Informação - os ele...
 
Aula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas OrganizaçõesAula 06.1 FSI - Papel da Informação nas Organizações
Aula 06.1 FSI - Papel da Informação nas Organizações
 
Aula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas ImportantesAula 01.2 FSI - Ferramentas Importantes
Aula 01.2 FSI - Ferramentas Importantes
 
Aula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e MatrizesAula 08.2 - ALP - Vetores e Matrizes
Aula 08.2 - ALP - Vetores e Matrizes
 
Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)Aula 08.1 - ALP - Linguagem C (Primeiros passos)
Aula 08.1 - ALP - Linguagem C (Primeiros passos)
 
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
Aula 02.1 - Terminologia da informática e sistemas de informação- os elemento...
 
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
 Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto... Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
Aula 04.1 - Operações Básicas no uso de microcomputadores- editores de texto...
 
Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)Aula 06.1 - Estruturas de Repetição (while, for, repeat)
Aula 06.1 - Estruturas de Repetição (while, for, repeat)
 
Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)Aula 05.2 - Desvio Condicional Composto (se não se)
Aula 05.2 - Desvio Condicional Composto (se não se)
 
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
Aula 05.1 - Estruturas de controle - Sequencial e Desvio Condicional Simples ...
 
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaAula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e Lógicos
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Aula09 SD - Replicação e Consistência
Aula09 SD - Replicação e ConsistênciaAula09 SD - Replicação e Consistência
Aula09 SD - Replicação e Consistência
 
Aula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - SincronizaçãoAula08 - Sistemas Distribuídos - Sincronização
Aula08 - Sistemas Distribuídos - Sincronização
 
Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3
 
Apresentação Club do Android 2017.1 - Google Developers Group João Pessoa
Apresentação Club do Android 2017.1 - Google Developers Group João PessoaApresentação Club do Android 2017.1 - Google Developers Group João Pessoa
Apresentação Club do Android 2017.1 - Google Developers Group João Pessoa
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
 

Aula04 Sistemas Distribuídos - Processos

  • 1. Processos CURSO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA DE SISTEMAS DISTRIBUÍDOS PROF. MESSIAS R. BATISTA
  • 2. Agenda  Threads  Virtualização  Clientes  Servidores  Migração do Código 2
  • 3. 3 O que é um Processo? O que é um Thread?
  • 4. Processo 4 “Um processo costuma ser definido como um programa em execução, isto é, um programa que está sendo executado em um dos processadores virtuais do sistema operacional no momento em questão”
  • 5. Thread 5 “é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente” Conceito
  • 7. Funcionamento Geral dos Processos 7 ▫ Os processos são criados a partir de uma ação qualquer; ▫ É reservado um espaço na memória para o determinado processo; ▫ Mas, os processos concorrem pelo hardware sob o qual estão rodando; ▫ A perda de desempenho está ligada ao chaveamento da CPU de um processo para o outro; ▪ Podendo ser necessário retirar um outro processo da memória, exigindo interação com o disco rígido para guardar um processo A de modo que o processo B possa ser criado e alocado; Threads Processos
  • 8. 8 MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos. 2013.
  • 9. 9 TANENBAUM, A. S.; WOODHULL,. A. S. Sistemas Operacionais - Projeto e Implementação, 3ª ed. Bookman, 2008.
  • 10. Threads 10 ▫ Como seria o funcionamento de um planilha eletrônica se ela fosse um processo único e com thread? Processos
  • 11. Threads 11 A importância da utilização de threads em sistemas distribuídos está na capacidade de obter vantagens de desempenho na execução de processos.Processos
  • 13. 13
  • 15. “ Uma importante propriedade de threads é que eles podem proporcionar um meio conveniente de permitir chamadas bloqueadoras de sistemas sem bloquear o processo inteiro no qual o thread está executando. 15
  • 16. Cliente Multithread ▫ A thread resolve o problema de precisar ficar esperando que uma ação seja concluída antes de executar outras tarefas; ▫ O browser executa várias tarefas de forma simultânea; ▫ Como funciona o browser ao acessar uma página? ▪ O usuário não esperar carregar toda a página para visualizar. O que for sendo carregado vai ser mostrado, até que toda a página possa ser visualizada. Threads em Sistemas Distribuídos 16
  • 17. Cliente Multithread ▫ Outro ponto de destaque: ▪ é a capacidade dos browsers poderem abrir várias conexões com o servidor; ▫ Como funciona? ▪ Servidores replicados em uma mesmo site, por meio de alternância cíclica ou balanceamento de carga um cliente multithread pode ter cada execução ou chamada em um servidor diferente; Threads em Sistemas Distribuídos 17
  • 18. “ A prática mostra que o multithreading não somente simplifica consideravelmente o código do servidor, mas também facilita muito o desenvolvimento de servidores que exploram paralelismo para obter alto desempenho [...] 18
  • 19. 19 O que é paralelismo em computação?
  • 21. Servidores Multithread 21 Quais as vantagens de cada estratégia para servidores Multithread? Três modos de construir um servidor Threads em Sistemas Distribuídos Modelo Características Threads Paralelismo, chamadas bloqueadoras de sistema Processos Monothread Sem paralelismo, chamadas bloqueadoras de sistema Máquina de Estado Finito Paralelismo, chamadas de sistemas não bloqueadoras
  • 23. “ Em sua essência, a virtualização trata de estender ou substituir uma interface existente de modo a imitar o comportamento de um outro sistema [...] 23
  • 24. Virtualização em Sistemas Distribuídos ▫ A ideia central nasce na década de 1970 com o objetivo de reutilizar hardware; ▫ Um case de sucesso foi aplicado nos IBM’s 370 e sucessores, no qual ofereciam uma máquina virtual; Virtualização 24
  • 25. Virtualização em Sistemas Distribuídos “A medida que o hardware ficava mais barato, os computadores ficavam mais potentes e a quantidade de tipos diferentes de sistemas operacionais diminuía, a virtualização deixava de ser um problema tão importante. Todavia, as coisas mudaram desde o final da década de 1990 por várias razões [...]” Virtualização 25
  • 26. Virtualização em Sistemas Distribuídos ▫ Uma aplicação prática: ▪ Exemplo do Detran; ▫ Software da década de 1950; ▫ Virtualização é a solução para auxiliar a manutenção de middelwares; ▫ Auxiliar na permanência de softwares legados; ▪ Exemplo da Secretaria de educação; Virtualização 26
  • 27. 27
  • 28. Arquiteturas de Máquinas Virtuais 28 “[...] sistemas de computadores oferecem quatro tipos diferentes de interfaces em quatro níveis diferentes” 1. Uma interface entre o hardware e o software, o qual consiste em instruções de máquina que possa ser invocadas por qualquer programa; 2. Uma interface entre o hardware e o software, o qual consistem em instruções de máquina que possam ser invocadas somente por programas privilegiados, como um sistema operacional; 3. Uma interface que consistem em chamadas de sistemas como oferecidas por um sistema operacional; 4. Uma interface que consistem em chamadas de biblioteca que, em geral, formam o que é conhecido como interface de aplicação de programação (application programming interface – API). Virtualização
  • 29. 29
  • 30. Modos de Virtualização 30 ▫ Primeira forma relacionada com a interpretação ou emulação de um conjunto de instruções; ▪ Exemplos: ▫ JVM ▫ Dalvik ▫ Wine (Play On Linux) Arquiteturas de Máquinas Virtuais Virtualização
  • 31. Modos de Virtualização 31 ▫ A segunda abordagem fornece um sistema que é implementado sobre uma camada que protege o hardware original, mas oferece interface para o usuário; ▪ Exemplo: ▫ Virtualbox (sistema) ▫ Docker ▪ Exemplo de Interfaces de usuário: ▫ Genymotion ▫ Vagrant Arquiteturas de Máquinas Virtuais Virtualização
  • 32. 32
  • 35. “ Uma tarefa importante de máquinas clientes é proporcionar aos usuários meios de interagir com servidores remotos. 35
  • 36. Interfaces de Usuário em Rede 36 Duas formas de comunicação em rede por interfaces de usuários: 1. Primeira forma: as aplicações se comunicam e sincronizam informações por meio de um protocolo implementando em nível de usuário; 2. Segunda forma: o terminal burro é utilizado apenas para enviar comandos enquanto o servidor é quem de fato executa as informações; Clientes
  • 37. 37
  • 38. 38
  • 39. “ Em muitos casos, parte do nível de processamento e dados em uma aplicação cliente-servidor são executadas também do lado do cliente. 39
  • 40. Transparência de Distribuição ▫ Exemplos: ▪ Caixas automáticos; ▪ Caixas registradoras; ▪ Algumas aplicações web com formulário; ▫ Neste modelo o ideal é que o cliente não saiba com quem está se conectado, mas que forneça as informações necessárias para a interface de usuário. Software do lado do cliente 40
  • 41. Transparência de Acesso ▫ É ocultado que está havendo comunicação com qual arquitetura de um computador servidor; ▫ A transparência de acesso busca criar uma interface que possa abstrair o hardware; ▫ O middleware pode ocultar a mudança de requisição de servidores, tornando transparente a conexão, e assim o usuário não percebe, no caso de uma desconexão, em qual servidor o cliente está sendo alocado; Software do lado do cliente 41
  • 43. 43
  • 44. Transparência a falhas e a concorrência ▫ Técnicas de transparência a falhas utilizam, por exemplo, softwares que possam trocar de servidor após verificar repetidas conexões ou utilizar cache; ▫ Transparência de concorrência pode ser resolvido com servidores intermediários que monitoram as transações; Software do lado do cliente 44
  • 46. “ Um servidor é um processo que implementa um serviço específico em nome de um conjunto de clientes. 46
  • 47. Tipos de Servidores 47 ▫ Servidor iterativo ▪ É o próprio servidor que manipula a requisição e, se necessário, retorna uma resposta ao cliente requisitante; ▫ Servidor concorrente ▪ Não manipula por si uma requisição, delega a uma thread separado ou a outro processo, enquanto aguarda por outra requisição; Servidores
  • 48. 48 Como clientes contatam servidores? Como clientes sabem qual a porta de um serviço?
  • 49. 49
  • 50. 50
  • 51. 51 Um servidor pode ter sua comunicação com o cliente interrompida? Qual estratégia você usuária?
  • 52. Estado do Servidor ▫ Servidores sem estado ▪ Não mantém informações sobre o estado de seus clientes e pode mudar seu próprio estado sem ter de informar a nenhum cliente; ▪ Exemplo: servidor web. ▫ Servidores com estado flexível ▪ O servidor “promete” manter o estado em nome do cliente, mas apenas por tempo limitado; ▫ Servidor com estado ▪ Mantém informações persistentes sobre seus clientes. ▪ Problema: Se o servidor falha é preciso recuperar a tabela de entradas (cliente, arquivo); Servidores 52
  • 53. Estado de Sessão e Estado Permanente ▫ Estado de sessão ▪ É mantido em arquiteturas de três camadas, no qual o servidor de aplicação precisa acessar um servidor de banco de dados por meio de um conjunto de consultas antes de responder ao cliente; ▫ Estado permanente ▪ Informações mantidas em bancos de dados como informações de clientes, chaves associadas com software comprado, entre outras; Servidores 53
  • 55. 55
  • 57. “ Nesses cluster, muitas vezes há uma máquina de administração separada que monitora servidores disponíveis e passa essa informação para outras máquinas conforme adequado, tal como o comutador. 57
  • 58. Servidor Distribuído 58 “É um conjunto de máquinas que possivelmente muda dinamicamente, com vários pontos de acesso também possivelmente variáveis, mas que, quanto ao mais, se apresenta ao mundo externo como uma única e poderosa máquina.” Conceito
  • 61. Motivação ▫ Aumentar o desempenho; ▫ Então a migração de código, ou migração de processo, busca diminuir o impacto de uma máquina para outra menos requisitada. “A carga costuma ser expressa em termos do comprimento da fila da CPU ou da utilização da CPU, mas outro indicadores de desempenho também são usados” 61
  • 62. Motivação ▫ Exemplo 1 ▪ Uma aplicação no cliente que realiza muito acesso ao banco de dados. ▪ Transferir esse código para o servidor é o ideal já que o impacto na rede é muito alto. ▪ O sentido está em processar o código onde o mais próximo dos dados. Exemplos 62
  • 63. Motivação ▫ Exemplo 2 ▪ Tratamento de formulários no servidor; ▪ O ideal é que o tratamento inicial seja realizado no cliente, buscando evitar processamento desnecessário no servidor; Exemplos 63
  • 64. Modelo de Descarga de Código ▫ O código a ser utilizado só será carregado na hora que o cliente precisar se comunicar com o servidor; ▫ Envolve um problema de segurança. ▪ Acessar as informações e descarregar um código no seu disco sem você saber o que ele faz, que tipo de informação ele envia; 64
  • 66. “ [...] migração de código trata da movimentação de programas entre máquinas com a intenção de executá- los na máquina-alvo. 66
  • 67. Segmentos de um Processo 67 ▫ Segmento de código ▪ É a parte que contém as instruções que compõem o programa em execução; ▫ Segmento de recursos ▪ Contém referências a recursos externo que o processo necessita (impressoras, arquivos...) ▫ Segmento de execução ▪ Utilizado para armazenar o estado de execução de um processo no momento determinado; Migração de Código
  • 68. Mobilidade 68 ▫ Mobilidade fraca ▪ É possível transferir somente o segmento de código; ▫ Mobilidade forte ▪ Nesta qualificação, a mobilidade permite não apenas enviar o segmento de código, mas também o segmento em execução; ▪ O processo deverá ser parado, transferido, e em seguida iniciado do exato ponto onde parou;
  • 70. Segmento de Recurso 70 ▫ Três tipos de vinculações: ▪ Vinculação mais forte, por identificador; ▫ Exemplo: URL; ▪ Vinculação processo-recurso mais fraca, por valor; ▫ Exemplo: bibliotecas do java; ▪ Vinculação mais fraca de todas, por tipo; ▫ Exemplo: referências a dispositivos locais como monitores e impressoras; Migração de Código e Recursos Locais
  • 71. 71
  • 72. Migração em Sistemas Heterogêneos ▫ Possíveis problemas para tratar esse tipo de migração 1. Empurrar páginas de memória para a nova máquina e reenviar as que forem modificadas mais tarde durante a migração do processo. 2. Parar a máquina virtual corrente; migrar memória e iniciar a nova máquina virtual; 3. Deixar que a nova máquina virtual puxe novas páginas conforme necessário, isto é, deixar que processos comecem imediatamente na nova máquina virtual e copiar páginas por demanda; Migração de Código 72
  • 73. Referências 73 TANENBAUM, A. S.; STEEN, M. V. Sistemas Distribuídos: princípios e paradigmas. 2.ed. São Paulo, SP: Pearson Prentice Hall, 2008
  • 74. Processos CURSO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA DE SISTEMAS DISTRIBUÍDOS PROF. MESSIAS R. BATISTA

Notas do Editor

  1. Mostrar como funciona a comicação por terminal X