You are on page 1of 80

Sistemas Operacionais

Bruno Cardoso Coutinho

Curso Tcnico em Informtica

Sistemas Operacionais
Bruno 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 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 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 2010
Nosso contato etecbrasil@mec.gov.br

e-Tec Brasil

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 Brasil

Sumrio
Aula 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

e-Tec Brasil

Referncias Currculo do professor-autor

77 78

e-Tec Brasil

Sistemas Operacionais

Palavra do professor-autor
Ol, 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.

e-Tec Brasil

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 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 instrucional
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
Compreender 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 APRENDIZAGEM
Conhecer 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 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 bsicos


Diferentemente 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

Hardware
Figura 1.1: Viso do Sistema Operacional
Fonte: 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 principais


Na 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 Hardware


Figura 1.2: O Sistema Operacional funciona como uma interface entre o
hardware e os programas de usurios
Fonte: 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.

PROGRAMAS
DOS HARDWARE
Figura 1.3: O Sistema DOS permitia acesso direto ao hardware pelos programas de usurio
Fonte: 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 nveis


A 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 Fsicos
Figura 1.4: O computador como mquina de nveis
Fonte: 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.

Resumo
Nesta 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 aprendizagem
1. 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 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 Histrico
Vimos 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 Sada
Fonte: 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 Operacionais


Os 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 operacionais


Fonte: 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 monotarefa


Fonte: 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

Resumo
Nesta 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 aprendizagem
1. 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 I


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

3.1 Hardware
O 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 Memrias
A 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 Secundria
Figura 3.1: Comparativo dos diversos tipos de memria
Fonte: 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 Clulas
Figura 3.2: Clulas de memria e seus endereos
Fonte: 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 sada


Permitem 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 Barramento
A 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/S
Fluxo de Dados Fluxo de Controle
Figura 3.3: Esquema grfico dos barramentos
Fonte: 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 Pipelining
O 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 Software
Na 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 montadores


Com 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 Nvel


Fonte: 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. Interpretador
Assim 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. Linker
O 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


Figura 3.5: Representao do papel do linker
Fonte: 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. Loader
O 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 programa


Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

e-Tec Brasil

40

Sistemas Operacionais

3.2.5. Depurador
O 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.

Resumo
Nesta 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 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?

Aula 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 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 controle


Denominada, 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 utilitrios


Os 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 mquina


Todos 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 interrupo


Os 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 registradores


Figura 4.1: Mecanismo de interrupo
Fonte: 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/S
Figura 4.2: Controlador dos dispositivos de E/S
Fonte: 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

Hardware
Figura 4.3: Posicionamento do ncleo do sistema operacional em um sistema computacional
Fonte: 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 lote


Os 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 multiprogramao


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 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/Tarefa
Fonte: 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 Operacionais


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

Resumo
Nesta 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 aprendizagem
1. 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 Operacional


Objetivos
Conhecer 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 acesso


Vimos 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 modo kernel e vice-versa. No momento da carga do sistema (boot), o sistema operacional inicia em modo kernel. Aps estar carregado em memria, o sistema operacional permite que os programas de usurios sejam carregados apenas em modo usurio. Chaveamento dos modos: Interrupo - modo usurio Instruo - modo protegido

modo protegido. modo usurio.

Se um programa estiver executando em modo usurio e ocorrer qualquer tipo de interrupo (interrupo de hardware, exceo ou interrupo de software), o modo de acesso alterado para o modo kernel. Com isso, a rotina de tratamento executada em modo kernel. Ao final de toda rotina de tratamento, h uma instruo especfica que, antes de retornar para o programa do usurio, altera o modo de acesso para o modo usurio (Figura 5.1).

Programa do Usurio
Sy m ste Ca ll

Salva contexto dos registradores

Altera modo do processador para kernel

Altera modo do processador para usurio

Restrutura o contexto dos registradores


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

A melhor maneira de controlar o acesso s instrues privilegiadas permitir

e-Tec Brasil

58

Sistemas Operacionais

que apenas o sistema operacional tenha acesso a elas. Sempre que uma aplicao necessita de um servio que incorra em risco para o sistema, a solicitao feita atravs de uma system call. Esta altera o modo de acesso do processador para um modo mais privilegiado (modo kernel). Ao trmino da rotina do sistema, o modo de acesso retornado para o modo usurio. Caso um programa tente executar uma instruo privilegiada, sem o processador estar no modo kernel, uma exceo gerada e o programa encerrado. Caso uma aplicao tenha acesso a reas de memria onde est carregado o sistema operacional, um programador mal-intencionado ou um erro de programao poderia gravar nesta rea, violando o sistema. Com o mecanismo de modo de acesso, para uma aplicao escrever numa rea onde resida o sistema operacional o programa deve estar sendo executado no modo kernel.

