Logo Passei Direto
Buscar

Aula 3 - Conceitos de hardware a software de computadores

User badge image

Enviado por Adriana Saldanha Cabral em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Prof. Rogério Colpani
E-mail: rocolpani@gmail.com
1
1. Introdução.
2. Conceitos de Hardwares.
3. Conceitos de Softwares.
2Programação em Microinformática
3Programação em Microinformática
Existe uma longa distância entre um determinado
comportamento desejado e um conjunto de dispositivos
eletrônicos (desorganizados).
Dispositivos
Eletrônicos
Comportamento 
desejado
4Programação em Microinformática
Um computador de uso geral pode ser visto como o ponto
central de uma ponte para se caminhar de um conjunto de
dispositivos eletrônicos até a obtenção de um comportamento
desejado (função).
Dispositivos
Eletrônicos
Comportamento 
desejado
Computador de
uso geral
Arquitetura 
de
computadores
Software
Transformação de um problema
O objetivo final é transformar um problema, descrito em
linguagem natural, em elétrons circulando através de um circuito.
5
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Comportamento desejado:
Aplicação
Matéria Prima: 
Dispositivos eletrônicos
5Programação em Microinformática
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Sistemas Operacionais I
Forma como nós seres humanos 
comunicamos
Exemplos – Idiomas
Inglês, Francês, Português
6Programação em Microinformática
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Sequência de passos bem definida 
que visa atingir um objetivo.
Exemplos
pseudocódigo, fluxograma e 
descrição narrativa 
7Programação em Microinformática
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Conjunto de instruções que contém as 
operações necessárias para, a partir de 
dados inseridos, obter um resultado que 
será disponibilizado por algum 
dispositivo de saída.
Exemplos
Editores de texto, SO 
8Programação em Microinformática
Introdução
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Especificação formal de todas as 
funções que uma determinada 
máquina pode executar. Funções 
conhecidas como ISA (conjunto de 
instrução de máquina)
9Programação em Microinformática
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Implementação da ISA em um 
microprocessador, ou seja, a 
forma como as especificações 
da ISA ocorrerão.
10Programação em Microinformática
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Cada elemento da 
microarquitetura é composto 
por circuitos lógicos simples.
11Programação em Microinformática
Linguagem natural
Algoritmo
Programa
Arquitetura do Computador
Microarquitetura
Circuitos lógicos
Dispositivos
Cada circuito lógico é 
construído com dispositivos 
eletrônicos.
Exemplo
Transistores CMOS
12Programação em Microinformática
13Programação em Microinformática
14Programação em Microinformática
 Introduziu o conceito de computador
controlado por programa armazenado.
 Dados e instruções no mesmo espaço de
memória.
 Execução sequencial de instruções.
15Programação em Microinformática
Durante sua operação, a execução de um programa é uma
sequência composta por:
1. Busca da instrução: transfere instrução da posição de memória
apontada pelo contador de programa (PC) para a CPU.
2. Executa a instrução: a unidade de controle decodifica a
instrução e gerencia os passos para sua execução pela unidade
lógica e aritmética (ULA).
16Programação em Microinformática
Componentes básicos de um computador
Memória
Sistemas 
de E/S
Barramentos
Processador
17Programação em Microinformática
 Placa de circuito impresso (PCB) é um componente de hardware que
fornece conexões elétricas entre dispositivos em vários lugares da
placa.
 Computadores dependem das interações entre muitos dispositivos de
hardware para satisfazer aos requisitos do sistema.
 Comunicação entre os componentes é feito por meio de barramentos.
18Programação em Microinformática
 Sistema básico de entrada/saída (BIOS): é um programa de
computador pré-gravado em memória permanente e executado pelo
computador quando ligado. Ele é responsável pelo suporte básico de
acesso ao hardware, bem como por iniciar o sistema operacional.
Onde se localiza ?
O BIOS é armazenado em um chip ROM e está localizado na placa
mãe.
Dois programas:
• Setup: usado para configurar alguns parâmetros do BIOS.
• Post: uma sequência de testes de hardware do computador para
verificar se o sistema se encontra em estado operacional.
19Programação em Microinformática
Sequência de funcionamento
Quando o computador é ligado
1. É realizado a leitura do CMOS (memória onde ficam armazenados informações
sobre a configuração de hardware e a configuração inicial do computador).
2. POST: diagnósticos e testes realizados nos componentes físicos (disco rígido,
processador ...). Os problemas são informados por uma combinação de sons
numa determinada sequência ou exibidos na tela.
3. Ativação de outros BIOS possivelmente presentes em dispositivos instalados no
computador. Exemplo, placa de vídeo.
4. Os dados são transferidos para a memória principal.
5. Leitura dos dispositivos de armazenamento, cujos detalhes e ordem de
inicialização são armazenados no CMOS. Se há um SO instalado no dispositivo,
então o BIOS terá informações para encontrá-lo.
20Programação em Microinformática
Processador
ULARegistradores Controle
• Componente de hardware que executa um fluxo de instruções em
linguagem de máquina.
• Executa as instruções de programas armazenados na memória principal.
• Funções
• Busca instruções.
• Decodifica instruções.
• Executa instruções.
21Programação em Microinformática
Unidade lógica e aritmética (ULA)
Executa operações básicas de aritmética e lógica,
como adição, multiplicação e comparações lógicas.
22Programação em Microinformática
Unidade de controle
Determina quais ações são tomadas pelo
computador, baseado no valor de determinados registradores
especiais (ou “de controle”).
23Programação em Microinformática
Registradores
São memórias de alta velocidade e guardam dados para
uso imediato pelo processador.
São conectados ao circuito do processador e localizados
fisicamente próximo das unidades de execução.
24Programação em Microinformática
25Programação em Microinformática
Consiste de um arranjo linear de células de armazenamento 
endereçáveis similares aos registradores, porém em 
quantidade muito maior. 
26Programação em Microinformática
 O tamanho e a velocidade da memória são limitados pelas leis da física
