SISTEMAS OPERACIONAIS

download SISTEMAS OPERACIONAIS

of 80

Transcript of SISTEMAS OPERACIONAIS

Sistemas OperacionaisBruno Cardoso Coutinho

Curso Tcnico em Informtica

Sistemas OperacionaisBruno Cardoso Coutinho

Colatina - ES 2010

Presidncia da Repblica Federativa do Brasil Ministrio da Educao Secretaria de Educao a Distncia

Instituto Federal de Educao, Cincia e Tecnologia do Esprito Santo Este 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.Equipe de Elaborao Instituto Federal do Esprito Santo IFES Coordenao do Curso Joao Henrique Caminhas Ferreira/IFES Professores-autores Bruno Cardoso Coutinho/IFES Comisso de Acompanhamento e Validao Universidade Federal de Santa Catarina UFSC Coordenao Institucional Araci Hack Catapan/UFSC Coordenao do Projeto Silvia Modesto Nassar/UFSC Coordenao de Design Instrucional Beatriz Helena Dal Molin/UNIOESTE e UFSC Coordenao de Design Grfico Carlos Antnio Ramirez Righi/UFSC Design Instrucional Alessandro Poleto Oliveira/IFES Web Master Rafaela Lunardi Comarella/UFSC Web Design CEAD/IFES Diagramao Edison Patto/UFSC Guilherme Ataide Costa/UFSC Juliana Tonietto/UFSC Reviso Luciane Ferreira Lacerda/IFES Projeto Grfico e-Tec/MEC

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. Sistemas de computao. 3. Material didtico. I. Instituto Federal do Esprito Santo. II. Ttulo. CDD: 005.43

NSTITUTO FEDERAL

IO GRANDE DO SUL

Apresentao e-Tec BrasilPrezado 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 modalidade a distncia. O programa resultado de uma parceria entre o Ministrio 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 ensino 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 autonomia 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 2010Nosso contato [email protected]

3

e-Tec Brasil

Indicao de conesOs 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.

5

e-Tec Brasil

SumrioAula 1 Viso geral de Sistemas Operacionais 1.1 Conceitos bsicos 1.2 Funes principais 1.3 Mquina de nveis Aula 2 Histrico e classificao 2.1 Histrico 2.2 Tipos de Sistemas Operacionais Aula 3 Elementos de hardware e software Parte I 3.1 Hardware 3.2 Software Aula 4 Elementos de hardware e software Parte II 4.1 Linguagem de controle 4.2 Programas de sistema ou utilitrios 4.3. Linguagem de mquina 4.4. Mecanismo de interrupo 4.5. Operaes de Entrada e Sada (E/S) 4.6. Sistemas em lote 4.7. Escalonamento de tarefas e multiprogramao 4.8. Servios de Sistemas Operacionais Aula 5 Arquitetura do Sistema Operacional 5.1. Modos de acesso 5.2. System calls (Chamadas ao sistema) 5.3. Arquiteturas do ncleo (kernel) 5.4. Interpretador de comandos Aula 6 Introduo gerncia de processos, memria e arquivos 6.1. Gerncia de processos 6.2. Gerncia de memria principal 6.3. Gerncia de arquivos 6.4. Gerncia de dispositivos 15 15 16 19 23 23 27 31 31 37 43 43 44 45 45 47 51 52 54 57 57 59 62 66 69 69 70 72 74

7

e-Tec Brasil

Referncias Currculo do professor-autor

77 78

e-Tec Brasil

8

Sistemas Operacionais

Palavra do professor-autorOl, Meu nome Bruno Cardoso Coutinho, formado em Cincia da Computao com mestrado em Informtica pela UFES. Sou professor do IFES campus Colatina desde janeiro de 2009, onde tenho ministrado disciplinas como Sistemas Operacionais Locais e de Rede. Ultimamente, alm das minhas atividades 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 aplicativos, 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.

9

e-Tec Brasil

