Você está na página 1de 9

y y y

Tema: Informtica Instituio: UNIVERSO Autor: Beto A Histria dos Sistemas Operacionais

Primeira Gerao - Vlvulas e Painis Nesta poca, um nico grupo de pessoas era responsvel pelo projeto, construo, programao, operao e manuteno de cada mquina. Toda a programao era feita em cdigo absoluto, muitas vezes atravs da fiao para controlar as funes bsicas da mquin O conceito de a. linguagem de programao ainda no existia. Os sistemas operacionais tambm no. O acesso ao computador por parte do usurio era feito atravs da reserva antecipada de tempo de mquina. Ao chegar sua vez de usar o computador, o usurio fazia sua prpria programao nos painis da mquina e passava a torcer para que nenhuma das 20.000 vlvulas do computador viesse a queimar enquanto ele estivesse trabalhando. Nessa poca os programas processados pelos computadores eram constitudos essencialmente por clculos numricos repetitivos, como por exemplo a gerao de tabelas de funes trigonomtricas. No incio dos anos 50, houve uma melhora no uso de tais mquinas com o advento do carto perfurado que tornou possvel a codificao de programas em cartes e sua leitura pela mquina, dispensando a programao atravs de painis. Segunda Gerao Transistores Com o emprego desta nova tecnologia em meados dos anos 50 os computadores tornaram -se confiveis a ponto de serem comercializados. Em vista do alto custo de tais equipamentos, no foi surpresa o fato de se encontrar uma soluo que reduzisse o tempo de mquina desperdiado. A soluo encontrada, denominada de sistema batch (lote), consistia em coletar na recepo de um conjunto de jobs e fazer a leitura dos mesmos para uma fita magntica empregando um computador pequeno e relativamente barato, tal como o IBM 1401, que era muito bom na leitura de cartes, na cpia em fita e na impresso de resultados. Os computadores da segunda gerao eram usados maciamente na realizao de clculos cientficos e de engenharia, tal como a obteno da soluo de equaes diferenciais parciais. A programao era feita em linguagem FORTRAN ou em linguagem de montagem. Os sistemas operacionais tpicos da poca eram o FMS (Fortran Monitor System) e o IBSYS, ambos sistemas operacionais desenvolvidos pela IBM para rodar no 7094. Terceira Gerao - CIs e Multiprogramao Os sistemas operacionais da terceira gerao nos reservam trs tcnicas importantes de acordo com os avanos da tecnologia, nas quais so: MULTIPROGRAMAO / SPOOL / TIME-SHARING MULTIPROGRAMAO : No 7094, quando o job corrente parava para aguardar a concluso de operaes de entrada/sada, o processador tambm permanecia inativo at a concluso da operao. Nos casos das aplicaes cientficas, as operaes de entrada/sada no so muito frequentes, de tal maneira que o tempo perdido aguardando sua concluso no chega a ser significativo. J no caso do processamento comercial, o tempo de espera por entrada/sada pode chegar a 80 ou 90 por cento do tempo total de processamento, de maneira que algo precisava ser

