uff - universidade federal fluminense

Propaganda
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/
Download