SISTEMAS OPEREATIVOS


O meu trabalho de sistemas operativos


Evolução Histórica

Os primeiros sistemas informáticos dos anos 50 não dispunham de um conjunto de software a que tivesse sentido chamar sistema operativo. Nessa época, a tarefa dominante era a implementação do hardware de a melhorar a precária fiabilidade e aumentar o desempenho. Só quando a fiabilidade o permitiu, se começou a analisar o modo de aumentar o modo de optimizar a utilização da máquina de forma a tornar mais rentável o dispendioso hardware.

Monitor de Controlo

A primeira aproximação caracterizou-se pela realização de um programa utilitário designado por Monitor, que permitia ao utilizador carregar os seus programas em memória, editá-los e verificar a sua execução.

A gestão do sistema era muito simples, consistindo na atribuição a cada utilizador de cotas de tempo da utilização da máquina. Este disponha de todo o sistema para si e, através dos comandos do monitor, executava as operações necessárias. No final da sessão guardava os seus programas e resultados sob a forma de listagens, fitas de papel perfurados ou, nos sistemas mais evoluídos, em fita magnética.

Um monitor típico é composto por um conjunto de rotinas utilitárias que facilitam a interacção ( operação com a máquina ):

Interpretador de uma linguagem de comando que permite fazer executar os restantes módulos.

Compilador.

Tradutor de linguagem simbólica (Assembler).

Editor de ligações ( Linker).

Carregador de programas em memória ( Loader).

Rotinas Utilitárias para controlo de periféricos: consola; leitor de cartões; leitor/perfurador de fita de papel; bandas magnéticas.

É obvia a ineficiência desta gestão. Durante a maior parte do tempo o processador esta inactivo, esperando um comando do utilizador ou efectuando operações de Entrada/Saída ( E/S ). Contudo apesar dos periféricos terem mudado substancialmente, é possível, hoje em dia, encontrar monitores deste tipo em pequenos sistemas de ensino ou computadores domésticos de reduzido custo.

 

 

Tratamento em Lotes ( Batch )

 

O controlo de órgãos mecânicos como impressoras ou leitores/perfuradores de fita de papel é, evidentemente, uma tarefa quando comparada com velocidade de execução do processador. No tipo de gestão atrás descrito, o tempo de execução de um programa é predominantemente determinado pelas suas E/S.

Uma solução para a inadequada utilização da unidade central consistiu em efectuar a recolha dos dados num computador auxiliar onde eram lidos, para uma banda, os cartões dos diversos trabalhos. O operador colocava em seguida a bando no computador central e este executava os programas, produzindo igualmente os ficheiros de saída para outra banda que, por sua vez, era tratada pelo computador mais pequeno para optimizar o tempo de impressão.

Este sistema de tratamento por lotes, dos anos 50, rapidamente evoluiu. Os periféricos começaram a poder executar operações autónomas, avisando o processador do fim da sua execução através do mecanismo de interrupções. A grande evolução resulta da possibilidade de notificar assincronamente o processador de que uma dada operação terminou. As operações de E/S podem prosseguir em paralelo com a execução de um programa que apenas é interrompido para iniciá-las e para tratar da sua terminação [Rosin 69].

Simultaneamente, os periféricos de armazenamento de dados sofreram uma evolução significativa, deixando de ser meros dispositivos sequenciais ( bandas ) para se tornarem verdadeiras memórias secundárias com possibilidade de endereçamento aleatório ( tambores, discos ).

Se considerar-mos o clássico leitor de cartões ligado aos sistema central através de um mecanismo de interrupções, podemos imaginar o seguinte funcionamento: os utilizadores colocam os programas no leitor convenientemente delimitados por cartões que indicam ao sistema as operações a executar. Cada vez que um novo cartão é lido, o leitor interrompe o sistema central desencadeia a execução de uma rotina que lê e transcodifica os caracteres presentes nos cartões e escreve a nova linha num ficheiro mantido na memória secundária. Enquanto o próximo cartão é posto em posição de leitura e lido, o processador central fica novamente livre para continuar a execução do programa em curso.

Quando o programa terminar, o sistema operativo irá consultar os ficheiros de entrada no disco e verificar se existe um novo programa para ser executado. No caso afirmativo, este será carregado, enquanto simultaneamente novos programas podem estar a ser lidos e memorizados no disco.

A impressora necessária à saída dos resultados é outro órgão mecânico que limita a velocidade de execução. De novo se pode utilizar a mesma técnica fazendo que as linhas a serem impressas sejam escritas num ficheiro de saída durante a execução do programa. Quando o programa terminar, o sistema operativo encarregar-se-á de fazer imprimir o ficheiro sob o seu controlo, utilizando obviamente os mecanismos já referidos para controlo assíncrono das E/S.