5.2. System calls (Chamadas ao sistema)


As chamadas ao sistema (system calls) fornecem a interface entre um processo e o sistema operacional. Essas chamadas esto disponveis como instrues em linguagem assembly e, em geral, so listadas nos manuais usados por programadores em linguagem assembly, conforme Figura 5.2.
Ncleo do Sistema Operacional Hardware

Aplicao

System Call Biblioteca

Figura 5.2: Chamada de sistema (system call)


Fonte: Adaptado de Machado, 2004

Certos sistemas permitem que as chamadas ao sistema sejam feitas diretamente de um programa de linguagem de nvel mais alto e, nesse caso, as chamadas normalmente lembram chamadas de subrotinas ou de funes predefinidas. Vrias linguagens como C, C++ e Perl foram definidas para substituir a linguagem assembly na programao de sistemas. Essas linguagens permitem que as chamadas ao sistema sejam feitas diretamente. Por exemplo, as chamadas ao sistema do Unix podem ser feitas diretamente a partir de um programa em C ou em C++. Como um exemplo da forma em que as chamadas de sistema so usadas, consideremos escrever um programa simples para ler dados de um arquivo e copi-los para outro arquivo. Cada passo dado pelo programa praticamente efetua uma chamada ao sistema:

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

Aula 5 Arquitetura do Sistema Operacional

59

e-Tec Brasil

a) A primeira entrada que o programa precisar so os nomes dos dois arquivos: de entrada e de sada. Uma abordagem fazer o programa pedir ao usurio os nomes dos dois arquivos. Em sistemas baseados em mouse e cones, um menu de nomes de arquivos geralmente exibido em uma janela (esta lista de diretrios e arquivos fornecida por uma chamada ao SO); o usurio pode usar o mouse para selecionar o nome de origem. Uma janela pode ser aberta para que o nome do arquivo de destino seja especificado; b) Depois que os dois nomes de arquivos tiverem sido obtidos, o programa deve abrir o arquivo de entrada e criar o arquivo de sada. Cada uma dessas operaes requer uma chamada ao sistema; c) Agora que os dois arquivos esto prontos, entramos em um lao que l dados do arquivo de entrada (uma chamada ao sistema) e os grava no arquivo de sada (outra chamada ao sistema). Lembramos que entre essas operaes de leitura e escrita podero ocorrer alguns erros que geraro outras chamadas ao sistema. Por exemplo, a operao de escrita pode encontrar erros, dependendo do dispositivo de sada (falta de espao em disco, fim fsico da fita, etc.); d) Finalmente, depois que o arquivo todo tiver sido copiado, o programa dever fechar os dois arquivos (outra chamada ao sistema), gravar uma mensagem na console (mais uma chamada ao sistema) e finalmente terminar normalmente (a chamada final ao sistema). Como podemos observar, os programas fazem uso pesado do sistema operacional. Entretanto, a maioria dos usurios nunca chega a ver esse nvel de detalhe. As chamadas de sistema ocorrem de diferentes maneiras, dependendo do SO e do computador que est sendo usado. Geralmente, mais informaes so necessrias alm de simplesmente identificar a chamada ao sistema desejada; o tipo e a quantidade exata de informaes variam de acordo com a chamada em questo (os parmetros, que voc j viu ao criar suas funes em programao). Por exemplo, para obter entrada preciso especificar o arquivo ou dispositivo a ser usado como origem e o endereo e o tamanho do buffer (espao) de memria no qual a entrada deve ser lida. As chamadas de sistema podem ser agrupadas basicamente em cinco categorias principais de acesso ou controle: Controle de processo;

e-Tec Brasil

60

Sistemas Operacionais

Manipulao de arquivos; Manipulao de dispositivos; Manuteno de informaes; Comunicaes.


Aplicao

Comandos de E/S

Comandos de E/S

System calls de E/S

Rotinas de E/S Device drivers Dispositivo de E/S


Figura 5.3: Operaes de entrada/sada atravs das system calls
Fonte: Adaptado de Machado, 2004

