icc-07 softwares - introdução

49
Softwares Softwares

Upload: nicola-zagari

Post on 01-Nov-2014

5.871 views

Category:

Technology


0 download

DESCRIPTION

Softwares: softwares básicos (sistemas operacionais, utilitários, tradutores, compiladores, interpretadores) e softwares aplicativos (bases de dados, editores e processadores de texto, geradores de planilhas, programas gráficos). Arquitetura Básica de uma Máquina de Von Newman.

TRANSCRIPT

SoftwaresSoftwares

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 22IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Conceitos BConceitos Báásicossicos

�� Software:Software:�� elemento em um computador que permite o elemento em um computador que permite o uso de seus recursos fuso de seus recursos fíísicos (hardware), de sicos (hardware), de forma a cumprir uma determinada tarefaforma a cumprir uma determinada tarefa

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 33IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Elementos constituintes do softwareElementos constituintes do software

�� Qualquer informaQualquer informaçção que ão que possa ser armazenada possa ser armazenada eletronicamenteeletronicamente

�� ConteConteúúdo de um programa do de um programa que ao ser executado que ao ser executado produz uma funproduz uma funçção ão planejadaplanejada

�� Estruturas de dados que Estruturas de dados que permitam que os programas permitam que os programas manipulem adequadamente manipulem adequadamente a informaa informaççãoão

�� Documentos que descrevam Documentos que descrevam a operaa operaçção e o uso de ão e o uso de programasprogramas

documentos

dados

instrução

programa

Add ax,bx

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 44IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

CaracterCaracteríísticas do Softwaresticas do Software

�� O software, ao contrO software, ao contráário do hardware, não rio do hardware, não éé um um produto manufaturado em sproduto manufaturado em séérie, sendo obtido rie, sendo obtido como resultado de um processo abstrato de como resultado de um processo abstrato de criacriaçção, exibindo as seguintes caracterão, exibindo as seguintes caracteríísticas:sticas:�� ÉÉ um elemento lum elemento lóógico, sendo desenvolvido ou gico, sendo desenvolvido ou projetado, e não manufaturado.projetado, e não manufaturado.

�� ÉÉ malemaleáável, permitindo mudanvel, permitindo mudançças durante seu ciclo as durante seu ciclo de vida.de vida.

�� A maioria do software ainda A maioria do software ainda éé feita sob medida ao feita sob medida ao invinvéés de ser criada a partir de ms de ser criada a partir de móódulos prdulos préé--existentes.existentes.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 55IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Programas & InstruProgramas & Instruççõesões

�� Programas: faceta mais conhecida do software. Programas: faceta mais conhecida do software. �� um programa um programa éé uma lista ordenada de instruuma lista ordenada de instruçções que ões que causa um comportamento prcausa um comportamento préé--determinado no determinado no computador ao ser executada.computador ao ser executada.

�� uma instruuma instruçção ão éé composta de uma operacomposta de uma operaçção ão elementar, que possa ser executada pelo elementar, que possa ser executada pelo processador, e dos dados associados a esta operaprocessador, e dos dados associados a esta operaçção.ão.�� Exemplo:Exemplo: ADD AX,BXADD AX,BX�� Significado: Significado: AX = AX + BX, sendo AX e BX AX = AX + BX, sendo AX e BX registradores da CPU.registradores da CPU.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 66IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Programas & InstruProgramas & Instruççõesões

�� O procedimento adotado pelo processador na O procedimento adotado pelo processador na execuexecuçção de uma instruão de uma instruçção ão éé similar para todos similar para todos os computadores e pode ser resumido como:os computadores e pode ser resumido como:�� Ao ser ligado o computador, sua CPU Ao ser ligado o computador, sua CPU automaticamente lê uma posiautomaticamente lê uma posiçção de memão de memóória ROM ria ROM onde estonde estáá o primeiro byte da primeira instruo primeiro byte da primeira instruçção.ão.

�� Este primeiro byte, pelo seu cEste primeiro byte, pelo seu cóódigo bindigo bináário, dirrio, diráá ààCPU se a instruCPU se a instruçção ão éé de um, dois, três ou quatro de um, dois, três ou quatro bytes. bytes.

�� Se for uma instruSe for uma instruçção de um byte, depois de buscado ão de um byte, depois de buscado este byte na memeste byte na memóória, a CPU irria, a CPU iráá executexecutáá--lolo

�� Se for uma instruSe for uma instruçção de mais de um byte, a CPU vai ão de mais de um byte, a CPU vai buscar todos os outros antes de executbuscar todos os outros antes de executáá--la.la.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 77IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Ciclos de busca e execuCiclos de busca e execuçção de uma ão de uma instruinstruççãoão

