Você está na página 1de 12

NDICE 1 - HISTRIA E FUNES DOS SISTEMAS OPERACIONAIS

1.1 O QUE UM SISTEMA OPERACIONAL? 1.2 CARACTERSTICAS PRINCIPAIS. 1.3 CLASSIFICAO.


1.3.1 - QUANTO AO TIPO DE SERVIOS OFERECIDOS AO USURIO 1.3.2 - QUANTO AO NMERO DE USURIOS 1.3.3 - QUANTO AO TIPO DE INTERAO 1.3.4 - QUANTO A APLICAO

1 1 1 2 2 2 2 2 3 3 3 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 9 9 10 10 11 11

1.4 HISTRIA DOS SISTEMAS OPERACIONAIS.


1.4.1 - (DCADA DE 40): 1.4.2 - 1 GERAO (DCADA DE 50): 1.4.3 - 2 GERAO (INCIO DA DCADA DE 60): 1.4.4 - 3 GERAO (MEIO DE 1960 AT MEIO DE 1970): 1.4.5 - 4 GERAO (MEIO DE 1970 AT 1990): 1.4.6 - 5 GERAO (1990 EM DIANTE):

1.5 CONCEITOS DE HARDWARE E SOFTWARE.


1.5.1 - HARDWARE: 1.5.1.1 - Unidade Central de Processamento (UCP): 1.5.1.2 - Clock: 1.5.1.3 - Registradores: 1.5.1.4 - Memria principal: 1.5.1.5 - Memria cache: 1.5.1.6 - Memria Secundria: 1.5.1.7 Dispositivos de entrada e sada: 1.5.1.8 Barramento: 1.5.1.9 - Pipelining: 1.5.1.10 Ativao/Desativao do sistema: 1.5.2 - SOFTWARE: 1.5.2.1 Tradutor: 1.5.2.2 Interpretador: 1.5.2.3 Linker (Ligador): 1.5.2.4 Loader (Carregador): 1.5.2.5 Depurador (debugger): 1.5.2.6 Linguagem de Controle: 1.5.2.7 Linguagem de Mquina:

1 - Histria e Funes dos Sistemas Operacionais


1.1 O que um Sistema Operacional?
Hardware e software compem um sistema de computao, um no til sem o outro. O hardware em parceria com o software capaz de armazenar, recuperar, tratar, transportar dados, bem como, encontrar erros de sintaxe em textos, produzir e reproduzir imagens e sons, e etc. O software divide-se em duas categorias: Os programas do sistema: que so os gerenciadores do computador; Os programas de aplicao: que resolvem os problemas de seus usurios. Dos programas de sistema o mais importante Sistema Operacional que o controlador de todos os recursos do computador e que propicia a base sobre a qual os programas de aplicao (tambm chamado de Aplicativos) so escritos. Em poucas palavras, pode-se dizer que um Sistema Operacional um conjunto de programas que gerenciam todos os recursos do computador: processador, memria, dispositivos de E/S (Entrada/Sada), execuo dos programas dos usurios, etc. ele que controla a utilizao desses recursos. Quando se diz que um programa est sendo executado, uma srie de instrues est sendo executada pelo processador e dados esto sendo manipulados na memria principal e ou secundria. Mas, "quem coloca o programa para que ele seja executado? Quem fornece a memria necessria ao programa? Quando ele precisa acessar algum dispositivo, o vdeo por exemplo, como isso acontece?" Imagine que o prprio usurio devesse se preocupar com tais problemas. Ele teria de programar o acesso a todos os recursos que ele pretende utilizar. Para colocar o programa para executar seria necessrio desenvolver as rotinas apropriadas para que o programa fosse carregado na memria e executado. O acesso a uma impressora, por exemplo, deveria ser programado pelo usurio, e assim por diante. Agora imagine que o usurio desejasse executar outros programas simultaneamente, como ele coordenaria a execuo desses programas? Mas para resolver esses e outros problemas existem os sistemas operacionais. Portanto, basicamente o Sistema Operacional gerencia os seguintes recursos: Processador (es); Memria; Dispositivos de E/S. Pode-se dizer que alguns objetivos de um Sistema Operacional so: Executar os programas do usurio e resolver os problemas do usurio mais facilmente; Diminuir ao mximo a interao e a dependncia do programador para com a mquina; Tornar o computador conveniente e eficaz para o uso; Utilizar o hardware de uma maneira eficiente.