Apresentao da disciplinaNesta 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 responsabilidades 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 internet, conversando no MSN e editando um trabalho de escola no Word. Parece estar 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 Sistema Operacional. Nas primeiras aulas do curso, faremos uma caracterizao dos sistemas operacionais 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 computacional. 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!

11

e-Tec Brasil

Projeto instrucionalDisciplina: 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 APRENDIZAGEMCompreender os conceitos bsicos de sistemas operacionais. Conhecer suas funes principais. Analisar o Sistema Operacional como uma mquina de nveis. Conhecer o histrico de sistemas operacionais. Compreender como as inovaes de hardware colaboraram com o desenvolvimento dos sistemas operacionais. Saber classificar os sistemas conforme suas caractersticas principais. Conhecer a arquitetura bsica de computadores. Descrever os principais dispositivos de entrada e sada. Compreender conceitos de software utilitrio. 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.

MATERIAIS

CARGA HORRIA (horas)

1. Viso geral de Sistemas Operacionais

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

10

2. Histrico e classificao

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

10

3. Elementos de hardware e software Parte I

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

4. Elementos de hardware e software Parte II

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

10

continua

13

e-Tec Brasil

AULA

OBJETIVOS DE APRENDIZAGEMConhecer os modos de acesso ao processador como forma de proteo 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 operacional dividido em camadas ou no. Verificar o funcionamento e importncia de um interpretador de comandos. Conhecer as funes de gerncia principais de um sistema operacional. Analisar as funes do elemento processo dentro de um sistema operacional. Verificar a administrao da utilizao de recursos pelo sistema operacional.

MATERIAIS

CARGA HORRIA (horas)

5. Arquitetura do Sistema Operacional

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

10

6. Introduo gerncia de processos, memria e arquivos

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

10

concluso

e-Tec Brasil

14

Sistemas Operacionais

Aula 1 Viso geral de Sistemas OperacionaisObjetivosCompreender 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 executadas 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 computao. 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 Operacional Sistema 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.

Aula 1 Viso geral de Sistemas Operacionais

15

e-Tec Brasil

Programadores e Analistas

Usurios

Aplicativos

Usurios

Sistemas Operacionais

HardwareFigura 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 especficas, controladas pelo sistema operacional, que so responsveis por acionar 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 recursos de hardware, tornando esta comunicao transparente (ou imperceptvel) 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

e-Tec Brasil

16

Sistemas Operacionais

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 outros 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 concorrentemente, 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 operacional atua, ele nos permite executar vrias tarefas, como imprimir um documento, copiar um arquivo pela internet ou processar uma planilha, entre outros. 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 responsabilidade 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 comunicao 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 HardwareFigura 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.

Aula 1 Viso geral de Sistemas Operacionais

17

