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