Um dos objetivos principais das system calls de E/S simplificar a interface entre as aplicaes e os dispositivos. Com isso, elimina-se a necessidade de duplicao de rotinas idnticas nos diversos aplicativos, alm de esconder do programador caractersticas especficas associadas programao de cada dispositivo. So as chamadas de sistema que iro intermediar a solicitao de uso de algum dispositivo feito pelas aplicaes. O programador ao elaborar uma aplicao no precisa fazer nenhuma referncia configurao do dispositivo a ser utilizado. A Figura 5.3 ilustra a comunicao entre a aplicao e os dispositivos de E/S de maneira simplificada.

Aula 5 Arquitetura do Sistema Operacional

61

e-Tec Brasil

5.3. Arquiteturas do ncleo (kernel)


O projeto de um sistema operacional bastante complexo e deve atender a diversos requisitos, algumas vezes conflitantes, como confiabilidade, portabilidade, fcil manuteno, flexibilidade e desempenho. A estrutura do ncleo do sistema operacional, ou seja, a maneira como o cdigo do sistema organizado e o inter-relacionamento entre seus diversos componentes, pode variar conforme a concepo do projeto. A seguir sero abordadas as principais arquiteturas dos sistemas operacionais.

5.3.1. Arquitetura monoltica


Neste tipo de organizao, arquitetura monoltica, a forma mais comum de ser encontrada aquela que estrutura o sistema como um conjunto de rotinas que podem interagir livremente umas com as outras, conforme Figura 5.4. A estrutura monoltica pode ser comparada com uma aplicao formada por vrios procedimentos que so compilados separadamente e depois linkados, formando um grande e nico programa executvel.

Aplicao

Aplicao

Modo Usurio Modo Kernel System call

Hardware
Figura 5.4: Arquitetura monoltica
Fonte: Adaptado de Machado, 2004

e-Tec Brasil

62

Sistemas Operacionais

Um sistema to grande e complexo quanto um sistema operacional moderno deve ser cuidadosamente construdo para que funcione bem e possa ser facilmente modificado. Uma abordagem comum dividir a tarefa em pequenos componentes em vez de ter um sistema monoltico.

5.3.2. Arquitetura de camadas


Um sistema em camadas divide o sistema operacional em camadas sobrepostas. Cada mdulo oferece um conjunto de funes que podem ser utilizadas por outros mdulos. Voc viu chamarmos o computador de mquina de nveis no primeiro captulo; por sua vez o prprio SO pode ser encarado desta forma. A principal vantagem da abordagem em camadas a modularidade. As camadas so selecionadas de forma que cada uma utilize as funes (operaes) e servios apenas das camadas de nvel mais baixo. Essa abordagem simplifica a depurao e verificao do sistema, alm de criar uma hierarquia de nveis de modos de acesso, protegendo as camadas mais internas. A Figura 5.5 apresenta esta formao em camadas para o DOS; entretanto, o nvel de segurana baixo, pois permitida a comunicao com camadas mais baixas sem passar pelas intermedirias.

Programa

Programa de Sistema Residente

Dispositivo do MS-DOS

Drivers de Dispositivo BIOS em ROM Figura 5.5: Estrutura em camadas do MS-DOS


Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

A primeira camada pode ser depurada sem preocupao com o resto do sistema, porque, por definio, ela s utiliza o hardware bsico (que

Aula 5 Arquitetura do Sistema Operacional

63

e-Tec Brasil

considerado correto) para implementar suas funes. Depois que a primeira camada depurada, pode-se presumir seu funcionamento correto enquanto a segunda camada depurada e assim por diante. Se for encontrado um erro durante a depurao de determinada camada, o erro deve estar nessa camada, porque as camadas inferiores j foram depuradas. Assim, o projeto e a implementao do sistema so simplificados quando o sistema dividido em camadas. A principal dificuldade da abordagem em camadas est na definio adequada das vrias camadas. Como uma camada semente poder usar as camadas que esto em um nvel inferior, preciso haver um planejamento cuidadoso. Um ltimo problema com implementaes em camadas que elas tendem a ser menos eficientes. Por exemplo, quando um programa de usurio executa uma operao de E/S (entrada e sada), ele executa uma chamada de sistema (system call) que desviada para a camada de E/S, que chama a camada de gerncia de memria, que, por sua vez, chama a camada de escalonamento de CPU, que ento passada para o hardware. Em cada camada, os parmetros podem ser modificados, os dados precisam ser transferidos e assim por diante. Cada camada acrescenta novo custo chamada ao sistema; o resultado final uma chamada ao sistema que demora mais do que em um sistema sem camadas. As limitaes da eficincia causaram reaes contra a estrutura em camadas nos ltimos anos. Menos camadas com mais funcionalidades esto sendo projetadas, fornecendo a maior parte das vantagens do cdigo modularizado e evitando difceis problemas da definio e interao em camadas.

