Apostila Sistema Operacional

61
e-Tec Brasil Aula 1 – Visão geral de Sistemas Operacionais Objetivos Compreender os conceitos básicos de Sistemas Operacionais. Conhecer suas funções principais. Analisar o Sistema Operacional como uma máquina de níveis. 1.1 Conceitos básicos Diferentemente do que muitas pessoas imaginam, o computador não faz nada sozinho. Ele apenas processa uma série de informações inseridas pelo usuário para então fornecer os resultados. As informações inseridas e os resultados que recebemos precisam estar num formato que nós humanos conseguimos entender. Para facilitar essa comunicação entre homem e computador, foram criados os softwares ou programas de computador. Na realidade, tudo que fazemos com um computador é pela execução desses programas. De acordo com um dos principais autores da área, Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito de um sistema operacional é propiciar um ambiente no qual o usuário possa executar outros programas de forma conveniente, por esconder detalhes internos de funcionamento e eficiência, por procurar gerenciar de forma justa os recursos do sistema (Silberschatz, Galvin e Gagne, 2000, p.22]. Vamos estender o conceito de sistema operacional ao longo do curso, mas podemos definí-lo, de forma simples, como um conjunto de rotinas executa- das pelo processador com a principal função de controlar o funcionamento do computador, gerenciando os diversos recursos disponíveis no sistema. Na Figura 1.1 vemos a posição que um Sistema Operacional ou simplesmente “SO” ocupa dentre os vários elementos que compõem um sistema de com- putação. Você deve observar que a palavra “Usuários” está sendo usada com dois sentidos diferentes: para as pessoas que utilizam o computador e para os programas e utilitários instalados no computador. Sistema Operacional Sistema Operacional: segundo o Aurélio (verbete sistema), sistema operacional é um conjunto integrado de programas básicos, projetado para supervisionar e controlar a execução de programas de aplicação em um computador. e-Tec Brasil Aula 1 – Visão geral de Sistemas Operacionais 15

