Sei sulla pagina 1di 124

Curso de Introdução à Informática

GUILHERME LIMA

Curso de Introdução à Informática

SALVADOR - BAHIA, 2014

Ficha Catalográfica

LIMA, Guilherme Soares Curso de Introdução à Informática – Salvador, BA,

2014.

1. Ciência da Computação. 2. Introdução à Informática. I. Lima, Guilherme Soares. II. Título

CDD: 004

Curso de Introdução à Informática

5

SUMÁRIO

PREFÁCIO

DO CURSO

7

AULA 01 – BREVE HISTÓRICO, INTRODUÇÃO

8

AULA 02 – NOÇÕES DE ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES

13

AULA 03 – EXECUÇÃO DE PROGRAMAS

20

AULA 04 – SUBSISTEMAS DE MEMÓRIAS

25

AULA

05

CPU

32

AULA 06 – DISPOSITIVOS DE ENTRADA E SAÍDA

40

AULA

07

IMPRESSORAS

46

AULA 08 – SISTEMAS E CONVERSÕES DE BASE

52

AULA 09 – ARITIMÉTICA NÃO-DECIMAL

58

AULA 10 – AVALIAÇÃO DE APRENDIZAGEM I

62

AULA 11 – NOÇÕES DE LÓGICA DIGITAL

67

AULA 12 – NOÇÕES DE SISTEMAS

OPERACIONAIS.

.74

AULA 13 – NOÇÕES DE SISTEMAS OPERACIONAIS – WINDOWS E LINUX

80

AULA 14 – NOÇÕES DE SISTEMAS EMBARCADOS

85

AULA 15 – NOÇÕES DE REDES DE COMPUTADORES 92

AULA 16 – NOÇÕES DE INTERNET

100

AULA 17 – DESENVOLVIMENTO DE SOFTWARE

105

AULA

18

MALWARES

109

AULA 19 – SEGURANÇA DA INFORMAÇÃO

113

AULA 20 – AVALIAÇÃO DE APRENDIZAGEM II

119

BIBLIOGRAFIA

 

122

6

Curso de Introdução à Informática

PREFÁCIO DO CURSO

Apresento-lhes esse pequeno livro, que consiste numa introdução à cursos de introdução à informática, sobretudo para cursos da área de ti. Depois de refletir um pouco sobre as reais possibilidades de edição desse livro, dada a ditadura das editoras do sudeste, e pelo fato de não possuir títulos acadêmicos, resolvi lançar esse livro na internet, sob a licença Creative Commons: Atribuição - Uso Não Comercial - compartilhamento pela mesma Licença (by-nc-sa). Faço votos que ele lhe seja um livro útil e esclarescedor.

O autor gslima@projetosti.com.br 28 de Agosto de 2010

Curso de Introdução à Informática AULA 01 – BREVE HISTÓRICO, INTRODUÇÃO

7

Quando vamos iniciar nossos estudos sobre computação ou informática, temos que nos indagar sobre o objeto que é o computador. Você sabe o que é um computador? Pela definição do dicionário, temos: “que ou aquele que faz cômputos, que calcula” (definição no sentido amplo), “aparelho concebido para desempenhar cálculos e operações lógicas com facilidade, rapidez e confiabilidade, segundo instruções (programas) nele introduzidas, constituído, de um modo geral, por unidade(s) de introdução (input), unidade de processamento central (C.P.U.), unidade de armazenamento principal permanente, memória temporária e unidade(s) de saída (output)” (definição no sentido estrito). Se o computador é qualquer objeto capaz de calcular, temos que o histórico das máquinas que calculam remonta longas épocas, começando com o ábaco. A história da computação se divide em 2 épocas: a época pré-eletrônica e a eletrônica

em 2 épocas: a época pré-eletrônica e a eletrônica Ábaco 2000 AC Calculadora Mecânica 1500DC Muito

Ábaco 2000 AC

a época pré-eletrônica e a eletrônica Ábaco 2000 AC Calculadora Mecânica 1500DC Muito tempo depois, Leonardo

Calculadora Mecânica 1500DC

Muito tempo depois, Leonardo Da Vinci concebeu a primeira calculadora mecânica (1500DC). Depois disso, ossos de Napier eram usados para calcular logaritmos (1614). Após isso surgiram as réguas de cálculo, que permitiam fazer diversas operações (1621).

8

Curso de Introdução à Informática

8 Curso de Introdução à Informática Ossos de Napier (1614) Régua de Cálculo (1621) Então, surgiu

Ossos de Napier (1614)

Curso de Introdução à Informática Ossos de Napier (1614) Régua de Cálculo (1621) Então, surgiu a

Régua de Cálculo (1621)

Então,

surgiu

a

máquina

aritimética

ou

pascalina

(1642). E depois, a calculadora universal de Leibniz (1672).

(1642). E depois, a calculadora universal de Leibniz (1672). Máquina Pascalina (1642) Calculadora Universal (1672)

Máquina Pascalina (1642)

universal de Leibniz (1672). Máquina Pascalina (1642) Calculadora Universal (1672) Surgiram outras máquinas.

Calculadora Universal (1672)

Surgiram outras máquinas. Entretanto uma se destacou na história da computação: foi a máquina que fez o censo de 1890 nos EUA. O censo era feito antigamente de 10 em 10 anos, e eles estavam demorando 7 anos para calculá-lo. Eles se deram conta que da próxima vez que fossem fazer o censo, talvez não desse tempo, além disso eles queriam que o processo fosse mais rápido. Aí criou-se uma máquina específica para tabular o censo 1890 nos EUA. O resultado dessa máquina foi ótimo, em apenas 1 ano conseguiram fazer toda a tabulação do censo. Depois, em 1911, ela vai formar a IBM – Internacional Bussiness Machines. Tracemos então um histórico sobre os computadores:

2000 A.C. – Ábaco

1614 – Tábua de Napier

1621 – Réguas de Cálculo (Oughtred)

1642 – Pascaline (Pascal)

Curso de Introdução à Informática

9

1672 – Calculadora Universal (Leibniz)

1805 – Tábuas perfuradas (Jaquard)

1820 – Arithometer (Thomas)

1834 – Máquina Analítica (Babbage)

1854 – Álgebra Booleana (Boole)

1880 – Hollerith (censo de 1880)

- TMC – Tabulator Machine (1890) Company

- IBM – International Business Machines

1901 – Máquina Ellis (Halcom Ellis)

- Precursora da máquina de contabilidade

1907 – Cartão perfurado (Powers)

1944 – MARK I (relés eletromecânicos)

1945 – ENIAC (válvulas a vácuo)

1949 – EDVAC (circuitos eletrônicos)

1957 – Linguagem Fortran

1964 – Linguagem Basic

1971 – Surgimento do microprocessador Microprocessador comercial Intel 4004

1972 – Brasil (Dismac)

1975 – Primeiro microcomputador produzido industrialmente – Altair 8800

1975 – Processador Intel 8080

1976 – 1º micro com sucesso comercial – Apple. Várias empresas fabricantes entram no mercado que está em franca expansão 1981 – Só em 1981 a IBM lança seu computador

pessoal o IBM-PC. A concorrência da IBM começa a lançar os computadores PC-compatíveis, pois a IBM tinha aberto a sua arquitetura desde 1969

1983 – Apple lança o Macintosh pra fazer frente a

IBM. O computador possui interface gráfica

A segunda coisa mais importante do histórico da computação, é o legado da arquitetura von Neumann. John von Neumann propôs que as instruções, que na na época eram lidas por cartões perfurados, fossem gravadas na memória do computador; o que faria sua execução e leitura

10

Curso de Introdução à Informática

mais rápidas, já que se davam eletronicamente. Esse modelo é utilizado até hoje. Os computadores como entendemos hoje possuem essa arquitetura. Muitos consideram que computadores como se entende hoje, só começou a partir da década de 40. Podemos percerber que a computação como entendemos hoje só começa mesmo a partir da década de 1940. Temos, então como consolidar um quadro sinóptico, divindo os computadores em cinco gerações, que variam conforme os avanços e revoluções na sua construção:

1ª geração (1940-1952)

-Computadores a base de válvulas a vácuo e relés (interruptores acionados eletricamente) -Usados para aplicações científicas e militares -Armazenamento de dados em cartões perfurados -Programação na linguagem de máquina

2ª geração (1952-1964)

-Computadores baseados nos transistores -Máquinas bem menores -Aplicações científicas, militares, e agora também, administrativa e gerencial -Primeiras linguagens de programação -Fitas magnéticas e tambores magnéticos como memória

3ª geração (1964-1971)

-Computadores baseados em circuitos integrados -Grande evolução dos Sistemas operacionais -Memória em semicondutores e discos magnéticos -Multiprogramação, Real time

4ª geração (1971-1981)

-Início com o surgimento do microprocessador -Grande redução do tamanho dos computadores -Surgem muitas linguagens de alto-nível -Surge a teleinformática

5ª geração (1981 até a atualidade)

-Processadores com altíssima velocidade de processamento -Inteligência Artificial

Curso de Introdução à Informática

11

Exercícios para sala de aula (Valendo 0,3):

1. O que aconteceu nos EUA durante os censos de 1880 e 1890?

2. Qual a vantagem da arquitetura von Neumann?

3. Quantas gerações de computadores existem? Diga 2 características de cada uma.

12

Curso de Introdução à Informática

AULA 02 – NOÇÕES DE ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES

Um computador de arquitetura von Neumann funciona da seguinte forma:

de arquitetura von Neumann funciona da seguinte forma: Com a entrada de dados, ocorre o processamento

Com a entrada de dados, ocorre o processamento deles.

O processador manda os dados para a memória. Depois disso

ocorrem processamentos e ocorre a saída. E internamente, como o computador se organiza para apresentar uma saída? Um computador é feito internamente por camadas. E como são essas camadas?

Usuários

Programas

Sistema Operacional

BIOS

Hardware

O Hardware é a porção física, é a máquina em si. É

considerado nível mais baixo de um computador. Software é

a porção abstrata, não-física, geralmente necessária para o

funcionamento da máquina. Digo geralmente, pois todo software, em teoria, pode ser convertido num hardware, e vice-versa (é claro que se um hardware é convertido num software, ele ainda vai precisar de um hardware para rodar). O software e hardware são logicamente equivalentes entre si.

Curso de Introdução à Informática

13

Um exemplo disso é um emulador de Playstation. Por que é possível jogar um jogo de Playstation em um PC, se eles possuem arquiteturas diferentes? Simples, foi feito um software que simula um hardware Playstation, a partir do hardware do PC. Ele converte instruções de um em instruções de outro. E o que tem dentro de um computador: o processador (CPU), a placa mãe (motherboard ou MOBO), o HD (Hard Disk ou Disco Rígido), a memória RAM, um flash BIOS (que vem com a placa mãe) e uma fonte de alimentação. Na placa mãe são encaixados o processador e a memória, sendo a placa mãe ligada a fonte (que já está no gabinete), em seguida. Pode-se então ligar o disco rígido à placa mãe. Então se liga os LEDs (as luzinhas do gabinete) e o botão de liga.