5.3.3. Arquitetura microkernel


medida que o Unix se expandiu, o kernel tornou-se grande e difcil de gerenciar. Foi desenvolvido, ento, um sistema operacional usando a abordagem de microkernels. O resultado um kernel menor. Uma tendncia dos sistemas operacionais modernos tornar o ncleo do sistema operacional menor e o mais simples possvel. Em geral, os microkernels fornecem gerncia mnima de memria e processos, alm de um recurso de comunicao. A principal funo do microkernel fornecer um recurso de comunicao entre programa cliente e os vrios servios que tambm esto em execuo no espao de usurio. Para implementar esta ideia, o sistema dividido em

e-Tec Brasil

64

Sistemas Operacionais

processos, sendo cada um responsvel por oferecer um conjunto de servios, como servios de arquivo, servios de criao de processos, servios de memria, servios de escalonamento, etc. Se o programa cliente desejar acessar um arquivo, ele dever interagir com o servidor de arquivos. Mas o programa cliente e o servio nunca vo interagir diretamente; em vez disso, eles se comunicam indiretamente trocando mensagens com o microkernel. Sempre que uma aplicao deseja algum servio, ela solicita ao processo responsvel. Neste caso, a aplicao que solicita um servio chamada de cliente, enquanto o processo que responde solicitao chamado de servidor. Um cliente, que pode ser uma aplicao de um usurio ou um outro componente do sistema operacional, solicita um servio enviando uma mensagem. funo do ncleo do sistema realizar a comunicao, ou seja, a troca de mensagens entre o cliente e o servidor. Os benefcios da abordagem do microkernel incluem a facilidade de expandir o sistema operacional. Todos os novos servios so adicionados ao espao de usurio e, consequentemente, no exigem modificao do kernel. Quando o kernel precisa ser modificado, as alteraes tendem a ser menores, porque o microkernel um kernel menor. O microkernel tambm fornece mais segurana e confiabilidade, pois a maior parte dos servios est sendo executada como processos de usurio, em vez de kernel. Se um servio falhar, o resto do sistema operacional permanece inalterado. O kernel coordena a troca de mensagens entre as aplicaes (clientes e servidoras). O Windows NT projetado para executar vrias aplicaes, incluindo Win32 (aplicaes nativas do Windows), OS/2 e POSIX. A estrutura cliente-servidor do Windows NT est representada na Figura 5.6.
Aplicativo Win 32 Servidor Win 32 Aplicativo OS/2 Servidor OS/2 Aplicativo Posix Servidor Posix

Kernel
Figura 5.6: Estrutura do Windows NT 4.0 (ncleo e servidores de aplicaes)
Fonte: Adaptado de Machado, 2004

Aula 5 Arquitetura do Sistema Operacional

65

e-Tec Brasil

A utilizao deste modelo permite que os servidores executem em modo usurio, ou seja, no tenham acesso direto a certos componentes do sistema. Apenas o ncleo do sistema, responsvel pela comunicao entre clientes e servidores, executa no modo kernel. Como consequncia, se um erro ocorrer em um servidor, este servidor pode parar, mas o sistema no ficar inteiramente comprometido. Como os servidores se comunicam atravs de trocas de mensagens, no importa se os clientes e servidores esto sendo processados em um sistema com um nico processador, com mltiplos processadores ou ainda em um ambiente de sistema distribudo. Apesar de todas as vantagens deste modelo, sua implementao na prtica muito difcil devido a certas funes dos sistemas operacionais exigirem acesso direto ao hardware, como operaes de entrada e sada. Na realidade, o que implementado mais usualmente uma combinao do modelo de camadas com o modelo cliente-servidor.
Um sistema computacional formado por nveis, onde a camada de nvel mais baixo o hardware. Acima desta camada encontramos o sistema operacional que oferece suporte para as aplicaes. O modelo de mquina virtual, ou virtual machine (VM), cria um nvel intermedirio entre o hardware e o sistema operacional, denominado gerncia de mquinas virtuais. Este nvel cria diversas mquinas virtuais independentes, onde cada uma oferece uma cpia virtual do hardware, incluindo os modos de acesso, interrupes, dispositivos de E/S, etc.

5.4. Interpretador de comandos


