introdução e sistemas de numeração - joinville.udesc.br · sistemas de numeração....

75
Programação para Engenharia I PROGRAMAÇÃO PARA ENGENHARIA I Prof. Claudinei Dias email: [email protected] Introdução e Sistemas de Numeração

Upload: buidien

Post on 10-Nov-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

PROGRAMAÇÃO PARA ENGENHARIA I

Prof. Claudinei Dias

email: [email protected]

Introdução e

Sistemas de Numeração

Page 2: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Histórico da Computação

A união de várias áreas do conhecimento contribuiu para o desenvolvimento da tecnologia

Evolução do ComputadorDurante séculos o ato de computar faz parte da vida de cada um

A evolução da máquina de computar ocorreu de acordo com as necessidades do ser humano

2/75

Page 3: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Introdução

• SOs vem passando por um processo gradual de evolução

• A história dos SOs é bastante ligada à evolução da arquitetura dos computadores

• Veremos as sucessivas gerações de computadores para entendermos a evolução dos SOs

3/75

Page 4: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Introdução

• Primeiro computador - Charles Babbage (1792 – 1871)

• Nunca conseguiu vê-la funcionando de forma apropriada

• Inteiramente mecânica – não existiam componentes eletrônicos

• Não possuía SO

• Aspecto histórico interessante: Babbage percebeu que precisava de um software para sua máquina

4/75

Page 5: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A primeira geração (1945-1955)

• Após Babbage, poucos progressos na construção de computadores digitais – até a II Guerra Mundial

• Meados de 40, vários conseguiram construir máquinas de calcular• Ciclos medidos em segundos – relés mecânicos lentos• Mais tarde substituídos por válvulas• Ocupavam salas inteiras – milhares de válvulas• Milhões de vezes mais lentas que o PC mais barato de hoje

Primeira máquina de calcular com relés – Z1

5/75

Page 6: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A primeira geração (1945-1955)

• A mesma pessoa projetava, construía, programava, operava e fazia manutenção

• Não existia Sistema Operacional

• Modo normal de operação:• Programador reservava tempo

de máquina em uma planilha

• Ia para sala de máquina

• Inseria o painel de programação no computador

• Torcia para que nenhuma válvula queimasse (por algumas horas)

• Cálculos numéricos diretos, como seno, cosseno e logaritmo

John von Neumann (1946)

6/75

Page 7: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A primeira geração (1945-1955)

• Década de 50 – evolução – perfuradoras de cartões

7/75

Page 8: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A segunda geração (1955-1965)

• Introdução do transistor mudou a situação –computadores tornaram-se confiáveis

• Computadores puderam ser comercializados pois funcionariam por tempo suficiente para serem úteis

8/75

Page 9: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A segunda geração (1955-1965)

• Começa a haver separação entre projetistas, fabricantes, programadores e técnicos de manutenção

• Computadores de grande porte – mainframes

• Ficavam isoladas e eram operadas por equipes profissionais

• Somente grandes corporações, agências governamentais e universidades podiam pagar

9/75

Page 10: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A segunda geração (1955-1965)

• Para executar um job:

– Programador escrevia o programa no papel

– Perfurava os cartões e levava o maço para a sala de entradas

– Entregava a um dos operadores e ia tomar um café

• Ao fim da execução de um job:

– Operador ia até a impressora e retirava a saída

– Levava para a sala de saídas para o programador

• Muito tempo de computador desperdiçado enquanto os operadores andavam pelas salas

10/75

Page 11: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A segunda geração (1955-1965)

• Era preciso reduzir o desperdício de tempo

• Sistema em lote (batch)

• Gravação de vários jobs em fita magnética usando um computador mais barato – IBM1401

• Bom para ler cartões, copiar fitas e imprimir saída, mas ruim em cálculos

11/75

Page 12: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A segunda geração (1955-1965)

• Máquinas mais caras – IBM7094 – faziam os cálculos numéricos

12/75

Page 13: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A segunda geração (1955-1965)

• Depois de acumular um lote de jobs (± 1 hora) a fita era encaminhada para a sala das máquinas

