Vous êtes sur la page 1sur 36

Sistemas com Mltiplos Processadores

Um multiprocessador de memria compartilhada (ou simplesmente multiprocessador de agora em diante) um


sistema de computador no qual duas ou mais CPUs compartilham acesso total a uma RAM comum.
Para a maioria, os sistemas operacionais multiprocessadores so simplesmente sistemas operacionais regulares.
Eles tratam de chamadas de sistemas, fazem gerenciamento de memria, fornecem um sistema de arquivos e
gerenciam dispositivos de E/S. Apesar disso, existem algumas reas nas quais eles tm caractersticas nicas. Entre
elas esto sincronizao de processos, gerenciamento de recursos e escalonamento.

Sistemas com Mltiplos Processadores


Em contraste, os multiprocessadores NUMA (nonuniform memory acess acesso no uniforme
memria) no apresentam essa propriedade.
Multiprocessadores UMA de barramento nico geralmente so limitados a no mais do que algumas
dezenas de CPUs, e os multiprocessadores crossbar ou de comutao precisam de muito hardware
(caro) e no permitem sistemas to maiores.
Todas as mquinas NUMA tm trs caractersticas principais que, juntas, as diferenciam de outros
multiprocessadores:
1.

Existe um espao de endereamento nico, visvel a todas as CPUs.

2.

O acesso memria remota feito via instrues LOAD e STORE.

3.

O acesso memria remota mais lento do que o acesso memria local.

O meio mais usado para construir grandes multiprocessadores CC-NUMA normalmente chamado de
multiprocessador baseado em diretrio (directory-based multiprocessor).

Sistemas com Mltiplos Processadores


Os processadores multincleo s vezes so chamados de CMPs (chip-level multiprocessors
multiprocessadores em um chip). Da perspectiva do software, os CMPs no so to diferentes dos
multiprocessadores baseados em barramento ou dos multiprocessadores usando redes de comutao.
Os CMPs tambm so diferentes no que se refere tolerncia a falhas. Como as CPUs esto conectadas a
curta distncia, falhas nos componentes compartilhados podem fazer com que mltiplas CPUs parem ao
mesmo tempo, situao menos provvel nos multiprocessadores tradicionais. Alm dos processadores
multincleo simtricos, nos quais todos os ncleos so idnticos, outra categoria existente a do sistema em
um chip. Esses chips possuem uma ou mais CPUs principais, mas tambm ncleos com propsitos especiais,
como decodificadores de udio e vdeo, criptoprocessadores, interfaces de rede e outros, fazendo com que um
sistema computacional inteiro exista em um chip.

Sistemas com Mltiplos Processadores


O algoritmo de escalonamento mais simples para tratar de threads no relacionados emprega uma nica
estrutura de dados para os threads prontos no sistema talvez simplesmente uma lista ou, mais
provavelmente, um conjunto de listas para threads com diferentes prioridades. Quando se tem uma nica
estrutura de dados de escalonamento, usada por todas as CPUs, o tempo compartilhado das CPUs ocorre
como em um sistema monoprocessador. Ele tambm fornece balanceamento de carga automtico, pois
nunca pode ocorrer de uma CPU estar ociosa enquanto outras esto sobrecarregadas.
A outra estratgia geral para escalonamento de multiprocessador pode ser usada quando os threads so de
algum modo relacionados uns aos outros. Muitas vezes tambm ocorre de um nico processo criar
mltiplos threads para trabalharem juntos. Por exemplo, se os threads de um processo se comunicam
muito, til faz-los executar ao mesmo tempo. O escalonamento de mltiplos threads ao mesmo tempo
sobre mltiplas CPUs chamado de compartilhamento de espao.

Sistemas com Mltiplos Processadores


Como os multiprocessadores de grande porte so difceis de construir, e portanto, so caros, para solucionar esse

problema, muita pesquisa tem sido feita com multicomputadores, que so CPUs fortemente acopladas que no
compartilham memria. Cada CPU tem sua prpria memria local. Esses sistemas tambm so conhecidos por
uma variedade de outros nomes, como aglomerados de computadores e COWS (clusters of workstations
aglomerados de estaes de trabalho).
Multicomputadores so fceis de construir porque o componente bsico consiste em apenas um PC puro com a
adio de uma placa de interface de rede. Dois tipos de esquemas de comutao so usados nos
multicomputadores. O nodo bsico de um multicomputador formado por uma CPU, memria, uma interface de
rede e algumas vezes um disco rgido. O nodo pode ser empacotado em um gabinete-padro de PC, mas o
adaptador grfico, o monitor, o teclado e o mouse esto quase sempre ausentes. Em alguns casos, o PC contm
uma placa de multiprocessador com dois ou quatro CPUs, em vez de uma nica CPU, mas, para simplificar,
presumiremos que cada nodo tem uma CPU. Muitas vezes centenas ou at milhares de nodos ligam-se para
formar um multicomputador.

Sistemas com Mltiplos