Um dos utilitrios mais importantes para um sistema operacional o interpretador de comandos (ou shell), que a interface entre o usurio e o sistema operacional. Alguns sistemas operacionais incluem o interpretador de comandos no kernel (ncleo do sistema operacional). Outros podem tratar o interpretador de comandos como um programa especial que fica executando quando um job iniciado ou quando um usurio entra no sistema (em sistemas de tempo compartilhado). Muitos comandos do usurio so passados ao sistema operacional por instrues de controle digitadas em uma linha da tela. Esse programa chamado de interpretador da linha de comandos. Sua funo simples: obter o comando seguinte e execut-lo. Antes das interfaces grficas esta era a nica forma de comunicao entre a pessoa do usurio e o SO. Os sistemas operacionais geralmente se diferenciam bastante na rea do shell, com um interpretador de comandos amigvel ao usurio tornando o sistema mais agradvel a alguns e menos a outros. Estas diferenas se acentuaram com as interfaces grficas. O interpretador de comandos (shell) pode ser utilizado na seguinte forma:

e-Tec Brasil

66

Sistemas Operacionais

a) O mouse movido para posicionar o ponteiro sobre imagens na tela, ou cones, que representam programas, arquivos ou funes; b) Dependendo da localizao do ponteiro do mouse, clicar em um boto do mouse pode chamar um programa, selecionar um arquivo ou diretrio ou abrir um menu que contm comandos; c) O clicar do mouse a chamada a algum programa, arquivo ou pasta e ir utilizar o interpretador da linha de comando (shell). O clique do mouse j , portanto, um comando que dever ser interpretado pelo shell. As instrues de comando lidam com a criao e gerncia de processos, tratamento de E/S, gerncia de armazenamento secundrio, gerncia de memria principal, acesso ao sistema de arquivo e proteo, e redes; enfim, tudo o que a pessoa do usurio precisa para operar seus programas e atender suas necessidades.

Resumo
Nesta aula aprendemos sobre funcionamento da comunicao entre os programas de usurios e o ncleo do sistema, pelas chamadas de sistema. Tambm vimos a forma como o hardware participa da proteo dos diversos tipos de processos e, consequentemente, dos diversos tipos de instrues que iro executar na CPU. Por fim, analisamos algumas formas de se projetar o kernel de um sistema operacional e suas implicaes no desempenho final do sistema.

Atividades de aprendizagem
1. O que so instrues privilegiadas e no-privilegiadas? Qual a relao dessas instrues com os modos de acesso? 2. Como o kernel pode ser protegido pelo mecanismo de modos de acesso? 3. O que um system call e qual a sua importncia para a segurana do sistema? 4. Como as system calls so utilizadas por um programa? 5. Compare as arquiteturas monolticas e de camadas. Quais as vantagens e desvantagens de cada arquitetura? 6. Pesquise comandos disponveis em linguagens de controle de sistemas operacionais. 7. Pesquise software disponveis para utilizao de mquinas virtuais e quais as suas principais caractersticas.

Aula 5 Arquitetura do Sistema Operacional

67

e-Tec Brasil

Aula 6 Introduo gerncia de processos, memria e arquivos


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

6.1. Gerncia de processos


Um programa no faz nada a no ser que suas instrues sejam executadas por uma CPU. Um processo pode ser considerado um programa em execuo, mas sua definio ser ampliada medida que explorarmos melhor o conceito. Um programa de usurio executado em tempo compartilhado um processo. Um processador de texto executado por um usurio individual em um PC um processo. Uma tarefa de sistema, como enviar sada para uma impressora, tambm um processo. Consideraremos que um processo um job ou um programa de tempo compartilhado. Um processo precisa de determinados recursos tempo de CPU, memria, arquivos e dispositivos de E/S (entrada e sada) para realizar sua tarefa. Estes recursos so dados ao processo quando ele criado ou alocados a ele durante sua execuo. Alm dos vrios recursos fsicos e lgicos que um processo obtm quando criado, vrios dados de inicializao podem ser fornecidos. Um processo um programa em execuo. Um programa por si s no um processo; um programa uma entidade passiva, como o contedo de um arquivo armazenado em disco, enquanto um processo uma entidade ativa, com um contador do programa especificando a prxima instruo a ser executada. A execuo de um processo deve ser sequencial. A CPU executa uma instru-

Aula 6 Introduo gerncia de processos, memria e arquivos

69

e-Tec Brasil