liga os LEDs (as luzinhas do gabinete) e o botão de liga. Fonte Memória (Frente e

Fonte

os LEDs (as luzinhas do gabinete) e o botão de liga. Fonte Memória (Frente e verso)

Memória (Frente e verso)

e o botão de liga. Fonte Memória (Frente e verso) Disco Rígido (HD) Placa Mãe (Motherboard)

Disco Rígido (HD)

de liga. Fonte Memória (Frente e verso) Disco Rígido (HD) Placa Mãe (Motherboard) Processador (Frente e

Placa Mãe (Motherboard)

Fonte Memória (Frente e verso) Disco Rígido (HD) Placa Mãe (Motherboard) Processador (Frente e verso) Flash

Processador (Frente e verso)

Fonte Memória (Frente e verso) Disco Rígido (HD) Placa Mãe (Motherboard) Processador (Frente e verso) Flash

Flash BIOS

14

Curso de Introdução à Informática

O BIOS (Basic Input-Output System) (Sistema Básico de Entrada e Saída) é o software responsável por saber manipular o hardware em seu nível mais baixo. Sobre a necessidade da BIOS: imagine que para gravar em um Disco Rígido (HD – Hard Drive) uma determinada informação, eu precise saber a que velocidade está se movendo o disco internamente, onde está a cabeça de leitura, entre outros detalhes de gravação. Agora, imagine que eu sou o programador. Já pensou se eu tivesse que saber cada detalhe de gravação e a cada vez que uma pessoa fosse programar tivesse que conhecer esses detalhes? O BIOS, quando liga, executa o POST (Power-On Self-Test), que testa todo o hardware conectado na máquina, antes de dar a vez ao sistema operacional. O BIOS não sabe nem o que é um arquivo. Inicialmente os BIOS eram gravados em memória ROM (Read-Only Memory) (Memória Somente de Leitura), que recebem esse nome porque os dados são gravados nelas apenas uma vez e não são perdidos quando a máquina é desligada. Depois apareceram outras memórias, que permitiam ser feitas reprogramações. Na EPROM (Erasable Programmable Read-Only Memory) (Memória Somente de Leitura Programável e Apagável) isso é feito com o auxílio de um componente que emite luz ultravioleta. Na EEPROM (Electrically-Erasable Programmable Read-Only Memory) (Memória Somente de Leitura Eletricamente Programável e Apagável), ocorreu um grande avanço, uma vez que não passou a ser necessário mover o dispositivo de seu lugar para um aparelho especial para que a regravação ocorra. Na Flash (maioria dos BIOS atuais), as memórias Flash também podem ser vistas como um tipo de EEPROM, no entanto, o processo de gravação (e regravação) é muito mais rápido.

Curso de Introdução à Informática

15

O SO (Sistema Operacional) (Operating System –

OS), por sua vez não conhece os detalhes do hardware, mas,

por sua vez, sabe o que é um arquivo e traduz as instruções de gravação de um arquivo para o BIOS em termos de dados

e endereços. Exemplo: Grave no endereço 0F0F0F0F o valor

255.

Existe então o conceito de System Call (Chamada de Sistema). Um programa sequer conhece endereços, mas sabe que existe uma subrotina no Sistema Operacional que contém algum nível de detalhe sobre o como gravar os arquivos.

Os Sistemas Operacionais modernos isolam o hardware

de tal forma, que se uma pessoa quiser ter acesso direto ao

hardware, isso simplesmente não é possível, mesmo que quem estiver programando saiba os detalhes do como a coisa aconteça internamente.

O Sistema Operacional tem como funções básicas: 1.

Servir de conjuntos de rotinas para atender programas (sendo

a execução sem ordem pré-definida); 2. O gerenciamento de

recursos (sendo imprescindível para o compartilhamento de memória, processador, etc.); 3. Servir de interface homem-máquina (permitindo que o usuário tenha fácil acesso aos recursos, além de isolar a complexidade da máquina, ou seja, o usuário pode nem ter ideia do que acontece internamente). É claro que não é na forma referida a alguns parágrafos atrás que é feita a gravação internamente no computador. Dentro do computador, tudo são zeros e uns. E como esses zeros e uns são representados? Por meio de voltagens de correntes que passam pelos circuitos. Tecnicamente quaisquer níveis de voltagem poderiam ser usados para representar zeros e uns. Já se tentou fazer computadores que utilizam mais de 2 digítos internamente, porém, essas máquinas são muitíssimo mais complexas, e por isso não se tornou um modelo bem sucedido.

16

Curso de Introdução à Informática

Por exemplo, memórias DDR usam em torno de 0,2 V para representar o zero e cerca de 2,5 V para representar o um. Valores diferentes podem ser usados, dependendo da tecnologia. Esses valores zeros e uns, são os chamados de bits. Bit

é uma simplificação para o inglês do dígito binário, "BInary

digiT". Como representar os números, letras e figuras só com dois números? Isso é possível? É sim. Se eu tiver uma quantidade suficiente de zeros e uns eu posso representar o que eu quiser. Da mesma forma como eu posso representar o

alfabeto, que tem 26 letras (cada uma com um símbolo diferente), com números de 00 a 25. Cada letra representa um número e dois números representam uma letra. Com dois dígitos é a mesma coisa. Mais adiante vamos ver como converter um número binário (de base 2, ou seja, só tem 0 e 1) (bi – do latim dois) em decimal. Muito embora o BIOS exista, os sistemas operacionais modernos vem substituindo, cada vez mais, a execução de tarefas, anteriormente executada pela BIOS. Drivers são rotinas que manipulam os dispositivos, que aparecem tanto nos BIOS quanto nos Sistemas Operacionais, muito embora os drivers do BIOS sejam bem mais simples. Tecnicamente, é possível incorporar à BIOS um sistema operacional, como o projeto coreboot (ex-LinuxBIOS) tem demonstrado. Inclusive, é possível dar

o boot num Linux com interface gráfica, exclusivamente a

partir de um chip de memória de 2 megas destinado ao BIOS.

(V.

http://www.hermann-uwe.de/blog/linuxbios-with-x11-server-

http://youtube.com/watch?v=

completely-in-flash-rom

nuzRsXKm_NQ) Quanto à classificação da arquitetura (taxionomia de Flynn), os computadores podem ser:

e

Curso de Introdução à Informática

17

SISD Single Instruction Single Data

É

tipo que executa um único fluxo de dados, para operar em

dados armazenados em uma única memória. Ex.: Máquina de von Neumann Clássica.

MISD Multiple Instruction Single Data

É

um tipo de arquitetura de computação paralela, onde muitas

unidades funcionais executam operações diferentes sobre os mesmos dados, para fins de checagem de erro. Não existem muitos exemplos, uma vez que a MIMD é mais adequada para a maioria dos casos em que essa funcionalidade é desejada. Ex:

processadores com arquiteturas pipeline (GPU – Graphical Processor Unit – Unidade de Processamento Gráfico).

SIMD Single Instruction Multiple Data

É

quando se tem uma única instrução aplicada simultaneamente a

diversos dados para produzir mais resultados. Ex.: São os antigos Computadores vetoriais, supercomputadores e computares modernos single core (um núcleo).

MIMD Multiple Instruction Multiple Data

Consiste em CPUs diferentes que executam programas iguais compartilhando memória comum e cálculos coincidentes, cada processador tem acesso à memória compartilhada. Ex.: Múltiplos processadores, processadores multiple core (dois ou mais núcleos): SMP (Simetric Multi-Processing – vários processadores trabalhando em conjunto), cluster (vários computadores diferentes, funcionando como apenas um sistema).

18

Curso de Introdução à Informática

Avaliação de sala de aula (Valendo 0,3):

1)

Como funciona uma máquina de von Neumann?

2)

Descreva as camadas internas do computador.

3)

Qual a diferença entre hardware e software?

4) Explique a frase: “O software e o hardware são equivalentes entre si”. Cite um exemplo em que isso é

5)

verdade. O que significa a sigla BIOS? O que ele faz?

6)

Quais as funções de um Sistema Operacional?

7) Como são representadas as coisas dentro do computador? Como isso é possível?

8) O que é um bit? Como ele é representado dentro do computador?

9)

10) É possível integrar um SO à BIOS? 11) Quais os tipos de arquitetura de computadores, pela

Quais os tipos de memória que armazenam o BIOS?

classificação de Flynn?

Curso de Introdução à Informática AULA 03 – EXECUÇÃO DE PROGRAMAS

19

Imaginemos que tenhamos um processador single core. Esse processador tem a capacidade de executar uma instrução por vez. Existem 3 tipos de instrução que um processador entende: 1. a instrução lógica-aritimética (que efetua operações lógicas e aritméticas), 2. a instrução de desvio (que interrompe o fluxo linear do programa, como por exemplo, num if), 3. a instrução de movimentação de dados (que p.ex. movimenta um determinado dado da memória para dentro do processador). E como são executadas instruções no computador, uma vez que tudo dentro dele são zeros e uns? Simples, nós convencionamos que, por exemplo, a soma é efetuada quando o número 10001111 aparece no processador. E assim eu tenho todo o conjunto de instruções possíveis de um processador. Mas como esses zeros e uns aparecem? Eu preciso digitar zeros e uns para criar um programa? Na época do ronca era mais ou menos assim. Mas hoje em dia (e há vários anos) existem os programas chamados de tradutores. Os tradutores vão converter instruções feitas numa linguagem mais próxima ao dos seres humanos, chamada de linguagem de programação, em linguagem de máquina (zeros e uns). A linguagem de programação não é aleatória, o programador tem que obecer uma sintaxe, que é um conjunto de regras específico, pré-definido. Eis uma lista com as principais linguagens ainda vivas

hoje:

Linguagem

Ano

Observações

Fortran

1957

Aplicações na engenharia.

Cobol

1959

Fins comerciais

Basic

1964

Popularizada com o IBM-PC, pois vinha no DOS um compilador Basic.

20

Curso de Introdução à Informática

Pascal

1968

Desenvolvida pela academia para estudantes aprenderem uma linguagem.

C

1967

Muito usada para criação de SO e compiladores

SQL

1984

Usada para Banco de Dados

Perl

1987

Destinada a substituir a linguagem de Shell do Unix

Phyton

1991

Um substituto do PERL

Delphi

1994

Semelhante ao Pascal, mas com orientação a objetos

Ruby

1994

Uma alternativa ao Phyton

Java

1994

Independência de plataforma. Sem ponteiros, ao contrário de C.

PHP

1995

Uma linguagem para Web

C#

2000

A linguagem padrão do framework .NET

(C sharp)

Existem basicamente 3 tipos de tradutores: o compilador, o interpretador e o montador. No compilador, a programação é feita em alto nível,

ou seja, 1 único comando que você escreve, pode ter mais de uma instrução de máquina (e muitas vezes isso ocorre de fato). Pois bem você escreve seu “write” no Pascal e o compilador se encarrega de gerar o arquivo binário, com

todas as instruções de máquina necessárias para ele executar

ou rodar. Um compilador no processo de transformação do

código-fonte para o código-objeto, efetua 3 análises: 1. Análise Léxica. 2. Análise Sintática. 3. Análise Semântica.

A léxica corresponde a separar as coisas em elementos

distintos, a sintática, a analisar as possíveis ordens válidas dos elementos, e a semântica, a analisar as regras semânticas estáticas ou a compatibilidade de tipos de variáveis. No interpretador, existe um programa que fica na memória que é capaz de abrir um arquivo-fonte (arquivo escrito com uma linguagem de programação), e na medida em que vai varrendo o arquivo, vai transformando as instruções em código de máquina, fazendo as mesmas 3

Curso de Introdução à Informática

21

análises do compilador. Exemplos de linguagem interpretada:

Basic Tradicional, PERL, PHP e Phyton. E qual a vantagem da linguagem interpretada? É que todos os programas são de código aberto, tornando mais fácil a identificação de erros. E qual o preço disso? Desempenho mais baixo. No montador, a programação é feita em baixo nível (Assembly), onde um programa (Assembler) traduz uma instrução em Assembly, para uma instrução de máquina. Assembly é tida como uma linguagem mnemônica, ou seja, relativo a memória (humana), pois é uma maneira “amigável” de se lembrar dos comandos. Exemplo, o que você prefere: decorar que uma instrução de movimentação corresponde à palavra MOV, ou decorar um número 10101110? Pois é. Algum espertinho poderia perguntar: “mas e se as máquinas tiverem arquiteturas diferentes, um programa em binário não seriam compatíveis”. Não necessáriamente. No PC, todas as gerações seguintes de processadores são compatíveis com as anteriores. Entretanto para outras arquiteturas de processadores, isso não seria uma realidade (ex: SPARC, PowerPC, ARM). Além disso, ainda existe a questão do sistema operacional. Um programa binário em Windows ordinariamente não roda em Linux e vice-versa. (Embora exista o projeto Wine, do Linux, que permite rodar aplicativos Windows e está bem avançado no momento em que escrevo). O código-fonte raramente pode ser compilado entre PCs com sistema operacionais diferente, pois os programadores usam normalmente recursos dos compiladores que são implementados de forma diferente de Sistema Operacional para SO. Diz-se então que têm que se fazer um port ou portar o programa para outra plataforma. Java é um caso de uma linguagem especial, que é tanto compilada, quanto interpretada. Isso ocorre pois o desenvolvedor quis atingir uma compatibilidade binária em

22

Curso de Introdução à Informática

multiplataformas (Windows, Linux, outras). O que ocorre é o seguinte: o código fonte é compilado para uma plataforma virtual, um hardware que não existe, gerando o chamado bytecode. Depois na hora de rodar o programa, chama-se a Java Virtual Machine (JVM), que vai ler esse bytecode e transformar em linguagem de máquina da plataforma, qualquer que seja o processador ou SO. E qual a vantagem disso? A vantagem é que se eu trocar de máquina ou Sistema Operacional, eu não preciso recompilar meu programa. Nesse sentido, a JVM é um pouco mais que uma simples emulação de hardware, sendo, segundo Tanebaum, um autêntico Sistema Operacional, traduzindo instruções desse Sistema para o Sistema Operacional real. Retomando a questão dos compiladores, existe o que nós chamamos de linkedição. O processo de compilação de sistemas costuma ser um pouco demorado. Pois bem, se cada vez que o desenvolvedor fosse testar o seu sistema, ele tivesse que compilar tudo do zero, testar seria uma tarefa tediosa. No entanto, criou-se o que se chamou de linkedição, que permite com que bibliotecas fiquem prontas compiladas em arquivos, prontas para serem ligadas a outros módulos do programa. O processo de linkedição funciona como se fosse uma cola de binários para os diversos módulos e bibliotecas, gerando um arquivo executável. Ou seja, só precisa ser recompilada efetivamente a parte que sofreu alterações. As bibliotecas no caso, passam a se comportar como elementos externos ao programa principal, mas dentro do próprio arquivo. Toda vez que a biblioteca é referenciada, há uma chamada de biblioteca (library call) ou chamada externa. Outra questão importante da linkedição é: pode um programa ser feito parcialmente em uma linguagem e parcialmente em outra linguagem? Pode sim, graças à possibilidade das chamadas externas. Um programa em Pascal pode usar, por exemplo, uma biblioteca feita em Assembly, ou mesmo em C.

Curso de Introdução à Informática

23

Há também os chamados carregadores (loaders). Os carregadores são basicamente linkeditores que efetuam a remoção de partes da biblioteca não usadas, tornando o programa menor e mais rápido, ou seja, eles carregam segmentos relevantes do programa para a memória. Não geram executáveis. É comum os autores fazerem confusão no processo de compilação e linkedição. Isso porque a maioria esmagadora dos compiladores já traz nele mesmo ferramentas de linkedição. Alguns até definem código-objeto como sendo um código de máquina não executável. O fato é que o processo de compilação, no sentido estrito, corresponde somente à transformação do código-fonte em código-objeto não pronto para execução. No sentido amplo, sim, a compilação corresponde a todo o processo de transformação no executável, incluindo a linkedição. Mesmo em um programa pequeno, como por exemplo, em Pascal, há o “uses crt”, uma biblioteca básica, então há linkedição.

