Sie sind auf Seite 1von 9

Introduo Informtica

Noes de Software
Jos Lus Carneiro

Salvador 2006

Introduo
Um computador nada mais do que uma mquina, projetada para minimizar o esforo dos seres humanos na execuo de tarefas rotineira. Porm, sem o software ou programa, essa mquina to sofisticada no serve para nada. Por isso, vamos tentar entender todos os aspectos ligados formulao dos softwares para computadores e suas caractersticas principais. O software, ou programa de um computador organizado em camadas ou nveis, partindo do hardware propriamente dito at as aplicaes do usurio.
Programa de computador um conjunto de comandos ou instrues que tem por finalidade a soluo de um problema ou tarefa.

Mquinas virtuais
Como todos sabemos, se ligarmos o nosso computador e no enviarmos a ele alguns comandos ele simplesmente no executar tarefa alguma. Voc j sabe que a eletricidade faz o computador funcionar, que ele tem vrios circuitos eletrnicos e que esses mesmos circuitos so os responsveis por suas funes. Ento, para conversar com ele precisamos de alguns ajudantes (intrpretes), que traduziro os nossos comandos (no formato de palavras) na linguagem que o computador entende de fato (sinais eltricos). Assim funciona o computador, utilizando os programas como nossos intrpretes. Mas h uma distncia entre a linguagem entendida pela mquina e a linguagem que utilizamos para a nossa comunicao. Imaginemos o computador como um conjunto de camadas ou nveis, tendo cada nvel a sua prpria linguagem. Mas, por que usar nveis e linguagens? Acontece que o computador usa um cdigo especfico, formado por bits e bytes, enquanto o ser humano se comunica por meio de palavras. Obviamente, so duas linguagens muito diferentes, e por isso foram necessrios vrios aperfeioamentos para que pudssemos atingir os atuais nveis de comunicao com o computador. Ainda assim, muito difcil manter uma conversao direta com a mquina, e por esse motivo existem os nveis, que aperfeioam a linguagem j existente em nveis inferiores. Cada vez que uma linguagem melhorada, ela fica mais prxima da usada pelo ser humano. Alis, o objetivo esse mesmo, tornar a linguagem do computador cada vez mais parecida com a linguagem humana. Pensar num computador como uma mquina de vrios nveis ajuda os projetistas a entenderem melhor os problemas relacionados construo de um computador. sempre melhor dividir um grande problema em problemas menores, facilitando assim a sua resoluo. Uma mquina virtual consiste numa linguagem e nos comandos que ela pode executar em cada nvel. Nesse sentido, observe a figura a seguir. Percorreremos todos os seus nveis, do mais baixo (nvel 0) ao mais elevado (nvel 6).
Nvel 6 5 4 3 2 1 0 Categoria Aplicaes do usurio Linguagens orientadas resoluo de problemas Linguagem de montagem Sistema operacional Mquina convencional Microprogramao Lgica digital Jogos Processadores de texto Exemplos Planilhas eletrnicas Bancos de dados Sistemas comerciais

Visual Basic, Delphi, C++, Java, Pascal, etc. Montadores, compiladores e interpretadores MS-DOS, Windows, Linux, Unix, MacOS, etc. Assembly Instrues gravadas em CPUs Projetos de hardware

Noes de Software

