Professional Documents
Culture Documents
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
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.
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.
• 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.
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.
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
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.
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.
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.
• 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.
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
FIM