A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "15 de Setembro de 2006 Introdução aos Sistemas de Computadores 1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2006/2007."— Transcrição da apresentação:

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

2 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 2 Objectivos / Programa –Introdução aos Sistemas de Computadores –Introdução à Algoritmia –Familiarização com uma linguagem imperativa (Octave/MATLAB) –Aplicação a problemas de engenharia –Introdução à programação reactiva (folha de cálculo) Responsável: –Jorge Cruz ( jc@di.fct.unl.pt http://ssdi.di.fct.unl.pt/~jc)jc@di.fct.unl.pthttp://ssdi.di.fct.unl.pt/~jc Assistentes: –Alexandre Pinto (amp@di.fct.unl.pt http://centria.di.fct.unl.pt/~amp)amp@di.fct.unl.pthttp://centria.di.fct.unl.pt/~amp –Luís Soares (Luizsoarez@gmail.com)Luizsoarez@gmail.com –Fausto Mourato (fausto.mourato@gmail.com)fausto.mourato@gmail.com Página de ICP: –http://ssdi.di.fct.unl.pt/cursos/icp/http://ssdi.di.fct.unl.pt/cursos/icp/ Apresentação da Disciplina

3 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 3 Avaliação Componente Prática (em grupos de 2): 1º Trabalho de Octave 2º Trabalho de Octave Teste de Excel Frequência Presenças 20 aulas práticas (de +25 previstas) Nota em cada componente prática >= 7.5 Nota Prática >= 9.5 (média aritmética das componentes) Têm frequência os alunos que a obtiveram em 2005/06 Exame: Individual, nas datas oficiais da FCT Nota Final: 25% Nota Prática + 75% Nota Exame

4 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 4 Introdução aos Computadores Um programa é a materialização para uma dada máquina (computador e linguagem de programação) de um algoritmo. Um computador é uma máquina capaz de executar determinadas tarefas. Para uma máquina poder executar uma determinada tarefa é necessário: –Um algoritmo adequado para executar essa tarefa –Uma representação do algoritmo compreensível pela máquina Um algoritmo é um conjunto ordenado de passos que definem como uma tarefa deve ser executada.

5 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 5 Exemplo Tarefa: Calcular o maior divisor comum de dois inteiros positivos x e y Algoritmo: 1º Passo: atribuir a M o maior valor entre x e y; 2º Passo: atribuir a N o menor valor entre x e y; 3º Passo: chamar R ao resto da divisão inteira de M por N; 4º Passo: se R=0 então o maior divisor comum é N; senãoatribuir a M o valor de N; atribuir a N o valor de R; voltar ao 3º Passo;

6 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 6 Exemplo Tarefa: Calcular o maior divisor comum de dois inteiros positivos x e y Programa (Octave): x=input(Qual o valor de x?); y=input(Qual o valor de y?); M = max(x,y); N = min(x,y); do R = mod(M,N); if (R <> 0) M = N; N = R; endif; until (R == 0); disp(O maior divisor comum é:); disp(N);

7 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 7 Introdução aos Computadores Os programas e os algoritmos que eles representam são genéricamente denominados por software. A máquina e os seus componentes físicos são genéricamente denominados por hardware.

8 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 8 Representação da Informação Toda a informação necessária ao funcionamento de um computador é representada por conjuntos de bits. Um bit (binary digit) é um valor simbólico (0/1) que fisicamente é armazenado em componentes (circuitos) que podem estar num de dois estados (ex: ligado 1; desligado 0).

9 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 9 Memória Principal A memória principal é organizada numa sequência de células (palavras), cada uma com um tamanho típico de 8 bits (byte) e que pode ser acedida individualmente especificando o seu endereço (RAM random access memory) Memória Principal Memória Secundária Disco Rígido Disquetes CDs DVDs... Armazenamento de Dados

10 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 10 Memória Principal O número de células da memória principal é geralmente grande, variando de computador para computador, e expressa-se normalmente em potências de 2: 0: 1: 2: 3: 4: ??: endereço 01101101 10101110 00001111 01011100 10110011 00110011 células... 2 10 bytes = 1024 bytes = 1 Kilobyte = 1 KB 2 20 bytes = 1024 KB = 1 Megabyte = 1 MB 2 30 bytes = 1024 MB = 1 Gigabyte = 1 GB Armazenamento de Dados

11 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 11 Memória Principal Em cada célula os bits são ordenados. 0: 1: 2: 3: 4: ??: endereço 01101101 10101110 00001111 01011100 10110011 00110011 células... 0 0 0 0 1 1 1 1 bit mais significativo bit menos significativo A memória principal pode ser considerada uma longa sequência de bits, permitindo representações com um tamanho arbitrário de bits. (ex: uma sequência de 16 bits pode ser representada por 2 células consecutivas) Armazenamento de Dados

12 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 12 Memória Secundária A memória secundária (discos rígidos, disquetes, CDs, DVDs,...) complementa a memória principal, proporcionando num meio menos volátil (não se apaga quando se desliga o computador): A maior desvantagem destes sistemas relativamente à memória principal é a velocidade de acesso (usa meios mecânicos muito mais lentos). mais espaço de armazenamento; possibilidade de separação física da máquina. Armazenamento de Dados

13 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 13 Representação da Informação como Sequência de bits Representação de Texto Cada símbolo é normalmente representado por 1 byte de acordo com o código ASCII (American Standard Code for Information Interchange). 01000010011011110110110100100000011001000110100101100001 Bomdia 01000010 01101111 01101101 00100000 01100100 01100001... 01101001... B o m d a i memória principal

14 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 14 Representação da Informação como Sequência de bits Representação de Valores Numéricos Sistema Decimal 239 9×10 0 = 9 3×10 1 = 30 2×10 2 = 200 239 Sistema Binário 11101111 1×2 0 = 1 1×2 1 = 2 1×2 2 = 4 239 1×2 3 = 8 0×2 4 = 0 1×2 5 = 32 1×2 6 = 64 1×2 7 = 128 Sequência de números binários: 0, 1, 10, 11, 100, 101, 110, 111, 1000,...

15 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 15 Representação da Informação como Sequência de bits Representação de Imagens Mapas de bits Uma imagem é um conjunto de pontos (pixel – picture element) representado por uma longa sequência de bits: imagens a preto e branco (pixel1 bit): 1preto ; 0branco imagens a cores (pixel3 bytes): vermelho+verde+azul (RGB) Os mapas de bits ocupam muito espaço pelo que se usam frequentemente técnicas de compressão (ex: GIF e JPEG). Uma desvantagem adicional é a dificuldade de aumentar ou diminuir as imagens.

16 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 16 Representação da Informação como Sequência de bits Representação de Imagens Técnicas de Vectores As técnicas de vectores representam uma imagem como um conjunto de linhas e curvas deixando os detalhes do seu desenho para a componente que produz a imagem (monitor, impressora). Uma característica destas técnicas é a facilidade de aumentar ou diminuir as imagens. As técnicas de vectores são usadas frequentemente para representar tipos de letra (escaláveis) e em aplicações de desenho (ex: CAD – Computer-Aided Design).

17 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 17 Manipulação da Informação O computador, além de ser capaz de armazenar os dados, tem também que os saber manipular para poder executar os algoritmos. A manipulação dos dados requer um mecanismo para executar operações sobre os dados e coordenar a sequência dessas operações. Num computador típico este mecanismo é denominado unidade central de processamento (CPU – Central Processing Unit).

18 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 18 Arquitectura Básica de um Computador CPU (Central Processing Unit) –Lê instruções –Executa instruções Memória –Guarda Dados –Guarda Instruções Dispositivos de Entrada/Saída –Teclado, rato, placa gráfica, placa de som, discos rígido, diskettes, flash disks, impressoras, placa de rede,...) –Permitem a comunicação com o exterior (utilizador, periféricos, outros computadores...) Vias de Comunicação (Buses)