• O operador carregava um programa especial para ler a fila de jobs e executá-los

• É o antecessor do sistema operacional de hoje

• Terminado, retirava-se a fita e levava-se de volta ao 1401 para impressão

• Usados para cálculos de equações diferenciais – programados em FORTRAN e em linguagem de montagem

• Os SOs eram o FMS (Fortran Monitor System) e o IBSYS – da IBM para o 7094

13/75

Page 14: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Maioria dos fabricantes oferecia duas linhas de produtos totalmente incompátiveis

• Demandava grande custo para o fabricante

• Cliente precisava expandir negócios – não podiam atualizar seus computadores

14/75

Page 15: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• IBM lança System/360 – série de máquinas com softwares compatíveis

15/75

Page 16: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Primeira linha a usar CIs em pequena escala –melhor custo-benefício

• Sucesso instantâneo – outros fabricantes adotaram a ideia

1974 – Intel 4004 – 4 bits, 2000 transistores,

1974 – Intel 8080 – 8 bits

16/75

Page 17: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• O OS/360 precisava rodar tanto em sistemas pequenos – 1401 – quanto em sistemas muito grandes – 7094

• Tinha que ser eficiente com poucos periféricos e com muitos periféricos, ambientes comerciais e ambientes científicos

• Sistema operacional enorme e complexo – milhões de linhas escritas em linguagem de montagem por milhares de programadores

• Cada nova versão corrigia alguns erros e inseria alguns novos

17/75

Page 18: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Apesar disso, atendiam razoavelmente bem à seus clientes

• Evolução de várias técnicas de sistemas operacionais

• Multiprogramação – quando o 7094 terminava um job, ficava ocioso até a gravação da fita e entrada de outra.

• Em sistemas comerciais, tempo de espera chegava a 80-90% do tempo total

18/75

Page 19: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Divisão da memória em várias partes – um job em cada parte

• Enquanto um job esperava, outro executava• Para isso, necessário hardware especial para isolar cada

job

19/75

Page 20: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Spooling – capazes de transferir jobs dos cartões para discos magnéticos

• 1401 não era mais necessário – leva e traz de fita desaparece

20/75

Page 21: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Intervalo de tempo entre submeter job e obter saída era de muitas horas

• Erro de compilação – programador perdia metade do dia

• Timesharing – compartilhamento de tempo

• Usuários conectavam através de terminais remotos

• 20 usuários conectados – 17 pensando ou tomando café – CPU alocada ciclicamente aos 3 jobs rodando

• Comandos curtos – podia atender os programadores e rodar grandes lotes de job em segundo plano

• CTSS - Compatible Time Sharing System – sistema de compartilhamento de tempo compatível

21/75

Page 22: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Baseado no sucesso do CTSS – MULTICS

• MIT, Bell Labs e GE

• Enorme máquina fornecendo ‘energia’ computacional

• Não funcionou – Bell Labs retirou-se, GE saiu da área

• MIT lançou – instalado em 80 empresas e universidades

• Enorme influência sobre os sistemas operacionais seguintes

22/75

Page 23: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A terceira geração (1965-1980)

• Ken Thompson, da Bell Labs, escreveu uma versão monousuário do MULTICS – Unix

• Tanenbaum desenvolve clone do Unix – Minix – em 1987

• Linus Torvalds desenvolve versão gratuita do Minix -Linux

23/75

Page 24: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A quarta geração (1980 – presente)

• Desenvolvimento de CIs em larga escala

• CI – milhares de transistores em um cm² de silício

• Era dos computadores pessoais

• Microprocessador tornou possível que indivíduos tivessem seu próprio computador pessoal

Primeiro computador pessoal -Commodore PET –microprocessador 6502

24/75

Page 25: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A quarta geração (1980 – presente)

• 1974 - Intel lança 8080 – buscava um SO

• Gary Kildall – consultor da Intel - desenvolveu um SO baseado em disco – CP/M (Control Program for Microcomputers)

• Intel não acreditava em micros baseados em disco