1.2 Caractersticas Principais.


Dentre as caractersticas mais gerais desejveis em um Sistema Operacional podemos destacar: Concorrncia: a existncia de vrias atividades ocorrendo em paralelo (ou simultaneamente) no sistema. Ex.: A existncia de entrada e sada em paralelo ao processamento. Compartilhamento: a concorrncia implica no uso coordenado e compartilhado dos recursos (sejam de Software, sejam de Hardware). As principais motivaes para o compartilhamento so:

- custo dos equipamentos; - reutilizao de programas; - cooperao no uso de dados; e - reduo de redundncias. Armazenamento de dados a longo prazo: permisso de armazenar dados e programas por longo tempo no sistema de computao (discos, fitas, etc), sem que seja preciso proceder sua entrada de veculos externos a cada seo de processamento. No determinismo: um Sistema Operacional deve ser determinstico no sentido de que ele execute um certo programa em duas pocas diferentes e, para o mesmo conjunto de dados, os resultados sejam os mesmos. Entretanto, deve ser indeterminado no sentido de atender a eventos que ocorram no sistema, na ordem em que ocorrerem. So caractersticas desejveis num Sistema Operacional: Eficincia: baixo tempo de resposta, pouca ociosidade da UCP, e alta taxa de processamento; Confiabilidade: pouca incidncia de falhas, ou seja, exatido dos dados manipulados; Manutenibilidade: facilidade de correo ou ajuste do sistema; Pequena Dimenso: simplicidade e pequena dimenso ou baixa ocupao de memria.

1.3 Classificao.
1.3.1 - Quanto ao Tipo de Servios Oferecidos ao Usurio Sistema de Processamento de Lotes (BATCH): nesses sistemas, um lote de vrias tarefas a serem executadas organizado num dispositivo de entrada. Estas so lidas e processadas em ordem seqencial de leitura. Ao finalizar a ltima tarefa o sistema est novamente pronto para ler e processar mais tarefas. Sistema de Tempo Compartilhado (TIME_SHARING): trabalha em multiprogramao, isto , aceita vrias tarefas residentes na memria ao mesmo tempo, para serem processados concorrentemente, atravs de um mecanismo de diviso do tempo de UCP entre os processos. Sistema de Tempo Real (REAL-TIME): so, em geral, sistemas dedicados a um tipo determinado de aplicao. Seus mdulos so construdos de forma a atender requisitos de tempo (ex.: controle de uma caldeira, de um mssil, do metr, bolsa de valores, etc.). 1.3.2 - Quanto ao Nmero de Usurios Mono Usurio: apenas um usurio utiliza todo o sistema de cada vez. Multi-Usurio: vrios usurios podem estar utilizando o sistema de modo compartilhado num dado instante. 1.3.3 - Quanto ao Tipo de Interao Batch: por submisso de tarefas (jobs) em lotes, atravs de uma linguagem de controle de jobs (JCL), sem interao Usurio X Computador. Interativo: pela interao direta do usurio com o sistema, via terminal de entrada e sada (do tipo teleimpressora ou teclado e display). Transacional: pela chegada de uma transao (ou comando, ou mensagem) que "acorda" um mdulo, de tratamento ou execuo apropriado. 1.3.4 - Quanto a Aplicao Dedicado: tem uso restrito a determinada aplicao (ex.: controle de processos); De Uso Geral: tem uso indeterminado para qualquer aplicao, isto , executa todo tipo de programas; Hbrido: combina os demais tipos.

1.4 Histria dos Sistemas Operacionais.


