ope racionais

Upload: elzimar-neto

Post on 02-Mar-2016

142 views

Category:

Documents


0 download

TRANSCRIPT

  • ISBN:

    Curso Tcnico em Informtica

    Sistemas OperacionaisBruno Cardoso Coutinho

  • Sistemas OperacionaisBruno Cardoso Coutinho

    2010Colatina - ES

  • RIO GRANDEDO SUL

    INSTITUTOFEDERAL

    Presidncia da Repblica Federativa do Brasil

    Ministrio da Educao

    Secretaria de Educao a Distncia

    Equipe de ElaboraoInstituto Federal do Esprito Santo IFES

    Coordenao do CursoJoao Henrique Caminhas Ferreira/IFES

    Professores-autoresBruno Cardoso Coutinho/IFES

    Comisso de Acompanhamento e ValidaoUniversidade Federal de Santa Catarina UFSC Coordenao InstitucionalAraci Hack Catapan/UFSC

    Coordenao do ProjetoSilvia Modesto Nassar/UFSC

    Coordenao de Design InstrucionalBeatriz Helena Dal Molin/UNIOESTE e UFSC

    Coordenao de Design GrficoCarlos Antnio Ramirez Righi/UFSC

    Design InstrucionalAlessandro Poleto Oliveira/IFES

    Web MasterRafaela Lunardi Comarella/UFSC

    Web DesignCEAD/IFES

    DiagramaoEdison Patto/UFSCGuilherme Ataide Costa/UFSCJuliana Tonietto/UFSC

    RevisoLuciane Ferreira Lacerda/IFES

    Projeto Grficoe-Tec/MEC

    Instituto Federal de Educao, Cincia e Tecnologia do Esprito SantoEste Caderno foi elaborado em parceria entre o Instituto Federal de Educao, Cincia e Tecnologia do Esprito Santo e a Universidade Federal de Santa Catarina para o Sistema Escola Tcnica Aberta do Brasil e-Tec Brasil.

    C871s Coutinho, Bruno Cardoso

    Sistemas operacionais : Curso Tcnico em Informtica / Bruno Cardoso Coutinho. Colatina: CEAD / Ifes, 2010. 78 p. : il. 1. Sistemas operacionais (Computadores). 2. Siste-mas de computao. 3. Material didtico. I. Instituto Federal do Esprito Santo. II. Ttulo. CDD: 005.43

  • e-Tec Brasil33

    Apresentao e-Tec Brasil

    Prezado estudante,

    Bem-vindo ao e-Tec Brasil!

    Voc faz parte de uma rede nacional pblica de ensino, a Escola Tcnica

    Aberta do Brasil, instituda pelo Decreto n 6.301, de 12 de dezembro 2007,

    com o objetivo de democratizar o acesso ao ensino tcnico pblico, na mo-

    dalidade a distncia. O programa resultado de uma parceria entre o Minis-

    trio da Educao, por meio das Secretarias de Educao a Distancia (SEED)

    e de Educao Profissional e Tecnolgica (SETEC), as universidades e escolas

    tcnicas estaduais e federais.

    A educao a distncia no nosso pas, de dimenses continentais e grande

    diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao

    garantir acesso educao de qualidade, e promover o fortalecimento da

    formao de jovens moradores de regies distantes, geograficamente ou

    economicamente, dos grandes centros.

    O e-Tec Brasil leva os cursos tcnicos a locais distantes das instituies de en-

    sino e para a periferia das grandes cidades, incentivando os jovens a concluir

    o ensino mdio. Os cursos so ofertados pelas instituies pblicas de ensino

    e o atendimento ao estudante realizado em escolas-polo integrantes das

    redes pblicas municipais e estaduais.

    O Ministrio da Educao, as instituies pblicas de ensino tcnico, seus

    servidores tcnicos e professores acreditam que uma educao profissional

    qualificada integradora do ensino mdio e educao tcnica, capaz de

    promover o cidado com capacidades para produzir, mas tambm com auto-

    nomia diante das diferentes dimenses da realidade: cultural, social, familiar,

    esportiva, poltica e tica.

    Ns acreditamos em voc!

    Desejamos sucesso na sua formao profissional!

    Ministrio da Educao

    Janeiro de 2010

    Nosso contato

    [email protected]

  • e-Tec Brasil5

    Indicao de cones

    Os cones so elementos grficos utilizados para ampliar as formas de

    linguagem e facilitar a organizao e a leitura hipertextual.

    Ateno: indica pontos de maior relevncia no texto.

    Saiba mais: oferece novas informaes que enriquecem o assunto ou curiosidades e notcias recentes relacionadas ao

    tema estudado.

    Glossrio: indica a definio de um termo, palavra ou expresso utilizada no texto.

    Mdias integradas: sempre que se desejar que os estudantes desenvolvam atividades empregando diferentes mdias: vdeos,

    filmes, jornais, ambiente AVEA e outras.

    Atividades de aprendizagem: apresenta atividades em diferentes nveis de aprendizagem para que o estudante possa

    realiz-las e conferir o seu domnio do tema estudado.

  • e-Tec Brasil7

    Sumrio

    Aula 1 Viso geral de Sistemas Operacionais 151.1 Conceitos bsicos 15

    1.2 Funes principais 16

    1.3 Mquina de nveis 19

    Aula 2 Histrico e classificao 232.1 Histrico 23

    2.2 Tipos de Sistemas Operacionais 27

    Aula 3 Elementos de hardware e software Parte I 313.1 Hardware 31

    3.2 Software 37

    Aula 4 Elementos de hardware e software Parte II 434.1 Linguagem de controle 43

    4.2 Programas de sistema ou utilitrios 44

    4.3. Linguagem de mquina 45

    4.4. Mecanismo de interrupo 45

    4.5. Operaes de Entrada e Sada (E/S) 47

    4.6. Sistemas em lote 51

    4.7. Escalonamento de tarefas e multiprogramao 52

    4.8. Servios de Sistemas Operacionais 54

    Aula 5 Arquitetura do Sistema Operacional 575.1. Modos de acesso 57

    5.2. System calls (Chamadas ao sistema) 59

    5.3. Arquiteturas do ncleo (kernel) 62

    5.4. Interpretador de comandos 66

    Aula 6 Introduo gerncia de processos, memria e arquivos 696.1. Gerncia de processos 69

    6.2. Gerncia de memria principal 70

    6.3. Gerncia de arquivos 72

    6.4. Gerncia de dispositivos 74

  • Referncias 77

    Currculo do professor-autor 78

    Sistemas Operacionaise-Tec Brasil 8

  • e-Tec Brasil9

    Palavra do professor-autor

    Ol,

    Meu nome Bruno Cardoso Coutinho, formado em Cincia da Computa-

    o com mestrado em Informtica pela UFES. Sou professor do IFES campus

    Colatina desde janeiro de 2009, onde tenho ministrado disciplinas como Sis-

    temas Operacionais Locais e de Rede. Ultimamente, alm das minhas ativi-

    dades de professor, tenho me aventurado em pesquisas cientficas nas reas

    de redes de computadores, ambientes distribudos e otimizao.

    A disciplina de Sistemas Operacionais de extrema importncia para seu curso

    e para sua carreira profissional, j que se trata do sistema gestor de qualquer

    computador. O Sistema Operacional que organiza a execuo dos aplicati-

    vos, aloca espao em memria para uma execuo mais rpida, envia e recebe

    dados de dispositivos e os trata para serem utilizados pelos aplicativos dos

    usurios, alm de muitas outras atividades. Em suma, o Sistema Operacional

    protege a mquina do usurio e protege o usurio da mquina.

    Por ser uma matria essencial para seu curso, empenhe-se nos estudos, leia

    o material com calma e releia se for o caso. Tire as suas dvidas com seus

    tutores e utilize os materiais indicados como apoio a seus estudos. No se

    prenda apenas apostila do curso.

    Sucesso na sua carreira!

    Um grande abrao!

    Prof. Bruno.

  • e-Tec Brasil11

    Apresentao da disciplina

    Nesta disciplina voc ter uma viso geral dos sistemas operacionais, bem como

    aprender conceitos fundamentais e como feito o gerenciamento de recursos de

    hardware e software do computador.

    O Sistema Operacional o grande gestor do computador, com muitas respon-

    sabilidades como: alocar recursos, gerenciar usurios e processos, controlar a

    execuo de programas de usurios e muito mais. Ao passar pelas aulas deste

    curso voc poder perceber o quo difcil e rduo construir um sistema como

    Windows ou Linux.

    Voc algumas vezes deve ter passado por esta situao: estar navegando na inter-

    net, conversando no MSN e editando um trabalho de escola no Word. Parece es-tar tudo executando ao mesmo tempo correto? Mas provavelmente no. Apesar

    de as mquinas mais novas conseguirem processar algumas instrues realmente

    em paralelo, ainda sim, esses aplicativos disputam recursos sob a gerncia do Sis-

    tema Operacional.

    Nas primeiras aulas do curso, faremos uma caracterizao dos sistemas opera-

    cionais levando em considerao a evoluo do hardware ao longo dos anos. Conhecer o histrico do desenvolvimento destes sistemas tambm importante

    para analisar a motivao de cada nova tecnologia e sua relao com o software gerenciador. Depois, precisaremos rever alguns conceitos de hardware e software, caracterizar alguns componentes bsicos e sua importncia em um sistema com-

    putacional. Por fim, analisaremos as principais funes de gerncia de um sistema

    computacional, abordando seus tpicos principais.

    Vamos estudar, tambm, como funciona a gerncia de aplicaes, de recursos e

    a estrutura interna de um sistema operacional. So muitos conceitos novos, no

    deixe acumular!

  • e-Tec Brasil13

    Disciplina: Sistemas Operacionais (carga horria: 60h).

    Ementa: Viso geral dos Sistemas Operacionais. Conceitos e gerenciamento de recursos de hardware e software do computador.

    AULA OBJETIVOS DE APRENDIZAGEM MATERIAISCARGA

    HORRIA(horas)

    1. Viso geral de Sistemas Opera-cionais

    Compreender os conceitos bsicos de sistemas operacionais.Conhecer suas funes principais.Analisar o Sistema Operacional como uma mquina de nveis.

    Caderno e Ambiente Virtual de Ensino-Aprendizagem.www.cead.ifes.edu.br

    10

    2. Histrico e classificao

    Conhecer o histrico de sistemas operacionais.Compreender como as inovaes de hardware colaboraram com o desenvolvi-mento dos sistemas operacionais.Saber classificar os sistemas conforme suas caractersticas principais.

    Caderno e Ambiente Virtual de Ensino-Aprendizagem.www.cead.ifes.edu.br

    10

    3. Elementos de hardware e software Parte I

    Conhecer a arquitetura bsica de computadores.Descrever os principais dispositivos de entrada e sada.Compreender conceitos de software utilitrio.

    Caderno e Ambiente Virtual de Ensino-Aprendizagem.www.cead.ifes.edu.br

    4. Elementos de hardware e softwa-re Parte II

    Conhecer conceitos mais especficos sobre programas de sistema.Analisar o mecanismo de interrupo na concorrncia entre processos.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 operacional.Analisar as caractersticas bsicas de uma arquitetura de sistema operacional.

    Caderno e Ambiente Virtual de Ensino-Aprendizagem.www.cead.ifes.edu.br

    10

    continua

    Projeto instrucional

  • AULA OBJETIVOS DE APRENDIZAGEM MATERIAISCARGA

    HORRIA(horas)

    5. Arquitetura do Sistema Opera-cional

    Conhecer os modos de acesso ao processador como forma de proteo do sistema.Compreender a estrutura das chamadas de sistema utilizadas para a comunica-o com o kernel do sistema.Analisar as caractersticas de uma arqui-tetura de sistema operacional dividido em camadas ou no.Verificar o funcionamento e importncia de um interpretador de comandos.

    Caderno e Ambiente Virtual de Ensino- Aprendizagem.www.cead.ifes.edu.br

    10

    6. Introduo gerncia de processos, memria e arquivos

    Conhecer as funes de gerncia princi-pais de um sistema operacional.Analisar as funes do elemento proces-so dentro de um sistema operacional.Verificar a administrao da utilizao de recursos pelo sistema operacional.

    Caderno e Ambiente Virtual de Ensino-Aprendizagem.www.cead.ifes.edu.br

    10

    concluso

    Sistemas Operacionaise-Tec Brasil 14

  • 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 a