Processadores
A grade ou malha (grid oumesh) um projeto bidimensional que tem sido empregado em muitos sistemas
comerciais. Ela altamente regular e fcil de escalar para tamanhos grandes. Seu dimetro o caminho mais longo
entre quaisquer dois nodos e aumenta somente em funo da raiz quadrada do nmero de nodos. Uma variante para a
grade o toro duplo, uma grade com as margens conectadas. Ela mais tolerante a falhas do que a grade; alm disso,
tem um dimetro menor, pois os cantos opostos podem agora se comunicar em dois passos somente.
Dois tipos de esquemas de comutao so usados nos multicomputadores. No primeiro caso, cada mensagem
primeiro quebrada (ou pelo software do usurio ou pela interface de rede) em um bloco de algum tamanho mximo
chamado de pacote. O esquema de comutao, denominado comutao de pacotes armazenar e encaminhar (storeand-forward packet switching), consiste na injeo do pacote na primeira chave pela placa de rede do n remetente.
O outro esquema de comutao, a comutao de circuito, consiste em o computador remetente estabelecer primeiro
uma rota atravs de todos os comutadores at o comutador destinatrio. Uma vez que o caminho foi estabelecido, os
bits so bombeados at o fim, da origem para o destino, sem parar. No existe a utilizao de buffer intermedirio
interferindo na comutao. A comutao de circuitos requer uma fase de estabelecimento do
caminho, que consome algum tempo, mas mais rpida depois que esse estabelecimento foi concludo. Aps o
pacote ter sido enviado, o caminho deve ser desfeito novamente. Uma variao da comutao de circuito, chamada
de rota do verme (wormhole routing), quebra cada pacote em subpacotes e permite que o primeiro pacote inicie
mesmo antes de o caminho todo ter sido construdo.

Sistemas com Mltiplos Processadores


Em todos os multicomputadores, a placa de interface contm alguma RAM para armazenar os pacotes de entrada e
sada. Normalmente, um pacote de sada tem de ser copiado para a RAM da placa de interface antes que ele possa ser
transmitido para o primeiro switch. A justificativa para esse projeto que muitas redes de interconexo so sncronas,
de modo que, uma vez que a transmisso de um pacote tenha sido iniciada, os bits devem continuar fluindo em uma
taxa constante. Se o pacote est na RAM principal, esse fluxo contnuo de sada para a rede no pode ser garantido
devido a outros trfegos no barramento da memria. Esse problema eliminado usando uma RAM dedicada na placa de
interface.
O mesmo problema ocorre com os pacotes de entrada. Os bits chegam da rede em uma taxa constante e muitas vezes
extremamente alta. Se a placa de rede no pode armazen-los em tempo real no momento em que eles chegam, os dados
so perdidos. Novamente nesse caso, tentar ir pelo barramento do sistema (por exemplo, barramento PCI) para a
memria principal muito arriscado..

Sistemas com Mltiplos Processadores

inimigo da comunicao de alto desempenho em sistemas de multi computadores a cpia


excessiva de pacotes. Na melhor situao, existir uma cpia da RAM pata a placa de interface no
nodo remetente, uma cpia da placa de interface remetente para a placa de interface destinatria e
uma cpia dessa ltima para a RAM destinatria, totalizando trs cpias. Entretanto, em outros
sistemas o quadro ainda pior. Em particular, se a placa de interface mapeada no espao de
endereamento virtual do ncleo e no no espao de endereamento virtual do usurio, um processo
do usurio pode somente enviar um pacote por intermdio de uma chamada ao sistema, a qual desvia
para o ncleo. Os ncleos podem ter de copiar os pacotes para suas prprias memrias tanto na sada
quanto na entrada, para evitar, por exemplo, falta de pgina durante a transmisso pela rede. Alm
disso, provvel que o ncleo que est recebendo no saiba onde colocar os pacotes que chegam at
que ele tenha tido oportunidade de examin-los.

Sistemas com Mltiplos Processadores

Os processos em diferentes CPUs de um multicomputador se comunicam enviando mensagens uns


aos outros. Em sua forma mais simples, essa troca de mensagens exposta aos processos do usurio.
Em outras palavras, o sistema operacional oferece uma maneira de enviar e receber mensagens e
procedimentos de bibliotecas tornam essas chamadas de baixo nvel disponveis aos processos dos
usurios. Em uma configurao mais sofisticada, a troca de mensagem real escondida dos usurios
fazendo com que a comunicao remota se parea com uma chamada de procedimento.
No mnimo, os servios de comunicao oferecidos podem ser reduzidos a duas chamadas
(biblioteca): uma para enviar mensagens e outra para receb-las. A chamada para o envio da
mensagem pode ser: send (dest, &mPtr);
e a chamada para o recebimento da mensagem pode ser: receive (addr, &mPtr);
A primeira envia a mensagem apontada por mptr para um processo identificado por dest e faz com
que o chamador seja bloqueado at que a mensagem tenha sido enviada. A segunda faz o chamador
ser bloqueado
at que uma mensagem chegue. Quando isso ocorre, a mensagem copiada para o buffer apontado
por mptr e o chamador desbloqueado. O parmetro addr especifica o endereo de qual receptor est
espera. Muitas variantes so possveis para esses dois procedimentos e seus parmetros.

Sistemas com Mltiplos Processadores

A tecnologia de mquinas virtuais, que tem mais de 40 anos e normalmente denominada