MemóriaROM

CPU

1ª instrução

Memória RAM

Demaisinstruções

e dados

Ciclo deExecução

da Instrução

Ciclos de Busca da Instrução

� o ciclo de instrução parauma instrução de n bytescontém n+1 fases,

� onde as n primeiras fasesconsistem de ciclos debusca na memória dosbytes da instrução,

� seguidos pelo ciclo deexecução da instrução.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 88IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Linguagens de ProgramaLinguagens de Programaçção ão

�� Embora possam ser escritos usandoEmbora possam ser escritos usando--se as se as instruinstruçções, os programas são criados, na maioria ões, os programas são criados, na maioria das vezes, usandodas vezes, usando--se comandos prse comandos préé--definidos definidos de mais alto nde mais alto níível de abstravel de abstraçção (mais complexos ão (mais complexos que as instruque as instruçções), que posteriormente são ões), que posteriormente são convertidos em instruconvertidos em instruçções. ões.

�� Um conjunto fechado e completo de comandos Um conjunto fechado e completo de comandos ééchamado de chamado de ““linguagem de programalinguagem de programaççãoão””..

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 99IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Linguagens orientadas para a solução de problemas, classificadas em vários tipos como: linguagens de consulta, geradores de aplicação, linguagens descritivas e, planilhas eletrônicas, processadores de texto, gerenciadores de banco de dados, etc

Linguagem de Muito Alto Nível

Linguagens orientadas por procedimentos, com comandos que enfatizam o algoritmo matemático que corresponde a solução de um dado problema, sendo independentes das instruções de qualquer processador em particular. Como no caso anterior, criaa-se um programa-fonte que deve posteriormente ser convertido em instruções em linguagem de máquina de um processador específico, para possibilitar sua execução.

Linguagem de Alto Nível

A programação é feita usando-se representações simbólicas (nomes) para dados e instruções, que facilitem seu uso e entendimento pelo programador, criando-se um arquivo chamado de "programa-fonte". Posteriormente o programa-fonte deve ser convertido na forma executável (linguagem de máquina).

Linguagem de Montagem

A programação era feita diretamente com as instruções (e dados) escritos em binário, na forma como seriam executados pelo processador (programa-executável).

Linguagem de Máquina

CaracterísticasTipo da Linguagem

Geração

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1010IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Tipos de programas executTipos de programas executááveisveisquanto ao uso de memquanto ao uso de memóóriaria

�� Programas Residentes Programas Residentes �� Ocupam um lugar "permanente" na memOcupam um lugar "permanente" na memóória principal ria principal do computador. Por esta razão, eles podem ser do computador. Por esta razão, eles podem ser executados a qualquer momento, uma vez instalados, executados a qualquer momento, uma vez instalados, sem a necessidade de se carregar na memsem a necessidade de se carregar na memóória ria primeiro. primeiro.

�� Programas TransientesProgramas Transientes�� São aqueles que são alocados na memSão aqueles que são alocados na memóória principal ria principal quando são executados. A cada chamada de um quando são executados. A cada chamada de um determinado programa executdeterminado programa executáável, o mesmo vel, o mesmo éécarregado totalmente na memcarregado totalmente na memóória principal do ria principal do computador, sendo descartado em seguida, liberando computador, sendo descartado em seguida, liberando espaespaçço da memo da memóória para outros programas.ria para outros programas.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1111IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Exemplo de alocaExemplo de alocaçção de programas ão de programas na memna memóória ria

Sistema OperacionalPosição 0

Rotinas para comando dos periféricos de E/S (B.I.O.S.)

Área Livre

Posição N

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1212IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Exemplo de alocaExemplo de alocaçção de programas ão de programas na memna memóóriaria

Sistema OperacionalPosição 0

Rotinas para comando dos periféricos de E/S (B.I.O.S.)

Programa Residente

Área LivrePosição N

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1313IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Hierarquia de hardware e software Hierarquia de hardware e software em um computadorem um computador

�� O software pode ser O software pode ser classificado hierarquicamente classificado hierarquicamente em software bem software báásico (tambsico (tambéém m chamado software de sistema) chamado software de sistema) e software aplicativoe software aplicativo�� Por software aplicativo Por software aplicativo

designamdesignam--se os programas se os programas orientados ao usuorientados ao usuáário final tais rio final tais como: processadores de texto, como: processadores de texto, bancos de dados, planilhas, bancos de dados, planilhas, etc. etc.

�� Para ser criado e executar um Para ser criado e executar um programa aplicativo requer programa aplicativo requer outros programas que fazem outros programas que fazem sua conexão com o hardware sua conexão com o hardware do computador, classificados do computador, classificados coletivamente como software coletivamente como software bbáásico.sico.

