Você está na página 1de 33

Aula 1

Definições: Segundo Tanenbaum

Computador: máquina para solucionar problemas através da execução de instruções


Programa: transmite as instruções. Édefinido como uma sequência de instruções descritivas
de execução

Definições:

Linguagem de Máquina
Circuitos eletrônicos reconhecem e executam diretamente um conjunto limitado de instruções
simples
Para escolher instruções:
• simplicidade
• consistência
• desempenho
• Sua utilização é tediosa/ complexa
Outra linguagem de uso mais simples e agradável através de 2 métodos:
• tradução
• interpretação

Definições: Máquinas Multinível Contemporâneas

Histórico e Evolução dos Computadores


Gerações de Computadores

0 – Mecânicos (1642 – 1945)


1 – Válvulas (1945 – 1955)
2 – Transistores (1955 – 1965)
3 – Integração (1965 – 1980)
4 – Muita Integração (1980 – ?)
5 – Computadores Invisíveis (Atuais)

Geração 0 – Mecânicos (1642 – 1945)


-Surgiram no século XVII,
-Compostos exclusivamente por elementos mecânicos
-Grande rigidez nos programas a executar hoje máquina dedicada

Geração 1 – Válvulas

• Válvulas – a primeira geraçãode


computadores modernos
• Muito tempo para aquecer e altoconsumo de energia
elétrica
• Grandes, porém frágeis

• Manutenção cara e a programação feitacom a ligação de fios ou cartões


• Circuitos interligados
• por quilômetros de fios instalados manualmente
• Atingiram velocidades na ordem de milissegundos (1/1.000)
• Colossus (1943)
-Projeto militar
- 1º computador digital

John Mauchley (1907 – 1980) e Presper Eckert (1919 – 1995) construíram o ENIAC em 1946
1º computador eletrônico
-18.000 válvulas e 1.500 relés
-30 toneladas / 20 registradores
-Consumia 140 quilowatts
-Programação em 6.000 chaves
Arquitetura de Von Neumann - Considerado o “pai” do computador:
ENIAC e a Arquitetura de von Neumann. Disponível em:
<https://www.youtube.com/watch?v=egPA39zBDys>.
Colaborador do projeto ENIAC, matemático John von Neumann (1903 – 1957) perfeiçoamento
do ENIAC, o IAS.
É creditada a von Neumann a definição de uma arquitetura de computadores com programa
armazenado, utilizado até hoje.

-utilização de aritmética binária


organização em quatro unidades
- memória
- unidade aritmética e lógica
-unidade de controle
-parte de E/S

Características básicas do IAS:

-fundamental no estudo, as especificações continuam válidas


-memória 1.000 posições (palavras) com 40 bits
-dados e instruções representados em binários
-armazenados (memória)

21 instruções de 20 bits,
2 campos 8 bits (cod. de operação); 1 campo de 12 bits,(endereços de 000 a 999)
Modo repetitivo, cada ciclo com dois subciclos:
ciclo de busca
ciclo de execução

Geração 2 – Transistores
Eletrônica moderna: surgiu em 1947, John Bardeen (1908-1991), Walter Brattain (1902-1987),
e
William Shockley (1910-1989), Bell e (AT&T) criaram o transistor.-A DEC lançou PDP-1
-Unidades aritméticas e lógicas e de controle mais complexas
-Linguagens de programação de nível superior
-CDC (1964) o CDC 6600 voltado para o processamento científico

Geração 3 – Circuitos Integrados


• Família de computadores
• Unidade de controle com microprogramação
• Multiprogramação
• Processamento 32 bits
• Memória principal (16KB)
• Sistema operacional
Robert Noyce e Gordon Moore fundaram em 1968 a Intel Corporation –
Lei de Moore Marcian E. Hoff Jr. criou o Intel 4004 – 4 bits e 108 KHz, 2.300 transistores,
60.000 operações/s
Geração 4 – Muita Integração

• Escala de Integração
• Desde 1980
• Miniaturização dos componentes internos e avanços relacionados com a integração
• Quantos transistores podem integrar um único chip?

Aplicação
Arquitetura e Organização de Computadores
IAS – Máquina de Von Neumann
Descreva seus componentes
1-Hardware de entrada e saida
2-Unidade Central de Processamento
3-Unidade Lógica e Aritimetica
4-Unidade de Controle
5-Dados e Instruções
6-Memoria Principal