O sistema anterior permite a introdução de mecanismos de optimização na gestão da máquina, escolhendo o próximo programa a ser executado de acordo com um dado critério de prioridade. Se nos cartões que especificam o trabalho o utilizador tiver de indicar a sua duração máxima, ocupação de recursos, memória necessária etc., pode implementar-se uma política que beneficie os trabalhos mais curtos ou menos exigentes em recursos.

Em paralelo com estes desenvolvimentos, começou a fazer-se sentir a necessidade de tornar eficiente o funcionamento dos compiladores, que começaram a ser largamente utilizados. A comunicação entre compiladores, editores de ligações e programas de carregamento em memória obrigou a estabelecer convenções sobre ficheiros sistema e periféricos virtuais. Datam dessa época algumas convenções que ainda utilizamos nos sistemas actuais.

Multiprogramação

Os sistemas anteriores só se tornaram possíveis através da utilização dos mecanismos de interrupção que permitem multiplexar o processador entre diversas actividades executadas concorrentemente. As actividades concorrentes não tem que se restringir apenas a um programa e a tarefas de E/S, podendo facilmente pensar-se na existência simultânea de vários programas utilizadores em memória.

A execução concorrente de vários programas permite optimizar a utilização da unidade central. Como exemplo, consideremos o caso de um programa que, em certo ponto do seu algoritmo, lê dados de um ficheiro. A execução irá ficar bloqueada até que os sectores de disco sejam acedidos e dados e os dados correspondentes transferidos para a memória.

É evidentemente preferível, depois de lançar a operação de acesso ao disco, retirar o programa de execução e permitir que um outro utilize o processador. O acesso ao disco será executado em paralelo por rotinas do sistema que gerem uma interface hardware, normalmente designada por controlador de disco, que implementa o protocolo de controlo das unidades físicas de disco. O tempo necessário para o posicionamento das cabeças de leitura do disco e de transferência de dados pode ser utilizado por outro programa. Esta solução torna o sistema multiprogramado permitindo que diversos programas estejam simultaneamente activos.

A multiprogramação só é eficaz se os diversos programas residirem na memória central, pois só assim a mudança de contexto se poderá processar rapidamente. Contudo, a memória física é limitada e pode ser impossível manter simultaneamente em memória diversos programas com tamanhos variados.

A solução passa pelo estabelecimento de uma hierarquia de memória que permita, quando se torne necessário, carregar um novo programa e salvaguardar na memória secundária alguns programas bloqueados. Esta técnica de transferência ( swapping) tem implicações profundas sobre toda a estrutura dos programas. Numa gestão deste tipo é impraticável pretender colocar o programa na zona de memória que ocupava anteriormente, pelo que o código deve ser recolocável, ou seja, sem alterar o programa deve ser possível colocá-lo em qualquer posição da memória.

As técnicas de multiprogramação permitem a criação de sistemas sofisticados de tratamento por lotes o Batch que progressivamente foram dotados de mecanismos hardware para gestão de memória, de periféricos de massa elevada capacidade e de mecanismos de transferencia rápidos entre a memória e os periféricos (canais). OÕS/360 da IBM [Mealy66] é um dos sistemas multiprogramados mais representativos de gestão de lotes.

Memória Virtual

As restrições impostas pelos limites físicos da memória traduziam-se nem obstáculo difícil de superar de superar pelos programadores e comprometiam a eficiência do sistema. Num ambiente de multiprogramação, como o descrito na secção anterior, a gestão do espaço de memória livre tornou-se um problema complexo. Diversos algoritmos foram desenvolvidos com o objectivo de rentabilizar a gestão da memória física disponível. Todas as soluções para ultrapassar os limites da memória física implicavam um cuidadoso controlo do código produzido.

A evolução do hardware de gestão dos endereços permitiu um avanço significativo que consistiu na possibilidade de trabalhar sobre um espaço de endereçamento virtual de dimensões muito superiores e independente da memória física existente na máquina.

O programador ficava liberto das preocupações de gestão do espaço ocupado pelas suas aplicações e, simultaneamente, o sistema podia gerir de forma mais eficiente a memória física disponível.

Apesar de as ideias de base terem sido propostas em algumas máquinas pioneiras, como o Atlas [Fotheringhan61],foram necessários numerosos desenvolvimentos de hardware e sistema operativo (ex.: Multics, MPC da Burrougs, Kronos da CDC, MFS e MVS da IBM) para atingir o desempenho dos sistemas de memória virtual da década de 70.