19 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 19 Manipulação da Informação A unidade central de processamento é constituida por: Unidade Central de Processamento (CPU) Uma unidade lógica/aritmética que contém os circuitos que executam a manipulação de dados; Uma unidade de controle que contém os circuitos para a coordenação da actividade da máquina; Um conjunto de registos gerais que servem para armazenar temporariamente os dados que são manipulados na CPU; Dois registos especiais: -Um contador (program counter) que contém o endereço da próxima instrução a ser executada; -Um registo de instrução (instruction register) que contém a instrução que está a ser correntemente executada.

20 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 20 Manipulação da Informação Unidade Central de Processamento (CPU) CPU 0: 1: 2: 10100100 00000000... registos 00000010 0110110110101110 contador registo de instrução Unidade de Controle Unidade Lógica/Aritmética A CPU está ligada com a memória principal (RAM) por um circuito (BUS) através do qual é capaz de transferir dados entre a RAM e os seus registos. RAM 0: 1: 2: 3: 4: 01101101 10101110 00001111 01011100 10110011... BUS Actualmente quase todos os CPUs contêm uma memória de alta velocidade (semelhante à dos registos) denominada Memória Cache. Nestes casos, a máquina tenta manter na Memória Cache uma cópia da parte da RAM que esteja correntemente a ser utilizada.

