SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Softwares
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sistema Operacional




Introdução à Ciência
Introduç
da Computação
   Computaç                  Eduardo Nicola F. Zagari   16
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
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
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
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
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
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
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
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
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
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
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
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
Então, agora responda:
   como um mesmo
  programa pode ser
 executado em tantas
máquinas diferentes ?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Contenu connexe

Tendances

Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoCristiano Pires Martins
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
1 informatica básica imp5555555
1 informatica básica imp55555551 informatica básica imp5555555
1 informatica básica imp5555555Marcia Puntel
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisMauro Duarte
 
Informática parte 3-software
Informática parte 3-softwareInformática parte 3-software
Informática parte 3-softwareMauro Pereira
 
Dispositivos de memória
Dispositivos de memóriaDispositivos de memória
Dispositivos de memóriaTiago
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoEduardo Nicola F. Zagari
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 
Informatica - Sistema operacional - conceitos
Informatica - Sistema operacional - conceitosInformatica - Sistema operacional - conceitos
Informatica - Sistema operacional - conceitosMauro Pereira
 
Arquitetura de Computadores: Memórias
Arquitetura de Computadores: MemóriasArquitetura de Computadores: Memórias
Arquitetura de Computadores: MemóriasAlex Camargo
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Claudio Santos
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e softwareMarcelle Guiné
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e softwareMarcelle Guiné
 

Tendances (20)

Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
 
SO - Aula 02 - Conceitos
SO - Aula 02 - ConceitosSO - Aula 02 - Conceitos
SO - Aula 02 - Conceitos
 
SO - Aula 01 - Introducao
SO - Aula 01 - IntroducaoSO - Aula 01 - Introducao
SO - Aula 01 - Introducao
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
1 informatica básica imp5555555
1 informatica básica imp55555551 informatica básica imp5555555
1 informatica básica imp5555555
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Informática parte 3-software
Informática parte 3-softwareInformática parte 3-software
Informática parte 3-software
 
SDAC MODULO 7
SDAC MODULO 7SDAC MODULO 7
SDAC MODULO 7
 
Dispositivos de memória
Dispositivos de memóriaDispositivos de memória
Dispositivos de memória
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e Alocação
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
Informatica - Sistema operacional - conceitos
Informatica - Sistema operacional - conceitosInformatica - Sistema operacional - conceitos
Informatica - Sistema operacional - conceitos
 
Introducao aula-i
Introducao aula-iIntroducao aula-i
Introducao aula-i
 
Arquitetura de Computadores: Memórias
Arquitetura de Computadores: MemóriasArquitetura de Computadores: Memórias
Arquitetura de Computadores: Memórias
 
Hierarquia de níveis
Hierarquia de níveisHierarquia de níveis
Hierarquia de níveis
 
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...Apostila   3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
Apostila 3000 questoes (testes) resolvidos banco do brasil (bb), cef, ibge,...
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 

En vedette

Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyEduardo Nicola F. Zagari
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorEduardo Nicola F. Zagari
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonEduardo Nicola F. Zagari
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryEduardo Nicola F. Zagari
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisEduardo Nicola F. Zagari
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosEduardo Nicola F. Zagari
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerEduardo Nicola F. Zagari
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCEduardo Nicola F. Zagari
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasEduardo Nicola F. Zagari
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 

En vedette (20)

Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-01 - Introdução
Padrões-01 - IntroduçãoPadrões-01 - Introdução
Padrões-01 - Introdução
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas Operacionais
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 
ICC-05 Álgebra Booleana
ICC-05 Álgebra BooleanaICC-05 Álgebra Booleana
ICC-05 Álgebra Booleana
 
ICC-06 Periféricos - Introdução
ICC-06 Periféricos - IntroduçãoICC-06 Periféricos - Introdução
ICC-06 Periféricos - Introdução
 
ICC-02 Evolução dos Computadores
ICC-02 Evolução dos ComputadoresICC-02 Evolução dos Computadores
ICC-02 Evolução dos Computadores
 
ICC-01 História dos Computadores
ICC-01 História dos ComputadoresICC-01 História dos Computadores
ICC-01 História dos Computadores
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 

Similaire à ICC-07 Softwares - Introdução

resumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdfresumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdfRafaelPilan1
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Joicy Souza
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptBrennoPimenta
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxDoraestevao
 
Sistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareSistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareCharles Fortes
 
Organização de computadores
Organização de computadoresOrganização de computadores
Organização de computadoresTiago
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von NeumannWanessa Ribeiro
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturasFábio Andrade
 
SO-01 Introdução aos Sistemas Operacionais
SO-01 Introdução aos Sistemas OperacionaisSO-01 Introdução aos Sistemas Operacionais
SO-01 Introdução aos Sistemas OperacionaisEduardo Nicola F. Zagari
 
mandachuva
mandachuvamandachuva
mandachuvaeso8c
 
computadores
computadorescomputadores
computadoreseso8c
 
Daniela Rita
Daniela RitaDaniela Rita
Daniela Ritaeso8c
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Hardware e software
Hardware e softwareHardware e software
Hardware e softwarejotacabral
 

Similaire à ICC-07 Softwares - Introdução (20)

resumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdfresumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdf
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.ppt
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptx
 
Sistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareSistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e Software
 
Organização de computadores
Organização de computadoresOrganização de computadores
Organização de computadores
 
Aula 03
Aula 03Aula 03
Aula 03
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von Neumann
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
 
aula_04.pdf
aula_04.pdfaula_04.pdf
aula_04.pdf
 
Progeto pim ii
Progeto pim iiProgeto pim ii
Progeto pim ii
 
SO-01 Introdução aos Sistemas Operacionais
SO-01 Introdução aos Sistemas OperacionaisSO-01 Introdução aos Sistemas Operacionais
SO-01 Introdução aos Sistemas Operacionais
 
mandachuva
mandachuvamandachuva
mandachuva
 
computadores
computadorescomputadores
computadores
 
Daniela Rita
Daniela RitaDaniela Rita
Daniela Rita
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
SlackWare - Leonel
SlackWare - LeonelSlackWare - Leonel
SlackWare - Leonel
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
 

Plus de Eduardo Nicola F. Zagari

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasEduardo Nicola F. Zagari
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSEduardo Nicola F. Zagari
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealEduardo Nicola F. Zagari
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Eduardo Nicola F. Zagari
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Eduardo Nicola F. Zagari
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Eduardo Nicola F. Zagari
 

Plus de Eduardo Nicola F. Zagari (11)

Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
ICC-03 Organização dos Computadores
ICC-03 Organização dos ComputadoresICC-03 Organização dos Computadores
ICC-03 Organização dos Computadores
 
ICC-04 Sistemas Numéricos
ICC-04 Sistemas NuméricosICC-04 Sistemas Numéricos
ICC-04 Sistemas Numéricos
 

ICC-07 Softwares - Introdução

  • 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