UNIVERSIDADE ESTADUAL DE GOIÁS
DUANNISTON CARDOSO CABRAL
S.O WINDOWS NT EM PLATAFORMAS CLIENTE/SERVIDOR 2008/2
Trindade 2008
2
DUANNISTON CARDOSO CABRAL
S.O WINDOWS NT EM PLATAFORMAS CLIENTE/SERVIDOR 2008/2
Trabalho Acadêmico apresentado à disciplina sistemas operacionais da Universidade Estadual de Goiás sob orientação da Ana Flávia Honorato.
Trindade 2008
3
Sumário 1 Introdução ............................................................................................................... 4 2 Windows NT ............................................................................................................ 4
2.1 Modo Usuário ..................................................................................................... 6 2.2 Modo Kernel ....................................................................................................... 6 3 Kernel ...................................................................................................................... 7 4 Processos e Threads ............................................................................................. 7 4.1 Kernel-Level Thread ........................................................................................... 8 5 Conclusão ............................................................................................................... 9 6 Referências ........................................................................................................... 10
4
1 Introdução O Windows NT desenvolvido por Dave Cutler teve como principio concorrer com os demais S.O1 entre eles o principal é o Linux, o Windows NT foi inteiramente projetado para a arquitetura cliente – servidor, esse sistema possui confiabilidade e abertura para a execução de tarefas críticas de computação empresarial e alta performance na computação pessoal, ele permite a execução de trabalhos complexos com maior rapidez através de sua arquitetura de 32 bits e nas versões mais recentes 64bits, multitarefa preemptivae, kernel hibrido e seu sistema “aberto”.
2 Windows NT Windows NT é uma família de sistemas operacionais produzidos pela Microsoft, a primeira versão do que foi lançada em julho de 1993. Foi inicialmente concebido para ser uma poderosa linguagem de alto-nível de base, independente de processador,
multiprocessamento,
multiusuário
sistema
operacional
com
funcionalidades comparáveis ao Unix. Foi destinado a complementar as versões do Windows que foram baseados em MS-DOS. NT foi o primeiro inteiramente 32-bit versão do Windows, enquanto seus homólogos orientados para o consumidor, o Windows 3.1x e Windows 9x, foram 16-bit/32-bit híbridos. Windows 2000, Windows XP, o Windows Server 2003, Windows Vista, o Windows Home Server e Windows Server 2008 se baseiam no sistema Windows NT. A principal meta do design NT foi de hardware e software portabilidade. Versões do NT estavam disponíveis para uma variedade de arquiteturas processador, a saber, Intel IA-32, AMD64, MIPS R3000 e R4000, Alpha, PowerPC, e Itanium. Ampla compatibilidade de software foi conseguido com o apoio de várias API "personalidades", incluindo Win32, POSIX e OS / 2 API. Parcial do MS-DOS compatibilidade foi conseguida através de um sistema integrado DOS Virtual Machine. NT apoiado por objeto (arquivo, função e papel) listas de controlo de acesso que permita um rico conjunto de permissões de segurança a serem
5
aplicadas aos sistemas e serviços. Protocolos de rede suportadas do Windows NT, herdeira do anterior OS / 2 LAN Manager rede, bem como de rede TCP / IP (para a qual a Microsoft implementaria uma pilha TCP / IP derivado do BSD Unix pilha).
Windows NT 3.1 foi a primeira versão do Windows para utilizar 32-bit "flat" memória virtual abordando sobre processadores 32-bit. Seu companheiro produto, o Windows 3.1, utilizado segmentado e chaves de endereçamento 16-bit para 32-bit abordando em páginas. A arquitetura do Windows NT é altamente modular e é constituído por duas camadas principais: componentes que são executados no modo usuário e os componentes que são executados no modo kernel. Programas e subsistemas no modo usuário são limitados em termos de recursos de sistema que eles possam ter acesso, enquanto o modo kernel tem acesso irrestrito ao sistema de memória e dispositivos externos. O miolo dos sistemas operacionais nesta linha são todos conhecidos como kernel híbrido, embora este termo é contestado alegando que todas as partes essenciais do sistema executar no modo kernel tornando-se um kernel monolítico que é um pouco estruturada como um microkernel. A arquitetura composta de um simples kernel, camada de abstracção de hardware (HAL), motoristas, e uma gama de serviços (coletivamente denominados Executivo), que existem em todo modo kernel
Modo de usuário no Windows NT linha é composta de subsistemas capazes de passar E / S solicitações para o adequado modo kernel, usando o software controladores I / O gestor. Dois subsistemas compõem a camada de modo usuário do Windows NT: o subsistema do Ambiente (que gere as aplicações escritas para muitos tipos diferentes de sistemas operativos), e do subsistema Integral (sistema opera funções específicas em nome do ambiente subsistema). No modo kernel do Windows NT tem acesso total ao sistema de recursos e de hardware do computador. O modo kernel pára de serviços e aplicações modo usuário de acessar áreas críticas do sistema operacional que eles não deveriam ter acesso.
1
Sistemas operacionais
6
2.1 Modo Usuário O modo usuário é composto de subsistemas, que pode transmitir E / S solicitações para o adequado modo kernel drives através do I / O manager (que existe em modo kernel). Dois subsistemas compõem a camada de modo usuário do Windows NT : O subsistema do Ambiente e do subsistema Integral.
O subsistema ambiente foi projetado para executar aplicações escritas para muitos tipos diferentes de sistemas operacionais. Nenhum dos subsistemas ambiente pode acessar diretamente o hardware, e deve requerer o acesso aos recursos de memória virtual por meio do Gerenciador de memória que é executado em modo kernel. Além disso, aplicativos executados a prioridade mais baixa do que um modo kernel processos.
2.2 Modo Kernel Modo kernel do Windows NT tem acesso total ao sistema de recursos e de hardware do computador e o código é executado em um espaço de memória protegido. Ele controla o acesso à programação, thread priorização, gerenciamento de memória e de interação com o hardware. O modo kernel pára de serviços e aplicações modo usuário de acessar áreas críticas do sistema operativo que não deveriam ter acesso a processos modo usuário deve pedir o modo kernel para realizar essas operações em seu nome. Modo kernel consiste de serviços executivos, que por sua vez é composto por módulos que fazem em muitas tarefas específicas, kernel drivers, um kernel e uma camada de abstração de hardware, ou HAL.
7
3 Kernel O Windows NT tem como núcleo um Kernel híbrido, define um kernel baseado em microkernel no quais módulos externos a ele podem executar operações em modo kernel (protegido), a fim de evitar trocas de contexto e melhorar o desempenho geral do sistema. O kernel está entre o Executivo e o HAL multiprocessador e fornece sincronização, interromper, programação de despachando, movimentação e exclusão, como também é responsável pela inicialização drivers de dispositivo na inicialização que são necessárias para obter o sistema operacional instalado e a correr. Ou seja, o kernel realiza quase todas as tarefas de um microkernel tradicionais; a rigorosa distinção entre Executivo e do Kernel é a mais importante remanescente de micro originais do design, design e documentação histórica consistente refere-se à componente kernel como "o microkernel".
O kernel normalmente tem interfaces com o processo gestor. O nível de abstração é tal que o kernel nunca apela para o gestor de processo, apenas o contrário (salvo para alguns casos, ainda nunca a ponto de uma funcional dependência).
4 Processos e Threads O Windows NT é um S.O multitarefa que suporta múltiplas threads e processos, em um ambiente multithread.Os processos são Implementado como objetos esses processos e threads possuem capacidade de sincronização. Além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é distribuído de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Um processo define um espaço de endereçamento e recursos dinamicamente. Múltiplas threads podem ser criadas e executadas dentro de um processo. O Windows NT tem suas threads em Kernel.
8
4.1 Kernel-Level Thread Kernel-Level Thread As KLT são escalonadas diretamente pelo SO, comumente são mais lentas que as Threads ULT pois a cada chamada elas necessitam consultar o SO, exigindo assim a mudança total do contexto do processador memória e outros níveis necessários para alternar um processo. Vamos citar outro exemplo pratico, um processo chamado P2 com as threads P2T1, P2T2, P2T3, e outro processo chamado P3 com as threads P3T1, P3T2, P3T3. SO não entregara a CPU ao processo e sim a uma thread deste processo, note agora que o SO é responsável por escalonar as threads e este SO tem que suportar Threads, a cada interrupção de thread é necessário mudar todo o contexto de CPU e memória porém as threads são independentes dos processos, podemos executar então P3T2, P2T1, P2T2, P2T1, P3T1,P2T3,P3T3, ou seja a ordem em que o escalonador do SO determinar. Já com as threads em modo usuário não conseguimos ter a mesma independência, pois quando passamos o controle ao processo enquanto seu quantum for válido ele irá decidir que thread irá rodar. Um escalonamento típico do SO é onde o escalonador sempre escolhe a thread de maior prioridade, que são divididas em duas classes que são Real Time e Normal, cada thread ganha uma prioridade ao ser criada que varia de 0 a 31(0 é a menor e 31 maior), processos com prioridade 0 a 15(Real Time) tem prioridade ajustada no tempo de execução como nos processos de E/S que tem a prioridade aumentada variando o periférico, processos com prioridade 16 a 31 são executados até terminar e não tem prioridade alterada, mas somente uma thread recebe a prioridade zero que é a responsável por zerar páginas livres no sistema. Existe ainda uma outra classe chamada de idle, uma classe mais baixa ainda, só é executada quando não existem threads aptas, threads dessa classe não interferem na performance.
9
6 Conclusão O Windows NT é uma boa escolha para sistema cliente/servidor esse sistema apesar de ter suas carências, se compara ao Unix. Seu sistema baseado em Multitarefa, Multithread, multiusuário, multiplataforma e kernel hibrido, faz com que o sistema seja estável e seguro agora com suas novas versões principalmente em suas versões de 64 Bits Windows XP 64 bits, Server 2003 e Vista o sistema se torna mais seguro quando se trata de interação cliente servidor.
10
6 Referencias SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005. TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999. Reis, Rodrigo Quites et. al. 2002. Automação no Gerenciamento do Processo de Engenharia de Software MS Windows NT Kernel-mode User and GDI White Paper". Windows NT Workstation