Avaliação de sala de aula (Valendo 0,3):

1. Quantos e quais tipos de instruções existem?

2. Como as instruções são executadas pelo processador?

3. Que são tradutores? Quais os tipos de tradutores existem?

4. Que é sintaxe?

5. Qual a diferença entre compilação, interpretação e montagem?

6. Por que um programa binário pode não rodar em máquinas diferentes? E um em código-fonte?

7. Java é compilado ou interpretado? Explique.

8. O que é referência externa?

9. O que é linkedição?

10. Qual a diferença entre um código-objeto e um código-executável? Discuta.

quê

11.Tudo

que

é

compilado

é

executável?

Por

(sim/não)?

24

Curso de Introdução à Informática

AULA 04 – SUBSISTEMAS DE MEMÓRIAS

As funções da memória de um computador são só o armazenamento e a leitura. Ou eu quero escrever um dado ou eu quero ler um dado, é simples assim. Como vimos as memórias são representadas internamente por bits. Grupo de bits tratados de uma única vez na memória principal (RAM) é chamado de célula (mais raramente chamado de bloco e setor). Uma célula corresponde a uma quantidade de bits pré-determinada, que recebe um determinado endereço. O sistema de controle de memórias é construído a partir de endereços. A memória principal, contudo, não é a única memória existente. Existe uma hierarquia de memórias. A CPU também possui memória. Está no topo da hierarquia. Essa memória é chamada de registrador. O registrador é um tipo de memória extremamente rápida, mas muito pequena. Para se ter ideia do espaço dos registradores, eles são da ordem de bits, por exemplo: 8, 16, 32 e 64 bits. Existem registradores de propósito geral e específico, ou seja, existem aqueles que se pode colocar qualquer conteúdo e tem outros que tem uma finalidade especial, como, por exemplo, o incremento de uma variável para um laço. A memória cache é a seguinte na hierarquia, é mais lenta que os registradores, porém é mais rápida que a memória principal. Antigamente a memória cache ficava fora do processador. Depois se passou a definir os caches em níveis, e os níveis mais altos ficavam fora da CPU. Modernamente todos os caches estão na CPU (a partir Intel Core i7). Sobre a necessidade do cache: por quê complicar o design da máquina colocando uma memória intermediária? Por que não fazer uma memória principal com o mesmo material da cachê? A resposta é: performance com baixo custo. A memória cache é cara. A ideia por trás do cache é a seguinte: eu tenho que acessar dados na memória que se repetem ou o dado seguinte na sequencia de endereços. Por que não ter uma memória mais rápida que guarde esses dados

Curso de Introdução à Informática

25

repetitivos e sequenciais para que não precise gastar um valioso tempo indo à memória principal? Pois é. E a taxa de acerto dos caches é superior a 95%. Existem três tipos de cache: L1, L2 e L3 (L se refere ao inglês level ou nível). O L1 é o que fica mais próximo ao processador. Além disso, os dados armazenados nela já estão decodificados, preparados para que o processador precise apenas executar a instrução. Já a L2, também dentro do processador, não tem as informações decodificadas; e é um pouco maior que a L1. O cache L3 não está presente em todos os computadores – apenas em servidores, desde 2001, e em desktops a partir da série Core i7 (no caso da Intel®). Antes, com apenas um núcleo ou core, não havia essa necessidade. Hoje, temos um L1 e um L2 para cada core, além do L3, que é compartilhado. Para se ter ideia do tamanho dos caches, no Core i7, o cache L1 tem 32 kB para instruções e 32 kB para dados, totalizando 64kB, o L2 tem 256 kB, e o L3, 8 MB. A memória principal é a chamada memória RAM (Random Acess Memory – Memória de Acesso Aleatório), evoluiu muito desde os primeiros computadores. O nome RAM se dá porque o acesso pode ser feito a qualquer endereço, sem mudança da velocidade. Os tipos de memória que existem são:

A DRAM (Dynamic RAM, RAM dinâmico) é o tipo de memória do início da computação. São memórias cujo tempo de acesso é de 60 nanossegundos. O acesso à memória faz-se geralmente sobre dados arrumados consecutivamente em memória. As famosas e um dia cobiçadas DRAM EDOs (Extended Data Out, Saída dos dados melhorada) apareceram em 1995. O tempo de acesso à memória EDO é de cerca de 50 a 60 nanossegundos para uma frequência de funcionamento que vai de 33 a 66 Mhz. Tanto a DRAM quanto DRAM EDO eram assíncronas, pois trabalhavam numa frequência diferente da placa mãe.

26

Curso de Introdução à Informática

A SDRAM (Synchronous DRAM, ou RAM sincrónico), apareceu em 1997, permite uma leitura dos

dados sincronizada com a placa-mãe, contrariamente às memórias EDO e DRAM (assíncronas) que possuem o seu próprio relógio interno. A SDRAM é capaz de funcionar com um ritmo que vai até 150 Mhz, que lhe permite obter tempos de acesso de cerca de 10 nanossegundos.

O DR-SDRAM (Direct Rambus SDRAM) é um tipo

de memória que permite transferir os dados sobre um canal de 16 bits a 800Mhz (alta para padrões da época), próxima a uma memória de DDR200. A memória RAMBUS é uma

tecnologia proprietária, ou seja, há royalties para a RAMBUS e Intel.

A DDR-SDRAM (Double Data Rate SDRAM) é uma

memória baseada na tecnologia SDRAM, permitindo duplicar a taxa de transferência do SDRAM a uma frequência

igual. As memórias DDR possuem uma denominação comercial do tipo PCXXXX.

A memória DDR2 permite atingir velocidades duas

vezes mais elevadas que a DDR de frequência externa igual. Existem ainda alguns ganhos secundários, como o menor

consumo elétrico, útil em notebooks.

A DDR3 tem a taxa de transferência duas vezes maior

que a taxa da DDR2, de modo que permite taxas de frequência maiores, como também picos de transferência mais altos do que as memórias anteriores. Essas memórias têm voltagens que representam bits, que acabam caindo espontâneamente, por isso elas precisam de um refresh (atualização), que vai restaurar as voltagens dentro da memória. O cache L1 não precisa de refresh. Temos, a seguir, um quadro compararativo:

Curso de Introdução à Informática

27

 

Clock de

Ciclo /

 

Nome

Taxa de

Nome

memória

Latencia

Clock Real

Comercial

transferência

DRAM

25

a 33 MHz

70

a 80 ns

25

a 33 MHz

Não tinha

176

MB/s

EDO DRAM

33

a 66 MHz

50

a 60 ns

33

a 66 MHz

Não tinha

264

MB/s

SDRAM-66

66

MHz

15

ns

66

MHz

PC-66

528

MB/s

DDR-200

100

MHz

10

ns

100

MHz

PC-1600

1600

MB/s

DDR2-400

100

MHz

10

ns

200

MHz

PC2-3200

3200

MB/s

DDR3-800

100

MHz

10

ns

400

MHz

PC3-6400

6400

MB/s

DDR3-1066

133

MHz

7.5 ns

533

MHz

PC3-8500

8533

MB/s

DDR3-1333

166

MHz

6

ns

667

MHz

PC3-10600

10667

MB/s

DDR3-1600

200

MHz

5

ns

800

MHz

PC3-12800

12800

MB/s

Alguém pode ter ouvido falar que memórias DIMM são a memória principal do computador. DIMM é não é propriamente o tipo de memória, mas o formato físico em que ela se encontra. DIMM quer dizer Dual In-line Memory Module (Módulo de Memória em Linha Dupla). A principal diferença entre SIMMs e DIMMs é que DIMMs têm separado os contatos elétricos em cada lado do módulo, enquanto os contatos de ambos os lados SIMMs são redundantes (se repetem). Outra diferença é que os SIMMs padrão tem um caminho de 32 bits de dados, enquanto DIMMs padrão tem um caminho de 64 bits de dados. Desde Pentium Intel é necessário SIMMs instalados em pares iguais. O processador, então, acessa os dois SIMMs simultaneamente. DIMMs foram introduzidas para eliminar essa prática. Existiu um caso curioso, a respeito das placa com vídeo on-board (ou seja, com uma placa de vídeo integrada na placa mãe), que a sua memória era, na verdade, um compartilhamento da memória RAM. Com isso, a performance era péssima, uma vez que as memórias eram SDRAM, e as memórias de vídeo de placas off-board eram muitíssimo mais rápidas. As placas on-board, ganharam má fama, a exemplo da PCCHIPS® M598LMR, que era uma placa de baixo custo da época. Com o advento das memórias DDR, a situação se inverteu: existiram até placas off-board que usavam o compartilhamento com a RAM. É mais barato e mais rápido do que as memórias de vídeo antigas. Hoje há

28

Curso de Introdução à Informática

até placas como a nVidia GeForce®, ATi®(AMD®) e Intel® on-board, que compartilham a RAM, e são o padrão. E ainda há placas off-board e on-board com memórias DDR2 integradas para vídeo (ou seja, sem usar a memória RAM), geralmente placas para jogos e aplicações gráficas pesadas. É raro encontrar uma placa que não tenha vídeo on-board. Se a pessoa quiser ela desabilita o vídeo da placa mãe e coloca a off-board, ou mesmo fica com dois vídeos. Em seguida, temos o HD (Hard Drive). O HD, você pode ter ouvido falar, pode ser IDE, ATA, ATAPI, SATA ou SATA-II. E o que é isso tudo? Vamos por partes:

ATA ou PATA (Parallel) Advanced Technology Attachment – Era o nome da tecnologia dos HDs mais antigos. A maior taxa de transferência de uma HD PATA era de 133 MB/s (ATA 133). (E)IDE - (Extended) Integrated Drive Electronics – Era o nome comercial dos HDs com tecnologia ATA, primeiramente eram chamados de IDE, depois de EIDE. ATAPI Advanced Technology Attachment Packet Interface – Tecnologia que permitiu usar no mesmo cabo do HD drives de DVD, de fitas e ZIP drives (parece um disquete, com o armazenamento muito maior). SATA Serial ATA – Tecnologia que permitiu os HDs aumentarem de velocidade. Agora tem 150 MB/s de transferência. SATA-II Tecnologia que permitiu os HDs dobrarem de velocidade. Possui 300 MB/s. SATA-III Nova tecnologia que permite velocidades de 600 MB/s. Essa tecnologia é mais útil em memórias de estado sólido (tipo cartões SD, aquele que usa na câmera fotográfica), já que os discos dos discos rígidos não conseguem girar tão rápido.

Curso de Introdução à Informática

29

Curso de Introdução à Informática 29 Conector SATA Conector ATA E o HD, como funciona por

Conector SATA

Curso de Introdução à Informática 29 Conector SATA Conector ATA E o HD, como funciona por

Conector ATA

E o HD, como funciona por dentro? Internamente, existem pratos (mídia magnética) e passa-se uma espécie de agulha leitora sobre os discos (que possui um imã de neodímio nela) (não chega a tocar). Essa agulha lê o dado armazena nas trilhas e setores e manda para a placa-mãe.

armazena nas trilhas e setores e manda para a placa-mãe. HD – Funcionamento interno Então, em

HD – Funcionamento interno

Então, em termos hierárquicos, as memórias ficam assim:

Registradores

Cache (L1, L2 e L3)

RAM

HD

30

Curso de Introdução à Informática

É claro que existem outros tipos de memória como a de DVDs, CDs, Fitas DAT, entre outros. Mas esses são dispositivos secundários e não necessários para o funcionamento do PC. Os discutiremos apropriadamente na AULA 6 – Dispositivos de Entrada e Saída.

Avaliação de sala de aula (Valendo 0,3):

1. Qual a função da memória no computador?

2. Para que serve a memória cache? Quantos níveis ele possui num PC? Ele fica dentro ou fora do processador?

3. Todos os sistemas possuem cache L3? Por quê?

4. Quais os tipos de memória RAM existentes?

5. Qual a vantagem das memórias SDRAMs sobre as EDOs?

6. O que é DIMM? Qual a diferença entre DIMMs e SIMMs?

7. Placas com vídeo on-board são ruins? Explique.

8. Qual a diferença de SATA para IDE? E de ATA para IDE?

9. Qual a hierarquia das memórias?

10. Que é refresh no contexto de memórias?

11. Todos os caches precisam de refresh?

Curso de Introdução à Informática AULA 05 – CPU

31

Podemos, então, agora, detalhar um pouco mais o funcionamento de um computador:

detalhar um pouco mais o funcionamento de um computador: A CPU (Central Processing Unit) é o

A CPU (Central Processing Unit) é o processador. O

termo CPU é usado simultaneamente para o processador e o conjunto formado pelos componentes e gabinete (de forma um pouco leviana). Os registradores, como vimos, é um tipo de memória próximo ao processador, extremamente rápida. Existem basicamente 5 tipos de registradores:

1. Acumulador – armazena os resultados de um cálculo.

2. Registrador de Endereço – guarda o endereço de uma localização de memória ou de um dispositivo.

3. Registrador de Instrução – armazena a instrução que deve ser interpretada e executada.

4. Apontador de Instruções – IP (Instruction Pointer) ou PC (Program Counter) – aponta para a instrução a ser executada.

32

Curso de Introdução à Informática

A ULA é a Unidade Lógico-Aritimética, responsável

por fazer contas e operações lógicas entre os dados. Os

