SlideShare uma empresa Scribd logo
1 de 44
SISTEMAS
DISTRIBUÍDOS
SUPORTE DO SISTEMA
OPERACIONAL
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
1
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
2
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
3
CONTEXTUALIZAÇÃO
Classificação de Sistemas Distribuídos
Arquiteturas de Sistemas Distribuídos
Camada de Middleware
• Modelo Send/ Receive
• RMI e RPC
• Comunicação Indireta
Camada do Sistema Operacional (S.O.)
4
SISTEMA
OPERACIONAL
“Um sistema operacional é um programa que age como
intermediário entre o usuário do computador e o hardware. O
propósito de um sistema operacional é prover um ambiente no
qual um usuário possa executar programas de forma
conveniente e eficiente.”
SILBERSCHATZ et al. Operating Systems Concept
5
SISTEMA
OPERACIONAL
O S.O. provê meios para o uso apropriado dos recursos de
hardware, software e dados durante a operação do sistema
computacional.
6
SERVIÇOS OFERECIDOS
PELO S.O.
Os S.O.s, em geral, fornecem algumas classes comuns de
serviços:
• Execução de programas:
• carregar um programa na memória e executá-lo
• Operações de E/S;
• envolver um arquivo ou um dispositivo de E/S
• Manipulação de sistemas de arquivos
• ler e escrever em arquivos
• Criar e remover arquivos
• Comunicação
• permitir que um processo troque informações com
outro(s) processo(s)
7
SERVIÇOS OFERECIDOS
PELO S.O.
• Detecção de Erros
• Alocação de Recursos
• necessário quando há múltiplos usuários ou múltiplos
processos
• Registro de usuários
• manutenção do controle de quais usuários usam quanto e
quais recursos
computacionais
• Proteção
• garantia de que todos os acessos aos recursos do sistema
sejam controlados
pelo S.O.
8
SISTEMAS
OPERACIONAIS
As funções providas pelo S.O são então estruturadas
em duas categorias:
• Serviços do sistema: funções de alto nível tal como
são vistas pelas aplicações (visão para o usuário de uma
máquina estendida);
• Kernel (núcleo): funções essenciais que são
dependentes da arquitetura sob a qual o S.O vai
executar (visão do administrador do sistema de um
gerenciador de recursos).
9
SISTEMAS
OPERACIONAIS
10
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
11
CAMADA DO S.O.
• Sistema Distribuído = Compartilhamento de Recursos.
• Recursos distribuídos em múltiplos nós físicos.
• Aplicativos utilizam middleware para viabilizar a interação
entre recursos.
• Middleware se relaciona com o sistema operacional para
realizar as tarefas que os serviços e aplicativos requisitam.
12
PAPEL DO S.O.
Prover abstrações dos recursos da camada física
• Processadores
• Memória
• Rede
• Armazenamento (hard-disk, etc)
Exemplos
• Arquivos versus blocos de disco
• Soquetes versus acesso direto à rede
• S.O. gerencia recursos físicos através de interfaces
denominadas “chamadas de sistema”
13
S.O. CENTRALIZADO
Nessa classe de sistemas operacionais, a comunicação e
compartilhamento de recursos é feita via memória
compartilhada ou interrupções.
Como características principais destaca-se:
• Sistema altamente acoplado, com todos os recursos
compartilhados internamente;
• Comunicação entre processos via memória compartilhada.
14
S.O. DE REDE
UNIX, Windows, Mac OS, Linux… são sistemas operacionais
de rede
• Possuem acesso a recursos remotos
• Clientes podem executar processos em outros nós
• Cada nó tem controle sobre sua área de memória e
processador
• Cada nó possui uma imagem própria do sistema
• Usuários normalmente estão a par da localização dos
seus arquivos e movem eles através de transferências
explícitas;
• Sistema possui pouco ou nenhum recurso de tolerância a
falhas.
15
S.O. DISTRIBUÍDO
A implementação de um sistema verdadeiramente
distribuído tem como objetivo a obtenção de um conjunto
de máquinas ligadas em rede que funcionem como um
uniprocessador virtual.
Características
• Única imagem para todos os nós
• Um SO controla todos os nós, seu processamento e
memória.
• O uso de múltiplos processadores deve ser invisível
para o usuário.
• O usuário vê o sistema como um uniprocessador
virtual, não como uma coleção de máquinas distintas
conectadas.
16
S.O. DISTRIBUÍDO
O SO Distribuído deve:
• Controlar a alocação de recursos da rede para permitir seu
uso no modo mais eficiente.
• Prover ao usuário com um computador virtual
conveniente que serve como um ambiente de
programação de alto nível.
• Esconder a distribuição dos recursos.
• Prover mecanismos para proteção dos recursos do
sistema contra acesso por usuários não autorizados.
• Prover comunicação segura.
17
S.O. DISTRIBUÍDO
S.O. DE REDE
18
CARACTERÍSTICAS
DOS S.O.
19
A CAMADA DO S.O.
Middleware pode ser executado sobre vários hardwares e
sistemas operacionais diferentes
O par SO-Hardware = Plataforma
Responsabilidades do núcleo do SO e dos processos
• Encapsulamento
• Proteção
• Processamento concorrente
• Comunicação
• Escalonamento
20
A CAMADA DO S.O.
21
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
22
RESPONSABILIDADE
DO NÚCLEO
Proteção
• Recursos da máquina exigem proteção contra acesso
ilegítimo
• Ameaças
• Código malicioso
• Código bem intencionado, porém mal feito
• Exemplo
• Acesso indevido a arquivos, solução: criptografia
23
RESPONSABILIDADE
DO NÚCLEO
Proteção
• Código executado com privilégio total sobre os recursos
lógicos e de máquina
• Controla processador, memória, registradores, etc. de
forma que nenhum acesso ocorra de forma diferente do
“aceitável”
• Modo supervisor versus modo usuário
24
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
25
PROCESSOS E THREADS
Processo = ambiente de execução com uma ou mais threads
Processo
• Espaço de endereçamento
• Comunicação e sincronização entre threads (semáforos, etc)
• Recursos de alto nível: janelas, arquivos, etc
Ambiente de execução é um domínio de proteção criado pelo
sistema operacional para compartilhamento de recursos entre
várias threads
Ambiente de execução (ou processo) fornece proteção contra
threads que estão fora dele
26
PROCESSOS E THREADS
27
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
28
RESPONSABILIDADES
DO NÚCLEO
Comunicação e Invocação
• Invocação
• Realizar chamada de sistema
• Enviar uma mensagem a um objeto
• Chamar procedimento ou método
• Chamar procedimento ou método remoto
• Invocação Remota
• executar uma operação sobre um recurso em um
espaçamento de memória diferente de quem executa o
pedido.
29
RESPONSABILIDADES
DO NÚCLEO
Comunicação e Invocação
• Cada invocação implica em execução fora do escopo do
procedimento
• Problemas
• Quais primitivas de comunicação são fornecidas pelo SO
• Quais protocolos são suportados pelo SO e qual sua
abertura
30
COMUNICAÇÃO E
INVOCAÇÃO
Primitivas de Comunicação
• Sistema Amoeba (S.O. distribuído)
• Fornece diretivas como doOperation, getRequest,
sendReply diretamente como parte do núcleo do SO
• UNIX e família Windows
• fornecem maior parte do middleware executando em modo
usuário e não como parte do núcleo.
• Chamadas são realizadas via soquete através de TCP e
UDP
31
COMUNICAÇÃO E
INVOCAÇÃO
Primitivas de Comunicação
• Vantagens de diretivas no núcleo
• rapidez
• eficiência
• menos operações
• Desvantagens de diretivas no núcleo
• muito complexo para implementar
• inviabiliza portabilidade do middleware
32
COMUNICAÇÃO E
INVOCAÇÃO
Protocolos e abertura
• SO deve fornecer protocolos padrão para interligação de
recursos através de implementações de middleware em
diferentes plataformas
• Exigido compatibilidade com padrão TCP e UDP
• Protocolos são organizados como pilhas de camadas
• Muitos SO’s permitem que se adicione novos protocolos
dinamicamente
33
CUSTO DE
INVOCAÇÃO
Desempenho
• Fator crítico em projetos de SD
• Maior abstração
• mais chamadas remotas e trocas de mensagens
• Tempo de invocação não tem diminuído na proporção do
aumento da largura e disponibilidade de rede
• Custo de invocação
• Passagem de parâmetros
• Retorno de valores
• Sincronismo (send/receive bloqueantes)
34
CUSTO DE
INVOCAÇÃO
35
CUSTO DE
INVOCAÇÃO
Invocação via Rede
• RPC/RMI nula – chamada/invocação sem parâmetros de
entrada e sem retorno
• Cenário
• Dois processos, dois computadores de 500 MHz, rede de
100 Megabits/s
• RPC/RMI – dura na ordem de décimos de milisegundos
• Uma chamada convencional demora uma fração de
microsegundo
• Grande parte do atraso
• Ações do núcleo do sistema operacional
• Execução do código no objeto remoto
36
CUSTO DE
INVOCAÇÃO
Invocação via Rede
• Custos de invocação de RPC/RMI nula mede a latência
• Custos aumentam com o tamanho e a quantidade dos
argumentos e resultados
• Cenário de exemplo
• RPC que solicita dados a um servidor
• Um argumento de entrada (numérico)
• Dois argumentos de saída (numérico / array de bytes)
37
CUSTO DE
INVOCAÇÃO
38
CUSTO DE
INVOCAÇÃO
Invocação via Rede
• Responsáveis pelo atraso em uma RMI (além da
transmissão)
• Empacotamento
• Cópia de dados
• Entre usuário e núcleo do SO
• Entre cada camada do protocolo
(RPC/TCP/IP/Ethernet)
• Entre a rede e os buffers do SO no destino
• Inicialização de pacotes
• Escalonamento de Threads
• Espera por confirmações
39
ROTEIRO
Introdução
Camada do SO
Proteção
Processos e Threads
Custos de Invocação
Arquitetura de SO
40
ARQUITETURAS
DE S.O.
Kernel Monolítico
Os Sistemas Operacionais que possuem Kernels Monolíticos têm
tudo construído neles desde o início. Isso significa que eles
são totalmente auto-suficientes, mas também maiores e um
pouco mais lentos.
• Executam cada serviço básico do sistema espaço do kernel:
• Gerenciamento de memória.
• Manipulação de interrupções e comunicação I/O.
• Sistemas de arquivos.
• Inconvenientes:
• Tamanho do kernel.
• Falta de extensibilidade.
• Manutenibilidade ruim.
41
ARQUITETURAS
DE S.O.
Microkernel
Microkernels adicionam ganchos para manipulação de módulos
externos. Como resultado, eles são bastante compactos por
si só e são bastante rápidos em funções embutidas.
• Reduzem o kernel a comunicações de processos básicos e
controle de I/O, e deixam os outros serviços de sistemas
situados no user-space em forma de processos.
• Garantem maior flexibilidade.
• Inconvenientes:
• Módulos infectados,Trojan modules, apresentam um grande
risco de segurança
42
ARQUITETURAS
DE S.O.
Núcleo Monolítico versus Micro-núcleo
43
SISTEMAS
DISTRIBUÍDOS
SUPORTE DO SISTEMA
OPERACIONAL
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
44