Aula 2

Visão Geral – Computadores


Tanenbaum descreve um computador digital como um sistema interconectado de:
-Processadores (CPU)
-Memórias
-Dispositivos de E/S
-Conceitos fundamentais
-Presentes em todos níveis
-Definidos/estudados individualmente
Instrumentalização

Vídeo: Processadores (CPU)


https://youtu.be/65rBjL4k7 2s

Processadores (CPU)

-Unidade Central de Processamento “o cérebro” do computador

-Função de executar as instruções armazenadas na memória sequencialmente

-Componentes da CPU interconectados por um barramento

-Barramentos podem ser internos e externos à CPU, como ilustra a figura a seguir

Composta por várias partes distintas:


UC – Unidade de Controle
ULA – Unidade lógica e aritmética

Registradores
PC – Program Counter
IR – Instruction Register

Organização da CPU
-Caminho de Dados composto por:
-Registradores (1 a 32)
-ULA (Unidade Lógica e Aritmética)
Efetua operações simples
-Diversos barramentos

Ciclo do Caminho de Dados – é “o coração” da maioria das CPUs


-Define o que a máquina pode fazer
-Quanto mais rápido for o ciclo mais rápido será o funcionamento da máquina

Execução de Instrução
CPU executa cada instrução em série de pequenas etapas

Essa sequência de etapas é denominada:


buscar-decodificar-executar

As etapas são:

1-Trazer a próxima instrução da memória até o registrador


2-Alterar o contador de programa para indicar a próxima instrução
3-Determinar o tipo de instrução trazida
4-Se a instrução usar uma palavra na memória, determinar onde esta palavra está (na
memória)
5-Trazer a palavra para dentro de um registrador da CPU, se necessário
6-Executar a Instrução
7-Voltar a etapa 1 para iniciar a execução da instrução seguinte

RISC versus CISC

CISC – Complex Instruction Set Computer(Computador de conjunto de instruções complexas)


-Conjunto de instruções grande, de tamanhos variáveis, com formatos complexos
-Executa múltiplas operações quando uma única instrução é dada

RISC – Reduced Instruction Set Computer


-Simplifica as instruções para executar mais rapidamente
-Cada instrução executa apenas uma operação
-São todas do mesmo tamanho
-Tem poucos formatos
-Operações aritméticas são executadas entre registradores
Memorias

-Sem memória de leitura/escrita de informações pela CPU não há computador


digital com programa armazenado

-Velocidade versus Capacidade: problemaeconômico e não tecnológico


Memória Primária
-É a parte do computador responsável pelo armazenamento de dados e programas
-Sem uma memória de leitura/ gravação, não há computador digital com programa
armazenado
Registradores
Recebem dados, armazenam por pouco tempo e os transferem a outro dispositivo
Armazenamento temporário
Fazem parte da CPU
Extremamente rápidos e capacidade reduzida
Memória Cache
-Memória rápida e pequena Do francês cacher, que significa “esconder”
-Arquitetura Harvard
Cache unificada
Cache dividida
Memória Secundária
-Capacidade de armazenamento
-da memória principal sempre pequena
-Não endereçadas diretamente
-Dados vão para a memória primária antes da CPU executá-los
-Armazenamento de dados a longo prazo –não volátil
-Sistemas operacionais modernos utilizam a memória virtual para expandir a memória
principal
Entrada/Saída

Entrada/Saída
I/O (Input/Output)
Responsável pela transferência:
de dados externos para o computador (entrada)
do resultado do processamento “informação” para o usuário (saída)
Características das E/S
-Velocidade de transferência muito variável
-Atividades de E/S são assíncronas
-Qualidade dos dados pode ser incerta
-Transferências podem ser interrompidas (pausa)
Barramento
-Responsável pela comunicação entre os elementos computacionais

-MotherBoard (placa mãe) é o arranjo usual