Nvel 0 Lgica Digital O nvel 0 corresponde ao nvel mais primitivo de um computador; o nvel de hardware. O que podemos encontrar nesse nvel so os circuitos digitais mais simples (AND, OR, NOT, NAND e NOR) construdos a partir de um componente eletrnico chamado transistor. Os circuitos integrados (CIs ou chips) contm vrios circuitos lgicos que os projetistas utilizam para a construo de seus computadores. Os fabricantes de tais circuitos buscam sempre torn-los cada vez menores e, ao mesmo tempo, aumentam sua capacidade, dotando-os a cada dia de mais funes. Resumindo, o nvel da lgica digital trabalha apenas com os algarismos 0 e 1 e realiza operaes elementares com a informao, armazenando-a e movendo-a conforme as necessidades. Nessa camada ainda no existe o conceito de programa. Nvel 1 Microprogramao Nos computadores mais antigos, cada instruo do processador tinha seus prprios circuitos para realizar uma operao. Isso era possvel porque a quantidade de instrues disponibilizadas pelo processador no era to grande e, nesse caso, a implementao ficava mais fcil. Ao se colocar cada instruo de um computador com o seu prprio circuito, naturalmente a complexidade da construo do processador cresce bastante. Tentando resolver esse problema, alguns estudos levaram construo de uma camada intermediria entre o nvel 0 (lgica digital) e o nvel 2 (a maquina convencional), o verdadeiro nvel das instrues de mquina, o nvel da microprogramao. O nvel da microprogramao faz uso dos circuitos eletrnicos (que fazem parte do nvel 0) para implementar as instrues de um computador, combinando os circuitos lgicos que o nvel da Lgica Digital oferece, a fim de efetuar multiplicaes, divises, Microprograma um conjunto transportar os bytes entre os registradores da CPU e a RAM, de vrios pequenos programas controlar o tempo que um certo byte estar disponvel para que so utilizados para executar efetuar uma operao aritmtica, permitir transferncias entre as as instrues do computador, que sero utilizadas no nvel memrias de um computador (RAM, cache interna ou externa), superior. etc. Uma instruo ou comando executado atravs de vrios passos e uma combinao de passos para executar uma determinada funo resulta em um microprograma. Nessa mquina virtual existem vrios pequenos microprogramas para executar vrias funes do processador. Nvel 2 Mquina Convencional O nvel de mquina convencional lida diretamente com o conjunto de instrues oferecido pelos microprocessadores, (cada fabricante possui o seu prprio projeto de instrues de mquina). As instrues desse nvel operam os registradores do microprocessador, acessam a memria principal, controlam os perifricos, executam operaes aritmticas, etc. Assim, os nveis 0, 1 e 2, respectivamente, os da Lgica Digital, da Microprogramao e da Mquina Convencional trabalham o hardware propriamente dito do computador. Nvel 3 Sistema Operacional Por volta de 1943, surgiram os primeiros computadores, equipamentos gigantescos que ocupavam vrias salas. As pessoas que operavam essas mquinas eram extremamente qualificadas e eram obrigadas a trabalhar diretamente com os circuitos da mquina. Quando acontecia algum problema, como vlvulas queimadas, era preciso identific-las e troc-las, para que tudo voltasse a funcionar normalmente. Os programadores daquela poca tinham que se preocupar com detalhes do funcionamento interno do computador.

Noes de Software

Os cartes perfurados surgiram nesse momento, e qualquer trabalho era feito com eles. Os programadores tinham que literalmente perfurar os cartes e coloc-los nos computadores, inserindo manualmente os cartes que interpretariam o seu programa previamente perfurado. Se ocorressem erros, a correo dos mesmos obrigaria a executar novamente toda essa rotina, mesmo que estivesse faltando apenas o ponto final no programa. Em conseqncia, os programadores perdiam muito tempo nessa tarefa, e o trabalho de programao era de grande complexidade. Chegou-se concluso, ento, de que estava faltando um agente facilitador, algo que assumisse a tarefa de gerenciar todo esse trabalho, retirando-o da responsabilidade do programador. Esse agente, depois de criado, transformou-se numa nova mquina virtual, presente em todos os computadores modernos: o sistema operacional. O sistema operacional tem como objetivo gerenciar o funcionamento do computador como um todo. Qualquer tipo de programa que quisermos executar em nossa Servios so comandos mquina necessitar primeiramente de um sistema operacional enviados do usurio ao instalado, seno nenhum programa poder ser rodado. sistema operacional para a
execuo de algumas tarefas. Naturalmente, o sistema operacional precisa entender bastante de hardware para poder liberar os programadores e usurios dessa tarefa. Ele disponibiliza para os programadores e usurios certas tarefas, comumente chamadas de servios do sistema operacional, ou simplesmente servios.