Hardware

Software Básico

Software Aplicativo

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1414IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Software BSoftware Báásicosico

�� Correspondem aos programas que geram Correspondem aos programas que geram programas executprogramas executááveis, ou que se veis, ou que se comunicam diretamente com o hardware, comunicam diretamente com o hardware, executando funexecutando funçções de controle deste, ões de controle deste, permitindo seu uso pelos programas permitindo seu uso pelos programas aplicativos.aplicativos.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1515IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Sistema OperacionalSistema Operacional

�� Essencial a qualquer computador, executando funEssencial a qualquer computador, executando funçções ões bbáásicas como: leitura do teclado, escrita no vsicas como: leitura do teclado, escrita no víídeo, deo, acesso ao disco, etc. Em muitos computadores os acesso ao disco, etc. Em muitos computadores os sistemas operacionais permitem que msistemas operacionais permitem que múúltiplos usultiplos usuáários rios e/ou me/ou múúltiplas aplicaltiplas aplicaçções estejam em execuões estejam em execuçção ao ão ao mesmo tempo (via mesmo tempo (via multiprogramamultiprogramaççãoão ou ou multiprocessamentomultiprocessamento). De acordo com suas ). De acordo com suas caractercaracteríísticas um sistema operacional pode ser:sticas um sistema operacional pode ser:�� MultiMulti--UsuUsuááriorio�� MultiMulti--ProcessadoProcessado�� MultiMulti--TarefaTarefa ((multimulti--programadoprogramado) ) �� MultiMulti--FluxoFluxo ((multimulti--threadthread))�� Reativo: responde a eventos externos em tempo real.Reativo: responde a eventos externos em tempo real.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1616IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Sistema Operacional Sistema Operacional

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1717IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

UtilitUtilitááriosrios

�� Programas que executam tarefas Programas que executam tarefas envolvendo a gerência dos recursos em envolvendo a gerência dos recursos em um computador, sendo normalmente um computador, sendo normalmente parte ou atuando conjugados ao sistema parte ou atuando conjugados ao sistema operacional. operacional.

�� Exemplos de utilitExemplos de utilitáários são os programas rios são os programas de controle do acesso ao disco, vde controle do acesso ao disco, víídeo, etcdeo, etc

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1818IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

TradutoresTradutores

�� A CPU dos computadores atuais sA CPU dos computadores atuais sóó entende e entende e tem capacidade de executar instrutem capacidade de executar instruçções em uma ões em uma linguagem de nlinguagem de níível muito baixo vel muito baixo -- Linguagem de Linguagem de MMááquina quina ou (Linguagem "da" Mou (Linguagem "da" Mááquina, uma vez quina, uma vez que que éé diferente para cada CPU). diferente para cada CPU).

�� Por outro lado, os usuPor outro lado, os usuáários utilizam para se rios utilizam para se comunicar uma linguagem com um ncomunicar uma linguagem com um níível vel muitmuitííssimo elevado ssimo elevado -- Linguagem Natural Linguagem Natural (português, inglês, etc).(português, inglês, etc).

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 1919IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Hierarquia das linguagens em um Hierarquia das linguagens em um computadorcomputador

Ling. NaturalLing. de Alto NívelLing. MontadoraLing. de Máquina

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2020IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

TradutoresTradutores

�� Como a distância entre estas duas linguagens Como a distância entre estas duas linguagens éé muito muito grande, foram criadas vgrande, foram criadas váárias linguagens intermedirias linguagens intermediáárias rias (ainda distantes da Linguagem Natural) com capacidade (ainda distantes da Linguagem Natural) com capacidade de traduzir um conjunto de instrude traduzir um conjunto de instruçções de nões de níível superior vel superior ao nao níível da mvel da mááquina. quina.

�� Todos os computadores, executam programas atravTodos os computadores, executam programas atravéés s de instrude instruçções em Linguagem de Mões em Linguagem de Mááquina, chamados quina, chamados conjunto conjunto ou ou ““setset”” de instrude instruçções ões -- instructioninstruction set set -- do do processador e estprocessador e estáá permanentemente gravado no permanentemente gravado no processador desde a sua fabricaprocessador desde a sua fabricaçção. ão.

�� Programa de computador Programa de computador �� um arranjo dessas aum arranjo dessas açções ões elementares com um dado objetivo. elementares com um dado objetivo.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2121IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

TradutoresTradutores�� As instruAs instruçções do programa são armazenadas na memões do programa são armazenadas na memóória do ria do