exemplos típicos de funções aritméticas são adição e subtração. Já exemplos típicos de operações lógicas, são as operações AND (E), OR (OU), NOT (NÃO). A UC é Unidade de Controle é de onde saem os comandos de uso dos diversos dispositivos (e retornam também os seus estados). A Unidade de Controle está geralmente conectada à ULA, a quem controla.

O barramento (bus) é o local por onde trafegam os

dados. As trilhas nas placas compõem o que chamamos de

barramento.

O barramento de dados é responsável pela transferência

de dados e instrução entre os dispositivos. É bidirecional, pois os dados trafegam tanto da memória para a CPU quanto da CPU para a memória. O barramento de endereços é aquele que conduz o endereço requisitado na memória (ou nos dispositivos de entrada e saída). É unidirecional, pois somente saem as requisições da CPU.

Cabe aqui abrir um parêntesis, que é o seguinte: todos os dispositivos no computador são endereçados, exatamente como a memória. Para o hardware, não existem dispositivos, mas sim endereços. Então se eu sou o hardware e quero ter acesso ao meu drive de DVD, eu mando um endereço, pelo barramento de endereços. O barramento de controle transfere os sinais de controle que realizam os comandos propriamente ditos da máquina. Eles ativam ou desativam os dispositivos, selecionam determinado modo de operação ou sincronizam os circuitos. O barramento de controle é bidirecional. Alguns autores simplificam as coisas dizendo que ele é unidirecional, pois parte da unidade de controle para os dispositivos, mas está errado. Os dispositivos também retornam o seu status (estado), através do barramento de controle.

Curso de Introdução à Informática

33

Quanto às funções, todo microprocessador é capaz de realizar operações básicas como essas 9:

1. Leitura de dados da memória

2. Escrita de dados na memória

3. Leitura de dados de periféricos

4. Escrita de dados em periféricos

5. Operações matemáticas

6. Operações lógicas

7. Comparações e decisões simples

8. Operações com caracteres

9. Desvios na execução de instruções

Quanto à velocidade, não se pode prever corretamente como o processador vai executar uma tarefa medindo a velocidade de operação de pontos flutuantes (operações de variáveis reais) (FLOPs). Os FLOPs são divulgados por micreiros como medidas de desempenho, mas são só um pedaço da performance, pois depende da tarefa que alguém vai utilizar no PC. Por FLOPs consegue-se ao menos parcialmente saber alguma coisa sobre o desempenho processador. Outra medida também confundida com desempenho é a dos GHz (GigaHertz). Isso começou com os Pentiums, onde a frequência era o que valia, uma vez que a arquitetura era basicamente a mesma. Atualmente GHz não é medida de desempenho, embora possa dar uma ideia da performance de CPUs de mesma categoria. Um transistor é um dispositivo que controla a passagem da corrente elétrica através de materiais semicondutores inteiramente sólidos. Sua função é amplificar e chavear sinais elétricos. Quanto mais transistors, geralmente mais rápido é o processador. Influencia na velocidade, mas também não é uma medida absoluta. Quanto ao material que é feito os transistores atuais, é utilizado o silício. Ele veio a substituir as válvulas. A ideia era usar silício adicionando certas substâncias em pequenas quantidades, alterando as suas propriedades elétricas, permitindo então a amplificação e o chaveamento de sinais

34

Curso de Introdução à Informática

elétricos. Esse silício com certas impurezas ficou conhecido como silício dopado. Quanto à lisura, ou seja, o tamanho de cada transistor, os processadores atuais chegam até a 0,032 microns. Quanto aos núcleos, os processadores podem ter um ou mais núcleos (geralmente de 1 até 6 atualmente), um núcleo

CPU inteira

(ULA+UC+Registradores+Caches L1 e L2). Quantos mais

corresponde

a

uma

núcleos, geralmente mais rápida é a CPU. Eis uma imagem que revala as partes internas de um Intel® Core i7:

imagem que revala as partes internas de um Intel® Core i7: O novíssimo Intel® Core i7

O novíssimo Intel® Core i7 980X, possui 6 núcleos, com lisura de 0,032 mícrons, suporta 12 threads, é de frequência 3.33 GHz, e tem cache L3 de 12 megas. A Lei de Moore, escrita em 1965 por Gordon E. Moore, cofundador da Intel, previu que o número de transistores integrados no silicone dobraria a cada doze meses. Esta lei foi revista em 1975, elevando o número de meses a 18 anos. De acordo com Carl Anderson, um pesquisador da IBM, a Lei de Moore pode estar chegando ao fim. Isso porque os engenheiros estão desenvolvendo sistemas que exigem menos recursos do processador e os custos para pesquisas de novos processadores estão cada vez mais altos,

Curso de Introdução à Informática

35

sem contar com os custos da própria montagem e manutenção das linhas de produção. Caso as pesquisas andem, segundo Anderson, 3 são tecnologias promissoras nesse campo: os chips com conexões ópticas; os processadores 3D (com circuitos tridimensionais empilhados um em cima do outro); e os processadores com sistemas aceleradores. Todo processador tem um conjunto de instruções que ele aceita. O x86 é a tecnologia de instrução padrão. Depois foram introduzidas novas tecnologias, basicamente para aplicações multimídia, como o MMX, o SSE, SSE2, SSE3, SS4, 3DNow!, Cool'n'Quiet, NX bit. Alguém pode ter visto falar em HT (HyperThreading). O que vem a ser um thread? É, em português, um processo. Essa tecnologia permite que um mesmo core de CPU execute múltiplas instruções praticamente simultaneamente. O Intel Core i7, por exemplo, tem 4 cores e suporta 8 threads por vez. O aumento da performance se dá quando o usuário usa vários programas ao mesmo tempo. Quanto ao tipo de conjunto de instruções, os processadores podem ser RISC (Complex instruction set computing) ou CISC (Complex instruction set computing). Antes da filosofia RISC tornaram-se difundidas, arquitetos computador muitos tentaram fazer a concepção de conjuntos de instruções com suporte direto a construções de alto nível. Como não existiam compiladores disponíveis, apenas se trabalhava com montadores. Isso quer dizer que se o meu Assembly tivesse um conjunto reduzido de instruções, eu teria que programar mais, tornando a tarefa de programar ainda mais difícil do que já era na época. Essa arquitetura ficou conhecida como CISC. Exemplos de CISC incluem os velhos 386s e os 486s. A filosofia básica do RISC consiste em:

 Analisar as aplicações para encontrar as operações

chave

e

elaborar

uma

máquina

ótima

para

as

realizadas

pelos

programas

alvo.

Segundo

Tanenbaum,

quase

50%

das

instruções

de

um

36

Curso de Introdução à Informática

programa são comandos de atribuição, 23% de comandos de seleção, 15% de chamadas a funções, 6% de laços de repetição e, 10%, de outros comandos.  Projetar as instruções que executem as operações chaves, estas devem utilizar de forma ótima as vias de dados.  Adicionar novas instruções somente se elas não diminuírem a velocidades da máquina  Repetir este processo para outros recursos Os processadores atuais são considerados praticamente todos RISC (Pelo menos comercialmente). Nos chips atuais, que são na verdade misturas das duas arquiteturas (algo como um híbrido entre RISC e CISC, como diz Morimoto). Mas eu disse que todas as gerações de PCs que sucedem suportam a anterior. Como um programa em CISC pode ser executado numa RISC? Simples, através de um circuito decodificador no processador. Então, é simples, um circuito pega as instruções complexas e as transforma em instruções mais simples que são suportadas diretamente pelo processador. Ou seja, não há perda da compatibilidade binária. E se eu quiser melhorar ainda mais minha performance nas máquinas PC com RISC modernos, eu faço compiladores de alto nível gerarem código binário com instruções reduzidas. A seguir, temos, então, para finalizar nosso estudo sobre processadores, uma tabela que indica a evolução dos processadores AMD e Intel. É claro que muitos modelos foram suprimidos, mas a essência da evolução foi preservada:

Curso de Introdução à Informática

37

Processador

Ano

Transistores

Lisura

Bus

Bits

MFlops

8080

1974

6.000

6

2 MHz

8 bits

0,64

 

8

bits

 

8088

1979

29.000

3

5 MHz

16

bits bus

~1

80286

1982

134.000

1,5

6 MHz

16 bits

1

80386

1985

275.000

1,5

16 MHz

32 bits

5

80486

1989

1.2M

1

25 MHz

32 bits

20

 

32

bits

 

Pentium

1993

3.1M

0,8

60 MHz

64-bit bus

100

K6

1997

8.8M

035

166 MHz

32 bits

~194

 

32

bits

 

Pentium II

1997

7.5M

0,35

233 MHz

64-bit

bus

~300

K6-2

1998

9.3M

0,35

400 MHz

32 bits

~350

 

32

bits

 

Pentium III

1999

9.5M

0,25

450 MHz

64-bit

bus

~510

 

32

bits

 

Athlon

1999

22M

0,25

500 MHz

64-bit

bus

~3700

 

32

bits

 

Pentium 4

2000

42M

0,18

1,5 GHz

64-bit

bus

~1700

Athlon XP

2000

37.5M

0,18

1,33 GHz

 

32

bits

~1900

 

64

bits

bus

Pentium 4

2004

32

bits

 

"Prescott"

125M

0,09

3,6 GHz

64-bit

bus

~7,000

Athlon 64

2004

106M

0,13

2,2 GHz

64 bits

~11.000

Athlon 64

X2

2005

243M

0,09

2 GHz

64 bits

~7400

Pentium D

2006

230M

0,09

2,66 MHz

64 bits

~15000

Core Duo

2006

151M

0,065

1.66 GHz

64 bits

~5000

Core 2 Duo

2006

291M

0,065

1.60 GHz

64 bits

~12800

Phenon

2008

758M

0,045

1.8 GHz

64bits

~5700

Core i7

2008

730M

0,045

2.66 GHz

64 bits

~40000

Core i3

2009

382M

0,045

2.93 GHz

64 bits

~23000

Core i5

2009

774M

0,045

2.8

64 bits

~44800

Phenon II

2009

758M

0,045

2.5 GHz

64 bits

~54000

Atom N450

2010

123M

0,045

1.66 GHz

64 bits

~3500

38

Curso de Introdução à Informática

Avaliação de sala de aula (Valendo 0,3):

1. O que é e para que serve uma ULA, uma UC, um registrador e um barramento?

2. Quais os tipos de registrador existentes?

3. Quais os tipos de barramento existentes?

4. Como o processador se comunica com dispositivos de E/S (Entrada e Saída)?

5. O que são FLOPs?

6. FLOPs é medida de performance?

7. Um processador com mais FLOPs que outro, tem necessariamente maior velocidade que ele?

8. De que são feitos os processadores?

9. O que é lisura?

10. O que é um core?

11.Explique o que é silício dopado.

12. O que é a Lei de Moore? Ela está chegando ao fim? Discuta.

13. Cite 2 tecnologias promissoras para processadores.

14. O que é RISC e CISC?

15. Cite 3 tipos de instruções multimídia.

16. Como é possível processadores RISC usarem instruções CISC?

17. Os processadores atuais são RISC ou CISC? Discuta.

Curso de Introdução à Informática AULA 06 – DISPOSITIVOS DE ENTRADA E SAÍDA

39

Exemplos barramentos a que se conectam dispositivos de E/S (Entrada/Saída): PS/2, ISA (morto), PCI, AGP

(morto), PCI Express, SCSI, e Firewire. O tradicional hoje (2010) é PS/2, PCI e PCI Express.

O teclado é o primeiro dispositivo de entrada que nós

vamos estudar. Os teclados atuais geralmente possuem entre 80 e 110 teclas. Você pode ter ouvido falar em padrão QWERTY ou ABNT2. QWERTY é devido à disposição da primeira fileira de teclas e ABNT2 é devido a ser o segundo padrão proposto pela Associação Brasileira de Normas Técnicas.

proposto pela Associação Brasileira de Normas Técnicas. A matriz de teclado é uma grade de circuitos

A matriz de teclado é uma grade de circuitos embaixo

das teclas, como o leitor pode ver. No canto direito superior,

você pode ver também uma pequena placa com um processador. Essa placa decodifica as teclas apertadas, e manda bits para o barramento na placa mãe, através de uma IRQ (Interrupt ReQuest), ou em português pedido de interrupção. Para decodificar teclas apertadas em bits, eles utilizam

chaves de teclado, de diversas tecnologias, contudo duas são básicas: a capacitiva e mecânica.

A capacitiva se dá dois níveis de circuito, e, quando se

aperta uma tecla se aproxima fisicamente os dois pontos, fechando assim a corrente, mandando o sinal correspondente à tecla. A mecânica se dá por um centro de carbono que completa o circuito, mandando o sinal correspondente à tecla também.

40

Curso de Introdução à Informática

O mouse é um dispositivo simples, e inventaram dois tipos de mouse, primeiro o mecânico, depois o óptico. Hoje em dia os ópticos são campeões, dado que os mecânicos apresentarem muitos defeitos com pouco tempo de uso (a exceção praticamente só dos mouses Microsoft® e Logitech®). O mouse mecânico possui dois tambores que correspondem ao eixo x e y de coordenadas, que uma bolinha desliza eles. Se ele vai para a esquerda, com uma velocidade, o processador dele manda o sinal de velocidade e direção para o barramento na placa mãe. Isso através também de uma IRQ.

O mouse óptico, em vez de um sistema mecânico, possui um sensor ótico (espécie de câmera digital), que detecta uma grande variação de quadros por segundo. A análise desses quadros determina a velocidade e para onde se move o cursor. As vantagens dessa tecnologia são várias, como essas 4: menos desgaste; a sujeira não interfere no sistema; resposta mais suave (por um aumento de resolução); não exigem uma superfície como um mouse pad.