feito para evitar desperdcio. A soluo inicial foi dividir a memria em diversas partes, com um job alocado a cada uma delas. SPOOL (SimultaneousPeripheralOperationOnLine) : Outra caracterstica dos sistemas operacionais de terceira gerao era sua capacidade de ler jobs de carto direto para o disco, to logo a massa de cartes tivesse chegado sala do computador. Desta forma, assim que um job ativo terminasse, o sistema operacional carregaria um novo job na partio livre de memria, proveniente do disco. TIME-SHARING : Compartilhamento de tempo, ou seja, uma variao dos sistemas operacionais, onde cada usurio tinha um terminal on-line sua disposio. Quarta Gerao - CIs e Multiprogramao Com o desenvolvimento da integrao de circuitos em grande escala (LSI), apareceram chips com milhares de transistores encapsulados em um centmetro quadrado de silcio, nascendo da a idia do computador pessoal. Atualmente, os mais poderosos computadores pessoais so denominados estaes de trabalho (wokstations). Tais mquinas so usadas nas mais diferentes atividades e usualmente esto conectadas a uma rede pblica ou privada, que permite a troca de informaes entre todas as mquinas ligadas a ela. A grande disponibilidade de poder computacional, levou ao crescimento de uma indstria voltada para a produo de software para estas mquinas. A maioria destes softwares "ameno ao usurio" (user-friends), significando que eles so voltados para pessoas que no tem nenhum conhecimento de computadores, e mais que isto, no tem nenhuma vontade de aprender nada sobre este assunto. Um desenvolvimento interessante que comeou a tomar corpo em meados dos anos 80 foi o dos sistemas operacionais para redes e o dos sistemas operacionais distribudos. Em uma rede de computadores, os usurios esto conscientes da existncia de um conjunto de mquinas conectadas rede, podendo, portanto ligar-se a mquinas remotas e solicitar servios das mesmas. Cada uma destas mquinas roda seu prprio sistema operacional e tem seu prprio usurio. Os sistemas operacionais de rede no diferem fundamentalmente daqueles usados em mquinas monoprocessadoras. Obviamente, eles precisam de uma interface controladora de rede e de um software especfico para gerenciar tal interface, alm de programas que permitam a ligao de usurios a mquinas remotas e seu acesso a arquivos tambm remotos. Tais caractersticas no chegam a alterar a estrutu bsica do ra sistema operacional usado para mquinas com um nico processador. J os sistemas operacionais distribudos precisam de mais do que a simples adio de poucas linhas de cdigo a um sistema usado em mquinas monoprocessadoras, pois os sistemas ditos distribudos diferem dos centralizados em pontos bastantes crticos. Por exemplo, os sistemas operacionais distribudos permitem que programas rodem em vrios processadores ao mesmo tempo, necessitando, portanto de algoritmos de escalonamento de processador bem mais elaborados, de forma a otimizar o grau de paralelismo disponvel no sistema.

y y y

Tema: Sistemas Operacionais Instituio: UVV Autor: Fabiane Salvador

SISTEMAS OPERACIONAIS O papel do sistema operacional coordenar o computador e os programas tornando possvel que os mesmos usem adequadamente a mquina. O sistema operacional fornece uma interface para que voc possa usar o computador alm de controlar o sistema inteiro da forma mais eficiente possvel. difcil de definir precisamente o que o sistema operacional, isso porque o sistema operacional desempenha duas funes no relacionadas diretamente: Sistema operacional como uma extenso do hardware: uma vez que a linguagem ao nvel de mquina primitiva e difcil de programar; Sistema operacional como gerenciador de recursos: evitando que, por exemplo, os jobs sejam impressos mesclados quando dois ou mais programas acessam a mesma impressora simultaneamente. A interface entre o sistema operacional e os programas do usurio definida por um conjunto de "instrues extendidas" conhecidas como systems calls. As systemscalls criam, deletam e usam vrios objetos de software gerenciados pelo sistema operacional, entre eles processos e arquivos. O conceito chave em todos os sistemas operacionais o processo. Um processo basicamente um programa em execuo e consiste do programa executvel, dados do programa, stack, seu contador de programa, stack pointer e outros registradores. Periodicamente o sistema operacional decide suspender um processo e iniciar a execuo de outro, no compartilhamento da CPU, por exemplo (time-sharing). Quando um processo suspenso, ele deve recomear exatamente no mesmo ponto em que parou, e isso significa que toda a informao sobre o processo deve ser salva em algum lugar durante a suspenso. Em muitos sistemas operacionais, todas as informaes sobre cada processo (diferente da contida em seu prprio espao de endereamento) armazenada em uma tabela do sistema operacional chamada de processtable, um array de estruturas onde cada uma um processo. Um processo suspenso consiste de seu espao de endereos chamado de core image. As principais systemcalls ligadas a processos so a criao e a terminao de processos. Por exemplo, um processo de compilao criado pelo system shell. Ao trmino da compilao, este executa uma systemcall para "destruir" ele mesmo. Outras systemcallsso usadas para requisitar ou liberar memria com o envio de sinal, de forma anloga s interrupes de hardware. Os sinais tambm so usados para comunicao rpida entre processos. Em ambientes de multiprogramao, fundamental saber qual usurio dono de qual processo, por isso, cada usurio no sistema recebe o seu uid (useridentification), um inteiro de 16 ou 32 bits. De forma similar, existe o gid (groupidentification) para projetos no sistema.