computador em grupos de bits, p.ex.: 10111001 00011101 computador em grupos de bits, p.ex.: 10111001 00011101 �� Linguagem de MontagemLinguagem de Montagem

�� Para que os programadores não necessitassem lembrar cada uma dasPara que os programadores não necessitassem lembrar cada uma dasseqseqüüências possências possííveis e os seus significados em veis e os seus significados em

�� AssemblersAssemblers. . �� Linguagens Linguagens AssemblyAssembly são chamadas de "baixo nsão chamadas de "baixo níível" porque estão vel" porque estão

muito prmuito próóximas da Linguagem de Mximas da Linguagem de Mááquinaquina�� cada comando em Linguagem Montadora cada comando em Linguagem Montadora éé traduzido diretamente para traduzido diretamente para

o comando em LM correspondente. o comando em LM correspondente. �� Seres humanos não pensam na forma de sSeres humanos não pensam na forma de síímbolos abreviados. mbolos abreviados.

�� Por que, então, não se comunicar com o computador numa LinguagemPor que, então, não se comunicar com o computador numa LinguagemNatural? Natural?

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2222IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

TradutoresTradutores

�� Atualmente existem centenas de linguagens, nos Atualmente existem centenas de linguagens, nos mais diversos nmais diversos nííveis, desenvolvidas para as mais veis, desenvolvidas para as mais variadas aplicavariadas aplicaçções. ões. �� Linguagens como Linguagens como VisualBasicVisualBasic, C e C++ são de alto , C e C++ são de alto nníível. vel.

�� Elas não são exatamente linguagens correntes, mas Elas não são exatamente linguagens correntes, mas utilizam uma simbologia menos hermutilizam uma simbologia menos herméética que a LM, tica que a LM, que tenta se aproximar das linguagens naturais e nos que tenta se aproximar das linguagens naturais e nos transmitem informatransmitem informaçções que dificilmente verões que dificilmente verííamos amos numa programa em Linguagem Montadora. numa programa em Linguagem Montadora.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2323IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Exemplo ProgramaExemplo Programa

programprogram ACERTE_NUMERO (input, output);ACERTE_NUMERO (input, output);

var var numbernumber , , guessguess : : integerinteger ;;

beginbegin

numbernumber := 2;:= 2;

writelnwriteln ('Escolha um numero entre 1 e 10');('Escolha um numero entre 1 e 10');

readlnreadln ( ( guessguess ););

if if numbernumber = = guessguess thenthen

writelnwriteln ('(' VoceVoce acertou. acertou. ParabensParabens !')!')

elseelse

writelnwriteln ('Lamento. ('Lamento. VoceVoce errou.')errou.')

end.end.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2424IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Mesmo exemplo na linguagem montadora dos microMesmo exemplo na linguagem montadora dos micro--processadores 80x86 Intel para execuprocessadores 80x86 Intel para execuçção em DOS ão em DOS

ORG 100ORG 100JMP JMP inicinic

msg1msg1 DBDB ' Escolha um numero entre 1 e 10',13,10,'$'' Escolha um numero entre 1 e 10',13,10,'$'msg2msg2 DBDB ' ' VoceVoce acertou. acertou. ParabensParabens ',13,10,'$'',13,10,'$'msg3msg3 DBDB ' Lamento. ' Lamento. VoceVoce errou ',13,10,'$'errou ',13,10,'$'inicinic :: MOVMOV AH,9AH,9

LEALEA DX,msg1DX,msg1INT INT 21H21HMOVMOV AH,1AH,1INTINT 21H21HLEALEA DX,msg2DX,msg2CMPCMP AL,2AL,2JZJZ okokLEALEA DX,msg3DX,msg3

okok :: MOVMOV AH,9AH,9INTINT 21H21HMOVMOV AH,4CHAH,4CHINTINT 21H21HENDEND

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2525IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

TradutoresTradutores�� Os programas anteriores são chamados de Os programas anteriores são chamados de programasprogramas--fonte fonte por por

estarem escritos na linguagem simbestarem escritos na linguagem simbóólica e precisarem ser lica e precisarem ser traduzidos para a linguagem de mtraduzidos para a linguagem de mááquina. quina.

�� O O programaprograma ou ou ccóódigo objeto digo objeto éé o resultado da traduo resultado da traduçção, quando se ão, quando se usa um compilador. usa um compilador.

�� O processo de traduO processo de traduçção pode ser realizado por dois tipos de ão pode ser realizado por dois tipos de tradutores: os tradutores: os compiladores compiladores e os e os interpretadoresinterpretadores. Ambos têm a . Ambos têm a mesma funmesma funçção, mas diferem quanto ao modo de realizarem a ão, mas diferem quanto ao modo de realizarem a tradutraduçção.ão.