Tal como nas arquiteturas de hardware, os sistemas operacionais tambm passam por um processo evolutivo classificado em geraes. Seu surgimento data da segunda gerao de computadores, na dcada de 50: 1.4.1 - (Dcada de 40): Sistemas de computao sem Sistema Operacional. Os usurios tinham completo acesso ao hardware e as instrues eram introduzidas manualmente uma a uma em linguagem de mquina (nas primeiras mquinas, a introduo das instrues era por meio de chaveamento de circuitos atravs de cabos, como nas mesas telefnicas mais antigas). As primeiras mquinas que surgiram (1 gerao de hardware) foram: - Z3 : construdo por Zuze na Alemanha em 1941. - MARK1 : construdo por Aiken em Harvard em 1944. - ENIAC : por Eckert, Mauchy e Presper, na Pensylvania em 1943/1946 - empregava 18000 vlvulas e rels. - EDVAC : por John Von Neumam em 1945, empregava memrias de linhas de atraso de 1K bits. - IAS : por Whirlwind, no MIT em 1946/1950, empregava memria de tubos de raios catdicos. Marcou a mudana para a segunda gerao de hardware. 1.4.2 - 1 GERAO (Dcada de 50): Os sistemas operacionais dessa dcada eram projetados para permitir transio mais fcil entre os jobs a serem executados. Antes de terem surgido, muito tempo era gasto entre o trmino de um job e o incio de outro. Era o incio dos sistemas de processamento de lotes. Quando em execuo, um job detinha todo o controle da mquina. Aps seu encerramento, o controle era retornado ao Sistema Operacional que procedia a um "clear" total e procedia a leitura do prximo job. As funes de um Sistema Operacional de primeira gerao evoluram da necessidade de liberar o programador dos aspectos fsicos da mquina. Dentre as funes incorporadas por esses sistemas podemos citar: - Montador (assembler): cuja funo era traduzir linguagem assembly para linguagem de mquina em cdigo absoluto (cdigo executvel). - Execuo Automtica de um job: atravs de carregamento do endereo absoluto da primeira instruo do contador de instrues e um comando de incio. - Controle de execuo de lotes: atravs de um programa Monitor capaz, de controlar a transio entre dois jobs, atravs da leitura e interpretao de cartes de controle inseridos entre os jobs (cartes de JCL). - Rotinas de Entrada e Sada: para facilitar o processo de E/S do job de usurio e permitir o conceito de unidades lgicas. - Rotinas para tratamento de condies de erro. Considerado que os processos de E/S so muito lentos em relao a UCP, alternativas foram criadas visando separar essas funes uma vez que as mquinas eram muito caras. Dessas alternativas surgiu o Monitor de Lotes: Pequenos computadores satlites eram utilizados apenas com funes de preparao de lotes e seu armazenamento em meios mais rpidos, para depois serem transportados e executados nos sistemas centrais. Os produtores de sistemas da poca ofereciam a seus clientes as seguintes inovaes: - Processamento em lotes de fluxo nico. - Rotinas de E/S padro com referncia lgica aos dispositivos. - Capacidade de transio job-para-job, sem interveno do operador. - Tcnicas de recuperao automtica de erros com limpeza da memria antes do incio do prximo job, aps um trmino anormal. - JCL mais flexvel. As mquinas dessa gerao (2 gerao de hardware) tinham circuitos transistorizados e as mais conhecidas eram: - IAS: j mencionado.

- ATLAS: pela universidade de Mancheste (Ingl.) introduziu memria de ncleo de ferrite, memria virtual e registradores de dados de uso geral. - IBM 701: pela IBM em 1956/1962, usava memria principal de tubos de raios catdicos e memria secundria de tambor e fita magntica. 1.4.3 - 2 GERAO (incio da dcada de 60): Caracterizou-se pelo desenvolvimento dos primeiros sistemas multiprogramados e hardware com multiprocessamento. As mquinas dessa poca (2 gerao) usavam circuitos integrados em pequena e mdia escala e memria de estado slido. Apareceram as primeiras propostas independentes de dispositivos de E/S e os primeiros sistemas interativos ou conversacionais atravs de terminais de teletipo. Tambm surgiram as primeiras propostas de sistemas de tempo real para fins militares e industriais. Sistemas da poca: - MCP (Master Control Program) - 1963: implementava multiprogramao, multiprocessamento, memria virtual, Sistema Operacional em linguagem de alto nvel e debugger em linguagem fonte. (Para o Burroughs 5000). - DOS360 - 1964: suporte de usurio + emulao de sistemas anteriores. Verses: DOS/360 para computadores pequenos OS/MFT para computadores mdios OS/MVT para computadores grandes CP-67/CMS para os grandes 360/67. - CTSS (Compatible Time Sharing System): para o IBM 7094, desenvolvido no MIT. 1.4.4 - 3 GERAO (meio de 1960 at meio de 1970): Foi marcada pela introduo no mercado das mquinas IBM/360, em 1964. Essa gerao caracterizou-se pelo surgimento dos sistemas de propsito geral e dos sistemas multmodo. Alguns suportando ao mesmo tempo o processamento em lotes, multiprocessamento com atendimento de terminais interativos e tambm, aplicaes de tempo real. Esses sistemas eram grandes e caros e alguns j rodando com multiprocessamento. Uma das poucas excees foi o sistema Unix dos laboratrios Bell, derivado do sistema Multics. Vrios sistemas foram desenvolvidos nesse perodo, dentre eles podemos citar: - MULTICS - para os computadores GE.645 (hoje Honeywell). - IBM TSS (Time Sharing System) - para o 360/67. - IBM CP-67/CMS - para o 360/67. - RCA VMOS - para mquinas RCA. - CDC KRONOS - para o CDC 6000. Nessa gerao o hardware j era construdo com tecnologia VLSI. 1.4.5 - 4 GERAO (meio de 1970 at 1990): Caracterizou-se pelo desenvolvimento dos grandes sistemas para ambientes de multiprocessamento, redes de computadores, supercomputadores, e dos computadores pessoais ou microcomputadores. Tambm pela interligao de microcomputadores ligados a um MAIN-FRAME, comportando-se como um terminal inteligente com capacidade de processamento local, tal como nos sistemas satlites da primeira gerao. Problemas ligados proteo de informaes foraram o aprimoramento de tcnicas de criptografia (tcnica de proteo da informao atravs do emprego de um cdigo diferente do normalmente utilizado para sua representao no computador e de difcil interpretao). Com as redes de computadores surgiu o processamento remoto e distribudo e os sistemas de bancos de dados distribudos.