resolução); não exigem uma superfície como um mouse pad. Mouse mecânico Mouse ótico Os drives de

Mouse mecânico

exigem uma superfície como um mouse pad. Mouse mecânico Mouse ótico Os drives de CDs, DVDs,

Mouse ótico

Os drives de CDs, DVDs, e Blue Rays são discos ópticos e dispositivos de E/S. O sistema de funcionamento é relativamente simples: verticalmente há espécie de desníveis dentro de um plástico, ranhuras, revestidas de alumínio que hora permitem a passagem de luz (refletem para fora do sensor), hora refletem a luz laser (refletem para o sensor). É arrumada em discos horizontais que possui uma trilha em espiral. O disco é girado e o sensor óptico capta se as luzes

Curso de Introdução à Informática

41

laser foram refletidas ou não. Conforme seja, o bit ganha 0 ou 1.

foram refletidas ou não. Conforme seja, o bit ganha 0 ou 1. Funcionamento de discos Óticos

Funcionamento de discos Óticos (Reflexão para fora e para dentro do sensor)

Caso o disco arranhe a camada de plástico a luz pode não refletir como da forma esperada, ocorrendo a perda de dados. Ainda, mídias de baixa qualidade podem descascar com o tempo. O que os torna inadequados para gravação de dados vitais. E pendrives, como funcionam? Pendrives nada mais são do que dispositivos USB que se ligam a uma memória flash (lembra? a mesma da BIOS). A memória flash é um tipo de memória que guarda os dados (em elétrons “aprisionados”), mesmo quando não há mais corrente. SD

42

Curso de Introdução à Informática

cards (aqueles das câmeras digitais) também são memórias flash. O maior pendrive do mercado hoje (2010) possui 512 gigas (gigabytes). Uma webcam e uma câmera digital funcionam através de um através de uma câmera digital que possui um sensor que converte luz em cargas elétricas. Esse sensor é geralmente o CCD (Charge Coupled Device). Um conversor analógico para digital (conversor A/D) transforma o valor de cada pixel (menor ponto da imagem) em um valor digital por meio da medição da quantidade de carga de luz e converte essa medição para a forma binária. A Hewlett Packard® (HP) estima que a qualidade do filme de 35 mm é de cerca de 20 milhões de pixels (20 megapixels) (ou seja, de pontos). Câmeras digitais profissionais já têm essa resolução, mas ainda são muito caras, o que muitas vezes leva ao profissional utilizar filmes de 35 mm e levarem a Bureaux para escanear os negativos. Para captar a cor, se utilizam conjuntos de filtros de cores. Podem existir 3 sensores separados, um para cada cor Primária (do RBG – Red-Gree-Blue ou Vermelho-Verde-Azul). Todas as cores podem ser conseguidas se combinando essas cores nas diversas intensidades. Quanto ao zoom, o zoom digital é horrível geralmente, pois a imagem tem que ser interpolada (é um método de aumento da resolução da imagem, que procura adivinhar qual seria a cor de um pixel entre um e outro), e por isso perde resolução. O zoom ótico, por lentes, ainda é o melhor. Um dispositivo de saída é o monitor. O monitor atualmente tem 2 tecnologias: CRT (Cathodic Ray Tube), ou em português Tubo de Raios Catódicos; e o LCD (Liquid Cristal Display – Monitor de Cristal Liquido). Resolução horizontal X vertical é a quantidade pixels (pontos) que um monitor suporta. Um monitor CRT contém milhões de pequenos pontos de fósforo vermelhos, verdes e azuis (RBG –Red-Green-Blue) que brilham quando são atingidos por um

Curso de Introdução à Informática

43

feixe de elétrons que vem do tubo de raios catódicos. Com isso se dá a formação de imagem. Note que nas TVs antigas, quando se chega muito próximo, é possível ver a separação entre as 3 cores.

O famoso dot pitch, uma medida que se aplica somente

aos CRTs, é a medida entre dois fósforos da mesma cor de

tríades adjacentes.

Este tipo de monitor é muito desvantajoso, pois:

1. É espaçoso (um monitor CRT de 20 polegadas pode ter até 50cm de profundidade e pesar mais de 20kg);

2. Consome muita energia;

3. Tem efeito de cintilação (flicker), que é quando uma cor fica piscando no monitor em baixas frequências;

4. Tem a possibilidade de emitir radiação que está fora do espectro luminoso (raios x), danosa à saúde no caso de longos períodos de exposição (monitores mais atuais possuem um vidro protetor).

5. Possui distorção geométrica. (a tela por mais plana que seja, é curva).

Já um monitor de LCD funciona através do bloqueio da

luz. Ele é formado por duas peças de vidro polarizado

(substrato) preenchidas com material de cristal líquido. Uma luz de fundo passa pelo primeiro substrato e, simultaneamente, correntes elétricas fazem com que as moléculas de cristal líquido se alinhem para formar certa opacidade de certo tom, para que quando a luz passe pelo o segundo substrato, se formem as cores e imagens que se vê.

O LCD é visto como mais vantajoso, embora também

possua pontos negativos. Pontos positivos:

1. O baixo consumo de energia;

2. As dimensões reduzidas;

3. A não-emissão de radiações nocivas;

4. Imagem sem cintilação em resolução nativa;

5. tela completamente plana;

As maiores desvantagens são:

44

Curso de Introdução à Informática

2. Caso o cristal líquido da tela do monitor seja

danificado e ficar exposto ao ar, pode emitir alguns compostos tóxicos. É claro que existem outros dispositivos de E/S, que não foram abordados aqui, mas se tem uma visão geral do assunto.

Avaliação de sala de aula (Valendo 0,3):

1. Quais os principais barramentos atuais?

2. Como funciona um teclado?

3. Como funciona um mouse?

4. Como funciona um leitor de DVD?

5. Como funciona um pendrive?

6. Que é RBG?

7. Que é flicker?

8. O que é CRT? Quais suas desvantagens?

9. O que é LCD? Quais suas vantagens e desvantagens?

10. Que é interpolação?

Curso de Introdução à Informática AULA 07 – IMPRESSORAS

45

Alguém pode ter se perguntado e impressoras, não é um dispositivo de saída? É sim, mas ela merece um estudo a parte, pois existem diversas tecnologias e detalhes. A resolução de uma impressora é medida em DPIs (dots per inch) (pontos por polegada).

Há muitos tipos de impressora. Existe a impressora de impacto, a de jato de tinta, a laser, térmica, a Plotter, a de cera térmica, a de dye-sublimation, e a de tinta sólida. Existem outros tipos menos importantes. A jato de tinta, por sua vez, possui 2 tecnologias: a Bubble Jet e a piezzo elétrico. Bubble Jet ou térmico é o sistema mais utilizado, onde

a impressora aquece pequenas quantidades de tintas a até 500 °C. Com o aquecimento uma bolha é formada e força as gotículas de tinta saírem por baixo (“nozzle” ou fenda). Esse é o sistema utilizado por fabricantes como Hewlett-Packard®, Lexmark®, Xerox® e Canon®. A cabeça de impressão geralmente fica situado no cartucho de tinta, tornando o valor do cartucho mais caro, mas com menor manutenção e utilização de todo o conteúdo, pois seu conteúdo fica sob pressão. Piezo-elétrico é um sistema utilizado nas impressoras Epson®, que utiliza um cristal piezo-elétrico que muda de forma com a eletricidade. Assim, o cristal é entortado, gerando pressão suficiente para expelir uma gotícula de tinta. O mecanismo fica situado na impressora, sendo os cartuchos apenas reservatórios, com fluxo de tinta baseado em sucção, aceitando tanto tintas corantes como pigmentadas. Elas têm

a desvantagem de entupir com facilidade caso não seja usada diariamente.

46

Curso de Introdução à Informática

46 Curso de Introdução à Informática Esquema de uma Piezo Eletric Tintas Corantes x Pigmentas. Na

Esquema de uma Piezo Eletric

Tintas Corantes x Pigmentas. Na tinta corante, existem moléculas coloridas solúveis no meio base da tinta, e não é a prova d´água. Já as tintas pigmentadas são insolúveis, apenas partículas dispersas, um material em suspensão, e é a prova d´água. É sempre válido lembrar que as tintas utilizadas em transfer (para estampar camisetas) devem ser pigmentadas, do contrário borrará na primeira lavagem (eu já fiz o teste). Impressoras de impacto são um tipo de impressora que utiliza o impacto de uma cabeça de impressão sobre uma fita (colorida ou preta), sendo a matricial sua principal representante. As impressoras matriciais são famosas no mundo corporativo, sobretudo na emissão de notas fiscais, pois são necessárias várias vias, a baixo custo, coisa que outras tecnologias não conseguem fazer.

necessárias várias vias, a baixo custo, coisa que outras tecnologias não conseguem fazer. Esquema de uma

Esquema de uma Bubble Jet

Curso de Introdução à Informática

47

Uma impressora térmica (ou impressora térmica direta) é tipicamente usado para cupons fiscais. Ela produz uma imagem impressa aquecendo um local de um papel térmico, por meio de uma cabeça de impressão. É bem barata a impressão. Existem impressoras térmicas coloridas, contudo o preço de impressão é mais caro que a de jato de tinta.

Uma impressora a cera (wax) térmica é usadas para transparências em apresentações empresariais e para prova (teste) de cor em Bureaux de impressão offset. A cabeça de impressão contém elementos quentes que derretem cada cor de cera (em uma fita) no papel conforme ele rola pela impressora. Uma impressora de dye sublimation tem aplicação onde a qualidade profissional dos documentos, panfletos e apresentações é mais importante que o custo dos consumíveis. Estas impressoras também são usadas para impressão cartões de PVC, ou de Polyester. É simular à cera térmica, exceto pelo uso de filme dye plástico difusivo ao invés de cera colorida. A cabeça de impressão aquece o filme colorido e vaporiza a imagem em papel especialmente coberto.

de impressão aquece o filme colorido e vaporiza a imagem em papel especialmente coberto. Um sistema

Um sistema de Dye-sublimation

48

Curso de Introdução à Informática

Uma impressora de tinta sólida tem principal aplicação em setores provas (testes) de embalagens e design industrial, podendo imprimir numa ampla gama de papéis. As impressoras de tinta sólida, como o nome indica, usam bastões de tinta endurecidos, que são derretidos e espirrados através de pequenos orifícios na cabeça de impressão. Plotter é uma impressora especializada em desenhos vetoriais (por exemplo, para plantas de engenharia) ou então impressoras com largura muito grande, para banners. Existe uma variante, também conhecida como Plotter de recorte, que possui uma lâmina bem pequena, que corta o vinil adesivo segundo o traçado da imagem (utilizado nas vitrines das lojas e nas sinalizações). Já as impressoras a laser baseiam-se na criação de um tambor sensível à luz, que por meio de um feixe de laser cria uma imagem eletrostática de uma página completa no tambor. Em seguida, é aplicada um pó muito fino chamado de toner, que adere apenas às zonas sensibilizadas. Quando o tambor passa sobre a folha de papel, o pó é transferido para sua superfície, formando o conteúdo a ser fixado na página, que passa por um aquecedor chamado de fusor, que queima o toner.

por um aquecedor chamado de fusor , que queima o toner. Foto de uma Plotter Uma

Foto de uma Plotter

Uma opção para baixar os custos de impressão jato de tinta é o chamado Bulk Ink. Ele é nada mais que uma extensão do reservatório dos cartuchos. Há diversos modelos sendo oferecidos no Mercado Livre®, inclusive já integrados com as impressoras. Para quem imprime muito é uma grande vantagem financeira, embora tenha sua contrapartida.

Curso de Introdução à Informática

49

Curso de Introdução à Informática 49 Foto de um Bulk Ink O uso de tintas genéricas

Foto de um Bulk Ink

O uso de tintas genéricas de cartuchos similares ou remanufaturados das impressoras Epson®, termina muitas vezes provocando o entupimento dos cartuchos. Para desentupir, só colocando um desentupidor, que é uma espécie de ácido que termina por alargar o local por onde sai a tinta, deixando a impressão com o aspecto de borrado. No caso das outras, esse problema é maior no cartucho remanufaturado, já que a cabeça de impressão dessas impressoras é integrada ao cartucho e ela foi usada várias vezes. No cartucho similar, não há tantos problemas. Numa tentativa desesperada dos fabricantes controlarem o mercado de reposição de cartuchos, se criou chips diversos, que o mercado leva algum tempo para copiar ou burlar. O chip é como uma prisão para o usuário. Com a queda do preço das impressoras lasers, é de se pensar em migrar da jato de tinta para ela, a não ser que você precise de cores. O custo de impressão por folha com toners remanufaturados é de cerca de R$ 0,03 contra R$ 0,26 de cartuchos remanufaturados de jato de tinta. Uma Multifuncional Samsung SCX-4600 Laser pode ser achada hoje (2010) pelo preço de R$ 492,00 e tem a velocidade de 22 ppm. Mesmo assim, custa quase o dobro de uma multifuncional jato de tinta Multifuncional HP PhotoSmart C4780 (R$ 274,00) e tem velocidade de 23 ppm. Só que em fotos a Laser não altera a velocidade, enquanto que a Jato de Tinta cai a 29 segundos (em rascunho).

50

Curso de Introdução à Informática

Toners remanufaturados não apresentam tantos problemas como cartuchos jato de tinta. Isso se forem trocadas as peças principais, como o cilindro. E geralmente são trocadas.

Avaliação de sala de aula (Valendo 0,3):

