Trabalho de Sistema Operacional Windows NT Sistema

Propaganda
Trabalho de Sistema Operacional
Windows NT
Sistema Operacional da Microsoft
Willian Jorge Rissato Cruz - nº 72 - T. 135Windows NT
O Sistema Operacional da Microsoft
Windows NT, o sistema operacional da Microsoft, deu o seu pontapé inicial em
novembro de 1989, em uma recém lançada CPU Risc, e ostentando uma interface de
futura geração. A CPU era o processador 860 da Intel e a interface era o OS/2 da
IBM. Mais tarde, a Microsoft voltou-se ao Mips R4000, juntamente com as CPUs uni
e multiprocessadoras 80x86 da Intel e, é claro, para o Windows.
Graças a um planejamento cuidadoso, o NT é um camaleão. Inspirado no Macintosh,
seu microkernel adapta-se prontamente a qualquer CPU e hospeda vários sistemas
operacionais estendidos em camadas: DOS para 16 e 32 bits, Windows de 16 bits,
OS/2 de 16 bits (apenas no modo caracter e 80x86), Posix e um híbrido Windows-OS/2
de 32 bits (ver figura).
Rodando em um uniprocessador ou em um multiprocessador, em sistema Cisc ou Risc,
o kernel do NT tem a mesma visão do hardware subjacente graças a um abstrato chamado
HAL (hardware abstraction layer - camada de abstração de hardware). Há um HAL para
sistemas uniprocessados 386/486 com bus de AT e outro para uniprocessados R4000.
Fabricantes de sistemas inovadores devem escrever HALs para dar suporte ao NT em
seus sistemas. A NCR produziu dois: um para o processador quádruplo 3450 e um para
o sistema de oito processadores 3550. A Compaq escreveu uma HAL para o processador
dual Systempro e a Wise possui uma para o processador triplo 7000i. A HAL faz o
sistema de bus, a controladora DMA (direct memory access - Acesso direto à Memória),
o controlador de interrupção, os sistemas temporizadores e modelo de memória de
cada máquina parecer como os do núcleo. Também libera o suporte necessário para
o SMP (multiprocessamento simétrico) do Windows NT.
A HAL, entretanto, não faz mágicas. O sistema SMP exige que os processadores tenham
conjuntos de instruções, visões de memória física e acesso a dispositivos todos
idênticos. Além disso, o hardware deve fornecer coerência de cache e os
processadores têm de ser capazes de se interromperem mutuamente. A HAL não pode
criar simetria fora de um conjunto assimétrico de partes.
O kernel, ancorado no topo da HAL, gerencia mudanças de arranjo e de contexto,
suporte de exceção e interrupção e sincronização de multiprocessador. Não é
paginável ou sujeito a preempção.
A arquitetura baseada em objeto, a marca de qualidade do NT, deriva do kernel,
que oferece duas classes de objetos primitivos. Objetos escalonadores como, por
exemplo, indicadores (threads), eventos, semáforos (mutex e temporizadores),
mantendo um estado de sinal, suporte escalonado e atividades de sincronização.
Objetos de controle (processos, interrupções e dispositivos de fila) carregam
estruturas de dados usadas por controladores de dispositivos e o executivo NT,
que é a interface para subsistemas do modo usuário como o Win32.
O kernel reserva alguns desses objetos para uso interno e exporta outros
(processos, indicadores, eventos e semáforos) para o executivo, que os empacota
em metade do subsistema do modo usuário. Quando um programa do Win32 pede ao
executivo para criar um desses objetos, o executivo encapsula o novo objeto que
recebeu do kernel - por exemplo, atribuindo-lhe nome e descritor de segurança.
O kernel mantém estruturas de dados que suportem escalonamento, tais como uma fila
de indicadores que estejam prontos para rodar e uma matriz que descreva indicadores
em execução e suas prioridades. No sistema SMP de n-processadores, o kernel garante
que os n maiores, indicadores de prioridade, serão executados.
O escalonamento do NT é dirigido por evento. Quando algo interessante acontece
a um indicador de usuário (mensagem ou notificação de que uma operação assíncrona
de entrada e saída terminou), sua base de prioridade recebe um impulso temporário
e, então, reestabelece gradualmente seu estado normal. Este mecanismo ajuda o NT
a acomodar as demandas imprevisíveis colocadas pelos usuários e pelos
dispositivos. Nos períodos de tranqüilidade, o kernel cria eventos artificiais
para manter as coisas animadas. Quando transfere (preempts) um indicador para
rodá-lo com maior prioridade, atribui o indicador pronto a qualquer processador
disponível, embora favoreça a CPU na qual o indicador rodou por último, no caso
do cache secundário da CPU conter dados ainda válidos para esse indicador.
O executivo coloca à disposição um cardápio de serviços básicos comuns a todas
as emulações de sistemas operacionais depositadas em seu topo. Isto inclui
segurança, gerenciamento de memória, entrada e saída, sistemas de arquivos e IPC
(comunicações interprocessos). Como o kernel, o executivo roda com prerrogativa
supervisora. Ao contrário do kernel, ele é multi-indicativo e preemptível. O NT
atinge um paralelismo substancial em máquinas SMP, mesmo quando está executando
aplicativos monoindicadores, porque o trabalho de suporte a esses aplicativos se
dissemina, de forma equilibrada, por todos os processadores disponíveis.
A HAL, o kernel e o executivo rodam no modo supervisor. Os subsistemas de emulação
de sistema operacional, entretanto, rodam no modo usuário. Cada um desses
"ambientes servidores" (Win32, Os/2 e Posix) tem seu próprio espaço de
endereçamento privado e protegido. O aplicativo Win32 é um cliente em relação ao
subsistema Win32 e deve fiar-se no IPC para usar seus serviços. O Win32, em
contrapartida, mantém uma relação cliente-servidor com o executivo do NT. O Windows
3.x agrupa seus serviços em três módulos: GDI (gráfico) Kernel (suporte geral)
e User (janela de gerenciamento). O NT preserva esse arranjo, mas divide os módulos
em lado-do-cliente-DLLs (que mapeia no espaço de endereçamento dos aplicativos
Win32) e lado-do-servidor-DLLs (que roda em seus próprios espaços de
endereçamento). O lado cliente do módulo User permite que as aplicações acionem
funções API (CreateWindow). Mas o lado servidor desse módulo implementa a função.
Essa implementação se baseia nos serviços do executivo (gerenciamento de memória
e segurança). Como a janela é um dos objetos aos quais o NT agrega segurança, a
chamada CreateWindow chamará, no final das contas, o gerenciador de objetos e o
subsistema de segurança do executivo.
Hardware suportado
As plataformas inicialmente suportadas pelo NT são Intel, mono ou multiprocessada;
Risc; e o chip Alpha, da Digital. O sistema já está rodando em máquinas com até
quatro chips 486. Ele, porém, não suporta o MPA (Multiprocessamento assimétrico),
em que cada chip se especializa em alguns tipos de threads. No MPS (simétrico)
todos os processadores executam qualquer thread.
A compatibilidade nas variadas arquiteturas
Na verdade, para atender a arquiteturas diferentes, como Risc, Intel e o Alpha
(o chip da Digital, de 64 bits), há mais de um tipo de NT. Mas segundo a Microsoft,
as aplicações podem ser migradas entre plataformas com relativa facilidade. As
rotinas ligadas ao código do processador são diferentes em cada kernel, mas o código
de alto nível é mantido. Ou seja, a compatibilidade com diferentes tipos de
processadores é implementada no HAL (que faz o controle de interrupções, DMA,
clock, timers, etc.) e os drivers do NT não precisam de modificações em função
da arquitetura. Nas aplicações já escritas para o Win32, basta recompilar (com
o NT SDK - Software Development Kit). Os programas feitos para DOS ou Windows de
16 bits rodam em qualquer plataforma, graças a uma camada de emulação de chip Intel
x86.
O acesso ao hardware pelas aplicações
Resumindo, o NT se coloca como uma camada entre o hardware e os subsistemas
operacionais. O kernel, que é o coração de qualquer sistema operacional, assume
o controle exclusivo da máquina e sobre ele trabalham os subsistemas (Win32, Posix,
OS/2, DOS e Windows 3.x). Quando uma aplicação de qualquer um desses ambientes
pede para acessar o hardware, ela vai a seu sistema nativo, que em circunstâncias
convencionais seria o gestor do procedimento da máquina. Mas, numa estação NT,
as mensagens do Unix, do OS/2 ou do DOS são recebidas pela camada NT Executive,
que determina, segundo deus próprios critérios operacionais, a forma e o momento
de acesso ao hardware.
Bibliografia
Revista Byte Brasil, ano III, nº 12 (dezembro/92) - Págs. 64-66, 77-78.
Trabalho feito por Willian Cruz ([email protected]) em junho de 94, no terceiro ano
do curso de Administração de Empresas com ênfase em Análise de Sistemas da FASP,
de São Paulo, para a matéria de “Sistemas Operacionais”. Foi escrito tendo em vista
o NT 3.51, mas as características básicas de um sistema operacional raramente mudam
entre as versões - exceto em casos como a passagem de Windows 3.11 para Windows
95, que teve mudanças enormes. A característica de multiplataforma do NT em tese
é muito bonita, mas na prática ele só funciona bem em máquinas x86 (o popular PC).
O NT é o que o Windows 95 deveria ter sido, mas mesmo assim não é a 8a maravilha
da tecnologia. Se o fosse, não haveria necessidade de tantos Service Packs.
http://www.pobox.com/~wcruz
[email protected]
27/Mar/98
Texto gentilmente cedido por Willian Cruz ()
BIBLIOTECA VIRTUAL
http://www.bibliotecavirtual.com.br
Sua fonte de pesquisas na Internet
Download