Interpretada opera sInterpretada opera sóó com programa FONTEcom programa FONTETraduTraduçção ão

Compilada a partir do FONTE gera OBJETOCompilada a partir do FONTE gera OBJETO

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2626IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

InterpretadoresInterpretadores

�� Os interpretadores são Os interpretadores são programas que lêem programas que lêem instruinstruçções escritas com ões escritas com caracteres ASCII e caracteres ASCII e imediatamente executam imediatamente executam o que a instruo que a instruçção manda. ão manda.

�� VantagemVantagem�� facilidade no facilidade no desenvolvimento dos desenvolvimento dos programas, mas precisam programas, mas precisam ser traduzidos toda vez que ser traduzidos toda vez que forem executadosforem executados

Interpretação de um

comando

Programa-fonte

Execução do

comando

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2727IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

CompiladoresCompiladores

�� Os compiladores traduzem todas as instruOs compiladores traduzem todas as instruçções ões diretamente para a Linguagem de Mdiretamente para a Linguagem de Mááquina, a partir do quina, a partir do texto em ASCII do programatexto em ASCII do programa�� um programa compilado um programa compilado éé executado muito mais rapidamente executado muito mais rapidamente que o mesmo programa interpretadoque o mesmo programa interpretado

�� Dependendo da linguagem de alto nDependendo da linguagem de alto níível utilizada, a vel utilizada, a compilacompilaçção se darão se daráá em etapas. em etapas. �� LinkediLinkediççãoão -- hháá a necessidade de se juntar essas funa necessidade de se juntar essas funçções (ou ões (ou bibliotecas) previamente compiladasbibliotecas) previamente compiladas

�� A grande desvantagem do objeto A grande desvantagem do objeto éé de não ser possde não ser possíível vel modificmodificáá--lo. Para tal lo. Para tal éé necessnecessáário retomar o fonte, fazer rio retomar o fonte, fazer as alteraas alteraçções e ões e recompilrecompiláá--lolo..

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 2828IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

CompilaCompilaçção de vão de váários programasrios programas--fonte que são fonte que são ligados para criar um ligados para criar um úúnico programanico programa

Compilação

Programa-objeto 1

Compilação

Programa-fonte N Programa-fonte 1

Programa-objeto N

Programa Executável

Ligação Biblioteca deRotinas em

Linguagem de Máquina

Para LIGAÇÃO

Então, agora responda:Então, agora responda:como um mesmo como um mesmo programa pode ser programa pode ser executado em tantas executado em tantas mmááquinas diferentes ?quinas diferentes ?

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3030IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Software AplicativoSoftware Aplicativo

�� São programas que atendem ao São programas que atendem ao usuusuáário final:rio final:�� processadores de texto, planilhas, sistemas de gerência de processadores de texto, planilhas, sistemas de gerência de

bases de dados, programas grbases de dados, programas grááficos, ficos, etcetc�� Necessitam do sistema operacional (software bNecessitam do sistema operacional (software báásico) para sua sico) para sua

execuexecuçção. ão.

�� AlAléém destes exemplos, temos os sistemas m destes exemplos, temos os sistemas desenvolvidos para atender as desenvolvidos para atender as necessidades necessidades empresariais em geral. empresariais em geral. �� podem ser podem ser pacotes configurpacotes configurááveisveis para instalapara instalaçção em ão em

diversas empresas ou podem ser diversas empresas ou podem ser customizadoscustomizados, ou seja, , ou seja, desenvolvidos especificamente para atender uma desenvolvidos especificamente para atender uma determinada empresa. determinada empresa.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3131IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Bases de DadosBases de Dados

�� ÉÉ uma coleuma coleçção de informaão de informaçção organizada de forma que possa ser ão organizada de forma que possa ser manuseada de forma seletivamanuseada de forma seletiva

�� São organizadas tradicionalmente em:São organizadas tradicionalmente em:�� Campo (Campo (fieldfield):): unidade bunidade báásica de informasica de informaçção.ão.�� Registro (Registro (recordrecord):): conjunto de campos relacionados entre si segundo conjunto de campos relacionados entre si segundo

uma regra especuma regra especíífica.fica.�� Arquivo:Arquivo: conjunto de "conjunto de "recordsrecords" relacionados entre si. " relacionados entre si.

�� As bases de dados podem ser organizadas tambAs bases de dados podem ser organizadas tambéém na forma de m na forma de hipertextos, onde itens de informahipertextos, onde itens de informaçção podem ser figuras, texto, ão podem ser figuras, texto, vvíídeos, etc, os quais podem ser associados livremente com deos, etc, os quais podem ser associados livremente com quaisquer outros itens.quaisquer outros itens.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3232IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Sistema de Gerência de Sistema de Gerência de