e da economia.
 Há um limite para a velocidade com que os elétrons podem viajar;
quanto mais comprido o fio entre dois terminais, mais tempo demorará
a transferência.
 É caro equipar processadores com grandes quantidades de memória que
possam atender às requisições de dados à mesma (ou próxima)
velocidade do processador.
 Compromisso custo/desempenho caracteriza a hierarquia de memória.
27Programação em Microinformática
Registradores
Cache L1
Cache L2
Memória principal
Memória secundária
custo velocidade
Capacidade
de
armazenamento
28Programação em Microinformática
 Conjunto de conexões elétricas que
transportam informações entre
dispositivos de hardware.
 Os dispositivos enviam sinais elétricos pelo barramento para se
comunicarem com outros dispositivos.
 Tipos de barramentos
 Dados: transmitem dados de um componente a outro.
 Endereço: determinam o local de um dado sendo acessado.
 Controle: determinam a direção de um determinado fluxo de
dados, ou quando um componente pode acessar o barramento.
29Programação em Microinformática
30Programação em Microinformática
 Permite que dispositivos de hardware acessem a memória do sistema
para leitura e escrita independentemente da CPU. Dessa forma a CPU
fica livre para executar instruções de software.
 O DMA envia uma interrupção para o processador avisando que a
transferência está completa e os dados estão disponíveis.
31Programação em Microinformática
1. Um processador envia uma solicitação de E/S ao DMA, que envia a solicitação ao disco.
O processador continua executando instruções.
2. O disco envia dados ao DMA; os dados são colocados no endereço de memória
especificado pelo comando do DMA.
3. O DMA envia uma interrupção ao processador indicando que a E/S foi concluída.
Exemplo
32Programação em Microinformática
 O computador se comunica com o “mundo exterior” através do
sistema de E/S.
 Exemplos de dispositivos de E/S
 Impressora, scanners, teclado, mouse, monitor, HD, microfone
...
 Os dispositivos de E/S não se conectam diretamente à CPU, mas
através de interfaces (exemplo, controladora de disco), estas sim
conectadas ao barramento.
Arquiteturas de computador contêm recursos que
executam funções de sistemas operacionais rapidamente em
hardware para melhorar o desempenho. Também possuem
recursos que habilitam o sistema operacional a impor rígida
proteção, o que melhora a segurança e a integridade do
sistema.
• A maioria dos SOs depende de processadores para implementar seus
mecanismos de proteção impedindo processos de acessar instruções
privilegiadas ou de acessar memórias que não lhes foram alocadas.
• Se os processos tentarem violar os mecanismos de proteção de um sistema,
o processador alerta o SO para que ele possa reagir.
Sistemas Operacionais I 3333Sistemas Operacionais
Modo de acesso
Importante
Implementação de mecanismos de proteção ao núcleo do sistema e
de acesso aos seus serviços.
Caso uma aplicação, que tenha acesso ao núcleo, realize uma
operação que altere sua integridade, todo o sistema poderá ficar
comprometido e inoperante.
Muitas das principais implementações de segurança de um sistema
operacional utilizam um mecanismo presente no hardware dos
processadores, conhecido como modo de acesso.
Modos de acesso
• Modo usuário.
• Modo núcleo.
34Sistemas Operacionais
Modo usuário
Aplicação só pode executar instruções conhecidas como não-
privilegiados, tendo acesso a um número reduzido de instruções.
Modo núcleo
Aplicação pode ter acesso ao conjunto total de instruções do
processador.
• Instruções privilegiadas: têm o poder de comprometer o sistema.
• Instruções não privilegiadas: não oferecem perigo ao sistema.
O modo de acesso é determinado por um conjunto de bits,
localizado no registrador de status do processador, que indica o modo de
acesso corrente. Por intermédio desse registrador, o hardware verifica se a
instrução pode ou não ser executada.
35Sistemas Operacionais
Apenas o SO tem acesso às instruções privilegiadas.
... Aplicação necessita de um serviço que pode colocar o sistema
em risco, então ...
1. Solicitação é realizada através de uma chama de sistema.
2. A chama de sistema altera o modo de acesso do processador
para modo núcleo.
3. Se caso um programa tente executar uma instrução privilegiada,
sem o processador estar no modo núcleo, uma exceção é gerada
e o programa é encerrado.
4. Se for permitido ele executa a tarefa solicitada.
5. O modo de acesso é retornado para o modo usuário ao término
da rotina do sistema.
36Sistemas Operacionais
Exemplo 1
Uma aplicação atualiza um arquivo em disco. O
programa, por si só, não deve especificar diretamente as
instruções que acessam seus dados no disco. Como o disco é
um recurso compartilhado, sua utilização deverá ser
gerenciada unicamente pelo SO, evitando que a aplicação
possa ter acesso a qualquer área do disco sem autorização, o
que poderia comprometer a segurança e a integridade do
sistema de arquivos.
37Sistemas Operacionais
Exemplo 2
Caso uma aplicação tenha acesso a áreas de memória
onde está carregado o sistema operacional, um programador
mal-intencionado ou um erro de programação poderia gravar
nessa área, violando o sistema. Com o mecanismo de modo de
acesso, para uma aplicação escrever numa área onde resida o
SO o programa deve estar sendo executado no modo núcleo.
38Sistemas Operacionais
Reflexão: princípio do privilégio mínimo
De modo geral, o princípio do privilégio mínimo diz que, em qualquer
sistema, deve-se dar às várias entidades somente as capacidades de que
necessitam para realizar suas tarefas, mas não mais.
Exemplos:
• Você o emprega quando decide quem pode ter as chaves da sua casa.
• Empresas o empregam quando permitem que funcionários tenham acesso à
informações críticas e confidenciais.
39Sistemas Operacionais
44Programação em Microinformática
45Programação em Microinformática
 Para que o hardware tenha utilidade prática, deve existir um