Outra grande categoria de system calls est relacionada ao sistema de arquivos. Uma das maiores funes do sistema operacional ocultar as peculiaridades dos discos ou de outros dispositivos de E/S, tornando a programao fcil e rpida atravs de um modelo de arquivos independentes de dispositivo. As systemcalls obviamente vo criar arquivos, remover arquivos, e desempenhar operaes de leitura e escrita em arquivos. Antes de ler o arquivo, por exemplo, este deve ser aberto e ao trmino da leitura, fechado. A maioria dos sistemas operacionais implementa o conceito de diretrio para organizar e agrupar arquivos. Este sistema tipo "rvore" usado tambm em processos, mas a diferena que os processos tm uma hierarquia muita menos profunda que os diretrios (3 nveis no mximo) e o processo "pai" controla o processo "filho", ao passo que um grande grupo pode ler ou escrever em um arquivo. A hierarquia de um diretrio pode ser expressa pelo path name, que quando referenciada a partir do diretrio raiz (root) chamada de absolute path name. Antes de um arquivo ser lido ou gravado so checadas as permisses. No sistema operacional Unix, por exemplo, existem 3 parmetros que habilitam ou no permisses para leitura, escrita e execuo (rwx) para o proprietrio do arquivo, o grupo de trabalho e os demais usurios respectivamente. Se o acesso permitido, o sistema retorna um inteiro chamado descritor de arquivo ou handle para ser usado nas operaes subsequentes. Se o acesso proibido, um cdigo de erro retornado. Muitos sistemas operacionais, incluindo o Unix e o MS-DOS, utilizam uma abstrao de tratar os dispositivos de E/S como arquivos especiais. Desta forma, o usurio pode ler e gravar nesses dispositivos utilizando as mesmas systemscalls utilizadas para ler ou gravar arquivos. Existem 2 tipos de arquivos especiais: Arquivos especiais de bloco: so usados para modelar dispositivos que consistem de uma coleo de blocos endereveis randomicamente, como os discos. Desta forma, um programa p ode ler diretamente um bloco sem se preocupar com o sistema de arquivos contido neste. Programas de manuteno do sistema geralmente utilizam estas facilidades, mas para que as permisses de acesso sejam preservadas, este recurso deve ser restrito ao administrador do sistema. Arquivos especiais de caracter: so usados para modelar dispositivos que consistem de streams (cedeias) de caracteres, como terminais e impressoras. Outro recurso que os sistemas operacionais implementam o pipe (tubo), um pseudo-arquivo utilizado para executar comunicao entre 2 processos. Quando o processo "A" quer enviar dados para o processo "B" ele escreve no pipe como se estivesse escrevendo em um arquivo de sada e o processo "B" l este arquivo como se fosse um arquivo comum. Para descobrir se um processo utiliza um pipe ou um arquivo normal s fazendo-se uma chamada a uma systemcall especial. As funes centrais de um sistema operacional so controladas pelo kernel (ncleo), enquanto a interface com o usurio controlada pelo shell (casca). Por exemplo, no caso do MS-DOS, a parte mais importante do sistema operacional o programa "COMMAND.COM". Este programa tem o kernel que permanece na memria o tempo todo, e contm o cdigo de baixo nvel que controla o gerenciamento do hardware para outros programas que precisam destes servios, e o shell, que no DOS tambm chamado de interpretador de comandos. O sistema operacional um cdigo que executa system calls e, portanto, editores, compiladores, montadores (assemblers),

linkeditores e interpretadores de comandos no fazem parte diretamente do sistema operacional. Quando o usurio executa login (entra com seu nome e senha e inicia a seo), o shell inicia e aguarda comandos. Ao receber um comando, o shell cria um processo filho que executa o comando. Ao trmino da execuo o shell notificado e o processo filho terminado. OBJETIVOS DE UM SISTEMA OPERACIONAL Fornecer ao programador/usurio uma forma mais conveniente para a operao do computador
y y y y y y y

Esconde complexidade e detalhes internos inerentes manipulao e controle dos componentes de hardware. Reduz tempo de preparao de um programa. Permite a execuo do mesmo programa em ambientes diferentes Permite vrias aplicaes trabalharem simultaneamente Controla a interao entre: Usurios e hardware Os diversos usurios

Utilizar o Hardware e demais recursos de um computador de forma eficiente Potencial maior de utilizao de recursos em decorrncia da implementao de boas polticas de distribuio de recursos. Uma mquina virtual
y y y

Esconde aspectos de Hardware de modo a facilitar a vida do programador, apresentando uma interface simplificada. A interface do usurio no corresponde ao hardware existente. Permite executar o mesmo programa em vrios ambientes diferentes.

Um Gerente/Alocador de Recursos Decide que pedidos devem ser atendidos de modo que o sistema possa trabalhar de forma eficiente. Um Programa de Controle Controla a execuo de programas do usurio para evitar erros e inconsistnciap proteger usurios uns dos outros. PRINCIPAIS SERVIOS E FUNES DE UM SISTEMA OPERACIONAL
y y y y y y y