A existência de memória virtual revolucionou os mecanismos de protecção de código, constituindo uma das etapas significativas na evolução dos sistemas operativos.

 

Timesharing

 

Dado o inconveniente existente na multiprogramação por lote, de não permitir o diálogo entre o utilizador e o processamento, o passo seguinte no desenvolvimento dos sistemas operativos foi a introdução da multiprogramação interactiva.

Foi então que surgiram os terminais conversacionais ou interactivos (teclado e ecrã), em que o utilizador já não necessita de fornecer todos os seus dados no início de cada execução, mas sim fornecê-los à medida que o processamento os vai solicitando e de igual forma vai recebendo respostas imediatas aos seus dados.

Com este processamento, a organização não é efectuada por trabalhos, mas sim por sessões. Uma sessão é todo um conjunto de trabalho que é realizado, a partir de que o momento em que o utilizador liga o equipamento até ao instante que o desliga. Durante estas sessões podem ser realizadas variadíssimas operações, controladas por um processamento designado interprete de comandos, que ninguém mantém o diálogo entre o utilizador e sistema operativo. Este processamento pode dar lugar a muitos outros para realizar todas as solicitações de utilizador.

Durante uma sessão, o utilizador julga ter á sua disposição todos os recursos do computador, embora existam outros utilizadores com sessões a decorrer em simultâneo.

Nestes modos de trabalho, a depuração de programas – antes era efectuada ocupando toda a memória – agora é feita de forma interactiva. Suspendendo a execução de cada processamento momentaneamente, enquanto se estudo o problema que pode ter surgido.

Os sistemas de Timesharing, caracterizam-se por:

Ser muito conversacionais;

Atender a vários utilizadores simultaneamente;

Oferecer tempos de resposta relativamente curtos (segundos);

Manter uma fila sequencial de pedidos de utilizadores (spolling);

Possuir uma forte gestão de arquivos;

Utilizar técnicas de buffering e de spooling;

Gerir memória virtual.

Em geral, os sistemas operativos podem usar simultaneamente as técnicas de lotes e de tempo repartido. Desta forma cada utilizador elege o melhor sistema a aplicar aos seus programas.

Real Time

Tempo real é outra variante dos sistemas operativos multiprogramados, em que se necessita de um tempo de resposta reduzido perante qualquer solicitação.

Apenas se emprega em aplicações dedicadas a sistema de controlo com sensores como elementos de entrada, em que se trona necessária uma resposta rápida sobre o sistema a controlar. Pode dizer-se que um sistema funciona em tempo real se o tempo de resposta permite controlar e regular o meio sobre que opera.

As principais características de tempo real são:

Fortes restrições nos tempos de resposta ( milisegundos);

A informação deve estar permanentemente actualizada;

O sistema deve permanecer praticamente inactivo para atender o mais rapidamente possível a qualquer tarefa de entrada;

Manuseamento eficaz de interrupções;

Manuseamento rápido de prioridades;

Gestão de memória real.

Fim de evolução histórica.

CAPITULO III

Conceito de sistema operativo

Vamos em primeiro lugar definir o elemento físico em que se concentra toda a actividade informática, o computador:

Um computador é uma máquina essencialmente electrónica, com uma ou mais unidades de processamento e diversos equipamentos periféricos controlados por programas armazenados na sua memória, possibilitando a realização dos mais variados trabalhos.

Todo este componente físico denominado, normalmente por hardware. Pelo facto de se tratar de uma máquina programável, deverá contar com informações que indiquem como utilizar todas as suas unidades físicas ou ferramentas – também conhecidas por recursos –, de forma a permitir a execução de diversos trabalhos. Este conjunto de informações compõe o que denominamos por suporte lógico ou software.

Um computador sem software, seria uma máquina inútil, uma vez que só através dele se torna possível armazenar, processar e obter informações, editar textos, controlar repetições, etc.

Um sistema operativo é um elemento do conjunto de software que nos seus primórdios foi definido da seguinte forma:

Um sistema operativo é um suporte lógico que controla o funcionamento do equipamento físico.

Actualmente, esta definição não se pode considerar a mais correcta, podendo variar conforme os diversos pontos de vista:

Na óptica do Utilizador

Um sistema operativo é um conjunto de programas e funções que, ocultando os detalhes do hardware, oferece ao utilizador uma forma fácil e flexível de controlo e acesso ao mesmo.

Na óptica do GESTOR DE RECURSOS