conjunto de programas utilizado como interface entre as
necessidades do usuário e as capacidades do hardware.
 A utilização de softwares adequados às diversas tarefas e aplicações
torna o trabalho dos usuários muito mais simples e eficiente.
Um programa de computador é composto
por uma sequência de instruções, que é interpretada
e executada por um processador.
46Programação em Microinformática
 Nos primeiros SO´s, o ato de programar era bastante complicado, já
que o programador deveria possuir conhecimento da arquitetura da
máquina e programar através de fios.
 Programas desenvolvidos em linguagem de máquina.
 Surgimento das linguagens de programação
 O programador deixou de se preocupar com muitos aspectos
pertinentes ao hardware, como em qual região de memória o
programa deveria ser carregado...
 A utilização das linguagens facilitou a construção de programas,
documentação e manutenção.
47Programação em Microinformática
 Os programas escritos em linguagens de programação criam o que
denominamos de programa-fonte.
 Para o processador executar essas instruções, é necessário
passar por uma etapa de conversão, onde toda a representação
simbólica das instruções é traduzida para o código de
máquina.
 Esta conversão é realizada por um utilitário denominado
tradutor.
 Há dois tipos distintos de tradutores
1. Montador.
2. Compilador.
48Programação em Microinformática
Programa-
fonte
Programa-
objeto
Tradutor
49Programação em Microinformática
 Montador (Assembler)
o É o utilitário responsável por traduzir um programa-fonte em
linguagem de montagem em um programa-objeto não executável
(módulo-objeto).
o A linguagem de montagem é particular para cada processador,
assim como a linguagem de máquina, o que não permite que
programas assembly possam ser portados entre diferentes
máquinas.
Linguagem de 
montagem
Módulo-objetoMontador
50Programação em Microinformática
 Compilador
o É o utilitário responsável por gerar, a partir de um programa
escrito em uma linguagem de alto nível, um programa em
linguagem de máquina não executável.
o Exemplos de linguagens de programação: C/C++, Pascal, Cobol,
Fortran ...
Linguagem de 
alto nível
Módulo-objetoCompilador
51Programação em Microinformática
 É considerado um tradutor que não gera módulo-objeto.
 A partir de um programa-fonte escrito em linguagem de alto
nível, o interpretador, durante a execução do programa, traduz
cada instrução e a executa imediatamente.
 Exemplos de linguagens interpretadas: Basic, Perl ...
 Desvantagem: tempo gasto na tradução das instruções de um
programa toda vez que este for executado, já que não existe a
geração de um código executável.
52Programação em Microinformática
 É o utilitário responsável por gerar, a partir de um ou mais
módulos-objetos, um único programa executável.
 Suas funções básicas são resolver todas as referências simbólicas
existentes entre os módulos e reservar memória para a execução do
programa.
53Programação em Microinformática
 É o utilitário responsável por carregar na memória principal um
programa para ser executado.
Código absoluto: todas as referências a endereços no
programa são posições físicas na memória principal, ou seja, o
programa só poderia ser carregado a partir do endereço de memória
especificado no seu próprio código.
Código relocável: todas as referências a endereços no
programa são relativas ao início do código, e não a endereços físicos
de memória. Dessa forma, os programas puderam ser executados a
partir de qualquer partição.
54Programação em Microinformática

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?