21 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 21 Manipulação da Informação Execução de Programas Um programa para poder ser executado tem que ser codificado e armazenado na memória principal. A unidade de controle é responsável pela extração do programa da memória principal, descodificação das suas instruções e sua execução. A unidade de controle repete continuamente o seguinte ciclo (machine cycle): Fetch Decode Execute Transferir da RAM a instrução indicada pelo contador para o registo de instrução e incrementar o contador. Descodificar o conteúdo do registo de instrução, identificando a operação requerida e os respectivos operandos. Executar a operação requerida pela instrução activando os circuitos apropriados.

22 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 22 Exemplo de Funcionamento Executar a (instrução de) atribuição: Z X +Y Assume-se –O dado X na posição de memória 5001 –O dado Y na posição de memória 5002 –O dado Z a ser colocado na posição de memória 5003 Programa em Assembly (Linguagem Máquina): 2001: LDA 5001(5001) (Registo A) 2003: LDB 5002(5002) (Registo B) 2004: ADD(Reg. A) + (Reg. B) (Reg. O) 2005: STO 5003(Registo O) (5003)

23 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 23 Manipulação da Informação Comunicação com os Periféricos A memória principal (RAM) conjuntamente com a unidade de processamento central (CPU) constituem o núcleo do computador que comunica com os periféricos através de dispositivos intermediários denominados controladores. Nos PCs os controladores correspondem às placas que se podem inserir na placa principal (motherboard) e às quais se ligam os periféricos. CPU Controlador BUS RAM Controlador Monitor Disco Rígido Cada controlador trata da comunicação com determinado tipo de periférico. O controlador está electronicamente ligado ao BUS que liga a CPU à RAM. A comunicação entre a CPU e um controlador é feita de um modo idêntico à comunicação da CPU com a RAM (o endereço identifica o controlador).

24 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 24 Linguagens de Programação Os computadores (mais especificamente os processadores) executam programas. Estes programas podem ser escritos em linguagens com vários graus de abstração: 2005: 2001: 2002: 2003: 2004: 2006: 2007: LDA 5001 LDB 5002 ADD STO 5003 –desde a linguagem ASSEMBLY (linguagem máquina com algumas mnemónicas) directamente relacionada com o funcionamento de um determinado processador –até às linguagens de alto nível (Pascal, C, Java,...), independentes do processador Z X+Y