1. Quais as tecnologias de impressão existentes?

2. Quais os tipo de impressora jato de tinta existem? Descreva as suas tecnologias.

3. Como se dá a impressão laser?

4. Que é DPI?

5. Que é Plotter? E Plotter de Recorte?

6. Discuta sobre o bloqueio de impressoras por meio de chips.

7. Discuta sobre o uso de tintas genéricas em cartuchos recarregados.

Curso de Introdução à Informática AULA 08 – SISTEMAS E CONVERSÕES DE BASE

51

Base numérica se refere a quantidades de símbolos

básicos que é possível se contar, antes de repeti-los. Explico.

A base decimal possui os símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

depois do nove, temos que repetir voltar ao algarismo inicial e colocar à esquerda o digito seguinte ao 0, que é o 1 – temos então 10. Pois bem. Imagine uma base octal. Numa base octal é possível se contar 0, 1, 2, 3, 4, 5, 6, 7. Quando chega no oito, essa representação não é permitida, então se volta ao algarismo inicial 0, e coloca-se à esquerda o digito seguinte ao 0, que é o 1 – temos então o 10. Só que 10 em octal equivale na verdade a 8. Um número a na base n é representado por ( a ) n .

Imagine agora uma base binária. Numa base binária só

é possível contar 0, 1. Quando chega a 2, então se repete o

primeiro algarismo que era o 0, e à sua esquerda o 1. Então

temos 10. 10 em binário quer dizer 2 em decimal. Imagine não mais uma base com menos números que a

decimal, mas uma base hexadecimal (16 números). Em

hexadecimal

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Quando eu chego em 9, ele ainda tem então A, que é 10 em decimal. B é 11. C é 12. D é 13. E é 14. F é 15. E 16, como seria? Pega-se o primeiro número, repete-se, coloca-se à esquerda o numero depois de zero, que é 1. Temos então 10. 10 é 16 em decimal. Imagine agora uma base alienígena (rs). Os ETs não usam números para contar, mas letras. Eles contam A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P. Ora, esses ETs usam uma base hexadecimal que é representada por 16 letras. Então, se você entendeu o espírito da coisa, quanto é o número BA da base alienígena em decimal? É justamente 16. Mas deve haver um método prático de coverter as bases. Para converter qualquer base em decimal, eu utilizo o seguinte método:

contar

é

possível

52

Curso de Introdução à Informática

N = d n-1 .b n-1 + d n-2 .b n-2 +

+ d 1 .b 1 + d 0 .b 0 , onde:

N – número

n – número de algarismos

d – dígito correspondente (ex: 3º, 2º, 1º)

b - base

Ex.: (10) 8 = ( ? ) 10

1.8 1 + 0.8 0 = 8 Para converter um número decimal para qualquer base,

se utiliza o seguinte processo:

1. Divida o número pelo número da base desejada, até o resto dar 0.

2. Pegue o digito do resto do último para o primeiro e arrume-os da esquerda para a direita

Ex: (56) 10 = ( ? ) 2

56

div 2 = 23 ---- resto = 0

23

div 2 = 11 ---- resto = 1

11

div 2 = 5 ---- resto = 1

5

div 2 = 2 ---- resto = 1

2

div 2 = 1 ---- resto = 0

1

div 2 = 0 ---- resto = 1

O número procurado é o 101110. Sabendo essas duas formas de conversão, eu posso

converter qualquer base em qualquer base, convertendo para

10 para então converter para a base desejada. Para números fracionários, temos a seguinte conversão

de qualquer base para decimal:

N = d n-1 .b n-1 +

+ d 0 .b 0 + d -1 .b -1 +

onde:

N – número

n – número de algarismos, sendo que os algarismos depois da vírgula são negativos

d – dígito correspondente (ex: 3º, 2º, 1º)

b - base

Curso de Introdução à Informática

53

(1001,01) 2 =1x2 3 + 0x2 2 + 0x2 1 + 1x2 0 + 0x2 -1 + 1x2 -2

(1001,01) 2 = 8 + 0 + 0 + 1 + 0 + 0,25 = 9,25 10

Agora para números fracionários, a conversão da base decimal para qualquer base (note que pode haver perda de precisão):

Ex: 15,65 decimal em base 2;  Pegue a parte inteira e faça normal:

em base 2;  Pegue a parte inteira e faça normal: 2. Pegue a parte fracionária

2. Pegue a parte fracionária e saia multiplicando pela

base. O número fracionário que sobrar, mude para a linha seguinte e multiplique pela base. Faça isso até atingir a

precisão desejada, ou até a fração que sobrar ser 0. 10,65 10 = 1111,1010011001 2 (com 10 dígitos)

0. 10,65 1 0 = 1111,1010011001 2 (com 10 dígitos) Os números binários do computador são

Os números binários do computador são números finitos. Como representar o sinal negativo nesses casos? As 3 maneiras mais conhecidas são:

1. Magnitude com sinal (signed magnitude)

54

Curso de Introdução à Informática

3. Complemento de 2 (two's complement)

Vamos supor que a minha variável seja inteira e tenha só 8 bits pra facilitar nosso raciocínio:

1. Com magnitude de sinal

pra facilitar nosso raciocínio: 1. Com magnitude de sinal Esse número na base 10, seria o

Esse número na base 10, seria o 4. Caso o MSB (Magnitude Signal Bit) seja 1, então seria -4. LSB é Last Significant Bit.

 Complemento de 1

-4. LSB é Last Significant Bit.  Complemento de 1 Note que aqui o que era

Note que aqui o que era 0 virou 1 e vice-versa. Exceto o MSB, que continua existindo.

3. Complemento de 2

Complemento de 1 Note que aqui o que era 0 virou 1 e vice-versa. Exceto o

Curso de Introdução à Informática

55

Note que fez a mesma coisa que o complemento de 1 e aí adicionou 1 unidade. Note você, leitor, que tanto a magnitude sinal quanto o complemento de 1 tem o problema que o zero passa a ter dois valores o +0 e -0. Também, note que o complemento 1 e o de 2 são mais baratas que a magnitude de sinal exclusiva, pois precisa apenas de um componente para soma e subtração. A seguir temos uma tabela sinóptica do que acabamos de falar:

Tipo de

Dupla representação para o zero

 

Representação

Custo

Velocidade

   

Alto

 

(componentes

Baixa (algoritmo

verifica sinais)

Sinal e

Magnitude

SIM

(desvantagem)

separados para

soma e

subtração)

 
   

Baixo (um

 

Complemento

SIM

componente para

Média

de 1

(desvantagem)

soma e

subtração)

 
   

Baixo (um

Alta (algoritmo simples igual para soma e subtração)

Complemento

NÃO (vantagem)

componente para

de 2

soma e

 

subtração)

Quando somamos dois números de x algarismos e ele

resulta num número de x + 1 algarismos, então temos o que

se chama de overflow. A representação de pontos flutuantes (números reais) se dá em notação científica da seguinte forma:

N

= ±F x B ±E , onde:

N

– número

F – parte fracionária

B

– Base

E

– Expoente

Ex:

N = 1010011,1011

Isso dá, em ponto flutuante:

56

Curso de Introdução à Informática

X = 0, 10100111011 x 2 +111

E chama-se ponto flutuante, justamente por que na sua representação o ponto corre para direita ou para esquerda “flutuando”. Um float, de 32 bits, possui 1 bit para sinal, 7 para o expoente, e 24 para a mantiça, nessa ordem. Você pode até ficar intrigado por que alguém escreveria dessa forma, mas o fato é que escrevendo dessa forma eu posso representar números extremamente grandes e pequenos com a mesma quantidades de bits. É isso aí pessoal, treinem bastante a conversão de

bases.

Avaliação de sala de aula (Valendo 0,3):

1. Como se converte um número de uma base para a base 10? Dê um exemplo.

2. Como se converte um número da base 10 para outra base? Dê um exemplo?

3. Qual o número AAFF01 em decimal?

4. Qual a vantagem do complemento de 1? E o de 2?

Curso de Introdução à Informática AULA 09 – ARITIMÉTICA NÃO-DECIMAL

57

A aritmética não-decimal mais importante para a

informática é a aritmética binária. Esta é algo realmente muito simples, como veremos. Na soma binária, temos as seguinte possibilidades:

0

+ 0 = 0

0

+ 1 = 1

1

+ 0 = 1

1

+ 1 = 10 (fica 0 e vai 1)

1

+ 1 + 1 = 11 (fica 1 e vai 1)

Trans. é a camada de transporte (vai 1).

Exemplos:

Trans. 1111111-

Trans. 11-----

11010101

1000111010

+ 11001011

+ 100010000

111000000

1101001010

A subtração também é muito simples:

0

– 0 = 0

1

– 0 = 1

0

– 1 = (não dá, toma emprestado do seguinte)

1

– 1 = 0

Exemplos:

Trans. 1----

Ts. 11-------

Trans. 02202-

Ts. 0222------

11100101

1000111010

- 11001011

- 101010000

00011010

011101010

O exemplo não é difícil de entender. Primeiro, pega-se 1 subtrai 1, que dá zero. Aí vem a conta 0 – 1, que têm-se que tomar emprestado 1 na seguinte. Tomar emprestado um na seguinte, significa tomar 10 em binário, o que significa 2 em decimal, que colocamos para facilitar a conta. O resto é fácil.

58

Curso de Introdução à Informática

Há só uma operação mais complexa que é a de tomar emprestado de uma casa seguinte que não tem como emprestar. Para esses casos, se pega emprestado por vez, sendo que a casa de junto tem que pegar emprestado, antes dela mesmo pegar emprestado, como vemos nas contas dos exemplos. A seguir, temos a multiplicação:

0

x 0 = 0;

1

x 0 = 0;

0

x 1 = 0;

1

x 1 = 1;

Exemplo:

11010101

1000111010

x 101

x 101

11010101

1000111010

+ 11010101--

1110101001

+ 1000111010--

101100100010

A multiplicação faz-se exatamente como uma multiplicação decimal, exceto que a tabuada a ser decorada é bem menor. De forma prática, se o algarismo a ser multiplicado for 1, repete-se todo o multiplicando (número de cima). Se for zero, pula-se a casa, exatamente como na multiplicação de decimais. A divisão é um pouco mais complicada pois envolve a operação de divisão e a de subtração.

Exemplo:

11´11´11

11

101´0´0

100

11

10101

100

101

0

11

1 0

11

0

0

11

10

0

11

10

0

Curso de Introdução à Informática

59

À esquerda, temos o processo suprimido de colocar 0

no quociente, quando a divisão de um numero menor pelo dividendo. Com isso, provamos também que se um número é dividido por potências de 10 (em binário), é só deslocar para a esquerda as casas “decimais” (que agora são binárias). Na multiplicação por potências de 10 (em binário), deslocam-se para a direita as casas “binárias”. Em octal, a soma e a subtração se dão exatamente como na binária e a decimal.

Exemplos:

Trans. 11---1-

Trans. 1-----11-

34372327

444343377

+ 12352324

+ 42233277

67044653

506574676

A explicação é relativamente simples, mas um pouco

mais complexa que a binária. Na soma, se soma os algarismos como se fosse decimal. Aí se for maior que 7, eu subtraio 8 e mando um para a camada de transporte (vai 1), sendo que se der 8, vai 1 e fica 0.

Trans. 12---99-

Ts. 1310-

Trans.110412-3119

Ts. 310--45211

235454221

342335634

- 77733743

- 34234765

135420256

306100640

A explicação: 1 – 3 não pode por isso pega 1 do

vizinho que corresponde a 8. 8 + 1 = 9. Depois faz a conta normal: 9 – 3 = 6. Note que, às vezes, na própria camada de transporte pode dar um número maior que 10.

A multiplicação em octal direto não se usa, uma vez

que teria-se que saber a tabuada toda. Mais prático converter em decimal e fazer as contas. A divisão é ainda mais difícil e também não se usa fazer as contas em octal.

Já em hexadecimal e em bases maiores que 10, é mais

difícil de se fazer contas, pois a cada etapa teria-se que fazer

60

Curso de Introdução à Informática

conversões, o que não é prático. Melhor fazer as conversões em decimal e fazer as operações.

Avaliação de sala de aula (Valendo 0,3):

1. Como é feita a soma, a subtração, a multiplicação e a divisão binárias? Dê exemplos. 2. Como é feito a soma e a subtração em octal? Dê exemplos.

Curso de Introdução à Informática AULA 10 – AVALIAÇÃO DE APRENDIZAGEM I

61

1. Escolha a letra que melhor responder às seguintes afirmativas: (Valor 0,5)

( ) ENIAC foi o primeiro computador que possuía circuitos eletrônicos.

( ) O censo de 1890 foi feito por um computador de grande

porte de uma empresa precursora da IBM.

( ) A primeira geração de computadores funcionava com base

em válvulas à vácuo e relés.

( ) Os microprocessadores surgiram a partir da quarta geração de computadores.

1.

V-F-V-F

2.

V-V-V-F

3.

V-F-F-F

4.

F-V-V-V

5.

F-V-V-F

2.

De forma sintética, como funciona a arquitetura von Neumann? (1,0)

3.

Escolha a letra que melhor responder às seguintes afirmativas: (Valor 0,5)

( ) O computador é um dispositivo que possui camadas: o

hardware, o bios, o sistema operacional, e os aplicativos.

( ) É possível integrar um BIOS à um SO num chip de flash BIOS.

(

com

arquitetura pipeline.

)

Exemplos

de

SIMD

são

os

com

processador

(

) MISD não é implementado comercialmente.

(

) A maioria dos sistemas hoje em dia são MIMD.

1. F-F-V-F-V

2. V-F-F-V-F

3. V-V-V-F-V

4. V-V-F-F-V

62

Curso de Introdução à Informática

 Qual a diferença entre compilação e linkedição? (1,0)

5. Em quais passos se dá o processo de compilação? E

(1,0)

6. Java é interpretado ou compilado? (1,0)

7. Escolha a letra que melhor responder às seguintes afirmativas: (Valor 1,0)

(

) Modernamente, o cache L3 fica fora do processador.

(

) A memória cache L3 é mais rápida que a L1.

(

) RAM quer dizer Random Access Memory e é a chamada

memória principal do computador.

(

) As memórias DDR3 são 3 vezes mais rápidas que a DDR.

(

) HDs PATA e IDE são a mesma coisa.

1.

F-F-V-F-V

2.

F-F-V-F-F

3.

F-F-V-F-V

4.

V-F-F-F-V

5.

V-V-V-V-V

8.

Escolha a letra que melhor responder às seguintes afirmativas: (Valor 1,0)

I – As funções da memória de um computador são exclusivamente o armazenamento e a leitura.

II – O grupo de bits tratados de uma única vez na memória

principal (RAM) é chamado de mbits.

III – Memórias SIMM são melhores que memórias DIMM.

IV – HDs possuem imãs de neodímio.

1. Estão corretas I e II somente.

2. Estão corretas I e IV somente.

3. Estão corretas I, III e IV.

4. Todas estão corretas.

Curso de Introdução à Informática

63

9. Escolha a letra que melhor responder às seguintes afirmativas: (Valor 1,0)

I – Registradores são as memórias mais elementares que um processador pode ter. Elas estão mais intimamente relacionadas do núcleo do processador, sendo a memória de segundo nível.

II – Transistores são feitos atualmente de silício dopado.

III

– A Lei de Moore prevê originalmente que a quantidade

de

transistores dos processadores devem dobrar a cada ano.

IV

– Para um teclado acessar o processador, ele se utilizam

de

interrupções (IRQs).

V – Para um processador acessar um HD, ele manda uma

instrução pelo barramento de controle, aliado a uma instrução pelo barramento de endereços.

1.

Apenas uma está correta.

 

2.

Duas alternativas estão corretas.

 

3.

Três ou quatro alternativas estão corretas.

 

4.

Todas estão corretas.

 

5.

Nenhuma está correta.

 

10.

Escolha

a

letra

que

melhor

responder

às

seguintes afirmativas: (Valor 0,5)

I – CRT é um padrão de mouse.

II – Cintilação é um efeito que ocorre quando o monitor fica

piscando.

III – Um flicker é utilizado num mouse para um refresh.

IV – Interpolação pode ocorrer quando se vai reduzir uma

imagem.

1. Apenas II está correta.

2. Estão corretas II e IV somente.

3. Estão corretas três alternativas.

4. Todas estão corretas.

64

Curso de Introdução à Informática

11.Escolha a letra que melhor responder às seguintes afirmativas: (Valor 0,5)

I – Piezo-elétrico é um sistema de impressão laser.

II – Uma plotter de recorte é um tipo de impressora de

cupom fiscal, já que ela recorta o papel. III – O fusor queima o toner no papel, de modo que ele se fixa nele. IV – Uma diferença entre uma tinta corante e uma pigmentada é que uma sai com água e a outra não.

1.

Apenas III está correta.

 

2.

Estão corretas III e IV somente.

 

3.

Estão corretas três alternativas.

4.

Todas estão corretas.

 

5.

Nenhuma está correta.

 

12.

Escolha

a

letra

que

melhor

responder

às

seguintes afirmativas: (Valor 1,0)

I – 10 em hexadecimal é A.

II – 10 em binário é 2.

III – 2 em binário é 10.

IV – Em hexadecimal, 3A942B + 23B7D5 = 4E4C10.

V – 101 x 101 em binário é 11101, que é 29 em decimal.

1. Apenas uma está correta.

2. Duas alternativas estão corretas.

3. Três ou quatro alternativas estão corretas.

4. Todas estão corretas.

5. Nenhuma está correta.

Respostas:

01) d. 03) d. 06) a. 07) a. 08) b. 09) c. 10) a. 11) b. 12) c.