Bases de DadosBases de Dados�� Programas usados para manipular uma base de dados, Programas usados para manipular uma base de dados,

permitindo operapermitindo operaçções de consulta, inserões de consulta, inserçção, supressão, ão, supressão, e organizae organizaçção dos itens.ão dos itens.

�� Base de DadosBase de Dados éé um conjunto de arquivos organizados um conjunto de arquivos organizados de acordo com uma lde acordo com uma lóógica que permita o acesso por gica que permita o acesso por interminterméédio de um gerenciador especdio de um gerenciador especíífico. Ex.: Base de fico. Ex.: Base de Dados de Clientes, de Vendas, Acadêmico, ContDados de Clientes, de Vendas, Acadêmico, Contáábil, bil, etc.etc.

�� Banco de DadosBanco de Dados éé o gerenciador citado na definio gerenciador citado na definiçção ão anterior. Ex.: anterior. Ex.: OracleOracle, , SybaseSybase, , SQLSQL--ServerServer, DB, DB--2 2 IBM, etc.IBM, etc.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3333IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Editores de TextoEditores de Texto

�� Programas que permitem criar, visualizar, Programas que permitem criar, visualizar, imprimir e modificar documentos. imprimir e modificar documentos.

Função Descrição

Inserção de texto Função primária de edição. Permite inserir texto em qualquer posição do documento.

Supressão de texto Apagamento de caracteres, palavras, linhas, parágrafos, ou mesmo do documento inteiro.

Recorte & Colagem Remoção de uma porção de texto para inserção (opcional) em outro ponto do documento.

Cópia Duplicação de uma porção de texto.

Dimensionamento de Página Ajuste do tamanho da página e das margens laterais, superior e inferior.

Busca & Substituição Pesquisa no texto por um conjunto de caracteres, com sua eventual substituição por outro conjunto especificado.

Ajuste de linha Movimento automático para a próxima linha quando a linha atual for completamente preenchida.

Impressão Impressão do documento.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3434IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Processadores de TextoProcessadores de Texto

�� Gerência de ArquivosGerência de Arquivos

�� ConfiguraConfiguraçção de ão de FontesFontes

�� Notas & Referências Notas & Referências CruzadasCruzadas

�� GrGrááficosficos

�� CabeCabeççalhos & Rodapalhos & Rodapééss

�� LayoutLayout

�� MacrosMacros

�� ComposiComposiççãoão

�� VerificaVerificaçção Ortogrão Ortográáficafica

�� IndexaIndexaççãoão

�� DicionDicionáário de rio de SinônimosSinônimos

�� MMúúltiplas Janelasltiplas Janelas

�� WYSIWYGWYSIWYG

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3535IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Geradores de PlanilhasGeradores de Planilhas

�� Planilhas são arquivos tabulares de dados onde cada Planilhas são arquivos tabulares de dados onde cada valor estvalor estáá associado a outros valores segundo regras associado a outros valores segundo regras definidas pelo usudefinidas pelo usuááriorio�� a alteraa alteraçção de um dado valor causa a mudanão de um dado valor causa a mudançça de seus a de seus

associadosassociados

�� CCéélula: cada local de entrada de dados da tabelalula: cada local de entrada de dados da tabela�� FFóórmula: relarmula: relaçção entre cão entre céélulaslulas�� Programas geradores de planilhas permitem Programas geradores de planilhas permitem

�� criacriaçção e manipulaão e manipulaçção de planilhas ão de planilhas �� sua representasua representaçção em formatos de saão em formatos de saíída grda grááficos como ficos como

diagramas de barras, linhas, diagramas tridiagramas de barras, linhas, diagramas tri--dimensionais, etc.dimensionais, etc.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3636IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Geradores de PlanilhasGeradores de Planilhas

0

5

10

15

20

25

30

35

Alimentação Gasolina Hotel

Jan

Fev

Mar

Abr

Maio

Jun

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3737IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Programas GrProgramas Grááficosficos

�� Esta categoria engloba os aplicativos que permitem a Esta categoria engloba os aplicativos que permitem a visualizavisualizaçção e manipulaão e manipulaçção de figuras, como sua funão de figuras, como sua funçção ão principal, dentre os quais destacamprincipal, dentre os quais destacam--se:se:

�� Desenho & PinturaDesenho & Pintura

�� IlustraIlustraççãoão

�� ApresentaApresentaççãoão

�� AnimaAnimaççãoão

�� CADCAD