virtualizao. Ela permite que um nico computador hospede mltiplas mquinas virtuais,
cada uma com seu prprio sistema operacional. A vantagem dessa abordagem que a falha
em uma das mquinas virtuais no faz com que as outras falhem automaticamente. Em um
sistema virtualizado, diferentes servidores podem funcionar em diferentes mquinas
virtuais, o que mantm o modelo de falha parcial de um multicomputador a um custo
muito mais baixo e de muito mais fcil manuteno. A execuo de software nas mquinas
virtuais apresenta outras vantagens alm do forte isolamento. Uma delas que ter menos
mquinas fsicas significa economia de dinheiro hardware e em eletricidade e menos
espao ocupado no escritrio.
Outra vantagem das mquinas virtuais que a criao de pontos de salvaguarda (check
points) e a migrao (por exemplo, para balanceamento de carga entre diferentes
servidores) so muito mais fceis do que no caso dos processos funcionando em um
sistema operacional normal. Outro uso para as mquinas virtuais armazenar aplicaes
de verses mais antigas de um sistema operacional (ou verses do sistema operacional)
que no possuem mais suporte ou que no funcionam no hardware atual. As mquinas
virtuais tambm so utilizadas no desenvolvimento do software.

Sistemas com Mltiplos Processadores

Um computador constitudo de elementos eletrnicos, como resistores, capacitores e


principalmente transistores. Nesses computadores, os transistores so, em geral,
componentes de determinados circuitos eletrnicos que precisam armazenar os sinais
binrios e realizar certos tipos de operaes com eles. Esses circuitos, chamados de
circuitos digitais, so formados por pequenos elementos capazes de manipular
grandezas apenas binrias. Os pequenos elementos referidos so conhecidos como
portas (gates) lgicas, por permitirem ou no a passagem desses sinais, e os circuitos
que contm as portas lgicas so conhecidos como circuitos lgicos.
Assim, circuitos lgicos so montados a partir da combinao de uma unidade bsica
construtiva denominada porta lgica, a qual obtida mediante a combinao de
transistores e dispositivos semicondutores auxiliares. Portanto, a porta lgica a base
para a construo de qualquer sistema digital.
Em geral, os circuitos lgicos so agrupados e embutidos em um Circuito Integrado
(CI). Esses dispositivos implementam uma determinada funo com o objetivo de
cumprir uma tarefa especfica.

Sistemas com Mltiplos Processadores


Um tipo de hipervisor, denominado hipervisor tipo 1 (ou monitor de mquina virtual). Na verdade, ele o
sistema operacional, j que este o nico programa funcionando no modo ncleo. Sua tarefa gerenciar
mltiplas cpias do hardware real, denominadas mquinas virtuais, como os processos que um sistema
operacional normal gerencia. Por sua vez, um hipervisor 2, completamente diferente. simplesmente um
programa do usurio funcionando, digamos, no Windows ou no Linux, que funciona como um
interpretador do conjunto de instrues da mquina e tambm cria uma mquina virtual.
Os sistemas distribudos so similares aos multicomputadores pelo fato de cada n ter sua prpria memria
privada, sem nenhuma memria fsica compartilhada no sistema. Contudo, os sistemas distribudos ainda
so mais fracamente acoplados do que os multicomputadores. De certa maneira, o acoplamento fraco dos
computadores em um sistema distribudo , ao mesmo tempo, uma vantagem e uma desvantagem.

Sistemas com Mltiplos


Processadores
Os sistemas distribudos so construdos sobre as redes de computadores. AS redes existem em duas
classes principais, as LANs (local rea networks redes locais), que abrangem um edifcio ou um
campus, e as WANs (wide rea networks redes de longa distncia), que podem abranger cidades,
pases ou mesmo o planeta inteiro. O mais importante tipo de LAN a Ethernet e a outra WAN a
Internet.
As redes de computadores fornecem servios para os hospedeiros e processos que as esto usando.
O servio orientado a conexo modelado de modo similar ao sistema telefnico. O aspecto
essencial de uma conexo que ela age como uma tubulao: o emissor coloca objetos de um lado e
o receptor coleta-os do outro na mesma ordem. Contrariamente, o servio sem conexo modelado
de modo similar ao sistema postal. Cada mensagem (carta) carrega endereo completo do
destinatrio e roteada pelo sistema de modo independente umas das outras.
Um servio no confivel (isto , sem confirmao) sem conexo muitas vezes chamado de servio
datagrama em analogia ao servio de telegrama -, o qual no oferece uma confirmao ao emissor.
Ainda h o servio de solicitao-rplica (request-reply service). Nesse servio, o emissor transmite
um nico datagrama com uma solicitao; a rplica contm a resposta.

Sistemas com Mltiplos Processadores


Todas as redes tm regras altamente especializadas para que as mensagens possam ser enviadas e para que as
respostas sejam retornadas queles que as enviaram. O conjunto de regras pelas quais os computadores especficos
se comunicam chamado de protocolo. Todas as redes modernas usam aquilo que chamado de pilha de
protocolos para assentar protocolos diferentes no topo de um outro. Visto que a maioria dos sistemas distribudos
usa a Internet como base, os protocolos principais que esses sistemas empregam so os dois maiores protocolos da
Internet: IP e TCP.
O paradigma original da Web era muito simples: cada computador pode possuir um ou mais documentos,
chamados de pginas da Web. Cada pgina da Web pode conter textos, imagens, cones, sons, filmes etc., bem
como hyperlinks (ponteiros) para outras pginas da Web. Quando um usurio solicita uma pgina da Web usando
um programa chamado navegador da Web, a pgina mostra na tela de vdeo.
Cada pgina da Web tem um endereo nico, chamado de URL (uniform resource locator localizador uniforme
de recursos), na forma protocolo://nome-no-DNS/nome-do-arquivo.

