You are on page 1of 9

Programa

• A arquitectura dos computadores – 1 aula


• A linguagem C – 7 aulas
Programação de
Microprocessadores • Talvez haja mais algum assunto a abordar nas
aulas seguintes
1º Ano – 2º Semestre

Mestrado Integrado em Engenharia


Electrotécnica e Computadores

Bibliografia Páginas electrónicas de PM

http://tele1.dee.fct.unl.pt/pm
• Linguagem
guage C
Autor: Luis Damas
Editora: FCA Editora de Informática
Colecção: Tecnologias de Informação

Métodos de Ensino - Aulas Regras das aulas de laboratório


• 1 Aula teórica (2 horas) • 1ª falta: tolerada
– São apresentados alguns casos da linguagem. • 2ª falta: máximo de 14 ao laboratório
– Necessita de uma leitura mais completa da parte • 3ª falta: máximo de 12 à disciplina
respectiva do livro (SEMANALMENTE) • 4ª falta: Exclusão
– 8 aulas
l tteóricas
ói
• 1 Aula de laboratório (3 horas)
– Programas exemplificativos seguidos de exercícios para • Necessário ter Memory Stick para guardar os
serem feitos na aula
programas
– Trabalho final mais elaborado (que foi planeado para ser
feito nas aulas)
– 9 + 4 aulas de laboratório + 1 discussão

1
Métodos de Avaliação Sumário
• Parte teórica: 2 testes e/ou exame • Arquitectura Geral
• Parte laboratorial: Avaliação contínua + discussão do
trabalho final 1 Jun (???)
• O Hardware
• O Firmware
– 18 Abr; 06 Jun
• O Sistema Operativo
• Parte teórica: 50% • As Aplicações
• Parte laboratorial: 50% • Linguagens de Programação
• Necessário ter um mínimo de 9,5 valores em cada parte.

Sumário O Computador – Arquitectura Geral


• Arquitectura Geral
• O Hardware
• O Firmware • Software
• O Sistema Operativo
• As Aplicações
• Linguagens de Programação • Hardware

O Computador – Arquitectura Geral O Computador – Arquitectura Geral

• Software • Firmware • Software • Sistema Operativo


Programas que controlam o Programas que criam um
hardware em muito baixo ambiente de alto nível de
nível e são muito raramente acesso à maquina que se
mudados (correcções de usa para simplificar a criação
• Hardware erros, novas versões com • Hardware de aplicações.
mais funções, etc.)
Em PM vai ser usado o
Guardado em ROM (ou LINUX
EPROM)

2
O Computador – Arquitectura Geral O Computador – Arquitectura Geral

• Aplicações
Programas que são criados
para executar uma dada
• Software tarefa. • Software
Ex: Processador de texto;
bases de dados; tratamento Parte física do computador.
estatístico de dados; cálculo É formada por circuitos
• Hardware de uma estrutura numa • Hardware digitais.
ponte; etc. etc.

Sumário Hardware – Circuitos Digitais


• Arquitectura Geral • Sistemas electrónicos que executam a álgebra booleana
(a estudar em Sistemas Lógicos I).
• O Hardware
• O Firmware • São formados por grandes conjuntos de gates lógicas.

• O Sistema Operativo
• Certas funções são tão importantes e muito usadas que
• As Aplicações justificam a construção de circuitos integrados para
facilitar o seu uso.
• Linguagens de Programação
Ex: Processador, controladores, memória, etc.

Hardware – O Computador Pessoal Hardware – O Computador Pessoal


• Na década de 1980 a IBM construiu uma arquitectura de
computador simples que foi imitada (legalmente) e se
tornou o que hoje é conhecido como computador
pessoal.

• Basicamente o que se assistiu foi a uma uniformização


de componentes que foram tornando o preço do
computador mais barato.

3
A Motherboard A Motherboard
• A motherboard é uma placa de circuito
impresso que contém:
– O microprocessador
– A memória central
– A memória que contém o firmware
– Alguns controladores
– Buses internos
– Controladores de buses externos

O Microprocessador O Microprocessador
• Componente capaz de executar um programa. • A execução do programa pode implicar o uso de um
periférico. Nos primeiros tempos o processador dava a
• Tem um portfolio de instruções que compreende: ordem ao periférico e ficava à espera da sua completa
incrementar, adicionar, comparar, etc. execução.
• Interpreta as instruções de um programa de computador
e processa dados
dados. • Era uma perda de tempo
tempo, pois o processador é muito
mais rápido e podia estar a fazer outra coisa durante
• É ele que fornece a capacidade de programação de um esse tempo.
computador digital.
• Foram, assim, aparecendo controladores de
• O programa está gravado em memória central e as periféricos que tomavam conta da acção e depois
indicavam ao processador o fim da execução por meio
instruções vão sendo carregadas e executadas. de uma interrupção.