• Kildall requisitou os direitos e fundou a Digital Research

• Dominou completamente o mercado durante 5 anos

25/75

Page 26: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A quarta geração (1980 – presente)

• Advogado é contra assinar acordo de sigilo sobre o PC

• IBM volta a Gates

• Gates contata a Seattle Computer Products – que possui o DOS (Disk Operating System)

• Compra a empresa por 50 mil dólares

• Anos 80 – IBM projeta IBM PC e busca um SO

• Contata Bill Gates para licenciar o Basic e pede por um SO

• Gates sugere a Digital Research

• Kildall recusa a reunir-se com a IBM – envia subordinado

26/75

Page 27: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A quarta geração (1980 – presente)

• Gates vende à IBM um pacote DOS/Basic

• Contrata Tim Paterson, criador do DOS

• Sistema revisado muda para MS-DOS

• Domina o mercado do IBM PC

• Gates vendia o DOS para as fabricantes – diferente de Kildallque vendia para os usuários

• 1983: lançado IBM PC/AT com Intel 80286 – MS-DOS avançava e CP/M definhava

• MS-DOS amplamente usado com 80386 e 80486

27/75

Page 28: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A quarta geração (1980 – presente)

• SOs baseados em digitação de comandos

• Anos 60, Doug Engelbart – Stanford Research Institute –inventou a interface GUI (Graphical User Interface)

• Adotadas pela Xerox PARC (Palo Alto Research Center)

• Steve Jobs visitou o Xerox PARC e viu uma interface GUI

• Percebeu seu potencial – coisa que a Xerox não tinha feito

• Projeto Lisa – muito dispendioso e falhou comercialmente

28/75

Page 29: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

A quarta geração (1980 – presente)

• Segunda tentativa – Apple Macintosh –enorme sucesso

• Custo menor e interface amigável

• Destinada a usuários que não sabiam nada sobre computadores e que não tinham intenção de saber

• Microsoft segue a tendência e desenvolve o Windows

• Interpretador de comandos em cima do MS-DOS

• De 85 a 95, Windows era apenas um ambiente gráfico

• 1995 – Lançado Windows 95 – incorpora aspectos de um SO e usa o DOS apenas para ser carregado

29/75

Page 30: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 1.0

30/75

Page 31: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 2.0

31/75

Page 32: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 3.0

32/75

Page 33: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 3.11 NT

33/75

Page 34: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 95

34/75

Page 35: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 98

35/75

Page 36: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows XP

36/75

Page 37: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows Vista

37/75

Page 38: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Windows 7

38/75

Page 39: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 1.0 (1984)

39/75

Page 40: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 2.0 (1985)

40/75

Page 41: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 3.0 (1986)

41/75

Page 42: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 5.0 (1987)

42/75

Page 43: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 6.0 (1988)

43/75

Page 44: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 7.0 (1991)

44/75

Page 45: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 8.0 (1997)

45/75

Page 46: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple System 9.0 (1999)

46/75

Page 47: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple Mac OS X 10 (2001)

47/75

Page 48: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple Mac OS X Tiger (2005)

48/75

Page 49: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Evolução das interfaces GUI

• Apple Mac OS X Leopard (2005)

49/75

Page 50: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Histórico da Computação

Tipos de Computadores

50/75

• Computadores de grandes empresas

• Realização de grandes tarefasMAINFRAME

• Computadores capazes de servir diversas máquinas ao mesmo tempo

• Difusão de computadores entre os funcionários de diversos setores.

COMPUTADORES EM REDE, SERVIDORES E CLIENTES

• Utilizado por empresas que necessitam de alto desempenho, ou seja capaz de executar vários trabalhos simultaneamenteWORKSTATION

• Computador Pessoal, barato e acessível e realiza as principais tarefas rotineirasPC

• Computadores portáteis, importante para o trabalho de campoNOTEBOOK

• Tem sido o maior sucesso nas feiras de Informática e Comunicação. Dispositivos pequenos capazes de efetuar várias tarefas