2) Funciona basicamente da seguinte forma, entrada-processamento, processamento-memória, memória-processamento, e processamento-saída.

Curso de Introdução à Informática

65

4) Compilação no sentido estrito quer dizer a transformação de código fonte em código-objeto não-executável. O processo de linkedição liga como uma cola os códigos-objetos das diversas partes do programa (bibliotecas inclusive), formando o executável.

5) Analises léxica, sintática e semântica. A léxica separa o texto em palavras, a sintática vê se a ordem das palavras é coerente, e a semântica faz alguma checagem de conteúdo, como checa se um parâmetro de outro tipo é passado a uma função.

66

Curso de Introdução à Informática

AULA 11 – NOÇÕES DE LÓGICA DIGITAL

Os primeiros computadores fabricados, como o ENIAC, trabalhavam em decimal. A implementação, como vimos, era feito com relés e válvulas. É bastante difícil manter dez faixas de tensão estáveis. Além disso, 10 diferentes níveis de tensão tinham como consequência uma grande complexidade ao projeto e construção dos computadores, tendo então um custo muito elevado. Depois, surgiu então a ideia de aplicar o sistema binário, com o desenvolvimento da álgebra de Boole, simplificando extremamente o projeto e construção dos computadores. Todos as complexas operações de um computador digital podem ser representadas por combinações de simples operações aritméticas e lógicas básicas: somar bits, complementar bits (para fazer subtrações), comparar bits, mover bits. Estas operações são realizadas fisicamente por circuitos eletrônicos, chamados circuitos lógicos (ou gates - portas lógicas). A álgebra de Boole trabalha com apenas duas grandezas, representadas por 0 (falso) e 1 (verdadeiro). Duas faixas de voltagem diferentes significam 0 ou 1 internamente. As portas lógicas funcionam por meio de chaves automáticas. A chave automática mais básica funciona com 3 elementos: uma fonte de alimentação, um fio de controle, e um fio de saída, conforme a figura abaixo:

de controle, e um fio de saída, conforme a figura abaixo: No desenho, a chave permanece

No desenho, a chave permanece aberta enquanto o sinal C no fio de controle for 0 (ou Falso). Quando for aplicado o sinal 1 ao fio de controle, a chave muda de posição, tendo como sinal na saída 1. Inicialmente a chave automática foi inicialmente com relés eletromecânicos e

Curso de Introdução à Informática

67

válvulas eletrônicas, para só então passarem a ser usados transistores. Imaginemos, contudo, que nós temos duas chaves automáticas em série. Esse circuito só retornaria 1 se os dois sinais de controle A e B forem 1 também. Isso te lembra alguma coisa? O que na lógica retorna verdadeiro somente se tivermos dois sinais verdadeiro? Exatamente isso, acabamos de construir o circuito AND (E):

Exatamente isso, acabamos de construir o circuito AND (E): Imaginemos agora que nós temos duas chaves

Imaginemos agora que nós temos duas chaves automáticas em paralelo. Esse circuito só retornaria 0 se os dois sinais de controle A e B forem 0 também. Isso te lembra alguma coisa? O que na lógica retorna falso somente se tivermos dois sinais falso? Exatamente isso, acabamos de construir o circuito OR (OU):

Exatamente isso, acabamos de construir o circuito OR (OU): Ela pode ter uma representação simbólica ou

Ela pode ter uma

representação simbólica ou matemática. A seguir temos uma

listagem das portas lógicas que um computador pode ter:

O

circuito

é

a

porta

lógica.

68

Curso de Introdução à Informática

68 Curso de Introdução à Informática Ora, se eu posso fazer operações lógicas utilizando hardware, eu

Ora, se eu posso fazer operações lógicas utilizando hardware, eu posso fazer um hardware fazer a mesma coisa que um software faz, utilizando uma combinação de circuitos. Daí agora você pode entender melhor a frase:

“Hardware é logicamente equivalente a software”. A combinação de portas lógicas formam os chamados circuitos lógicos. São um hardware capaz de operar um ou mais sinais lógicos de entrada para produzir uma saída, a qual é dependente da função implementada no circuito.

Curso de Introdução à Informática

69

Curso de Introdução à Informática 69 Um computador é constituído de uma grande quantidade de circuitos

Um computador é constituído de uma grande quantidade de circuitos lógicos, que executam as seguintes funções básicas:

1) realizam operações matemáticas; 2) controlam o fluxo dos sinais; 3) armazenam dados. Existem dois tipos de circuitos lógicos:

1) COMBINACIONAL – é uma mera combinação de portas lógicas, não tem capacidade de armazenamento; 2) SEQUENCIAL – é uma combinação de portas lógicas, mas possuem memória do dado anterior (chamados "flip-flops"). Veremos dois circuitos reais, o

O circuito meio-somador (half-adder) soma dois bits. Ele é

feito basicamente de uma entrada de dois bits A e B, e uma

saída que é a soma dos bits mais o bit de carry out ("vai um")

– chamados aqui de S e Co. É chamado de half-adder pois

não suporta a entrada de um bit de carry out na soma. A tabela dos possíveis resultados do circuito half-adder vem a seguir:

suporta a entrada de um bit de carry out na soma. A tabela dos possíveis resultados

70

Curso de Introdução à Informática

O

circuito

half-adder

pode

ser

implementado

pela

seguinte combinação de portas lógicas:

implementado pela seguinte combinação de portas lógicas: Claro, se eu tenho um XOR (OU exclusivo) S

Claro, se eu tenho um XOR (OU exclusivo) S só vai ser 1 caso tenhamos 0 e 1 ou 1 e 0. Quanto à camada de transporte, temos que um AND (E) que só assumirá o valor 1 se ambos forem positivos. O circuito somador completo (full adder) soma dois bits e possui 3 entradas A e B e Ci (bit de carry out).

positivos. O circuito somador completo (full adder) soma dois bits e possui 3 entradas A e

Curso de Introdução à Informática

71

Curso de Introdução à Informática 71 Há uma série de técnicas na minimização das portas lógicas

Há uma série de técnicas na minimização das portas

lógicas utilizadas. Certamente que mais de uma combinação de portas lógicas produziriam os mesmos resultados.

A seguir temos um circuito full-adder e sua

representação esquemática:

lógicas produziriam os mesmos resultados. A seguir temos um circuito full-adder e sua representação esquemática:
lógicas produziriam os mesmos resultados. A seguir temos um circuito full-adder e sua representação esquemática:

72

Curso de Introdução à Informática

Alguém pode perguntar: “e como são feitas as somas com números maiores que 1-bit?”. A resposta é colocar circuitos somadores em série, sendo o primeiro um meio-somador. A seguir um exemplo de um somador de

4-bits.

meio-somador. A seguir um exemplo de um somador de 4-bits. É isso pessoal. Essa foi uma

É isso pessoal. Essa foi uma brevíssima introdução de uma matéria vista mais adiante nos cursos de Ciência da Computação, intitulada “Projeto de Circuitos Lógicos”.

Avaliação de sala de aula (Valendo 0,3):

1. Que são portas lógicas?

2. Que é chaveamento automático?

3. Faça uma listagem das portas lógicas e suas respectivas simbologias matemática e gráfica.

4. O que é um circuito lógico?

5. Quais as funções de um circuito lógico?

6. Quais os tipos de circuito lógico existentes?

7. Que são flip-flops?

8. Faça um circuito half-adder.

9. Faça um circuito full-adder.

Curso de Introdução à Informática AULA 12 – NOÇÕES DE SISTEMAS OPERACIONAIS

73

Definir onde começa e onde termina um Sistema Operacional é complicado, por motivos que transcendem os objetivos desse livro. Poderíamos então definir um Sistema Operacional pelo que ele é composto, ou seus módulos funcionais principais:

 Gerenciamento do processador  Gerenciamento da memória  Gerenciamento de dispositivos  Gerenciamento de armazenamento  Interface de aplicativos  Interface do usuário O gerenciamento do processador, é fácil de entender, é feito pelo Sistema Operacional. Imagine a realidade antes dos processadores multi-core, em que havia um só núcleo para rodar um monte de coisas. Só havia uma saída: o processador deve ser compartilhado, ou seja, ele dá um certo tempo pequeníssimo para cada thread, dando ao usuário a sensação de estar rodando tudo ao mesmo tempo. Hoje há processadores multi-core com capacidade de executar 12 threads simultaneamente, como já vimos. O Sistema Operacional (SO) então só amplia essa capacidade, para quando for necessário executar mais programas do que suportado nativamente (relativo a suas especificações). Thread é definido como a menor conjunto de instruções que pode ser agendado para execução na CPU. Uma observação interessante a respeito do SO, é que um processador nunca pode ficar complemente ocioso, do contrário a máquina pararia de funcionar. Para isso, então, o SO cria uma função idle, que é responsável por criar threads que não fazem nada na prática. É claro que os processadores atuais possuem recursos para economia de energia, como baixar o nível do seu funcionamento. São os níveis de operação.

74

Curso de Introdução à Informática

Quanto ao gerenciamento de memória, é o SO quem vai oferecer aos programas e aos componentes do próprio SO o espaço na memória. Explicando melhor: um aplicativo nem sabe o que é um endereço de memória, um SO designa para ele X endereços. Um SO também pode criar memória virtual, com uma

técnica chamada paginação ou swapping. Essa técnica consiste em representar uma tabela de endereços virtuais que correspondem aos locais dos espaços no disco, por meio de um único endereço físico da RAM que represente essa tabela.