e-Tec Brasil

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 programa resolvesse fazer um pedido estranho (por exemplo, apagar todos os dados 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 diretamente, 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.

PROGRAMASDOS HARDWAREFigura 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 problema continuou em verses do Windows 3.x, 95, 98 e ME, por utilizarem o mesmo ncleo do DOS, permitindo acessos direto ao hardware.

e-Tec Brasil

18

Sistemas Operacionais

1.3 Mquina de nveisA linguagem entendida pelo computador uma linguagem binria de difcil entendimento pelos seres humanos, sendo chamada de linguagem de baixo nvel ou de mquina. As linguagens mais prximas aos seres humanos so classificadas como linguagens de alto nvel. Os computadores entendem 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 clculos, 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, atravs 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 construtores 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 eficiente. A partir desse acontecimento, no existia mais a necessidade de o programador 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 camadas, 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 deste 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.

Aula 1 Viso geral de Sistemas Operacionais

19

e-Tec Brasil

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 Sistema Operacional Linguagem de Mquina Microprogramao Dispositivos FsicosFigura 1.4: O computador como mquina de nveisFonte: Adaptado de Machado, 2004

Hardware

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, geralmente 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 alocao controlada e ordenada dos recursos do computador entre os vrios programas que competem por esses recursos. Os recursos incluem processadores, 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-

e-Tec Brasil

20

Sistemas Operacionais

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 operacionais, algumas questes importantes sobre seu funcionamento e funes principais. 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 teria 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.

Aula 1 Viso geral de Sistemas Operacionais

21

e-Tec Brasil

Aula 2 Histrico e classificaoObjetivosConhecer 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 recordando 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 aprimoramento 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 dividido 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

Aula 2 Histrico e classificao

23

e-Tec Brasil

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 computador digital de propsito geral. Criado para a realizao de clculos balsticos, 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 computadores 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 armazenamento e computadores menores. Surgiram os primeiros sistemas operacionais, para tentar automatizar as tarefas 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.

e-Tec Brasil

24

Sistemas Operacionais

Processamento Cartes Perfurados

Fita de Entrada

Processamento Fita de Entrada

Fita de Sada

Fita de SadaFonte: Adap tado de Machado, 2004

Processamento

Relatrios

Figura 2.1: Ciclos de processamento na segunda fase

Os programas passaram a ser perfurados em cartes que, submetidos a uma leitora, eram processados e gravados em uma fita de entrada, conforme Figura 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 programas, 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 empresas, 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 parties, 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.

Multiprogramao Multiprogramao a execuo simultnea de dois ou mais programas.

Aula 2 Histrico e classificao

25

e-Tec Brasil

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.

Com a substituio das fitas por discos no processo de submisso dos programas, 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 tempos 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 microcomputadores 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 processamento, foram adicionados outros processadores, exigindo dos sistemas operacionais novos mecanismos de controle e sincronismo. Com o multiprocessamento, foi possvel a execuo de mais de um programa simultaneamente, ou at de um mesmo programa por mais de um processador. Foram introduzidos processadores vetoriais e tcnicas de paralelismo de processamento, fazendo com que os computadores se tornassem ainda mais poderosos.

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.

e-Tec Brasil

26

Sistemas Operacionais

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 intimamente 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 telecomunicaes como consequncia da evoluo das aplicaes, que necessitavam cada vez mais de capacidade de processamento e armazenamento de dados. Sistemas especialistas, sistemas multimdia, bancos de dados distribudos, inteligncia 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 operacionais, de forma que suas funes estejam espalhadas por vrios processadores atravs de redes de computadores.A dcada de 90, foi definitiva para a consolidao dos sistemas operacionais 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 paralelizao 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 estudo e entendimento da evoluo de hardware necessria para o desenvolvimento 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 diretamente com a evoluo do hardware e das aplicaes por ele suportadas e podem ser classificados conforme Figura 2.2.

Aula 2 Histrico e classificao

27

e-Tec Brasil

Tipos de Sistemas Operacionais

Sistemas Monoprogamveis/ Monotarefas

Sistemas Monoprogamveis/ Multitarefa

Sistemas com Multiplos Processadores

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

Considerando o processamento, podemos classificar os sistemas operacionais de acordo com a quantidade de tarefas que podem ser executadas simultaneamente. Monoprogramveis ou Monotarefa podem executar apenas um programa 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 principal desvantagem residia no fato de que enquanto um programa aguardava 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.

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

Memria

UCP

Programa/Tarefa

Dispositivos de E/S

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

e-Tec Brasil

28

Sistemas Operacionais

Sistemas Multiprogramveis ou Multitarefa: os recursos computacionais so compartilhados entre os diversos usurios e suas aplicaes. Podemos observar 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 simultaneamente. 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, permitindo sua execuo concorrente. A vantagem desse tipo de sistema uma melhor utilizao dos recursos disponveis, 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 instantneos (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 simultaneamente 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, modelagens, simulaes, desenvolvimento aeroespacial, entre outros. Com mltiplos processadores, possvel reduzir drasticamente o tempo de processamento destas aplicaes. Inicialmente, as configuraes limitavam-se a poucos processadores, mas, atualmente existem sistemas com milhares de processadores.

Sistemas com mltiplos processadores Sistemas com mltiplos processadores 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.

Aula 2 Histrico e classificao

29

e-Tec Brasil

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 foram 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 fracamente acoplados?

e-Tec Brasil

30

Sistemas Operacionais

Aula 3 Elementos de hardware e software Parte IObjetivosConhecer 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, impressoras 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 controle) gerados por um dispositivo chamado clock. Esse controle pode ser exercido, por exemplo, sobre a gravao de um dado no disco ou a busca

Aula 3 Elementos de hardware e software Parte I

31

e-Tec Brasil

de uma instruo na memria. A ULA responsvel pela realizao de operaes lgicas (testes e comparaes) 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 transmissor 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 tempo (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.

Atualmente os nossos processadores conseguem executar bilhes de instrues por segundo!

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 armazenamento, custo e volatilidade. Em funo dessas caractersticas, pode-se estabelecer uma hierarquia de tipos de memrias, conforme Figura 3.1.

Registradores Memria Cache Maior capacidade de armazenamento Menor custo e velocidade de acesso

Memria Principal

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

e-Tec Brasil

32

Sistemas Operacionais

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 prxima instruo que a unidade central de processamento dever executar. Toda vez que uma instruo j est sendo processada o endereo da prxima 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 execuo do programa (status do programa). A cada instruo executada, o registrador 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 principal, 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 memria 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.

Aula 3 Elementos de hardware e software Parte I

33

e-Tec Brasil

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 transferido 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, apagamos 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 memria 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 clula 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 armazenado em um registrador denominado registrador de endereo de memria.

e-Tec Brasil

34

Sistemas Operacionais

0 1 2

Instruo ou Dado

Endereos

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

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

O nmero de clulas endereadas na memria principal limitado pelo tamanho do registrador de endereo. No caso de o registrador possuir n bits, n a memria poder enderear 2 clulas. d) Memria secundria Memria secundria um termo genrico para designar diversos componentes 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 conhecimento especfico sobre informtica possam utilizar o computador. So alguns exemplos desses tipos de dispositivos: Scanner, caneta tica, mouse, dispositivos sensveis voz humana, e etc.

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.

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

Aula 3 Elementos de hardware e software Parte I

35

e-Tec Brasil

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 Unidade Lgica e Aritmtica Unidade de Controle

Registradores

Dispositivo E/SFluxo de Dados Fluxo de ControleFigura 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 principal e a unidade central de processamento; Barramento de endereos: utilizado pela unidade central de processamento para especificar o endereo da clula de memria que ser acessada; Barramento de controle: por onde a unidade central de processamento 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 sequncia de subtarefas. O processador, por meio de suas vrias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instruo se encontra 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

e-Tec Brasil

36

Sistemas Operacionais

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 alimentao, 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 chamavam 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 imposto de renda, de controle de estoques ou de contas a receber. Antigamente havia uma distino mais ntida entre os aplicativos e os utilitrios, pois havia um personagem a mais no cenrio: o operador do computador. 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 programa 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 referncia 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-

Aula 3 Elementos de hardware e software Parte I

37

e-Tec Brasil

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 programadores, 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 chamado de montador ou compilador: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)