25 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 25 Compiladores A consideração de diferentes níveis de abstração é extremamente útil para se entender os programas executados pelos computadores. Por exemplo, se inicialmente (anos 50) os programas eram escritos em linguagem máquina, essa situação alterou-se rapidamente por razões óbvias de eficiência de programação e manutenção de programas. Em particular, são muito importantes os programas que –recebem como input um texto correspondente a um programa escrito numa linguagem de alto nível (por exemplo C); e –produzem como output um programa escrito em linguagem máquina.

26 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 26 Compiladores Estes programas são os chamados compiladores, naturalmente dependentes da linguagem de alto nível e da linguagem máquina pretendidas e que são comparáveis conceptualmente a funções Compilador (de Pascal) Programa Máquina Programa Pascal 25 5 sqrt

27 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 27 Sistemas de Operação A consideração de vários níveis de abstração é útil não só para se entenderem os programas executados pelos computadores, mas também para se entender a organização e encadeamento dos vários programas utilizados. Um Sistema de Operação (Windows, UNIX, Linux, Mac OS,...) é um conjunto de programas que permitem operar um computador em alto nível. Por exemplo, em vez de se especificarem todas as instruções necessárias para ler um ficheiro chamado (texto.txt) do disco para a memória, bastará utilizar uma instrução do tipo, read(texto.txt) disponibilizada pelo sistema de operação às aplicações

28 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 28 Aplicações Uma vez estabelecidas as primitivas disponibilizadas por um sistema de operação, vários programas de aplicação podem ser escritos de uma forma independente do computador / processador. Processador Compilador Pascal Compilador C Editor de Texto Folha de Cálculo Browser Bases de Dados Jogos Sistema Operação de Read(file)

29 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 29 Sistemas de Operação - Shell As principais componentes de um sistema de operação são –Interface com o utilizador (shell – user interface), que interpreta as instruções dadas pelo utilizador. –O Núcleo (kernel) composto por programas de mais baixo nível, que permitem executar essas instruções. Normalmente, a shell disponibiliza uma interface gráfica (GUI – Graphical User Interface) cujos objectos (ficheiros, programas...), são representados e manipulados graficamente no monitor como ícones. Uma componente importante das interfaces gráficas é o gestor de janelas, responsável pela divisão do ecrã em espaços denominados janelas e pela sua associação com as respectivas aplicações.

30 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 30 Sistemas de Operação - Kernel O Núcleo é composto por um conjunto de programas que executam várias funções: –Gestão de Ficheiros: Organizam os ficheiros em hierarquias, e provê instruções para a sua criação, alteração e apagamento. –Gestão de Periféricos: Disponibilizam instruções de alto nível para aceder aos dispositivos periféricos (discos, placa gráfica, placa de som, etc...) –Gestão de Memória: Organizam a memória para que as zonas de memória (programa e dados) dos vários programas concurrentes (processos) não se confundam. –Gestão de Processos: Divide o tempo entre os vários processos, interrompendo-os e retomando-os quando apropriado.

31 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 31 Sistemas de Operação – Gestão de Ficheiros A função do Gestor de Ficheiros é a coordenação das capacidades de armazenamento da máquina. A informação é armazenada em ficheiros que normalmente são agrupados em directorias organizadas hierarquicamente: A:\ Ficheiro_1Ficheiro_2Directoria Ficheiro_3 C:\ Program Files Programa_1.exe... C:\Program Files\Programa_1.exe A:\Directoria\Ficheiro_3

32 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 32 Sistemas de Operação – Gestão de Periféricos Os gestores de periféricos (device drivers) são as unidades de software que comunicam com os controladores dos periféricos. Cada device driver é especializado num determinado periférico (uma impressora, um disco rígido, um monitor,...). Assim, através um qualquer computador (genérico) pode ser configurado para um conjunto particular de periféricos com a instalação dos respectivos device drivers.