Nvel 4 Linguagem de Montagem Estamos no antepenltimo nvel de Maquinas Virtuais do computador. At o nvel do sistema operacional, os programas e as instrues esto em um formato numrico (hexadecimal, por exemplo) mais familiar para o ser humano, embora ainda mantenham muito da linguagem da mquina, pois no to fcil assim transformar sinais eltricos em nmeros - bom no esquecer que a programao nos nveis precedentes est ainda ligada intimamente ao hardware. O sistema operacional, apesar de facilitar muito a forma de tratamento do hardware, ainda est impregnado de instrues no muito amistosas para o ser humano. E at difcil imaginar, por exemplo, quantos passos tm que ser dados no hardware para colocar um caractere ou o ponteiro do mouse na tela, e mais trabalhoso ainda buscar, no disco rgido, os bytes necessrios execuo de um programa. Vrias etapas tm que ser cumpridas para que essas operaes, aparentemente muito simples, possam ser executadas com sucesso; desnecessrio dizer que nessa fase o sistema operacional muito exigido. Aps vrias pesquisas, chegou-se concluso de que seria interessante colocar mais um nvel no computador: o nvel da linguagem de montagem (Assembly Language), que poderamos chamar de linguagem de mquina. Nessa linguagem os comandos numricos existentes no nvel de sistema operacional so traduzidos para termos mais fceis de serem entendidos pelo ser humano, porm ainda muito pouco amigveis. Nvel 5 Linguagens orientadas para a resoluo de problemas As linguagens orientadas para a resoluo de problemas so as mais utilizadas atualmente. Voc j deve ter ouvido falar em Visual Basic, Delphi, C++, Java e Pascal. Existem, alm dessas, dezenas de outras linguagens de programao no mercado, cada uma com suas peculiaridades e seus comandos prprios, voltados para situaes especficas de trabalho em que uma determinada linguagem pode ser mais til do que as outras. As pessoas que trabalham com essas linguagens so chamadas de programadores de aplicao, ou simplesmente programadores. Nvel 6 Aplicaes do Usurio O ltimo nvel das nossas mquinas virtuais corresponde s aplicaes geradas pelos programadores e utilizadas pelos usurios dos computadores, que nem precisam ter conhecimentos profundos de informtica para tanto.

Noes de Software

Exemplos de programas nesse nvel so os utilitrios, compactadores e descompactadores, processadores de texto, planilhas, editores grficos, jogos, enciclopdias eletrnicas e programas destinados ao ensino de assuntos especficos, como idiomas, matemtica, biologia, etc. Outros programas tambm muito utilizados so aqueles desenvolvidos dentro de uma empresa com o objetivo de controlar suas atividades principais - por exemplo, sistemas de folha de pagamento, controles de estoque ou de vdeo locadoras, automao de caixas de supermercado, mala direta, etc. Outro tipo de aplicao que encontramos atualmente e que no exige vastos conhecimentos de informtica o uso da Internet. A linguagem dos programas de acesso rede tornou-se bastante amigvel, e cada vez mais pessoas que nem imaginavam um dia usar um computador sentem-se vontade, agora, utilizando-o a fim de acessar a Internet. Programa Compilado ou Interpretado Um programa escrito numa linguagem de programao precisa ser traduzido para o formato binrio, executvel pelo computador. O processo de traduo pode ser realizado por dois tipos de tradutores: os compiladores ou os interpretadores. Ambos tm a mesma funo, mas diferem quanto ao modo de realizar o processo de traduo. Compiladores e Interpretadores so programas especiais que lem o programa escrito pelo programador em linguagem simblica de alto nvel, chamado de programa-fonte, e o traduzem para o formato binrio, chamado de programa-objeto. O compilador gera um programa final e executvel pelo computador chamado de programaexecutvel. Num programa interpretado, entretanto, cada instruo em linguagem de alto nvel traduzida em instrues binrias apenas no momento da execuo do programa, dessa forma evitando que a cada alterao do programa-fonte necessitemos compilar tudo de novo. O processo de linkagem basicamente o ltimo processo de gerao de um programa executvel, realizado pelo linkeditor, cuja funo combinar os programas-objeto e as bibliotecas de funes e comandos da linguagem utilizada, com rotinas em linguagem de mquina e outros utilitrios, de forma a gerar um programa executvel em nvel de SO. As duas tcnicas apresentam vantagens e desvantagens. Muitos preferem os programas compilados, porque eles so mais rpidos (j que a traduo das instrues feita previamente). Por outro lado, nos programas interpretados, apesar de serem mais lentos, tem-se maior controle sobre a operao da mquina. Vantagens e Desvantagens 1. Como um compilador gera programas na linguagem do computador, ele precisa conhecer as instrues desse mesmo computador. Devido a isso, se quisermos criar programas para um computador IBM temos que adquirir compiladores para esse tipo de mquina; se desenvolvermos programas para a linha Apple, o compilador tem que ser feito para esse tipo de micro. O mesmo acontece com as outras linhas de computador (por exemplo, computadores RISC). 2. O programa gerado pelo compilador, isto , o programa-objeto, executado diretamente pelo processador para o qual ele foi feito. Conseqentemente, de posse do programa-objeto executaremos o programa em qualquer mquina para a qual ele tenha sido compilado (Alpha, PowerPC, Pentium). J na interpretao, o programa interpretador precisa estar instalado na mquina em que ele executar o programa do usurio, porque o interpretador no cria nenhum programa-objeto. 3. Como o compilador precisa traduzir instrues de alto nvel (de difcil entendimento para o computador) para baixo nvel (a preferida do computador) e a traduo de uma instruo

