Prévia do material em texto
Organização de Computadores
Professor Aldriano
Organização de Computadores
Apresentação do Plano de Ensino
*Período de Avaliações
https://www.unip.br/presencial/servicos/aluno/manual/tradicional/calendarios.aspx
Organização de Computadores
• OBJETIVO GERAL
• Entender o hardware de um sistema computacional. Entender o funcionamento dos vários
módulos que compõem um sistema computacional. Conhecer a organização interna dos
computadores, para análise da otimização do uso de seus componentes em aplicações das
áreas de informação, comunicação e processos de controle.
• Abrir PDF do Conteúdo Programático.
• AVALIAÇÃO
• B1 + Trabalho
• B2 + Trabalho
Apresentação do Plano de Ensino
Organização de Computadores
• CRITÉRIOS PARA CHAMADA E ABONO DE FALTAS:
• Haverá tolerância de 10 minutos para o início das aulas do primeiro horário.
• Neste período o professor estará em sala e poderá tirar dúvidas dos alunos.
• CONDUÇÃO DA DISCIPLINA:
• O conteúdo será ministrado através de aulas expositivas, dialogadas, enfatizando as
relações entre a teoria e a prática e buscando trazer a teoria para o real;
• Utilizar-se-á de atividades em grupo para o entendimento da teoria e para pesquisas de
informações complementares;
• O laboratório eventualmente poderá ser utilizado para realização de exercícios e
trabalhos de caráter prático;
• Será realizado seminário a fim de despertar no aluno a capacidade de pesquisa e do auto-
aprendizado.
Apresentação do Plano de Ensino
Organização de Computadores
• Geração 0 (1642-1945): que possuía essencialmente computadores mecânicos;
• Primeira geração (1945-1955): utilizava-se essencialmente de válvulas eletrônicas para a
construção de computadores;
• Segunda geração (1955-1965): baseava-se no uso de transistores. Foi proposto por John
Von Neumann o modelo de computador utilizado até os dias de hoje, composto de: memória,
unidade de processamento e dispositivos de entrada e saída;
• Terceira geração: (1965-1980): baseava-se no uso de circuitos integrados;
• Quarta geração (1970-atual): surgiu o microprocessador.
Evolução dos computadores
Organização de Computadores
• Historia: a evolução... Eniac (válvulas), Edvac (eletrônica discreta)...
• Componentes:
• HD (paginação, tabela de alocação);
• RAM (como se localiza uma informação, endereçamento), ram primária, secundária, cachê
• Barramentos (controle, endereço, dados), CPU ("Processadores",registradores, conjunto
de instruções)-> funcionamento
• Placa mães:
• toda a parte elétrica e componentes;
• lógica digital(OR, AND, XOR...) - circuitos elétricos..
• Representações das informações: bit, byte, caracter, palavras...
• Conversões de bases e aritmética Computacional...
• * Isto é para cada arquitetura RISC vx CISC
• Programação assembly pra criar OS
História
Eniac
Válvulas Transistor
Organização de Computadores
Quais componentes devem existir em um computador?
Processador Memória
Disco rígido
Placa mãe
Gabinete
Monitor
Sistema
operacional Jogos
Organização de Computadores
Funcionamento do boot de um PC
1. Acessa a memória CMOS, um circuito integrado que grava
informações referentes ao hardware. A BIOS estabelece
reconhecimento e comunicação com a placas de vídeo e memória
RAM.
2. A segunda fase, conhecida como Power-on Self Test (POST) nada
mais é do que um conjunto de teste que a BIOS realiza para saber
se tudo está se inicializando da maneira correta. Quando alguns
componentes essenciais estão faltando, alguns beeps ou mensagens
na tela alertam o usuário.
3. A etapa seguinte consiste na procura de alguma fonte para
inicializar o sistema operacional. Tal fonte é configurável e
pode ser um disco rígido (padrão), CD-ROM, pendrive, disquete,
entre outros.
4. A etapa seguinte, o BIOS lê o setor zero (que com apenas 512
bytes, denominado Master Boot Record) do HD. Essa área
contém um código que alavanca a inicialização do sistema
operacional. o setor dois.
BIOS:Basic Input/Output System ou
Sistema Básico de Entrada e Saída.
Organização de Computadores
Funcionamento do boot de um PC
5. A etapa seguinte consiste na leitura de um arquivo de
configuração de boot, o Boot Loader ( NTLDR no Windows).
6. A partir dele, é inicializado o núcleo (kernel). Assim como
o BIOS estabelece a ligação entre hardware e sistema, o
kernel serve para firmar uma comunicação estável entre
hardware e software. Nessa fase, é ele quem assume o
controle do computador.
7. O kernel carrega os arquivos principais e informações
básicas do sistema operacional (incluindo o registro), além
de relacionar os componentes de hardware com as respectivas
DLLs e drivers.
8. A tela de escolha de usuários é exibida e, após o logon, os
programas relacionados para começar junto com o sistema são
carregados.
Organização de Computadores
Tela da BIOS de um PC
Organização de Computadores
Evolução do PC
• Lei de Moore.
Gordon E. Moore observou que o
número de transistores em um chip
de computador estava dobrando a
cada 18 a 24 meses. Como mostrado
no gráfico logarítmico do número
de transistores nos processadores
da Intel no momento de sua
introdução, sua "lei" estava sendo
obedecida.
Enciclopédia Britânica, Inc.
Organização de Computadores
1. Boot Loader (lilo, Grub, NTLDR);
2. Kernel:
2.1 Gerenciamento de memória, paginação e forma como os programas serão armazenados
durante a execução);
2.2 Sistema de arquivos;
3. Criar um shell mais robusto como um programa chamado pelo o básico do kernel;
4. Criar um compilador C que gere arquivos próprios do sistema;
5. Implementar drivers: placa de rede, vídeo, áudio, usb...
6. Depois ir implementando... Quiça uma Interface gráfica...
Visão de um projeto de “OS” – Mão na massa
Organização de Computadores
Alguns projetos:
• http://www.minix3.org - Em 1987, na edição do livro Operating Systems: Design and Implementation, de Andrew
S. Tanenbaum.
• http://www.menuetos.net - escrito totalmente em assembler para plataformas 32 bits x86.
• http://www.menuetos.be/index.en.html
• http://www.kolibrios.org/en/
• https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
Visão de um projeto de “OS”
Sistemas embarcados:
• Contém um processador ARM Cortex A8 de 1 GHz , 512 MB de RAM,
um SSD flash de 4 GB integrado e conectores para cartões micro-
SD, micro-HDMI, USB e Ethernet. Suporta Minix 3.
http://www.minix3.org/
http://www.minix3.org/
http://www.minix3.org/
http://www.minix3.org/
http://www.minix3.org/
http://www.minix3.org/
http://www.minix3.org/
http://www.minix3.org/
http://www.menuetos.net/
http://www.menuetos.net/
http://www.menuetos.net/
http://www.menuetos.net/
http://www.menuetos.net/
http://www.menuetos.net/
http://www.menuetos.net/
http://www.kolibrios.org/en/
http://www.kolibrios.org/en/
http://www.kolibrios.org/en/
http://www.kolibrios.org/en/
http://www.kolibrios.org/en/
http://www.kolibrios.org/en/
http://www.kolibrios.org/en/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/
Organização de Computadores
Projeto Minix
Organização de Computadores
ARQUITETURA vs ORGANIZAÇÃO
Dois conceitos fundamentais no estudo dos sistemas de computação são o de Arquitetura e
Organização de computadores.
Organização de Computadores
1. O termo “organização de um computador” refere-se às
unidades operacionais e suas interconexões que
implementam as especificações da sua arquitetura.
• Exemplos de atributos de organização incluem:
• Detalhes de hardware transparentes ao
programador, tais como os sinais de controle, as
interfaces entre o computador e os periféricos e
a tecnologia de memória utilizada.
2. Consiste no estudo dos componentes que compõem o
computador.
ORGANIZAÇÃO
Organização de um computador simples da
Máquina de von Neumann.
Organização de Computadores
• O termo “arquitetura de um computador” refere-se aos atributos de um sistema que são
visíveis para o programador ou, em outras palavras, aos atributos que têm impacto direto
sobre a execução lógica de um programa.
• Exemplos de atributos de arquitetura:
• O conjunto de instruções;
• O número de bits usados para representar os vários tipos de dados (por exemplo,
números, caracteres). Uma variável do tipo int ocupa 4 bytes;
• Os mecanismos de E/S e as técnicas de endereçamento à memória (como acessar);
• Processador de 16/32/64 bits;
ARQUITETURA
Organização de Computadores
ARQUITETURA vs ORGANIZAÇÃO
Organização de Computadores
Tritium: Quad Core ARM Computer
with Android/Linux
Organização de Computadores
• Até então, a arquitetura para 32-bit (chamada de X86 por se basear na arquitetura da família
Intel 8086) era a mais avançada.
• Para aproveitar o processamento de 64 bits, além do processador, o sistema operacional, os
drivers e os aplicativos devem ser escritos para 64bits.
• A arquitetura X64 é compatível com 32bit, mas a arquitetura X86 não trabalha com sistemas de
64 bits.
Comparação das Arquiteturas de Memória de 32 bits e 64 bits
• Se você deseja utilizar mais do
que 4GB de memória RAM é imperativo
o uso da arquitetura chamada X64.
• O processador da marca AMD,
Athlon, foi o primeiro a introduzir
o processamento de 64 bits para
micros pessoais.
Organização de Computadores
• Em 1952, o professor John von Neumann, da Univeridade de Princeton, Estados Unidos,
apresentou um projeto inusitado para a arquitetura de um computador. Ele sugeriu que o
computador fosse organizado em componentes, cada um executando apenas uma única tarefa e de
forma muito mais organizada.
• Memória Principal: responsável por armazenar os programas a serem executados, assim como os
dados a serem processados;
• Unidade Lógica e Aritmética (ULA): para realização das operações lógicas e aritméticas;
• Unidade de Controle (R/W): que, baseado nas instruções lidas da memória, enviaria sinais de
controle para a ULA para que a mesma executasse as operações devidas;
• Unidade Central de Processamento (CPU): que agruparia a ULA e a Unidade de Controle;
• Unidade de Entrada e Saída: responsável pela comunicação com os periféricos do computador
(teclado, monitor, memória externa etc.)
Modelo de von Neumann
Organização de Computadores
• John Von Neumann, matemático húngaro (1903-1957), contribuiu para a matemática e a física.
Foi professor da Universidade de Princeton e um dos construtores do ENIAC.
Modelo de von Neumann
Ele sugeriu que o computador fosse organizado em componentes, cada um executando apenas
uma única tarefa e de forma muito mais organizada.
Organização de Computadores
• Fluxograma do ciclo de execução.
Modelo de von Neumann
• O algoritmo começa buscando, na memória principal,
a próxima instrução do programa que será executada.
A unidade de controle é responsável por isso. O
Contador de programa deve ser incrementado para que
a próxima instrução a ser executada seja encontrada.
Em seguida a instrução deve ser decodificada,
identificando primeiramente o seu código. Se a
instrução tiver Operandos, como em uma operação
aritmética, então, é necessário buscar esses
operandos (valores). Para isso é preciso calcular o
endereço do operando, para saber onde ele se
encontra na memória e, somente depois pegar esse
valor e armazenar em registradores para manipulação.
Quando os operandos terminarem de ser buscados e
armazenados, somente então a operação é executada
pela Unidade Lógica Aritmética. Se a instrução não
tiver operandos, a instrução simplesmente é
executada logo após a avaliação da condição.
Organização de Computadores
Modelo de von Neumann – Resumo do Ciclo de Execução
Organização de Computadores
von Neumann vs Harvard
Organização de Computadores
Funções do barramento
Organização de Computadores
Máquinas multiníveis contemporâneas
• Linguagem de máquina - constituída pelo conjunto básico de instruções que são reconhecidas
pelo hardware e, para a qual todo programa precisa ser convertido para que possa ser
executado.
• Tradutor - um programa que converte outros programas para a linguagem de máquina. Pode
ser de três tipos: montador (para a linguagem assembly), interpretador (tradução e
execução passo a passo) e compilador (tradução e execução).
void gotoxy(uchar x, uchar y) {
asm mov ah, 0x02;
asm mov dh, y;
asm mov dl, x;
asm int 0x10;
}
void main() {
gotoxy(0,0);
}
código em Linguagem C
* Referenced by a CALL at Address:
|:0001.0007
|
:0001.000F 55 push bp
:0001.0010 8BEC mov bp, sp
:0001.0012 B402 mov ah, 02
:0001.0014 8A7606 mov dh, [bp+06]
:0001.0017 8A5604 mov dl, [bp+04]
:0001.001A CD10 int 10
:0001.001C 5D pop bp
:0001.001D C3 ret
Código em Assembly
gerado peloTurbo C++
do código em
linguagem C.
Organização de Computadores
Máquinas multiníveis contemporâneas
• Para linguagens completamente compiladas, como C e Fortran, os códigos binários são
executados diretamente pela máquina-alvo. O Java pára a tradução no nível de byte code. A
máquina virtual Java, que está no nível da linguagem assembly, interpreta os byte codes.
Organização de Computadores
Máquinas multiníveis contemporâneas
• Nível 0: Nível da Lógica Digital
• Nível mais baixo da estrutura
• Objetos de interesse são conhecidos como portas lógicas
• Cada porta lógica tem 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam funções
lógicas simples sobre essas entradas. Exemplo: AND, OR, XOR,etc
• Portas lógicas são combinadas para formar o Processador - principal dispositivo do
computador
• Nível 1: Nível da Microarquitetura
• Enxergamos uma memória local (8 a 32 registradores) e a UAL (Unidade Aritmética Lógica)
que realiza operações aritméticas muito simples
• Os registradores são conectados a UAL formando o caminho dos dados
• Operações são controladas por um microprograma ou diretamente por hardware
• Microprograma é um interpretador para as instruções do nível 2.
Organização de Computadores
Máquinas multiníveis contemporâneas
• Nível 2: Nível da Arquitetura do Conjunto de Instruções (ISA - Instruction Set Architeture)
• Definida pelo fabricante e dependente da arquitetura da máquina.
• Fabricantes disponibilizam "Manual de Referência da Linguagem de Máquina" ou "Princípios
de operação do Computador Modelo XYZ4W),ou algo similar.
• Manuais descrevem como as instruções são executadas interpretativamente pelo
microprograma ou como elas são executadas diretamente pelo hardware.
• Essas informações são necessárias para os desenvolvedores de sistemas operacionais.
• Nível 3: Nível do Sistema Operacional
• Instruções da linguagem deste nível também podem conter instruções do nível ISA.
• Suporta uma organização diferente de memória.
• Suporta capacidade de rodar 2 ou mais programas simultaneamente.
• Suporta sistemas de comandos ou de janelas (windows).
• Programadores deste nível, e também dos níveis mais baixos, são conhecidos como
programadores de sistema. Os programadores dos níveis mais altos que este são chamados
programadores de aplicação.
Organização de Computadores
Máquinas multiníveis contemporâneas
• Nível 4: Nível da linguagem do montador ou de montagem (Assembly language)
• Linguagem de montagem: forma simbólica de representação das linguagens do nível mais
baixo.
• Programas nessa linguagem são primeiro traduzidos para as linguagens dos níveis 1, 2 e 3
e depois interpretados pela máquina virtual apropriada ou pela própria máquina real.
• Programa que realiza essa tradução é chamado de montador.
• Nível 5: Nível das linguagens orientadas para solução dos problemas
• Conhecidas como linguagens de alto nível. Exemplos Basic, C, Pascal, Java, LISP, etc.
• Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores.
• Alguns são interpretados: Exemplo: programas em Java, MatLab, ...
Organização de Computadores
Máquinas multiníveis contemporâneas
Um programa em código de máquina é um arquivo binário. Como
tal, não pode ser visualizado em um editor de texto.
Organização de Computadores
Exemplo:
arquivo batch (.bat)
arquivo batch (.bat)
Arquivo em Linguagem C.
Compilar: gcc arquivo.c –o arquivo.executável
Organização de Computadores
• gcc –v –help|more
•
• gcc –c principal.c funcao.c
• gcc –o calculadora.exe principal. funcao.o
• gcc –v principal.c -> exibir informações detalhadas sobre a sequência exata de comandos usados para compilar
e vincular um programa.
• gdb .... -> para Debugar
• Listar processos:
• tasklist /FI "IMAGENAME eq calcula.exe“
• taskkill /F /pid 5808
• taskkill /f /im calcula.exe
Exemplo – compilação em C com módulos
Organização de Computadores
• O objetivo de um sistema operacional é executar
aplicativos do usuário. Mas o sistema operacional não
pode fornecer controle total aos aplicativos do
usuário devido a razões de segurança. Portanto, para
executar algumas operações privilegiadas, os
aplicativos devem solicitar ao SO que faça o trabalho
por conta própria.
Organização de Computadores
Estrutura (monolítica) do Linux
Organização de Computadores
Representação de informações
Bit / Byte;
Sistemas de numeração:
binário;
decimal;
octal;
hexadecimal.
Decimal - dez algarismos utilizados para a representação (0 a 9);
Binária - Algarismos ‘0’ e ‘1’;
Octal - Algarismos ‘0’ a ‘7’;
Hexadecimal - Algarismos ‘0’a ‘9’ e letras de ‘A’ a ‘E’.
Organização de Computadores
Conversão de bases
Exemplo: Converter (13)10 para a base binária
13 /2 = 6 (novo dividendo), resto 1
Resultado parcial: 1
6/2 = 3 (novo dividendo), resto 0
Resultado parcial: 01
3/2 = 1 (novo dividendo), resto 1
Resultado parcial:101
Como o último dividendo(1) é menor do que o divisor (2), ele é simplesmente colocado à
esquerda do resultado parcial 1101
Organização de Computadores
Exercícios
1-Dentre as primeiras calculadoras e os primeiros computadores (eletrônicos) a utilizarem
válvulas, destacamos:
a) ENIAC, na Universidade da Pennsylvania;
b) IBM 603, 604, 701 e SSEC;
c) EDSAC, na Universidade de Cambridge;
d) UNIVAC I, de Eckert e Mauchly.
2-Desenhe a arquitetura proposta por Von Neumann (estrutura básica de um computador).
3-Segundo a arquitetura de Von Neumann, os computadores possuem quatro componentes
principais. Cite-as. Unidade Central de Processamento (UCP) – composta pela Unidade Lógica e
Aritmética (ULA) e a Unidade de Controle (UC), a memória e os dispositivos de entrada e saída
4- O que faz o sistema operacional?
Administra todos os recursos do computador, ou seja, o software e o hardware. É a estrutura
que sustenta e administra todos os programas e partes do computador.
5- Explique o fluxo o ciclo de execução da máquina de Von Neumann.
Organização de Computadores
Pesquisar
1- O que é Compilador
2- O que é Tradutor
Organização de Computadores
ARQUITETURA HAVARD
• Arquitectura de Harvard: baseia-se em um conceito mais recente que a de Von Neumann, tendo
surgido da necessidade de se pôr o microcontrolador para trabalhar mais rápido. É uma
arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e
independentes em termos de barramento e ligação ao processador.
• Separação de barramentos de dados das memórias onde
estão as instruções de programa e das memórias de
dados, permite que um processador possa acessar as duas
simultaneamente, obtendo um desempenho melhor do que a
da Arquitetura de Von Neumann, pois pode buscar uma
nova instrução enquanto executa outra. Esse processo é
conhecido como pipeline (canalização).
• Possui um conjunto menor de instruções que a de Von
Neumann, e essas são executadas apenas num único ciclo
de relógio.
Organização de Computadores
ARQUITETURA HAVARD (RISC) vs ARQUITEURA VON NEUMANN (CISC)
• Os microcontroladores com arquitetura Havard são também conhecidos como "microcontroladores
RISC" (Computador com Conjunto Reduzido de Instruções);
• Os microntroladores com uma arquitetura Von-Neumann, de "microcontroladores CISC"
(Computador com um Conjunto Complexo de Instruções).
• Os computadores atuais misturam as duas arquiteturas, criando o conceito de arquitetura
híbrida
Organização de Computadores
• ISA (Instruction Set Architeture):
• É o repertório de instruções de um computador.
• Quais as instruções que posso executar; como acessar a memória;
• Diferentes computadores possuem ISA diferentes. Mas com aspectos comuns;
• Diferentes implementações para um mesmo ISA. Exemplo da intel: i3, i5, i7.
Arquitetura do Conjunto de Instruções (ISA)
O nível ISA é a interface entre os compiladores e o
hardware.
Organização de Computadores
Arquiteturas CISC x RISC
• CISC - ADD A, B, C // C = A + B
tem três instruções.
• RISC - Exige cargas de memória
de forma explícita, as instruções
seriam:
• LOAD A, Reg1
• LOAD B, Reg2
• ADD Reg1, Reg2
• STORE Reg2, C //C = A + B
tem quatro instruções.
Organização de Computadores
Unidade Central de Processamento - CPU
* PSW - Registradores de controle e estado da CPU.
Organização de Computadores
Instruções
** Lembram do algoritmo?
*** executa instruções/comandos ordenados. O desvio condicional quebra a sequência de execução.
Organização de Computadores
• Níveis de Privilégio: Modos Usuário X Supervisor (kernel)
• Arquiteturas modernas permitem a operação do processaror em dois (ou mais) níveis/modos
de privilégio da CPU:
• Modo supervisor/kernel: tem acesso a todas as instruções de máquina e regiões da
memória;
• Modo usuário: apenas um conjunto restrito de instruções de máquina e acesso controlado à
memória (apenas a certos endereços da memória)
ISA – MODOS DE EXECUÇÃO
Organização de Computadores
• As Arquiteturas de Computadores com Paralelismo surgiram com o objetivo de aumento do
desempenho dos computadores e devido ao ao fato de que, a limitação de um único processador
não poder aumentar indefinidamente seus recursos computacionais, como por exemplo a
frequência ou pela limitação da miniaturização dos circuitos, daí a busca por paralelismo em
outros níveis da arquitetura de um computador que não somente pela alteração do processador.
Assim o paralelismo podeser pensado para ser introduzido em vários níveis:
• Paralelismo por Múltiplas CPUs;
• Paralelismo a nível de CHIP;
• Adição de processadores especializados;
• Multiprocessadores;
• Multicomputadores;
Paralelismo
Organização de Computadores
• Uma das estratégias de Arquitetura com paralelismo foi introduzir o paralelismo com
soluções de processamento de múltiplas CPUs. Esta abordagem consideradas o acoplamento das
CPUS como importante, tendo portanto as duas possibilidades de processamento com múltiplas
CPUS:
• As CPUs Fortemente aclopadas – devido a proximidade das CPUs. É o caso de sistemas
multicore os quais possuem mais de um núcleo, CPU que estão contudo no mesmo hardware,
portanto fortemente acoplados.
• As CPUs Fracamente aclopadas – devido a distância entre CPUs. É o caso de computação em
grid onde temos vários computadores independentes que são interligados por uma ou mais redes
e que trabalham colaborativamente para atender a um processamento específico.
Paralelismo com Processamento de Multiplas CPUs
Organização de Computadores
Paralelismo com Processamento de Multiplas CPUs
Organização de Computadores
• Um modo de aumentar a produtividade de CHIP é conseguir que ele faça várias tarefas ao
mesmo tempo. Duas técnicas são utilizadas:
• Multithreading - É a capacidade de um programa ou de um processo de sistema operacional
para gerenciar o seu uso por mais de um usuário ao mesmo tempo e até mesmo gerenciar vários
pedidos pelo mesmo usuário sem ter que ter várias cópias da programação em execução no
computador.
• Multicore - Um processador multi-core é um componente de computação único com duas ou mais
unidades centrais de processamento que atuam de forma independente (chamados "núcleos" ), que
são as unidades que ler e executar as instruções do programa. Os múltiplos núcleos pode
executar várias instruções ao mesmo tempo, aumentando a velocidade geral para programas
passíveis de computação paralela .
• Processadores foram originalmente desenvolvidos com apenas um núcleo. Os processadores
multi -core foram desenvolvidos no início de 2000 pela Intel , AMD e outros.
Paralelismo por CHIP
Organização de Computadores
Exemplo
Organização de Computadores
• O paralelismo de instrução é baseado na execução simultânea de mais de uma instrução pela
CPU, sendo cada instrução em um estágio diferente do ciclo de instruções.
Paralelismo a nível de instrução (Pipeline)
Organização de Computadores
• Esse tipo de paralelismo é uma técnica que busca o ganho de desempenho associando duas ou
mais CPUs organizados para executar uma determinada tarefa. São usadas as seguintes técnicas:
• Computadores matriciais (Matriz de processadores dedicados)
• Multiprocessadores (Conjunto de processadores independentes)
• Multicomputadores (Clusters)
• Esse tipo de paralelismo é uma técnica que une CPUs, que estão fracamente acopladas,
utilizando-se da troca de mensagens para execução de uma determinada tarefa.
Paralelismo a nível de Processador
Organização de Computadores
• Computadores matriciais (Matriz de processadores dedicados)
Paralelismo a nível de Processador
Organização de Computadores
• Multiprocessadores (Conjunto de processadores independentes)
Paralelismo a nível de Processador
• O código do SO é compartilhado, mas são independente.
• Não permite compartilhamento de processos (o processo de um usuário só roda na CPU1 enquanto a CPU2
pode estar ociosa)
• Alocação de memória fixa
• Caches independentes
• Modelo dificilmente usado
Organização de Computadores
• Multicomputadores (Clusters)
Paralelismo a nível de Processador
• Esse tipo de paralelismo é uma
técnica que une CPUs, que estão
fracamente acopladas, utilizando-se da
troca de mensagens para execução de
uma determinada tarefa.
Organização de Computadores
Hierarquia de Memória
• Para uma maior eficiência na referência à memória, a mesma é estruturada hierarquicamente.
• Informações referidas com maior frequência são trazidas “mais perto” da CPU, armazenadas em
memórias mais rápidas, (também mais caras, o que implica em menor capacidade de armazenamento).
Rgistradores
Organização de Computadores
Registradores
• São dispositivos (elementos computacionais) capazes de receber dados, mantê-los armazenados
por uma curto período de tempo e transferi-los para outro dispositivo.
• São, portanto, elementos de armazenamento temporário.
• Os registradores fazem parte da CPU.
• São extremamente rápidos e armazenam grupos reduzidos de bits..
Organização de Computadores
Memória Cache
• A memória cache é geralmente controlada por hardware.
•Armazena os dados mais usados pelo processado reduzindo o número de operações em que é
preciso buscar dados diretamente na memória RAM. Mesmo uma pequena quantidade de memória
cache é capaz de melhorar bastante o desempenho do processador
• Geralmente o cache é divido em dois níveis, chamados de cache L1 (level 1) e cache L2.
• O nível 1 é implementado dentro do chip.
• O nível 2 implementado na placa mãe.
Organização de Computadores
Memória Principal
• Memória é a parte do computador que armazena os dados e programas em linguagem de máquina
em execução corrente.
• Razoavelmente barata.
• Tempo de acesso da ordem de nanossegundos a dezenas de nanossegundos.
• Frequência de acesso alta. Se não existisse a memória Cache, seria acessada a cada ciclo
de busca-decodificação-execução.
• A CPU processa instruções que são obtidas na memória principal (MP) e os resultados são
retornados para a mesma (MP).
• O endereço identifica a palavra na memória, e é usado tanto para armazenar (store) como
para carregar (load).
Organização de Computadores
Memória Principal
• A unidade básica de memória é o bit (binary digit)
• Abstração de valores 0 ou 1
• A memória é formada por um conjunto de células (ou posições), cada uma das quais podendo
guardar uma informação.
• Todas as células de uma dada memória têm o mesmo número de bits
• Os números que identificam (referenciam) a posição da célula na memória são chamados de
Endereços.
• A célula é a menor unidade endereçável da memória.
• Endereços são indexadores pelos quais os programas podem referenciar dados na memória.
Organização de Computadores
Memória Principal
• A célula constitui o seu endereço.
A célula é formada pelos componentes eletrônicos:
Transitor e capacitor.
Organização de Computadores
Memória Principal – Ordenação dos Bytes
• Os bytes de uma palavra podem ser ordenados na memória da esquerda para a direita OU da
direita para a esquerda
• Big Endian: Os bytes mais significativos primeiro (Mac). Quando a numeração dos bytes
começa da esquerda para a direita da palavra.
• Little Endian: Os bytes menos significativos primeiro (Intel). Quando a numeração dos bytes
começa da direita para a esquerda da palavra.
• No projeto de cada computador é definida a organização da memória.
Organização de Computadores
Tipos de Memória
Organização de Computadores
• Os dados armazenados na memória dos computadores podem ocasionalmente serem alterados
(modificados). Exemplo: Por oscilações de tensão de alimentação, etc.
• Para a prevenção desses erros, algumas memórias armazenam informações extras, usando
códigos e mecanismos que permitam a detecção e/ou correção de erros.
Código com Correção/Deteção de Erros
Organização de Computadores
• RAMs Estáticas (SRAM). Mais rápidas (usada como memória cache), baseado em flip´flops.
• RAMs Dinâmicas (DRAM). Baseada em capacitores. Carga deve ser restaurada periodicamente
• ROM (Read-Only Memory).
• PROM (Programmable ROM). Conteúdo escrito com um “queimador” de PROMs
• EPROM (Erasable ROM). Apagadas e reutilizadas pelo uso de radiação ultravioleta.
• EEPROM (Electrically Erasable PROM). Conteúdo pode ser modificado eletricamente
• Memória FLASH.Ex: Player MP3, celulares, câmeras digitais.
• Encapsulamento de Memória Principal
• SIMM (Single Inline Memory Module). Adequado para barramento 32 bits. Apenas um lado.
• DIMM (Dual Inline Memory Module). Adequado para barramento de 64 bits. Ambos os lados.
Pesquisa – Tipos de Memória
Organização de Computadores
• Memória de grande capacidade (dezenas de Gigabytes).
• Armazenamento massivo.
• Implementada em meio magnético (hard disk, fitas magnéticas) ou ótico (CD-ROM, DVD-ROM).
• Armazena programas e dados não processados correntemente, mas que poderão eventualmente ser
utilizados.
• Memória lenta e barata. Tempo de acesso da ordem de milissegundos.
• Pode também ser utilizada para emular memória principal, “aumentando” o espaço de
endereçamento disponível através de técnicas de memória virtual (Segmentação/Paginação).
• Memórias que não podem ser endereçadas diretamente, isto é, a informação precisa ser
carregada em memória primária antes de poder ser tratada pelo processador. Adequado para
barramento de 64 bits. Ambos os lados.
Memória Secundária – Não volátil
Organização de Computadores
Memória Secundária – Barramento (bus) E/S
• Barramento: É o barramento entre a CPU e os outros componentes (os periféricos) de entrada-
saída ou I/O Este tipo de barramento é responsável pela interligação das interfaces e
periféricos ligados à placa mãe.
• Controlador de Dispositivo: conjunto de circuitos lógicos de interface entre o barramento e
o dispositivo de entrada/saída. Responsável por controlar o dispositivo e por tratar do seu
acesso ao barramento.
Todo o acesso a memória secundária, resulta no roubo de ciclo de barramento do processador, reduzindo o
desempenho.
Organização de Computadores
• Entrada e Saída (Input/Output – I/O)
Memória Secundária – Barramento E/S
Função geral:
• Servem para a comunicação do computador com o meio externo.
• Entrada: entrada (inserção) de dados por meio de algum código (ex: programa).
• Ex: teclado, mouses, scanners, leitoras óticas, leitoras de cartões magnéticos, câmeras
de vídeo, microfones, sensores, transdutores, etc
• Saída: retorno de dados, como resultado de alguma operação de algum programa.
• Ex: Impressoras, monitores de vídeo, plotters, atuadores, chaves, etc ...
Organização de Computadores
• Barramentos de Entrada/Saída (I/O)
• IDE - Integrated Drive Electronics.
• (E)IDE - (Extended) Integrated Drive Electronics.
• ATAPI - Advanced Technology Attachment Packet Interface.
• SCSI - Small Computer System Interface.
• SATA -serial ATA.
• PATA - Parallel ATA. usado para barramento de 64 bits. Ambos os lados.
• Barramento AGP. Para placas de vídeo para processar fráficos.
• Barramento PCI Express. Substitui os padrões AGP e PCI, até 32x mais rápido.
• Barramento PS/2.
• Barramento USB (Plug and Play/Hot-Swap).
Pesquisar
Organização de Computadores
Alguns tipos de Barramentos I/O
Barramento ATA Barramento SATA
Barramento PCI
Barramento AGP
Barramento PS/2
USB-Universal Serial Bus
Organização de Computadores
Tabela ASCII
Os computadores atuais apenas armazenam
informação em valores que estão
codificados em código binário, em formato
de zeros e uns. Para se codificar um
texto, é necessário que se adote um valor
binário para cada caracter, letra ou
número do alfabeto. O código mais simples
utilizado em sistemas computacionais é o
código ASCII (Sigla de American Standard
Code for Information Exchange). A primeira
padronização que resultaram na tabela
Ascii é de 1963, com a inclusão de letras
minúsculas no padrão. A versão atual do
código ASCII é a ANSI X3.4 de 1986.
https://www.embarcados.com.br/tabela-
ascii/?utm_source=nl318&utm_medium=e-
mail&utm_campaign=Newsletter%20318
Organização de Computadores
Nível de lógica digital
Organização de Computadores
Até a próxima aula
Organização de Computadores
BÔNUS
Organização de Computadores
Aula Bônus
• Esta aula bônus é destinado a turma do 1º semestre de cursos como Ciência da computação e
Análise de Desenvolvimento de Sistemas para que possam servir como um guia motivacional aos
primeiros passos nessa área.
• Tem como objetivo apresentar os princípios "introdutórios" da programação de computadores,
utilizando:
* O XAMPP que é uma distribuição APACHE de fácil instalação.
* A linguagem PHP;
* O banco de dados MariaDB (MySQL)
* O phpMyAdmin aplicativo Web para gerenciamento da base de dados.
• Não tem pretenção de cobrir todos os assuntos relacionados à área de programação.
• O código apresentado é meramente didático, fica registrado que existem melhores práticas de
desenvolvimento.
http://br.phptherightway.com/
Organização de Computadores
O que é o PHP
• O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem de script
open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento
web e que pode ser embutida dentro do HTML.
• O que distingue o PHP de algo como o JavaScript no lado do cliente é que o código é
executado no servidor, gerando o HTML que é então enviado para o navegador. O navegador
recebe os resultados da execução desse script, mas não sabe qual era o código fonte. Você
pode inclusive configurar seu servidor web para processar todos os seus arquivos HTML com o
PHP, e então não há como os usuários dizerem o que você tem na sua manga.
• A melhor coisa em usar o PHP é que ele é extremamente simples para um iniciante, mas oferece
muitos recursos avançados para um programador profissional. Não tenha medo de ler a longa
lista de recursos do PHP. Pode entrar com tudo, o mais rápido que puder, e começar a escrever
scripts simples em poucas horas.
Extraído: https://www.php.net/manual/pt_BR/intro-whatis.php
Um simples tutorial: https://www.php.net/manual/pt_BR/tutorial.php
https://www.php.net/manual/pt_BR/intro-whatis.php
https://www.php.net/manual/pt_BR/intro-whatis.php
https://www.php.net/manual/pt_BR/intro-whatis.php
Organização de Computadores
Aula Bônus – Ideia do projeto
Organização de Computadores
Tutorial de execução
1. Baixar e instalar a distribuição XAMPP - https://pt.wikihow.com/Instalar-o-XAMPP-para-Windows
2. Instale um editor de texto de sua preferência.
3. Definir a base de dados:
1. Abra o navegador e digite: http://localhost/phpmyadmin/
4. Abrir o editor e mão na massa. :)
http://localhost/phpmyadmin/
http://localhost/phpmyadmin/
http://localhost/phpmyadmin/
Organização de Computadores
Conceitos SQL – Criar banco de dados e tabelas
https://www.w3schools.com/php/php_mysql_create_table.asp
Organização de Computadores
Arquivo: config.php
Organização de Computadores
index.php
Organização de Computadores
add.html
Organização de Computadores
add.php
Organização de Computadores
delete.php
Organização de Computadores
edit.php
Organização de Computadores
Continuação do
código do arquivo:
edit.php
Organização de Computadores
Até a próxima aula