�� EditoraEditoraçção Eletrônicaão Eletrônica

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3838IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

PadrõesPadrões

�� Mapa de BitsMapa de Bits

Formato Características

BMP Padrão de mapa de bits do Windows

GIF Padrão de mapa de bits criado pela Compuserve. Permite a criação de imagens com fundo transparente para a WEB.

TIFF Permite a alteração da resolução, tamanho e número de cores usadas na imagem.

JPG Formato definido por um consórcio de empresa, permitindo a compressão da imagem, havendo entretanto perda de resolução ou no número de cores

usadas.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 3939IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

PadrõesPadrões

�� GrGrááficos Vetoriaisficos VetoriaisFormato Descrição

CGM Formato desenvolvido por um consórcio de empresas.

DXF Formato criado pela AutoDesk, hoje um padrão para arquivos de CAD

EPS formato para representação de imagens no para impressoras post-script.

HPGL Um dos primeiros formatos para gráficos vetorizados, é ainda muito usado por

aplicações de CAD.WMF Padrão para troca de arquivos de imagens

vetoriais no ambiente windows. Pode conter também imagens em mapas de bits.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4040IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

A CPU e a execuA CPU e a execuçção dos softwaresão dos softwares

�� A CPU (A CPU (Central Central ProcessingProcessingUnitUnit -- Unidade Unidade Central de Processamento) Central de Processamento) éé formada por formada por componentes que manipulam valores bincomponentes que manipulam valores bináários rios e e desempenham todas as operadesempenham todas as operaçções previstas.ões previstas.

�� RegistradoresRegistradoresou Registros que são, portanto, ou Registros que são, portanto, locais ou posilocais ou posiçções de memões de memóória privilegiados, pois ria privilegiados, pois estão no mesmo circuito integrado da CPU.estão no mesmo circuito integrado da CPU.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4141IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Uma arquitetura simples contUma arquitetura simples contéém os seguintes m os seguintes componentes ou registradores:componentes ou registradores:�� Contador de Programa (Contador de Programa (ProgramProgramCounterCounter-- PC)PC)�� MemMemóória Principalria Principal�� Acumulador (AC) ou diversos registradores de dados A, B, etc.Acumulador (AC) ou diversos registradores de dados A, B, etc.�� Unidade AritmUnidade Aritméética e Ltica e Lóógica (gica (ArithmeticArithmetic andand LogicLogic UnitUnit --

ALU)ALU)�� Registradores de Registradores de ÍÍndices X, Yndices X, Y�� Registradores de Estado ou Registradores de Estado ou Status Status FlagsFlags–– FF�� Decodificador de InstruDecodificador de Instruççãoão�� Circuitos acionadores da execuCircuitos acionadores da execuçção da instruão da instruçção decodificadaão decodificada�� Pilha (Pilha (StackStack))

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4242IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Contador de Programa (PC) Contador de Programa (PC) -- ÉÉ o registrador o registrador que contque contéém o valor binm o valor bináário do endererio do endereçço o numnuméérico ou posirico ou posiçção da instruão da instruçção de mão de mááquina quina que estque estáá sendo executada. sendo executada.

�� ApApóós a execus a execuçção da instruão da instruçção o PC muda ão o PC muda automaticamente de valor e indica o endereautomaticamente de valor e indica o endereçço o da prda próóxima instruxima instruçção a ser executada.ão a ser executada.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4343IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Acumulador (AC) Acumulador (AC) -- ÉÉ um registrador especial um registrador especial da CPU. Serve para armazenar o dado que foi da CPU. Serve para armazenar o dado que foi trazido da memtrazido da memóória principal para receber o ria principal para receber o tratamento previsto pela instrutratamento previsto pela instruçção:ão:�� deslocamento (deslocamento (shiftshift) ou rota) ou rotaçção (ão (rotaterotate) de bits ) de bits

para a direita ou esquerdapara a direita ou esquerda�� operaoperaçções aritmões aritmééticas e lticas e lóógicas: contgicas: contéém um dos m um dos

operandosoperandose armazena o resultado da operae armazena o resultado da operaççãoão�� escrita ou leitura: guarda um valor que foi lido ou escrita ou leitura: guarda um valor que foi lido ou

serseráá escritoescrito

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4444IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Unidade AritmUnidade Aritméética e Ltica e Lóógica (ALU) gica (ALU) -- ÉÉ o o componente que executa, em conjunto com o componente que executa, em conjunto com o AC ou outros registradores, as AC ou outros registradores, as �� operaoperaçções aritmões aritmééticas (aditicas (adiçção e subtraão e subtraçção binão bináária) ria)

e e