As grandes mquinas foram equipadas com capacidade de emulao, oferecendo aos usurios os sistemas de mquina virtual. Muitas das funes foram embutidas no hardware atravs da microprogramao (hardware atual VLSI, ULSI, Firmware: suporte lgico de microprogramao, ou programao de funes lgicas de hardware num nvel inferior ao da linguagem de mquina). Dentre os sistemas dessa fase podemos citar: - para os IBM 370: sistemas TSS, DOS, OS/VS/MVS, MTS, ETC. - para os Burroughs B6700 e 7700: sistema MCP. - para os Digital: PDP11/8, 35, 45, 70: sistemas RSTS, RT11, RSX11M e UNIX. DECK 10: sistema TOPS 10. VAX11/750, 760, 780 e microvax: sistemas VMS e UNIX. 1.4.6 - 5 GERAO (1990 em diante): Nesta dcada tm se consolidado os Sistemas Operacionais baseados em interfaces grficas, para sistemas de desktop, acrescidos de caractersticas antes s encontradas em Sistemas Operacionais de mquinas de grande porte. Dentre estes pode-se citar o Windows NT, OS/2, e Unix. Do meio para c da dcada tem sido forte tambm a tendncia de mquinas multiplataforma apoiadas por linguagens que abstraiam o uso do Sistema Operacional nativo, como o caso das mquinas JAVA. As caractersticas de interfaceamento desses sistemas vm evoluindo e apontam para novas tecnologias como, por exemplo, o reconhecimento linguagem natural e a maior sofisticao de imagens grficas. A proposta do futuro prximo a de sistemas baseados em mquinas de inferncia e bancos de conhecimentos, construdos sobre arquiteturas distribudas e com nfase nos aspectos de comunicao visual, vozes e robtica. As ferramentas que tm sido mais exploradas para esse projeto compreendem, Inteligncia Artificial, programao lgica, bancos de dados, mtodos heursticos, estatstica, computao grfica, etc.

1.5 Conceitos de Hardware e Software.


1.5.1 - Hardware: Um computador digital constitudo por um conjunto de componentes interligados, compostos por processadores, memrias, terminais, impressoras, e outros dispositivos fsicos, aos quais chamamos de hardware. Tais dispositivos manipulam dados na forma digital, proporcionando mais confiabilidade. Todos os dispositivos fsicos de um computador so agrupados em trs subsistemas bsicos: unidade central de processamento, memria principal e dispositivos de entrada/sada. Estes subsistemas tambm so chamados de unidades funcionais. 1.5.1.1 - Unidade Central de Processamento (UCP): Tambm chamado de processador, tem como funo principal unificar todo o sistema, controlando as aes de cada unidade funcional. A UCP tambm responsvel pela execuo de todos os programas do sistema e tais programas devero estar armazenados na memria principal e so compostos por uma srie de instrues que so executadas seqencialmente pela UCP, atravs de operaes bsicas de somar, subtrair, comparar e movimentar dados. A UCP composta por dois componentes bsicos: Unidade de Controle (UC) e Unidade Lgica e Aritmtica (ULA). A UC responsvel por controlar as atividades de todos os componentes do computador, atravs da emisso de pulsos eltricos, tambm chamados de sinais de controle, gerados por um dispositivo chamado Clock. A ULA responsvel pela execuo de operaes de lgica (AND, OR,etc.) e de aritmtica (somas e subtraes).