Programa fonte

Tradutor

Programa objeto

Linguagem de Montagem Linguagem de Alto NvelFonte: Adaptado de Machado, 2004

Montador

Mdulo objeto

Compilador

Mdulo objeto

Figura 3.4: Representao das diferenas entre o tradutor, montador e compilador

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 momento da execuo do programa, traduz cada instruo e a executa em seguida. Sua desvantagem o tempo gasto na traduo das instrues de um programa toda vez que este for executado, j que no existe a gerao de um cdigo executvel.

e-Tec Brasil

38

Sistemas Operacionais

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 objetoFigura 3.5: Representao do papel do linkerFonte: Adaptado de Machado, 2004

Linker

Programa Executvel

Em ambientes multiprogramveis esse tipo de alocao fixa feita pelo linker invivel porque neste caso a memria compartilhada entre diversos programas: 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 qualquer 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.

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.

3.2.4. LoaderO loader (carregador) o utilitrio responsvel por colocar fisicamente na memria 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 aloca 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 armazena os endereos de retorno das funes ou procedimentos chamados du-

Aula 3 Elementos de hardware e software Parte I

39

e-Tec Brasil

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 memria principal e inicia sua execuo; Loader relocvel - o programa pode ser carregado em qualquer posio 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.Programa-fonte