PALMTOP , SMARTPHONE e TABLET

Page 51: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Histórico da Computação

Hardware e Software

51/75

• É a parte física da máquina, ou seja, seus componentes eletrônicos, peças e periféricos

HARDWARE

• É a parte lógica da máquina, um conjunto de procedimentos que executam alguma função “programas”

SOFTWARE

Page 52: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Histórico da Computação

Classificação dos Computadores

52/75

1ª Geração

• 1945

• UNIVAC 1

• Válvulas

• Milisegundos

• Grande

• Pouco confiáveis

• Monoprogramá-veis

• Linguagem de Máquina

2ª Geração

• 1958

• IBM 1401

• Transistor (SSI e MSI)

• 100 vezes menor

• Consumo menor de energia

• Mais rápido e confiável

• Microsegundos

• Discos magnéticos

• Monoprogramá-veis

• Linguagem Assembler

3ª Geração

• 1965

• IBM 360

• Circuito integrado (LSI)

• Miniaturização dos componentes

• Baixíssimo consumo de energia

• Menor Tamanho

• Multiprograma-ção

4ª Geração

• 1975

• Circuitos integrados (LSI e VLSI –Very LargeScale Integration)

• 0,5 nanosegundos

• Popularização

• Firmware (funções SO)

5ª Geração

• 1990

• Aperfeiçoamento da tecnologia (ULSI-Ultra ScaleIntegration)

• Aumento da velocidade de processamento

• Conectividade

• Mobilidade

• OBS: Geração criada pelos japoneses para descrever o potencial da conectividade

Page 53: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Modelo de Computador

Representação da Informação

Um dos grandes nomes da teoria da informação, Claude Shannon (autor de "The Mathematical Theory ofCommunication") define que informação está presente sempre que um sinal é transmitido de um ponto a outro.

Processamento da Informação pelo Ser Vivo

os SENTIDOS são meios de receber sinais do meio ambiente;

estas impressões sensoriais são transmitidas por uma rede nervosa ao cérebro através de sinais elétricos e químicos;

sons emitidos pelos seres vivos são também meios de transmitir informações a outros seres: são mensagens que exprimem vontades, impressões, ordens...

53/75

Page 54: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Modelo de Computador

Arquitetura de um computador

A arquitetura básica de um computador moderno segue ainda de forma geral os conceitos estabelecidos pelo Professor da Universidade de Princeton, John Von Neumann (1903-1957)

1. Codificassem instruções que pudessem ser armazenadas na memória e sugeriu que usassem cadeias de uns e zeros (binário) para codificá-los;

2. Armazenassem na memória as instruções e todas as informações que fossem necessárias para a execução da tarefa desejada;

3. Ao processarem o programa, as instruções fossem buscadas na diretamente na memória.

54/75

Page 55: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Modelo de Computador

Arquitetura de um computador

Unidade Central de Processamento (UCP)

MEMÓRIA PRINCIPAL (MP)

DISPOSITIVOS DE ENTRADA E SAÍDA (E/S)

55/75

Page 56: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Dispositivos Digitais x Analógicos

56/75

Page 57: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Unidades básicas do computador Digital

Hardware

Unidade de Entrada

Teclado, mouse, microfone,

scanner, câmeras digitais, etc.

CPU Unidade de Saída

Monitor de vídeo, impressora, alto falante, plotter,

etc.

57/75

Page 58: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Unidades básicas do computador Digital

58/75

Page 59: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Terminologias usual em Computação

Termos técnicos (terminologias) de informática/computação utilizados para referenciar funções e/ou aplicações, por exemplos:

HardwareHard Disc: Disco rígido, sigla HD

SoftwareOperation System: Sistema Operacional, sigla SO

Computação em geralHost: máquina, hospedeiro

ExercícioCada aluno deve apresentar 5 terminologias com seus respectivos significados

59/75

Page 60: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Sistemas de Numeração

RomanoI, II, III, IV ... XVIII ....

Decimal1, 2, 3 ... 12 ....

Binário01, 10, 11 ... 1001...

60/75