1.5.1.2 - Clock: dispositivo, localizado na UCP, que gera pulsos eltricos sncronos em um determinado intervalo de tempo. A quantidade de vezes que este pulso se repete em um segundo define a freqncia do clock. O sinal do clock utilizado pela UC para a execuo das instrues. A freqncia do clock de uma UCP medida em Hertz (Hz), sendo o nmero de pulsos em um segundo de tempo. E tambm a unidade de desempenho da UCP, isto quanto mais vezes os pulsos do clock se repetem, mais instrues a UCP poder executar no mesmo segundo de tempo. 1.5.1.3 - Registradores: Em um sistema de computao, o destino final do contedo de qualquer tipo de memria a UCP. Isto , o objetivo final de cada uma das memrias armazenar informaes destinadas a serem, em algum momento utilizadas pela UCP. As aes operativas da UCP so realizadas na ULA, como j foi dito. Entretanto, antes que as instrues sejam interpretadas e as unidades da UCP sejam acionadas, o processador necessita buscar as instrues onde elas estiverem armazenadas (memria cache ou principal) e armazen-la em seu prprio interior, em um dispositivo de memria denominado registrador. Em seguida a este armazenamento da instruo, a UCP dever, na maioria das vezes, buscar dados da memria (cache, principal ou mesmo da memria secundria) para serem manipulados pela ULA. Esses dados tambm necessitam ser armazenados em algum local do processador at serem efetivamente utilizados. Os resultados de um processamento tambm precisam (s vezes) ser armazenados temporariamente na UCP, ou para serem novamente manipulados pela ULA por uma outra instruo, ou para serem transferidos para uma memria externa ao processador. 1.5.1.4 - Memria principal: Tambm conhecida como memria primria ou real, a parte do computador onde so armazenados instrues e dados. composta por unidades de acesso chamada clula, sendo cada clula composta por um determinado nmero de bits. Podemos concluir que a memria formada por um conjunto de clulas, onde cada uma possui um determinado nmero de bits. O acesso ao contedo de uma clula realizado atravs da especificao de um nmero chamado endereo. Quando um programa deseja ler ou escrever um dado em uma clula deve primeiro especificar qual o endereo de memria desejado, para depois realizar a operao. A especificao do endereo realizada atravs de um registrador denominado registrador de endereo da memria (REM). Atravs do contedo deste registrador, a unidade de controle sabe qual a clula de memria que ser acessada. Outro registrador usado em operaes com a memria o registrador de dados da memria (RDM). Este utilizado para guardar o contedo de uma ou mais clulas de memria, aps uma operao de leitura, ou para guardar o dado que ser transferido para a memria em uma operao de gravao. A memria principal pode ser classificada em funo de sua volatilidade, que a capacidade de a memria preservar o seu contedo mesmo sem uma fonte de alimentao eltrica. As memrias chamadas volteis se caracterizam por poderem ser lidas ou gravadas, como o tipo RAM (random acess memory), que constitui quase a totalidade da memria principal de um computador. O outro tipo de memria, conhecido como ROM (read-only memory), j vem gravada de fbrica, geralmente com algum programa, e seu contedo preservado mesmo quando a alimentao desligada. Uma variao da ROM a EPROM (erasable programnmable ROM), onde podemos gravar e regravar a memria atravs da exposio de luz ultravioleta. 1.5.1.5 - Memria cache: Nos computadores mais antigos os registradores eram diretamente ligados a memria principal, na execuo de instrues a UCP acessava diretamente a memria principal pelo menos uma vez para busc-las e transferi-las para um registrador interno ao processador. Considerando-se que atualmente o ciclo de memria bem mais demorado que o perodo de tempo que a UCP gasta para realizar uma operao na ULA, fica evidente que a durao da execuo de um ciclo de instruo bastante afetada pela demora dos ciclos de memria.

