capítulo iii - (os sistemas operacionais)

Propaganda
Capítulo 3
A Evolução dos Sistemas Operacionais
Neste capítulo, continuaremos a tratar dos conceitos básicos com a intensão de construirmos, agora em um nível mais elevado de abstração, o entendimento sobre os tipos de softwares existentes em um sistema computacional.
3.1 Softwares Básicos & Software Aplicativos Chamamos de software básico todo programa que é responsável pelo gerenciamento e controle de algum recurso de hardware no computador ou que prestam serviços para outros programas. Os softwares básicos são projetados para uma arquitetura (hardware) específica! Nesta classe de programas encontramos os sistemas operacionais, os drivers de dispositivos, os banco de dados, os compiladores e interpretadores (programas para a criação de outros programas), entre outros programas. Podemos entender os softwares básicos como uma plataforma de suporte onde outros programas interagem com hardware através de “chamadas” a serviços. Estas “chamadas” têm a função de esconder a complexidade do hardware, podemos citar com exemplos de serviços: ativação do dispositivo, escrita em memória etc.
Como o nome sugere, os softwares aplicativos são os programas que foram projetados para a interação com usuário, direcionados a resolver um problema específico. Nesta classe de programas, os mais usados são os editores de texto, os gerenciadores de arquivos e, agora com a popularização da Internet, os navegadores WEB, clientes de correio eletrônico etc. Uma característica presente em todos os programas aplicativos é: uma interface amigável com o usuário!
3.2 Os sistemas Operacionais
Um sistema operacional é um conjunto de programas (softwares) que forma uma camada sobre a parte física (hardware) do seu computador. Esta camada gerencia todos os componentes do sistema computacional, apresentando ao usuário uma interface muito simples de entender.
A principal função de um sistema operacional é esconder toda a complexidade da arquitetura da máquina, oferecendo ao usuário um conjunto de funções mais simples e convenientes para o desenvolvimento de suas tarefas.
Figura 1: Sistema Computacional
Adaptado de Sistemas Operacionais Modernos, Tanenbaum, A. S. ;1995; p. 4
Os sistemas operacionais foram desenvolvidos para serem invisíveis aos olhos de quem os usam. 3.2.1 Evolução dos Sistemas Operacionais
Os sistemas operacionais sempre estiveram relacionados às arquiteturas das máquinas nas quais eles são executados e, conseqüentemente, sua evolução foi influenciada e marcada pelas mudanças tecnológicas destas arquiteturas. Esta evolução está dividida em quatro fases que serão descritas no desenvolver deste texto.
1ª fase (1939­1955)
Como vimos anteriormente, por volta de 1940, surgiram os primeiros computadores digitais. Nesta primeira fase histórica, onde as tecnologias estavam ainda em desenvolvimento, grupos de cientistas eram responsáveis desde a concepção do projeto até a operação das máquinas que eram construídas. Toda a programação destas máquinas era feita através ajustes em painéis que controlavam suas funções básicas. E cada usuário de computador era responsável por fazer sua própria programação nesses painéis de controle. Por tanto, programar estas máquinas só era possível à profundos conhecedores de sua arquitetura. Nesta época, conceitos como o de linguagem de programação não existiam, muito menos o de sistemas operacionais. Os computadores eram projetados para processar dados numéricos e a partir deles gerar, por exemplo, projeções de balística. Seu uso era restrito às universidades e as forças armadas.
2ª Fase (1955­1965)
Em meados dos anos 50, a grande revolução tecnológica dos transistores permitiu o aumento da velocidade e da confiabilidade nas operações dos computadores. Aliado a isso, o uso de memórias magnéticas permitiu o acesso rápido aos dados, bem como, uma maior capacidade de armazenamento. Com o emprego destas tecnologias os computadores tornaram­se muito menores e muito mais confiáveis ao ponto de serem comercializados.
A crescente distinção entre as atividades das pessoas envolvidas com os computadores é bem clara: os operadores, não necessariamente, eram os projetistas! Entretanto, ainda era necessário pessoal especializado para sua operação. Surge o conceito de CPD ­ Centro de Processamento de Dados, onde as máquinas eram instaladas em salas isoladas. Somente as grandes empresas e órgãos governamentais ou universidades podiam pagar os muitos milhões de dólares necessários à aquisição destas máquinas.
Nesta fase, grande parte do tempo de máquina era dispersado como a preparação do processamento dos programas pelo operador. Em vista do alto custo de tais equipamentos, o processamento em lote (batch) surgiu como uma solução ao desperdício de tempo.
O processamento em lote, utiliza o conceito de tarefa (JOB). As tarefas dos usuários são agrupadas fisicamente e processadas seqüencialmente uma após a outra.
Outro problema comum desta fase era o computador esperar por uma tarefa de entrada e saída de dados. Como uma solução para esse problema, as fitas magnéticas foram usadas como "reservatórios". Desta forma o sistema principal do computador teria sua utilização maximizada pois só faria entrada e saída, através das fitas magnéticas, dispositivos muitos mais rápidos. A partir dessa fase, os sistemas operacionais passaram a ter seu próprio conjunto de rotinas para operações de entrada e saída (Input/Output Control System – IOCS). Estas rotinas facilitaram enormemente o processo de programação. O IOCS eliminou a necessidade de os programadores desenvolverem suas próprias rotinas de leitura/gravação específicas para cada dispositivo periférico. Esta facilidade de comunicação criou o conceito de independência de dispositivos.
Importantes avanços, a nível de hardware, foram implementados no final dessa fase. Destaca­se o conceito de canal, que veio permitir a transferência de dados entre dispositivos de entrada e saída e a memória principal de forma independente da CPU.
Os computadores da segunda fase eram usados maciçamente na realização de cálculos científicos e de engenharia, tal como a obtenção de equações diferenciais parciais.
3ª Fase (1965 – 1980): Circuitos Integrados O grande avanço desta fase, além do uso de circuitos integrados (SSI), foi a criação do conceito de família de computadores. Até os meados dos anos 60, cada fabricante de computadores desenvolvia, separadamente, dois tipos de máquinas: uma voltada ao processamento científico mais poderosa e, conseqüentemente, mais cara e; outra voltada ao processamento comercial mais acessível e menos poderosa. Estes tipos eram totalmente incompatíveis, pois suas arquiteturas eram diferentes.
A introdução de uma série de máquinas, compartilhando a mesma arquitetura e o mesmo conjunto de instruções básicas, tornou possível compatibilidade a nível de software. Nasce, pela IBM, o conceito de família de computadores, através do lançamento da série IBM System 360.
Uma família de computadores tinha como preceito a compatibilidade em nível de arquitetura.
O série 360 foi a primeira família de computadores a usar circuitos integrados (SSI) em sua fabricação, conseguindo uma relação preço/performance muito melhor do que a das máquinas da segunda geração, construídas com transistores individuais. A série foi um sucesso, e a idéia da família de computadores compatíveis foi logo adotada pelos os demais fabricantes.
Os sistemas operacionais desta fase introduziram novas técnicas que não tinham sido implementadas nos sistemas anteriores. Através de inovações no hardware como a introdução de interrupções e do uso canais exclusivos para o sistema de entrada e saída; as operações nestes sistema poderiam ser feitas em paralelo aos cálculos efetuados pelo processador, evitando o desperdício de tempo de máquina e possibilitando o uso efetivo da multiprogramação, onde mais de um programa estaria residente na memória, tendo a oportunidade de prosseguir o processamento durante os intervalos de espera por entrada e saída dos outros programas.
A introdução de interrupções e de canais autônomos de entrada/saída possibilitou o uso efetivo da multiprogramação. O desenvolvimento de sistemas de tempo compartilhado veio democratizar o uso dos recursos disponíveis nos sistemas da terceira geração. A filosofia era: o usuário trabalhar através de um terminal de entrada e saída interagindo com o sistema principal durante cada fase de execução de sua tarefa. Cada terminal ligado ao sistema principal correspondia a uma fração de tempo (igual para todos as tarefas – independente do tamanho da tarefa) onde todos os recursos dos sistema principal estariam disponíveis.
No final dessa fase, com a evolução dos microprocessadores, surgiram os primeiros microcomputadores, muito mais baratos que qualquer um dos computadores até então comercializados. 4ª Fase (1981­Hoje) Computadores Pessoais
A grande marca destas fase foi a integração de circuitos em grande escala (LSI), apareceram chips com milhares de transistores embutidos em um centímetro quadrado de silício, possibilitando nascimento do computador pessoal. Em termos de arquitetura, os computadores pessoais não eram muito diferentes dos minicomputadores. A grande diferença estava no preço. Da mesma forma que os minicomputadores tornaram possível que um departamento de uma empresa ou de uma universidade adquirisse seu próprio computador, o microprocessador tornou possível isto para pessoas comuns. Com a popularização dos computadores, os softwares procuravam ser os mais amigáveis possíveis ao usuário, "escondendo" deles todas a complexidade do funcionamento do computador. Esta tendencia foi aplicada de forma intensa na criação dos sistemas operacionais. 3.2.2 Tipos de Sistemas Operacionais
Existem 3 tipos básicos de sistemas operacionais. Eles são divididos em grupos relacionados com o tipo de computador que controlam e o tipo de aplicativos que suportam. Estas são as categorias mais abrangentes:
Monousuário e monotarefa
São os sistemas operacionais que foram criados para que um único usuário possa executar uma única tarefa (programa) por vez. Estes sistemas se caracterizam por permitir que os recursos da máquina (processador, memória e periféricos) fiquem alocados exclusivamente a um processo (tarefa).
Neste tipo de sistema, enquanto uma tarefa aguarda pelo término de uma operação, por exemplo a entrada de dados, o processador permanece ociosos, sem realizar nenhum tipo de processamento. Como os recursos (memória, periféricos etc) estão alocados exclusivamente para um programa apenas, nem sempre são utilizados de forma otimizada.
O MS­DOS, sistema operacional para computadores baseados no IBM PC, e o Palm OS dos computadores Palm são exemplos de sistemas monousuário e monotarefa.
Monousuário e multitarefa
Estes sistemas operacionais foram projetados para possibilitar a um único usuário utilizar diversos programas ao mesmo tempo. Estes sistemas são muito comuns em computadores pessoais como desktops e laptops. As plataformas Microsoft Windows e Apple MacOS são exemplos de sistemas operacionais que permitem que um único usuário utilize diversos programas ao mesmo tempo. Por exemplo, é perfeitamente possível para um usuário no Windows conversar pelo MSN1 ao mesmo tempo em que escuta uma música ou faz uma pesquisa na Internet.
Multiusuário
Um sistema operacional multiusuário permite que diversos usuários utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que cada um dos programas utilizados pelos usuários deve dispor de recursos suficientes e separados, de forma que um problema de um usuário não afete outro usuário. Unix, Linux e Windows NT são exemplos de sistemas operacionais multiusuário. Todos os sistemas multiusuário são sistemas multitarefa!
1 Microsoft Messager – programa de comunicação instantânea (comunicação síncrona).
Download