Os buses Os buses
• Para ligar os vários componentes a motherboard tem um • 1ª geração
conjunto de ligações chamadas de bus (bidirectional
universal switch). • Dois conjuntos de fios eléctricos a ligar o processador à
• Os buses transmitem três tipos de sinais: memória e aos periféricos. Cada um destes buses
– Dados tinha instruções e protocolos próprios.
– Endereços • Depois unificaram-se os buses e ficou só o bus de
– Controlo memória. Os periféricos apareciam ao processador
como endereços de memória
• Podem ainda transportar energia ou a “terra”
Por exemplo, um disco interrompia o
• Pode considerar-se que existem três gerações de buses processador a dizer que tinha dados
para serem lidos. O processador lia
então os dados da posição de memória
correspondente ao driver do disco.

4
Os buses Os buses
• Esta simplificação trouxe alguns problemas:
– Todos os componentes têm de falar à mesma velocidade
• 2ª geração
e partilhar o mesmo relógio. • O mundo foi dividido em dois: o processador e a
memória de um lado e os periféricos no outro com um
– Aumentar a velocidade do processador seria difícil pois controlador de bus no meio.
tinha-se de aumentar a velocidade de todos os
componentes (senão o processador tem de reduzir a • Trouxe algumas vantagens:
velocidade para comunicar com um componente). – A velocidade da memória e do processador podiam crescer
livremente.
– O processador é preciso para todas as tarefas. Ora se – Os dados são colocados no controlador à velocidade do
ficar ocupado com outras tarefas, o débito do bus processador
ressente-se.
– Os periféricos podem comunicar entre eles sem a intervenção
do processador
– Estes buses são difíceis de configurar: jumpers para
definir endereços de memória; endereços de E/S,
prioridades de interrupção e números de interrupção.

Os buses Os buses
• As motherboards ficaram mais complexas.
• Para aumentar a velocidade os buses começaram a
transportar 16 e 32 bits em paralelo em vez de 8.
• A configuração começou a ser feita em software (plug-
and play) em vez de jumpers
and-play) jumpers.

• A velocidade dos processadores e da memória cresceu


tanto que os buses começaram a ser lentos (o PCI). O
Buses podem ser: problema maior era a placa gráfica que não conseguia
backplane ser “alimentada” como devia ser.
cabo

Os buses Os buses
• Foi inventado então um bus mais rápido só para a placa • É relevante fazer a diferenciação entre
gráfica – o AGP.
• O AGP começou a ser também limitado e a partir de 2004
o PCIE (Express) começou a ser usado. Bus local Bus externo

Desenhados para serem usados com


• Certos periféricos começaram a ter buses só para eles
(deixando de usar as fichas (slots) do bus PCI). componentes internos componentes externos
Por exemplo, os discos começaram a usar (placas gráficas) (scanners)
buses como o SCSI e o IDE.
Ex: PCI Ex: IDE
• Hoje em dia podem existir facilmente cinco buses num PC.

5
Os buses Sumário
• 3ª geração (O futuro) • Arquitectura Geral
• Exemplos são HyperTransport and InfiniBand. • O Hardware
• A ideia é que podem trabalhar a muito altas velocidades
(quando comunicam com memória) mas também a • O Firmware
velocidades
l id d mais i baixas
b i (
(quando
d comunicam
i com di
discos).
)
• Podem ser usados como internos, ou externos (mesmo a
• O Sistema Operativo
ligar máquinas diferentes). • As Aplicações
• Permitem que muitos periféricos usem o bus ao mesmo
tempo. • Linguagens de Programação
• Tanta versatilidade faz com que o software de controlo seja
complexo e os buses pareçam mais como redes.

FIRMWARE FIRMWARE
• BIOS (Basic Input/Output System) • A EFI é uma especificação de interface para libertar o
mundo das características específicas da BIOS.
• Código que corre logo a seguir ao computador ser
ligado. A sua função é identificar e iniciar os vários
componentes de hardware (discos, CDs, etc.).
• Deste modo, outros programas (e o sistema operativo)
podem ser carregados, executarem e assumirem o
controlo da máquina.

• Está a ser substituída por EFI (Extensible Firmware


Interface)

Sumário Sistema Operativo


• Arquitectura Geral • É o software que gere a partilha dos recursos de
um computador.
• O Hardware
• O Firmware
• Processa dados do sistema e as entradas e
• O Sistema Operativo respostas dos utilizadores alocando e gerindo
• As Aplicações tarefas e recursos internos do computador.
• Linguagens de Programação
• Faz isto numa perspectiva de serviço aos
utilizadores e às aplicações.

6
Sistema Operativo Sistema Operativo
• Exemplos de gestão: • Os sistemas operativos vêm com uma aplicação que
– Gestão de processos fornece a interface com o utilizador para permitir a
gestão do sistema operativo (interpretador de linha de
– Gestão de memória
comando ou interface gráfica).
– Gestão de ficheiros e discos
– Redes
• O sistema operativo forma uma plataforma para que
– Segurança outros programas e aplicações possam correr.
– Interfaces gráficas
– Device drivers (tipo específico de software • Exemplos populares:
desenvolvido para fazer a interacção com – Windows
equipamentos de hardware)
– Unix (Linux, Mac OS)

