UFF - UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA TET – DEPARTAMENTO DE TELECOMUNICAÇÕES Disciplina: Fundamentos de Sistemas Operacionais Windows XP Alunos: Carlos Roberto F. dos Reis Diego Oliveira Lanna Bousquet Paschoalino Thaís de Oliveira Sumário 1. Introdução 2. Motivação 3. Objetivo 4. O sistema operacional 5. Componentes do sistema 6. Sistemas de arquivos 7. Conclusão 8. Bibliografia 1. Introdução Neste trabalho será apresentado, de forma breve, o Windows XP, um sistema operacional muito utilizado. Começou a ser desenvolvido em setembro de 1981, mas só a partir de sua versão NT ( que foi lançada em agosto de 1993) ele começou a ser tecnicamente considerado como um sistema operacional. O impacto deste sistema no mundo atual é enorme, devido ao grande número de cópias instaladas. O Windows conquistou uma legião de usuários, pela facilidade e por não exigir conhecimentos avançados na área. O nome XP é uma abreviação da palavra eXPerience. O Windows XP é o sucessor do Windows 2000 e do Windows ME (Millennium Edition) e é o primeiro sistema operacional para consumidores produzido pela Microsoft construído em nova arquitetura e núcleo (Windows NT 5.1). As duas principais edições do sistema operacional são o Windows XP Home Edition, que é destinada a usuários domésticos, e o Windows XP Profissional Edition, que oferece recursos adicionais, tais como domínio de Servidor do Windows, dois processadores físicos e é direcionada a usuários avançados e a empresas. O Windows XP é conhecido pela sua estabilidade e eficiência que melhoram ao longo das versões 9x. Ele apresenta uma nova interface gráfica, uma mudança que o tornou mais amigável do que as versões anteriores do Windows. Devido suas vulnerabilidades de segurança, sua fraca integração entre aplicativos, como o Internet Explore 6 e Windows Media Player, e para funções de contas de usuário, o Windows XP foi criticado por alguns usuários. Além disso, o trabalho trata de partes mais técnicas, como por exemplo, escalonamento, componentes do sistema e sistema de arquivos. 2. Motivação O Windows XP é uma atualização do sistema operacional desktop Windows 2000 e substituto para o Windows 95/98. Ele aproveita as melhorias que ocorreram no hardware para implementar facilidades para o usuário. Entre os avanços estão recursos para reparar problemas automaticamente, melhorias de redes e dispositivos, melhorias de desempenho, mais confiabilidade e segurança. Esse sistema operacional é multiusuário, permite acesso de serviços distribuídos, também de várias instâncias de interface gráfica (GUI) através de servidor de terminal Windows. Existe a capacidade de troca rápida de usuário, que é o recurso que permite a passagem de usuário para o outro no console sem necessidade de desconectar e conectar. A principal extensão de 64 bits no XP é o suporte para endereços grandes, ele é a primeira versão de Windows de 64 bits. O Windows XP apresenta duas versões desktop: uma para especialistas, o Windows XP Professional, e outro para usuários domésticos, o Windows XP Personal que possui a confiabilidade e facilidade do XP, mas sem recursos mais avançados. Existe também a família Windows. Net Server, que possui recursos adicionais como, grupos de servidores Web, servidores de impressão e arquivo e grandes máquinas de centro de dados. 3. Objetivos Os objetivos de Windows XP são segurança, confiabilidade, compatibilidade com aplicações Windows e Posix, alto desempenho, extensibilidade, portabilidade e suporte internacional. 3.1. Segurança O Windows NT 4.0 tinha classificação de segurança moderado contra software defeituoso e ataque malicioso, chamada de classificação C2 do governo dos Estados Unidos. O Windows XP necessitou ir além disso, e uma revisão e teste completo do código foram combinados com sofisticadas ferramentas de análise automática para identificar e investigar defeitos em potencial que pudessem representar uma falha de segurança. 3.2. Confiabilidade Os requisitos de confiabilidade do Windows XP foram muito rigorosos. Foram realizadas revisões manuais e automáticas completas no código, para descobrir mais de 63.000 linhas nos arquivos- fonte que pudessem ter problemas não detectados pelo teste, e foi feita revisão. O Windows XP verifica driver para apanhar bugs mais sutis, mais facilidades para encontrar erros de programação no código em nível de usuário. Ele sujeita aplicações de terceiros, drivers e dispositivos a um rigoroso processo de certificação. Possui também, modos de monitorar a saúde do PC, como o download de reparos de problemas antes de eles serem encontrados pelos usuários. A confiabilidade percebida também melhorou, com interface gráfica mais fácil para o usuário. 3.3. Compatibilidade com aplicações Windows e Posix O Windows XP como atualização do Windows 2000, deve ter alta compatibilidade com aplicações de consumidor executadas no Windows 95/98. A compatibilidade das aplicações é difícil ser alcançada, porque cada aplicação verifica uma versão particular do Windows, isto parece que pode variar de cada API, apresentando bugs que não apareciam na versão anterior. O sistema operacional fornece uma camada de compatibilidade entra aplicações e APIs Win32. Isto faz parecer compatível quase bug a bug com versões anteriores. Também mantém o suporte a execução de muitas aplicações de 16 bits utilizando uma camada que traduz de API de 16 bits a equivalentes de 32 bits, a camada é chamada de thunking. A tradução de 32 bits para 64 bits ocorre na versão de 64 bits. O Windows XP possui um novo subsistema POSIX, chamado Interix. Um software compatível com UNIX é compilado e executado sob o Interix sem modificação alguma. Exemplo de API Win32 3.4. Alto desempenho O Windows XP foi projetado para oferecer alto desempenho em sistemas desktop, sistemas servidores, grandes ambientes multiprocessados e threads. Além disso, melhorou ainda mais o desempenho, reduziu a extensão do caminho do código nas funções críticas, usando melhores algoritmos e estrutura de dados por processador, usou coloração de memória para arquiteturas NUMA e implementando protocolos de locks mais escaláveis, como spinlocks enfileirados. O Windows NT utilizou técnicas de E/S assíncrona, protocolos otimizados de rede, gráficos baseados no kernel e caching sofisticados de dados do sistema de arquivos. Os algoritmos de gerenciamento de memória e sincronismo tentam melhorar o desempenho relacionado a filas de cache e multiprocessadores. A comunicação entre subsistemas do Windows XP ocorre através de chamadas de procedimento local (LPC). Os threads nos subsistemas Windows XP podem ser preemptadas por threads de prioridade mais alta, com exceção de quando são executadas no despachante do Kernel. Isso ajuda a responder com mais rapidez a eventos externos. No Windows XP, várias threads podem ser executadas ao mesmo tempo em computador multiprocessado, porque usa processamento simétrico. 3.5. Extensibilidade O Windows XP usa arquitetura em camadas, isso ajuda a realizar mudanças com o tempo. Portanto, essa característica permite a extensibilidade, que é a capacidade de um sistema operacional acompanhar os avanços na tecnologia de computação. Essa adaptação é permitida porque o executivo do Windows XP roda no Kernel, no modo protegido oferecendo os serviços básicos do sistema. Acima dele vários subsistemas servidores operam no modo usuário e entre eles estão os subsistemas de ambiente, que simulam diferentes sistemas operacionais. Desta forma, pela sua estrutura modular, outros subsistemas de ambiente podem ser acrescentados ao Windows XP sem afetar o executivo. O Windows XP utiliza drivers carregados nos sistemas de E/S, de modo que novos sistemas de arquivo, novos tipos de dispositivos de E/S e novos tipos de rede podem ser acrescentados enquanto o sistema está sendo utilizado. 3.6. Portabilidade A portabilidade de um sistema operacional se refere à capacidade de ser movido de uma arquitetura de hardware para outra com poucas mudanças. O Windows XP foi projetado para ser portável. A maior parte do código que depende do processador é isolada em uma biblioteca de vínculo dinâmico ( DLL – Dynamic Link Library ) que é chamada de camada de abstração de hardware (HAL). Uma DLL é um arquivo mapeado no espaço de endereço de um processo, assim, qualquer função na DLL parece fazer parte do processo. O que melhora a portabilidade do XP é o fato de as camadas superiores do Kernel dependerem das interfaces do HAL, e não do hardware básico. O HAL manipula o hardware diretamente, e o restante do Windows XP não sente as diferenças de plataforma. O Windows XP funciona em processadores compatíveis com IA32 e IA64. 3.7. Suporte internacional O Windows XP oferece suporte para diferentes locais por meio da API de suporte à linguagem nacional (NLS – National Language-Support). A API NLS tem rotinas para formatar as informações de data, hora e moeda de acordo com vários costumes nacionais. O UNICODE é o conjunto de caractere nativo do Windows XP. Ele aceita caracteres ANSI e faz conversão para UNICODE antes de manipulá-los. As strings de texto do sistema são mantidas em arquivos de recursos que podem ser trocados para adaptar o sistema a diferentes idiomas. 4. O Sistema Operacional Windows XP A principal função do sistema operacional é servir a interface entre o usuário e a máquina. Todos os computadores trabalham sob um sistema operacional. Quando um computador é ligado primeiramente ocorre a leitura da memória ROM e estando tudo certo o Sistema Operacional é carregado na memória RAM. Depois do sistema ter mostrado a sua tela inicial ele habilita para o usuário uma tela conhecida como Área de Trabalho. A figura a seguir mostra uma área de trabalho do Windows. Fig 1. Área de Trabalho do Windows A área de trabalho é composta de: Barra de Tarefas – fica localizada na inferior da tela que contém o Botão Iniciar, a data e hora do sistema e os programas que estão sendo executados. A barra de tarefa do Windows pode ocupar qualquer um dos quatros cantos da tela, mas só pode estar nos cantos, e o tamanho máximo que ela pode ocupar é 50% da tela. Atalhos – são os ícones de programas que estão na forma de atalho e para serem acessados precisam de um duplo click. Um exemplo é o ícone do Internet Explore na área de trabalho. Botão Iniciar – é através do botão iniciar que o usuário entra no menu iniciar, onde se encontra todos os programas e aplicativos do sistema operacional. Existem alguns ícones na área de trabalho que não são atalhos, como é o caso do ícone lixeira, que apresenta algumas funções importantes, por exemplo, nenhum arquivo pode ser executado quando estiver dentro da lixeira, se for necessário saber qual o conteúdo de um arquivo na lixeira o usuário deverá restaurar o arquivo. A tabela abaixo mostra a figura da lixeira em dois estados diferentes. Fig 2. Lixeira Fig 2.1. Janela da lixeira aberta Na fig 1 observa-se também que ao clicar com o botão direito do mouse em qualquer lugar vazio da área de trabalho tem-se a lista de opções a seguir: Fig 3. Clique com o botão direito na área de trabalho Fig 4. Clique com o botão direito na barra de tarefas Na figura 3 as opções mais usadas são propriedades e novo. A opção propriedades leva o usuário às configurações de vídeo do sistema operacional. A opção ‘novo’ permite entre as principais funções a criação de um atalho ou nova pasta. Na barra de tarefas quando um clique com o botão direito é aplicado em uma região vazia, a seguinte lista de opções é apresentada na figura 4. A lista mostrada oferece diversas opções para organização das janelas abertas na área de trabalho do sistema operacional. Na opção ‘barra de ferramentas’ existem as opções que habilitam e desabilitam opções de barras expostas na barra de tarefas. A opção ‘propriedades’ permite configurar a aparência da barra de tarefas, como, por exemplo, mostrar ou ocultar o relógio. Outro ícone muito importante aparece na área de trabalho é o ícone do compactador WINZIP ou WINRAR, programa que se encarrega de fazer a compactação ou descompactação de arquivos e pastas. Uma ferramenta muito poderosa no auxílio do procedimento de backup. Ao clicar com o botão direito do mouse nesse ícone ou tem-se a figura 5 onde a opção Add to Zip permite executar a ação de compactar um arquivo ou pasta. O procedimento é similar para o WINRAR. Figura 5. Clique com o botão direito no ícone do WINZIP 4.1. Programas do Botão Iniciar No sistema operacional Windows XP quando o usuário clica no botão iniciar uma lista de opções é mostrada, na primeira linha encontra-se as opções que permite efetuar logoff ou desligar o computador. Isso é mostrado na figura abaixo: Figura 6. Menu iniciar do Windows XP 4.1.1. Desligar o Computador Figura 7 Figura 7.1. 4.1.2. Fazer Logoff do Windows Figura 8. Figura 8.1. O botão iniciar também permite acesso à janela painel de controle mostrado a seguir. 4.1.3. Painel de Controle O painel de controle permite que sejam feitas as configurações mais importantes dentro do sistema operacional. Configurações de hardware como teclado, instalações de novos periféricos, impressoras, configurações de áudio e vídeo, configurações de periféricos referentes a redes de computadores e configurações de softwares como instalações de novos programas e a configuração de perfis do usuário. Figura 9. Painel de Controle do Windows XP Aparência e temas – Permite configuração de aparência de pastas, menus e área de trabalho. Conexões de rede e Internet – Permite criar ou alterar uma conexão como rede local ou Internet. Adicionar ou remover programas – Permite adicionar, remover e alterar programas e componentes do Windows. Som, fala e dispositivos de áudio – Permite alterar e configurar esquemas de sons, alto falante e volume. Desempenho e manutenção – Permite ajustar efeitos visuais, liberar espaço e organizar itens no disco rígido, backup de dados e consultar informações básicas sobre o micro. impressora e outros itens de hardware – Permite adicionar e configurar uma impressora instalada. Contas de usuário – Permite criar e gerenciar as contas dos usuários do sistema. Data, hora, idiomas e opções – Permite alterar as configurações de data e hora do sistema e opções. Regionais – Regionais dos programas. Opções de acessibilidade – Permite configurar o Windows para as necessidades visuais, auditivas e motoras do usuário. 4.2. A janela do sistema operacional Windows O Windows é um sistema operacional de ambiente gráfico onde as aplicações são feitas através de janelas. Todos os aplicativos do Windows são padronizados e as janelas possuem a mesma estrutura. Na barra de títulos tem-se a caixa de comandos, o título e os botões de comandos. A janela do Windows Explorer a seguir mostra esta estrutura. Figura 10. A janela do Windows Explorer Os botões de comandos da esquerda para direita são: Botão Minimizar – Minimiza uma janela colocando à disposição na barra de tarefas. Botão Maximizar – Maximiza uma janela colocando-a sob toda a tela do computador. Botão Restaurar – Este botão faz com que a janela volte a ter o seu tamanho normal. Botão Fechar – Fecha as aplicações e ou programas que essas janelas representam. 4.3. Os componentes do Windows Explorer Menu de Opções – Contém as opções de ferramentas para executar todos os procedimentos necessários para a edição, formatação, criação, etc... de um arquivo ou documento dentro da sua respectiva janela. Barra de Navegação – Possui os comandos para a navegação entre os programas e pastas. Por exemplo: voltar, avançar, acima, localizar, pastas, exibir. Barra de Endereços – Essa barra indica qual localização do arquivo, pasta ou programa dentro do HD. Barra de Status – Situada na parte inferior da janela mostra detalhes do componente selecionado como, por exemplo, tamanho que ocupa o disco. Botões da Barra de Navegação: 5. Componentes do Sistema Como já foi dito, a arquitetura do Windows XP é sistema de módulos em camadas. O HAL, o kernel e o executivo são as principais camadas e operam no modo protegido. Vários subsistemas e serviços executam no modo usuário. Os subsistemas no modo usuário compreendem o de ambiente, que simulam diferentes sistemas operacionais e, os subsistemas de proteção oferecendo funções de segurança. 5.1. Camada de Abstração do hardware A HAL confere portabilidade ao Windows XP, como já foi visto antes. Ele faz isso escondendo as diferenças de hardware dos níveis superiores do sistema operacional. A HAL exporta uma interface de máquina virtual usada pelo despachante do kernel, pelo executivo e pelos drivers de dispositivo. Esta técnica necessita de só uma versão de cada driver de dispositivo, ele executa em todas as plataformas do hardware sem portar o código do driver. A HAL oferece suporte para multiprocessamento simétrico. Os drivers de dispositivos mapeiam dispositivos e os acessam diretamente, mas os detalhes administrativos são fornecidos pelas interfaces da HAL. 5.2. Kernel O Kernel do Windows XP tem como funções principais o escalonamento de threads, tratamento de interrupção e exceção, sincronismo de baixo nível do processador e recuperação após uma falta de energia. Permanece sempre na memória, e sua execução nunca é preemptada. Ele oferece base para o executivo e os subsistemas. O Kernel é orientado a objeto. Um tipo de objeto é um tipo de dados definido pelo sistema que possui valores de dados conhecidos como atributos e um conjunto de métodos. O objeto é uma instância de um tipo objeto. O Kernel usa objetos do Kernel, que tem atributos com dados do Kernel, e seus métodos realizam atividades do Kernel. 5.2.1. Despachante do Kernel O despachante do Kernel serve ao executivo e os subsistemas. A maior parte do despachante nunca é paginada para fora da memória, e sua execução nunca é preemptada. Ele realiza o escalonamento de threads, implementação de primitiva de sincronismo, gerenciador de temporizador, interrupções de software e despacho de exceção. 5.2.2. Threads No Windows XP, uma aplicação é executada como um processo separado. Cada processo pode conter uma ou mais threads. No Windows XP é utilizado o mapeamento um-para-um, no qual cada thread de nível de usuário é associada a um thread de Kernel. Ele também dá suporte para uma biblioteca fiber, que permite funcionalidades de muitos-para-muitos. Cada thread pertencente a um processo pode acessar o espaço de endereços virtuais do processo. Os componentes gerais de um thread são uma ID de thread (que garante a exclusividade na identificação). Conjunto de processadores que mostram o status do processador. Uma pilha do usuário, que é usada quando o thread está no modo usuário. No modo Kernel, cada thread também possui uma pilha, só que de Kernel. Área de armazenamento privada. O conjunto de registradores, pilhas e áreas de armazenamento privado são conhecidos como contexto do thread. O thread possui estruturas de dados, as principais são a ETHREAD que é bloco de thread do executivo, a KTHREAD bloco de thread do Kernel e o TEB bloco de ambiente do thread. 5.2.3. Escalonamento Os threads possuem estados de escalonamento que são: pronto, standby, executando, esperando, transição, terminado. Pronto indica esperando para executar. A thread pronta de prioridade mais alta é levada para um estado de standby, que a coloca na posição de ser a próxima para execução. Num sistema multiprocessado, cada processo tem um thread em stanby. Um thread está em estado executando, quando esta sendo trabalhada no processador. Ele executa até ser preemptada por um thread de prioridade mais alta, terminar sua execução, seu tempo de execução alocado (quantum) terminar ou ser bloqueada sobre um objeto despachante. O thread está esperando quando estiver esperando um objeto despachante sinalizar. Ela está em transição, quando espera por recursos necessários para finalizar e o estado Terminando quando termina a execução. O escalonamento de threads no Windows XP ocorre com prioridade, é preemptivo. Ele garante que a thread de maior prioridade sempre será executada. A parte do Kernel que trata do escalonamento é chamada despachante. Se um thread de tempo real fica pronta enquanto uma de menor prioridade está executando, o thread de menor prioridade será interrompida. Essa preempção permite que o thread de tempo real use a CPU quando necessitar. Mas o Windows XP não é um sistema de tempo real rígido, pois não garante que um thread de tempo real será executado dentro de um limite de tempo. Para determinar a ordem de execução, o despachante usa 32 níveis de prioridade. Existem as prioridades de classe variável com valores de 1 a 15, e a classe de tempo real com valores de 16 a 31. Há um thread de prioridade 0, usada para gerenciamento de memória. Existe uma fila para cada prioridade de escalonamento, e o despachante procura nas filas um thread pronto para execução, desde as mais altas para as mais baixas. /se não for encontrada nenhuma, o despachante executará um thread ocioso. A API Win32 identifica várias classes de prioridade as quais um processo pode pertencer. Dentro de cada classe de prioridade existe uma prioridade relativa. Quando um quantum de tempo termina, o thread é interrompida, e se ela estiver na classe de prioridade variável, sua prioridade é reduzida. Mas ela nunca é reduzida para menos que a prioridade básica. Uma propriedade importante para threads interativas, quando uma de prioridade variável é liberada da operação de espera, o despachante aumenta a sua prioridade. O aumento depende do que o thread estava esperando. Num programa interativo que precisa de bom desempenho o Windows XP possui uma regra de escalonamento especial. Um processo rodando em primeiro plano, está atualmente na tela, tem um quantum de escalonamento aumentado em algum fator, geralmente 3. E existe outro em segundo plano, que não está selecionado na tela. Fig.3- Mostra exemplo de estados dos threads no Windows XP Interrupção de software Existem duas interrupções de software feitas pelo despachante: as chamadas de procedimento assíncronas e chamadas de procedimento adiadas. As chamadas de procedimento assíncronas (APCs) interrompem uma thread em execução e chamam um procedimento. As APCs são usadas para iniciar uma nova thread, terminar processos e oferecer notificação de que uma E/S assíncrona terminou. As chamadas de procedimento adiadas (DPCs) são usadas para que uma interrupção seja executada posteriormente. A rotina de serviço de interrupção (ISR) escalona o processamento dos processos de interrupção dos dispositivos em blocos que foram tratados, fazendo fila DPC. O despachante dá uma prioridade mais baixa para interrupção de software do que para a interrupção de dispositivos, para que as DPCs não bloqueiem outras ISRs. 5.2.5. Exceções e interrupções O despachante do Kernel oferece tratamento de interceptação para exceções e interrupções de hardware ou software. As exceções independentes da arquitetura: violação de acesso à memória, overflow de inteiros, overflow e underflow de ponto flutuante, divisão de inteiro por zero, divisão de ponto flutuante por zero, instrução ilegal, falta de alinhamento de dados, instrução privilegiada, erro de leitura de página, violação de acesso, cota de arquivo de página ultrapassada, ponto de interrupção do depurador e execução passo a passo do depurador. Tratadores de interrupções tratam das simple, enquanto o tratamento mais desenvolvido é realizado pelo despachante do Kernel. Uma exceção no modo Kernel faz o despachante de exceção chamar uma rotina para localizar o tratador. Se nenhum tratador é encontrado, o usuário recebe tela azul significando falha do sistema. No modo usuário o tratamento de exceção é mais complexo, porque o subsitema ambiente configura uma porta de depurador e uma porta de exceção para cada processo criado. Se o tratamento não funcionar, o Kernel termina o processo que tem a thread que causou exceção. Existem 32 níveis de requisição de interrupção (IRQLs) no Windows XP. Oito são usadas pelo Kernel, e 24 para interrupções de hardware por meio do HAL (4.1). O Kernel utiliza uma tabela de despacho de interrupção para vincular cada nível de interrupção a uma rotina de serviço. 5.3 Executivo Os subsistemas de ambiente utilizam os serviços do executivo. Os serviços são agrupados em: gerenciador de objetos, gerenciador de memória virtual, gerenciador de processos, facilidade de chamada de procedimento local, gerenciador de E/S, monitor de referência de segurança, gerenciador de plug and play e segurança, registro e inicialização. 5.3.1 Gerenciador de Objetos Objeto são entidades do modo Kernel que são manipulados pelos programas no modo usuário. A parte do executivo que manipula os objetos é o gerenciador de objetos. Os objetos são gerenciados por contadores de referência de códigos do modo protegido e descritores no modo usuário. Mas alguns componentes do kernel usam as mesmas APIS que o código no modo usuário. Os processos têm tabelas de objetos que rastreiam os objetos usados pelos processos. Alguns objetos são semáforos, mutex, eventos, processos e threads. O gerenciador de objetos mantém o espaço de nomes internos do Windows XP. Ele utiliza um espaço de nomes abstratos e conecta os sistemas de arquivos como dispositivos. Os objetos são manipulados por um conjunto de funções virtuais com implementação fornecidas para cada tipo de objeto: create, open, close, delete, query name, parse e security. A tarefa do gerenciador de objetos é supervisionar o uso dos objetos. No Windows XP, o objeto é protegido por uma lista de controle de acesso que tem ids de segurança e controle de acessos concedidos. 5.3.2 Gerenciador de Memória Virtual O gerenciador de memória virtual ( Virtual Memory – VM ) é responsável por gerenciar o espaço de endereços virtuais, alocação de memória física e a paginação. Quando se projeta o gerenciador de memória virtual leva-se em consideração que o hardware que está na camada abaixo dá suporte necessário. O Gerenciador VM no XP pode funcionar com páginas de 4KB se o processador for compatível IA32, caso seja compatível com IA64, a página é de 8KB. Se o processador é IA32 o espaço de endereços virtual é de 4GB, divididas em duas partes de 2GB. Na primeira parte é usado o modo kernel para acessar códigos e estrutura de dados do sistema operacional. Esta primeira parte é parecida para todos os processos, as diferenças da região do modo kernel são o auto-mapa de tabela de página, o hiperespaço e o espaço de sessão. Os outros 2GB são próprios de cada processo, e podem ser acessadas por threads do modo usuário e do modo kernel. Existem configurações do Windows XP que separam 1GB para o espaço de kernel só e 3GB para espaço de endereço. Isto diminui o caching de dados do kernel, mas pode ser bom para grandes aplicações que gerenciam sua I/O. O gerenciador de memória virtual do Windows XP primeiro reserva parte do espaço de endereços virtual do processo, e depois compromete a alocação de memória física ou espaço de arquivo de paginação. A quantidade de espaço de memória virtual cedida a um processo é limitada, sendo esta a memória comprometida. Quando um processo deixa de usar o espaço, ele deve descomprometê-lo, permitindo que outros processos a usem. Um processo privilegiado pode fazer locks de páginas, com permissão do só, impedindo que elas sejam enviadas para arquivos de paginação. Processadores IA32 podem fazer extensão de endereço físico ( PAE – Physical Address Extension ), fazendo com que o sistema tenha até 64GB de memória física. Para que este espaço de memória possa ser usado, a memória física é primeiro alocada e depois é feita associação de regiões de endereços virtuais através das APIs de extensão de janelas de endereços ( AWE – Address Windowing Extension ). A memória compartilhada ocorre com a definição de um objeto de seção. Os processos usam descritores para objetos de seção, associando a parte da memória que precisam ao seu espaço de endereço. Se uma seção aparece no mesmo espaço de endereço para todos os processos que tentam fazer acesso, ela é chamada de baseada. A proteção de memória das páginas na seção pode ser leitura, leitura-escrita, leitura-escrita-execuçao, somente execução, nenhum acesso, ou cópia na escrita. Quando não é usada extensão de endereços físicos, um processo tem diretório de páginas com 1024 entradas de diretório de páginas ( PDEs – Page-directory Entries ) com comprimento de 4 bytes. Cada entrada de diretório de páginas, aponta para uma tabela de páginas que também possui 1024 entradas de páginas ( PTE – Page-Table Entries ) com 4 bytes. Uma estrada de tabela de página aponta para um quadro de página de 4KB na memória física. Isto foi descrito para processador IA32 sem extensão de endereço físico. Então, no Windows XP, traduz-se endereços através de tabelas de páginas multiníveis. O tamanho total para todas as tabelas de páginas de um processo é de 4MB. Em processadores compatíveis com IA32, com extensão de tabela de página desativada, o endereço de memória virtual de 32 bits é dividido em três partes. Os primeiros 10 são índices para diretório de páginas. Os 10 bits seguintes são usados pela unidade de gerência de memória ( MMU – Memory Management Unit ) paar selecionar uma entrada de tabela de página. A entrada de tabela de página indica um quadro de página na memória física e, com os últimos 12 bits, tem-se um deslocamento dentro do quadro de página. Já para o caso de processadores IA32 com extensão de endereços ativos, são usadas PDE e PTE com 64 bits. Neste modo, tem-se 4GB de espaço de endereços virtual, o que exige um nível extra de diretório de páginas, com 4 PDE. Os processadores utilizam um Translation Look-aside Buffer ( TLB), que contém um cache de memória associativo para mapear páginas virtuais à PTEs, para reduzir o custo de pesquisa à PDE e PTE. Nos processadores IA64, as páginas possuem 8KB de tamanho. A parte de usuário do espaço de endereço vitual do processo para Windows XP, neste caso, é 6TB. As páginas podem apresentar estados, que são: Válida – página em uso por processo ativo Livre – página que não está referenciada em um PTE. Zerada – é página livre que foi zerada e está pronta para uso imediato para satisfazer às falhas “zerar por demanda”. As páginas marcadas como “zerar por demanda” são as páginas do arquivo de paginação que nunca faltaram. Modificada – é a que foi modificada por algum processo e precisa ser gravada em disco antes de ser usada por outro processo. Satndby – cópias de informação já armazenada no disco. Defeituosa – não ode ser usada porque houve defeito no hardware. Em transição – está a caminho do disco para um quadro de página alocado na memória física. Quando o bit de página válida indica que a página é inválida, o gerenciador define o formato dos outros bits. Como já havia sido dito, são usados objetos de seção para descrever páginas compartilháveis entre processos. Os objetos de seção têm conjunto de tabelas de página com PTE mestras, os processos têm seu próprio conjunto de tabelas de páginas virtuais. Quando a entrada da tabela de página é válida, o processo acontece como descrito para IA32. Mas se a página compartilhada é inválida, a PTE aponta para o mestre do objeto de seção. Estas tabelas referentes aos objetos de seção se desenvolvem conforme a necessidade. O mecanismo de ter como necessárias as PTEs que descrevem páginas onde tem visão, sendo que a visão é a parte de memória que o processo precisa e associa a seu espaço de endereços, melhora a eficiência de endereços virtuais do Kernel. As páginas físicas compartilhadas marcadas como válidas, não podem ser removidas da memória. Para processos que estão usando mais que seu tamanho mínimo de conjunto de trabalho, o Windows XP usa política de substituição FIFO, para apanhar as páginas. Quando um processo é iniciado, ele recebe como tamanho mínimo padrão de 50 páginas. O Windows XP ajusta o tamanho do conjunto de trabalho de cada processo que está no tamanho mínimo, com do monitoramento de page fault. O gerenciador substitui as páginas de acordo com a contagem dos ciclos aparando as páginas aconteceram sem a PTE. O princípio da localidade é usado para reduzir o número de falhas de páginas, isso porque, quando o gerenciador gera uma falha de página, ele também precisa de páginas adjacentes. 6. Sistemas de arquivos São necessários para organizar os milhões de bits em um disco rígido, a fim de localizar as informações. O disco rígido é como uma bandeja circular que giram ao redor de um eixo cujas zonas concêntricas estão divididas em setores. A organização desses setores permite ao Sistema Operacional criar um sistema de arquivos no disco. O sistema se baseia na criação de “clusters”, que são pequenos grupos de disco com tamanhos variáveis,sendo que um arquivo só pode ocupar um número inteiro de clusters. Se por acaso p arquivo tiver o tamanho de 50GB e for usado 2 cluster de 32GB , haverá um desperdício. O sistema de arquivos de tabela de alocação de arquivos (FAT – File-Allocation Table ) já era usado no MSDOS e continuou sendo no Windows XP. A FAT16 utiliza 16 bits para endereçamento de dados, fazendo dois elevado a 16 para chegar até a sua capacidade máxima de cluster e pode ter tamanho de 32KB e partições de 2G.. Já FAT32 utiliza 32 endereço de dados e utiliza cluster menores, geralmente 4K, diminuindo o desperdício. Para isso, a Microsoft limitou para 2 elevado 32 o número de setores ,sendo estes com espaço 512 bytes,somente. O Windows XP usa o FAT16 para ler disquetes e outras mídias removíveis, já o FAT32 foi importante para interoperabilidade de mídias com sistema Windows 95/98. O FAT16 apresentava problemas que em parte foram resolvidos pelo FAT32. Mas ambos ainda são fracos em comparação com o sistema de arquivos NTFS. Para evitar o problema do desperdício de espaço foi adotado o NTFS o qual usa volume, que é criado pelo utilitário de gerenciamento de disco lógico do Windows XP. O NTFS utiliza cluster, que é uma série de setores cuja quantidade é uma potência de 2 e além disso possui endereço lógico de 64 bits para endereço de dados. Uma vantagem do NTFS sobre o FAT de 16 bits é que o que o tamanho de seu cluster é muito menor que o usado pelo FAT, o que reduz a quantidade de fragmentação interna. Para o cluster padrão, o tamanho é o do setor para volume de até 512 MB, 1KB para volume de até 1GB, 2KB para volumes de até 2GB e 4KB para volumes maiores. Mostra ilustrações de comparação de alocação de um FAT para um NTFS. Tabela de sistemas operacionais com seus respectivos sistemas de arquivos. Além disso, o NTFS usa o journaling, registro no diário, para recuperar erros com maior eficiência. Primeiro é necessário alocar espaço no disco depois os dados são escritos os discos como clusters dos setores, depois os dados são atualizados para refletir a localização no disco, a data de criação, o tamanho do arquivo, o dono, as permissões. O problema é na ausência de energia ou se o sistema travar antes a conclusão de um processo, o espaço alocado e gravado, mas não atualizado. Então, o jornauling evita esses problemas através de atualizações no log $LOGFILE antes de serem gravadas no sistema de arquivos. O primeiro ato da gravação é ativar o bit incorreto de volume. Cada operação de aumento de volume é armazenada no $LOGFILE e separada por “checkpoint” e processada pelo serviço de log o que cria REDO e UNDO. 7. Conclusões. O Windows XP, que é um sistema operacional amplamente difundido entre os usuários de computador do mundo todo, é multiusuário, ou seja, permite acesso simultâneo de múltiplos usuários ao computador. Foram apresentados itens como aplicações, segurança e portabilidade que é a capacidade de ser movido de uma arquitetura de hardware para outra com poucas alterações. Os componentes do sistema têm parte fundamental neste trabalho. Maiores informações sobre o Kernel do sistema são dadas. Pronto, standby, executando, esperando, transição e terminado são estados do thread de escalonamento. Também foi pesquisado sobre memória e os processadores. O gerenciador de memória virtual ( Virtual Memory – VM ) é responsável por gerenciar o espaço de endereços virtuais, alocação de memória física e a paginação. O gerenciador de memória virtual do Windows XP primeiro reserva parte do espaço de endereços virtual do processo, e depois compromete a alocação de memória física ou espaço de arquivo de paginação Os sistemas de arquivos são necessários para organizar os milhões de bits em um disco rígido, a fim de localizar as informações.O sistema se baseia na criação de “clusters”, que são pequenos grupos de disco com tamanhos variáveis.Uma vantagem do NTFS sobre o FAT de 16 bits (sistema de arquivos de tabela de alocação de arquivos) é que o que o tamanho de seu cluster é muito menor que o usado pelo FAT, o que reduz a quantidade de fragmentação interna 8. Bibliografia Livro: Sistemas Operacionais com Java, Silberschatz - Galvin - Gagne http://www.facensa.com.br/ http://windows.microsoft.com/ http://www.tecmundo.com.br/