Segurana
Algumas pessoas usam os termos 'segurana' e 'proteo' como se fossem a mesma coisa. Todavia, muitas vezes
til distinguir os problemas gerais relacionados a assegurar que arquivos no sejam lidos ou modificados por
pessoas no autorizadas, que incluem, de um lado, questes tcnicas, administrativas, legais e polticas e, de
outro, mecanismos especficos do sistema operacional empregados para oferecer segurana. Para evitar
confuso, usaremos o termo segurana para o problema geral e a expresso mecanismos de proteo para
designar os mecanismos especficos do sistema operacional usados para salvaguardar informaes no
computador. Contudo, a fronteira entre esses dois termos no bem definida. A segurana tem muitas facetas.
Trs das mais importantes so a natureza das ameaas, a natureza dos invasores e a perda acidental de dados.
Do ponto de vista da segurana, os sistemas computacionais tm trs objetivos gerais, com as correspondentes
ameaas. O primeiro objetivo, a confidencialidade de dados, manter em segredo os dados secretos. O segundo
objetivo, a integridade de dados, significa que usurios no autorizados no devem ser capazes de modificar
qualquer dado sem a permisso do proprietrio. O terceiro objetivo, a disponibilidade do sistema, significa que
ningum pode perturbar o sistema para deix-lo inutilizvel. Esses ataques de recusa de servio esto cada vez
mais comuns. Por fim um novo tipo de ameaa surgiu nos ltimos anos.

Segurana
Outro aspecto do problema de segurana a privacidade: proteo de indivduos contra o mau uso da
informao sobre eles. Isso implica vrias questes legais e morais. O governo deve reunir dossis sobre
algum para capturar um fraudador-de-X, seja X 'previdncia' ou 'impostos', dependendo de sua poltica? A
polcia deve ter autorizao de investigar algum para combater o crime organizado? Os empregadores e as
companhias de seguro tm direitos? O que acontece quando esses direitos entram em conflito com os
direitos individuais? Todas essas questes so extremamente importantes, mas esto alm do escopo deste
estudo.
A maioria das pessoas tem um comportamento cordial e obedece s leis; portanto, por que a preocupao
com a segurana? Porque infelizmente h os no to cordiais e que querem causar problemas
(provavelmente para seu prprio benefcio comercial). Na literatura sobre segurana, as pessoas que
bisbilhotam em coisas que no lhes dizem respeito so chamadas de invasores ou algumas vezes de
adversrios. Os invasores agem de duas maneiras diferentes. Os invasores passivos querem apenas ler os
arquivos que no esto autorizados a ler. Os invasores ativos so mais nocivos; querem alterar dados
alheios. Durante o projeto de um sistema seguro contra invasores importante ter em mente que tipo de
invasor se est tentando combater. Algumas categorias comuns so: Curiosidades casuais de usurios leigos;
Espionagem por pessoas internas; Tentativas determinadas para ganhar dinheiro e Espionagem comercial ou
militar

Segurana
Alm das ameaas causadas por invasores nocivos, dados valiosos podem ser perdidos por acidente. Algumas
das causas mais comuns de perda acidental de dados so:
1. Fenmenos naturais: incndios, enchentes, terremotos, guerras, motins ou ratos roendo fitas ou discos
flexveis.
2. Erros de hardware ou de software: defeitos na CPU, discos ou fitas com problemas de leitura, erros de
telecomunicao, erros de programas.
3. Erros humanos: entrada incorreta de dados, m montagem de disco ou fita, execuo do programa errado,
perda de disco ou fita ou algum outro erro.
A maioria dessas causas pode ser tratada com a manuteno adequada das cpias de segurana,
preferivelmente em um lugar distante dos dados originais. Embora proteger dados contra perda acidental parea
banal se comparado a proteger contra invasores inteligentes, na prtica, provavelmente mais danos sejam
causados pelo primeiro que pelo ltimo.
O propsito da criptografia levar uma mensagem ou um arquivo, chamado de texto plano, e criptograf-lo em
um texto cifrado de tal modo que somente a pessoa autorizada saiba convert-lo novamente para um texto
plano.

Segurana
Os sistemas por chave secreta so eficientes, pois a quantidade de computao necessria para criptografar ou
decriptar uma mensagem controlvel, porm h uma grande desvantagem: o emissor e o receptor devem,
ambos, possuir a chave secreta compartilhada. Podem at mesmo obt-la fisicamente, um dando-a ao outro. Para
contornar esse problema, usada a criptografia por chave pblica (Diffie e Hellman, 1976). Esse sistema
apresenta a seguinte propriedade: chaves distintas so usadas para criptografia e decriptao e, dada uma chave
criptogrfica bem conhecida, praticamente impossvel descobrir a chave correspondente de decriptao. Sob
essas circunstncias, a chave criptogrfica pode ser pblica e somente a chave de decriptao privada mantida
em segredo. Para se ter uma noo da criptografia por chave pblica, considere estas duas questes:

Questo 1: Quanto 314159265358979 x 314159265358979?


Questo 2: Qual a raiz quadrada de 3912571506419387090594828508241?