Compilador ou Montador

Programa-fonte

Outros Mdulos Objeto

Link edio

Mdulo de Carga

Tempo de Carga

Biblioteca do Sistema

Carregador

Biblioteca do Sistema Carregada Dinamicamente

Ligao Dinmica

Imagem Binria na Memria

Tempo de Execuo

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

e-Tec Brasil

40

Sistemas Operacionais

3.2.5. DepuradorO desenvolvimento de programas est sujeito a erros de lgica, independentemente 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 depurador 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.Esses recursos de depurao de programas tambm esto presentes em IDEs, geralmente na opo Debug.

ResumoNesta aula voc pde estudar e identificar os elementos bsicos de uma arquitetura clssica de computadores. Pode compreender as funes e caractersticas 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 aprendizagem1. 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?

Aula 3 Elementos de hardware e software Parte I

41

e-Tec Brasil

Aula 4 Elementos de hardware e software Parte IIObjetivosConhecer 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.

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 interpretados por um programa denominado interpretador de comandos ou shell. A linha de comando reconhecida, o shell verifica sua sintaxe, envia mensagens 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. Quando voc cria uma pasta, renomeia ou apaga um arquivo, clica em cima de

Aula 4 Elementos de hardware e software Parte II

43

e-Tec Brasil

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.

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 programa 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 execuo de uma srie de tarefas de uso do computador ou de perifricos especficos. 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 conectados, nmero de documentos aguardando impresso e outras informaes semelhantes; c) Modificao de arquivo - vrios editores de texto podem estar disponveis 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 conexes virtuais entre processos, usurios e diferentes sistemas de computao. 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.

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.

e-Tec Brasil

44

Sistemas Operacionais

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 previamente 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 ProgramIinterface que os compiladores usam para traduzir as instrues escritas 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.

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

4.4. Mecanismo de interrupoOs sistemas multiprogramveis tornaram mais eficiente a utilizao dos recursos computacionais, por permitirem a execuo simultnea (concorrente) de vrios programas, permitindo que, quando um programa estiver realizando uma operao de E/S, outros possam utilizar o processador. Essa possibilidade 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.

Aula 4 Elementos de hardware e software Parte II

45

e-Tec Brasil

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 processador 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.Programa Salva contedo dos registradores na pilha de controle

Interrupo ou exceo

Identica a origem do evento

Obtm o endereo da rotina de tratamento

Rotina de tratamento

Restaura o contedo dos registradoresFigura 4.1: Mecanismo de interrupoFonte: Adaptado de Machado, 2004

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

e-Tec Brasil

46

Sistemas Operacionais

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 tratamento. No momento da interrupo, o processador dever saber para qual rotina de tratamento dever encaminhar o fluxo em execuo que foi interrompido Os eventos que causam a interrupo podem ser classificados como sncronos ou assncronos. Um evento classificado como assncrono, independente 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 simultneas, o que no seria interessante para nosso programa em execuo. Uma maneira de evitar essa situao a rotina de tratamento inibir as demais interrupes. No caso, na ocorrncia de outras interrupes durante a execuo da rotina de tratamento, elas sero ignoradas, ou seja, no recebero tratamento. Em outras palavras, elas s sero tratadas quando a rotina de tratamento da interrupo atual terminar. Interrupes com a caracterstica de poder ser desabilitada so chamadas de interrupes mascarveis. As interrupes que no podem ser desabilitadas so chamadas no-mascarveis. Alguns exemplos de eventos que geram interrupes no-mascarveis 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 sncronos ocorrero sempre nos mesmos pontos (instrues) do programa.

interrupes mascarveis so aquelas com a caracterstica de poderem ser desabilitadas.