33 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 33 Sistemas de Operação – Gestão de Memória O gestor de memória é responsável pela coordenação da utilização da memória principal (RAM). Vários programas e blocos de dados podem estar simultaneamente na memoria principal. Por exemplo: –Um processador de texto com vários ficheiros abertos –Uma folha de cálculo –O browser para aceder à Internet –Um gestor de correio electrónico É necessário coordenar a utilização do espaço disponível, e eventualmente, criar a ilusão de um espaço de memória maior (memória virtual) usando por exemplo espaço do disco rígido.

34 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 34 Sistemas de Operação – Gestão de Processos Um processo é um programa em execução. Os computadores actuais possibilitam a execução de vários processos concurrentemente, isto é, o tempo de CPU é partilhado (time-sharing) pelos respectivos processos. Os gestores dos processos são componentes do sistema operativo responsáveis, pela manutenção –De uma lista dos processos em execução. –Dos respectivos estados (em execução, suspenso,...) –Da prioridade dos processos. –Dos tempos de CPU atribuidos a cada processo.

35 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 35 Sistemas de Operação – Arranque Quando o computador é ligado um pequeno programa de inicialização é executado automaticamente. Este programa está armazenado permanentemente numa parte não volátil da memória principal (ROM – Read Only Memory). O objectivo do programa de inicialização é fazer a transferência para a memória principal do sistema operativo que se encontra armazenado numa zona prédeterminada do disco rígido (ou outro periférico) e iniciar a sua execução. Uma vez iniciada a sua execução, o sistema operativo passa a controlar todas as actividades da máquina.

36 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 36 Sistemas Multi-Utilizadores Até aos anos 70/80 a tecnologia não permitia a construção de computadores pessoais de forma económica. Nessa altura, a arquitectura habitual de um sistema computacional era de um computador mainframe, que incluia vários periféricos comuns (discos, impressora,..) ao qual estavam ligados vários utilizadores através de terminais. Mainframe Impressora Discos

37 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 37 Sistemas Multi-Utilizadores Nesses sistemas multi-utilizador o sistema operativo geria os vários utilizadores, dando-lhes, à vez, tempo de CPU, zonas separadas de memória, acesso concorrente aos periféricos,... Com o aparecimento nos anos 80 de computadores pessoais, houve a possibilidade de substituir os terminais individuais por esses computadores pessoais (terminais inteligentes), que permitiam executar de uma forma autónoma várias tarefas. Mainframe Impressora Discos

38 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 38 Redes Locais de Computadores Esta mudança deu origem ao aparecimento de redes locais de computadores em que vários computadores pessoais comunicavam entre si (ficheiros, mensagens,...). PC Servidor Impressora Base de Dados Salvo em organizações grandes, os mainframes foram substituídos por computadores menos potentes. Estes servidores, mantêm serviços e periféricos comuns (bases de dados, impressoras, etc...).

39 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 39 Redes de Computadores Por outro lado, a tecnologia de comunicações permitiu ligar os servidores em redes de computadores não locais, em que uma infraestrutura de nós intermédios garantia o encaminhamento das mensagens entre servidores e utilizadores finais. PC Servidor PC Servidor

40 15 de Setembro de 2006 Introdução aos Sistemas de Computadores 40 Redes de Computadores As redes de computadores foram evoluindo ao longo do tempo desde a ARPANET (rede militar, com acesso a universidades) até à actual INTERNET. Os utilizadores ligam-se a servidores internet (ISPs) tornando-se seus clientes e acedendo a vários tipos de serviços através de programas apropriados, tais como: –Browsers, dando acesso a páginas e outros serviços Web (suportados no protocolo HTTP) –Transferência de ficheiros (protocolo FTP) –Correio Electronico (por ex. Eudora, Netscape, Outlook) –Voz (VoIP) por exemplo disponível no MSN Messenger


Carregar ppt "15 de Setembro de 2006 Introdução aos Sistemas de Computadores 1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2006/2007."

Apresentações semelhantes


Anúncios Google