Mais conteúdo relacionado

Mais procurados

Fundamentos de banco de dados 01 indrodução
Fundamentos de banco de dados   01 indroduçãoFundamentos de banco de dados   01 indrodução
Fundamentos de banco de dados 01 indroduçãoRafael Pinheiro
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y SintaxisEmilio Aviles Avila
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosCarlos Eduardo Teruel
 
Plantas: Caule
Plantas: CaulePlantas: Caule
Plantas: Caule00367p
 
Padrões de Projetos de Interface do Usuário
Padrões de Projetos de Interface do UsuárioPadrões de Projetos de Interface do Usuário
Padrões de Projetos de Interface do UsuárioFatec Jales
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 
Componentes de Sistemas de Comunicação
Componentes de Sistemas de ComunicaçãoComponentes de Sistemas de Comunicação
Componentes de Sistemas de ComunicaçãoMauro
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos Raquel Machado
 

Mais procurados (20)

Telefonia voip
Telefonia voipTelefonia voip
Telefonia voip
 
Fundamentos de banco de dados 01 indrodução
Fundamentos de banco de dados   01 indroduçãoFundamentos de banco de dados   01 indrodução
Fundamentos de banco de dados 01 indrodução
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Anatomia do caule
Anatomia do cauleAnatomia do caule
Anatomia do caule
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos Básicos
 