Na tentativa de melhorar o desempenho dos computadores, os projetistas de UCPs vm obtendo constantemente velocidades cada vez maiores na operao dessas unidades, o que no acontece na mesma proporo com a memria principal. Assim atualmente a diferena de velocidade entre a UCP e a memria principal muito grande. Na busca pela minimizao dessa diferena foi desenvolvida uma tcnica que consiste na incluso de um dispositivo entre a UCP e a memria principal, denominado memria cache, cuja funo acelerar a velocidade de transferncia entre esses dois dispositivos, e com isso melhorar o desempenho dos computadores. Para isso, a memria cache fabricada com tecnologia semelhante quela empregada na UCP, e conseqentemente apresenta tempos de acesso compatveis, resultando numa considervel reduo da espera da UCP para receber dados e instrues da cache. 1.5.1.6 - Memria Secundria: Em geral o tipo de memria que tem maior capacidade de armazenamento que os outros tipos anteriormente descritos, menor custo por "byte" armazenado e tempo de acesso superior. Conhecida como memria secundria ou memria auxiliar, ou ainda memria de massa, tem por objetivo garantir um armazenamento mais permanente aos programas e estruturas de dados, razo pela qual deve possuir maior capacidade de armazenamento que a memria principal. A memria secundria de um computador pode ser constituda por diferentes tipos de dispositivos, alguns diretamente ligados ao sistema por acesso imediato, e outros que podem ser conectados quando desejado. A maior caracterstica desse tipo de memria a sua no volatilidade. 1.5.1.7 - Dispositivos de entrada e sada: So utilizados para permitir a comunicao entre o computador e o mundo externo. Atravs desses dispositivos, a UCP e a memria principal podem se comunicar, tanto com usurios quanto memrias secundrias, a fim de realizar qualquer tipo de processamento. Os dispositivos de entrada/sada podem ser divididos em duas categorias: os que so utilizados como memria secundria e os que servem para a interface homem-mquina. Os dispositivos utilizados como memria secundria, como discos e fitas magnticas, se caracterizam por armazenar de trs a quatro vezes mais informaes que a memria principal. Seu custo relativamente baixo, porm o tempo de acesso memria secundria quatro a seis vezes maior que o acesso memria principal. Alguns dispositivos servem para a comunicao homem-mquina, como teclados, monitores de vdeo, impressoras, plotters, entre outros. 1.5.1.8 - Barramento: A UCP, a memria principal e os dispositivos de entrada/sada so interligados atravs de linhas de comunicao denominadas barramentos, barras ou vias. Um barramento (bus) um conjunto de fios paralelos (linhas de transmisso), onde trafegam informaes, como dados, endereos ou sinais de controle. Ele pode ser classificado como unidirecional (transmisso em um s sentido) ou bidirecional (transmisso em ambos os sentidos). Na ligao entre UCP e memria principal, podemos observar que trs barramentos so necessrios para que a comunicao seja realizada. O barramento de dados transmite informaes entre a memria principal e a UCP. O barramento de endereos utilizado pela UCP para especificar o endereo da clula de memria que ser acessada. Finalmente, o barramento de controle por onde a UCP envia os pulsos de controle relativo s operaes de leitura e gravao. 1.5.1.9 - Pipelining: O conceito de processamento pipeline se assemelha muito a uma linha de montagem, onde uma tarefa dividida em uma a seqncia de subtarefas, executadas em diferentes estgios, dentro da linha de produo.

