40
15 de Setembro de 2 006 Introdução aos Sistemas de Computa dores 1 Introdução aos Sistemas de Computadores Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2006/2007

Introdução aos Sistemas de Computadores

  • Upload
    rianna

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Introdução aos Sistemas de Computadores. Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2006/2007. Apresentação da Disciplina. Objectivos / Programa Introdução aos Sistemas de Computadores Introdução à Algoritmia - PowerPoint PPT Presentation

Citation preview

Page 1: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 1

Introdução aos Sistemas de Computadores

Jorge CruzDI/FCT/UNL

Introdução aos Computadores e à Programação

1º Semestre 2006/2007

Page 2: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 2

• Objectivos / Programa– Introdução aos Sistemas de Computadores– Introdução à Algoritmia– Familiarização com uma linguagem imperativa

(Octave/MATLAB)– Aplicação a problemas de engenharia– Introdução à programação reactiva (folha de cálculo)

• Responsável: – Jorge Cruz ( [email protected] http://ssdi.di.fct.unl.pt/~jc)

• Assistentes: – Alexandre Pinto ([email protected]

http://centria.di.fct.unl.pt/~amp)– Luís Soares ([email protected]) – Fausto Mourato ([email protected])

• Página de ICP:– http://ssdi.di.fct.unl.pt/cursos/icp/

Apresentação da Disciplina

Page 3: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 3

Avaliação• Componente Prática (em grupos de 2):

1º Trabalho de Octave 2º Trabalho de Octave Teste de Excel

• Frequência Presenças 20 aulas práticas (de +25 previstas) Nota em cada componente prática >= 7.5 Nota Prática >= 9.5 (média aritmética das componentes) Têm frequência os alunos que a obtiveram em 2005/06

• Exame: Individual, nas datas oficiais da FCT

• Nota Final: 25% Nota Prática + 75% Nota Exame

Page 4: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 4

Introdução aos Computadores

• Um programa é a materialização para uma dada máquina (computador e linguagem de programação) de um algoritmo.

• Um computador é uma máquina capaz de executar determinadas tarefas.

• Para uma máquina poder executar uma determinada tarefa é necessário: – Um algoritmo adequado para executar essa tarefa

– Uma representação do algoritmo compreensível pela máquina

• Um algoritmo é um conjunto ordenado de passos que definem como uma tarefa deve ser executada.

Page 5: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 5

ExemploTarefa:

Calcular o maior divisor comum de dois inteiros positivos x e y

Algoritmo:

1º Passo: atribuir a M o maior valor entre x e y;

2º Passo: atribuir a N o menor valor entre x e y;

3º Passo: chamar R ao resto da divisão inteira de M por N;

4º Passo: se R=0 então o maior divisor comum é N;

senão atribuir a M o valor de N;

atribuir a N o valor de R;

voltar ao 3º Passo;

Page 6: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 6

ExemploTarefa:

Calcular o maior divisor comum de dois inteiros positivos x e y

Programa (Octave): x=input(“Qual o valor de x?”); y=input(“Qual o valor de y?”); M = max(x,y);N = min(x,y);

doR = mod(M,N);if (R <> 0)

M = N;N = R;

endif;until (R == 0);disp(“O maior divisor comum é:”);disp(N);

Page 7: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 7

Introdução aos Computadores

• Os programas e os algoritmos que eles representam são genéricamente denominados por software.

• A máquina e os seus componentes físicos são genéricamente denominados por hardware.

Page 8: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 8

Representação da Informação

• Toda a informação necessária ao funcionamento de um computador é representada por conjuntos de bits.

• Um bit (binary digit) é um valor simbólico (0/1) que fisicamente é armazenado em componentes (circuitos) que podem estar num de dois estados (ex: ligado → 1; desligado → 0).

Page 9: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 9

Memória Principal

A memória principal é organizada numa sequência de células (palavras), cada uma com um tamanho típico de 8 bits (byte) e que pode ser acedida individualmente especificando o seu endereço (RAM → random access memory)

Memória Principal

Memória Secundária

Disco RígidoDisquetesCDsDVDs...

Armazenamento de Dados

Page 10: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 10

Memória Principal

O número de células da memória principal é geralmente grande, variando de computador para computador, e expressa-se normalmente em potências de 2:

0:

1:

2:

3:

4:

??:

endereço

01101101

10101110

00001111

01011100

10110011

00110011

células

......

210 bytes = 1024 bytes = 1 Kilobyte = 1 KB

220 bytes = 1024 KB = 1 Megabyte = 1 MB

230 bytes = 1024 MB = 1 Gigabyte = 1 GB

Armazenamento de Dados

Page 11: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 11

Memória Principal

Em cada célula os bits são ordenados.

0:

1:

2:

3:

4:

??:

endereço

01101101

10101110

00001111

01011100

10110011

00110011

células

......

0 0 0 0 1 1 1 1

bit mais significativo

bit menos significativo

A memória principal pode ser considerada uma longa sequência de bits, permitindo representações com um tamanho arbitrário de bits. (ex: uma sequência de 16 bits pode ser representada por 2 células consecutivas)

Armazenamento de Dados

Page 12: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 12

Memória Secundária

A memória secundária (discos rígidos, disquetes, CDs, DVDs, ...) complementa a memória principal, proporcionando num meio menos volátil (não se apaga quando se desliga o computador):

A maior desvantagem destes sistemas relativamente à memória principal é a velocidade de acesso (usa meios mecânicos muito mais lentos).

• mais espaço de armazenamento;

• possibilidade de separação física da máquina.

Armazenamento de Dados

Page 13: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 13

Representação da Informação como Sequência de bits

Representação de Texto

Cada símbolo é normalmente representado por 1 byte de acordo com o código ASCII (American Standard Code for Information Interchange).

01000010011011110110110100100000011001000110100101100001

B o m d i a

01000010

01101111

01101101

00100000

01100100

01100001

...

01101001

...

B

o

m

d

a

i

memória principal

Page 14: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 14

Representação da Informação como Sequência de bits

Representação de Valores Numéricos

Sistema Decimal

239

9×100 = 93×101 = 302×102 = 200 239

Sistema Binário

11101111

1×20 = 11×21 = 21×22 = 4

239

1×23 = 80×24 = 01×25 = 321×26 = 641×27 = 128

Sequência de números binários:

0, 1, 10, 11, 100, 101, 110, 111, 1000, ...

Page 15: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 15

Representação da Informação como Sequência de bits

Representação de Imagens

Mapas de bits

Uma imagem é um conjunto de pontos (pixel – picture element) representado por uma longa sequência de bits:

• imagens a preto e branco (pixel→1 bit): 1→preto ; 0→branco

• imagens a cores (pixel→3 bytes): vermelho+verde+azul (RGB)

Os mapas de bits ocupam muito espaço pelo que se usam frequentemente técnicas de compressão (ex: GIF e JPEG).

Uma desvantagem adicional é a dificuldade de aumentar ou diminuir as imagens.

Page 16: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 16

Representação da Informação como Sequência de bits

Representação de Imagens

Técnicas de Vectores

As técnicas de vectores representam uma imagem como um conjunto de linhas e curvas deixando os detalhes do seu desenho para a componente que produz a imagem (monitor, impressora).

Uma característica destas técnicas é a facilidade de aumentar ou diminuir as imagens.

As técnicas de vectores são usadas frequentemente para representar tipos de letra (escaláveis) e em aplicações de desenho (ex: CAD – Computer-Aided Design).

Page 17: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 17

Manipulação da Informação

O computador, além de ser capaz de armazenar os dados, tem também que os saber manipular para poder executar os algoritmos.

A manipulação dos dados requer um mecanismo para executar operações sobre os dados e coordenar a sequência dessas operações.

Num computador típico este mecanismo é denominado unidade central de processamento (CPU – Central Processing Unit).

Page 18: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 18

Arquitectura Básica de um Computador• CPU (Central Processing Unit)

– Lê instruções

– Executa instruções

• Memória– Guarda Dados

– Guarda Instruções

• Dispositivos de Entrada/Saída – Teclado, rato, placa gráfica, placa de som, discos rígido, diskettes,

flash disks, impressoras, placa de rede, ...)

– Permitem a comunicação com o “exterior” (utilizador, periféricos, outros computadores...)

• Vias de Comunicação (Buses)

Page 19: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 19

Manipulação da Informação

A unidade central de processamento é constituida por:

Unidade Central de Processamento (CPU)

• Uma unidade lógica/aritmética que contém os circuitos que executam a manipulação de dados;

• Uma unidade de controle que contém os circuitos para a coordenação da actividade da máquina;

• Um conjunto de registos gerais que servem para armazenar temporariamente os dados que são manipulados na CPU;

• Dois registos especiais:

-Um contador (program counter) que contém o endereço da próxima instrução a ser executada;

-Um registo de instrução (instruction register) que contém a instrução que está a ser correntemente executada.

Page 20: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 20

Manipulação da Informação

Unidade Central de Processamento (CPU)CPU

0:

1:

2:

10100100

00000000

00000000

...

registos

00000010

0110110110101110

contador

registo de instrução

Unidade de ControleUnidade Lógica/Aritmética

A CPU está ligada com a memória principal (RAM) por um circuito (BUS) através do qual é capaz de transferir dados entre a RAM e os seus registos.

RAM

0:

1:

2:

3:

4:

01101101

10101110

00001111

01011100

10110011

...

BUS

Actualmente quase todos os CPUs contêm uma memória de alta velocidade (semelhante à dos registos) denominada Memória Cache.

Nestes casos, a máquina tenta manter na Memória Cache uma cópia da parte da RAM que esteja correntemente a ser utilizada.

Page 21: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 21

Manipulação da Informação

Execução de Programas

Um programa para poder ser executado tem que ser codificado e armazenado na memória principal.

A unidade de controle é responsável pela extração do programa da memória principal, descodificação das suas instruções e sua execução.

A unidade de controle repete continuamente o seguinte ciclo (machine cycle):

Fetch

Decode

Execute

Transferir da RAM a instrução indicada pelo contador para o registo de instrução e incrementar o contador.

Descodificar o conteúdo do registo de instrução, identificando a operação requerida e os respectivos operandos.

Executar a operação requerida pela instrução activando os circuitos apropriados.

Page 22: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 22

Exemplo de Funcionamento

• Executar a (instrução de) atribuição: Z X +Y• Assume-se

– O dado X na posição de memória 5001

– O dado Y na posição de memória 5002

– O dado Z a ser colocado na posição de memória 5003

• Programa em Assembly (≈Linguagem Máquina): 2001: LDA 5001 (5001) (Registo A) 2003: LDB 5002 (5002) (Registo B) 2004: ADD (Reg. A) + (Reg. B) (Reg. O) 2005: STO 5003 (Registo O) (5003)

Page 23: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 23

Manipulação da Informação

Comunicação com os Periféricos

A memória principal (RAM) conjuntamente com a unidade de processamento central (CPU) constituem o núcleo do computador que comunica com os periféricos através de dispositivos intermediários denominados controladores.

Nos PCs os controladores correspondem às placas que se podem inserir na placa principal (motherboard) e às quais se ligam os periféricos.

CPU

Controlador

BUSRAM

Controlador

Monitor Disco Rígido

Cada controlador trata da comunicação com determinado tipo de periférico.

O controlador está electronicamente ligado ao BUS que liga a CPU à RAM.

A comunicação entre a CPU e um controlador é feita de um modo idêntico à comunicação da CPU com a RAM (o endereço identifica o controlador).

Page 24: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 24

Linguagens de Programação• Os computadores (mais especificamente os processadores)

executam programas.

• Estes programas podem ser escritos em linguagens com vários graus de abstração:

2005:

2001: 2002: 2003: 2004:

2006: 2007:

LDA5001LDB5002ADDSTO5003

– desde a linguagem ASSEMBLY (linguagem máquina com algumas mnemónicas) directamente relacionada com o funcionamento de um determinado processador

– até às linguagens de alto nível (Pascal, C, Java, ...), independentes do processador Z X+Y

Page 25: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 25

Compiladores• A consideração de diferentes níveis de abstração é extremamente

útil para se entender os programas executados pelos computadores.

• Por exemplo, se “inicialmente” (anos 50) os programas eram escritos em linguagem máquina, essa situação alterou-se rapidamente por razões óbvias de eficiência de programação e manutenção de programas.

• Em particular, são muito importantes os programas que

– recebem como input um texto correspondente a um programa escrito numa linguagem de alto nível (por exemplo C); e

– produzem como output um programa escrito em linguagem máquina.

Page 26: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 26

Compiladores• Estes programas são os chamados “compiladores”, naturalmente

dependentes da linguagem de alto nível e da linguagem máquina pretendidas

e que são comparáveis conceptualmente a funções

Compilador(de Pascal)

Programa Máquina

Programa Pascal

25 5

sqrt

Page 27: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 27

Sistemas de Operação• A consideração de vários níveis de abstração é útil não só para

se entenderem os programas executados pelos computadores, mas também para se entender a organização e encadeamento dos vários programas utilizados.

• Um Sistema de Operação (Windows, UNIX, Linux, Mac OS, ...) é um conjunto de programas que permitem operar um computador em “alto nível”.

• Por exemplo, em vez de se especificarem todas as instruções necessárias para ler um ficheiro chamado (texto.txt) do disco para a memória, bastará utilizar uma “instrução” do tipo,

read(“texto.txt”)

disponibilizada pelo sistema de operação às aplicações

Page 28: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 28

Aplicações• Uma vez estabelecidas as primitivas disponibilizadas por um

sistema de operação, vários programas de aplicação podem ser escritos de uma forma independente do computador / processador.

Processador

CompiladorPascal

Compilador C

Editor de Texto

Folha de Cálculo Browser

Bases de

Dados

Jogos

Sistema Operação

de

Read(file)

Page 29: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 29

Sistemas de Operação - Shell• As principais componentes de um sistema de operação são

– Interface com o utilizador (shell – user interface), que interpreta as instruções dadas pelo utilizador.

– O Núcleo (kernel) composto por programas de mais baixo nível, que permitem executar essas instruções.

• Normalmente, a shell disponibiliza uma interface gráfica (GUI – Graphical User Interface) cujos objectos (ficheiros, programas...), são representados e manipulados graficamente no monitor como ícones.

• Uma componente importante das interfaces gráficas é o gestor de janelas, responsável pela divisão do ecrã em espaços denominados janelas e pela sua associação com as respectivas aplicações.

Page 30: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 30

Sistemas de Operação - Kernel• O Núcleo é composto por um conjunto de programas que

executam várias funções:

–Gestão de Ficheiros: Organizam os ficheiros em hierarquias, e provê instruções para a sua criação, alteração e apagamento.

–Gestão de Periféricos: Disponibilizam instruções de alto nível para aceder aos dispositivos periféricos (discos, placa gráfica, placa de som, etc...)

–Gestão de Memória: Organizam a memória para que as zonas de memória (programa e dados) dos vários programas concurrentes (processos) não se confundam.

–Gestão de Processos: Divide o tempo entre os vários processos, interrompendo-os e retomando-os quando apropriado.

Page 31: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 31

Sistemas de Operação – Gestão de Ficheiros• A função do Gestor de Ficheiros é a coordenação das capacidades

de armazenamento da máquina.

• A informação é armazenada em ficheiros que normalmente são agrupados em directorias organizadas hierarquicamente:

A:\

Ficheiro_1 Ficheiro_2 Directoria

Ficheiro_3

C:\

Program Files

Programa_1.exe

...

. . .

C:\Program Files\Programa_1.exe A:\Directoria\Ficheiro_3

Page 32: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 32

Sistemas de Operação – Gestão de Periféricos

• Os gestores de periféricos (device drivers) são as unidades de software que comunicam com os controladores dos periféricos.

• Cada device driver é especializado num determinado periférico (uma impressora, um disco rígido, um monitor, ...).

• Assim, através um qualquer computador (genérico) pode ser configurado para um conjunto particular de periféricos com a instalação dos respectivos device drivers.

Page 33: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 33

Sistemas de Operação – Gestão de Memória

• O gestor de memória é responsável pela coordenação da utilização da memória principal (RAM).

• Vários programas e blocos de dados podem estar simultaneamente na memoria principal.

• Por exemplo:

– Um processador de texto com vários ficheiros abertos

– Uma folha de cálculo

– O browser para aceder à Internet

– Um gestor de correio electrónico

• É necessário coordenar a utilização do espaço disponível, e eventualmente, criar a ilusão de um espaço de memória maior (memória virtual) usando por exemplo espaço do disco rígido.

Page 34: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 34

Sistemas de Operação – Gestão de Processos

• Um processo é um programa em execução.

• Os computadores actuais possibilitam a execução de vários processos concurrentemente, isto é, o tempo de CPU é partilhado (time-sharing) pelos respectivos processos.

• Os gestores dos processos são componentes do sistema operativo responsáveis, pela manutenção

– De uma lista dos processos em execução.

– Dos respectivos estados (em execução, suspenso, ...)

– Da prioridade dos processos.

– Dos tempos de CPU atribuidos a cada processo.

Page 35: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 35

Sistemas de Operação – Arranque

• Quando o computador é ligado um pequeno programa de inicialização é executado automaticamente.

• Este programa está armazenado permanentemente numa parte não volátil da memória principal (ROM – Read Only Memory).

• O objectivo do programa de inicialização é fazer a transferência para a memória principal do sistema operativo que se encontra armazenado numa zona prédeterminada do disco rígido (ou outro periférico) e iniciar a sua execução.

• Uma vez iniciada a sua execução, o sistema operativo passa a controlar todas as actividades da máquina.

Page 36: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 36

Sistemas Multi-Utilizadores• Até aos anos 70/80 a tecnologia não permitia a construção de

computadores pessoais de forma económica. Nessa altura, a arquitectura habitual de um sistema computacional era de um computador “mainframe”, que incluia vários periféricos comuns (discos, impressora, ..) ao qual estavam ligados vários utilizadores através de terminais.

Mainframe Impressora

Discos

Discos

Page 37: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 37

Sistemas Multi-Utilizadores

• Nesses sistemas multi-utilizador o sistema operativo geria os vários utilizadores, dando-lhes, à vez, tempo de CPU, zonas separadas de memória, acesso concorrente aos periféricos, ...

• Com o aparecimento nos anos 80 de computadores pessoais, houve a possibilidade de substituir os terminais individuais por esses computadores pessoais (terminais inteligentes), que permitiam executar de uma forma autónoma várias tarefas.

Mainframe Impressora

Discos

Discos

Page 38: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 38

Redes Locais de Computadores• Esta mudança deu origem ao aparecimento de redes locais de

computadores em que vários computadores pessoais comunicavam entre si (ficheiros, mensagens, ...).

PC

PC

PCPC

“Servidor”

Impressora Base de Dados

• Salvo em organizações “grandes”, os mainframes foram substituídos por computadores menos potentes.

• Estes “servidores”, mantêm serviços e periféricos comuns (bases de dados, impressoras, etc...).

Page 39: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 39

Redes de Computadores• Por outro lado, a tecnologia de comunicações permitiu ligar os

servidores em redes de computadores não locais, em que uma infraestrutura de nós intermédios garantia o encaminhamento das mensagens entre servidores e utilizadores finais.

PC

PC

PCPC

Servidor

PC

PC

PCPC

Servidor

Page 40: Introdução aos Sistemas de Computadores

15 de Setembro de 2006 Introdução aos Sistemas de Computadores 40

Redes de Computadores

• As redes de computadores foram evoluindo ao longo do tempo desde a ARPANET (rede militar, com acesso a universidades) até à actual INTERNET.

• Os utilizadores ligam-se a servidores internet (ISPs) tornando-se seus “clientes” e acedendo a vários tipos de serviços através de programas apropriados, tais como:

– Browsers, dando acesso a páginas e outros serviços Web (suportados no protocolo HTTP)

– Transferência de ficheiros (protocolo FTP)

– Correio Electronico (por ex. Eudora, Netscape, Outlook)

– Voz (VoIP) por exemplo disponível no MSN Messenger