Noes de Software

desse tipo requer vrias instrues de baixo nvel, o cdigo gerado pelo compilador (cdigoobjeto) grande, comparado ao cdigo que o interpretador utiliza (cdigo-fonte). 4. Lembre-se que o interpretador precisa ler, traduzir e executar o cdigo criado pelo programador a cada vez que o programa precisar rodar, o que causa um retardo na execuo do programa, j que os comandos tm que ser lidos e interpretados a cada execuo, o que no acontece com o compilador, cujo trabalho de ler e traduzir o programa-fonte ocorre somente na hora da gerao do cdigo-objeto. Um programa compilado sempre mais rpido do que um interpretado. 5. Uma linguagem interpretada torna mais fcil a alterao dos programas-fonte, porque eles sempre estaro disponveis na mquina que o executar, diferentemente de uma linguagem compilada, na qual quaisquer alteraes que devam ser feitas sero seguidas da gerao do cdigo-objeto, para poder executar os programas. 6. Comercialmente, as linguagens interpretadas so pouco utilizadas, porque os programasfonte relativos a um sistema ou a uma aplicao teriam que ser instalados no computador do cliente. Nesse caso, o cliente, de posse dos programas-fonte, poderia repassar a terceiros esses programas, os quais seriam personalizados e utilizados em outras situaes sem fazer o devido pagamento a quem de fato criou os programas. Imagine uma escola que tenha contratado um analista e um programador para a informatizao de suas unidades, e esses profissionais decidissem usar linguagens interpretadas. Se o dono do colgio decidisse fornecer os programas-fonte a algum outro dono de escola, os programas seriam personalizados e instalados em outros colgios, que no precisariam contratar os servios dos profissionais e, principalmente, no os pagariam.