Da mesma forma que em uma linha de montagem, a execuo de uma instruo pode ser dividida em subtarefas, como as fases de busca da instruo e dos operandos, execuo e armazenamento dos resultados. O processador, atravs de suas vrias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instruo se encontre na fase de execuo, outra instruo possa estar na fase de busca simultaneamente. A tcnica de pipelining pode ser empregada em sistemas com um ou mais processadores, em diversos nveis, e tem sido a tcnica de paralelismo mais utilizada para maior desempenho dos sistemas de computao. 1.5.1.10 - Ativao/Desativao do sistema: O Sistema Operacional essencial para o funcionamento de um computador. Sem ele, grande parte dos recursos do sistema no estaria disponvel, ou se apresentaria de uma forma complexa para utilizao pelos usurios. Toda vez que um computador ligado, necessrio que o Sistema Operacional seja carregado da memria secundria para a memria principal. Esse processo, denominado ativao do sistema (boot), realizado por um programa localizado em uma posio especfica do disco (boot block), geralmente o primeiro bloco. O procedimento de ativao varia em funo do equipamento, podendo ser realizado atravs do teclado, de um terminal ou por manipulao de chaves de um painel. Alm da carga do Sistema Operacional, a ativao tambm consiste na execuo de arquivos de inicializao. Nestes arquivos so especificados procedimentos de inicializao e configurao de hardware e software especficos para cada ambiente. Na maioria dos sistemas, tambm existe o processo de desativao (shutdown). Este procedimento permite que as aplicaes e componentes do sistema sejam desativados de forma ordenada, garantindo a integridade do sistema. 1.5.2 - Software: O hardware, por si s, no tem a menor utilidade. Para torn-lo til, existe um conjunto de programas, utilizado como interface entre as necessidades do usurio e as capacidades do hardware. A utilizao de software adequado s diversas tarefas e aplicaes torna o trabalho do usurio muito mais simples e eficiente. 1.5.2.1 - Tradutor: Nos sistemas operacionais antigos, o ato de programar era bastante complicado, j que o programador deveria possuir conhecimento de hardware e programar em painis atravs de fios. Esses programas eram desenvolvidos em linguagem de mquina e carregados diretamente na memria principal para execuo. Com o surgimento das primeiras linguagens de montagem (assembly languages) e das linguagens de alto nvel, o programador deixou de se preocupar com muitos aspectos pertinentes ao hardware, como em qual regio da memria principal o programa deveria ser carregado ou quais endereos de memria principal seriam reservados para as variveis. A utilizao dessas linguagens facilitou a construo de programas em muitos aspectos. Desse modo, um programa poderia ser escrito de uma forma bem documentada e com facilidades para realizar alteraes. Apesar das inmeras vantagens proporcionadas pelas linguagens de montagens e alto nvel, os programas escritos nessas linguagens (programa-fonte) no esto prontos para ser diretamente executados pela UCP. Para isso, eles tm de passar por uma etapa de converso, onde toda representao simblica dos programas traduzida para cdigo de mquina. Esta converso realizada por um software chamado tradutor. O mdulo gerado pelo tradutor denominado mdulo-objeto, que, apesar de estar em cdigo de mquina, na maioria das vezes no pode ser ainda executado. Isso ocorre em funo de um programa poder chamar subrotinas externas, e, neste caso, o tradutor no tem como associar o programa principal s sub-rotinas chamadas. Esta funo realizada por um utilitrio denominado linker e ser visto adiante.

O tradutor pelo tipo de linguagem de programao utilizada, pode ser chamado de montador ou compilador, veja Fig. 1.1. A linguagem de montagem um conjunto de smbolos (mnemnicos) associados s instrues de linguagem de mquina do processador. Apesar das facilidades, como instrues simblicas e possibilidade de documentao, a programao em linguagem, de montagem est diretamente ligada s caractersticas da arquitetura do processador. Em funo disto, este tipo de linguagem diferente para cada computador, pois a linguagem de mquina e, conseqentemente, a de montagem so caractersticas especficas do processador.

O compilador o utilitrio responsvel por gerar, a partir de um programa escrito em uma linguagem de alto nvel, um programa em linguagem de mquina no executvel (mdulo-objeto).
As linguagens de alto nvel no tm nenhuma relao direta com a mquina, ficando essa preocupao exclusivamente com o compilador.os programadores de alto nvel devem se preocupar apenas com o desenvolvimento de suas aplicaes, no tendo que se envolver com detalhes sobre a arquitetura do processador. Assim, os programas-fonte podem ser transportados entre computadores de diversos fabricantes, desde que existam regras de definio para a linguagem. Isso permite o desenvolvimento de aplicaes independentes do equipamento. Programa-Fonte Linguagem de Montagem Tradutor Programa-Objeto

Montador

Mdulo-objeto

Linguagem de Alto Nvel

Compilador

Mdulo-objeto

Fig. 1.1 Tradutor. Um compilador um utilitrio que opera de modo integrado aos componentes do sistema de programao disponvel, sob a superviso do Sistema Operacional. Podemos visualizar, ento, o compilador como uma interface entre o Sistema Operacional e o usurio, de maneira que possvel acessar diversos servios do sistema sem a necessidade da utilizao de linguagem de controle ou de outros utilitrios. 1.5.2.2 - Interpretador: considerado um tradutor que no gera cdigo-objeto. A partir de um programa-fonte, escrito em linguagem de alto nvel, o interpretado, no momento da execuo do programa, traduz cada instruo e a executa em seguida. A maior desvantagem da utilizao de interpretadores 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. A vantagem permitir a implementao de tipos de dados dinmicos, ou seja, que podem mudar de tipo durante a execuo do programa, aumentando, assim, sua flexibilidade. 1.5.2.3 - Linker (Ligador): o utilitrio responsvel por gerar, a partir de um ou mais mdulos-objeto, um nico programa executvel, veja Fig. 1.2. Suas funes bsicas so resolver todas as referncias simblicas existente entre os mdulos e reservar memria para a execuo do programa. Mdulo-objeto