Plantas: Caule
Plantas: CaulePlantas: Caule
Plantas: Caule
 
Mamíferos
MamíferosMamíferos
Mamíferos
 
Padrões de Projetos de Interface do Usuário
Padrões de Projetos de Interface do UsuárioPadrões de Projetos de Interface do Usuário
Padrões de Projetos de Interface do Usuário
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Desenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcadosDesenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcados
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Componentes de Sistemas de Comunicação
Componentes de Sistemas de ComunicaçãoComponentes de Sistemas de Comunicação
Componentes de Sistemas de Comunicação
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos
 

Destaque

Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
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
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesPortal_do_Estudante_SD
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Como Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé LeiteComo Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé LeiteTchelinux
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de TempoArthur Emanuel
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 

Destaque (20)

Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
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
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redes
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Como Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé LeiteComo Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé Leite
 
Apresentacao sobre o QNX Neutrino
Apresentacao sobre o QNX NeutrinoApresentacao sobre o QNX Neutrino
Apresentacao sobre o QNX Neutrino
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 

Semelhante a Sistemas Distribuídos: Camada do Sistema Operacional

ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesSilvano Oliveira
 
Introdução a redes sem fio
Introdução a redes sem fioIntrodução a redes sem fio
Introdução a redes sem fioTiago
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
Manual Oppitz[1]
Manual Oppitz[1]Manual Oppitz[1]
Manual Oppitz[1]maureen3008
 