Page 61: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Sistema de Numeração Posicionais

A posição ocupada por cada algarismo em um número altera seu valor de uma potência de 10 (na base 10) para cada casa à esquerda

Por exemplo, no sistema decimal (base 10)O número 125

o algarismo 1 representa 100 (uma centena ou 102)

o 2 representa 20 (duas dezenas ou 2x101)

e o 5 representa 5 mesmo (5 unidades ou 5x100)

Assim, em nossa notação, 125 = 1x102 + 2x101 + 5x100

61/75

Page 62: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Base de um Sistema de Numeração

A base de um sistema é a quantidade de algarismos disponível na representação

Na base 10 (0, 1, 2, 3, 4, 5, 6, 7, 8 e 9)

Na base 2 (0 e 1)

Na base 16 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F)

62/75

Page 63: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Representação BináriaOs computadores modernos utilizam apenas o sistema binário

bit (uma contração do inglês binary digit)

Na base 2, o número "10" vale dois

63/75

Page 64: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Representação Octal

Representação Hexadecimal

64/75

102 seria lido "um-zero" na base 2 e vale 210

(convertido para "dois" na base dez),

105 seria lido "um-zero" na base 5 e vale 510

(convertido para "cinco" na base dez),

1010 pode ser lido como "um-zero" na base 10 ou então como "dez" na base dez,

1016 seria lido "um-zero" na base 16 e vale 1610

(convertido para "dezesseis" na base dez),

Page 65: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Conversões entre Basesregras gerais para converter números entre duas bases

Conversão de números da base 2 para a base 10

Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n

Exemplo

O número 1011012 na base 10

1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 32 + 0 + 8 + 4 + 0 + 1 = 4510

OBS: podemos fazer a conversão de números em qualquer base para a base 10 usando o algoritmo acima

65/75

Page 66: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Conversões entre Basesentre as bases 2, 8 e 16

Regra Geral: separa em grupos de n bits sempre começando da direita para esquerda (n representa a potência da bases que são potências entre si B=bn, exemplo 23 = 8)

Exemplosconversão entre a base 2 e 8 (8 = 2³)

101010012 = 10.101.0012

Sabemos que 0102 = 28 ; 1012 = 58 ; 0012 = 18

portanto 101010012 = 2518

conversão entre as bases 2 e 16 (16 = 24)

110101011012 = 110.1010.11012

Sabemos que: 1102 = 616; 10102 = A16 ; 11012 = D16

Portanto: 110101011012 = 6AD16

66/75

Page 67: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Conversões entre Bases

A conversão inversa

Exemplo

3F5H em octal

convertendo cada dígito hexadecimal em 4 dígitos binários 11.1111.01012

agrupando de três em três bits 1.111.110.1012

convertendo cada grupo para seu valor equivalente em octal 17658

67/75

Page 68: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Conversões entre Bases

Conversão de Números da Base 10 para uma Base b qualquer

Parte Inteira

O número decimal será dividido sucessivas vezes pela base

resto de cada divisão ocupará sucessivamente as posições de ordem 0, 1, 2 ... Até o quociente resultar em zero

Exemplo: 1910 para a base 2

68/75

Page 69: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Sistemas Numéricos

Conversões entre Bases

Conversão de Números da Base 10 para uma Base b qualquer

Parte Fracionária

Multiplicações sucessivas do número fracionário pela base

A parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária e a parte fracionária será de novo multiplicada pela base

Por exemplo, converter 15,6510 para a base 2, com 5 e com 10 algarismos fracionários

69/75

Page 70: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Noções de Sistemas Operacionais

Conceito

“Conjunto de programas que tem por finalidade gerenciar os recursos do computador e facilitar a comunicação entre o homem e a máquina. Ou seja, unir : hardware, software e peopleware”

Funções

– Permitir o funcionamento básico do computador e dos seus periféricos

– Permitir a interação do homem e máquina , através de comandos previamente definidos

– Executar tarefas básicas e rotineiras dentro de um sistema de computação (classificação, edição, cópia, apagar, impressão de um arquivo, formatação de discos, alocar e liberar memória, gerenciar periféricos)