Um sistema operativo é o administrador dos recursos oferecidos pelo hardware que permite alcançar um rendimento eficaz dos mesmos.

Os recursos fundamentais que administra são:

 

Os sistemas operativos constituem recursos de alto nível, que denominadores VIRTUAIS, como forma de encobrir os realmente existentes de baixo nível, denominaremos FÍSICOS. Assim, do ponto de vista do utilizados ou de um programa, a máquina física é convertido pelo sistema operativo numa máquina virtual, também conhecida como máquina estendida, oferecendo muito mais funções e mais cómoda de utilizar.

Para além disso, o sistema operativo proporciona serviços não disponíveis hardware, como a utilização do computador por vários utilizadores em simultâneo, diálogo entre o utilizador e o programa em execução ao mesmo tempo, etc.

CAPITULO IV

Arquitectura dos Sistemas Operativos

O sistema operativo pode ser considerado como um programa de grande complexidade, responsável pela gestão eficiente de todos os recursos da máquina eficiente de todos os recursos da máquina. Como qualquer programa de grandes dimensões, a sua concepção deve ser abordada de forma estruturada.

Uma técnica habitualmente utilizada é a decomposição do sistema em camadas funcionais. Cada camada constitui um nível de abstracção que implementa funcionais. Cada camada constitui um nível de abstracção que implementa uma máquina virtual como uma interface bem definida. Sobre esta máquina pode construir-se uma outra que utiliza os serviços da camada precedente para implementar o próximo nível de abstracção. Cada camada encapsula a implementação de níveis inferiores fazendo que seja possível modificá-los sem afectar as camadas exteriores.

Uma decomposição em camadas adapta-se particularmente bem aos sistemas operativos, dado que é fácil identificar os conceitos de cada nível deverá ser responsável por implementar e o suporte que necessita dos níveis inferiores.

Apesar existirem numerosas variantes do modelo das implementações reais, optámos por considerar uma subdivisão didáctica que nos parece fazer ressaltar os mecanismos fundamentais da cada nível.

 

Numa descrição resumida cada um dos níveis implementa as seguintes funções:

Gestão dos Processos: multiplexa a máquina física entre um conjunto de entidades lógicas que designaremos por processos. Cada processo pode ser considerado como uma máquina virtual que executa um programa. Para além de gestão de processos são tratados, nesta camada, os mecanismos de baixo nível que permitem interactuar com o hardware do processador, nomeadamente as interrupções.

Gestão de Memória: Controla a utilização de memória física. O sistema torna-se globalmente mais eficiente se os processos puderem utilizar uma memória virtual de dimensões muito superiores ás da memória física da máquina. A gestão da memória virtual e todos os algoritmos associados a manipulação do espaço de endereçamento dos processos são executados neste nível.

Comunicação e Entradas/Saídas: Os processos necessitam de comunicar para poderem gerir recursos comuns ou controlar a execução das aplicações. Na comunicação podem também ser consideradas as operações de E/S com exterior da máquina. Apesar da implementação das E/S ser complexa, dado que interactuam com o hardware dos dispositivos, a sua estrutura interna e interface apresentam numerosas semelhanças com os restantes mecanismos de comunicação.

Sistema de ficheiros: poder-se-ia considerar que a gestão de ficheiros é um caso particular das Entradas/Saídas para um periférico de memória de massa. Não é assim, porém nos sistemas actuais onde a gestão da informação na memória de massa adquiriu uma importância fundamental na estrutura da programação e utilização de computadores. A gestão de ficheiros é responsável pela implementação eficiente de uma organização lógica que virtualiza os dispositivos de memória de massa.

Interface Sistema: Consideramos a interface sistema subdividida em duas partes de estrutura diferente.

Funções Sistema: As funções sistema constituem a interface dos serviços providenciados pelas camadas internas do sistema operativo. As interfaces às funções são agrupadas em bibliotecas de rotinas que podem ser ligadas com os programas dos utilizadores de forma a permitir-lhes aceder aos mecanismos sistema.

Interpretador de Comandos: O segundo nível da interface é na realidade uma aplicação fornecida com o sistema para facilitar a sua utilização. A aplicação interpreta um conjunto de comandos que permitem fazer executar as operações mais vulgares de interacção com o sistema. Normalmente, os comandos podem ser utilizados de forma encadeada, constituindo uma verdadeira linguagem de controlo com a qual se podem programar novos comandos que estendem a funcionalidade básica oferecida.

O modelo de implementação não faz referencia alguns aspectos que, por serem gerais, não se enquadram em nenhum dos níveis descritos.