o do processo aps a outra at o processo terminar. Alm disso, a qualquer momento, no mximo uma instruo executada em nome do processo. Assim, embora dois processos possam ser associados com o mesmo programa, eles so considerados duas sequncias de execuo separadas. comum ter um programa que utilize muitos processos para sua execuo. Um processo a unidade de trabalho em um sistema. Em um sistema teremos uma coleo de processos que so desde processos do prprio sistema operacional (aqueles que executam cdigos do SO) at os processos de usurio (aqueles que executam cdigo do usurio). Todos esses processos podem executar concorrentemente, multiplexando a CPU entre eles. O sistema operacional responsvel pelas seguintes atividades em relao gerncia de processos: a) Criar e excluir processos de usurio e de sistema; b) Suspender e retomar processos; c) Fornecer mecanismos para a sincronizao de processos; d) Fornecer mecanismos para a comunicao de processos; e) Fornecer mecanismos para o tratamento de deadlocks.

Multiplexando Multiplexao a diviso de algum servio oferecido entre vrios processos. Voc ver este conceito usado tambm para um canal de comunicao.

Deadlocks Deadlock caracteriza uma situao em que ocorre um impasse, onde dois ou mais processos ficam impedidos de continuar suas execues, ou seja, ficam bloqueados. Um processo aguarda a liberao de um recurso que est sendo utilizado por um outro processo que, por sua vez, aguarda a liberao de outro recurso alocado ou dependente do primeiro processo.

6.2. Gerncia de memria principal


A gerncia do espao da memria principal uma das preocupaes importantes dos sistemas de computao modernos. A memria principal um repositrio de dados rapidamente acessveis compartilhados pela CPU e dispositivos de E/S (entrada e sada). O processador central l as instrues da memria principal durante o ciclo de busca de instrues e l e grava dados da memria principal durante o ciclo de busca de dados. As operaes de E/S (entrada e sada) implementadas via DMA tambm fazem a leitura e escrita de dados na memria principal. A memria principal geralmente o nico dispositivo de armazenamento que a CPU pode enderear e acessar diretamente. Para que a CPU processe dados do disco, esses dados devem primeiro ser transferidos para a memria principal por chamadas de E/S geradas pela CPU. Do mesmo modo, as instrues dos programas devem estar na memria principal para que a CPU as execute.

DMA Direct Memory Access (Acesso Direto Memria) uma forma de controle de entradas e sadas sem a utilizao constante do microprocessador, como se houvesse uma comunicao direta entre o dispositivo DMA de E/S e a memria. Isto ocorre, por exemplo, com a placa de vdeo e o HD.

e-Tec Brasil

70

Sistemas Operacionais

Para melhorar a utilizao da CPU e a velocidade da resposta do computador aos seus usurios, preciso manter vrios programas na memria principal. Existem muitos esquemas diferentes de gerncia de memria. A seleo de um esquema de gerncia de memria para um sistema especfico depende de muitos fatores, especialmente do projeto de hardware do sistema. O sistema operacional responsvel pelas seguintes atividades em relao gerncia de memria: a) Manter registro das partes da memria que esto sendo usadas no momento e por qual processo; b) Decidir quais processos devero ser carregados na memria quando houver espao disponvel; c) Alocar e desalocar espao na memria, conforme necessrio. Os sistemas operacionais de tempo compartilhado ou de tempo real so ainda mais complexos porque os usurios podem ir se conectando e solicitando a execuo de programas at um momento em que pode no haver mais memria real disponvel. possvel ainda manter um tempo de resposta razovel utilizando um recurso chamado memria virtual. Quando no h mais memria fsica disponvel, algum processo ocioso naquele momento passado rapidamente para um disco que agora ir servir como extenso da memria principal. Quando chegar a vez de este processo ser atendido, um outro (ou mais de um) processo ocioso descarregado no disco, cedendo lugar para este voltar para a memria principal. Esta movimentao de ida e volta da memria para o disco chamada de paginao ou swap e est ilustrado na Figura 6.1.

Aula 6 Introduo gerncia de processos, memria e arquivos

71

e-Tec Brasil

Sistema Operacional

1_Swap out

Processo P1 Espao do Usurio 2_Swap in Processo P2

Armazenamento Auxiliar Memria Prpria

Figura 6.1: Troca de dois processos usando um disco como armazenamento auxiliar (secundrio )
Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

Esse recurso bastante interessante e aumenta a capacidade de atendimento aos usurios, pois o tempo de acesso a disco tambm muito menor do que o tempo de resposta dos usurios. Alm desta utilidade, este conceito de memria virtual facilita tambm a vida dos programadores que, basicamente, passam a no se preocupar com a quantidade de memria fsica disponvel; isso passa a ser mais um problema do SO.