– Execução de programas

– Tornar o uso do equipamento mais simples, seguro e eficiente

70/75

Page 71: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Noções de Sistemas Operacionais

Tipos de Supervisão e Controle

– Tratamento de erros

– Tratamento de I/O

– Escalonamento de processo

– Proteção

Características

– Escrito em linguagem de baixo nível

– Eficiente e eficaz

– Dependente da arquitetura do hardware

71/75

Page 72: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Noções de Rede Local

“Rede é uma forma de interligar equipamentos (micros e periféricos) para que seja possível a troca de dados e o compartilhamento de recursos.”

Aspectos positivos das redes

– Comunicação e intercâmbio de dados entre usuários

– Processamento Distribuído

– Compartilhamento de recurso em geral

– Racionalização do uso de periféricos

– Acesso rápido a informações compartilhadas

– Flexibilidade lógica e física de expansão

– Custo/Desempenho baixo para soluções que exijam muitos recursos

– Interação entre diversos usuários e departamentos de uma empresa

– Redução e eliminação de redundância de armazenamento

– Controle da utilização e proteção no acesso de arquivos

72/75

Page 73: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Noções de Rede Local

Topologias

– Estrela

– Anel

– Barramento

Arquiteturas

– Ponto a Ponto

– Cliente-Servidor

73/75

Page 74: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

Bibliografia da Disciplina

74/75

BIBLIOGRAFIA BÁSICA:

MANZANO, José Augusto N. G., OLIVEIRA, Jayr Figueiredo de., Algoritmos: lógica para desenvolvimento de programação

de computadores. 17a. ed. São Paulo: Érica, 2005. 236p. ISBN 857194718X.

FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e

estruturas de dados. 3a. edição São Paulo: Prentice Hall, 2005. 197 p.

ISBN 8534611246.

IBPI – Instituto Brasileiro de Pesquisa em Informática. Dominando a Linguagem C, Rio de Janeiro: IBPI Press, 1993.

KERNIGHAN, Brian W; RITCHIE, Dennis M. C. A Linguagem de programação padrão ANSI. 1a. ed. Rio de Janeiro/Porto

Alegre: Campus, 1990. 289 p. ISBN 8570015860.

SCHILDT, H. C. Completo e Total. 3a. ed. São Paulo: Makron Books Ltda, 1996. Apostila de Linguagem C da UFMG

disponível na internet em http://ead1.eee.ufmg.br/cursos/C/

BIBLIOGRAFIA COMPLEMENTAR:FEDELI R. D.; POLLONI E. G. F; PERES, F. E., Introdução à Ciência da Computação, Cengage Learning, 2010.

MEDINA M; FERTIG C., Algoritmos e Programação – Teoria e Prática, Novatec, São Paulo, 2006.

GUIMARÃES A. e LAGES N. , Algoritmos e Estruturas de Dados , Ed. LTC Livros Técnicos e Científicos, Rio de Janeiro, 1985.

JAMSA K., Salvo pelo C++, LTC Livros Técnicos e Científicos Editora, 1994.

ALCADE E. Informática Básica e outros Ed. Makron Books São Paulo 1991.

SALIBA, CARAM W. L. Técnicas de Programação: uma abordagem estruturada, Ed. Makron, McGrawHill, São Paulo, 1992.

MACHADO F. M. Ed. LTC , Introdução à Arquitetura de Sistemas Operacionais Livros Técnicos e Científicos, Rio de Janeiro, 1992.

DAVIS W. S. D. Sistemas Operacionais: uma visão sistemática Ed. Campus, Rio de Janeiro, 1990.

Page 75: Introdução e Sistemas de Numeração - joinville.udesc.br · Sistemas de Numeração. Programação para Engenharia I ... arquitetura dos computadores •Veremos as sucessivas gerações

Programação para Engenharia I

PROGRAMAÇÃO PARA ENGENHARIA I

Prof. Claudinei Dias

email: [email protected]

Introdução e

Sistemas de Numeração