O primeiro diz respeito à política geral de optimização da utilização do sistema. Na literatura anglo-saxónica é utilizado o termo scheduling para designar esta função. A optimização é frequentemente associada à gestão eficiente do processador. Contudo, ele relaciona-se com todos os níveis, em particular com a gestão de memória e com as E/S.

Os mecanismos de protecção também estão presentes em todos os níveis. O sistema tem de garantir que os processos não podem realizar operações que ponham em risco o próprio funcionamento do sistema ou interfiram indevidamente com os objectos pertencentes a outros processos. Os mecanismos de protecção podem ser implementados de diversas formas adaptadas ao tipo de informação manipulada em cada nível.

SHELL

Shell é o nome dado ao programa que interpreta os pedidos de execução de comandos, programas ou utilitários levados a cabo pelo utilizador. É o intérprete de comandos do sistema operativo e o interface entre o utilizador e o sistema.

O shell é um programa do sistema operativo, pelo que não faz parte do núcleo do mesmo. É executado sempre que o utilizador se identifique perante o sistema e inicie uma sessão de trabalho.

É também uma linguagem de programação que suporta todas as estruturas próprias de linguagens modernas. Para além disso, permite a utilização de todas as primitivas do sistema operativo, para controlo de processamentos, interrupções e utilitários para desenho de programas de comandos para o utilizador.

Existem vários tipos de shell, cada um com diferentes características:

Bourne shell : É o intérprete de comandos básico;

C-shell : É o interprete de comandos criado em Berkeley para o sistema operativo BSD e para o XENIX, sendo um pouca mais completo que o anterior. A sua programação é praticamente efectuada em linguagem C;

Korn shell : Baseado em ambos os anteriores, é compatível com o Bourn em cerca de 95%. Acrescenta possibilidade de programação avançada, facilidades aritméticas e maior rapidez de execução.

CAPITULO V

Arranque do Computador

Quando se liga um computador, em particular os PC’s, pode verificar-se as seguintes situações:

O computador tem um disco já preparado com o sistema operativo, o qual é transmitido automaticamente á unidade central de processamento no arranque à unidade central de processamento, alojando-se numa parte da RAM ( Random Access Memory ).

O computador não tem disco (ou este não tem sistema operativo), e então o arranque do sistema terá de fazer-se a partir de uma disquete que contenha o sistema operativo. Após a leitura do sistema operativo, este vai instalar-se numa parte da RAM, uma vez instalado nesta, uma parte em condições de controlar globalmente o funcionamento do sistema. Qualquer operação terá de passar pelo controlo do sistema operativo através de processos designados por "system calls" e "interrupts". Quando o sistema operativo é carregado para a memória do computador, não totalmente, mas apenas uma parte, geralmente chamada de OS Master Program, que no caso do DOS é constituído por três ficheiros nomeadamente, MSDOS.SYS, IO.SYS e COMMAND.COM. Durante todo este processo de arranque são lidos os ficheiros "autoexec.bat" e "config.sys", sendo executadas as instruções neles contidas.

O "autoexec.bat" possui um conjunto de instruções que permite ao utilizador personalisar o ambiente de trabalho a seu gosto.

O config.sys permite configurar os periféricos do computador assim como algumas variáveis do sistema.

 

CAPITULO VI

 

Tipos de Sistemas Operativos.

Poderá parecer, numa primeira aproximação, que no mercado informático actual existe uma multiplicidade de sistemas operativos. Se considerarmos marcas e produtos de fabricantes é essa a realidade. Contudo, é simples identificar alguns tipos predominantes que podem ser facilmente classificados.

Na gama mais barata de equipamento predominam os sistemas mono-utilizadores muito simples ( CPM da Digital Research, MS/DOS da Microsoft) que se adaptaram bem ao hardware dos computadores pessoais. Estes sistemas pouco sofisticados são de fácil compreensão e tiveram grande sucesso em termos de mercado.

Numa gama mais cara, mas também com um sistema muito mais avançado temos os Windows ( 95/98,2000,NT) da Microsoft. Por incrível que pareça encontra-se sistemas operativos totalmente gratuitos como é do LINUX.

1

Sistema Operativo MS DOS ( Microsoft – disc operate system )

Este sistema operativo é um sistema mono - utilizador e mono – tarefa, criado para a gama de computadores pessoais lançados em 1981 pela IBM ( International Business Machines ).

O MS DOS é um compatibilizador (interface) que permite ao utilizador de um computador pessoal aceder ao hardware, executar programas e rentabilizar um equipamento capaz realizar um elevado número de tarefas. Proporciona meios de ordenar ao hardware a execução de um determinado programa ou tarefa, de o direccionar para a posição em que estes se encontram.

