organização básica de computadores

33
Organização Básica de Computadores MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Março de 2017 (IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 1 / 33

Upload: others

Post on 15-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Organização Básica de Computadores

Organização Básica de Computadores

MC102 Algoritmos e Programação de ComputadoresInstituto de Computação

UNICAMP

Março de 2017

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 1 / 33

Page 2: Organização Básica de Computadores

Agradecimentos

Agradecimentos

Esta apresentação foi feita pelos alunos Celso Santos e Fernando Pereira,com auxílio dos materiais preparados pelos professores Eduardo C. Xavier eEdson Borin, do Instituto de Computação da Unicamp

Também foi utilizado parte do material preparado pela professora DeiseSaccol para suas aulas de conceitos básicos de arquitetura de computadoresda UFRGS

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 2 / 33

Page 3: Organização Básica de Computadores

Conteúdo

Conteúdo

1 Agradecimentos

2 Computadores e ProgramasComputadoresOrganizaçãoHardware

3 Sistemas OperacionaisSistemas OperacionaisLinux

4 SoftwareLinguagens de programaçãoCódigo binárioBitsHistórico

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 3 / 33

Page 4: Organização Básica de Computadores

Computadores e Programas Computadores

Computadores

Máquinas que manipulam informações (dados)

Programa: Sequência de operações necessárias para executar umadeterminada tarefa

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 4 / 33

Page 5: Organização Básica de Computadores

Computadores e Programas Organização

Organização básica de um computador

Tarefas complexas são transformadas em conjuntos de operações simples.Há uma hierarquia de procedimentos, cada um realizando uma tarefaespecífica.

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 5 / 33

Page 6: Organização Básica de Computadores

Computadores e Programas Hardware

Hardware

Dispositivos físicos que compõem o computador

Processador

Hard Disk (HD)

Memória

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 6 / 33

Page 7: Organização Básica de Computadores

Computadores e Programas Hardware

Organização Funcional

Sistema Central

Processador (CPU)

Clock

Memória

Interfaces

Unidades de Entrada e Saída (I/O)

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 7 / 33

Page 8: Organização Básica de Computadores

Computadores e Programas Hardware

Organização Funcional

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 8 / 33

Page 9: Organização Básica de Computadores

Computadores e Programas Hardware

Sistema central detalhado

Unidade Central de Processamento (UCP/CPU)

Unidade de controleControla o fluxo de informações entre todas as unidades do hardwareExecuta as instruções dadas em sequência

Unidade Aritmética e Lógica (ALU)Realiza as operações aritméticas e lógicas necessárias para a execução dasinstruções

ClockOs processadores trabalham regidos por um padrão de tempo, determinadopelo clockPulso de período fixo que sincroniza as operações de hardwareDetermina a frequência da execução das operações

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 9 / 33

Page 10: Organização Básica de Computadores

Computadores e Programas Hardware

Sistema central detalhado

MemóriaArmazena temporariamente dados e instruções utilizados pelo processador

Organizada em porções de armazenamento, cada uma com um endereço

RAM (Random Access Memory)Memória volátil e temporária

Utilizada para armazenar programas e dados do usuário

Recebe resultados intermediários de processamento

Informações podem ser lidas ou gravadas

ROM (Read Only Memory)Memória permanente (gravada pelo fabricante)

Utilizada para programas de iniciação e reconhecimento de hardware

Apenas Leitura

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 10 / 33

Page 11: Organização Básica de Computadores

Computadores e Programas Hardware

Unidades de entrada e saída

Dispositivos periféricos conectados ao computador, que estabelecem acomunicação com o mundo externoPossuem controladores que gerenciam a comunicação do dispositivo com amemória e o processador

Imagem retirada de https://conceitos.com/dispositivos-de-entrada-e-saida/

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 11 / 33

Page 12: Organização Básica de Computadores

Sistemas Operacionais Sistemas Operacionais

Sistemas Operacionais

O hardware executa as instruções de cada programaO acesso ao hardware é controlado por um programa especial conhecidocomo sistema operacionalO sistema operacional é o responsável pelo controle do hardware e pelasegurança dos dispositivosExemplos: Windows, Linux, OSX, Solaris

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 12 / 33

Page 13: Organização Básica de Computadores

Sistemas Operacionais Linux

O que é o Linux?

Sistema operacional de código aberto, escrito em C e gratuitoQualquer pessoa pode copiar e modificar o código para adaptá-lo às suasnecessidades, gerando as várias distribuições disponíveis; entre elas: Ubuntu,Fedora, Debian, Mint, Arch, ...No mundo, o Linux está presente em:

Quase a totalidade dos supercomputadoresMais de dois terços dos servidores WebNos dispositivos Android

O código fonte está disponível em https://github.com/torvalds/linux

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 13 / 33

Page 14: Organização Básica de Computadores

Sistemas Operacionais Linux

O que é o Linux?

É o sistema operacional instalado na maioria dos computadores da Unicamp eserá utilizado na disciplina de MC102

A distribuição disponível nos computadores das salas SI é o Fedora

Observação: As máquinas das salas SI apagam todos os arquivos salvos apósum logout. Lembre-se de sempre salvar os seus códigos em outro lugar

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 14 / 33

Page 15: Organização Básica de Computadores

Sistemas Operacionais Linux

Programas básicos

gedit: editor de texto

gcc: compilador C

firefox: navegador web

terminal: interface para execução de linhas de comando do sistemaoperacional

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 15 / 33

Page 16: Organização Básica de Computadores

Sistemas Operacionais Linux

Comandos básicos do terminal

cd: Muda para um diretório (Change Directory).cd DocumentosMuda para o diretório Documentos

mkdir: Cria um novo diretório (MaKe DIRectory)mkdir lab00Cria o diretório lab00

ls: Lista o conteúdo de um diretório (LiSt directory)ls DocumentosLista o conteúdo do diretório Documentos

lsLista o conteúdo do diretório atual

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 16 / 33

Page 17: Organização Básica de Computadores

Sistemas Operacionais Linux

Comandos básicos do terminal

mv: Move arquivos para um diretório (MoVe)mv lab00.c mc102/Move o arquivo lab00.c do diretório atual para o diretório mc102

diff: Compara dois arquivos (DIFFerence)diff texto1 texto2Mostra, linha a linha, as diferenças entre os arquivos texto1 e texto2

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 17 / 33

Page 18: Organização Básica de Computadores

Sistemas Operacionais Linux

Escrevendo e compilando um programa pelo terminal

Abra um terminal:Aplicações → Acessórios → Terminal

Applications → System Tools → Terminal

Crie uma pasta para salvar seus programas

Abra o gedit

Copie o programa que será projetado no editor

Salve o arquivo com extensão ".c"na pasta criada

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 18 / 33

Page 19: Organização Básica de Computadores

Sistemas Operacionais Linux

Escrevendo e compilando um programa pelo terminal

No terminal, navegue até a pasta onde o programa foi armazenadocd nome-da-pasta

Utilize a linha de comando abaixo para compilar o programagcc lab00.c -pedantic -Wall -Werror -ansi -o lab00

O arquivo "lab00"gerado pela compilação acima é um executável que podeser rodado pelo seguinte comando:

./lab00

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 19 / 33

Page 20: Organização Básica de Computadores

Software Linguagens de programação

Linguagens de programação

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 20 / 33

Page 21: Organização Básica de Computadores

Software Linguagens de programação

Linguagens de programação

Linguagem de alto nível (C/C++, ...)Laços, variáveis, objetos, ...Independente de máquina

Linguagem de baixo nívelSequência de instruções, registradores,posições de memória, ...Dependente de máquina

Código binário (0’s e 1’s)

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 21 / 33

Page 22: Organização Básica de Computadores

Software Código binário

Sistema Binário

Sistema de numeração posicional de base 2 (dígitos 0 e 1, apenas)

É o sistema de numeração utilizado pelos computadores

n2 = 100

n2 = 1

n2 = 101001

n10 = 100

n10 = 1

n10 = 234

(101001)2 = (41)10

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 22 / 33

Page 23: Organização Básica de Computadores

Software Código binário

Conversão: base 2 → base 10

Seja n um número de d dígitos, quando escrito na base 2

Considere uma sequência formada pelos dígitos de n, ordenados da direitapara a esquerda

Seja n[i ] o dígito de n na posição i

Assim, n escrito na base 10 é dado por:

n10 = n[0] ∗ 20 + n[1] ∗ 21 + ...+ n[d − 1] ∗ 2d−1

n10 =d−1∑i=0

n[i ] ∗ 2i

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 23 / 33

Page 24: Organização Básica de Computadores

Software Código binário

Exemplo: base 2 → base 10

n2 = 10011

n[0] = 1,n[1] = 1,n[2] = 0,n[3] = 0,n[4] = 1,

n10 = 1 · 20 + 1 · 21 + 0 · 22 + 0 · 23 + 1 · 24 =n10 = 1+ 2+ 0+ 0+ 16 =n10 = 19

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 24 / 33

Page 25: Organização Básica de Computadores

Software Código binário

Conversão: base 10 → base 2

Método das divisões sucessivas:

Seja n um número em base decimal

Divida n por 2, e seja r o resto desta divisão

Então, r será o dígito menos significativo de n na base 2

Seja q o quociente da divisão de n por 2

Divida, agora, q por 2, repetindo o processo até que o quociente seja 0

Os restos das divisões realizadas são os dígitos de n na base binária, sendo oúltimo resto o dígito mais significativo

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 25 / 33

Page 26: Organização Básica de Computadores

Software Código binário

Exemplo: base 10 → base 2

n10 = 237q = 237/2 = 118 → r = 1q = 118/2 = 59 → r = 0q = 59/2 = 29 → r = 1q = 29/2 = 14 → r = 1q = 14/2 = 7 → r = 0q = 7/2 = 3 → r = 1q = 3/2 = 1 → r = 1q = 1/2 = 0 → r = 1

Logo, n2 = 11101101

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 26 / 33

Page 27: Organização Básica de Computadores

Software Bits

Sistema Binário

Todo hardware opera com sinais digitais: ’sem energia’ e ’com energia’. Pararepresentar esses sinais, utilizamos os valores 0 e 1

Estes sinais são chamados de bits

Byte: Agrupamento de 8 bits

1024 bytes = 1MB, 1024 MB = 1 GB, ...

Dentro do computador, letras e símbolos são representados por números

Todo programa, instrução e dado de um computador é armazenado em bits

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 27 / 33

Page 28: Organização Básica de Computadores

Software Bits

Exemplo: arquivo de imagem

Cada arquivo de imagem do computador possui header que identificapropriedades da imagemCada campo possui uma função específica e tem uma quantidade de bytespré-determinada

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 28 / 33

Page 29: Organização Básica de Computadores

Software Bits

Exemplo: programa em linguagem de máquina

Um programa é um arquivo

Cada programa é composto por milhares de instruções deste tipo

00100111101111011111111111100000 1010111110111111000000000001010010101111101001000000000000100000 1010111110100101000000000010010010101111101000000000000000011000 1010111110100000000000000001110010001111101011100000000000011100 1000111110111000000000000001100000000001110011100000000000011001 0010010111001000000000000000000100101001000000010000000001100101 1010111110101000000000000001110000000000000000000111100000010010 0000001100001111110010000010000100010100001000001111111111110111 1010111110111001000000000001100000111100000001000001000000000000 1000111110100101000000000001100000001100000100000000000011101100 0010010010000100000001000011000010001111101111110000000000010100 0010011110111101000000000010000000000011111000000000000000001000 00000000000000000001000000100001

Este código calcula e imprime a soma dos quadrados dos inteiros de 0 a 100

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 29 / 33

Page 30: Organização Básica de Computadores

Software Histórico

Primórdios da computação: Colossus

Máquina inglesa criada para para resolver problemas de criptografia durante aguerraProgramada com chaves ON/OFF (binário)

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 30 / 33

Page 31: Organização Básica de Computadores

Software Histórico

Melhoria: Linguagem Assembly

Linguagem de baixo nível para representar as instruções em código binário

Um programa chamado montador (assembler) faz a transformação paracódigo binário

LOOP:MOV A, 3INC AJMP LOOP

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 31 / 33

Page 32: Organização Básica de Computadores

Software Histórico

Linguagens de alto nível e compiladores

Mais distantes da máquina e mais próximas de linguagens naturais (inglês,português, etc.)

Apesar de mais compreensiveis, elas não são ambíguas

O compilador as transforma em código executável

Exemplos de linguagens:C, C++, C#JavaPythonPascal

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 32 / 33

Page 33: Organização Básica de Computadores

Software Histórico

(IC - Instituto de Computação) MC102 - 1 semestre de 2017 Março de 2017 33 / 33