Criao e execuo de programas Acesso a dispositivos de E/S Controle de Acesso a arquivos Acesso a recursos do sistema Concorrncia Contabilidade Deteco de erros (Hw/Sw)

COMPONENTES FUNCIONAIS DO SISTEMA OPERACIONAL Um sistema operacional executa muitas funes para que o computador funcione bem e eficientemente. Algumas das mais importante so:
y y y y y y

Interpretador de Comandos: traduz comandos para instrues que o processador entende. Gerente dos Usurios: guarda as tarefas de um usurio separadas daquelas dos outros. Gerente das Tarefas: guarda as operaes de uma tarefa separadas daquelas dos outros. Gerente dos Recursos: gerencia o uso de recursos de hardware entre usurios e tarefas usando-os a qualquer ponto do tempo. Gerente de Arquivos: cria, deleta, enter, muda arquivos e gerencia acesso para arquivos. User Interface: gerencia acesso do usurio para o interpretador de comandos e o gerente de arquivos.

ESTRUTURA DOS SISTEMAS OPERACIONAIS Sistemas operacionais monolticos Longe de qualquer organizao convencional, um sistema operacional monoltico pode ser dito como uma grande desordem. O sistema operacional escrito como uma coleo de procedimentos e cada um destes procedimentos podem chamar qualquer outro. Quando esta tcnica utilizada, cada procedure no sistema tem a sua interface bem definida em termos de parmetros e resultados. Durante a construo de um sistema monoltico, todos os procedimentos so compilados e linkeditados em um nico arquivo objeto. No h nenhum escalonamento e todas as procedures so sempre visveis, mas mesmo assim, existe uma pequena estrutura: os servios ( system calls) fornecidos pelo sistema operacional so requisitados pela colocao de parmentros em lugares bem conhecidos (registradores ou stack) e ento executa uma instruo especial de trap conhecida como kernelcall ou supervisor call e transfere o controle para o sistema operacional. A maioria das CPUs tem dois modos: kernelmode, onde todas as instrues so permitidas e o usermode para os programas do usurio e onde nem todas as instrues so permitidas. O sistema operacional examina os parmetros da chamada para determinar qual procedure deve ser executada. Em seguida o sistema indexa uma tabela que contm um ponteiro para a procedure que em seguida executada. Ao trmino da execuo o controle retornado ao programa do usurio. Esta organizao pode ser traduzida na seguinte estrutura bsica: 1. Um programa principal (main) que chama os servios; 2. Um conjunto de servios (procedures) que executam a system call; 3. Um conjunto de procedures utilitrias que ajudam as procedures de servio.

Sistemas operacionais em camadas O primeiro sistema operacional que utilizou uma hierarquia de camadas foi o THE (TechnischeHogeschool Eindhoven) desenvolvido em 1968 na Holanda por E. W. Dijkstra e seus alunos. Era um sistema operacional para processamento em lotes (batch) criado para um computador holands, o Electrologica X8. O sistema tinha 6 camadas: Camada 0: que implemantava a multiprogramao bsica da CPU, gerenciando a alocao do processador, interrupes e limite de tempo de cada processo. Essa camada era a responsvel pela execuo de mltiplos processos em uma nica CPU; Camada 1: cuidava do gerenciamento de memria utilizando recursos de paginao; Camada 2: cuidava da comunicao entre o processo e o operador de console; Camada 3: gerenciava os dispositivos de E/S e "bufferizava" as streams de informao; Camada 4: onde executam-se os programas do usurio sem a preocupao de gerenciar um ambiente de multiprogramao, gerenciamento de memria, E/S e comunicao; Camada 5: operador. Multiprogramao permite que uma aplicao seja dividida em 2 ou mais processos e suporte vrios usurios. O sistema Multics tambm foi construdo utilizando os conceitos de camadas e implementava um sistema em anis onde os mais internos tinham maior prioridade que os mais externos. Mquinas virtuais As primeiras verses do sistema operacional OS/360 da IBM foram projetadas exclusivamente para processamento em lotes (batch). Como uma quantidade siginificativa de usurios desejava um sistema timesharing para este equipamento, grupos dentro e fora da IBM decidiram escrever sistemas operacionais com essa tecnologia. A verso oficial de um sistema timesharing da IBM, o TSS/360, chegou tarde e era um sistema muito grande e pesado no sentido que consumia muitos recursos do computador. Tanto, que poucos centros de computao aderiram a ele. Mas um grupo no IBM'sCientifics Center em Cambridge produziu um sistema operacional radicalmente diferente. Esse sistema originalmente chamado de CP/CMS e posteriormente de VM/370 foi baseado numa inteligente observao: um sistema timesharing fornece (1) multiprogramao e (2) mquina estendida, com uma interface mais conveniente que o hardware fornecia. A essncia do VM/370 era completar separadamente estas duas funes. O corao do sistema era o Virtual Machine Monitor que proporcionava multiprogramao e provia vrias mquinas virtuais. Diferente dos outros sistemas operacionais, cada mquina virtual eram cpias exatas do hardware verdadeiro, incluindo kernelmode e usermode, interrupes e tudo mais que uma mquina real teria.