6.3. Gerncia de arquivos


A gerncia de arquivos um dos componentes mais visveis de um sistema operacional. Os computadores podem armazenar informaes em vrios tipos diferentes de meios fsicos: fita magntica, disco magntico e etc. Cada um desses meios possui suas prprias caractersticas e organizao fsica. Cada meio controlado por um dispositivo, como uma unidade de disco, que tambm tm suas caractersticas exclusivas. Essas propriedades incluem: velocidade de acesso, capacidade, taxa de transferncia de dados e mtodo de acesso (sequencial ou aleatrio). O sistema operacional mapeia os arquivos nos meios fsicos e acessa esses

e-Tec Brasil

72

Sistemas Operacionais

arquivos atravs dos dispositivos de armazenamento. O conceito de arquivo bastante geral. Um arquivo uma coleo de informaes relacionadas definidas por seu criador. Geralmente os arquivos representam dados nos mais diversos formatos e, s vezes, programas (fonte e objeto). Os arquivos de dados podem ser numricos ou alfanumricos, representando dados escritos ou figuras, msicas e animaes. Alm disso, podem ter forma livre (por exemplo, arquivos de texto) ou podem ter uma formatao rgida (por exemplo, campos fixos como em planilhas ou bancos de dados). Um arquivo consiste em uma sequncia de bits, bytes, linhas ou registros cujos significados so definidos por seus criadores. Uma considerao importante no projeto de um sistema de arquivos, e de todo o sistema operacional, se o sistema dever reconhecer e oferecer suporte a todos os tipos de arquivos. Quando um sistema operacional reconhece o tipo de arquivo, ele poder operar com o arquivo de forma razovel. Uma tcnica comum para implementar os tipos de arquivo incluir o tipo como parte do nome do arquivo. O nome dividido em duas partes um nome e uma extenso, geralmente separada por um caractere de ponto. Veja no Quadro 6.1, os tipos de arquivos mais comuns. Dessa forma, o usurio e o sistema operacional podem saber imediatamente a partir do nome qual o tipo de arquivo em questo.
Quadro 6.1: Tipos de arquivos comuns
Tipo de Arquivo Executvel Objeto Cdigo-fonte Batch Texto Processador de textos Biblioteca Impresso ou visualizao Extenso Comum exe, com, bin, ou nada obj, o c, cc, pas, java, asm, a bat, sh txt, doc wpd, tex, doc, etc lib, a, dll ps, dvi, gif Funo Programa de linguagem de mquina pronto para executar Linguagem de mquina, compilado, sem linkedio Cdigo fonte em vrias linguagens Comandos para o interpretador de comandos Dados textuais, documentos Vrios formatos de processador de textos Bibliotecas de rotinas para programadores Arquivos ASCII ou binrio em um formato para impresso ou visualizao Arquivos correlatos agrupados em um arquivo nico, s vezes compactado, para fins de arquivamento ou armazenamento

Arquivo compactado

arc, zip, tar

Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

O sistema operacional se encarrega de gerenciar as mdias de armazenamento em massa de arquivos, como discos, e os dispositivos que os controlam.

Aula 6 Introduo gerncia de processos, memria e arquivos

73

e-Tec Brasil

Os arquivos so normalmente organizados em diretrios para facilitar seu uso. E quando vrios usurios tm acesso aos arquivos, pode ser desejvel controlar quem poder acessar os arquivos e de que forma poder faz-lo. O sistema operacional responsvel pelas seguintes atividades em relao gerncia de arquivos: a) Criar e excluir arquivos; b) Criar e excluir diretrios; c) Fornecer suporte para manipular arquivos e diretrios; d) Mapear arquivos no armazenamento secundrio; e) Prover ferramentas de backup. A maioria dos sistemas de computao usa discos (HD) como o principal meio de armazenamento para programas e dados. A maioria dos programas incluindo compiladores, montadores, rotinas de classificao, editores e formatadores, so armazenados em um disco at serem carregados na memria e utilizam o disco como origem e destino de seu processamento.

6.4. Gerncia de dispositivos