Sistemas Operacionais
Quando voc liga o micro, entra em ao um programa conhecido como sistema operacional. Sabemos que o Sistema Operacional o programa que administra o funcionamento de todos os componentes de hardware (equipamentos) e gerencia o trabalho dos softwares (programas), sem um sistema operacional, o computador no passa de um conjunto de peas com funo alguma. Quando voc utiliza um programa qualquer, o sistema operacional que verifica se o equipamento est disponvel, caso esteja, o sistema envia informaes para ele. Isso ocorre, por exemplo, na impresso de um documento que se acaba de digitar. Acionado o comando para imprimir, o sistema operacional verifica se a impressora est ligada, se tem papel, se est ocupada imprimindo outro documento, etc. Somente aps essas verificaes no equipamento, ele envia os dados do documento para a impressora. Existem vrios sistemas operacionais, produzidos por diferentes empresas; os mais famosos so: MS-DOS, Unix, Linux, Windows (3.11, NT, 2000, 3.11, 95, 98, Me, XP), MacOS, BeOS, etc. O sistema operacional mais popular, atualmente, o Windows, por ser um dos primeiros sistemas com interface grfica. Isto , que utiliza telas com botes, barras e menus acionados facilmente por meio de um mouse, evitando a digitao dos comandos, necessria nos sistemas operacionais que no possuem essa interface. Existem verses de Windows para diferentes utilizaes. O Windows 98 o sistema operacional preferido para uso domstico e de pequenas empresas. J o Windows 2000 o sistema operacional utilizado pelas mdias e grandes empresas, devido sua maior segurana e capacidade para trabalhar em grandes redes (rede a conexo entre vrios computadores). O Windows XP possui duas verses: Home para o usurio domstico e Professional voltada para o usurio corporativo. Atualmente, o Linux o sistema operacional que mais cresce em nmeros de usurios, por ser um sistema operacional mais estvel e gratuito. Entretanto, sua interface ainda no muito amigvel, o que desagrada a alguns usurios. Noes de Software 6

Como dito anteriormente um sistema operacional uma camada de software que controla os aspectos tcnicos da operao de um computador. Ele livra o usurio da mquina dos detalhes tcnicos de baixo nvel da operao de uma mquina e freqentemente oferece facilidades. No existe nenhuma definio universal do que seja um sistema operacional, podemos defini-lo como sendo um software que est instalado na mquina antes de adicionarmos qualquer outra coisa. Normalmente, o sistema operacional possui alguns elementos chaves: Uma camada de software para controla o hardware do micro, como drives de disco, teclado e monitor. Um sistema de arquivos que fornece um meio organizar os arquivos logicamente. Uma linguagem de comando simples que habilita os usurios a rodar seus prprios programas e manipular seus arquivos de maneira simples.

Os sistemas operacionais podem ser classificados pelo nmero de tarefas que eles podem realizar simultaneamente e por quantos usurios podem us-los simultaneamente, ou seja, monousurios ou multiusurios e monotarefas ou multitarefas. Na tabela abaixo, temos alguns sistemas operacionais classificados segundo esse critrio.
Sistema Operacional MS/PC-DOS Windows 3.x Macintosh System 7 Windows 9x Amiga DOS BeOS VMS Unix NT Windows 2000 Windows XP Linux Usurios Monousurio Monousurio Monousurio Monousurio Monousurio Monousurio Multiusurio Multiusurio Multiusurio Multiusurio Multiusurio Multiusurio Tarefas Mono-tarefa Quase multitarefa Quase multitarefa Multitarefa Multitarefa Multitarefa Multitarefa Multitarefa Multitarefa Multitarefa Multitarefa Multitarefa Processadores Mono-processado Mono-processado Mono-processado Mono-processado Mono-processado Multi-processado Mono-processado Multi-processado Multi-processado Multi-processado Multi-processado Multi-processado

Os primeiros sistemas (MS-DOS e Windows 3.1) so monousurios, monotarefas e baseados numa biblioteca contida em uma ROM de funes bsicas chamada BIOS (sistema bsico de entrada e sada). So essas funes que so responsveis pela exibio de caracteres na tela, gravaes de dados no HD, etc. Embora todos os sistemas operacionais possam fornecer interrupes e, portanto, simular a aparncia de multitarefas em algumas situaes, os computadores equipados com esses sistemas operacionais no podem ser pensados como um sistema multitarefa em qualquer sentido. O Windows 95 trocou o antigo enfoque de co-rotina de quase multitarefa por um contexto verdadeiro de troca, mas somente para um nico usurio, sem proteo de memria. Ou seja, se um programa travasse, poderia tornar instvel todo o sistema. Dessa forma, apesar da afirmao de que alguns Windows da linha 9x (98, 98SE) so multitarefas, a probabilidade da queda de uma aplicao implicar na queda de todo o sistema grande. O sistema MacOS 7 pode ser considerado como monousurio e quase multitarefa, isto significa que possvel rodar vrias aplicaes simultaneamente um gerenciador de janelas pode simular a aparncia de vrios programas rodando simultaneamente, mas cada programa obedecendo a regras especificas para se conseguir a iluso. No Windows NT foi adicionado um kernel prprio com proteo de memria, baseado no sistema VMS, originalmente escrito para DEC/Vax. Verses recentes do Windows NT e Windows 2000 (uma verso aperfeioada do NT com proteo de memria) permitem mltiplos logins (sesses de trabalho distintas) tambm atravs de um terminal servidor. Noes de Software 7

