O Sistema Operacional OS/2

       

O OS/2 possui alguns anos de vantagem sobre o Windows NT, o que tem contribuído para uma grande funcionalidade e estabilidade do sistema operacional básico. Como resultado, as diferenças no novo OS/2 Warp 4.0 estão mais relacionadas aos grandes aprimoramentos na facilidade de uso e às novas funcionalidades do que às alterações efetuadas no Kernel e já aprovadas.

Devido a época em que foi criado - predominava a arquitetura Intel - os projetistas do OS/2 enfocaram o desempenho na arquitetura Intel em vez da fácil portabilidade para outro hardware. Como resultado, não há nenhum microkernel subjacente ou camada de abstração do hardware tratando a interface entre o sistema operacional e o hardware, [PRO96].

A principal desvantagem da herança do OS/2 é que a plataforma foi escrita como um sistema operacional de 16 bits na época do processador 80286. Mas desde o lançamento do OS/2 2.0 há cinco anos, a IBM vem substituindo continuamente o código de 16 bits no kernel por código de 32 bits, sempre que possível, e agora não restou quase nenhum. Certamente não é possível converter todo o OS/2 para o modelo de 32 bits.

Para manter a compatibilidade com aplicativos mais antigos, a IBM ainda reconhece as APIs de 16 bits. O desempenho dos aplicativos de 16 bits, OS/2 ou Windows, é na realidade pior em um sistema operacional de 32 bits devido às conversões que precisam ser feitas. Os endereços de 16 bits que eles utilizam devem ser traduzidos em endereços de 32 bits, em um processo chamado "thunking", que leva tempo. Isto é digno de nota, pois os sistemas de arquivo e os drivers de dispositivo do OS/2 Warp 4.0 ainda possuem código de 16 bits, [PRO96].

Um sistema operacional é essencialmente o produto de uma série de decisões de projeto. Prioridades como desempenho, estabilidade, portabilidade e reconhecimento de aplicativos determinaram os recursos do OS/2 Warp 4.0 e produziram um sistema operacional multitarefa, preemptivo, repleto de funções e estável, capaz de ser executado de forma aceitável em um 486 com 12 MB. Contudo , 16 MB é um pouco mais razoável e serão necessários 24MB e um Pentium/90 para comandos de voz.

O OS/2 (Operating System/2) é um sistema operacional de 32 bits inicialmente projetado para microcomputadores e desenvolvido pela IBM. É um sistema operacional que pode ser utilizado em qualquer computador com processador 386 DX ou superior e que finalmente aproveita a capacidade de trabalhar com registradores de 32 bits desses equipamentos.

Ele executa programas OS/2 (32 bits), DOS e Windows (16 bits) e dispõe de recursos como multitarefa preemptiva e multithreading.

 

Multitarefa e Multithreading

Existem dois tipos básicos de multitarefa nos sistemas operacionais para microcomputadores: multitarefa cooperativa e multitarefa preemptiva.

Na multitarefa cooperativa, o sistema operacional aguarda que a tarefa que está sendo executada libere o processamento para poder passar ao próximo programa em execução. Já na multitarefa preemptiva, quando acaba a fatia de tempo estabelecida para a tarefa em execução o sistema operacional passa para a próxima tarefa, não importando o procedimento que estiver sendo executado.

Multithreading poderia ser definido como uma multitarefa dentro da aplicação: um software pode executar mais de uma tarefa ao mesmo tempo. Para isso, ele envia ao sistema operacional um conjunto de instruções a serem executadas, o que é chamado de thread. Assim, o aplicativo pode até mesmo ser encerrado pois o thread continuará sendo executado pelo sistema operacional.

Acesso à Memória

O sistema operacional DOS foi projetado originalmente para gerenciar apenas 640 Kbytes de memória RAM, utilizando-se de uma combinação de registradores de 16 bits. Posteriormente, com a necessidade de maior quantidade de memória para os programas que iam surgindo, foram desenvolvidas expansões de memória.

Para acessar essa memória foi desenvolvido um pequeno programa (um device driver) de apoio ao sistema operacional, que é carregado logo após a inicialização do micro. Esse programa permite que o DOS reconheça a memória "estendida" (XMS) e possa utilizar-se dela para o armazenamento de dados. Porém, os programas não podem ser executados nessa área da memória, devido à incapacidade de endereçamento causado pelos registradores de 16 bits.(1)

O sistema operacional OS/2 utiliza-se de registradores de 32 bits para realizar suas operações. Portanto, pode endereçar mais do que 640 Kbytes para a execução de programas. Ao invés de separar a memória em memória base e memória estendida, ele utiliza a memória como um todo, o que é chamado de memória planar. Pode-se dizer que a memória toda é a memória base.

Além da memória física da máquina, o sistema operacional disponibiliza uma memória virtual, de acordo com a necessidade dos programas que estiverem sendo executados. Por exemplo, se for definida uma sessão DOS com 12 Mb de RAM e o computador só tiver 8 Mb de memória física, o OS/2 irá emular a memória necessária pela sessão. Ou seja, a sessão DOS em execução "enxergará" uma memória estendida de 12 Mb e o sistema operacional OS/2 fará com que parte desses 12 Mb fique armazenado em um arquivo em disco enquanto não estiver sendo utilizado. Esse arquivo é chamado de arquivo de swap, porque o conteúdo da memória é trocado com o conteúdo desse arquivo de acordo com a necessidade do sistema.

Acesso a Disco

O OS/2 reconhece perfeitamente o padrão FAT de formatação que o DOS utiliza. Pode-se perfeitamente instalar o OS/2 por cima do DOS sem ter que reformatar o disco rígido.

