ARQUITECTURA DO WINDOWS
MS DOS No sistema operativo MS-DOS, a BIOS (Basic Input Output System), disponibilizava os drivers para o hardware por meio de: Interrupções de software O próprio MS-DOS exportava serviços por meio de interrupções de software
WINDOWS 3.X O MS-DOS era executado no 8088 ou nos processadores que lhe sucederam em modo REAL. O Windows 3.x surgiu como uma interface gráfica para o DOS. Quando se executava o Windows o PC funcionava em modo ROTEGIDO, quando se saia e volta ao DOS retornava ao modo REAL.
WINDOWS 3.X O Windows passou a dispor de device-drivers em modo protegido, capazes de manipular interrupções de I/O Estes drivers localizavam-se na directoria windows\system, e possuíam a extensão.drv Semelhantes no funcionamento as DLL e serviam para fazer de interface entre o hardware e o Kernel do windows sem nunca abandonar o modo protegido
WINDOWS 3.X Maquina Virtual Com os processadores de 32 bits (80386) foi possível aperfeiçoar o conceito de multi-tarefa, melhorando o conceito de maquina virtual Para uma aplicação a Máquina Virtual (VM), oferece a ilusão de um computador completo.
WINDOWS 3.X No entanto o Windows continuava a usar o DOS e a BIOS para as operações de I/O em disco e arquivos No Windows 3.0 o sistema operativo comutava para o modo virtual 8086 sempre que havia necessidade de operações de I/O. O Windows forçava as aplicações a esperarem em fila única para os serviços do modo real
WINDOWS 95/2000 Diferente das versões anteriores requer um processador de 32 bits Oferece vários níveis de privilégios para os programas em execução Os componentes do sistema operativo que formam o Kernel do sistemasão executados como maior nível de previlégio, é o ring zero ou anel zero
WINDOWS 95/2000 No nível zero um programa pode aceder a qualquer posição de memória ou de I/O e pode executar qualquer instrução Ao código que corre no nível zero é denominado de código supervisor Os programas ou aplicações para windows são executado no nível de menor previlégio ou seja anel 3
WINDOWS 95/2000 No nível 3 o sistema operativo disponibiliza as aplicações mecanismos para controle de acesso à memória as portas I/O, de modo a se proteger das aplicações Quando uma aplicação tenta realizar uma operação que o seu nível não permite o processador interrompe o programa e gera uma excepção que é tratada pelo sistema operativo.
MÁQUINAS VIRTUAIS Para compatibilizar o Windows com as aplicações DOS, permitindo a execução das aplicações DOS dentro do Windows. O problema que vem do dos é que são aplicações mono-tarefa e monoutilizador Para permitir a partilha de recursos o Windows implementou as máquinas virtuais
MÁQUINAS VIRTUAIS Uma VM é um conjunto de recursos de hardware e software que reage aos programas da mesma maneira que um máquina real com teclado, video, rato, O hardware emulado por uma VM, inclui: Espaço de endereçamento I/O Espaço de memória Interrupções do controlador PIC Registos do processador
MÁQUINAS VIRTUAIS Numa VM o acesso ao hardware é interceptado, através de excepções pelo Windows A gestão das VM usa as características do processador para a gestão e criação das VMs, como sejam: Tradução de endereços Intercepção de instruções I/O Comutação de tarefas
MÁQUINAS VIRTUAIS Quando um processo, dentro de uma VM faz uma acessos a portos I/O, o processador intercepta este acesso e transfere para o WMM O WMM pode impedir o acesso a algumas região da memória ou a portas I/O ou redireccionar o acesso para outra região de memória ou para um VxD Cada VM tem a sua própria porta I/O e o seu espaço de memória
MÁQUINAS VIRTUAIS Cada VM pode ter o seu próprio controlador de interrupções No caso de um interrupção por software um device-driver virtual (VxD) traduz a chamada à interrupção no modo protegido para uma chamada à tabela de vectores de interrupção em modo real
MÁQUINAS VIRTUAIS Hardware virtual Software que atende os pedidos de in e out executadas pela VM tal como o circuito fisico o faria O VMM cria várias VMs independentes. A VM do sistema é partilhada por todas as aplicações Windows de 16 ou 32 bits, enquanto que cada aplicativo DOS tem a sua VM.
MÁQUINAS VIRTUAIS O VMM partilha a execução das varias aplicações em execução com o processador.
MÁQUINAS VIRTUAIS Conceito de THREAD Um thread consiste numa sequencia de instruções do estado do processador e de quaisquer recursos associados aquela sequencia. Cada programa de DOS tem um Thread Os programas Windows têm inicialmente uma thread, mas podem criar outras concorrentes
MÁQUINAS VIRTUAIS A VM do sistema tem varias threads em execução A VM de um programa DOS apenas tem uma thread Cabe à VMM escolher qual a thread a executar