-DMA (Direct Memory Access) – controlador lê/escreve dados de/para memória sem a CPU
(acesso direto a memória)
Barramento
-ISA (Industry Standard Architeture) - arquitetura padrão da indústria – padrão IBM, antigo e
pioneiro na integração de dispositivos diversos
-EISA (Extended ISA) – ISA estendido – com múltiplas conexões
-PCI – Peripheral Component Interconnect) – interconexão de componentes periféricos.
Produzido pela Intel que o tornou de domínio público
-PCIe – PCI Express – sucessor do PCI, mais veloz. Não é barramento, é conexão direta.
Linha de bits seriais
Aula 3

Lógica Digital
• Álgebra de Boole
• Funções
• Operadores e Operações
• Portas
• Propriedades

Álgebra de Boole
A Álgebra de Boole é aplicável ao projeto dos circuitos lógicos e funciona baseada em
princípios da lógica formal, uma área de estudo da filosofia.
Um dos pioneiros no estudo da lógica formal foi Aristóteles (384-322 AC), que publicou um
tratado sobre o tema denominado "De Interpretatione".
Boole percebeu que poderia estabelecer um conjunto de símbolos matemáticos para substituir
certas afirmativas da lógica formal. Publicou suas conclusões em 1854 no trabalho. “Uma
Análise Matemática da Lógica”
Claude B. Shannon mostrou (em sua tese no MIT) que o trabalho de Boole poderia ser
utilizado para descrever a operação de sistemas de comutação telefônica. As observações de
Shannon foram divulgadas em 1938 no trabalho "Uma Análise Simbólica de Relés e Circuitos
de Comutação".
-Desenvolvida pelo matemático britânico George Simon Boole (1815 – 1864) para estudo da
lógica.
-Definida sobre um conjunto de dois elementos: (0, 1) (baixo, alto) (falso, verdadeiro)
-Seus elementos, a princípio, não tem significado numérico.
-Postulados: se x é uma variável booleana então:
• Se x ≠ 0 => x = 1
• Se x ≠ 1 => x = 0

Lógica Digital - Funções


• Uma variável booleana só pode assumir apenas um dos valores possíveis (0 e 1)
• Uma ou mais variáveis e operadores podem ser combinados formando uma função
lógica
Z1(A) = f(A) = ...
(expressão usando var. A)

Z2(A,B) = f(A,B) = ...


(expr. usando var. A e B)
Resultados de uma função lógica podem ser expressos numa tabela relacionando todas as
combinações possíveis dos valores que suas variáveis podem assumir e seus resultados
correspondentes: a Tabela-Verdade.

A Tabela Verdade
• Tabela Verdade relaciona os resultados (saída) de uma função lógica para todas as
combinações possíveis de suas variáveis (entrada).

• Na Tabela Verdade apresentada a função lógica Z possui duas variáveis A e B, sendo

Z = f(A, B) = A + B

Operações e Operadores
-São definidas algumas operações elementares (básicas) na álgebra booleana:
• Operação “Não” (NOT)
• Operação “E” (AND)
• Operação “Ou” (OR)
-Definidas também algumas operações complementares na álgebra booleana:
• Operação NAND
• Operação NOR
• Operação “Ou-Exclusivo” (Exclusive-Or ou XOR)
• Operação XNOR

As variáveis booleanas são repre- sentadas por letras maiúsculas, A, B, C,... e as funções pela
notação f(A,B,C,D,...)
Portas Lógicas
Precedência das Operações

O uso de parêntesis altera a precedência “normal” dos operadores, como na álgebra comum.
Portas Lógicas Fundamentais
Porta Lógica NOT
É a porta Inversora ,
Operador: Barra, Apóstrofe A, A

Porta Lógica AND


Requer duas ou mais entradas
Operador: (F = A . B)
Porta Lógica OR
Requer duas ou mais entradas
Operador: + (F = A + B)

Portas Lógicas Secundárias


Porta Lógica NAND
Equivalente a porta AND seguida de uma NOT
Operador: . (F = A . B)`

Porta Lógica NOR


Equivalente a porta OR seguida de uma NOT
Operador: (F = A + B)`
Porta Lógica XOR
É o OR (OU) Exclusivo
Operador: (F = A  B)

Porta Lógica XNOR