O gerenciamento de dispositivos também é feito pelo

SO. Quando mandamos imprimir alguma coisa, um programa efetua um System Call de impressão, que vai tratar disso com a impressora para ele. Como vimos, isso é feito também através de endereços.

O gerenciamento de armazenamento também é feito

pelo SO. O SO sabe o que é trilha e setor de um HD, e serve de interface para o aplicativo gravar ou ler um arquivo no disco.

O gerenciamento dos arquivos é feito de acordo com o

sistema de arquivos. Um sistema de arquivos pode ser de

um simples FAT16, um pouco mais complexo FAT32, para complexos NTFS, ReiserFS, EXT2 e EXT3. Um HD pode

ser dividido em diversas partições com sistemas de arquivos diferentes. Um sistema de arquivos possui uma tabela de alocação de arquivos, que diz onde está cada arquivo no disco, sendo que esse arquivo pode estar fragmentado, ou seja, partido em diversos pedaços (desfragmentadores são usados para acelerar a velocidade de acesso ao arquivo no disco).

A tabela de diretórios contem os nomes dos arquivos e

o nome dos diretórios (pastas).

Curso de Introdução à Informática

75

Um cluster (ou cluster de dados), no contexto de sistema de arquivos, é definido como um conjunto de trilhas (track sectors) pertencentes ao HD físico, e corresponde a um bloco de informação de certa quantidade de bits, um bloco de bits mínimo reconhecido pelo SO. FAT16 tem 16 bits e FAT32 tem 32 bits. Com essa divisão do disco físico, é

possível endereçar 2 n bits. É necessário criar blocos para se referenciar, pois se fossemos fazer endereçamentos bit a bit, acabaríamos usando a maior parte do disco só para endereçamentos. Clusters grandes desperdiçam espaço, mas ganham em performance. A recíproca é verdadeira, clusters pequenos ganham em espaço, mas perdem em performance. Isso porque se uma quantidade de dados maior por vez é tratada pelo SO, então a velocidade também vai ser maior. Quanto ao espaço é fácil perceber que se eu tenho um monte de arquivos pequenos, inferiores ao tamanho do cluster, eu desperdiço uma enorme quantidade de espaço. FAT32 possui um avanço em relação à FAT16, pois possui uma tabela de alocação dinâmica, ou seja, seu tamanho varia de acordo com a necessidade. No caso do NTFS há uma espécie de banco de dados no endereçamento de clusters, o que otimiza o espaço livre. Também, e por isso, há uma maior tolerância a falhas. NTFS, EXT2, e EXT3 têm implementação de permissões de arquivo. Isso será discutido em segurança da informação. FAT16 e 32 não têm essa implementação. Como interface de aplicativos, um SO executa os System Calls dos aplicativos. Essas chamadas de sistema tem diversas funcionalidades, como por exemplo gravar um arquivo no disco. Como interface para usuário, um SO pode apresentar dois tipos de interface: a GUI (Graphical User Interface – Interface Gráfica) e a CLI (Command Line Interface – Interface de Linha de Comando).

76

Curso de Introdução à Informática

Arquivos batch podem simular comandos dados da CUI, e por isso são arquivos que contém comandos a serem realizados sem a intervenção do usuário, tal qual o usuário os estivesse digitando. Alguém pode perguntar “e como os SOs são carregados na memória?”. A resposta é que existe um setor especial do HD chamado de MBR (Master Boot Record), que vai conter informações de que partição deve proceder o boot. Um bootstrap loader vai estar no MBR, que é uma espécie de programa responsável por carregar o SO. Os mais conhecidos loaders de SOs são o LILO, o GRUB e O NTLDR. A primeira parte de um SO a ser carregada é o seu Kernel. A espinha-dorsal (a parte principal) do Sistema Operacional é o chamado Kernel, ou ainda núcleo por alguns autores. Para entender os tipos de SO, precisamos ter uma noção de um programa rodando em modo kernel e em modo usuário. Para se proteger o sistema, normalmente se divide as execuções de programas do SO nesses dois modos, de modo que em modo kernel o programa tem acesso direto ao hardware, enquanto que no nível do usuário não ocorre isso. Existem 6 tipos de sistema: 1) Monolíticos; 2) Em camadas; 3) com Microkernel; 4) Client-Server; 5) Máquinas Virtuais; 6) com Exokernel. Os SOs monolíticos todos os componentes do kernel rodam em modo kernel. A vantagem desses sistemas é o desempenho. Nos SOs em camadas, a execução de programas do SO se dá por camadas, sendo que uma pede instruções a outra camada que execute uma instrução, até chegar ao nível da máquina. Por ter camadas extras, é considerado mais lento, mas tem um extra em segurança.

Curso de Introdução à Informática

77

Outra possibilidade de estruturação de um SO consiste em retirar do núcleo todo o código de alto nível, deixando no núcleo somente o código de baixo nível necessário para interagir como hardware e criar as abstrações fundamentais. É o chamado SO com microkernel. Os SOs client-server são uma pequena variação dos com microkernel. Há o conceito de serviço. Serviços são oferecidos pelo servidor ao cliente. São espécies de microkernel, com implementações de rede, que permitem que a máquina local obtenha execuções pela rede. Uma máquina virtual, como a JVM, implementa todas as instruções realizadas pela máquina real (que no caso, não existe) em um ambiente abstrato. É uma espécie de emulação de hardware mais um SO. Um emulador perde muito em eficiência ao traduzir as instruções de uma máquina real. Em vez de emular uma máquina virtual completa, um exokernel essencialmente ajusta um subconjunto de recursos para rodar um programa. A vantagem do exokernel é que economiza uma camada de mapeamento dos dispositivos virtuais. E como é feito um SO? Geralmente através da linguagem de programação C. É isso pessoal. Na próxima aula teremos uma noção de Windows e Linux.

78

Curso de Introdução à Informática

Avaliação de sala de aula (Valendo 0,3):

1. Quais as funções de um SO?

2. Como se dá o gerenciamento do processador?

3. Um processador pode ficar inteiramente parado?

4. Como se dá o gerenciamento de memória?

5. O que é Swapping?

6. Como se dá o gerenciamento de dispositivos?

7. Que é uma tabela de alocação de arquivos?

8. Que são partições?

9. O que é EXT3?

10. Diga 5 tipos de sistema de arquivos.

11.O que é um cluster no contexto dos sistemas de

arquivos?

12. Quais os 2 tipos de interface existentes nos

SOs?

13. Para que serve um MBR? Quais são os mais conhecidos?

14. O que é um bootstrap loader?

15. Quantos tipos de SO existem?

16. Com que linguagem são geralmente feitos os

SOs?

Curso de Introdução à Informática

79

AULA 13 – NOÇÕES DE SISTEMAS OPERACIONAIS – WINDOWS E LINUX

O que dizer do Windows®? Ele é o Sistema Operacional mais usado no mundo. Até a data da escrita desse livro (2010), 48% dos computadores rodam Windows XP, 17% Windows Vista, 17% Windows 7, e só 1,45% para o

Linux. Ou seja, o Windows está em 82% dos computadores.

O Menu Iniciar (start menu) é onde ficam os atalhos

para os programas. Um atalho é um apontador para um executável. Os executáveis (arquivos binários) no Windows são os arquivos .EXE e .COM. Driver é uma espécie de programa que faz a interface de um dispositivo de hardware para o sistema operacional. Não confundir com drive, um dispositivo de armazenamento. No Windows o nível mais básico de

abstração de hardware é chamado de HAL (Hardware Abstraction Layer). Um driver é direcionado a um SO. Certas impressoras, por exemplo, sequer existiam driver para Windows 7 (2010).

O registro do Windows é um arquivo que contém todas

as configurações do Windows para a máquina. Ele pode ser acessado pelo Regedit. Dentro dele existem chaves e valores. Fazer um Login é o ato de receber permissão para acessar o sistema (tanto no Linux quanto no Windows). Alguns usuários acham muito chato o login do Windows,

editando o registro para ele efetuar o login automaticamente. Logon é usado de maneira intercambiável com login. Existem basicamente duas maneiras de se fazer um login: como Usuário e como Administrador (ou root no Linux). O logon no modo usuário possui geralmente restrições, sendo o administrador sem elas.

A Área de Trabalho (Task Area) é o pano de fundo

onde são executados os programas. Eles possuem ícones (icons).

A barra de tarefas (Task Bar) fica geralmente situado

na parte de baixo. No Linux, como algumas versões do

80

Curso de Introdução à Informática

Ubuntu, a barra de tarefas é em cima. Quando você roda um programa, ele automaticamente aparece na barra de tarefas. Numa janela, em que um programa está sendo executado, o X a fecha, o _ a minimiza e o quadrado a maximiza. Algumas vezes a maximização não está disponível.

O Windows Explorer é o gerenciador de arquivos (file

manager) no Windows. Com ele você pode copiar mover e

apagar arquivos, criar pastas, e outros. Uma lixeira é uma pasta que guarda os arquivos deletados. Eles podem ser restaurados caso o usuário tenha apagado por engano.

O Painel de Controle é onde estão as opções de

configurações diversas. Ele difere um pouco entre o Windows XP, Vista e 7. Em Linux, há diferentes distribuições com propósitos diferente. As mais conhecidas são: Ubuntu, Fedora, OpenSUSE, Debian, Mandriva, Red Hat, e Slackware.

Há também o OpenBSD, que o kernel não é de Linux,

mas é compatível com o Linux em fontes. Entre as principais coisas relevantes para um usuário

está o desktop enviroment (ambiente de trabalho), que é diferente de distribuição para distribuição. Os dois principais ambientes atuais são o KDE e o GNOME. Numa distribuição Linux com KDE, o gerenciamento de arquivos é feito com o Konqueror, enquanto que no GNOME é pelo Nautilus. Shell é a inferface com o usuário, e pode ser gráfica (GUI) ou textual (CLI). O Shell textual mais usado no Linux é o bash. O Shell gráfico mais utilizado é o X Windows System.

É possível instalar mais de um Sistema Operacional

num computador. O arranjo mais comum, neste caso, é ter no mínimo uma partição por Sistema Operacional. Para fazer partições para o Linux com uma partição de Windows existente, faça o seguinte: desfragmente o HD;

Curso de Introdução à Informática

81

reinicialize com um LiveCD (ou Live DVD) e inicialize o Gparted. Vai aparecer:

LiveCD (ou Live DVD) e inicialize o Gparted . Vai aparecer: Isso se não tiver nada

Isso se não tiver nada instalado. Se tiver o Windows instalado, você, para mudar de tamanho, é simples, é só clicar com o botão direito. Redimensionar.

simples, é só clicar com o botão direito. Redimensionar. Depois disso você deixa o espaço vazio

Depois disso você deixa o espaço vazio para o instalador do Linux particioná-lo. Há variações entre distribuições do processo de instalação, mas praticamente todos oferecem a criação de pelo menos duas partições, uma para o diretório raiz (root ou /), uma para o swap. A seguir como fica o Gparted depois de instalado o Linux.

A seguir como fica o Gparted depois de instalado o Linux. O vídeo <http://www.youtube.com/watch?v=

O vídeo <http://www.youtube.com/watch?v= DQ6lIEFYmiE> mostra todo processo de instalação

82

Curso de Introdução à Informática

passo-a-passo. Caso não esteja mais on-line, pode pesquisar no youtube por “instalação ubuntu”. Existe, ainda a possibilidade de Sistemas Operacionais rodarem um dentro do outro por meio de softwares de virtualização. O Vmware® e o VirtualBox são exemplos de máquinas virtuais nas quais outros SOs podem ser instalados. A forma mais comum de se pegar programas para o Linux, é através do apt-get ou implementações semelhantes só que gráficas (O OpenSuSE por exemplo tem o YaST, o Ubuntu tem o Synaptic). O apt-get baixa automaticamente todos os pacotes que são dependências para o pacote que o usuário escolher instalar. Os programas para Linux usam fortemente bibliotecas, e geralmente eles não vêm com elas, diferente dos aplicativos para Windows. Um pacote é composto de arquivos binários de uma aplicação, mais as instruções para a sua instalação, mais uma lista de suas dependências. Os sistemas de pacotes mais comuns são os .DEB (Debian) e os .RPM (Red Hat). O processo de instalação a partir do código-fonte é um pouco mais trabalhoso, e geralmente é feito a partir de um .TAR.GZ . O projeto Wine (um acrônimo de Wine Is Not na Emulator), implementa as APIs (Aplications Programming Interface – Interface de Programação de Aplicações) do Windows no Linux nativamente. Uma lista grande de aplicações Windows rodam no Linux através do Wine, cheque http://appdb.winehq.org/ para ver os últimos avanços, em termos de programas compatíveis. Bem pessoal, é isso por hora. Brinquem bastante com o Linux.

Curso de Introdução à Informática

83

1. Qual a diferença entre driver e drive?

2. Para que serve o registro do Windows?

3. Quais as maneiras de se fazer login num computador?

4. Quais os principais desktop enviroments para Linux?

5. O OpenBSD é um tipo de Linux? Discuta.

6. Para que serve o X Windows System?

7. Para que serve o apt-get?

8. O que é VirtualBox, e para que serve?

9. Como particionar um HD?

10.

comuns? 11.Em que formato de arquivo é feito geralmente o release de código-fonte de programas?

mais

Quais

são

os

sistemas

de

pacotes

84

Curso de Introdução à Informática

AULA 14 – NOÇÕES DE SISTEMAS EMBARCADOS

Um sistema embarcado (ou sistema embutido do inglês embended)