MANUAL OPPITZ
MANUAL OPPITZMANUAL OPPITZ
MANUAL OPPITZritasbett
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 parteipaulocsm
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redesDaniel Brandão
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logixSaddam Lande
 
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
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
Aula S.O.R. - Visao Geral.pptx
Aula S.O.R. - Visao Geral.pptxAula S.O.R. - Visao Geral.pptx
Aula S.O.R. - Visao Geral.pptxCidrone
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1Universal.org.mx
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8HyperCloud UFS
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 

Semelhante a Sistemas Distribuídos: Camada do Sistema Operacional (20)

Redes2 aula02
Redes2 aula02Redes2 aula02
Redes2 aula02
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de Redes
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Introdução a redes sem fio
Introdução a redes sem fioIntrodução a redes sem fio
Introdução a redes sem fio
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Manual Oppitz[1]
Manual Oppitz[1]Manual Oppitz[1]
Manual Oppitz[1]
 
MANUAL OPPITZ
MANUAL OPPITZMANUAL OPPITZ
MANUAL OPPITZ
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 partei
 
S.o aula 1234
S.o aula 1234S.o aula 1234
S.o aula 1234
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redes
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logix
 
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
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
So cap01
So cap01So cap01
So cap01
 
Aula S.O.R. - Visao Geral.pptx
Aula S.O.R. - Visao Geral.pptxAula S.O.R. - Visao Geral.pptx
Aula S.O.R. - Visao Geral.pptx
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 

Mais de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningArthur Emanuel
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosArthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com FacebookArthur Emanuel
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaArthur Emanuel
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuArthur Emanuel
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomArthur Emanuel
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoArthur Emanuel
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosArthur Emanuel
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoArthur Emanuel
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoArthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioArthur Emanuel
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, FormulárioArthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPSArthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo WebservicesArthur Emanuel
 

Mais de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 