É o complemento da porta XOR
Operador: (F = A  B)`

Lógica Digital – Propriedades


Sendo A, B e C variáveis booleanas
Propriedade Comutativa
A.B=B.A
A+B=B+A
A?B=B?A
Propriedade Distributiva
A . (B + C ) = A . B + A . C
A + B . C = (A + B) . (A + C)

Propriedade Associativa
(A.B).C=A.(B.C)=A.B.C
(A+B)+C=A+(B+C)=A+B+C
(A?B)?C=A?(B?C)=A?B?C

Propriedades (Leis) de Absorção


A + A.B = A
A + A’.B = A + B
(A + B’).B = A.B

Identidades importantes
A.B + A.B’ = A
(A + B) . (A + B’) = A
A.(A + B) = A
A.(A’ + B) = AB
A.B + A’.C = (A + C) . (A’ + B)

Identidades
Dualidades
Princípio Especial (álgebra booleana)
Para uma equação booleana qualquer, ao trocar as operações E (.) e operações OU (+) entre
si assim como valores 0 e 1 entre si, obtém-se uma equação igualmente válida.
Dualidades

Equivalência de Operações
Qualquer função lógica pode ser expressa em termos das operações AND, OR e NOT

SINTESE
Lógica Digital
-Álgebra de Boole
-Funções
-Operadores e Operações
-Portas
-Propriedades

-Computadores são construídos com base em chips de circuito integrado que contêm
minúsculos elementos comutadores denominados portas.
-As portas mais comuns são AND, OR, NAND, NOR, e NOT. Circuitos Simples podem ser
montados ao se combinar diretamente portas individuais.
-Circuitos mais complexos são multiplexadores, demultiplexadores, codificadores,
decodificadores, deslocadores e ULA.
-As leis da álgebra booleana podem ser usadas para transformar circuitos de uma forma para
outra. Em muitos casos é possível produzir circuitos mais econômicos dessa maneira.

Aula 4
Microprocessadores
• Introdução à microprogramação
• Microprocessadores
• Caminho de dados
• Watchdog
Microprocessamento
• Poucas inovações significativas na AOC desde o primeiro computador com programa
armazenado na memória (1950)
Unidade de controle microprogramada
• Um dos maiores avanços desde o nascimento do computador
• Sugerida por Wilkes (1951)
• Introduzida pela IBM S/360 (1964)
Maurice Vincent Wilkes (26 Junho 1913 – 29 Novembro 2010)

A microprogramação facilita a tarefa de projetar e implementar a unidade de controle e oferece


suporte para o conceito da “família de computadores”
Microarquitetura
• Microarquitetura é o nível acima do lógico digital
• Função de implementar o nível ISA acima dele
• O projeto de microarquitetura depende da ISA e das metas de custo/desempenho do
compilador
• ISAs modernas, (ex.: RISC) têm instruções simples (executadas em ciclo único)
• Executar uma instrução pode requerer várias operações
• A sequência de operações leva a uma abordagem do controle diferente das de ISAs
simples

Famílias de Computadores
Wilkes, em 1951, sugeriu unidade de controle microprogramada
• Um dos maiores avanços desde o nascimento do computador
• Introduzida pela IBM na linha Sytem/360 em 1964
• A microprogramação facilita a tarefa de projetar e implementar a unidade de controle e
oferece suporte para o conceito da família de computadores.
• Além da IBM, a DEC (PDP-8) também introduziu o conceito de família de computadores
que desvincula uma arquitetura de máquina de suas implementações
• Integradores disponibilizam ao mercado computadores com a mesma arquitetura mas
com desempenho e preço diferentes
Microprogramação
• Primeiros computadores digitais (1945) com apenas dois níveis: ISA e lógico digital
Circuitos lógico digitais:
• complicados
• difíceis de entender e montar
• não confiáveis
Maurice Wilkes (1951)
• sugeriu simplificar o hardware com o projeto de computador de 3 níveis
• Máquina com interpretador embutido, imutável (o microprograma) com a função de
executar programas de nível lSA por interpretação
• Execução de microprogramas com conjunto limitado de instruções (instruções ISAs
muito maiores)
• Economia de circuitos eletrônicos (válvulas eletrônicas)
• Redução no número de válvulas, aumentando a confiabilidade
• Principais máquinas (década 70) interpretavam o nível ISA por microprograma
Anos dourados da microprogramação
• Décadas de 60 e 70
• Microprogramas dominavam
• Eram cada vez mais lentos devido a serem mais volumosos
Controle do caminho de dados por hardware
• Instruções executadas diretamente sem microprograma
• Reduz o conjunto de instruções
• Máquinas mais rápidas
• Para o programador, não importa o modo de implementação da instrução, o que
importa é a velocidade
• No nível ISA usa instrução como se fosse uma instrução de hardware, despreocupado
com ela
Microprocessador
• Segundo o dicionário Michaelis, “Conjunto de elementos da unidade central de
processamento, normalmente contidos num único chip de circuito integrado, o qual,
combinado com outros chips de memória e de entrada/saída, constituirá um
microcomputador.”
• Definido pelo Google como: “circuito integrado constituído por unidade de controle,
registradores e unidade aritmética e lógica, capaz de obedecer a um conjunto
predeterminado de instruções e de ser utilizado como unidade central de
processamento de um microcomputador.”
O ciclo do processador

• A operação dos computadores consiste em executar instruções sequenciais (uma após a outra)
• A execução de instruções é subdividida nas seguintes etapas:
código usando PC
1-Buscar a instrução na memória no segmento de
2-Incrementar o contador de programa
3-Decodificar a instrução buscada
4-Buscar os dados necessários na memória e/ou nos registradores do processador
5-Executar a instrução
6-Armazenar os resultados da instrução na memória e/ou registradores
7-Voltar à etapa 1 para iniciar a instrução seguinte

• Etapas descritas de forma semelhante na seção “Execução de Instrução” (Aula 2) contudo, ao


comparar, verifica-se que no contexto de microprocessadores é mais complexo
• A execução de uma instrução é semelhante à execução de um programa muito pequeno, o
microprograma, utilizado por diversos fabricantes de microprocessadores
WatchDog

• Computador para de executar o programa/execute incorretamente, a solução adotada é o reset


• Microcontrolador não possui essa solução, não há “botão reset”
• Solução: introdução de um novo bloco, watchdog (cão de guarda)

Síntese

• O coração de todo computador é o caminho de dados


• Pode ser controlado por uma sequência que busca microinstruções em um armazenamento de
• Controle

Aula 5
ISA – Instruction Set Architecture

• Visão geral
• Tipos de dados
• Formatos e tipos de instruções
• Endereçamento

Sistemas Operacionais
▪ Visão geral de sistema operacional
▪ Objetivos e funções de sistemas operacionais
▪ Tipos de sistemas operacionais

Visão Geral ISA

ISA – Instruction Set Architecture (arquitetura do conjunto de instruções)


está entre os níveis da microarquitetura edo sistema operacional

Fronteira e/ou interface entre o hardware e o software

• ISA foi desenvolvido antesde quaisquer outros níveis


• Originalmente era o único nível
• Denominado como “a arquitetura” da máquina ou (incorretamente)como “linguagem de
montagem”
• lSA é adotado para traduzir programas escritos nas mais diversas linguagens para uma
forma intermediária comum, e para construir hardware que os execute diretamente
nesta forma
• ISA define a interface entre os compiladores e o hardware
• É a linguagem que ambos têm de entender
• Compatibilidade: o desafio é projetar máquinas melhores e mais velozes garantindo a
compatibilidade com sistemas e aplicativos antigos
Fatores essenciais a uma “boa” ISA:
• definir conjunto de instruções que possa ser facilmente implementado
• fornecer um alvo claro para o código compilado

Tipo de Dados ISA


ISA utiliza dados dos tipos: numéricos e não numéricos
Dados numéricos são:
• inteiros (com e sem sinal)
• inteiro decimal (código binário)
• ponto flutuante
Dados não numéricos são:
• ponteiros (endereço de máquina)
• caracteres ASCII
• e UNICODE
• booleanos (de dois valores: V ou F, 0 ou 1, M ou F etc.)

Formatos, Endereçamento e Tipos de Instrução ISA
Instruções ISA são formadas por opcodes (códigos de operação),Usualmente em conjunto com
alguma informação adicional, tais como de onde vêm os operandos e para onde vão os
resultados.

Formatos de Instrução ISA


• Diversos formatos (possíveis) de instrução
• Instruções sempre têm um opcode que indica o que ela faz
• Instruções podem não ter endereço ou ter 1, 2, ou 3
• Em algumas máquinas todas as instruções têm o mesmo comprimento; em outras, pode
haver muitos comprimentos diferentes
Vários fatores considerados na escolha do formato de instruções
• A dificuldade na decisão não deve ser subestimada
• e o formato deve ser decidido no início do projeto
• O conjunto de instruções pode sobreviver por muitos anos

Endereçamento de Instrução
Instruções possuem operandos e o endereçamento especifica onde eles (operandos) estão
Modos de endereçamento como os bits de um campo de endereço são
interpretados para encontrar o operando

São diversos os modos:


• Endereçamento Imediato (o modo mais simples)
• Endereçamento Direto (especifica o endereço completo na memória)
• Endereçamento de Registrador (especifica um registrador)
• Endereçamento Indireto de Registrador ou Ponteiro (endereço em registrador, sem
endereço na instrução)
• Endereçamento Indexado (registrador e deslocamento constante)
• Endereçamento de Base Indexado (dois registradores)
• Endereçamento de Pilha

Tipos de Instrução ISA


• Instruções ISA são divididas em grupos, com similaridade entre as máquinas, diferentes
nos detalhes
• Instruções fora do comum, para manter a compatibilidade com modelos anteriores

Dentre elas destacam-se:


instruções para movimento de dados
operações diádicas
operações monádicas
comparações e desvios condicionais
instruções de chamada de procedimento
controle de laço
entrada/saída
Visão Geral de Sistema Operacional
Segundo Tanenbaum, sistema operacional é um programa que, do ponto de vista do
programador, acrescenta uma variedade de novas instruções e características, acima e além
do que o nível ISA fornece
Sistema Operacional
• Normalmente, o SO é implementado em software, sem razão teórica por não ser
colocado em hardware (microprogramas)
• OSM (Operating System Machine) é denominado nível de máquina de sistema
operacional

• Stallings define o sistema operacional como um programa que gerencia os recursos


do computador, fornece serviços para os programadores e estabelece uma ordem de
execução de outros programas
• O conhecimento sobre SO é essencial para o entendimento dos
• mecanismos da CPU para controle do computador
• Em particular, interrupções e gerenciamento de memória

O SO controla a execução de programas em um processador, principalmente as


funções:
• escalonamento de processos gerenciamento de memória
• Só executadas se o SO possuir suporte do hardware da CPU

CPU tem também hardware para:


• gerenciamento de memória virtual e de processos
• registradores especiais e áreas de armazenamento temporário
• conjunto de circuitos de gerenciamento de recursos
• Gerenciamento de memória é outra importante função do SO
SO atuais possuem a capacidade de memória virtual, o que traz dois benefícios:
• processo executado na memória principal sem que todas asinstruções e dados estejam
armazenados na memória principal
• espaço de memória total disponível pode exceder o tamanho da memória principal do
sistema
• Embora o gerenciamento de memória seja feito pelo software, o sistema operacional
conta com suporte do hardware do processador, incluindo paginação e segmentação da
memória
• Escalonamento de processos é uma das funções mais importantes do SO que
determina os processos a executar a cada instante
• Possibilita compartilhar o tempo de CPU entre determinado número de processos de
modo imparcial
Objetivos e Funções dos Sistemas Operacionais
Stallings define o SO como programa que controla a execução de programas aplicativos e
age como interface entre o usuário e o hardware do computador.Possui basicamente os
objetivos:
conveniência: tornar o uso do computador mais conveniente
eficiência: utilização mais eficiente dos recursos do sistema

• Um conjunto de programas de sistema (utilitários)implementam as principais funções


• O SO é o mais importante. Esconde os detalhes do hardware e fornece uma
interface conveniente, agindo como um mediador, tornando mais fácil o acesso e
uso desses recursos e serviços

Tipicamente o SO fornece serviços para a realização das seguintes atividades:


criação de programas
execução de programas

acesso a dispositivos de E/S


acesso controlado a arquivos
acesso ao sistema
detecção e reação aos erros monitoração

O sistema operacional como gerente de recursos


• Computador é um conjunto de recursos (processar, transferir e armazenar dados e
controlar essas funções) controlados pelo SO
• O SO é um programa como outro qualquer, executado pela CPU
• Renuncia o controle da CPU para, em seguida, obter o controle novamente

• Uma parte do sistema operacional reside na memória principal – o núcleo (kernel),


que contém as funções do SO usadas mais frequentemente, além de outras partes
do SO que estão em uso naquele momento
• O SO também decide quando um dispositivo de E/S pode ser usado pelo programa
em execução e controla o acesso e o uso de arquivos
• A CPU também é um recurso controlado pelo SO, que determina quanto tempo da
CPU deve ser dedicado à execução de cada programa de usuário
• No caso de um sistema de computação com múltiplos processadores, essa decisão
se estende a todos os processadores

Tipos de Sistema Operacional


• Algumas características básicas diferenciam os vários tipos de sistemas
operacionais
• Essas características são relativas a dois aspectos independentesO primeiro
aspecto especifica se o sistema de computação é interativo ou é um sistema de
processamento em lotes (batch)
• No interativo, o programador/ usuário interage diretamente com o computador. No
batch, o oposto
• Outro aspecto independente especifica se o sistemade computação emprega
multiprogramação ou não
• Uma tentativa de deixar a CPU ocupada o maior tempo possível,mantendo-a
trabalhando em mais de uma tarefa (programa)

Aula 6
Visão Geral do Paralelismo
Embora os computadores continuem a ficar cada vez mais rápidos, as demandas
impostas a eles estão crescendo no mínimo com a mesma rapidez
Em suma, seja qual for a capacidade de computação disponível, para muitos usuários, em
especial nas áreas da ciência, engenharia e industrial, ela nunca será suficiente
Portanto, para enfrentar problemas cada vez maiores, os arquitetos de computadores estão
recorrendo cada vez mais a computadores paralelos
Apesar de talvez não ser possível construir uma máquina com uma única CPU é com
tempo de ciclo de 0,001 ns, pode ser perfeitamente viável construir uma com
1.000 CPUs com um tempo de ciclo de 1 ns cada
O paralelismo pode ser introduzido em vários níveis
No nível mais baixo, ele pode ser adicionado ao CHIP da CPU por pipeline e projetos
superescalares com várias unidades funcionais
Também pode ser adicionado por meio de palavras de instrução muito longas com
paralelismo implícito
Várias CPUs podem ser reunidas no mesmo chip
Juntas, essas características podem equivaler, talvez, a um fator de 10 vezes em
desempenho em relação a projetos puramente sequenciais
No nível seguinte, placas extras de CPU com capacidade de processamento adicional
podem ser acrescentadas a um sistema
Funções especializadas, como: processamento de rede, de multimídia ou criptografia
Para conseguir um fator de cem, de mil, ou de milhão, é necessário replicar CPUs inteiras e
fazer que todas elas funcionem juntas com eficiência
Essa ideia leva a grandes multiprocessadores e multicomputadores (clusters)
É possível envolver organizações inteiras pela Internet e formar grades de computação
fracamente acopladas
Esses sistemas estão apenas começando a surgir, mas têm um potencial interessante para
o futuro.
Duas CPUs próximas, em termos computacionais, são fortemente acopladas,Quando
longe uma da outra, são fracamente acopladas

Paralelismo no CHIP
Um modo de aumentar a produtividade de um chip é conseguir que ele faça mais coisas ao
mesmo tempo, Em outras palavras, explorar o paralelismo
Alguns modos de aumentar a velocidade por paralelismo no chip, incluídos paralelismo no
nível da instrução, multithreading e mais de uma CPU no Chip
Técnicas diferentes, mas cada uma delas ajuda à sua própria maneira
Paralelismo no Nível da Instrução
Um modo de paralelismo no nível mais baixo é emitir múltiplas instruções por ciclo de clock
Há duas CPUs de emissão múltipla
Processadores superescalares
Processadores VLIW

Paralelismo
CPUs superescalares são capazes de emitir múltiplas instruções para as unidades de
execução em um único ciclo de clock
O número real de instruções emitidas depende do projeto do processador, bem como das
circunstâncias correntes
O hardware determina o número máximo que pode ser emitido, Em geral, duas a seis
instruções
Se a instrução precisa de unidade funcional não disponível ou um resultado ainda não foi
calculado, ela não será emitida
A outra forma de paralelismo no nível da instrução é encontrada em processadores VLIW
(Very Long Instruction Word)
Na forma original, máquinas VLIW tinham palavras longas que continham instruções que
usavam múltiplas unidades funcionais
Projeto muito rígido

Nem toda instrução utiliza todas unidades funcionais, resultando em muitas NO-OP inúteis,
usadas como filtro
Modernas máquinas VLIW têm modo de marcar grupo de instruções que formam um
conjunto com bit “final de grupo”
O processador pode buscar o grupo inteiro e emiti-lo de uma vez só
Cabe ao compilador preparar grupos de instruções compatíveis
VLIW transfere do tempo de execução para o tempo de compilação o trabalho de
determinar quais instruções podem ser emitidas em conjunto
Essa opção simplifica o hardware e o torna mais rápido
Permite que se montem pacotes melhores do que o hardware poderia montar durante o
tempo de execução
O paralelismo no nível da instrução não é a única forma de paralelismo de baixo nível
Outra forma é o paralelismo no nível da memória, no qual há múltiplas operações de memória no ar ao
mesmo tempo
Multithreading, Multiprocessadores e Coprocessadores
Multithreading no chip
Multiprocessadores com um único chip
Coprocessadores
Processadores de rede
Processadores de mídia
Criptoprocessadores
Multiprocessadores e Multicomputadores
Multiprocessadores de memória compartilhada
Multiprocessadores versus
Multicomputadores
Multiprocessadores
Computador paralelo – todas CPUs compartilham memória comum
Todos os processos que funcionam juntos podem compartilhar um único espaço de endereço virtual
mapeado para a memória comum
Qualquer processo pode ler/escrever uma palavra de memória apenas executando uma instrução. Nada
mais é preciso.
O hardware faz todo resto
Modelo de fácil entendimento pelos programadores e é aplicável a uma ampla faixa de problemas
Multicomputadores
Arquitetura paralela – todas CPUs possuem sua própria memória privada, acessível somente por ela e
nenhuma outra
Também denominado sistema de memória distribuída
O aspecto fundamental que distingue um multicomputador de multiprocessadores é que a CPU de um
multicomputador tem sua própria memória local privada, a qual pode acessar apenas executando LOAD
e STORE
CPUs em multicomputador não se comunicam lendo e escrevendo na memória comum
Mensagens usando rede de interconexão
Exemplos de multicomputadores: IBM BlueGene/P, Red Storm,
cluster Google
Cluster, Escalonamento e Desempenho
Computação de Cluster
Outro estilo de multicomputador
Centenas de milhares de PCs ou estações de trabalho conectadas por uma placa de rede
Dois tipos: o centralizado e o descentralizado
O centralizado é um cluster de estações de trabalho ou PCs montado em uma grande estante em uma
sala
Máquinas homogêneas sem periféricos, exceto placas de rede
Clusters descentralizados consistem em estações de trabalho ou PCs espalhados por um prédio ou
campus
Ociosos por muitas horas do dia
Conectados por uma LAN
Heterogêneos com conjunto completo de periféricos
Clusters são conjuntos pequenos, com cerca de 500 PCs
Contudo, também é possível construir clusters muito grandes com PCs de prateleira, como o Google faz
Escalonamento
Programadores podem criar jobs com facilidade, requisitando várias CPUs e executando durante
períodos substanciais de tempo
Quando várias requisições independentes estão disponíveis vindas de diferentes usuários, cada uma
necessitando um número diferente de CPUs por períodos detempos diferentes,
o cluster precisa de um escalonador paradeterminar qual job é executado

Um algoritmo mais sofisticado requer quecada job apresentado especifique seu formato, isto é,
quantas CPUs ele quer durante quantos minutos
Esquema especialmente eficaz quando jobssão apresentados durante o dia para execução a noite, o
escalonador tem as informações e pode executá-los na melhor ordem
Desempenho

O ponto principal de um computador paralelo é a velocidade de execução –mais rápido que uma
máquina com único processador
• Se não cumprir, não vale a pena o ter
• Deve ser eficiente em relaçãoao custo
• Para mensurar, são utilizadas métricas de hardware e software

Você também pode gostar