O Unix provavelmente o mais antigo sistema operacional existente hoje. Ele est disponvel em vrias implementaes. Originalmente projetado na AT&T (1969), o Unix desmembrou-se em dois ramos: o BSD (Berkeley Software Distribution) o System 5 (AT&T). A verso da BSD foi desenvolvida como um projeto de pesquisa na Universidade de Berkeley, Califnia. Muitos recursos de transmisso de dados via rede e facilidades para o usurio surgiram destas modificaes. Para evitar que as diversas verses do Unix se tornassem incompatveis entre si, formou-se um comit de padronizao chamado POSIX, composto pela maioria dos desenvolvedores. Anos depois do surgimento do Unix, um estudante finlands estava trabalhando com o Minix, um pequeno sistema operacional clone do Unix, criado por Andrew Tannenbaum para fins educacionais. Ele pretendia alterar o cdigo fonte do Minix para criar um Minix melhor do que o Minix. Em 1991, aps algum tempo de trabalho, Linus Torvalds, publicou, num grupo de discusso (comp.os.minix) uma mensagem informando a verso 0.02 do seu sistema: Linux. Por ser baseado no Unix, o Linux, desde o seu surgimento apresenta diversas caractersticas do seu antepassado: multitarefa, multiusurio, multiprocessamento, grande estabilidade, robustez e eficincia. Ele foi distribudo como um sistema operacional open-source (cdigo aberto, todos tm acesso ao cdigo-fonte). Na verdade, o que Linus desenvolveu foi o kernel do Linux, o conjunto de rotinas e programas que permitem o funcionamento do sistema operacional. A partir da, diversas outras pessoas colaboraram com o projeto desenvolvendo (ou adaptando) drivers, arquivos de configurao e de ajuda e interfaces. Para que fosse mais amigvel para os usurios finais, vrias interfaces grficas foram desenvolvidas para o Linux, como as interfaces WindowMaker, Gnome e KDE. O conjunto de kernel, drivers, interfaces grficas e arquivos de configurao e ajuda normalmente chamado de distribuio. Enquanto o kernel do Linux gratuito, as distribuies podem ser cobradas, desde que seja possvel obt-las gratuitamente. Por ter cdigo aberto, o Linux vem ganhando adeptos rapidamente e toda uma cultura vem se desenvolvendo ao seu redor. cada vez mais comum vermos o desenho de Tux, o simptico pingim que se tornou a sua mascote.

Noes de Software

BIBLIOGRAFIA
ALMEIDA, Marcus. Fundamentos de Informtica. Rio de Janeiro: Brasport, 2002. CORNACHIONE Jr., E. B. Informtica Aplicada s reas de Contabilidade, Administrao e Economia. So Paulo: Atlas, 1998. GEHRINGER, Max; LONDON, Jack. Odissia Digital. So Paulo: Abril, 2001. GIL, Antonio de Loureiro. Sistemas de Informaes Contbil/Financeiros. So Paulo: Atlas, 1999. GONICK, Larry. Introduo Ilustrada Computao. So Paulo: Harbra, 1986. KANAAN, Joo Carlos. Informtica Global. So Paulo: Pioneira, 1998. SOUZA, Hudson C. S. Apostila de Informtica I, 2003.

Noes de Software

Das könnte Ihnen auch gefallen