Para realizar esta missão, o DOS trabalha em dois níveis: o primeiro estabelecendo o controlo necessário sobre o hardware e segundo oferecendo ao utilizador a possibilidade de ordenar, para que através dessas mesmas ordens, possa realizar os distintos trabalhos.

Como evoluiu o MS DOS......?

Com o aparecimento do computador pessoal da IBM em 1981, foi desenvolvida o sistema operativo DOS, tendo sido as suas criadoras as empresas MicroSoft e IBM. Naquele ano foram utilizadas duas versões semelhantes, uma de cada empresa, denominadas MS-DOS, 1.0 e PC-DOS1.0. Permitiam aos utilizadores do PC (personal computer) uma serie de ordens básicas para o funcionamento do equipamento.

A característica principal destas primeiras versões era a utilização de um subsistema de ficheiros que permitiu compatibilizar estes ao longo das versões sucessoras, bem como os de um outro sistema operativo, o OS/2. Outra característica desta primeira versão, seria a utilização de disquetes de 5.25 polegadas com apenas uma face e com a capacidade de 160 Kb.

No ano de 1982 em empresa Microsoft melhorou o sistema operativo, permitindo a utilização de disquetes de face dupla o com uma capacidade de 360 Kb. Esta foi a versão 1.25 do MS-DOS.

No ano de 1983 as empresas Microsoft e IBM melhorariam notavelmente o sistema operativo ao dotá-lo de uma boa gestão de ficheiros ( aparecimento de subdirectórios etc.), ampliando o conjunto de comandos e melhorando alguns já existentes. As versões surgidas naquele ano foram as 2.0, 2.01, 2.10, 2.11 e 2.25. No ano de 1984, com o aparecimento do modelo PC-AT, são desenvolvidas novas versões. O DOS 3.0, que integra a utilização de disquetes de 5,25 polegadas de alta densidade ( 1.2 Mb ) e discos rígidos estes de grande capacidade, e aversão DOS 3.1, que permite a ligação de computadores pessoais em ambiente DOS numa rede local e sua utilização como servidores em ambiente multiutilizador.

A versão DOS 3.2 Aparecia em 1986 e, para alem das melhorias em relação aos comandos, introduziu a possibilidade de utilização de disquetes de 3,5 polegadas de baixa (720 Kb) ou de alta densidade (1, 44 Mb). Em 1987, com o aparecimento de novas arquitecturas para computadores pessoais (80286, 80386, etc.) compatíveis com as anteriores, embora com importantes melhorias de ordem tecnológica, foi comercializada a versão DOS 3.3, passível de ser implementada na nova série de computadores pessoais PS/2 da IBM.

Actualmente podemos encontrar no mercado as versões DOS 4.x e 5.x com características superiores às anteriormente enunciadas.

Evolução do sistema operativo DOS

Como podemos constatar numa primeira análise, envolvendo o hardware encontramos uma camada de software denominada BIOS (basic input output system),residente na memória apenas da leitura (read only memory – ROM), cujas tarefas são:

 

Realizar um teste a todo o equipamento em inicialização do mesmo. Nessa altura são examinados todos os elementos ligados, bem como os seus estados;

Servir de compatibilizador (interface) entre o software dos níveis superiores e o hardware, através de uma série de rotinas, cada uma delas com uma função específica.

O nível seguinte corresponde ao núcleo do sistema operativo e permanece, a partir do momento em que o equipamento é ligado, constantemente em memória. É composto pelo programa de interpretação de comandos (COMMAND.COM), que agrupa em si uma série de comandos residentes . existem também neste nível dois ficheiros ocultos, uma vez que são não visualizáveis da forma comum, que contem diversas rotinas permitindo ampliar e actualizar ( evolução das versões do DOS) as rotinas da ROM – BIOS.

Sistemas operativos Windows NT, 95/98, 2000

Windows 95/98 foi lançado pela Microsoft em 1995 ( Windows 95 ) e 1998 ( Windows 98 ). Sistema operativo de 32 bits, executa no entanto aplicações de DOS e aplicações de 16 bits que é o caso do Windows 3.1.

Não necessita do DOS para correr e baseia-se ambiente gráfico ( Shell gráfica), proporcionando ao utilizador uma interface amigável baseado em janelas (daí o nome Windows),menus e icons.

Multitarefa preemptive, neste caso, não são os programas de aplicação que dispõem da iniciativa de libertar o CPU, cabe ao próprio S.O. atribuir a cada tarefa um determinado tempo de processador, o acesso de cada aplicação ao CPU é portanto gerido de uma forma mais racional