Além do padrão FAT, o OS/2 tem um padrão de formatação próprio chamado HPFS (High Performance File System, ou Sistema de Arquivos de Alta Performance). Como o próprio nome indica, esse sistema de arquivos acelera consideravelmente o acesso a disco. Isso porque sua estrutura é bem diferente do padrão FAT do DOS.

No DOS, quando carregamos um arquivo para a memória, o que ocorre é o seguinte (simplificadamente):

1) Fornecemos o nome do arquivo ao DOS;

2) O DOS busca o nome do arquivo no diretório. Entre outras informações, o diretório contém o número do primeiro setor onde o arquivo está localizado.

3) O sistema operacional lê o primeiro setor do arquivo.

4) O DOS busca então na FAT (File Allocation Table) o registro correspondente a esse setor. Nesse registro ele obtém a localização do próximo setor do arquivo, ou um código que indique que o arquivo terminou. Caso não tenha terminado, com base no número do setor encontrado o DOS volta à operação 3.

Já no HPFS, ese processo é encurtado:

1) Fornecemos o nome do arquivo ao OS/2;

2) O OS/2 busca o nome do arquivo no diretório HPFS. Entre outras informações, o diretório contém o número do primeiro e também do último setor onde o arquivo está localizado.

3) O sistema operacional lê o arquivo todo, já que dispõe do número do primeiro e último setor.

Isso se torna possível pelo fato do HPFS ser um sistema onde os arquivos não são fragmentados. No sistema FAT, quando um arquivo vai ser gravado, ele é gravado no primeiro espaço livre no disco rígido. Se esse espaço for menor que o arquivo a ser gravado, um pedaço dele é gravado nesse espaço e o resto é gravado em outra parte do disco. No HPFS, quando um arquivo não cabe no primeiro espaço livre encontrado, o sistema operacional procura outro lugar no qual o arquivo caiba inteiro.

Um outro ponto que contribui para o ganho de performance no HPFS é que os setores de controle não ficam no começo do disco, como no DOS, mas no meio dele, como em diversos sistemas para computadores de maior porte.

Interface Gráfica Orientada a Objeto

A Workplace Shell é uma interface gráfica verdadeiramente orientada a objeto. O sistema de orientação a objetos utilizado pelo OS/2, o SOM (System Object Model), fornece uma completa interação entre os objetos. Desse modo que operações simples como arrastar um diretório inteiro para dentro de outro (o chamado drag and drop), não irá invalidar as associações dos objetos que os compõe.

O SOM também permite que aplicações manipulem totalmente a interface da Workplace Shell. Um bom exemplo é o cc:Mail for OS/2 (um software de gerenciamente de correio eletrônico), o qual utiliza o SOM para integrar sua interface de caixa postal com o ambiente de trabalho da WorkPlace Shell.

"Crash Protection"

O Sistema Operacional OS/2 roda perfeitamente programas DOS e Windows (além dos programas construídos em OS/2 nativo). Cada sessão executa em uma VDM (Virtual DOS Machine) separada e é isso que garante a Crash Protection: se um programa travar, executar uma instrução inválida ou tentar forçar acesso a uma área da memória não autorizada pelo sistema operacional, apenas a sessão na qual ele estiver sendo executado será afetada.

Execução de programas DOS

O OS/2 elimina a necessidade do sistema operacional DOS. Suas VDMs são completamente configuráveis, permitindo que você crie arquivos CONFIG.SYS e AUTOEXEC.BAT diferentes para cada sessão DOS. Isso é particularmente útil quando um determinado software necessita de device drivers ou TSRs(2) específicos. Além disso, você pode configurar a memória XMS ou EMS(3) disponível para cada sessão.

As VDMs do OS/2 são altamente compatíveis com os programas DOS e podem também ser configuradas para permitir acesso direto ao hardware para aplicações que o requeiram. E se uma aplicação realmente se recusar a rodar sob o OS/2(4) , é possível utilizar a opção de "dual boot" para rodar o sistema operacional DOS real.(5)

(4) O OS/2 não permite que programas acessem áreas da memória não disponibilizadas pelo sistema operacional: o processamento é interrompido ao ser detectada uma instrução ilegal. Isto ocorre raramente e quando ocorre é geralmente em programas que utilizam modo protegido de acesso à memória no DOS (DPMI). Normalmente esses softwres utilizam um programa chamado DOS4GW como plataforma e complemento ao sistema operacional, melhorando a performance sob o DOS (fazendo acesso à memória em 32 bits). No OS/2 Warp, essa incompatibilidade foi sensivelmente melhorada.

(5) Ao instalar o OS/2 são oferecidas algumas opções de configuração. Em todas elas é possível "bootar" (reinicializar) o micro com o sistema operacional DOS, ignorando o OS/2. OBS.: Para isso é necessário ter o DOS instalado na máquina.

Execução de programas Windows

Como no caso dos programas DOS, o OS/2 elimina o problema de estabilidade de uma única máquina virtual deixando programas Windows em sessões (ou VDMs) separadas. Como alternativa, é possível executar programas Windows em uma única VDM, com o motivo único de acelerar o carregamento do programa (uma vez que o código do Windows já estará carregado para aquela sessão). Porém, em se tratando de uma única VDM, um problema de execução em uma janela Windows (como um GPF, por exemplo), poderá afetar os demais programas executados na mesma VDM.

O ambiente Windows dentro do OS/2 (WIN-OS/2), continua altamente compatível com as aplicações e device drivers do Windows 3.1, uma vez que muito do código base original do Windows 3.1 foi mantido.