Sumário Aplicações
• As aplicações são programas de computador.
• Arquitectura Geral
• O Hardware • São uma colecção de instruções que descrevem uma
tarefa, ou um conjunto de tarefas para serem
• O Firmware executadas pelo computador.

• O Sistema Operativo • Estas instruções são escritas numa linguagem de


programação.
• As Aplicações
• Linguagens de Programação • Ao conjunto das instruções escritas numa linguagem
chama-se código fonte. Ele depois tem de ser
traduzido para zeros e uns que é o código executável
(binário).

Aplicações Sumário
• Exemplos de aplicações: • Arquitectura Geral
– Processador de texto • O Hardware
– Jogos de computador • O Firmware
– Tratamento estatístico de dados
• O Sistema Operativo
– Banca electrónica
• As Aplicações
– Etc.
– Etc. • Linguagens de Programação

7
Linguagens de Programação Linguagens de Programação
• Uma linguagem de programação é uma linguagem • 1ª geração
artificial que é usada para controlar o comportamento
do computador. • É uma linguagem ao nível máquina – consiste em zeros e uns.

• Tal como as linguagens naturais, é definida pelo uso de • Não é necessário nenhum tradutor para a compilar. As instruções
eram introduzidas no computador através de um painel frontal.
uma sintaxe e uma semântica que determina a sua
estrutura e o seu significado, respectivamente. • A maior vantagem era a extrema rapidez e eficiência pois era
executada directamente.
• São usadas para facilitar a comunicação sobre a tarefa
• Porém é extremamente difícil de aprender e de corrigir os erros. Se
de organizar e manipular informação e expressar fosse preciso corrigir alguma coisa introduzia-se a instrução numa
algoritmos com precisão. posição de memória e todas as outras tinham de ser transladadas.
Fazer isto através de um painel frontal com botões é muito difícil…
• Existem milhares de linguagens de programação • Não tem portabilidade alguma. Transferir o código para outro
diferentes. computador exige a re-escrita do código.

Linguagens de Programação Linguagens de Programação


• 2ª geração • 2ª geração (cont.)

• São normalmente conhecidas como linguagens assembler. • Hoje em dia é usado para programar as partes mais próximas
do hardware e device drivers (muito embora se comece a
• O código já pode ser lido e escrito facilmente, e tem de ser usar o C cada vez mais).
convertido para ser executado
executado.
• É também usado em partes de processamento muito
• A conversão é do tipo um-para-um para gerar o que se intensivo (jogos, edição de vídeo, manipulação gráfica,
chama de opcode. simulação, algoritmos de segurança, etc.).

• É, portanto, muito eficiente mas começa a ser muito difícil • O esqueleto do programa é feito em linguagens de alto nível
para programas grandes. e algumas funções são feitas em assembler.

• O assembler é específico de um dado processador. • Às vezes programa-se em linguagens de alto nível, compila-
se para assembler e depois faz-se manipulações manuais
para optimizar o código.

Linguagens de Programação Linguagens de Programação


• 3ª geração • 4ª geração
• Linguagem de programação, ou ambiente de
• Linguagens desenhadas para serem simples para a programação desenhado especificamente para um
compreensão humana. certo objectivo (desenvolvimento de um programa de
negócios comercial).
• Por exemplo, conterem variáveis com nomes.
• As linguagens 3G são muito genéricas e para certos
assuntos seria melhor ter uma linguagem própria com
• Exemplos: Pascal, C, ALGOL, COBOL, BASIC, C++, instruções de mais alto nível para certos propósitos e
DELPHI, JAVA uma metodologia (assim evitam-se muito mais os erros).

• Suportam programação estruturada. • Exemplos: MARK-IV e MAPPER

8
Linguagens de Programação Linguagens de Programação
• 5ª geração • 5ª geração (cont.)
• É uma linguagem de programação baseada no conceito
de resolver problemas usando restrições dadas ao • São usadas principalmente na investigação de inteligência artificial
programa em vez de se escrever um algoritmo para
resolver o problema. • Exemplos: Prolog, OPS5 e Mercury

• Na década de 1990 foram consideradas o futuro, e havia quem predissesse


• São linguagens em que são escritas restrições e frases que substituiriam todas as outras (O Japão, por exemplo, investiu fortíssimo
lógicas, e não tanto expressões de realização de acções nelas).
(chamadas de declarativas).
• Mas ao se construir grandes programas começou-se a ver que havia
muitas falhas (muita dificuldade em se obter um algoritmo eficiente para
• Enquanto as linguagens até à 4ª geração são problemas muito difíceis). Um programador humano é essencial para este
passo.
desenhadas para escrever um determinado programa,
as de 5ª geração são desenhadas para fazer o • Hoje em dia estas linguagens perderam grande parte da sua áurea e são
computador resolver o problema para nós. apenas usadas em ambientes académicos.

FIM

You might also like