Mdulo-objeto

Linker

Programa executvel

Fig. 1.2 Linker. Para resolver todas as referncias a smbolos, o linker tambm pode pesquisar em bibliotecas do sistema ou do prprio usurio. Bibliotecas so arquivos que contm diversos mdulos-objeto e/ou definies de smbolos. Outra funo importante do linker determinar uma regio de memria na qual o programa ser carregado para ser executado. Esta operao denominada relocao. Em sistemas operacionais antigos, a relocao era realizada somente uma vez, na etapa de linkedio. Todos os endereos simblicos do programa eram traduzidos para endereos fsicos, e o programa executvel gerado podia ser carregado a partir de uma posio prefixada na memria (cdigo absoluto). Nesse tipo de relocao, o programa poderia ser carregado, apenas, a partir de uma nica posio na memria. Em sistemas multiprogramveis esse tipo de relocao invivel, j que a memria compartilhada entre diversos programas, e pouco provvel que, no momento em que o sistema carrega um programa, sua rea de memria prefixada esteja disponvel. A soluo para este problema permitir que o programa seja carregado em regies diferentes toda vez que for trazido para memria (cdigo relocvel). Esse tipo de relocao no realizado pelo linker, mas sim por outro utilitrio denominado loader, responsvel por carregar os programas na memria. 1.5.2.4 - Loader (Carregador): o utilitrio responsvel por colocar fisicamente na memria um programa para execuo. O procedimento de carga varia com o cdigo gerado pelo linker e, em funo deste, o loader classificado como sendo do tipo absoluto ou relocvel. Se o cdigo executvel for do tipo 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 absoluto). No caso do cdigo relocvel, o programa pode ser carregado em qualquer posio de memria, e o loader responsvel pela relocao no momento do carregamento (loader relocvel). 1.5.2.5 - Depurador (debugger): o utilitrio que permite ao usurio controlar toda a execuo de um programa a fim de detectar erros na sua estrutura. Este utilitrio oferece ao usurio recursos como: - acompanhar a execuo de um programa instruo por instruo; - possibilitar a alterao e visualizao do contedo de variveis; - implementar pontos de parada dentro do programa (breakpoint), de forma que, durante a execuo, o programa pare nesses pontos; - especificar que, toda vez que o contedo de uma varivel for modificado, o programa envie uma mensagem (watchpoint).

10

1.5.2.6 - Linguagem de Controle: Tambm chamada de linguagem de comando, a forma mais direta de um usurio se comunicar com o Sistema Operacional. Esta linguagem oferecida por cada Sistema Operacional para que, atravs de comandos simples, o usurio possa ter acesso a rotinas especficas do sistema. Esses comandos quando digitados pelos usurios, so interpretados por um utilitrio chamado interpretador de comandos ou Shell. O interpretador reconhece a linha de comando, verifica sua sintaxe, envia mensagens de erro e faz chamada a rotinas do sistema. 1.5.2.7 - Linguagem de Mquina: a linguagem, de programao que o processador realmente consegue entender. Cada processador possui um conjunto nico de instrues de mquina, definido pelo prprio fabricante. As instrues especificam detalhes, como registradores, modos de endereamento e tipos de dados, que caracterizam um processador e suas potencialidades. Um programa em linguagem de mquina totalmente codificado em formato binrio, o que torna o entendimento confuso para o usurio. Essa linguagem muito mais voltada para a mquina do que para o usurio, o que gera inconvenincias, como programas longos e com maiores chances de erro. O programa em linguagem de mquina pode ser diretamente processado pela UCP, no requerendo qualquer tipo de traduo ou relocao. Quando escrito em linguagem de mquina de um computador, um programa no pode ser executado em outra mquina de modelo diferente. Isso porque o conjunto de instrues de uma mquina caracterstica especfica de cada processador.

11