Uma vez que uma mquina virtual era idntica ao hardware, ela podia executar qualquer sistema operacional que rodasse naquele equipamento. O VM/370 ganhou muito em simplicidade movendo a grande parte do cdigo do sistema operacional para as camadas mais altas, o CMS. Modelo Cliente/Servidor Os sistemas operacionais mais modernos tm adotado a filosofia de mover a maior parte possvel do cdigo para as camadas mais altas, tornando o Kernel (ncleo) mnimo. Isso possvel ao implementar a maior parte do sistema operacional em processos de usurios. Desta forma, para executar a leitura ou gravao de um bloco de arquivo, o processo do usurio (processo cliente) envia um pedido ao processo servidor que executa o trabalho e retorna a resposta. Tudo que o Kernel faz manipular a comunicao. Outra grande vantagem do modelo cliente-servidor que adpata-se bem em sistemas distribudos. Em ambientes distribudos, o Kernel tambm gerencia a origem e o destino na comunicao. Sistemas distribudos O File Service uma especificao do que o sistema de arquivos oferece aos seus clientes. Ele descreve as primitivas disponveis, os parmetros que elas requisitam e as aes que elas executam, mas no fazem referncia de como elas podem ser implementadas. O File Server ajuda a implementar o File Service de forma que o usurio no precisa se preocupar onde determinado servidor de arquivos est localizado ou qual a funo deste servidor. Em um sistema distribudo possvel ter dois servidores que oferecem servios de arquivos Unix e DOS respectivamente. Desta forma possvel ter um terminal com mltiplas janelas, algumas rodando aplicaes Unix e outras aplicaes DOS, simultaneamente e sem conflitos. Sistemas operacionais multitarefas O termo multitarefa refere-se capacidade que um sistema operacional tem de "rodar" mais de um programa ao mesmo tempo. Dois mtodos so usados: Multitarefa cooperativa: o sistema verifica periodicamente se h outros programas requisitando a CPU. Se sim, a CPU liberada para o programa solicitante. Um exemplo clssico deste tipo foi o Windows 3.1. Multitarefa preemptiva: neste esquema, o sistema operacional mantm uma lista de processos que esto sendo executados. Quando cada processo da lista iniciado, atribudo a este uma prioridade pelo sistema operacional, que pode a qualquer momento ser modificada por interveno do prprio sistema, reordenando a lista. O sistema operacional mantm tambm o controle do tempo gasto com qualquer processo, redistribuindo este tempo de acordo com a prioridade dos mesmos. Sistemas operacionais multiusurios Permitem que mais de um usurio acesse o computador ao mesmo tempo. claro que para isto devem ser tambm multitarefa.

O Unix permite que vrias pessoas utilizem o computador ao mesmo tempo de trs maneiras diferentes: 1. Atravs de conexo por modem. Os usurios remotos podem identificar-se, "rodar" programas, relacionar arquivos, enviar correios eletrnicos e tudo mais que poderiam fazer caso estivessem fisicamente em frente a este computador; 2. Conexo tipo terminal, atravs das portas seriais; 3. Conexo em rede, onde possvel acessar qualquer tipo de recurso como CPU, memria e outros para executar programas ou dados de qualquer computador da rede como se o usurio estivesse fisicamente na frente do computador acessado. Sistemas operacionais multiprocessadores Existem computadores com vrios microprocessadores em uma mesma placa me, e necessrio um sistema operacional capaz de gerenciar estas CPUs simultaneamente. No multiprocessamento assimtrico, uma CPU principal mantm o controle total sobre o computador e tambm os outros processadores. Isso eventualmente pode consistir em um gargalo. J o processamento simtrico tira proveito de todos os microprocessadores por igual, mas em compensao muito mais difcil e complexo para ser implementado.

Você também pode gostar