A maioria dos alunos da sexta srie, com lpis, papel e a promessa de um grande sorvete com cobertura se a
resposta estiver correta, poderia responder questo 1 em uma ou duas horas.

Segurana
A maioria dos adultos, com lpis, papel e a Promessa de um desconto de 50 por cento nos
impostos pelo resto da vida, no resolveria a questo 2 sem usar uma calculadora, um computador
ou alguma ajuda externa. Embora as operaes de elevar ao quadrado e de extrao da raiz
quadrada sejam inversas, suas complexidades computacionais so muito diferentes. Esse tipo de
assimetria forma a base da criptografia por chave pblica. Um sistema de chave pblica, chamado
RSA, explora o fato de a multiplicao de grandes nmeros ser muito mais fcil para um
computador que a fatorao de grandes nmeros, especialmente quando toda a aritmtica
implementada com base na aritmtica de mdulo e todos os nmeros envolvidos tm centenas de
dgitos (Rivest et aL.,7978).
Esse sistema amplamente usado no mundo criptogrfico, assim como sistemas baseados em
logaritmos discretos (El Gamal, 1985). O principal problema da criptografia por chave pblica
que ela milhares de vezes mais lenta que a criptografia simtrica. A criptografia por chave
pblica funciona com todos escolhendo um par de chaves (pblica, privada) e tornando pblica a
chave pblica. A chave pblica a chave criptogrfica; a chave privada a de decriptao. Em
geral, a criao da chave automatizada, possivelmente com uma senha escolhida pelo usurio
alimentada em um algoritmo como uma semente.

Segurana
H vrias situaes, as quais veremos depois, em que desejvel ter alguma funo, f,
com uma propriedade que dados f e seu parmetro x, calcular y = f (x) seja fcil, mas dada
somente f(x), encontrar x seja computacionalmente invivel. Essa funo costuma
embaralhar os bits de um modo bastante complexo. Comea atribuindo x como um valor
inicial de y. Ento, a funo teria um lao para iterar o nmero de vezes correspondente ao
nmero de bits 1, em x, com cada iterao permutando os bits de y de uma maneira
dependente da iterao, adicionando uma constante diferente a cada iterao e geralmente
misturando os bits muito bem.
Muitas vezes necessrio assinar um documento digitalmente. As assinaturas digitais
tornam possvel assinar mensagens eletrnicas e outros documentos digitais de modo que
elas no possam ser depois repudiadas por quem as enviou. Uma maneira comum ,
primeiro, submeter o documento a um algoritmo de hashing de uma via que seja muito
difcil de inverter. A funo hashing produz em geral um resultado de tamanho fixo e
independente do tamanho do documento original. As funes hashing mais conhecidas e
usadas so a MDS (message digest - compndio de mensagens), que produz um resultado
de 16 bytes (Rivesl, 1992), e a SHA (secure hash algorithm - algoritmo seguro de hash),
que produz um resultado de 20 bytes (NIIST 1995).

Segurana
Em alguns sistemas, a proteo implementada por um programa chamado monitor
de referncia. Cada vez que se tenta um acesso a um recurso potencialmente
protegido, o sistema pede, primeiro, ao monitor de referncia para verificar sua
validade. O monitor de referncia procura, ento, em sua tabela de polticas e toma
uma deciso. A seguir listamos alguns exemplos:
1.

Domnios de proteo;

2.

Listas de Controle de Acesso;

3.

Capacidades;

4.

Sistemas Confiveis;

5.

Base computacional Confivel;

6.

Modelos Formais de Sistemas seguros;

7.

Segurana Multinveis;

8.

Canal Oculto

Segurana
Quando um usurio se conecta a um computador, o sistema operacional normalmente
busca determinar quem o usurio, um processo chamado de autenticao de usurio. Os
primeiros computadores de grande porte no possuam um sistema operacional e muito
menos um procedimento de acesso ao sistema (login). Depois, os computadores de grande
porte cujos sistemas trabalhavam em lotes e por compartilhamento de tempo tinham, em
geral, um procedimento de acesso ao sistema para autenticar os trabalhos e os usurios.
Sabendo como a autenticao importante, o prximo passo encontrar uma boa maneira
de faz-la. A maioria dos mtodos de autenticao de usurios para quando eles tentam
obter acesso ao sistema baseia-se em um dos trs princpios gerais de identificao:
1. Alguma coisa que o usurio sabe.
2. Alguma coisa que o usurio tem.
3. Alguma coisa que o usurio .
Esses princpios levam a esquemas diferentes de autenticao com diferentes
complexidades e propriedades de segurana. Quem quiser causar problemas em um
sistema particular deve, primeiro, obter acesso quele sistema, o que significa conseguir
passar por qualquer que seja o procedimento de autenticao l usado.

Segurana
A maneira mais amplamente usada de autenticao pedir que o usurio digite um nome de
entrada e uma senha. A proteo por senha fcil de entender e de implementar. A
implementao mais simples mantm uma lista central de pares (nome de entrada, senha). O
nome de entrada digitado buscado na lista e a senha digitada, comparada senha armazenada.
Se forem coincidentes, o acesso ser permitido; do contrrio, o acesso ser rejeitado. No
preciso dizer que, enquanto uma senha estiver sendo digitada, o computador no deve exibir os
caracteres digitados, para que olhos curiosos prximos ao terminal no possam v-los.
A maioria dos crackers invade apenas se ligando a um computador-alvo e tentando vrias
combinaes (nome, senha) at que encontrem uma que funcione. Muitas pessoas usam seus
nomes de alguma maneira como nomes de entrada. Claro que acertar um nome no basta.
Deve-se chegar senha tambm. Isso mais fcil do que se pensa. O trabalho clssico sobre
segurana por senha foi elaborado por Morris e Thompson (L979) para sistemas Unix.

