Todos os processadores a partir do 386 fazem multitarefa automaticamente quando estão em modo protegido. Para isto, no entanto, é necessário que cada aplicativo esteja protegido em memória, ou seja, isolado em sua própria área na memória.
Mais uma vez por motivos de compatibilidade, o Windows 3.x não protege seus aplicativos em memória. Para o processador, há uma única área sendo utilizada pelo Windows e seus aplicativos; não há divisão. Logo concluímos que não pode existir multitarefa nesse ambiente.
A Microsoft, porém, queria porque queria que o Windows 3.x fosse multitarefa. Como o processador não poderia comandar a multitarefa (já que os programas não estavam protegidos em memória), a solução encontrada foi fazer com que os próprios aplicativos a controlassem, criando o termo multitarefa cooperativa. Neste caso, o próprio aplicativo é quem comandará a alternância para o próximo aplicativo da lista de tarefas. Se o aplicativo simplesmente "empacar" ou demorar para chavear para o próximo aplicativo, a "multitarefa" pára. O que é extremamente comum de ocorrer (Quem nunca tentou imprimir um documento grande? A impressão empaca se a proteção de tela entrar em ação ou você tentar abrir um outro aplicativo. Estes são sintomas típicos da multitarefa cooperativa).
Um sistema operacional decente deve ter uma multitarefa que funcione. E, para isto, necessitará que seus aplicativos sejam protegidos em memória. A vantagem de um aplicativo protegido em memória não está só no fato dele usufruir a verdadeira multitarefa - chamada multitarefa preemptiva. Estando protegido em memória, um aplicativo está isolado dos demais. Caso ocorra algum problema neste aplicativo, o próprio processador é capaz de reportar esta condição ao sistema operacional, que trata de remover o aplicativo integralmente da memória. O sistema operacional torna-se mais seguro. No modelo utilizado pelo Windows 3.x, onde não há proteção de memória, um programa facilmente invade a área ocupada por outro programa, ocasionando o temível erro de Falha Geral de Proteção, o GPF - o que normalmente obriga ao usuário a sair do Windows e chamá-lo novamente, de modo a "limpar" a memória.
Ao contrário do Windows 3.x, o Windows 95 protege seus aplicativos em memória, o que, além de torná-lo menos propenso a erros de GPF, permite a utilização da verdadeira multitarefa, a multitarefa preemptiva.
Porém nem tudo é um mar de rosas. O esquema de proteção de memória do Windows 95 só funciona para aplicativos escritos para o Windows 95 ("aplicativos de 32 bits"). Aplicativos escritos para Windows 3.x ("aplicativos de 16 bits") não são protegidos em memória no Windows 95. Por este motivo, enfatizamos: evite utilizar aplicativos escritos para Windows 3.x - tais como o Word 6, Excel 5 e Access 2 - no Windows 95. Dê preferência aos aplicativos escritos para o Windows 95 ("aplicativos de 32 bits").
Se aplicativos de 16 bits forem executados no Windows 95, dois grande problemas ocorrem. O primeiro, evidentemente, é a fragilidade do sistema. Sem proteção de memória erros de Falha Geral de Proteção são muito mais freqüentes. O segundo grande problema é a não existência da multitarefa. Como os aplicativos de 16 bits foram escritos não tendo em vista a multitarefa preemptiva mas sim a cooperativa, o Windows 95 entra numa espécie de "modo de compatibilidade" para conseguir executar esses aplicativos. O Windows 95 se transforma, "por debaixo dos panos", em Windows 3.11, o que faz com que toda a multitarefa pare, mesmo que você tenha uma porção de aplicativos de 32 bits sendo executados e apenas um aplicativo de 16 bits.
Em outras palavras, o esquema de multitarefa do Windows 95 só funciona se você estiver executando exclusivamente aplicativos escritos para Windows 95 ("aplicativos de 32 bits"). Basta abrir um único aplicativo escrito para Windows 3.x ("aplicativo de 16 bits") que o esquema de multitarefa passa de preemptiva para cooperativa, transformando o Windows 95 em um Windows 3.11 "de luxo", não importando a quantidade de aplicativos de 32 bits que estejam abertos. |