Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas de grandes dimensões - mainframes - exigindo ambientes condicionados, operados por pessoal altamente especializado e onde as aplicações eram geralmente executadas em lotes e não de forma interactiva. Nos anos 80-90 surgiram os computadores pessoais que são máquinas de pequeno porte físico, normalmente operados pelo utilizador e onde a maioria das aplicações são interactivas. Actualmente a tendência é para a formação de redes de computadores como a Internet ou as Intranets e as aplicações são muitas vezes distribuídas e os recursos existentes compartilhados. Computador é uma máquina programável constituída por unidade(s) de processamento, memória e sistemas de entrada e saída de dados. Um computador deverá poder efectuar, de modo independente, muitas (e complexas) operações aritméticas e lógicas. 1
Elementos fundamentais de uma arquitectura convencional MC UCP I/O MM UCP - Unidade Central de Processamento. MC - Memória Central; MM - Memória de Massa; I/O - Dispositivos de input/output UAL UCP UC Registos Unidade Central de Processamento Responsável por interpretar e executar as instruções recebidas e é composta por: UAL, UC e Registos. A UAL - Unidade Aritmética e Lógica - é responsável por realizar as operações com dados como, por exemplo, somas, comparações... A UC - Unidade de Controle - faz a supervisão geral da UCP e coordena a transmissão de dados para fora e para dentro da UCP. Os Registos são dispositivos de armazenamento com velocidades de acesso muito rápido e que servem para armazenar temporariamente os dados que estão sendo processados na UCP. 2
Para executar uma instrução de um programa armazenado na memória a UC transfere, para um dos registos, a instrução a ser executada, identifica qual a operação a ser realizada e emite os sinais de controle e de sincronismo necessários à sua execução. Se a instrução necessitar de operações aritméticas ou lógicas a UAL realiza essas operações, sob o controle da UC. As instruções que uma UCP é capaz de processar são muito mais simples que as instruções das linguagens de programação usuais e cada UCP possui um conjunto pré-definido de instruções que é capaz de processar. A medida mais comum da velocidade de processamento de uma UCP é dada em MIPS (milhões de instruções por segundo). A UC tem um relógio interno (clock) que gera pulsos para sincronizar as operações. A frequência do relógio condiciona a velocidade de processamento da UCP e é medida em MHz (Megahertz). Ex: Pentium IV a 1500MHz. Dentro da mesma família de UCP quanto maior for a frequência de relógio mais rápido será o processamento, mas, se as famílias forem diferentes, essa comparação não é válida, pois outros aspectos condicionam também a velocidade de processamento! 3
MC Memória Central Responsável por armazenar dados e instruções que serão processadas pela UCP. É geralmente conhecida por memória RAM (Random Access Memory) pois o acesso às células de memória é independente da sua posição física e é feito através de um endereço. célula de memória: nome (endereço) conteúdo Este tipo de memória tem uma velocidade de acesso maior que a da memória de massa mas é volátil, isto é, perde o conteúdo na ausência de energia. Existem ainda outros tipos de memória: ROM (Read Only Memory) - usada para armazenar informações iniciais básicas, necessárias ao arranque do computador (boot). Não é volátil e só permite operações de leitura. Cache - memória com velocidades de acesso maiores que a MC e que é usada para armazenar dados e instruções que vão ser processados pela UCP, aumentando o desempenho do sistema. É também volátil. 4
MM Memória de Massa Devido à volatilidade da RAM é indispensável utilizar mecanismos de armazenamento que garantam a persistência dos dados tais como: discos rígidos; disquetes; CD-ROM Estas unidades têm velocidades de acesso menores que a MC e o seu custo é muito menor. Medida da capacidade de memória A capacidade de memória é medida em bytes. Um byte tem 8 bits que é a menor unidade de processamento. Um bit pode ter apenas dois valores 0 ou 1. Definindo um código, as diferentes combinações de bits permitem representar caracteres. Assim um byte, usando o código ASCII, permite armazenar um caractere. Exemplo: A = 10100001 5
I/O Dispositivos de Entrada e Saída São responsáveis pela comunicação entre o computador e o utilizador ou com outros sistemas. Os dispositivos de entrada recebem dados e instruções para processamento. São exemplos: o teclado, o rato, as mesas digitalizadoras, os scanners... Os dispositivos de saída exibem os resultados do processamento. São exemplos: as impressoras, os traçadores... A necessidade de lidar com a gestão dos diversos subsistemas contidos num computador - discos, memória central, UCP, periféricos de escrita e de leitura, sistemas de comunicação, etc., - conduz à necessidade de um sistema de exploração. Para poder realizar as tarefas de processamento pretendidas é necessário dispor de linguagens específicas para programar computadores. 6
Assim um Sistema Computacional pode ser entendido como um conjunto composto por:? Hardware -Os componentes físicos de um computador e os periféricos a ele ligados.? Software - Os programas que controlam o hardware e realizam as tarefas de processamento pretendidas? Humanware - Os recursos humanos necessários ao funcionamento do sistema tais como programadores, analistas de suporte ou de sistemas, gestores de redes... Software - podemos distinguir duas classes: Software básico = Sistemas de exploração e Operadores de linguagens de programação. Aplicações = Editores de texto, folhas de cálculo ou quaisquer outros programas de computador que permitam realizar uma dada tarefa. 7
Sistemas de exploração (sistemas operativos ou sistemas operacionais) - são programas que controlam os computadores e coordenam os diversos componentes de hardware do sistema computacional. São exemplos: MS-DOS, Windows NT, UNIX e Linux Os sistemas de exploração possuem uma linguagem de controle que permite a comunicação com os utilizadores. Para interpretar esses comandos existe um interpretador (shell) que reconhece a linha de comando, verifica a sua sintaxe, envia mensagens de erro e faz chamadas a rotinas do sistema. Para facilitar a comunicação, estas linguagens evoluíram de forma a permitir uma interacção mais amigável utilizando interfaces gráficas (janelas e ícones). Kernel shells utilizador 8
Operadores de linguagens de programação - são programas cuja função é traduzir para linguagem máquina outros programas escritos numa linguagem de programação. São exemplos: Compiladores e interpretadores de linguagens de programação Assim, as aplicações podem ser desenvolvidas numa linguagem de programação à escolha e depois serem executadas num dado sistema computacional desde que se disponha dos operadores necessários. Conceitos a saber: Computador, Sistema Computacional, Hardware, Software, Sistema de exploração, Bit, Byte. 9