Interrupes no-mascarveis so aquelas com a caracterstica de poderem ser desabilitadas.

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 dispositivos de E/S. Com esse novo elemento, o processador no precisava mais se

Aula 4 Elementos de hardware e software Parte II

47

e-Tec Brasil

comunicar diretamente com os perifricos, nem conhecer detalhes de operao especficos de cada perifrico. Com isso, foram muito simplificadas as instrues de E/S do processador.

UCP

Memria Principal

Controlador

Dispositivos de E/SFigura 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 consultando 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 controlador, 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 sucessivas 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 operacional 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;

e-Tec Brasil

48

Sistemas Operacionais

E/S controlada por interrupo - ao invs de o sistema ficar periodicamente 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 desempenho. 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 controlador 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 multiprogramveis? 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 implementao da multiprogramao? 4. Explique o mecanismo de funcionamento das interrupes. 5. Pesquise sobre o termo traps em sistemas operacionais e em que situaes elas ocorrem. 6. O que DMA e qual a vantagem desta tcnica? Um sistema operacional fornece o ambiente no qual os programas so exe-

Aula 4 Elementos de hardware e software Parte II

49

e-Tec Brasil

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 do Sistema Operacional

HardwareFigura 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.

e-Tec Brasil

50

Sistemas Operacionais

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 costuma 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 cartes. 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.

Aula 4 Elementos de hardware e software Parte II

51

e-Tec Brasil

A sada de cada tarefa seria enviada de volta ao programador apropriado.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. 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 multiprogramaoA introduo da tecnologia de disco permitiu que o sistema operacional mantivesse todas as tarefas em um disco, em vez de em uma leitora de cartes serial. Surge ento o conceito de escalonamento de tarefas e posteriormente 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/Tarefa

Programa/Tarefa

Memria

UCP

Dispositivos de E/S

Programa/TarefaFonte: Adaptado de Machado, 2004

Programa/Tarefa

Figura 4.4: Sistema multiprogramvel ou multitarefa

O sistema operacional escolhe e comea a executar a tarefa carregada na memria. Em alguns momentos a tarefa que est em execuo dever espe-

e-Tec Brasil

52

Sistemas Operacionais

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 carregados 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 sharing) 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 sistemas 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 mouse, e espera por resultados imediatos. O tempo de resposta deve ser curto. Um sistema operacional de tempo compartilhado permite que muitos usurios 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 impresso de que todo o sistema de computao est dedicado a ele, enquanto, na verdade, o computador est sendo compartilhado por muitos usurios.Escalonamento de tarefas consiste em selecionar uma tarefa, de um conjunto de tarefas aptas para execuo, que ser a prxima a ser executada pela CPU

Aula 4 Elementos de hardware e software Parte II

53

e-Tec Brasil

Nos sistemas time sharing os usurios podem interagir com o programa em execuo, muitas vezes atravs de terminais, tendo a iluso de possuir a mquina 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 programa 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 computao 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).

e-Tec Brasil

54

Sistemas Operacionais

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 simultnea; b) Contabilizao - preciso manter um registro dos usurios que utilizam 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 executar 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 operacional 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 multiprogramados, a conceituao de jobs e tarefas e a importncia dos discos magnticos 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 sistema operacional. Quais so? 2. Por que podemos afirmar que os discos magnticos foram de fundamental importncia para o surgimento da multiprogramao nos sistemas atuais?

Aula 4 Elementos de hardware e software Parte II

55

e-Tec Brasil

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 processamento. 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.

e-Tec Brasil

56

Sistemas Operacionais

Aula 5 Arquitetura do Sistema OperacionalObjetivosConhecer os modos de acesso ao processador como forma de proteo 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 operacional 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 sistema. As instrues que tm o poder de comprometer o sistema so conhecidas 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 processador implementa o mecanismo de modos de acesso. Existem basicamente dois modos de acesso: modo usurio e modo kernel. Quando o processador 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.

Aula 5 Arquitetura do Sistema Operacional

57

e-Tec Brasil

Quando um programa que esteja no modo usurio tenta executar uma instruo 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 m