�� operaoperaçções lões lóógicas (verificagicas (verificaçção de sinais e ão de sinais e composicomposiçção de bits atravão de bits atravéés de operas de operaçções AND, ões AND, OR, NOT, etc.).OR, NOT, etc.).

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4545IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Registradores de Dados (A, B, etc.) Registradores de Dados (A, B, etc.) -- São São registradores menos utilizados que o AC e servem, registradores menos utilizados que o AC e servem, em geral, para efetuar operaem geral, para efetuar operaçções que auxiliam a ões que auxiliam a manipulamanipulaçção de dados pelo AC. ão de dados pelo AC.

�� Por exemplo, podem guardar temporariamente Por exemplo, podem guardar temporariamente �� os dados do acumulador ou memos dados do acumulador ou memóória, ou ria, ou �� podem ser incrementados ou podem ser incrementados ou decrementadosdecrementados, servindo , servindo

como contador, etc.como contador, etc.

�� Não são, em geral, utilizados para operaNão são, em geral, utilizados para operaçções ões aritmaritmééticas ou lticas ou lóógicas, deslocamentos, etc. gicas, deslocamentos, etc. Normalmente, o registrador A Normalmente, o registrador A éé o acumulador (AC).o acumulador (AC).

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4646IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Registradores de Registradores de ÍÍndices X, Y ndices X, Y -- São registradores que São registradores que contêm uma das partes (denominada contêm uma das partes (denominada ííndice) que ndice) que entram na formaentram na formaçção (indexaão (indexaçção) do endereão) do endereçço final ou o final ou efetivo da memefetivo da memóória a ser usado como operando de ria a ser usado como operando de uma instruuma instruçção.ão.

�� Decodificador Decodificador -- ÉÉ um circuito que recebe os bits do um circuito que recebe os bits do ccóódigo de operadigo de operaçção da instruão da instruçção de mão de mááquina, quina, identifica o tipo de operaidentifica o tipo de operaçção a ser executada e ão a ser executada e comanda a execucomanda a execuçção dessa instruão dessa instruçção.ão.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4747IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Pilha (Pilha (““ StackStack”” ) ) -- ÉÉ formada por porformada por porçção da memão da memóória ria principal, e cujo tamanho varia de acordo com a principal, e cujo tamanho varia de acordo com a utilizautilizaçção. ão.

�� Seu endereSeu endereçço esto estáá acessacessíível atravvel atravéés do registrador s do registrador chamado Ponteiro da Pilha (chamado Ponteiro da Pilha (StackStackPointerPointer -- SP). SP).

�� Pode ser usada como registradorPode ser usada como registrador�� para guardar dado, ou, mais comumente, para guardar dado, ou, mais comumente,

�� guardar endereguardar endereçço de retorno de o de retorno de subrotinasubrotinaou ou

�� salvar contesalvar conteúúdo de registradores numa mudando de registradores numa mudançça de a de contexto, etc.contexto, etc.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4848IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Arquitetura bArquitetura báásica de uma CPU baseada sica de uma CPU baseada na na ““mmááquina de quina de vonvon NeumannNeumann””

�� Ponteiro da Pilha (SP) Ponteiro da Pilha (SP) -- ÉÉ um registrador da um registrador da CPU que guarda o endereCPU que guarda o endereçço ou posio ou posiçção atual ão atual dispondisponíível na pilha definida na memvel na pilha definida na memóória. ria.

�� Pode ser Pode ser decrementadodecrementado ou incrementado ou incrementado atravatravéés de instrus de instruçções apropriadas.ões apropriadas.

Eduardo Nicola F. Eduardo Nicola F. ZagariZagari 4949IntroduIntroduçção ão àà CiênciaCiênciada Computada Computaççãoão

Carga do programa para execuCarga do programa para execuççãoão

�� O programa precisa ser carregado da memO programa precisa ser carregado da memóória ria secundsecundáária para a memria para a memóória RAM para ser executado. ria RAM para ser executado. Essa carga (LOAD) significa copiar o programa Essa carga (LOAD) significa copiar o programa inteiro, instruinteiro, instruçção por instruão por instruçção numa determinada ão numa determinada áárea contrea contíínua da memnua da memóória RAM disponria RAM disponíível. vel.

�� Entretanto, nem sempre Entretanto, nem sempre éé posspossíível carregar todo o vel carregar todo o programa, p.ex., porque o programa programa, p.ex., porque o programa éé maior que a maior que a RAM disponRAM disponíível. Tal problema pode ser resolvido vel. Tal problema pode ser resolvido pelo Sistema Operacional atravpelo Sistema Operacional atravéés de s de OverlayOverlay ou por ou por MemMemóória Virtual.ria Virtual.