O sistema operacional deve tornar as operaes de entrada e sada (E/S) o mais simples possvel para o usurio e suas aplicaes. Denominamos de rotinas de entrada e sada ao conjunto de rotinas que o sistema operacional possui para possibilitar a comunicao de qualquer dispositivo que possa ser conectado ao computador. Essas rotinas fazem parte de um subsistema de E/S que permitem ao usurio realizar as operaes de E/S sem se preocupar com detalhes, informaes a respeito do dispositivo que est acessando. Em gerncia do sistema de E/S (entrada e sada) cabe ao sistema operacional ocultar dos usurios (programas e pessoas) as peculiaridades dos diferentes dispositivos de hardware. A gerncia de dispositivos de entrada/sada uma das principais e mais complexas funes de um sistema operacional. Sua implementao estruturada por meio de camadas, em um modelo semelhante ao apresentado para o sistema operacional como um todo. As camadas de mais baixo nvel escondem caractersticas dos dispositivos das camadas superiores, oferecendo uma interface simples e confivel para suas aplicaes.

e-Tec Brasil

74

Sistemas Operacionais

As operaes de E/S devem ser realizadas atravs de chamadas ao sistema (system calls) que por sua vez chamam as rotinas de E/S do ncleo do sistema operacional. Desse modo, possvel que manipulemos arquivos em dispositivos de E/S, sem ter que alterar o cdigo para cada dispositivo. Por exemplo: leitura de um arquivo armazenado em pen drive; no precisamos alterar o cdigo do dispositivo a cada leitura ou a cada tipo de pen drive ou a cada mquina que acessamos. As camadas so divididas em dois grupos, conforme Figura 6.2. O primeiro visualiza os diversos tipos de dispositivos do sistema de um modo nico (a), ou seja, essas camadas trabalham de forma independente da configurao do dispositivo. Oferecem servios de gerenciamento controlado pelo sistema operacional, enquanto o segundo especfico para cada dispositivo, necessitando a instalao e configurao do hardware, identificando e controlando cada dispositivo (b). Observem que grande parte das camadas trabalham de forma independente do dispositivo fsico instalado.

Operaes de E/S

SOFTWARE

Sistemas de Arquivos

Device Drivers

HARDWARE

Controladores

Dispositivos de E/S

Figura 6.2: Gerncia de dispositivos


Fonte: Adaptado de Machado, 2000

Aula 6 Introduo gerncia de processos, memria e arquivos

Modo Kernel

Subsistema de E/S

Processo

Modo Usurio

Independente do dispositivos (a)

Dependente do dispositivos (b)

75

e-Tec Brasil

Resumo
Vimos nesta aula as principais funes de gerncia do sistema operacional. Aprendemos alguns conceitos importantes sobre processos, memria primria e secundria, e dispositivos. Analisamos o funcionamento e a estrutura bsica dos subsistemas principais de um sistema operacional. Podemos perceber o quo complexo implementar um sistema operacional enquanto um software dividido em camadas que interagem entre si.

Atividades de aprendizagem
1. Quais recursos so necessrios para a criao de um processo? 2. Qual a diferena bsica entre um processo e um programa? 3. Por que, muitas vezes, quebrar um programa em mais de um processo pode ser vantajoso? 4. Quais as principais atividades da gerncia de processos? 5. Pesquise sobre plataformas multicore e como elas podem colaborar com o desempenho de um computador em termos de processamento. 6. Pesquise sobre a transferncia de dados via DMA. 7. O que vem a ser a tcnica de Swapping? 8. Qual a diferena bsica entre arquivos, diretrios e parties? 9. Associe a modularidade de um subsistema de Entrada e Sada com os Drivers de Dispositivos.

e-Tec Brasil

76

Sistemas Operacionais

Referncias
DEITEL, H.M. Sistemas Operacionais. 3.ed. Traduo de Arlete Simille Marques. So Paulo: Pearson Prentice Hall, 2005. MACHADO, Francis Berenger. Arquitetura de Sistemas Operacionais. Rio de Janeiro: Editora LTC, 2004. SILBERSCHATZ, A. & GAGNE, G. & GALVIN, P. B. Fundamentos de Sistemas Operacionais. Traduo de Adriana Cashin Rieche. Rio de Janeiro, 2004. TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. Traduo de Ronaldo A. L Gonalves. So Paulo, 2009.

Aula 6 Introduo gerncia de processos, memria e arquivos

77

e-Tec Brasil

Currculo do professor-autor
Mestre em Informtica e Cientista da Computao pela UFES. Professor do Instituto Federal do Esprito Santo desde 2009, tendo ministrado disciplinas de sistemas operacionais e redes para os cursos Tcnico em Informtica e Tecnlogo em Redes de Computadores, presencial e distncia. Experincia de 7 anos em docncia e 10 anos na rea de informtica em geral (programao de sistemas, coordenao de equipes e gerncia de projetos).

ISBN: