ICC-07 Softwares - Introdução

  • 4,690 views
Uploaded on

Softwares: softwares básicos (sistemas operacionais, utilitários, tradutores, compiladores, interpretadores) e softwares aplicativos (bases de dados, editores e processadores de texto, geradores de …

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.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
4,690
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
224
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Softwares
  • 2. Conceitos Básicos Software: elemento em um computador que permite o uso de seus recursos físicos (hardware), de forma a cumprir uma determinada tarefa Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 2
  • 3. Elementos constituintes do software Qualquer informação que possa ser armazenada eletronicamente Conteúdo de um programa que ao ser executado produz uma função documentos planejada dados Estruturas de dados que programa permitam que os programas manipulem adequadamente a informação instrução Add ax,bx Documentos que descrevam a operação e o uso de programas Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 3
  • 4. Características do Software O software, ao contrário do hardware, não é um produto manufaturado em série, sendo obtido como resultado de um processo abstrato de criação, exibindo as seguintes características: É um elemento lógico, sendo desenvolvido ou projetado, e não manufaturado. É maleável, permitindo mudanças durante seu ciclo de vida. A maioria do software ainda é feita sob medida ao invés de ser criada a partir de módulos pré- existentes. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 4
  • 5. Programas & Instruções Programas: faceta mais conhecida do software. um programa é uma lista ordenada de instruções que causa um comportamento pré-determinado no computador ao ser executada. uma instrução é composta de uma operação elementar, que possa ser executada pelo processador, e dos dados associados a esta operação. Exemplo: ADD AX,BX Significado: AX = AX + BX, sendo AX e BX registradores da CPU. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 5
  • 6. Programas & Instruções O procedimento adotado pelo processador na execução de uma instrução é similar para todos os computadores e pode ser resumido como: Ao ser ligado o computador, sua CPU automaticamente lê uma posição de memória ROM onde está o primeiro byte da primeira instrução. Este primeiro byte, pelo seu código binário, dirá à CPU se a instrução é de um, dois, três ou quatro bytes. Se for uma instrução de um byte, depois de buscado este byte na memória, a CPU irá executá-lo Se for uma instrução de mais de um byte, a CPU vai buscar todos os outros antes de executá-la. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 6
  • 7. Ciclos de busca e execução de uma instrução Ciclo de Execução Ciclos de Busca da da CPU Instrução Instrução 1ª instrução Memória ROM o ciclo de instrução para uma instrução de n bytes contém n+1 fases, Demais onde as n primeiras fases instruções consistem de ciclos de e dados busca na memória dos Memória bytes da instrução, RAM seguidos pelo ciclo de execução da instrução. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 7
  • 8. Linguagens de Programação Embora possam ser escritos usando-se as instruções, os programas são criados, na maioria das vezes, usando-se comandos pré-definidos de mais alto nível de abstração (mais complexos que as instruções), que posteriormente são convertidos em instruções. Um conjunto fechado e completo de comandos é chamado de “linguagem de programação”. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 8
  • 9. Geração Tipo da Características Linguagem 1ª Linguagem de A programação era feita diretamente com as instruções (e dados) Máquina escritos em binário, na forma como seriam executados pelo processador (programa-executável). 2ª Linguagem de A programação é feita usando-se representações simbólicas Montagem (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). 3ª Linguagem de Linguagens orientadas por procedimentos, com comandos que Alto Nível 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. 4ª Linguagem de Linguagens orientadas para a solução de problemas, classificadas Muito Alto Nível 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 Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 9
  • 10. Tipos de programas executáveis quanto ao uso de memória Programas Residentes Ocupam um lugar "permanente" na memória principal do computador. Por esta razão, eles podem ser executados a qualquer momento, uma vez instalados, sem a necessidade de se carregar na memória primeiro. Programas Transientes São aqueles que são alocados na memória principal quando são executados. A cada chamada de um determinado programa executável, o mesmo é carregado totalmente na memória principal do computador, sendo descartado em seguida, liberando espaço da memória para outros programas. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 10
  • 11. Exemplo de alocação de programas na memória Posição N Área Livre Rotinas para comando dos periféricos de E/S (B.I.O.S.) Posição Sistema Operacional 0 Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 11
  • 12. Exemplo de alocação de programas na memória Posição Área Livre N Programa Residente Rotinas para comando dos periféricos de E/S (B.I.O.S.) Posição Sistema Operacional 0 Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 12
  • 13. Hierarquia de hardware e software em um computador O software pode ser classificado hierarquicamente em software básico (também chamado software de sistema) Software Aplicativo e software aplicativo Por software aplicativo designam-se os programas orientados ao usuário final tais como: processadores de texto, bancos de dados, planilhas, Software Básico etc. Para ser criado e executar um programa aplicativo requer outros programas que fazem sua conexão com o hardware do computador, classificados Hardware coletivamente como software básico. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 13
  • 14. Software Básico Correspondem aos programas que geram programas executáveis, ou que se comunicam diretamente com o hardware, executando funções de controle deste, permitindo seu uso pelos programas aplicativos. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 14
  • 15. Sistema Operacional Essencial a qualquer computador, executando funções básicas como: leitura do teclado, escrita no vídeo, acesso ao disco, etc. Em muitos computadores os sistemas operacionais permitem que múltiplos usuários e/ou múltiplas aplicações estejam em execução ao mesmo tempo (via multiprogramação ou multiprocessamento). De acordo com suas características um sistema operacional pode ser: Multi-Usuário Multi-Processado Multi-Tarefa (multi-programado) Multi-Fluxo (multi-thread) Reativo: responde a eventos externos em tempo real. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 15
  • 16. Sistema Operacional Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 16
  • 17. Utilitários Programas que executam tarefas envolvendo a gerência dos recursos em um computador, sendo normalmente parte ou atuando conjugados ao sistema operacional. Exemplos de utilitários são os programas de controle do acesso ao disco, vídeo, etc Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 17
  • 18. Tradutores A CPU dos computadores atuais só entende e tem capacidade de executar instruções em uma linguagem de nível muito baixo - Linguagem de Máquina ou (Linguagem "da" Máquina, uma vez que é diferente para cada CPU). Por outro lado, os usuários utilizam para se comunicar uma linguagem com um nível muitíssimo elevado - Linguagem Natural (português, inglês, etc). Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 18
  • 19. Hierarquia das linguagens em um computador Ling. Natural Ling. de Alto Nível Ling. Montadora Ling. de Máquina Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 19
  • 20. Tradutores Como a distância entre estas duas linguagens é muito grande, foram criadas várias linguagens intermediárias (ainda distantes da Linguagem Natural) com capacidade de traduzir um conjunto de instruções de nível superior ao nível da máquina. Todos os computadores, executam programas através de instruções em Linguagem de Máquina, chamados conjunto ou “set” de instruções - instruction set - do processador e está permanentemente gravado no processador desde a sua fabricação. Programa de computador um arranjo dessas ações elementares com um dado objetivo. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 20
  • 21. Tradutores As instruções do programa são armazenadas na memória do computador em grupos de bits, p.ex.: 10111001 00011101 Linguagem de Montagem Para que os programadores não necessitassem lembrar cada uma das seqüências possíveis e os seus significados em Assemblers. Linguagens Assembly são chamadas de "baixo nível" porque estão muito próximas da Linguagem de Máquina cada comando em Linguagem Montadora é traduzido diretamente para o comando em LM correspondente. Seres humanos não pensam na forma de símbolos abreviados. Por que, então, não se comunicar com o computador numa Linguagem Natural? Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 21
  • 22. Tradutores Atualmente existem centenas de linguagens, nos mais diversos níveis, desenvolvidas para as mais variadas aplicações. Linguagens como VisualBasic, C e C++ são de alto nível. Elas não são exatamente linguagens correntes, mas utilizam uma simbologia menos hermética que a LM, que tenta se aproximar das linguagens naturais e nos transmitem informações que dificilmente veríamos numa programa em Linguagem Montadora. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 22
  • 23. Exemplo Programa program ACERTE_NUMERO (input, output); var number, guess : integer; begin number := 2; writeln('Escolha um numero entre 1 e 10'); readln( guess ); if number = guess then writeln('Voce acertou. Parabens!') else writeln('Lamento. Voce errou.') end. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 23
  • 24. Mesmo exemplo na linguagem montadora dos micro- processadores 80x86 Intel para execução em DOS ORG 100 JMP inic msg1 DB ' Escolha um numero entre 1 e 10',13,10,'$' msg2 DB ' Voce acertou. Parabens ',13,10,'$' msg3 DB ' Lamento. Voce errou ',13,10,'$' inic: MOV AH,9 LEA DX,msg1 INT 21H MOV AH,1 INT 21H LEA DX,msg2 CMP AL,2 JZ ok LEA DX,msg3 ok: MOV AH,9 INT 21H MOV AH,4CH INT 21H Introdução à Ciência Introduç END da Computação Computaç Eduardo Nicola F. Zagari 24
  • 25. Tradutores Os programas anteriores são chamados de programas-fonte por estarem escritos na linguagem simbólica e precisarem ser traduzidos para a linguagem de máquina. O programa ou código objeto é o resultado da tradução, quando se usa um compilador. O processo de tradução pode ser realizado por dois tipos de tradutores: os compiladores e os interpretadores. Ambos têm a mesma função, mas diferem quanto ao modo de realizarem a tradução. Interpretada opera só com programa FONTE Tradução Compilada a partir do FONTE gera OBJETO Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 25
  • 26. Interpretadores Os interpretadores são Programa-fonte programas que lêem instruções escritas com caracteres ASCII e imediatamente executam Interpretação o que a instrução manda. de um Vantagem comando facilidade no desenvolvimento dos programas, mas precisam Execução ser traduzidos toda vez que do forem executados comando Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 26
  • 27. Compiladores Os compiladores traduzem todas as instruções diretamente para a Linguagem de Máquina, a partir do texto em ASCII do programa um programa compilado é executado muito mais rapidamente que o mesmo programa interpretado Dependendo da linguagem de alto nível utilizada, a compilação se dará em etapas. Linkedição - há a necessidade de se juntar essas funções (ou bibliotecas) previamente compiladas A grande desvantagem do objeto é de não ser possível modificá-lo. Para tal é necessário retomar o fonte, fazer as alterações e recompilá-lo. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 27
  • 28. Compilação de vários programas-fonte que são ligados para criar um único programa Programa-fonte 1 Programa-fonte N Compilação Compilação Programa-objeto 1 Programa-objeto N Biblioteca de Ligação Rotinas em Linguagem de Máquina Programa Para LIGAÇÃO Executável Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 28
  • 29. Então, agora responda: como um mesmo programa pode ser executado em tantas máquinas diferentes ?
  • 30. Software Aplicativo São programas que atendem ao usuário final: processadores de texto, planilhas, sistemas de gerência de bases de dados, programas gráficos, etc Necessitam do sistema operacional (software básico) para sua execução. Além destes exemplos, temos os sistemas desenvolvidos para atender as necessidades empresariais em geral. podem ser pacotes configuráveis para instalação em diversas empresas ou podem ser customizados, ou seja, desenvolvidos especificamente para atender uma determinada empresa. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 30
  • 31. Bases de Dados É uma coleção de informação organizada de forma que possa ser manuseada de forma seletiva São organizadas tradicionalmente em: Campo (field): unidade básica de informação. Registro (record): conjunto de campos relacionados entre si segundo uma regra específica. Arquivo: conjunto de "records" relacionados entre si. As bases de dados podem ser organizadas também na forma de hipertextos, onde itens de informação podem ser figuras, texto, vídeos, etc, os quais podem ser associados livremente com quaisquer outros itens. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 31
  • 32. Sistema de Gerência de Bases de Dados Programas usados para manipular uma base de dados, permitindo operações de consulta, inserção, supressão, e organização dos itens. Base de Dados é um conjunto de arquivos organizados de acordo com uma lógica que permita o acesso por intermédio de um gerenciador específico. Ex.: Base de Dados de Clientes, de Vendas, Acadêmico, Contábil, etc. Banco de Dados é o gerenciador citado na definição anterior. Ex.: Oracle, Sybase, SQL-Server, DB-2 IBM, etc. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 32
  • 33. Editores de Texto Programas que permitem criar, visualizar, 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. Introduç Impressão Introdução à Ciência Impressão do documento. 33 da Computação Computaç Eduardo Nicola F. Zagari
  • 34. Processadores de Texto Gerência de Arquivos Macros Configuração de Composição Fontes Verificação Ortográfica Notas & Referências Indexação Cruzadas Dicionário de Gráficos Sinônimos Cabeçalhos & Rodapés Múltiplas Janelas Layout WYSIWYG Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 34
  • 35. Geradores de Planilhas Planilhas são arquivos tabulares de dados onde cada valor está associado a outros valores segundo regras definidas pelo usuário a alteração de um dado valor causa a mudança de seus associados Célula: cada local de entrada de dados da tabela Fórmula: relação entre células Programas geradores de planilhas permitem criação e manipulação de planilhas sua representação em formatos de saída gráficos como diagramas de barras, linhas, diagramas tri-dimensionais, etc. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 35
  • 36. Geradores de Planilhas 35 30 25 Jan Fev 20 Mar 15 Abr Maio 10 Jun 5 0 Alimentação Gasolina Hotel Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 36
  • 37. Programas Gráficos Esta categoria engloba os aplicativos que permitem a visualização e manipulação de figuras, como sua função principal, dentre os quais destacam-se: Desenho & Pintura Ilustração Apresentação Animação CAD Editoração Eletrônica Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 37
  • 38. Padrões Mapa 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. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 38
  • 39. Padrões Gráficos Vetoriais Formato 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. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 39
  • 40. A CPU e a execução dos softwares A CPU (Central Processing Unit - Unidade Central de Processamento) é formada por componentes que manipulam valores binários e desempenham todas as operações previstas. Registradores ou Registros que são, portanto, locais ou posições de memória privilegiados, pois estão no mesmo circuito integrado da CPU. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 40
  • 41. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Uma arquitetura simples contém os seguintes componentes ou registradores: Contador de Programa (Program Counter - PC) Memória Principal Acumulador (AC) ou diversos registradores de dados A, B, etc. Unidade Aritmética e Lógica (Arithmetic and Logic Unit - ALU) Registradores de Índices X, Y Registradores de Estado ou Status Flags – F Decodificador de Instrução Circuitos acionadores da execução da instrução decodificada Pilha (Stack) Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 41
  • 42. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Contador de Programa (PC) - É o registrador que contém o valor binário do endereço numérico ou posição da instrução de máquina que está sendo executada. Após a execução da instrução o PC muda automaticamente de valor e indica o endereço da próxima instrução a ser executada. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 42
  • 43. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Acumulador (AC) - É um registrador especial da CPU. Serve para armazenar o dado que foi trazido da memória principal para receber o tratamento previsto pela instrução: deslocamento (shift) ou rotação (rotate) de bits para a direita ou esquerda operações aritméticas e lógicas: contém um dos operandos e armazena o resultado da operação escrita ou leitura: guarda um valor que foi lido ou será escrito Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 43
  • 44. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Unidade Aritmética e Lógica (ALU) - É o componente que executa, em conjunto com o AC ou outros registradores, as operações aritméticas (adição e subtração binária) e operações lógicas (verificação de sinais e composição de bits através de operações AND, OR, NOT, etc.). Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 44
  • 45. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Registradores de Dados (A, B, etc.) - São registradores menos utilizados que o AC e servem, em geral, para efetuar operações que auxiliam a manipulação de dados pelo AC. Por exemplo, podem guardar temporariamente os dados do acumulador ou memória, ou podem ser incrementados ou decrementados, servindo como contador, etc. Não são, em geral, utilizados para operações aritméticas ou lógicas, deslocamentos, etc. Normalmente, o registrador A é o acumulador (AC). Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 45
  • 46. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Registradores de Índices X, Y - São registradores que contêm uma das partes (denominada índice) que entram na formação (indexação) do endereço final ou efetivo da memória a ser usado como operando de uma instrução. Decodificador - É um circuito que recebe os bits do código de operação da instrução de máquina, identifica o tipo de operação a ser executada e comanda a execução dessa instrução. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 46
  • 47. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Pilha (“Stack”) - É formada por porção da memória principal, e cujo tamanho varia de acordo com a utilização. Seu endereço está acessível através do registrador chamado Ponteiro da Pilha (Stack Pointer - SP). Pode ser usada como registrador para guardar dado, ou, mais comumente, guardar endereço de retorno de subrotina ou salvar conteúdo de registradores numa mudança de contexto, etc. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 47
  • 48. Arquitetura básica de uma CPU baseada na “máquina de von Neumann” Ponteiro da Pilha (SP) - É um registrador da CPU que guarda o endereço ou posição atual disponível na pilha definida na memória. Pode ser decrementado ou incrementado através de instruções apropriadas. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 48
  • 49. Carga do programa para execução O programa precisa ser carregado da memória secundária para a memória RAM para ser executado. Essa carga (LOAD) significa copiar o programa inteiro, instrução por instrução numa determinada área contínua da memória RAM disponível. Entretanto, nem sempre é possível carregar todo o programa, p.ex., porque o programa é maior que a RAM disponível. Tal problema pode ser resolvido pelo Sistema Operacional através de Overlay ou por Memória Virtual. Introdução à Ciência Introduç da Computação Computaç Eduardo Nicola F. Zagari 49