Segurana
O segundo mtodo de autenticao de usurios consiste em verificar a posse de algum objeto fsico e no
alguma coisa que eles saibam. Para esse fim, as chaves de metal para portas so usadas h sculos.
Atualmente, um objeto fsico bastante empregado o carto de plstico, que inserido em um leitor que
faz parte de um terminal ou de um computador. Em geral, o usurio no deve somente inserir o carto,
mas tambm digitar uma senha, a fim de impedir que algum use um carto perdido ou roubado. Visto
desse modo, o uso do caixa automtico de um banco ou ATM (automated teller machine - mquina de
atendimento automatizado) comea com o usurio se conectando ao computador do banco por um
terminal remoto (a mquina do caixa automtico) por meio de um carto de plstico e uma senha.
O terceiro mtodo de autenticao mede caractersticas fsicas do usurio, caractersticas que sejam
difceis de falsificar (BIOMETRIA) (Pankanti et aL, 2000) . Por exemplo, uma impresso digital ou um
identificador de voz no terminal poderia verificar a identidade do usurio. Um sistema biomtrico tpico
formado por duas partes: cadastramento e identificao. Durante o cadastramento, as caractersticas do
usurio so medidas e os resultados so digitalizados. Ento, os atributos significativos so extrados e
armazenados em um registro associado ao usurio. O registro pode ser mantido em um banco de dados
central (por exemplo, para acesso a um computador remoto) ou armazenado em um carto inteligente que
o usurio carrega e insere depois em um leitor remoto (por exemplo, em
um caixa automtico). A outra parte a identificao. O usurio se exibe e fornece um nome de entrada.

Segurana

Ento, o sistema faz novamente a medio. Se os novos valores forem


os mesmos que os amostrados no momento do cadastramento, o acesso
ser permitido; caso contrrio, o acesso ser rejeitado. O nome de
entrada necessrio, pois as medidas no so exatas; portanto, difcil
index-las e depois buscar o usurio pelo ndice. Alm disso, duas
pessoas podem ter as mesmas caractersticas, exigindo assim que as
caractersticas medidas para corresponder a um usurio especfico sejam
mais rgidas do que apenas exigir que elas correspondam quelas de um
outro usurio qualquer. A caracterstica escolhida deve ter uma
variabilidade suficiente para que o sistema possa, sem erro, distinguir
uma dentre muitas pessoas.

Projeto de Sistemas
Operacionais
O projeto do sistema operacional mais um projeto de engenharia do que uma cincia exata. Para projetar
um sistema operacional bem-sucedido, os projetistas precisam ter uma ideia clara do que querem.
Obviamente isso varia de um sistema para outro, assim como de sistemas embarcados para sistemas
servidores. Contudo, para sistemas operacionais de propsito geral, quatro itens principais devem ser
considerados:
1.

Definir abstraes.

2.

Fornecer operaes primitivas.

3.

Garantir isolamento.

4.

Gerenciar o hardware.

A tarefa mais importante talvez a mais difcil de um sistema operacional definir as abstraes
corretamente. Um sistema operacional fornece um conjunto de abstraes, implementadas principalmente
por tipos de dados (por exemplo, arquivos) e operaes sobre eles (por exemplo, read). Juntos, esses
servios formam a interface para seus usurios. Existem princpios capazes de guiar o projeto de
interface? Acreditamos que sim. Em linhas gerais, so: simplicidade (uma interface mais simples mais
fcil de compreender e implementar de uma maneira livre de erros), completude (o sistema operacional
deve fazer exatamente o que necessrio que ele faa e mais nada) e capacidade para ser implementado
eficientemente (se uma caracterstica ou uma chamada de sistema no puder ser implementada de modo
eficiente, provavelmente no vale a pena t-la).

Projeto de Sistemas
Operacionais
Uma das questes mais importantes como fazer todas as caractersticas do sistema bem
unificadas para formar aquilo que muitas vezes chamado de coerncia arquitetural.
Nesse sentido, importante diferenciar dois tipos de clientes de sistemas operacionais.
De um lado, existem os usurios, que interagem com os programas aplicativos; do outro
lado esto os programadores, que escrevem esses programas. Os primeiros, na maioria
das vezes, interagem com a interface grfica; os outros, em geral, interagem com a
interface de chamada de sistema.
Uma vez que os objetivos foram estabelecidos, o projeto pode comear. Um bom ponto
de partida pensar sobre como os clientes enxergaro o sistema. importante
diferenciar dois tipos de clientes de sistemas operacionais: usurios que interagem com
os programas aplicativos e programadores que escrevem esses programas.
Para ambas as interfaces em nvel de interface grfica e em nvel de chamada de sistema,
o aspecto mais importante a existncia de um bom paradigma para fornecer uma
maneira de enxergar a interface. Muitas interfaces grficas para PCs usam o paradigma
WIMP. Esse paradigma usa o aponte e clique, aponte e clique duplamente, arraste e
outros idiomas por toda a interface para fornecer uma coerncia arquitetural.

Projeto de Sistemas
Operacionais
A coerncia arquitetural importante no nvel do usurio, mas igualmente importante no nvel da
interface de chamadas de sistema. Nesse caso til diferenciar entre o paradigma de execuo (o
programa faz chamadas de sistema de tempos em tempos para obter a entrado do usurio, os
servios do sistema operacional, etc, ou o programa executa algum tipo de inicializao e depois
espera que o sistema operacional o informe sobre o primeiro evento) e o paradigma de dados (a
inteno unificar dados, dispositivos seja por fita, arquivo, objeto ou documento, de modo que
seja mais fcil trabalhar com eles).
O sistema operacional deve fornecer o mnimo possvel de chamadas de sistema e cada uma deve
ser a mais simples possvel. Um paradigma unificado de dados pode desempenhar um papel
importante nesse caso.
Em alguns casos, as chamadas de sistema podem parecer precisar de diversas variantes, mas
uma prtica muitas vezes melhor ter uma camada que trate o caso geral, com diferentes rotinas de
bibliotecas para esconder esse fato dos programadores.
Esquecendo as interfaces de chamadas de sistema e o usurio, vamos ver como implementar um
sistema operacional.
Provavelmente, a primeira deciso que os programadores devem tomar qual ser a estrutura do
sistema.

Projeto de Sistemas
Operacionais
Uma estratgia razovel que tem sido bem estabelecida ao longo dos anos um
sistema em camadas. O sistema THE de Dijkstra foi o primeiro sistema operacional
em camadas. Para um novo sistema, os projetistas que optarem por esse caminho
devem primeiro escolher muito cuidadosamente as camadas e definir a
funcionalidade de cada uma.
Enquanto a diviso em camadas tem seus incentivadores entre os projetistas de
sistemas, existe tambm um outro grupo com uma viso precisamente oposta. Esse
conceito diz que, se algo tem de ser feito pelo prprio programa de usurio,
dispendioso faz-lo tambm em uma camada inferior. O argumento fim a fim diz
que o uso de um protocolo de rede confivel no necessrio, uma vez que o ponto
final tenha informao suficiente para verificar a correo do arquivo. O argumento
fim a fim pode ser estendido para quase todos os sistemas operacionais. Essa ideia
defende que o sistema operacional no deve fazer tudo aquilo que o programa de
usurio capaz de fazer por si prprio.

Projeto de Sistemas
Operacionais
Um meio-termo entre o sistema operacional ter de fazer tudo e no fazer nada o
sistema operacional fazer um pouco. Essa ideia leva ao microncleo, em que muitas
partes do sistema operacional executam como processos servidores no nvel do usurio.
De todas as ideias, essa a mais modular e flexvel. O mximo da flexibilidade consiste
em permitir que cada driver de dispositivo tambm execute como um processo do
usurio, totalmente protegido contra o ncleo e outros drivers, mas a modularidade
aumenta mesmo quando os drivers de dispositivos funcionam no modo ncleo. Vale
ressaltar que, embora os microncleos no sejam populares em desktops, eles so
largamente utilizados em aparelhos celulares, PDAs, sistemas industriais, sistemas
embarcados e sistemas militares, nos quais uma alta confiabilidade necessria.
Com os sistemas cliente servidor discutidos anteriormente, a ideia era colocar o
mximo possvel fora do ncleo. A abordagem oposta colocar mais mdulos no
ncleo de uma maneira protegida. Inicializando com um sistema mnimo que possui
pouco mais que um mecanismo de proteo e depois adicionado mdulos protegidos ao
ncleo, um por vez, at que se alcance a funcionalidade desejada, um sistema mnimo
pode ser construdo para aplicao em mos.

Projeto de Sistemas
Operacionais
Outra questo relevante diz respeito aos threads do sistema. Muitas vezes conveniente permitir
que os threads do ncleo tenham existncia independente de qualquer processo do usurio.
Esses threads podem executar em segundo plano. Alm dos threads do ncleo que esto
executando em segundo plano, a maioria dos sistemas operacionais dispara muitos processos
servidores em segundo plano.
Outro princpio que auxilia na coerncia arquitetural, mantendo ainda as coisas pequenas e bem
estruturadas, a separao do mecanismo da poltica. Colocando o mecanismo no sistema
operacional e deixando a poltica para os processos do usurio, o sistema por si prprio pode ser
mantido sem modificao, mesmo que exista a necessidade de trocar a poltica. Ainda que o
mdulo de poltica seja mantido no ncleo, ele deve ser isolado do mecanismo, se possvel, de
modo que as alteraes no mdulo de poltica no afetem o mdulo de mecanismo.
Um bom projeto de sistema consiste em conceitos separados que podem ser combinados
independentemente. A habilidade para combinar conceitos separados independentemente
chamada de ortogonalidade.
Muitas das estruturas de dados de longa durao usadas por um sistema operacional tm algum
tipo de nome ou identificador pelos quais elas podem ser referenciadas. Muitas vezes a
nomeao feita em dois nveis: externo e interno.