O Windows NT4 tem uma interface idêntica à do Windows 95, contudo o Windows NT Server é um sistema operativo servidor, dedicado essencialmente à partilha de recursos ( multi-utilizador), semelhante a este temos o Windows NT Workstation, mas com menos potencialidades de gestão embora não requeira tantos recursos. Tem um nível de segurança CII, o que dá uma certa garantia ao utilizador relativamente ao acesso não autorizado aos seus dados grandes potencialidades para ser usado em rede este sistema operativo é detentor de multitarefa preemptive.

Para finalizar a abordagem dos sistemas operativos Windows resta falar na nova versão Windows 2000. Lançado recentemente o Windows 2000 é um sistema aparentemente parecido com o Windows 95/98. Este produto trás consigo algumas versões, que são as seguintes:

Windows 2000 Professional

Como substituto do Windows NT Workstation, ocupará o lugar das actuais Workstations NT, bem como o Windows 9x, que com o tempo tende a ser substituído pelas empresas, à medida que estas se vão apercebendo dos seus pontos fracos. Facto importante nesta versão é suporte dos recursos típicos dos computadores portáteis, que na versão anterior havia ficado algo esquecido. As máquinas correndo este sistema operativo integrar-se-ão completamente com os servidores desta família, permitindo tirar partido de importantes conceitos, com administração centralizada de ambiente de trabalho, políticas de sistemas, gastão de recursos e outros factores importantes. É objectivo da Microsoft altos desempenhos a baixos custos, embora isto só seja possível graças às novas tecnologias e não ao sistema propriamente dito, até porque este tende a tornar-se mais complexo e, logo, mais "pesado". Um domínio de 64MB de RAM de verá estar disponível para que este sistema permita colher resultados.

Windows 2000 Server (Standard Edition)

Tal como acontecia com a versão 4 do NT, o Windows 200 server será o sistema operativo a usar nos servidores de ficheiros, aplicações, impressão, Internet e comunicações de pequenas e médias empresas. Este sistema é capaz de correr serviços não suportados pela versão Professional, como sejam, o DHCP, o DNS, ou de gateway para Netware. Supote multiprocessamento simétrico até quatro processadores e um máximo de 4GB de RAM. Se r4etirarmos algumas (poucas) diferenças relativamente à versão Advanced server, este sistema operativo serve como uma base servidora extremamente completa, indo muito para alem do disponibilizado pelo NT.

Windows 2000 Advanced Server

Toma o lugar do Windows NT server Enterprise Edition. Essencialmente é um Windows 200 server reforçado, no intuito de correr em servidores com necessidades acrescidas, utilizando na maioria dos casos, enormes quantidades de memória RAM, discos e controladores SCSI de alto desempenho e capacidade, e que correrão aplicações pesadas ou manterão bases de dados de médio e grande porte. Para suportar este tipo de aplicação, esta versão suporta até oito processadores e 8GB de memória. Suporta também o sistema de clustering, uma área que a Microsoft ainda não tinha entrado com a necessária credibilidade. Aconselhando para as redes com elevado número de utilizadores e em que os fluxos de informação são elevados, bem como para suportar elevados números de clientes dos serviços do terminal.

Windows 2000 Datacenter Server

Para aquelas organizações com necessidades fora do normal, sejam elas a gestão documental ou produção em larga escala, a manutenção de bases de dados gigantes, o cálculo cientifico, ou semelhantes, surge esta versão que suporta as características das restantes, bem como 32 processadores e 64GB de RAM!

Sistema Operativo UNIX

Trata-se de um sistema operativo dos mais utilizados e provavelmente com mais futuro, devido à defesa promovida em prol deste pelos muitos organismos oficiais e particulares existindo um grande mercado no que respeita às firmas de fabrico e comercialização deste tipo de equipamentos, em termos de oferta. Podemos citar como exemplo os organismos da Comunidade Europeia que, no desenvolvimento de aplicações para os mesmos, impõem o sistema operativo UNIX.

 

Como evoluiu o UNIX.........?

 

1965: As empresas Bell Telephone Laboratories (BTL) e General Electric Company (GEC) intervêm no projecto MAC do Massachusets Institute Tecnology (MIT) para um desnevolvimento de um novo sistema operativo denominado MULTICS, cujo o objectivo era oferecer multiutilizador (acesso simultâneo de um grande número de utilizadores) com grande capacidade de processamento e grande capacidade de partilhar dados entre os vários processamentos;