Transcript of Apostila Sistema Operacional

  • e-Tec Brasil

    Aula 1 Viso geral de Sistemas Operacionais

    Objetivos

    Compreender os conceitos bsicos de Sistemas Operacionais.

    Conhecer suas funes principais.

    Analisar o Sistema Operacional como uma mquina de nveis.

    1.1 Conceitos bsicosDiferentemente do que muitas pessoas imaginam, o computador no faz nada

    sozinho. Ele apenas processa uma srie de informaes inseridas pelo usurio

    para ento fornecer os resultados. As informaes inseridas e os resultados

    que recebemos precisam estar num formato que ns humanos conseguimos

    entender. Para facilitar essa comunicao entre homem e computador, foram

    criados os softwares ou programas de computador. Na realidade, tudo que fazemos com um computador pela execuo desses programas.

    De acordo com um dos principais autores da rea,

    Um sistema operacional um programa que atua como intermedirio

    entre o usurio e o hardware de um computador. O propsito de um

    sistema operacional propiciar um ambiente no qual o usurio possa

    executar outros programas de forma conveniente, por esconder detalhes

    internos de funcionamento e eficincia, por procurar gerenciar de forma

    justa os recursos do sistema (Silberschatz, Galvin e Gagne, 2000, p.22].

    Vamos estender o conceito de sistema operacional ao longo do curso, mas podemos defin-lo, de forma simples, como um conjunto de rotinas executa-

    das pelo processador com a principal funo de controlar o funcionamento

    do computador, gerenciando os diversos recursos disponveis no sistema. Na

    Figura 1.1 vemos a posio que um Sistema Operacional ou simplesmente

    SO ocupa dentre os vrios elementos que compem um sistema de com-

    putao. Voc deve observar que a palavra Usurios est sendo usada

    com dois sentidos diferentes: para as pessoas que utilizam o computador e

    para os programas e utilitrios instalados no computador.

    Sistema OperacionalSistema Operacional: segundo o Aurlio (verbete sistema), sistema operacional um conjunto integrado de programas bsicos, projetado para supervisionar e controlar a execuo de programas de aplicao em um computador.

    e-Tec BrasilAula 1 Viso geral de Sistemas Operacionais 15

  • Hardware

    Sistemas Operacionais

    Usurios

    Programadores e Analistas Usurios Aplicativos

    Figura 1.1: Viso do Sistema OperacionalFonte: Adaptado de Machado, 2004

    Resumidamente, o sistema operacional tem a funo de proteger a mquina

    do usurio e proteger o usurio da mquina.

    1.2 Funes principaisNa Figura 1.1 foi destacado o controle de hardware. Esta uma das funes bsicas do SO e pode ser desmembrada em:

    a) Facilidade de acesso aos recursos do sistema

    Um sistema de computao possui, normalmente, diversos componentes,

    como monitores, impressoras e discos rgidos. Quando utilizamos um desses

    dispositivos, no nos preocupamos com a maneira como realizada esta

    comunicao e os inmeros detalhes envolvidos.

    Uma operao frequente como, por exemplo, a leitura de um arquivo em

    um CD ou disco pode parecer simples. Existe um conjunto de rotinas espe-

    cficas, controladas pelo sistema operacional, que so responsveis por acio-

    nar a cabea de leitura e gravao da unidade de disco, posicionar na trilha

    e setor onde esto os dados, transferir os dados do disco para a memria e,

    finalmente, informar ao programa a chegada dos dados.

    O sistema operacional, ento serve de interface entre o usurio e os re-

    cursos de hardware, tornando esta comunicao transparente (ou imper-ceptvel) e permitindo ao usurio um trabalho mais eficiente e com menos

    possibilidades de erros.

    Voc pode obter mais informaes sobre setor e

    trilha no livro Organizao Estruturada de Computadores, de Andrew S. Tanembaum, 5 Edio, Editora Prentice-Hall,

    ou na prpria internet em sites especializados como o Clube

    do Hardware em http://www.clubedohardware.com.br

    Sistemas Operacionaise-Tec Brasil 16

  • b) Compartilhamento de recursos de forma organizada e protegida

    Se imaginarmos, por exemplo, que uma impressora pode ser utilizada por

    vrios usurios do sistema, ento dever existir algum controle para impedir

    que a impresso de um usurio interrompa a impresso de outro. O sistema

    operacional o responsvel por permitir o acesso organizado a esse e a ou-

    tros recursos disponveis no computador.

    O compartilhamento de recursos permite a diminuio de custos, na medida

    em que mais de um usurio pode utilizar as mesmas facilidades concorrente-

    mente, tais como discos, impressoras, linhas de comunicao, etc. Com isto,

    uma mesma impressora (ou linha de comunicao ou outro recurso) pode

    atender a vrios usurios.

    No s no controle do acesso a hardware compartilhado que o sistema ope-

    racional atua, ele nos permite executar vrias tarefas, como imprimir um docu-

    mento, copiar um arquivo pela internet ou processar uma planilha, entre ou-

    tros. O SO deve ser capaz de controlar a execuo concorrente de todas essas

    tarefas. Ainda podemos dizer que, embora alguns programas sejam escritos

    baseados nas instrues de um determinado processador, ser responsabilida-

    de do sistema operacional executar tarefas bsicas do micro, ou seja, ensinar

    ao processador como desenhar uma janela ou imprimir um documento.

    De um modo geral, os programas que os usurios executam no so

    escritos para um processador, mas sim para um SO. Isto facilita a comu-

    nicao do programa com o hardware do computador. As tarefas so

    executadas pelo SO, tornando os programas menores e mais fceis de

    serem programados (Machado e Maia, 2004. p.1-3).

    PROGRAMAS

    Sistema Operacional

    Hardware

    Figura 1.2: O Sistema Operacional funciona como uma interface entre ohardware e os programas de usuriosFonte: Adaptado de Machado, 2004

    Conforme mostra a Figura 1.2, o SO o intermedirio entre hardware e programas utilizados pelos usurios.

    e-Tec BrasilAula 1 Viso geral de Sistemas Operacionais 17

  • Em uma situao ideal, somente o sistema operacional deve ter acesso ao

    hardware do computador. Um programa que desejasse, por exemplo, fazer

    um desenho no monitor, obrigatoriamente teria de repassar esta tarefa ao

    sistema operacional. Este, por sua vez, iria analisar o pedido do programa e,

    considerando o pedido vlido, o executaria. Caso um determinado progra-

    ma resolvesse fazer um pedido estranho (por exemplo, apagar todos os da-

    dos do disco rgido), o SO simplesmente poderia ignorar tal pedido, terminar

    a execuo do programa e informar a ocorrncia ao usurio.

    Um programa de usurio no deve acessar recursos do computador diretamen-

    te, deve antes passar pela intermediao e autorizao do sistema operacional.

    Essa a condio ideal de um sistema operacional ESTVEL e SEGURO. Isto

    acontece, sobretudo, em sistemas operacionais para gerenciamento de rede

    local (Windows Server, Unix e Linux) e entre os sistemas operacionais para PCs que no foram desenvolvidos para serem servidores de rede como o

    MacOS e Windows nas suas verses XP, Vista e Windows 7.

    O antigo DOS no trabalhava nessas condies. Na poca em que foi criado,

    o PC tinha pouqussima memria RAM (1 MB) e o sistema operacional, como

    ficava residente em memria, tinha de ser o menor possvel. Uma soluo

    para diminuir o tamanho do SO foi permitir aos programas que acessassem

    diretamente o hardware do micro para tarefas especiais, como desenhar grficos ou enviar dados impressora. A Figura 1.3 ilustra isto.

    PROGRAMAS

    HARDWARE

    DOS

    Figura 1.3: O Sistema DOS permitia acesso direto ao hardware pelos programas de usurioFonte: Adaptado de Machado, 2004

    No entanto, isso acabava gerando um problema maior: se um programa

    fizesse um acesso indevido diretamente ao hardware do computador ou se o programa no estivesse bem escrito, isso inevitavelmente era refletido no

    hardware, fazendo com que o programa parasse por travamento. Esse pro-

    blema continuou em verses do Windows 3.x, 95, 98 e ME, por utilizarem o mesmo ncleo do DOS, permitindo acessos direto ao hardware.

    Sistemas Operacionaise-Tec Brasil 18

  • 1.3 Mquina de nveisA linguagem entendida pelo computador uma linguagem binria de difcil

    entendimento pelos seres humanos, sendo chamada de linguagem de bai-

    xo nvel ou de mquina. As linguagens mais prximas aos seres humanos

    so classificadas como linguagens de alto nvel. Os computadores enten-

    dem apenas programas feitos em sua linguagem binria. Os seres humanos,

    no entanto, elaboram programas em linguagens de alto nvel.

    Um computador, visto somente como um gabinete composto de circuitos

    eletrnicos, cabos e fontes de alimentao (hardware), no tem nenhuma utilidade. por meio de programas (software) que o computador consegue armazenar dados em discos, imprimir relatrios, gerar grficos, realizar cl-

    culos, entre outras funes. O hardware o responsvel pela execuo das instrues de um programa, com a finalidade de se realizar alguma tarefa.

    Nos primeiros computadores, a programao era realizada em painis, atra-

    vs de fios, exigindo um grande conhecimento do hardware e de linguagem de mquina. Isso trazia uma grande dificuldade para os programadores da

    poca, que normalmente eram os prprios engenheiros projetistas e cons-

    trutores desses computadores.

    A soluo para esse problema foi o surgimento do Sistema Operacional, que

    tornou a interao entre usurio e computador mais simples, confivel e efi-

    ciente. A partir desse acontecimento, no existia mais a necessidade de o pro-

    gramador se envolver com a complexidade do hardware para poder trabalhar; ou seja, a parte fsica do computador tornou-se transparente para o usurio.

    Podemos considerar o computador como uma mquina de nveis ou cama-

    das, em que inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel 1 (sistema operacional). Desta forma, o usurio pode enxergar a mquina

    como sendo apenas o sistema operacional, ou seja, como se o hardware no existisse. Esta viso modular e abstrata chamada mquina virtual.

    Para o sistema operacional, o programador e os programas tambm so

    usurios, pois usam recursos disponibilizados pelo SO. Em vrios pontos des-

    te texto, voc poder ver que a palavra usurio se aplica ao programador

    ou ao programa.

    Entretanto, um computador no possui apenas dois nveis, e sim tantos nveis

    quantos forem necessrios para adequar o usurio s suas diversas aplicaes.

    Existem muitas linguagens de alto nvel utilizadas para os mais diversos fins, como C, C++ e Java. Os cdigos-fontes escritos nessas linguagens precisam ser convertidos em linguagem binria. Por exemplo, a linguagem C utiliza uma forma de converso diferente da utilizada pela linguagem Java.

    e-Tec BrasilAula 1 Viso geral de Sistemas Operacionais 19

  • Quando o usurio est trabalhando em um desses nveis, no necessita saber

    da existncia das outras camadas, acima ou abaixo de sua mquina virtual.

    Aplicativos

    Utilitrios

    Hardware

    Sistema Operacional

    Linguagemde Mquina

    Microprogramao

    Dispositivos Fsicos

    Figura 1.4: O computador como mquina de nveisFonte: Adaptado de Machado, 2004

    Atualmente, a maioria dos computadores possui a estrutura mostrada na

    Figura 1.4, podendo conter mais ou menos camadas. A linguagem utilizada

    em cada um desses nveis diferente, variando da mais elementar (baixo

    nvel) mais sofisticada (alto nvel). Os aplicativos so programas executados

    pelo usurio. Os utilitrios so programas de uso genrico e frequente, ge-

    ralmente fornecidos junto com o SO. Cada um desses nveis ser abordado

    com mais detalhes nas prximas aulas.

    Um sistema operacional pode ento ser definido sob dois aspectos: como uma

    mquina estendida ou mquina virtual e como um gerenciador de recursos.

    O sistema operacional, como uma mquina virtual, esconde do programador

    detalhes do hardware, apresentando uma viso simples, mais conveniente e mais fcil de utilizar.

    O sistema operacional, como um gerenciador de recursos, fornece uma alo-

    cao controlada e ordenada dos recursos do computador entre os vrios

    programas que competem por esses recursos. Os recursos incluem processa-

    dores, memrias, dispositivos de E/S (unidades de disco, impressoras, mouse, etc.), interfaces de rede, dentre outros.

    Quando um computador tem vrios usurios, existe a necessidade de se

    proteger a memria , os dispositivos de E/S e os outros recursos. O sistema

    operacional ento mantm informao sobre quem est usando qual recur-

    Sistemas Operacionaise-Tec Brasil 20

  • so (para garantir os recursos a quem precisa deles), contabilizar o uso (para

    evitar que um usurio use por um perodo injustamente longo) e mediar

    quando h pedidos conflitantes sobre um mesmo recurso.

    ResumoNesta aula voc aprendeu alguns conceitos bsicos sobre sistemas operacio-

    nais, algumas questes importantes sobre seu funcionamento e funes prin-

    cipais. Viu tambm como a estruturao de um sistema em camadas pode ser

    vantajosa em termos de eficincia de todo o ambiente computacional.

    Atividades de aprendizagem1. Quais seriam as principais dificuldades que um programador te-

    ria no desenvolvimento de uma aplicao em um ambiente sem um

    sistema operacional?

    2. Explique o conceito de mquina virtual. Qual a grande vantagem em utilizar esta metodologia?

    3. Defina o conceito de uma mquina de camadas.

    4. Explique a seguinte frase: O Sistema Operacional protege o usurio da mquina e a mquina do usurio.

    e-Tec BrasilAula 1 Viso geral de Sistemas Operacionais 21

  • e-Tec Brasil

    Aula 2 Histrico e classificao

    Objetivos

    Conhecer o histrico de Sistemas Operacionais.

    Compreender como as inovaes de hardware colaboraram com o desenvolvimento dos Sistemas Operacionais.

    Classificar os sistemas conforme suas caractersticas principais.

    2.1 HistricoVimos que o sistema operacional interage diretamente com o hardware e, com isso, influenciado diretamente pela evoluo do mesmo. Portanto, a

    evoluo dos sistemas operacionais est, em grande parte, relacionada ao

    desenvolvimento de equipamentos cada vez mais velozes, compactos e de

    custos baixos e necessidade de aproveitamento e controle destes recursos.

    Assim, ao falar sobre o histrico dos sistemas operacionais, estaremos recor-

    dando um pouco a evoluo do hardware. Devemos lembrar que as datas das fases da evoluo so aproximadas.

    Desde os tempos do computador programado por chaves e cabos at o

    surgimento do teclado e impressora de caracteres, procurou-se ao longo do

    processo evolutivo do computador tornar a sua utilizao mais amigvel,

    precisa, rpida e eficaz.

    O conjunto de equipamentos e recursos utilizados para que o homem possa

    controlar o computador genericamente denominado interface. O aprimo-

    ramento da interface atingiu o ponto em que o usurio passou a interagir

    com pequenos desenhos ou smbolos de objetos comuns ao seu trabalho.

    Pensou-se em representar, por exemplo, a tarefa de impresso de documentos

    pelo desenho de uma pequena impressora e a eliminao de um documento

    por uma pequena lixeira. Surgiram os cones. O histrico da evoluo foi di-

    vidido em fases, cada uma marcada pela evoluo significativa do hardware, do software, da interao com o sistema ou por aspectos de conectividade. Primeiramente, devemos ressaltar que o mapeamento das datas de evolues

    e-Tec BrasilAula 2 Histrico e classificao 23

  • e geraes dos Sistemas Operacionais e das Arquiteturas de Computadores

    so, de certa forma, vagas e imprecisas, mas com certa estrutura.

    a) Primeira fase (1945-1955) - Vlvulas e Painis de Programao

    No incio da Segunda Guerra Mundial, surgiram os primeiros computadores

    digitais, formados por milhares de vlvulas, que ocupavam reas enormes,

    sendo de funcionamento lento e duvidoso.

    O ENIAC (Electronic Numerical Integrator and Computer) foi o primeiro com-putador digital de propsito geral. Criado para a realizao de clculos ba-

    lsticos, sua estrutura possua 17.468 vlvulas, 10 mil capacitores, 70 mil

    resistores e pesava 32 toneladas. Quando em operao era capaz de realizar

    cinco mil adies por segundo.

    A programao era feita em painis, atravs de fios, utilizando linguagem

    de mquina. No existia o conceito de sistema operacional. Outros com-

    putadores foram construdos nessa poca, mas eram utilizados apenas em

    universidades e rgos militares.

    Muitas empresas foram fundadas ou investiram no setor, como, por

    exemplo, a IBM, o que levou criao dos primeiros computadores para

    aplicaes comerciais.

    b) Segunda fase (1956-1965) - Transistores e Sistemas em Lote (batch)

    A criao do transistor e das memrias magnticas contribuiu para o enorme

    avano dos computadores da poca. O transistor permitiu o aumento da

    velocidade e da confiabilidade do processamento; as memrias magnticas

    permitiram o acesso mais rpido aos dados, maior capacidade de armazena-

    mento e computadores menores.

    Surgiram os primeiros sistemas operacionais, para tentar automatizar as tare-

    fas manuais at ento realizadas e as primeiras linguagens de programao,

    como Assembly e Fortran. Os programas deixaram de ser feitos diretamente no hardware, o que facilitou enormemente o processo de desenvolvimento de programas. Surgiu o processamento em batch, em que um lote (batch) de programas e de dados era submetido ao computador por vez.

    Sistemas Operacionaise-Tec Brasil 24

  • Processamento

    Processamento

    Processamento

    Fita de Entrada

    Fita de Sada

    Cartes Perfurados Fita de Entrada

    Fita de Sada

    Relatrios

    Figura 2.1: Ciclos de processamento na segunda faseFonte: Adap tado de Machado, 2004

    Os programas passaram a ser perfurados em cartes que, submetidos a uma

    leitora, eram processados e gravados em uma fita de entrada, conforme Fi-

    gura 2.1. A fita de entrada, ento, era lida pelo computador, que executava

    um programa de cada vez, processando e gravando o resultado em uma fita

    de sada. Ao trmino de todos os programas, as fitas de sada eram lidas e

    processadas novamente para serem impressas, gerando assim os relatrios.

    Com o processamento em batch, um grupo de programas era submetido de uma s vez, o que diminua o tempo existente entre a execuo dos progra-

    mas, permitindo, assim, melhor uso do computador.

    c) Terceira fase (1966-1980) - Circuitos Integrados e Multiprogramao

    Por meio dos circuitos integrados e, posteriormente, dos microprocessadores,

    foi possvel viabilizar e difundir o uso de sistemas computacionais por empre-

    sas, devido diminuio de seus custos de aquisio. Houve um aumento no

    poder de processamento e diminuio no tamanho dos equipamentos.

    A evoluo dos processadores de entrada/sada permitiu que, enquanto um

    programa esperasse por uma operao de leitura/gravao, o processador

    executasse um outro programa. Para tal, a memria foi dividida em parti-

    es, em que um programa esperava sua vez para ser processado. A essa

    tcnica de compartilhamento da memria principal e processador deu-se o

    nome de multiprogramao.

    MultiprogramaoMultiprogramao a execuo simultnea de dois ou mais programas.

    e-Tec BrasilAula 2 Histrico e classificao 25

  • Com a substituio das fitas por discos no processo de submisso dos pro-

    gramas, o processamento batch tornou-se mais eficiente, pois permitia a alterao na ordem de execuo das tarefas, at ento somente sequencial.

    A essa tcnica de submisso de programas chamou-se spooling, que, mais tarde, tambm viria a ser utilizada no processo de impresso.

    Os sistemas operacionais, mesmo com a evoluo do processamento batch e a multiprogramao, ainda estavam limitados a processamentos que no exigiam

    comunicao com o usurio. Para permitir a interao rpida entre o usurio e o

    computador, foram adicionados terminais de vdeo e teclado (interao on-line).

    A multiprogramao evoluiu, preocupada em oferecer aos usurios tem-

    pos de resposta razoveis e uma interface cada vez mais amigvel. Para tal,

    cada programa na memria utilizaria o processador em pequenos intervalos

    de tempo. A esse sistema de diviso de tempo do processador chamou-se

    time-sharing (tempo compartilhado).

    Outro fato importante nessa fase foi o surgimento do sistema operacional UNIX.

    Ao final dessa fase, com a evoluo dos microprocessadores, surgiram os

    primeiros microcomputadores, muito mais baratos que qualquer um dos

    computadores at ento comercializados.

    d) Quarta fase (1981-1990) - Computadores Pessoais

    Os mini e superminicomputadores se firmaram no mercado e os microcom-

    putadores ganharam um grande impulso. Surgem as estaes de trabalho

    (workstations) que, apesar de monousurias, permitem que se executem diversas tarefas concorrentemente, criando o conceito de multitarefa.

    No final dos anos 80 os computadores tiveram um grande avano, decorrente

    de aplicaes que exigiam um enorme volume de clculos. Para acelerar o pro-

    cessamento, foram adicionados outros processadores, exigindo dos sistemas

    operacionais novos mecanismos de controle e sincronismo. Com o multipro-

    cessamento, foi possvel a execuo de mais de um programa simultaneamen-

    te, ou at de um mesmo programa por mais de um processador. Foram intro-

    duzidos processadores vetoriais e tcnicas de paralelismo de processamento,

    fazendo com que os computadores se tornassem ainda mais poderosos.

    Duas inovaes de hardware foram fundamentais para o

    surgimento da multiprogramao: os discos magnticos e as

    interrupes de hardware. Os discos magnticos compem

    praticamente todas as mquinas atuais, com vrios Gigas e at

    Terabytes de capacidade de armazenamento. As interrupes

    de hardware so sinais que as controladoras de dispositivos

    enviam CPU para avisar que as operaes de entrada ou

    sada foram finalizadas ou tiveram algum problema.

    Nos sistemas time-sharing, os usurios possuam um terminal que podia interagir com o programa em

    execuo. Esses usurios tinham a iluso de possuir a mquina

    dedicada execuo de seu programa. O que no era verdade!

    Essa iluso vinha da diviso de tempo de processamento de CPU

    entre os usurios

    Existem na internet muitas informaes sobre o sistema UNIX, sistema pai de muitos sistemas operacionais atuais,

    como o Linux, Solaris e outros. Procure o vdeo na internet

    chamado de Revoluo dos Sistemas Operacionais, do

    Ingls Revolution OS, que conta um pouco dessa histria.

    Sistemas Operacionaise-Tec Brasil 26

  • O uso das redes distribudas se difundiu por todo o mundo, permitindo o

    acesso a outros sistemas de computao, independentemente de cidade,

    pas e, at mesmo, fabricante. Os softwares de rede passaram a estar intima-mente relacionados com o sistema operacional de cada mquina e surgem

    os sistemas operacionais de rede.

    e) Quinta fase (1991-2000)

    Houve grandes avanos em termos de hardware, software e telecomunica-es como consequncia da evoluo das aplicaes, que necessitavam cada

    vez mais de capacidade de processamento e armazenamento de dados. Sis-

    temas especialistas, sistemas multimdia, bancos de dados distribudos, inte-

    ligncia artificial e redes neurais so apenas alguns exemplos da necessidade

    cada vez maior de informao e de capacidade de processamento.

    O conceito de processamento distribudo explorado nos sistemas operacio-

    nais, de forma que suas funes estejam espalhadas por vrios processado-

    res atravs de redes de computadores.

    A dcada de 90, foi definitiva para a consolidao dos sistemas opera-

    cionais baseados em interfaces grficas (TANENBAUM, 2000, p. 4 a 12).

    Atualmente temos as plataformas multicore (vrios ncleos) disponveis em computadores pessoais e at notebooks, possibilitando cada vez mais a pa-ralelizao de aplicaes e elevando, em muito, o tempo de execuo dos

    programas. Os fanticos pelos jogos de computador que o digam!

    Vamos relembrar as principais caractersticas e evolues de cada fase? Faa

    um quadro, sumarizando cada uma das cinco fases, para ajud-lo no estu-

    do e entendimento da evoluo de hardware necessria para o desenvolvi-mento dos sistemas operacionais. Para cada fase, anote os acontecimentos

    mais importantes.

    2.2 Tipos de Sistemas OperacionaisOs tipos de sistemas operacionais e sua evoluo esto relacionados direta-

    mente com a evoluo do hardware e das aplicaes por ele suportadas e podem ser classificados conforme Figura 2.2.

    e-Tec BrasilAula 2 Histrico e classificao 27

  • Tipos de SistemasOperacionais

    SistemasMonoprogamveis/

    Monotarefas

    SistemasMonoprogamveis/

    Multitarefa

    Sistemascom MultiplosProcessadores

    Figura 2.2: Tipos de sistemas operacionaisFonte: Adaptado de Macha, 2004

    Considerando o processamento, podemos classificar os sistemas opera-

    cionais de acordo com a quantidade de tarefas que podem ser executadas

    simultaneamente.

    Monoprogramveis ou Monotarefa podem executar apenas um progra-ma por vez. Para que um usurio possa executar outro programa, dever

    aguardar a finalizao do programa corrente. Esta era uma caracterstica dos

    primeiros sistemas operacionais que estavam relacionados ao surgimento

    dos primeiros computadores na dcada de 60.

    Caracterizavam-se por permitir que todos os recursos de hardware ficassem exclusivamente dedicados a um nico programa. Em consequncia, sua prin-

    cipal desvantagem residia no fato de que enquanto um programa aguarda-

    va por um evento externo, como a digitao de um caractere do teclado,

    o processador permanecia ocioso. Alm disso, tanto a memria principal

    quanto os recursos de E/S (Entrada e Sada) como impressoras e discos eram

    subutilizados, uma vez que todos estariam dedicados a um nico programa

    como mostra a Figura 2.3.

    Programa/Tarefa

    Memria UCP

    Dispositivos de E/S

    Figura 2.3: Sistema monoprogramvel ou monotarefaFonte: Adaptado de Machado, 2004

    Monoprogramveis ou Monotarefa

    Sistemas monoprogramveis ou monotarefa so aqueles em que executado, por vez, um nico programa ou uma nica tarefa.

    Sistemas Operacionaise-Tec Brasil 28

  • Sistemas Multiprogramveis ou Multitarefa: os recursos computacionais so

    compartilhados entre os diversos usurios e suas aplicaes. Podemos ob-

    servar o compartilhamento de memria e do processador. Nesse caso, o

    compartilhamento de tempo no processador distribudo. Assim, o usurio

    tem a impresso que vrios processos esto sendo executados simultanea-

    mente. Um dos processos ocupa o processador enquanto os outros ficam

    enfileirados, aguardando a sua vez de entrar em execuo. Cabe ao sistema

    operacional o papel de gerenciar de forma ordenada e protegida o acesso

    concorrente aos recursos disponveis.

    Sistemas multiprogramveis ou multitarefa permitem o compartilhamento

    dos recursos computacionais entre diversos usurios e aplicaes, permitin-

    do sua execuo concorrente.

    A vantagem desse tipo de sistema uma melhor utilizao dos recursos dis-

    ponveis, o que resulta em menor tempo de resposta das aplicaes. Alm de

    um custo reduzido, uma vez que haver o compartilhamento dos recursos

    entre as diferentes aplicaes e aumento da produo do usurio.

    Graas aos sistemas multiprogramveis possvel editar um documento no

    MS Word, navegar na internet, ouvir msica, utilizar os mensageiros instan-tneos (MSN), tudo ao mesmo tempo!

    Sistemas com mltiplos processadores: o sistema operacional distribui as tarefas entre dois ou mais processadores. A vantagem desse tipo de sistema

    permitir que mais de um programa possa ser executado simultaneamente

    ou que um mesmo programa seja dividido em vrias partes e executado si-

    multaneamente nos vrios processadores, aumentando o desempenho.

    Esse tipo de sistema surgiu da necessidade de aplicaes que requeriam um

    grande poder computacional, como sistemas de previso do tempo, modela-

    gens, simulaes, desenvolvimento aeroespacial, entre outros. Com mltiplos

    processadores, possvel reduzir drasticamente o tempo de processamento

    destas aplicaes. Inicialmente, as configuraes limitavam-se a poucos pro-

    cessadores, mas, atualmente existem sistemas com milhares de processadores.

    Sistemas com mltiplos processadores Sistemas com mltiplos proces-sadores caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando de forma conjunta na soluo de um problema.

    Os sistemas com mltiplos processadores podem ser classificados em fortemente acoplados e fracamente acoplados, em funo da comunicao entre CPUs e o grau de compartilhamento da memria. Em sistemas fortemente acoplados, h uma nica memria principal compartilhada por todos os processadores, enquanto em sistemas fracamente acoplados cada sistema tem sua prpria memria. Com isso, a taxa de transferncia entre processadores em sistemas fortemente acoplados bem maior que em sistemas fracamente acoplados.

    e-Tec BrasilAula 2 Histrico e classificao 29

  • ResumoNesta aula voc pde perceber como o desenvolvimento de inovaes de

    hardware foi importante para a evoluo dos sistemas operacionais ao longo dos anos. Viu tambm como podemos classificar os sistemas operacionais

    por suas caractersticas principais. Alguns conceitos bsicos importantes fo-

    ram vistos e que sero de fundamental relevncia para as aulas seguintes.

    Ento se ficou alguma dvida, revise esta aula!

    Atividades de aprendizagem1. Por que dizemos que existe uma subutilizao de recursos em sistemas

    monoprogramveis?

    2. Quais as vantagens dos sistemas multiprogramveis?

    3. O que caracteriza o processamento batch? Que aplicaes podem ser processadas neste tipo de ambiente?

    4. Qual a grande diferena entre sistemas fortemente acoplados e fraca-mente acoplados?

    Sistemas Operacionaise-Tec Brasil 30

  • e-Tec Brasil

    Aula 3 Elementos de hardware e software Parte I

    Objetivos

    Conhecer a arquitetura bsica de computadores.

    Descrever os principais dispositivos de entrada e sada.

    Compreender conceitos de software utilitrio.

    3.1 HardwareO hardware do computador constitudo por um conjunto de componentes interligados: processadores, memria principal, registradores, terminais, im-

    pressoras e discos magnticos, alm de outros dispositivos fsicos.

    Os componentes fsicos do computador so agrupados em trs subsistemas bsicos:

    Unidade Central de Processamento (CPU);

    Memria;

    Dispositivos de Entrada e Sada.

    3.1.1 Unidade Central de Processamento (CPU)A CPU tem como funo principal unificar todo o sistema, controlando as

    funes realizadas em cada unidade funcional. responsvel pela execuo

    de todos os programas, que obrigatoriamente devero estar armazenados

    na memria principal.

    A unidade central de processamento dividida em dois componentes bsicos:

    Unidade de controle (UC);

    Unidade lgica e aritmtica (ULA);

    A UC responsvel por controlar as atividades de todos os componentes

    do computador, mediante a emisso de pulsos eltricos (sinais de con-

    trole) gerados por um dispositivo chamado clock. Esse controle pode ser exercido, por exemplo, sobre a gravao de um dado no disco ou a busca

    e-Tec BrasilAula 3 Elementos de hardware e software Parte I 31

  • de uma instruo na memria.

    A ULA responsvel pela realizao de operaes lgicas (testes e compara-

    es) e aritmticas (somas e subtraes).

    A velocidade de processamento de uma unidade central de processamento

    (CPU) determinada pelo nmero de instrues que o processador executa

    por unidade de tempo, normalmente em segundos. A unidade de medida

    MIPS (milhes de instrues por segundo).

    A transmisso de dados entre o receptor e o transmissor controlada por um

    sinal de controle chamado clock. Este sinal usado para sincronizar o transmis-sor com o receptor, isto , para informar ao receptor que um dado est sendo

    transmitido. utilizado pela unidade de controle para a execuo das instrues.

    O clock um dispositivo localizado na unidade central de processamento, que gera pulsos eltricos sncronos em um determinado intervalo de tem-

    po (sinal de clock). A quantidade de vezes que este pulso se repete em um segundo define a frequncia do clock. Toda transmisso paralela utiliza um sistema de clock. Esses sistemas de clock, entretanto, so independentes, isto , o sistema de clock usado na transmisso de dados entre o processador e a memria RAM no o mesmo usado na transmisso de dados entre o

    disco rgido e a placa-me, por exemplo.

    3.1.2 MemriasA memria tem por funo armazenar internamente toda informao que

    manipulada pelo computador: os programas e os dados. A memria pode ser

    classificada quanto sua velocidade (ou tempo) de acesso, capacidade de ar-

    mazenamento, custo e volatilidade. Em funo dessas caractersticas, pode-se

    estabelecer uma hierarquia de tipos de memrias, conforme Figura 3.1.

    Registradores

    Memria Cache

    Memria Principal

    Memria Secundria

    Menor custoe velocidade

    de acesso

    Maiorcapacidade de

    armazenamento

    Figura 3.1: Comparativo dos diversos tipos de memriaFonte: Adaptado de Machado, 2004

    Atualmente os nossos processadores conseguem

    executar bilhes de instrues por segundo!

    Sistemas Operacionaise-Tec Brasil 32

  • a) Registradores

    So dispositivos de alta velocidade, localizados fisicamente na unidade central

    de processamento, para armazenamento temporrio de dados. O nmero de

    registradores varia em funo da arquitetura de cada processador. Existem

    registradores de uso especfico (com propsitos especiais) e de uso geral.

    Os registradores de uso especfico so:

    Contador de instrues - responsvel por armazenar o endereo da pr-xima instruo que a unidade central de processamento dever executar.

    Toda vez que uma instruo j est sendo processada o endereo da pr-

    xima instruo a ser processada armazenado no contador de instrues;

    Apontador de pilha: responsvel por armazenar o endereo de memria do topo da pilha. Pilha uma estrutura de dados onde o sistema mantm

    informaes sobre tarefas que estavam sendo processadas, mas que por

    algum motivo tiveram que ser interrompidas;

    Registrador de estado: responsvel por armazenar informaes sobre a exe-cuo do programa (status do programa). A cada instruo executada, o re-

    gistrador de estado alterado conforme o resultado gerado pela instruo.

    b) Memria cache

    uma memria voltil de alta velocidade. Quando o processador faz

    referncia a um dado armazenado na memria principal, verifica antes se

    este dado no est armazenado na memria cache. Ao encontrar o dado armazenado na memria cache, o processador no acessa a memria princi-pal, diminuindo o tempo de processamento.

    c) Memria principal

    a memria responsvel pelo armazenamento dos programas que esto

    sendo executados pela CPU em um certo instante, bem como dos dados

    utilizados pelos programas em execuo. Para que um programa possa ser

    executado pela CPU necessrio que ele seja previamente armazenado na

    memria principal. Existem ainda dois tipos de memria: ROM (read only memory memria somente leitura) e RAM (random access memory me-mria de acesso randmico).

    Para aumentar o desempenho no funcionamento das memrias caches feita a hierarquizao da cache em mltiplos nveis. O nvel da cache mais alto chamado de L1 (Level 1), com baixa capacidade de armazenamento e com altssima velocidade de acesso. O segundo nvel, L2 (Level 2), possui maior capacidade de armazenamento, porm com velocidade de acesso inferior a L1, e assim sucessivamente. Quando a CPU necessita de uma informao da memria principal, primeiramente verifica a cache L1, caso no ache, segue para a cache L2, assim por diante. Se no encontrar em nenhum dos nveis, busca o dado na memria principal.

    e-Tec BrasilAula 3 Elementos de hardware e software Parte I 33

  • Quando usamos o termo memria para um computador, normalmente

    estamos nos referindo sua memria RAM. Se um programa que o usurio

    pretenda executar no estiver na memria RAM, ento ele deve ser transfe-

    rido de um sistema de memria secundrio (como discos rgidos, unidades

    de CD-ROM e etc.) para a memria RAM.

    A RAM um tipo de circuito eletrnico de memria que permite a leitura e

    a escrita de dados em seu interior. S que ela uma memria voltil (como

    os registradores e a cache), isto , cortando-se sua alimentao eltrica, apa-gamos os dados que estavam nela armazenados.

    J a caracterstica principal da ROM que o seu contedo no perdido

    quando cortamos a sua fonte de alimentao e por isso utilizada para

    manter os programas iniciais do computador. Quando ligamos o micro, o

    processador no sabe o que fazer; ele precisa executar um programa; este

    programa necessrio para dar o boot gravado em uma memria ROM, localizada na placa-me do computador.

    Um programa armazenado em ROM recebe o nome de firmware. Na me-mria ROM do micro h basicamente trs programas (firmware) principais:

    BIOS (Basic Input/Output System, Sistema bsico de Entrada/Sada);

    POST (Power On Self Test, Autoteste ao Ligar);

    Setup (programa que permite alterar vrios itens da configurao do computador).

    A memria principal composta por unidades de acesso chamadas clulas,

    cada uma capaz de armazenar um determinado nmero de bits. Cada clula tem um endereo, conforme Figura 3.2, que uma referncia posio da c-

    lula dentro da memria, como o endereo de uma casa. Quando um programa

    deseja ler ou escrever um dado em uma clula, deve primeiro especificar qual o

    endereo de memria desejado. O endereo da clula a ser acessada fica arma-

    zenado em um registrador denominado registrador de endereo de memria.

    Sistemas Operacionaise-Tec Brasil 34

  • 01

    2

    N

    Endereos

    Clulas

    Instruoou Dado

    Figura 3.2: Clulas de memria e seus endereosFonte: Adaptado de Machado, 2004

    O nmero de clulas endereadas na memria principal limitado pelo ta-

    manho do registrador de endereo. No caso de o registrador possuir n bits, a memria poder enderear 2n clulas.

    d) Memria secundria

    Memria secundria um termo genrico para designar diversos compo-

    nentes que permitem gravar e ler dados permanentes. O seu acesso lento,

    se comparada com as memrias cache ou principal, porm relativamente apresentam custo mais baixo e capacidade de armazenamento superior.

    Exemplos de memria secundria so as fitas magnticas, discos rgidos

    (HDs), CDs, DVDs, etc.

    3.1.3 Dispositivos de entrada e sadaPermitem a comunicao entre o computador e o mundo externo. Alguns

    dispositivos servem para a comunicao homem-mquina, como teclados,

    monitores de vdeo, impressoras, plotters, entre outros. A implementao

    de interfaces mais amigveis permite cada vez mais que pessoas sem co-

    nhecimento especfico sobre informtica possam utilizar o computador. So

    alguns exemplos desses tipos de dispositivos: Scanner, caneta tica, mouse, dispositivos sensveis voz humana, e etc.

    3.1.4 BarramentoA CPU, a memria principal e os dispositivos de E/S so interligados atravs

    de linhas de comunicao denominadas barramentos, barras ou vias. Um

    Clulas de memriaClulas de memria so unidades de acesso da memria principal.

    Alm das memrias RAM e ROM descritas no texto, temos ainda a PROM (memria programvel somente de leitura) que pode ser gravada pelo usurio uma nica vez, a EPROM (memria programvel e apagvel somente de leitura) que pode ser gravada ou regravada por meio de um equipamento que fornece as voltagens adequadas em cada pino (para apagar os dados deve-se utilizar raios ultravioleta no chip), e por ltimo temos a EEPROM (memria programvel e apagvel eletronicamente somente de leitura), que pode ser gravada, apagada ou regravada utilizando um equipamento que fornece as voltagens adequadas em cada pino.

    e-Tec BrasilAula 3 Elementos de hardware e software Parte I 35

  • barramento um conjunto de fios paralelos (linhas de comunicao), por

    onde trafegam informaes, como dados, endereos ou sinais de controle.

    Um esquema grfico de um barramento mostrado na Figura 3.3.

    CPU

    Memria

    Dispositivo E/S

    Fluxo de Dados

    Fluxo de Controle

    UnidadeLgica e

    Aritmtica

    Unidade deControle

    Registradores

    Figura 3.3: Esquema grfico dos barramentosFonte: Adaptado de Machado, 2004

    O barramento pode ser classificado como unidirecional (transmisso em

    um s sentido) ou bidirecional (transmisso em ambos os sentidos). Existem

    trs tipos de barramentos, que se diferenciam uns dos outros de acordo

    com o que transportam:

    Barramento de dados: transmite informaes entre a memria princi-pal e a unidade central de processamento;

    Barramento de endereos: utilizado pela unidade central de processa-mento para especificar o endereo da clula de memria que ser acessada;

    Barramento de controle: por onde a unidade central de processamen-to envia os pulsos de controle relativos s operaes de leitura e gravao.

    3.1.5 PipeliningO conceito de processamento pipeline a diviso de uma tarefa em uma se- quncia de subtarefas. O processador, por meio de suas vrias unidades funcio-

    nais pipeline, funciona de forma a permitir que, enquanto uma instruo se en-

    contra na fase de execuo, uma outra instruo possa estar na fase de busca.

    A tcnica de pipelining pode ser empregada em sistemas com um ou mais

    Sistemas Operacionaise-Tec Brasil 36

  • processadores, em diversos nveis, e tem sido a tcnica de paralelismo mais

    utilizada para maior desempenho dos sistemas de computadores.

    Podemos fazer a comparao de um pipelining com um motor de carro de quatro tempos e vrios cilindros. Enquanto um cilindro est na fase de ali-

    mentao, outro est na fase de compresso, outro na de exploso e assim

    por diante. Isto aumenta bastante a eficincia do motor.

    3.2 SoftwareNa Figura 1.4 vimos trs camadas/nveis de software: aplicativos, utilitrios e sistema operacional. Os software ou programas executados pelos usurios so atualmente chamados, atualmente, de aplicativos. Antigamente se cha-

    mavam simplesmente programas. Quase tudo que o usurio consegue fazer

    utilizando o computador necessita de um aplicativo. Esses programas podem

    ser, por exemplo, um editor de textos, uma planilha ou um programa de im-

    posto de renda, de controle de estoques ou de contas a receber.

    Antigamente havia uma distino mais ntida entre os aplicativos e os utilit-

    rios, pois havia um personagem a mais no cenrio: o operador do computa-

    dor. Este executava algumas atividades especficas, como copiar de fita para

    disco e vice-versa ou operar as impressoras. Para executar essas atividades o

    operador precisava de uma srie de programas, como, por exemplo, um pro-

    grama para localizar um arquivo no computador. A maioria dos programas

    requeridos pelo operador era chamada de utilitrios.

    Hoje em dia continua a existir um conjunto de programas, utilizados como

    interface entre o usurio e o hardware. O termo utilitrio , assim, uma refe-rncia a softwares relacionados com servios do sistema operacional, como os compiladores, linkers, depuradores e outros.

    Os software aplicativos podem ser identificados como aqueles que esto mais prximos do usurio comum, como os navegadores, editores de texto,

    jogos, etc. J os software utilitrios so aqueles que fazem a intermediao entre os aplicativos e o ncleo do sistema operacional, possuindo funes

    mais especficas e geralmente mais restritas, como ligadores, depuradores,

    compiladores, etc.

    Dentre os software utilitrios podemos destacar alguns que do apoio programao de computadores: tradutores, compiladores, montadores, in-

    e-Tec BrasilAula 3 Elementos de hardware e software Parte I 37

  • terpretadores, ligadores, carregadores, depuradores. Nas prximas sees

    estaremos abordando esses utilitrios com mais detalhes.

    3.2.1 Tradutores, compiladores e montadoresCom o surgimento das primeiras linguagens de montagem (Assembly) e as linguagens de alto nvel, o programador passou a se preocupar menos com

    aspectos de hardware e a escrever em uma linguagem mais prxima da linguagem humana.

    Apesar das vantagens proporcionadas pelas linguagens de montagem e de alto

    nvel, que propiciaram um aumento enorme na produtividade dos programado-

    res, os programas no esto prontos para serem executados diretamente pela

    CPU. Eles devero passar por uma etapa de converso, quando a codificao

    do programa traduzida para cdigo de mquina. essa a funo do tradutor.

    O utilitrio tradutor tem a funo de converter todo o cdigo fonte escrito

    em linguagem de alto nvel para cdigo de mquina.

    O tradutor, pelo tipo de linguagem de programao utilizada, pode ser cha-

    mado de montador ou compilador:

    Programa fonte Programa objetoTradutor

    MontadorLinguagemde Montagem Mdulo objeto

    Compilador Mdulo objetoLinguagemde Alto Nvel

    Figura 3.4: Representao das diferenas entre o tradutor, montador e compiladorFonte: Adaptado de Machado, 2004

    3.2.2. InterpretadorAssim chamado um tradutor que no gera o mdulo objeto. A partir de um

    programa fonte, escrito em linguagem de alto nvel, o interpretador, no momen-

    to da execuo do programa, traduz cada instruo e a executa em seguida.

    Sua desvantagem o tempo gasto na traduo das instrues de um pro-

    grama toda vez que este for executado, j que no existe a gerao de

    um cdigo executvel.

    A denominao montador ocorre quando gerado o mdulo

    objeto (a linguagem de mquina) a partir de uma linguagem de

    montagem (assembler). A denominao compilador dada

    ao utilitrio responsvel por gerar, a partir de um programa

    escrito em linguagem de alto nvel (Cobol, C, Delphi, etc.), um programa em linguagem de

    mquina (mdulo objeto)

    Sistemas Operacionaise-Tec Brasil 38

  • Alguns exemplos de linguagens interpretadas so o Basic e o Perl.

    3.2.3. LinkerO linker (ligador) o utilitrio responsvel por gerar, a partir de um ou mais mdulos objeto, um nico programa executvel, conforme Figura 3.5. Sua

    funo resolver todas as referncias simblicas existentes entre os mdulos

    - objeto, reservar memria para a execuo do programa e determinar uma

    regio da memria onde o programa ser carregado para sua execuo.

    Mdulo objeto

    .

    .

    .

    Mdulo objeto

    Mdulo objeto

    Linker Programa Executvel

    Figura 3.5: Representao do papel do linkerFonte: Adaptado de Machado, 2004

    Em ambientes multiprogramveis esse tipo de alocao fixa feita pelo linker invivel porque neste caso a memria compartilhada entre diversos pro-

    gramas: pouco provvel que no momento em que o sistema carrega um

    programa, sua rea de memria que foi predeterminada esteja disponvel. A

    soluo para isso permitir que um programa possa ser executado em qual-

    quer regio disponvel da memria, durante a sua carga (cdigo relocvel).

    Esse tipo de relocao no realizado pelo linker, e sim por outro utilitrio, chamado loader, responsvel por carregar os programas na memria.

    3.2.4. LoaderO loader (carregador) o utilitrio responsvel por colocar fisicamente na mem-ria principal um programa para sua execuo. Pode permitir que um programa

    seja carregado em regies diferentes toda vez que for trazido para a memria.

    Quando o loader carrega um programa para memria principal, ele alo-ca uma rea de cdigo, uma rea de dados e uma rea de pilha. A rea

    de cdigo armazena o programa executvel, a rea de dados armazena

    as variveis e constantes utilizadas no programa e a rea de pilha armaze-

    na os endereos de retorno das funes ou procedimentos chamados du-

    Os IDEs (Ambientes Integrados de Desenvolvimento), como o Dev C++, executam essas funes (de compilador e linker e at a carga do executvel) de uma vez, quando voc aperta o F9. Voc no percebe quando executada cada uma delas, embora sejam distintas. Voc s consegue ver, na pasta onde voc est trabalhando, os programas fonte (com terminao .c ou .cpp) e o executvel (terminao .exe); o mdulo objeto intermedirio (criado durante a compilao) voc no v mais.

    e-Tec BrasilAula 3 Elementos de hardware e software Parte I 39

  • rante a execuo do programa. O funcionamento do carregador depende

    do cdigo gerado pelo linker e, de acordo com este, pode ser classificado como absoluto ou relocvel:

    Loader absoluto - o loader s necessita conhecer o endereo de memria inicial e o tamanho do mdulo para realizar o carregamento.

    Ento, o loader transfere o programa da memria secundria para a me-mria principal e inicia sua execuo;

    Loader relocvel - o programa pode ser carregado em qualquer posi-o de memria e o loader responsvel pela relocao no momento do carregamento.

    O processo completo de compilao, link-edio e carga de um programa mostrado na Figura 3.6.

    LigaoDinmica

    Tempode Carga

    Tempo deExecuo

    Mdulo deCarga

    Programa-fonte

    Programa-fonte

    Compiladorou Montador

    Link edio

    Bibliotecado Sistema Carregador

    Biblioteca doSistema Carregada

    Dinamicamente

    ImagemBinria naMemria

    OutrosMdulosObjeto

    Figura 3.6: As vrias etapas do desenvolvimento e processamento de um programaFonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

    Sistemas Operacionaise-Tec Brasil 40

  • 3.2.5. DepuradorO desenvolvimento de programas est sujeito a erros de lgica, indepen-

    dentemente da metodologia ou linguagem utilizadas pelo programador. O

    depurador o utilitrio que permite ao usurio acompanhar e controlar a

    execuo de um programa a fim de detectar erros na sua estrutura. O depu-

    rador ajuda a detectar os erros, mas no os corrige. O depurador geralmente

    oferece ao usurio os seguintes recursos:

    acompanhar a execuo de um programa instruo por instruo;

    possibilitar a alterao e a visualizao do contedo de variveis;

    colocar pontos de parada dentro do programa, de forma que, durante a execuo, o programa pare nos pontos determinados;

    especificar em forma de envio de mensagem, toda vez que o contedo de uma varivel for modificado.

    ResumoNesta aula voc pde estudar e identificar os elementos bsicos de uma ar-

    quitetura clssica de computadores. Pode compreender as funes e carac-

    tersticas de cada elemento de hardware. Nesta aula, fizemos tambm um apanhado inicial sobre softwares utilitrios que, mesmo sem percebermos muitas vezes, nos ajudam e muito em tarefas do dia a dia.

    Atividades de aprendizagem

    1. O que so memrias volteis e no volteis?

    2. Quais os benefcios de uma arquitetura de memria cache com mltiplos nveis?

    3. Diferencie as funes bsicas dos dispositivos de E/S.

    4. Como a tcnica de pipelining melhora o desempenho dos sistemas computacionais?

    5. Por que o cdigo-objeto gerado pelo tradutor ainda no pode ser executado?

    6. Por que a execuo de programas interpretados ainda mais lenta que a de programas compilados?

    Esses recursos de depurao de programas tambm esto presentes em IDEs, geralmente na opo Debug.

    e-Tec BrasilAula 3 Elementos de hardware e software Parte I 41

  • e-Tec Brasil

    Aula 4 Elementos de hardware e software Parte II

    Objetivos

    Conhecer conceitos mais especficos sobre programas de sistema.

    Analisar o mecanismo de interrupo na concorrncia entre pro-

    cessos.

    Descrever as operaes de entrada e sada.

    Conhecer as caractersticas dos sistemas em lote e sistemas de

    tempo compartilhado.

    Compreender a funcionalidade de alguns servios do sistema ope-

    racional.

    Analisar as caractersticas bsicas de uma arquitetura de sistema

    operacional.

    4.1 Linguagem de controleDenominada, tambm de linguagem de comando, a forma mais direta de

    um usurio se comunicar com o sistema operacional (SO). oferecida por

    todos os SO para que, atravs de comandos simples, o usurio possa ter

    acesso a rotinas especficas do sistema.

    Os comandos, quando digitados (ou executados) pelo usurio, so interpre-

    tados por um programa denominado interpretador de comandos ou shell. A linha de comando reconhecida, o shell verifica sua sintaxe, envia mensa-gens de erro e faz chamadas de rotinas dos sistemas. O usurio dispe assim,

    de uma interface interativa direta com o sistema operacional, para realizar

    tarefas bsicas como acessar um arquivo em disco ou consultar um diretrio.

    As linguagens de controle evoluram no sentido de permitir uma interao

    mais amigvel, utilizando interfaces grficas, colocando os programas em

    uso em janelas e utilizando cones para comunicao com o usurio. Quan-

    do voc cria uma pasta, renomeia ou apaga um arquivo, clica em cima de

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 43

  • uma planilha ou texto para edit-los, voc est interagindo com o shell e utilizando recursos dessa linguagem de comando.

    4.2 Programas de sistema ou utilitriosOs utilitrios tambm so chamados comumente programas de sistema. Os

    SO mais modernos vm aumentando a coleo desses tipos de programas.

    Voc deve lembrar que h pouco tempo atrs voc precisava de um progra-

    ma especfico para gravar arquivos em CDs e DVDs e para assistir um filme.

    Hoje estas funes esto embutidas no SO.

    Os programas de sistema fornecem um ambiente conveniente para a execu-

    o de uma srie de tarefas de uso do computador ou de perifricos espec-

    ficos. Alguns deles so simplesmente interfaces de usurio s chamadas ao

    sistema; outros so consideravelmente mais complexos.

    Podem ser divididos em categorias tais como:

    a) Gerncia de arquivos - criam, excluem, copiam, renomeiam, imprimem, listam e geralmente manipulam arquivos e diretrios. Precisam trabalhar

    com diversos tipos de mdia: CD, DVD, HD, disquete, pendrive, etc;

    b) Informaes de status - simplesmente pedem ao sistema informaes relativas ao status da mquina ou de perifricos: data, hora, quantidade

    de memria ou espao em disco disponvel, nmero de usurios conec-

    tados, nmero de documentos aguardando impresso e outras informa-

    es semelhantes;

    c) Modificao de arquivo - vrios editores de texto podem estar dispo-nveis para criar e modificar o contedo dos arquivos armazenados em

    disco, fita ou outro tipo de mdia;

    d) Comunicaes - esses programas oferecem o mecanismo para criar co-nexes virtuais entre processos, usurios e diferentes sistemas de compu-

    tao. Permitem aos usurios enviar mensagens s telas uns dos outros,

    navegar pelas pginas da web, efetuar logon remotamente ou transferir arquivos de uma mquina para outra;

    e) Spooling - permitem manipular a fila de impresso de documentos em uma ou mais impressoras ligadas ao sistema.

    Embora todos ou quase todos os SO modernos usem uma

    interface grfica para interagir com o usurio, o prompt da linha

    de comandos tambm continua a existir.

    medida que novos perifricos se popularizam e novas funes

    so atribudas ao computador, essa lista de utilitrios tende

    a crescer. Alm disto, uma funo antes exercida por um utilitrio pode ser incorporada

    definitivamente ao SO, como citamos o exemplo da leitura e

    gravao de CD e DVD.

    Sistemas Operacionaise-Tec Brasil 44

  • 4.3. Linguagem de mquinaTodos os programas, para serem processados, precisam estar em linguagem

    de mquina. Essa a linguagem que o processador realmente consegue

    entender. Um programa em linguagem de mquina totalmente codificado

    em formato binrio, o que torna praticamente impossvel o entendimento

    pelo usurio.

    O programa em linguagem de mquina pode ser diretamente processado pela

    unidade central de processamento (CPU) no requerendo qualquer tipo de

    traduo ou relocao. Um programa em linguagem de mquina no pode

    ser executado em outra mquina de modelo diferente, nem em outro SO.

    Cada processador possui um conjunto nico de instrues de mquina pre-

    viamente definido pelo fabricante. Estas instrues especificam detalhes

    como registradores, modos de endereamento de memria, tipo de dados

    que caracterizam um processador e suas potencialidades. Por sua vez, cada

    SO tem um grupo de instrues especfico, chamada API Application Pro-gramIinterface que os compiladores usam para traduzir as instrues escri-tas na linguagem de alto nvel para a linguagem entendida pelo linker. Isso faz com que um programa compilado em Linux no funcione com Windows; ou que um programa compilado em um PC no funcione em um Apple.

    4.4. Mecanismo de interrupoOs sistemas multiprogramveis tornaram mais eficiente a utilizao dos re-

    cursos computacionais, por permitirem a execuo simultnea (concorrente)

    de vrios programas, permitindo que, quando um programa estiver realizan-

    do uma operao de E/S, outros possam utilizar o processador. Essa possi-

    bilidade do processador executar instrues em paralelo com as operaes

    de E/S permitiu que diversas tarefas fossem executadas ao mesmo tempo.

    Outro aspecto importante que devemos ressaltar a melhor utilizao da

    memria principal, que antes, em sistemas monotarefa, era subutilizada,

    agora pode conter vrios programas residentes concorrendo pela utilizao

    do processador.

    Os sistemas operacionais podem ser vistos como um conjunto de rotinas

    que executam concorrentemente de forma ordenada. A possibilidade de o

    processador executar instrues em paralelo com operaes de E/S permite

    que diversas tarefas sejam executadas concorrentemente.

    Um exemplo de tentativa de transformar os programas independentes do SO e do modelo do equipamento a plataforma Java. Pesquise mais sobre o assunto no site http://www.java.com/pt_BR

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 45

  • Durante a execuo de um programa, alguns eventos inesperados podem

    ocorrer, interrompendo o seu fluxo normal de execuo e ocasionando um

    desvio forado. Estes eventos so conhecidos por interrupo ou exceo e

    podem ser consequncia da sinalizao de algum dispositivo de hardware externo ao processador ou da execuo de instrues do prprio programa.

    Sempre que ocorre uma interrupo, o sistema operacional chamado para

    executar uma rotina de tratamento apropriada. Antes de realizar o desvio, o

    sistema operacional deve salvar o estado do processo interrompido, para que

    este possa continuar do ponto onde parou, quando voltar a ser executado.

    Um exemplo de interrupo ocorre quando um dispositivo avisa ao processa-

    dor que alguma operao de E/S j est completa. Nesse caso, o processador

    deve interromper o programa para tratar o trmino da operao.

    Quando isso ocorre, o programa que est em execuo interrompido e o

    controle desviado para uma rotina responsvel por tratar o evento ocorrido,

    denominada de rotina de tratamento de interrupo. Para que o programa

    interrompido possa voltar a ser executado posteriormente, se faz necessrio

    que, no momento da interrupo, um conjunto de informaes sobre sua

    execuo seja preservado. Essas informaes consistem no contedo dos

    registradores, que devero ser restaurados para que seja dada continuidade

    execuo do programa, conforme a Figura 4.1.

    Salva contedo dos registradores na

    pilha de controle

    Identifica aorigem do evento

    Obtm o endereoda rotina de tratamento

    Restaura o contedodos registradores

    Rotina de tratamento

    Programa

    Interrupo ou exceo

    Figura 4.1: Mecanismo de interrupo Fonte: Adaptado de Machado, 2004

    Para cada tipo de interrupo existe uma rotina de tratamento associada,

    Sistemas Operacionaise-Tec Brasil 46

  • para a qual o fluxo de execuo dever ser desviado. A identificao do tipo de

    evento ocorrido fundamental para determinar o endereo da rotina de trata-

    mento. No momento da interrupo, o processador dever saber para qual roti-

    na de tratamento dever encaminhar o fluxo em execuo que foi interrompido

    Os eventos que causam a interrupo podem ser classificados como sncro-

    nos ou assncronos. Um evento classificado como assncrono, independen-

    te dos dados de entrada e das instrues do programa, ou seja, pode ocorrer

    em qualquer ponto do programa. Essas interrupes no esto relacionadas

    com a instruo do programa corrente, so eventos imprevisveis, podem

    ocorrer mltiplas vezes (exemplo: interrupo gerada pelo mouse, teclado,

    perifricos, etc.). Isto possibilita a ocorrncia de mltiplas interrupes si-

    multneas, o que no seria interessante para nosso programa em execuo.

    Uma maneira de evitar essa situao a rotina de tratamento inibir as de-

    mais interrupes. No caso, na ocorrncia de outras interrupes durante a

    execuo da rotina de tratamento, elas sero ignoradas, ou seja, no rece-

    bero tratamento. Em outras palavras, elas s sero tratadas quando a rotina

    de tratamento da interrupo atual terminar. Interrupes com a caracters-

    tica de poder ser desabilitada so chamadas de interrupes mascarveis.

    As interrupes que no podem ser desabilitadas so chamadas no-masca-

    rveis. Alguns exemplos de eventos que geram interrupes no-masca-rveis so: pressionar o boto reset, falha no hardware, etc.

    J um evento classificado como sncrono, resultado direto da execuo do

    programa corrente. Tais eventos so previsveis, e se um mesmo programa

    for executado vrias vezes com a mesma entrada de dados, os eventos sn-

    cronos ocorrero sempre nos mesmos pontos (instrues) do programa.

    4.5. Operaes de Entrada e Sada (E/S)Nos primeiros sistemas de computao, os perifricos eram controlados pelo

    processador por meio de instrues especiais, chamadas instrues de E/S.

    Essas instrues continham detalhes especficos de cada perifrico. Devido

    a isso, esse modelo criava uma forte dependncia entre o processador e os

    dispositivos de E/S.

    Para evitar esse problema, criou-se o controlador ou interface (Figura 4.2),

    que permitiu ao processador operar de maneira independente dos disposi-

    tivos de E/S. Com esse novo elemento, o processador no precisava mais se

    interrupes mascarveisso aquelas com a caracterstica de poderem ser desabilitadas.

    Interrupes no-mas-carveisso aquelas com a caracterstica de poderem ser desabilitadas.

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 47

  • comunicar diretamente com os perifricos, nem conhecer detalhes de ope-

    rao especficos de cada perifrico. Com isso, foram muito simplificadas as

    instrues de E/S do processador.

    UCPMemriaPrincipal

    Controlador

    Dispositivos de E/S

    Figura 4.2: Controlador dos dispositivos de E/SFonte: Adaptado de Machado, 2004

    Por meio do controlador, o processador gerenciava as operaes de E/S, sem

    se preocupar com os detalhes de implementao de cada dispositivo. Com

    esse novo elemento, o processador no mais se comunicava diretamente

    com os perifricos, mas sim, pelo controlador.

    E/S programada - esse foi um dos primeiros modelos de operao de E/S. Aps o processador iniciar a transferncia de dados, ficava consul-

    tando o estado do perifrico sucessivamente, at que a operao de E/S

    chegasse ao fim, mantendo o processador ocupado at o trmino da E/S

    (espera ocupada, do ingls busy wait). Como o processador executa uma instruo muito mais rpida que uma operao de E/S realizada pelo con-

    trolador, havia um enorme desperdcio de tempo do processador;

    E/S por polling - em relao ao modelo anterior, a evoluo ocorreu ao permitir que algumas instrues pudessem ser executadas entre su-

    cessivas consultas sobre o estado de uma operao de E/S. Com isso

    introduziu-se certo grau de paralelismo. Isso porque permitiu que outros

    programas pudessem ser executados, enquanto uma operao de E/S era

    realizada, mas, em determinados intervalos de tempo o sistema opera-

    cional deveria interromp-los para verificar o estado da operao de E/S.

    Caso houvesse vrias operaes de E/S pendentes, o processamento seria

    interrompido diversas vezes para a verificao do estado das operaes;

    Sistemas Operacionaise-Tec Brasil 48

  • E/S controlada por interrupo - ao invs de o sistema ficar periodica-mente testando o estado das operaes pendentes, o prprio controlador

    interrompe o processador para informar o trmino da operao. Cabe ao

    controlador a responsabilidade de controlar as operaes de E/S. Quando

    essa operao termina, o controlador interrompe o processador para que

    este realize a transferncia de dados para a memria principal. Aps essa

    transferncia, o processador est livre para executar outros programas.

    Apesar disso, se houver a transferncia de um grande volume de dados,

    o processador ser interrompido diversas vezes, reduzindo o seu desem-

    penho. Para solucionar esse problema, foi implementada a tcnica de

    transferncia de dados chamada DMA (Direct Memory Access);

    Acesso Direto Memria (DMA) - a tcnica DMA permite que o con-trolador de E/S transmita um bloco de dados entre os dispositivos de

    E/S e a memria principal. O controlador acessa a memria diretamente,

    sem a necessidade da interveno do processador, exceto no incio e

    no final da transferncia. O controlador realiza a operao de E/S, bem

    como a transferncia de dados entre a memria e o dispositivo de E/S, e,

    somente ao final, interrompe o processador para avisar que a operao

    foi concluda. A rea de memria utilizada pelo controlador na tcnica de

    DMA chamada buffer de entrada/sada.

    Faa as seis atividades a seguir:

    1. Porque o uso do linker se tornou invivel em sistemas multiprogram-veis? E qual seria a soluo adotada para o problema gerado?

    2. Qual a funo da linguagem de controle?

    3. Por que o mecanismo de interrupo fundamental para a implementa-o da multiprogramao?

    4. Explique o mecanismo de funcionamento das interrupes.

    5. Pesquise sobre o termo traps em sistemas operacionais e em que situa-es elas ocorrem.

    6. O que DMA e qual a vantagem desta tcnica?

    Um sistema operacional fornece o ambiente no qual os programas so exe-

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 49

  • cutados. Esse ambiente formado por um conjunto de rotinas que oferecem

    servios aos usurios, s aplicaes e ao prprio sistema. A esse conjunto

    de rotinas denominamos kernel. A Figura 4.3 nos mostra em que nvel se encontra o kernel em um sistema computacional. O kernel considerado o ncleo do sistema operacional.

    Aplicativos

    Utilitrios

    Ncleo doSistema Operacional

    Hardware

    Figura 4.3: Posicionamento do ncleo do sistema operacional em um sistema computacionalFonte: Adaptado de Machado, 2004

    As principais funes do ncleo encontradas nos sistemas operacionais so:

    Tratamento de interrupes e excees;

    Criao e eliminao de processos e threads;

    Sincronizao e comunicao entre processos e threads;

    Gerncia de memria;

    Gerncia do sistema de arquivos;

    Gerncia dos dispositivos de entrada e sada;

    Suporte a redes locais e distribudas;

    Contabilizao do uso do sistema;

    Auditoria e segurana do sistema.

    Sistemas Operacionaise-Tec Brasil 50

  • Podemos destacar como funes principais do kernel do sistema operacional as quatro gerncias: gerncia de processos, gerncia de memria, gerncia

    de entrada e sada, e gerncia de sistema de arquivos.

    Existem vrios pontos de vista pelos quais poderamos analisar um sistema

    operacional:

    Examinando os servios oferecidos aos usurios;

    Analisando a interface disponibilizada aos usurios e programadores;

    Desmontando o sistema em seus componentes mais bsicos.

    Procure enumerar as atividades que voc realiza e recursos que voc costu-

    ma utilizar em computadores no seu dia a dia, para depois comparar com os

    servios prestados por um sistema operacional, listados ao final desta aula.

    4.6. Sistemas em loteOs primeiros computadores eram mquinas dependentes de um operador.

    Os dispositivos de entrada comuns eram leitoras de cartes e unidades de

    fita, e os de sada eram impressoras, unidades de fita e perfuradoras de car-

    tes. O usurio no interagia diretamente com o computador. Em vez disso,

    ele preparava uma tarefa (job), que consistia no programa, dados e algumas informaes de controle sobre a natureza da tarefa (cartes de controle) e

    o entregava ao operador do computador. Algum tempo depois o resultado

    do programa podia ser obtido como uma listagem, uma fita, novo pacote

    de cartes ou uma listagem dos contedos dos registradores no caso de erro

    do programa.

    O sistema operacional nesses primeiros computadores era bem simples. Sua

    principal tarefa era transferir controle automaticamente de uma tarefa para

    a prxima tarefa. O sistema operacional estava sempre residente na memria

    e executava uma tarefa de cada vez.

    Para acelerar o processamento, os operadores reuniam as tarefas em lotes

    com necessidades semelhantes e os executavam no computador como um

    grupo. Assim os programadores deixavam seus programas com o operador e

    o operador classificava os programas em lotes com requisitos semelhantes.

    medida que o computador ficava disponvel, executava outro lote ou batch.

    O monitor residente foi considerado o primeiro sistema operacional (rudimentar). Era um programa que ficava permanentemente em memria e sua funo era transferir a execuo de um job para outro.

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 51

  • A sada de cada tarefa seria enviada de volta ao programador apropriado.

    Neste ambiente de execuo, a CPU ficava muitas vezes ociosa porque

    as velocidades dos dispositivos mecnicos de E/S (leitores de carto)

    eram intrinsecamente menores do que as dos dispositivos eletrnicos

    (CPU). Com o tempo, claro, melhorias na tecnologia e a introduo

    de discos resultaram em dispositivos de E/S mais rpidos (Silberschatz,

    Galvin e Gagne, 2000. p. 5).

    4.7. Escalonamento de tarefas e multipro-gramao

    A introduo da tecnologia de disco permitiu que o sistema operacional

    mantivesse todas as tarefas em um disco, em vez de em uma leitora de car-

    tes serial. Surge ento o conceito de escalonamento de tarefas e posterior-

    mente de multiprogramao.

    A multiprogramao aumenta a utilizao da CPU, organizando as tarefas

    de forma que a CPU esteja sempre ocupada. Assim, o SO mantm vrias

    tarefas na memria simultaneamente, todas competindo pelos recursos do

    computador, conforme Figura 4.4.

    Programa/TarefaPrograma/Tarefa

    Programa/Tarefa Programa/Tarefa

    Memria UCP

    Dispositivos de E/S

    Figura 4.4: Sistema multiprogramvel ou multitarefaFonte: Adaptado de Machado, 2004

    O sistema operacional escolhe e comea a executar a tarefa carregada na

    memria. Em alguns momentos a tarefa que est em execuo dever espe-

    No muito comum vermos tarefas sendo executadas em

    batch. Entretanto, existem alguns procedimentos que

    guardam bastante semelhana: os processos de backup e recuperao de bancos de

    dados, bem como o processo de inicializao do Windows.

    Em ambos os casos uma srie de tarefas so executadas de

    forma automtica, em sequncia e de forma mais ou menos

    independente da vontade do usurio.

    Sistemas Operacionaise-Tec Brasil 52

  • rar a concluso de alguma outra tarefa, como uma operao de E/S, que

    muito mais lenta. Em um sistema operacional no multiprogramado, a CPU

    ficaria ociosa. Em um sistema de multiprogramao, o sistema operacional

    simplesmente passa para outra tarefa e a executa. Quando esta segunda

    tarefa precisar esperar, a CPU passar para outra tarefa e assim por diante.

    Por fim, a primeira tarefa terminar a sua operao de E/S e ter a CPU de

    volta. Neste esquema, a CPU nunca fica ociosa.

    Todos os jobs, ou tarefas, que entram no sistema so mantidos num pool de jobs (espcie de fila). Esse pool de jobs consiste em todos os processos residentes no disco aguardando alocao da memria principal (espao na

    memria). O nmero de jobs que pode ser mantido simultaneamente na memria principal geralmente muito menor do que o nmero de jobs que pode estar no pool de jobs. Se vrios jobs estiverem prontos para serem car-regados na memria e se no houver espao suficiente para todos, o sistema

    operacional dever fazer a escolha. Essa tomada de deciso chamada de

    escalonamento de tarefas ou de jobs.

    Os sistemas em batch multiprogramados forneciam um ambiente no qual os vrios recursos do sistema, como por exemplo a CPU, memria e dispositivos

    perifricos, eram utilizados de forma eficaz, mas no permitiam a interao

    do usurio com o sistema de computao. Tempo compartilhado (time sha-ring) ou multitarefa uma extenso da multiprogramao: a CPU executa vrios jobs alternando entre eles (multiprogramao), mas as trocas ocorrem com tanta frequncia que o usurio pode interagir com seu programa como

    se tivesse uma mquina exclusiva para ele. Assim se permite a comunicao

    direta entre o usurio e o sistema. Devido a esse tipo de interao, os siste-

    mas de tempo compartilhado tambm ficaram conhecidos como sistemas

    on-line ou de tempo real (real time). O usurio passa instrues ao sistema operacional ou a um programa diretamente, usando o teclado ou um mou-

    se, e espera por resultados imediatos. O tempo de resposta deve ser curto.

    Um sistema operacional de tempo compartilhado permite que muitos usu-

    rios compartilhem o computador ao mesmo tempo. Como cada ao ou

    comando em um sistema de tempo compartilhado tende a ser curto, apenas

    um pequeno tempo de CPU necessrio para cada usurio. Como o sistema

    alterna rapidamente de um usurio para outro, cada usurio tem a impres-

    so de que todo o sistema de computao est dedicado a ele, enquanto,

    na verdade, o computador est sendo compartilhado por muitos usurios.

    Escalonamento de tarefasconsiste em selecionar uma tarefa, de um conjunto de tarefas aptas para execuo, que ser a prxima a ser executada pela CPU

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 53

  • Nos sistemas time sharing os usurios podem interagir com o programa em execuo, muitas vezes atravs de terminais, tendo a iluso de possuir a m-

    quina dedicada a execuo de seu programa. Porm, o ocorre na verdade,

    a diviso de tempo de processamento entre os usurios.

    4.8. Servios de Sistemas OperacionaisUm outro enfoque que pode ser dado ao estudo dos sistemas operacionais

    encarar o SO como um prestador de servios: um sistema operacional fornece

    um ambiente para a execuo de programas, ou seja: fornece certos servios a

    programas e aos usurios destes programas. Este enfoque interessante, pois,

    frequentemente, voc ver na literatura abordagens das funes ou estrutura

    do SO como servios. Estes servios podem ser assim classificados:

    a) Execuo de programa - o sistema deve ser capaz de carregar um pro-grama na memria e executar esse programa. Tambm deve ser capaz de

    encerrar a sua execuo, quer de forma normal ou anormal (indicando erro);

    b) Operao de E/S - um programa em execuo pode precisar de E/S. Essa operao de E/S pode envolver um arquivo ou dispositivo de E/S.

    Portanto, o sistema operacional deve fornecer os meios para realizar as

    operaes de E/S;

    c) Manipulao do sistema de arquivos - os programas precisam ler e gravar arquivos, criar e excluir arquivos por nome; essas atividades devem

    ser gerenciadas pelo sistema operacional;

    d) Comunicao - existem muitas circunstncias nas quais um processo precisa trocar informaes com outro processo. Essa comunicao entre

    processos pode ocorrer com processos em um mesmo computador ou

    entre processos que esto executando em diferentes sistemas de compu-

    tao ligados por uma rede. As comunicaes podem ser implementadas

    via memria compartilhada ou pela tcnica de troca de mensagens, na

    qual pacotes de informaes so movidos entre processos pelo sistema

    operacional;

    e) Deteco de erros - O sistema operacional precisa estar constantemente ciente de possveis erros. Os erros podem ocorrer no hardware da CPU e da memria, em dispositivos de E/S ou no programa de usurio. Para cada tipo

    de erro o sistema operacional deve tomar a medida adequada para garantir

    o funcionamento correto e consistente (e no simplesmente travar).

    Sistemas Operacionaise-Tec Brasil 54

  • Outras funes dos sistemas operacionais servem no somente para ajudar o

    usurio, mas para garantir a operao eficiente do sistema em si, tais como:

    a) Alocao de recursos - recursos (memria e dispositivos de E/S) devem ser alocados para cada um dos processos que esto em execuo simul-

    tnea;

    b) Contabilizao - preciso manter um registro dos usurios que utili-zam os recursos do computador, em que quantidade e quais recursos.

    Este registro pode ser usado para contabilizao. Estas estatsticas de uso

    podem ser uma ferramenta valiosa para os pesquisadores que desejam

    reconfigurar o sistema para melhorar os servios oferecidos;

    c) Proteo - quando vrios processos independentes forem executados ao mesmo tempo, um processo no poder interferir na rea de outro

    processo ou do prprio sistema operacional. A proteo visa garantir que

    todo acesso aos recursos do sistema seja controlado. Estende-se tambm

    proteo dos dispositivos de E/S externos (modens, placa de rede, etc.)

    de tentativas de acesso invlidas e ao registro de todas as conexes para

    deteco de invases.

    ResumoNesta aula vimos o conceito de interpretador de comandos (shell), qual a sua funcionalidade em um sistema operacional. Aprendemos tambm algumas

    questes sobre a linguagem de mquina que utilizada pela CPU para exe-

    cutar os programas. Por fim analisamos alguns conceitos importantes sobre

    interrupes de software e hardware e o funcionamento das operaes de entrada e sada que envolvem tanto a mquina em si quanto o sistema ope-

    racional propriamente dito. Aprendemos sobre a figura do kernel em um sistema operacional bem como suas principais funes. Vimos alguns tipos

    de sistemas operacionais que comearam o histrico de sistemas multipro-

    gramados, a conceituao de jobs e tarefas e a importncia dos discos mag-nticos para a evoluo de nossos sistemas atuais. Analisamos a estrutura do

    sistema como um prestador de servios.

    Atividades de aprendizagem1. O kernel possui 4 funes de gerncia que so essenciais para um siste-

    ma operacional. Quais so?

    2. Por que podemos afirmar que os discos magnticos foram de fundamental importncia para o surgimento da multiprogramao nos sistemas atuais?

    e-Tec BrasilAula 4 Elementos de hardware e software Parte II 55

  • 3. Quais as principais caractersticas dos primeiros sistemas operacionais?

    4. Um bom escalonador de tarefas aquele que consegue equilibrar bem tarefas orientadas a entrada e sada e tarefas orientadas a processamen-

    to. Explique esta frase.

    5. Quais so as principais caractersticas dos sistemas time sharing?

    6. No exerccio passado no incio desta aula foi pedido para voc enumerar as atividades e recursos que voc costuma utilizar em computadores.

    Relacione com os servios e funes dos sistemas operacionais descritos

    nesta aula.

    Sistemas Operacionaise-Tec Brasil 56

  • e-Tec Brasil

    Aula 5 Arquitetura do Sistema Operacional

    Objetivos

    Conhecer os modos de acesso ao processador como forma de pro-

    teo do sistema.

    Compreender a estrutura das chamadas de sistema utilizadas para

    a comunicao com o kernel do sistema.

    Analisar as caractersticas de uma arquitetura de sistema operacio-

    nal dividido em camadas ou no.

    Verificar o funcionamento e importncia de um interpretador de

    comandos.

    5.1. Modos de acessoVimos que os programas de computador ou aplicaes em geral, consistem

    de conjuntos de instrues a serem executadas pelo processador ou CPU.

    Existem certas instrues que no podem ser disponibilizadas diretamente

    disposio das aplicaes, pois a sua utilizao indevida ocasionaria srios

    problemas integridade do sistema. Estas instrues, como operaes de

    E/S, s podem ser executadas pelo sistema operacional, isso para impedir a

    ocorrncia de problemas de segurana e mesmo a violao do prprio siste-

    ma. As instrues que tm o poder de comprometer o sistema so conheci-

    das como instrues privilegiadas, enquanto as instrues no-privilegiadas

    so as que no oferecem perigo ao sistema.

    Para que uma aplicao possa executar uma instruo privilegiada, o proces-

    sador implementa o mecanismo de modos de acesso. Existem basicamente

    dois modos de acesso: modo usurio e modo kernel. Quando o processa-dor trabalha no modo usurio, uma aplicao s pode executar instrues

    no-privilegiadas (instrues que no oferecem riscos), tendo acesso a um

    nmero reduzido de instrues; no modo kernel a aplicao pode ter acesso ao conjunto total de instrues do processador.

    e-Tec BrasilAula 5 Arquitetura do Sistema Operacional 57

  • Quando um programa que esteja no modo usurio tenta executar uma ins-

    truo privilegiada, gerado um erro de proteo. O processador sinaliza

    este erro atravs de uma exceo, o sistema operacional ser chamado e o

    programa ser finalizado. Voc deve estar se perguntando como ocorrem

    as transies entre os modos de acesso, ou seja, do modo usurio para o

    modo kernel e vice-versa. No momento da carga do sistema (boot), o siste-ma operacional inicia em modo kernel. Aps estar carregado em memria, o sistema operacional permite que os programas de usurios sejam carregados

    apenas em modo usurio.

    Chaveamento dos modos:

    Interrupo - modo usurio modo protegido.

    Instruo - modo protegido modo usurio.

    Se um programa estiver executando em modo usurio e ocorrer qualquer tipo

    de interrupo (interrupo de hardware, exceo ou interrupo de softwa-re), o modo de acesso alterado para o modo kernel. Com isso, a rotina de tratamento executada em modo kernel. Ao final de toda rotina de tratamen-to, h uma instruo especfica que, antes de retornar para o programa do

    usurio, altera o modo de acesso para o modo usurio (Figura 5.1).

    Programa do Usurio Salva contexto

    dos registradores

    Altera modo do processador

    para kernel

    Altera modo doprocessador para usurio

    Restrutura o contextodos registradores

    System

    Call

    Figura 5.1: Mudana dos modos de acesso durante uma interrupoFonte: Adaptado de Machado, 2004

    A melhor maneira de controlar o acesso s instrues privilegiadas permitir

    Sistemas Operacionaise-Tec Brasil 58

  • que apenas o sistema operacional tenha acesso a elas. Sempre que uma

    aplicao necessita de um servio que incorra em risco para o sistema, a so-

    licitao feita atravs de uma system call. Esta altera o modo de acesso do processador para um modo mais privilegiado (modo kernel). Ao trmino da rotina do sistema, o modo de acesso retornado para o modo usurio. Caso

    um programa tente executar uma instruo privilegiada, sem o processador

    estar no modo kernel, uma exceo gerada e o programa encerrado.

    Caso uma aplicao tenha acesso a reas de memria onde est carregado

    o sistema operacional, um programador mal-intencionado ou um erro de

    programao poderia gravar nesta rea, violando o sistema. Com o meca-

    nismo de modo de acesso, para uma aplicao escrever numa rea onde

    resida o sistema operacional o programa deve estar sendo executado no

    modo kernel.

    5.2. System calls (Chamadas ao sistema)As chamadas ao sistema (system calls) fornecem a interface entre um proces-so e o sistema operacional. Essas chamadas esto disponveis como instru-

    es em linguagem assembly e, em geral, so listadas nos manuais usados por programadores em linguagem assembly, conforme Figura 5.2.

    AplicaoSystem Call

    Biblioteca

    Ncleo doSistema

    OperacionalHardware

    Figura 5.2: Chamada de sistema (system call)Fonte: Adaptado de Machado, 2004

    Certos sistemas permitem que as chamadas ao sistema sejam feitas direta-

    mente de um programa de linguagem de nvel mais alto e, nesse caso, as

    chamadas normalmente lembram chamadas de subrotinas ou de funes

    predefinidas. Vrias linguagens como C, C++ e Perl foram definidas para substituir a linguagem assembly na programao de sistemas. Essas lingua-gens permitem que as chamadas ao sistema sejam feitas diretamente. Por

    exemplo, as chamadas ao sistema do Unix podem ser feitas diretamente a partir de um programa em C ou em C++.

    Como um exemplo da forma em que as chamadas de sistema so usadas,

    consideremos escrever um programa simples para ler dados de um arquivo e

    copi-los para outro arquivo. Cada passo dado pelo programa praticamente

    efetua uma chamada ao sistema:

    A documentao dos SO costuma disponibilizar estas chamadas com uma srie de funes cujo conjunto chamado de API Application Program Interface. Esta sigla API pode ser usada tambm para designar de uma forma genrica como uma grande aplicao (como um gerenciador de banco de dados) aceita receber solicitaes de outras aplicaes.

    e-Tec BrasilAula 5 Arquitetura do Sistema Operacional 59

  • a) A primeira entrada que o programa precisar so os nomes dos dois arqui-vos: de entrada e de sada. Uma abordagem fazer o programa pedir ao

    usurio os nomes dos dois arquivos. Em sistemas baseados em mouse e

    cones, um menu de nomes de arquivos geralmente exibido em uma janela

    (esta lista de diretrios e arquivos fornecida por uma chamada ao SO); o

    usurio pode usar o mouse para selecionar o nome de origem. Uma janela

    pode ser aberta para que o nome do arquivo de destino seja especificado;

    b) Depois que os dois nomes de arquivos tiverem sido obtidos, o programa deve abrir o arquivo de entrada e criar o arquivo de sada. Cada uma

    dessas operaes requer uma chamada ao sistema;

    c) Agora que os dois arquivos esto prontos, entramos em um lao que l dados do arquivo de entrada (uma chamada ao sistema) e os grava no

    arquivo de sada (outra chamada ao sistema). Lembramos que entre essas

    operaes de leitura e escrita podero ocorrer alguns erros que geraro

    outras chamadas ao sistema. Por exemplo, a operao de escrita pode

    encon