Projeto de Sistemas
Operacionais
Os sistemas operacionais usam vrios tipos de nomes para referenciar os objetos
(mapeamento entre um nome e objeto fixo, outras vezes no). A associao
antecipada simples, mas no flexvel, ao passo que a associao tardia mais
complicada, embora muitas vezes mais flexvel.
Os projetistas de sistemas operacionais so constantemente forados a escolher
entre estruturas de dados estticas (mais simples de compreender, mais fceis de
programar e mais rpidas de usar) e dinmicas (mais flexveis).
Embora seja melhor projetar o sistema no estilo de cima pra baixo, teoricamente ele
pode ser implementado tanto no estilo de cima pra baixo quanto no de baixo pra
cima. Em uma implementao de cima pra baixo, os implementadores inicializam
com os tratadores de chamadas de sistema e observam quais mecanismos e
estruturas de dados necessrios para que eles funcionem. Esses procedimentos so
escritos e a descida prossegue at que o hardware seja alcanado. Muitos
desenvolvedores acham mais prtico construir o sistema no estilo de baixo pra cima
(primeiro a escrita do cdigo que esconde o hardware de baixo nvel).

Projeto de Sistemas
Operacionais
Analisamos tcnicas abstratas para o projeto e implementao de sistemas. Agora examinaremos algumas
tcnicas concretas teis para implementao de sistemas, sendo elas:
1. Escondendo o hardware o hardware possui muitas partes complicadas, que devem ser escondidas o
quanto antes;
2. Indireo a indireo tambm empregada na sada dos dados. Os programas podem escrever
caracteres ASCII na tela, que so interpretados como ndices em uma tabela para a fonte de sada utilizada. A
entrada na tabela contem o mapa de bits para o caractere. Essa indireo possibilita separar os caracteres das
fontes;
3. Reusabilidade frequentemente possvel reutilizar o mesmo cdigo em contextos ligeiramente
diferentes. E isso uma boa ideia, uma vez que reduz o tamanho do cdigo binrio e significa que o cdigo
tem de depurado somente uma vez;
4. Reentrncia se caracteriza pela possibilidade de o cdigo ser executado duas ou mais vezes
simultaneamente;
5. Fora bruta todo sistema operacional tem muitas rotinas que so raramente chamadas ou operam com
to poucos dados que sua otimizao no vale a pena. Se o cdigo otimizado maior e tem mais erros, pode
no ser interessante se importar com a otimizao;
6. Primeiro verificar os erros o sistema operacional deve verificar cuidadosamente cada possvel erro
antes de executar a chamada.

Projeto de Sistemas
Operacionais
Um sistema operacional rpido e no confivel no to bom quanto um outro lento e
confivel. Os sistemas operacionais atuais esto mais lentos porque esto fazendo muito
mais. As otimizaes nos sistemas operacionais devem ocorrer nas partes que podem
causar problemas inevitveis. Quando se faz uma otimizao importante, vale a pena
procurar por algoritmos que ganham velocidade com o uso de mais memria ou, de modo
oposto, economizam memria preciosa com a realizao de mais computao.
Uma tcnica bem conhecida para melhora de desempenho o uso de cache. Ela aplicvel
sempre que existir a probabilidade de o mesmo resultado ser necessrio vrias vezes.
Processos e programas no agem aleatoriamente. Eles apresentam uma quantidade
razovel de localidade no tempo e no espao e essa informao pode ser explorada de
vrias maneiras para melhorar o desempenho.
Normalmente, uma boa ideia diferenciar entre o caso mais comum e o pior caso possvel
e trat-los diferentemente. Muitas vezes os cdigos para as duas situaes so totalmente
diversos. importante tornar o caso comum rpido. Para o pior caso, se ele ocorre
raramente, suficiente torn-lo correto.

Projeto de Sistemas
Operacionais
A maioria dos programadores acha que escrever um programa correr at o teclado e
comear a digitar e, logo em seguida, o programa totalmente depurado finalizado. Para
programas muito grandes, no se trabalha assim. A seguir explanaremos de modo rpido
alguns pontos sobre gerenciamento de projetos de grandes sistemas operacionais:
1.
O mtico homem ms muito tempo consumido no planejamento de como
dividir a tarefa em mdulos, especificando os mdulos e suas interfaces e imaginado
como esses mdulos iro interagir, mesmo antes de comear a decodificao. Em seguida
os mdulos devem ser implementados e depurados separadamente.
2.
Estrutura de equipe qualquer grande projeto precisa ser organizado de maneira
hierrquica. No nvel mais baixo existem muitas equipes pequenas, cada qual liderada
por um programador chefe. No nvel seguinte, grupos de equipe devem ser comandados
por um gerente. Esses gerentes devem ser gerenciados e assim segue.
3.
O papel da experincia ter projetistas experientes fundamental para o projeto
de um sistema operacional, visto que a maioria dos erros no est no cdigo e sim no
projeto.
4.
No h bala de prata temos de nos contentar com melhoras graduais,
incrementais.

Projeto de Sistemas
Operacionais
A seguir listamos onde os sistemas operacionais podem chegar futuramente:
1.

Virtualizao;

2.

Processadores multincleo;

3.

Sistemas operacionais com grandes espaos de endereamento;

4.

Em rede;

5.

Sistemas paralelos e distribudos;

6.

Multimdia;

7.

Computadores movidos a bateria;

8.

Sistemas embarcados;

9.

N sensor.

Vous aimerez peut-être aussi