1969: Dado os resultados pouco satisfatórios do MULTICS, a BTL retira-se do projecto e desenvolve um sistema de tempo repartido com paginação por petição, para a utilização interna num equipamento PDP-7 da Digital, sendo os criadores do sistema uma equipa encabeçada por Ken Thompson e Dennis Ritchie. Este sistema operativo constituiu a primeira versão do UNIX, que apenas permitia a exploração monoprogramada ;

 

1971: O resultado do sistema anterior obteve tanto sucesso que a companhia pôs à disposição de Thompson e Ritchie um computador mais potente, o PDP-11 da Digital. Neste, Thompson desenvolveu uma linguagem de programação inspirada na BCPL e no FORTRAN, tem do Ritchie,na continuidade do projecto, desenvolvido na linguagem C, com a qual se conseguiu a geração de código máquina, bem como a descrição de estruturas e tipos de dados;

1973: É reescrita em C a versão do UNIX desenvolvida num assemblador, que, praticamente, se manteve até aos nossos dias. Aparece uma versão do UNIX conhecida por programmer’s workbench (PWB);

1974: É introduzido o sistema operativo UNIX nas universidades norte-americanas, apontando para fins educativos;

1977: É construída a primeira versão comercial do UNIX, conhecida como versão 6, instalando-se pela primeira vez num computador diferente do PDP e que foi um INTERDATA 8/32;

1979: Aparece a versão 7 do UNIX para PDP e uma versão para computadores VAX da Digital (32bits), conhecidos como 32 V;

1981: Nasce a primeira versão de UNIX para computadores pessoais, assumindo o nome de XENIX;

1982: Para a distribuição externa os laboratórios Bell desenvolvem o UNIX System III, que não será mais que o original com algumas pequenas variantes. Por outro lado,a Universidade de Berkeley desenvolve uma variante do UNIX 32V, para computadores VAX, melhorando os comandos e a gestão de memória virtual paginada, recebendo o nome de 4.1 BSD;

1983: A empresa AT&T anuncia uma nova versão denominada UNIX System V, que é o sistema actual e apresenta importantes melhorias ao nível do rendimento, comunicação, etc.;

1984: A Universidade de Berkeley apresenta uma versão 4.2 BSD para computadores VAX, que também poderia ser aplicada a estações de trabalho SUN 2/3 da SUN MICROSYSTEMS.

ESTRUTURA DO SISTEMA OPERATIVO UNIX

O sistema operativo UNIX é um sistema de tempo repartido, logo, multiutilizador, existindo no caso a capacidade de ser implementado em diversos computadores ( portátil).

É composto por ema série de elementos que podem representar-se sob a forma de camadas concêntricas, onde em primeiro lugar em torno do hardware, encontramos o núcleo ( kernel), que interfere directamente com o hardware isolando este dos utilizadores, para além de adaptar os restantes elementos do sistema operativo à máquina, dada a sua portabilidade.

Numa Segunda camada podemos encontrar os comandos que não são mais que o compatibilizador (interface) entre os programas/aplicações e o núcleo do sistema operativo.

A última camada contém os programas/aplicações.

VANTAGENS E DESVANTAGENS

Entre as vantagens que permitem o sistema operativo UNIX gozar da popularidade que detém na actualidade, realçam-se as seguintes:

Facilmente legível, por estar escrito em alto nível ( C );

É um sistema hierárquico de processamento e ficheiros;

Possui um interface com os periféricos consistente e uniforme;

É um sistema multiutilizador e multiprocessamento;

Adapta os programas ( fonte) a qualquer máquina sob o sistema operativo UNIX;

Não está ligado a uma marca comercial de fabricante de computadores;

Permite combinar os seus utilitários, produzindo novos elementos.

 

Por outro lado, os seus grandes inconvenientes são:

 

Comandos pouco claros e com demasiadas opções;

Pouca protecção ao nível dos utilizadores;

Sistema de ficheiros lento.

 

Existem inúmeros tipos de sistemas operativos, como por exemplo, sistema operativo OS/2, sistema operativo MVS, sistema operativo VMS, sistema operativo OS/400,etc...

Estes sistemas não são muito conhecidos, no entanto desempenham tarefas do tipo de MSDOS de forma mais evoluída (multitarefas).

Conclusão

Este trabalho faz uma abordagem geral dos sistemas operativos, incluindo a evolução histórica de alguns deles.

Concluímos que os sistemas são indispensáveis ao funcionamento dos computadores pois estes seriam inúteis sem tal evento.

Verificamos ainda que através dos S.O. os computadores tornam-se acessíveis a qualquer pessoa que os queira utilizar.