18.1 C
Sorocaba
sábado, novembro 23, 2024

Windows NT

Autoria: Silvia de Oliveira Nunes

WINDOWS 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 80×86 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 80×86), 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.

Outros trabalhos relacionados

COMO SURGIU A REDE SEM FIO (WIRELESS)

As redes sem fio surgiram inicialmente como complemento às redes utilizando cabeamento convencional, possibilitando dessa maneira um maior alcance para as redes locais, através...

SEGURANÇA WIMAX

Segurança WIMAX Newton Paiva 2009 RESUMO Este trabalho apresenta uma análise das principais técnicas de segurança na rede banda larga sem fio WIMAX, evidenciando seus pontos fortes e...

COMO IMPLANTAR UMA REDE DE COMPUTADORES

Um ponto fundamental no projeto de implantação de uma rede de computadores está no fato de que uma rede nunca será melhor do que...

TRABALHANDO COM ARQUIVOS EM LOTE NO MS-DOS

Os arquivos .bat existem desde a época do “bom e velho” MS-DOS. No Windows 7 um arquivo em lotes pode ter a extensão .bat...