Sistemas Distribuídos: Camada do Sistema Operacional

  • 2. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 2
  • 3. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 3
  • 4. CONTEXTUALIZAÇÃO Classificação de Sistemas Distribuídos Arquiteturas de Sistemas Distribuídos Camada de Middleware • Modelo Send/ Receive • RMI e RPC • Comunicação Indireta Camada do Sistema Operacional (S.O.) 4
  • 5. SISTEMA OPERACIONAL “Um sistema operacional é um programa que age como intermediário entre o usuário do computador e o hardware. O propósito de um sistema operacional é prover um ambiente no qual um usuário possa executar programas de forma conveniente e eficiente.” SILBERSCHATZ et al. Operating Systems Concept 5
  • 6. SISTEMA OPERACIONAL O S.O. provê meios para o uso apropriado dos recursos de hardware, software e dados durante a operação do sistema computacional. 6
  • 7. SERVIÇOS OFERECIDOS PELO S.O. Os S.O.s, em geral, fornecem algumas classes comuns de serviços: • Execução de programas: • carregar um programa na memória e executá-lo • Operações de E/S; • envolver um arquivo ou um dispositivo de E/S • Manipulação de sistemas de arquivos • ler e escrever em arquivos • Criar e remover arquivos • Comunicação • permitir que um processo troque informações com outro(s) processo(s) 7
  • 8. SERVIÇOS OFERECIDOS PELO S.O. • Detecção de Erros • Alocação de Recursos • necessário quando há múltiplos usuários ou múltiplos processos • Registro de usuários • manutenção do controle de quais usuários usam quanto e quais recursos computacionais • Proteção • garantia de que todos os acessos aos recursos do sistema sejam controlados pelo S.O. 8
  • 9. SISTEMAS OPERACIONAIS As funções providas pelo S.O são então estruturadas em duas categorias: • Serviços do sistema: funções de alto nível tal como são vistas pelas aplicações (visão para o usuário de uma máquina estendida); • Kernel (núcleo): funções essenciais que são dependentes da arquitetura sob a qual o S.O vai executar (visão do administrador do sistema de um gerenciador de recursos). 9
  • 11. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 11
  • 12. CAMADA DO S.O. • Sistema Distribuído = Compartilhamento de Recursos. • Recursos distribuídos em múltiplos nós físicos. • Aplicativos utilizam middleware para viabilizar a interação entre recursos. • Middleware se relaciona com o sistema operacional para realizar as tarefas que os serviços e aplicativos requisitam. 12
  • 13. PAPEL DO S.O. Prover abstrações dos recursos da camada física • Processadores • Memória • Rede • Armazenamento (hard-disk, etc) Exemplos • Arquivos versus blocos de disco • Soquetes versus acesso direto à rede • S.O. gerencia recursos físicos através de interfaces denominadas “chamadas de sistema” 13
  • 14. S.O. CENTRALIZADO Nessa classe de sistemas operacionais, a comunicação e compartilhamento de recursos é feita via memória compartilhada ou interrupções. Como características principais destaca-se: • Sistema altamente acoplado, com todos os recursos compartilhados internamente; • Comunicação entre processos via memória compartilhada. 14
  • 15. S.O. DE REDE UNIX, Windows, Mac OS, Linux… são sistemas operacionais de rede • Possuem acesso a recursos remotos • Clientes podem executar processos em outros nós • Cada nó tem controle sobre sua área de memória e processador • Cada nó possui uma imagem própria do sistema • Usuários normalmente estão a par da localização dos seus arquivos e movem eles através de transferências explícitas; • Sistema possui pouco ou nenhum recurso de tolerância a falhas. 15
  • 16. S.O. DISTRIBUÍDO A implementação de um sistema verdadeiramente distribuído tem como objetivo a obtenção de um conjunto de máquinas ligadas em rede que funcionem como um uniprocessador virtual. Características • Única imagem para todos os nós • Um SO controla todos os nós, seu processamento e memória. • O uso de múltiplos processadores deve ser invisível para o usuário. • O usuário vê o sistema como um uniprocessador virtual, não como uma coleção de máquinas distintas conectadas. 16
  • 17. S.O. DISTRIBUÍDO O SO Distribuído deve: • Controlar a alocação de recursos da rede para permitir seu uso no modo mais eficiente. • Prover ao usuário com um computador virtual conveniente que serve como um ambiente de programação de alto nível. • Esconder a distribuição dos recursos. • Prover mecanismos para proteção dos recursos do sistema contra acesso por usuários não autorizados. • Prover comunicação segura. 17
  • 20. A CAMADA DO S.O. Middleware pode ser executado sobre vários hardwares e sistemas operacionais diferentes O par SO-Hardware = Plataforma Responsabilidades do núcleo do SO e dos processos • Encapsulamento • Proteção • Processamento concorrente • Comunicação • Escalonamento 20
  • 21. A CAMADA DO S.O. 21
  • 22. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 22
  • 23. RESPONSABILIDADE DO NÚCLEO Proteção • Recursos da máquina exigem proteção contra acesso ilegítimo • Ameaças • Código malicioso • Código bem intencionado, porém mal feito • Exemplo • Acesso indevido a arquivos, solução: criptografia 23
  • 24. RESPONSABILIDADE DO NÚCLEO Proteção • Código executado com privilégio total sobre os recursos lógicos e de máquina • Controla processador, memória, registradores, etc. de forma que nenhum acesso ocorra de forma diferente do “aceitável” • Modo supervisor versus modo usuário 24
  • 25. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 25
  • 26. PROCESSOS E THREADS Processo = ambiente de execução com uma ou mais threads Processo • Espaço de endereçamento • Comunicação e sincronização entre threads (semáforos, etc) • Recursos de alto nível: janelas, arquivos, etc Ambiente de execução é um domínio de proteção criado pelo sistema operacional para compartilhamento de recursos entre várias threads Ambiente de execução (ou processo) fornece proteção contra threads que estão fora dele 26
  • 28. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 28
  • 29. RESPONSABILIDADES DO NÚCLEO Comunicação e Invocação • Invocação • Realizar chamada de sistema • Enviar uma mensagem a um objeto • Chamar procedimento ou método • Chamar procedimento ou método remoto • Invocação Remota • executar uma operação sobre um recurso em um espaçamento de memória diferente de quem executa o pedido. 29
  • 30. RESPONSABILIDADES DO NÚCLEO Comunicação e Invocação • Cada invocação implica em execução fora do escopo do procedimento • Problemas • Quais primitivas de comunicação são fornecidas pelo SO • Quais protocolos são suportados pelo SO e qual sua abertura 30
  • 31. COMUNICAÇÃO E INVOCAÇÃO Primitivas de Comunicação • Sistema Amoeba (S.O. distribuído) • Fornece diretivas como doOperation, getRequest, sendReply diretamente como parte do núcleo do SO • UNIX e família Windows • fornecem maior parte do middleware executando em modo usuário e não como parte do núcleo. • Chamadas são realizadas via soquete através de TCP e UDP 31
  • 32. COMUNICAÇÃO E INVOCAÇÃO Primitivas de Comunicação • Vantagens de diretivas no núcleo • rapidez • eficiência • menos operações • Desvantagens de diretivas no núcleo • muito complexo para implementar • inviabiliza portabilidade do middleware 32
  • 33. COMUNICAÇÃO E INVOCAÇÃO Protocolos e abertura • SO deve fornecer protocolos padrão para interligação de recursos através de implementações de middleware em diferentes plataformas • Exigido compatibilidade com padrão TCP e UDP • Protocolos são organizados como pilhas de camadas • Muitos SO’s permitem que se adicione novos protocolos dinamicamente 33
  • 34. CUSTO DE INVOCAÇÃO Desempenho • Fator crítico em projetos de SD • Maior abstração • mais chamadas remotas e trocas de mensagens • Tempo de invocação não tem diminuído na proporção do aumento da largura e disponibilidade de rede • Custo de invocação • Passagem de parâmetros • Retorno de valores • Sincronismo (send/receive bloqueantes) 34
  • 36. CUSTO DE INVOCAÇÃO Invocação via Rede • RPC/RMI nula – chamada/invocação sem parâmetros de entrada e sem retorno • Cenário • Dois processos, dois computadores de 500 MHz, rede de 100 Megabits/s • RPC/RMI – dura na ordem de décimos de milisegundos • Uma chamada convencional demora uma fração de microsegundo • Grande parte do atraso • Ações do núcleo do sistema operacional • Execução do código no objeto remoto 36
  • 37. CUSTO DE INVOCAÇÃO Invocação via Rede • Custos de invocação de RPC/RMI nula mede a latência • Custos aumentam com o tamanho e a quantidade dos argumentos e resultados • Cenário de exemplo • RPC que solicita dados a um servidor • Um argumento de entrada (numérico) • Dois argumentos de saída (numérico / array de bytes) 37
  • 39. CUSTO DE INVOCAÇÃO Invocação via Rede • Responsáveis pelo atraso em uma RMI (além da transmissão) • Empacotamento • Cópia de dados • Entre usuário e núcleo do SO • Entre cada camada do protocolo (RPC/TCP/IP/Ethernet) • Entre a rede e os buffers do SO no destino • Inicialização de pacotes • Escalonamento de Threads • Espera por confirmações 39
  • 40. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 40
  • 41. ARQUITETURAS DE S.O. Kernel Monolítico Os Sistemas Operacionais que possuem Kernels Monolíticos têm tudo construído neles desde o início. Isso significa que eles são totalmente auto-suficientes, mas também maiores e um pouco mais lentos. • Executam cada serviço básico do sistema espaço do kernel: • Gerenciamento de memória. • Manipulação de interrupções e comunicação I/O. • Sistemas de arquivos. • Inconvenientes: • Tamanho do kernel. • Falta de extensibilidade. • Manutenibilidade ruim. 41
  • 42. ARQUITETURAS DE S.O. Microkernel Microkernels adicionam ganchos para manipulação de módulos externos. Como resultado, eles são bastante compactos por si só e são bastante rápidos em funções embutidas. • Reduzem o kernel a comunicações de processos básicos e controle de I/O, e deixam os outros serviços de sistemas situados no user-space em forma de processos. • Garantem maior flexibilidade. • Inconvenientes: • Módulos infectados,Trojan modules, apresentam um grande risco de segurança 42
  • 43. ARQUITETURAS DE S.O. Núcleo Monolítico versus Micro-núcleo 43