WindowsNT 1 2 Agenda Windows NT Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys! do! Ambiente de Sistema Operacional!! Object! Escalonamento 3 4 Usuário Supervisor I/O Object Microkernel Camada abstração hardware hardware Security Process Reference Monitor Local Proc.Call Facility Virtual Memory Processo de logon Segurança Gerenc. Janelas Gráfico 5 6! Usuário! Supervidor (kernel) " É restrito o acesso: " direto ao hardware " a determinadas partes da memória " a determinados registradores da CPU " Os processos são executados neste modo: " Aplicações " s de,, DOS e " de segurança " Não existem restrições impostas " São executados neste modo: " Serviços s " Device-drivers " Microkernel " HAL ( Abstration Layer) Página 1
WindowsNT 7 8! " Denominada também de Interface NT nativa " Define o conjunto de serviços que o operacional fornece aos processos: ~250 chamadas " Objetivo: " mais alto nível " Permitir a proteção e gerenciamento dos recursos " Implementada através de " = interrupção de software " Permite garantir que somente o kernel do NT será executado em modo supervisor " As interruções são atendidas em modo supervisor " O vetor de interruções é controlado pelo microkernel! Serviços s " Object " Gerencia objetos (recursos) " Implementa espaço de nomes global " Security Reference Monitor " Implementa security IDs (SIDs) " Implementa Listas de Controle de Acesso (DACLs) " Virtual Memory " Define o espaço de endereçamento virtual do processo " Atribui memória física " I/O " Serve como interface entre as aplicações e os device-drivers " Cache " Implementa cache de blocos de disco 9 10! Serviços s " Local Procedure Call (LPC) Facility " Permite comunicação entre processos " Configuration " Gerencia o Registry " Process " Implementa a abstração de processos " (a partir NT4.0) " Implementa messaging " Plug-and-Play (a partir NT5.0) " Informa aos device-drivers quando dispositivos ficam on-line e off-line " Power " Controla estado de energia do! Microkernel " Também chamado de NT kernel " Responsável por " Escalonamento de threads (dispatcher) " Sincronização " Manipulação dos vetores de interrupção " Implementa 32 níveis de priodidade " Implementa escalonamento preemptivo " Implementa sincronização baseada em " mutex " semáforos " eventos " spinlocks 11 12! HAL " Abstraction Layer " Camada para esconder dependências de arquitetura " Exemplo: " Sisteamas monoprocessadores x multiprocessadores " Para cada versão NT são fornecidas 3 versões " monprocessador " multiprocessador " para depuração (p/ desenvolvimentod e device drivers) Ambiente de Sistema Operacional Página 2
WindowsNT 13 14 WindowsNT! Interação entre aplicação e kernel WindowsNT Ambiente de Sistema Operacional! Exemplo Usuário Supervisor Client-side DLL Operating System Environment (LPC - Local Procedure Call) Server PROSIX Client-side DLL Subsystem (LPC - Local Procedure Call) 15 16 Ambiente do Sistema Operacional! LPC x " LPC possui maior sobrecarga: " Cada interação envolve geralmente 2 mensages (pedido e resposta) " Para cada ocorre " 1 " 1 troca de contexto " troca da tabela de páginas " atualização de informações de escalonamento " troca de todos os registradores "... " é menos custosa " envolve somente uma interrupção de software " necessário salvar somente parte dos registradores " ao final é necessário restaurar os registradores salvos 17 18! Verão NT 3.51 ou anterior! Windows32 em versão Windows NT 3.51 ou anterior Usuário Kernel32.dll.dll User32.dll GDI32.dll (LPC) (CSRSS.exe).dll " Utiliza serviços do através das bibliotecas: " KERNEL32 " USER32 " GDI32 " KERNEL32.dll " A maior parte das funções fornecidas ativam diretamente uma ou mais chamadas nativas WindowsNT. " USER32 e GDI32 " Ativam os serviços do Windows32 " CSRSS.EXE " Este processo é o Windows32 Supervisor " Rerência: " http://www.windowsitlibrary.com/content/356/03/1.html Página 3
WindowsNT 19 20! Versão WindowsNT4 e W2k! Windows32 em versão Windows NT 4.0 ou superior (incluindo Windows 2000, Windows 2003) Usuário Kernel32.dll.dll User32.dll GDI32.dll K.sys (CSRSS.exe).dll " Utiliza serviços do através das bibliotecas: " KERNEL32 " USER32 " GDI32 " k.sys " Devido à problemas de desempenho, as bibliotecas USER32 e GDI32 ativam os serviços através de uma chamada a um driver chamado k.sys que é executado em modo supervidor (kernel mode). Tais bibliotecas contém stubs que ativam estes serviços utilizando a interrupção 0x2E. A maior parte das funcionalidades foi retirada do Windows32 (CSRSS.EXE) e implementada neste driver. Supervisor " CSRSS.EXE " Este processo ( Windows32) ainda é mantido. Entretanto seu papel é limitado a manter suporte a E/S de console. 21 22 Aplicações Aplicações psxdll.dll (LPC - Local Procedure Call) psxss.exe 23 24 Aplicações! " Portable Operating System Interface based on Unix! " Possibilita porte de aplicações UNIX " Incluido no NT para atendimento de requisitos do governo dos EUA " Windows 2000 implementa 1003.1 " Fornece um conjunto limitado de serviços: " Não permite criação de threads, janelas e uso de sockets " psxdll.dll " Biblioteca que disponibiliza API " psxss.exe " " Outras bibliotecas comerciais de compatibilidade UNIX são, atualmente, uma melhor opção. Página 4
WindowsNT 25 26 Usuário Supervisor I/O Object Microkernel Camada abstração hardware hardware Security Process Reference Monitor Local Proc.Call Facility Virtual Memory Processo de logon Subsisetma Segurança Gerenc. Janelas Gráfico! Características " Monolítico " Imagem ntoskrnl.exe contém: " Todo código dos serviços executivos (exceto " Microkernel " Multi-threaded " Reentrante 27 28 Object! Objeto = Recurso Object! Objetivo principal: " Gerenciamento dos recursos físicos e lógicos! Exemplo de objetos (recursos) " ObjectType, Directory, SymbolicLink, Event, EventPair, Mutant, Timer, Semaphore, Windows Station, Desktop, File, I/O Completion, Adapter, Controler, Device, Driver, Key, Port, Section, Process, Thread, Token, Profile 29 30 Escalonamento! Baseado em: " Prioridade + Quantum Escalonamento! Prioridades " Valores de 0 (mais baixa) a 31 (mais alta) " Prioridade de 0 a 15 " Prioridade dinâmica " s de usuários " Funções do operacional não cruciais " Prioridade de 16 a 31 " Prioridade Real Time " s de tempo real " Núcleo Página 5
WindowsNT 31 32 Bibliografia deste módulo! Referências Bibliografia deste módulo " Windows 2000 Magazine Online " http://www.winntmag.com/articles Página 6