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: zInterrupções de software O próprio MS-DOS exportava serviços por meio de interrupções de software WINDOWS 3.X zO MS-DOS era executado no 8088 ou nos processadores que lhe sucederam em modo REAL. z O Windows 3.x surgiu como uma interface gráfica para o DOS. z 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 z z z 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 z Maquina Virtual z Com os processadores de 32 bits (80386) foi possível aperfeiçoar o conceito de multi-tarefa, melhorando o conceito de maquina virtual z Para uma aplicação a Máquina Virtual (VM), oferece a ilusão de um computador completo. WINDOWS 3.X z z z 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 z Diferente das versões anteriores requer um processador de 32 bits z Oferece vários níveis de privilégios para os programas em execução z 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 z 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 z Ao código que corre no nível zero é denominado de código supervisor z Os programas ou aplicações para windows são executado no nível de menor previlégio ou seja anel 3 WINDOWS 95/2000 z z 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 z Para compatibilizar o Windows com as aplicações DOS, permitindo a execução das aplicações DOS dentro do Windows. z O problema que vem do dos é que são aplicações mono-tarefa e monoutilizador z Para permitir a partilha de recursos o Windows implementou as máquinas virtuais MÁQUINAS VIRTUAIS z 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, … z O hardware emulado por uma VM, inclui: Espaço de endereçamento I/O z Espaço de memória z Interrupções do controlador PIC z Registos do processador z MÁQUINAS VIRTUAIS z Numa VM o acesso ao hardware é interceptado, através de excepções pelo Windows z 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 z Intercepção de instruções I/O z Comutação de tarefas z MÁQUINAS VIRTUAIS z z z 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 z Cada VM pode ter o seu próprio controlador de interrupções z 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 z Hardware virtual – Software que atende os pedidos de in e out executadas pela VM tal como o circuito fisico o faria z 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 zO VMM partilha a execução das varias aplicações em execução com o processador. MÁQUINAS VIRTUAIS z Conceito de THREAD z Um thread consiste numa sequencia de instruções do estado do processador e de quaisquer recursos associados aquela sequencia. z Cada programa de DOS tem um Thread z Os programas Windows têm inicialmente uma thread, mas podem criar outras concorrentes MÁQUINAS VIRTUAIS zA VM do sistema tem varias threads em execução z A VM de um programa DOS apenas tem uma thread z Cabe à VMM escolher qual a thread a executar