CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 1.1 - CONCEITUAÇÃO A INFORMAÇÃO E O PROCESSAMENTO DA INFORMAÇÃO O que é informação? Informação é qualquer idéia ou fato que tenha sido registrado ou transmitido de alguma forma, ou seja, é o elemento a ser tratado e é definida como tudo aquilo que permite adquirir qualquer tipo de conhecimento e, portanto, existirá informação sempre que se der a conhecer algo que até então se desconhecia. Um jornal, por exemplo, está repleto de informações. A informação, porém, não precisa ser guardada apenas na forma de letras impressas sobre papel. A música que está gravada num disco também é informação, assim como tudo o que uma pessoa consegue guardar em sua memória. A teoria da informação Quem fez pela primeira vez uma análise mais rigorosa da transmissão da informação foi Claude Shannon, criador da Teoria da Informação. De acordo com Shannon, sempre que uma informação é transmitida estão envolvidos os seguintes elementos: - o transmissor, que é a parte que envia a informação; o sinal, que é a forma de transmissão da informação; o canal, que é o meio utilizado para enviar o sinal; a mensagem, que é o conteúdo da informação; o ruído, que é o que chega ao receptor além do que foi intencionalmente enviado; o receptor, que é a parte que recebe a informação. Assim, quando uma pessoa está falando, ela (transmissor) emite ondas sonoras (sinal) através do ar (canal). Nessas ondas vão as frases (mensagem) que chegam ao ouvinte (receptor). O ouvinte pode entender exatamente o que o falante quer dizer, mas pode compreender algo diferente ou além da mensagem (o ruído). O processamento de dados O termo processamento de dados (ou de informações) engloba qualquer trabalho de manipulação de dados que tenha como finalidade obter resultados previamente estabelecidos, ou seja, este consiste em uma série de atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informações a partir de outras obtidas inicialmente. Esse grupo de atividades envolve a transmissão, o armazenamento, a recuperação, a comparação e a combinação de informações. A manipulação das informações coletadas no início da atividade chama-se processamento; as informações iniciais são usualmente denominadas dados. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 2 Os termos dado e informação podem ser tratados como sinônimos ou como termos distintos; dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta) e informação, como o resultado do processamento, isto é, o dado processado ou "acabado". A figura 1.1 mostra o esquema básico de um processamento de dados (manual ou automático), que resulta em um produto acabado: a informação. Figura 1.1 - Etapas básicas de um processamento de dados. Informação subentende dados organizados (segundo uma orientação específica) para o atendimento ou emprego de uma pessoa ou grupo que os recebe. Ao procurarmos na lista telefônica o número de um assinante, estamos realizando um trabalho de recuperação deste dado. Estamos, portanto, processando dados. Ao efetuar uma operação matemática estamos manipulando dados com a finalidade de obter um resultado específico, o que também é um processamento de dados. ALGORITMOS E PROGRAMAS Qualquer processamento de dados requer a execução de uma série de etapas, que podem ser realizadas de forma manual ou automática por um computador. Tais etapas, elaboradas e executadas passo a passo, constituem o que se chama programa. Cada um dos passos mencionados é uma diferente instrução, ou ordem de comando, dada ao hardware, objetivando a realização de uma determinada ação (uma operação aritmética, uma transferência de informação, etc.). O programa é o conjunto de instruções. Consideremos que se deseja, por exemplo, somar 100 números e imprimir o resultado, conforme mostrado na figura 1.2. Figura 1.2 - Algoritmo para soma de 100 números. Uma pessoa é capaz de executar a soma, cujo algoritmo é apresentado na figura 1.2, através de variações sobre as etapas indicadas, mas um computador, sendo uma máquina, requer instruções precisas e completas sobre cada passo que deva executar. O grupo de passos relacionado na figura constitui um algoritmo: conjunto de etapas finitas, ordenadamente definidas, com o propósito de obter solução para um determinado problema. O termo "finitas" significa a necessidade de um requisito qualquer que estabeleça o final da execução do algoritmo; no exemplo dado, podemos observar, na etapa CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 3 5, que a execução das etapas de 2 a 4 se repete enquanto N<100. Esta é, pois, a cláusula de parada. A figura 1.3 mostra um esquema da execução manual do programa gerado pelo algoritmo da figura 1.2, observando-se nele as etapas básicas. As etapas de um algoritmo são as instruções que deverão ser executadas por uma máquina (quando falamos de computadores); o conjunto de instruções constitui o que chamamos de programa. Um programa de computador é a formalização de um algoritmo em linguagem inteligível pelo computador. Figura 1.3 - Fases de processamento de um programa. Assim como o operador deve ter entendido os sete passos do programa apresentado na figura 1.2, um computador precisa entender cada instrução, de modo a executar corretamente a operação que se pretende. O operador entendia português, sua linguagem de comunicação com outras pessoas; os computadores têm uma linguagem própria - a linguagem binária. Nesta, os caracteres inteligíveis não são A, B, +, =, 0, 3, etc., mas apenas zero (0) e um (1). Todo dado coletado pelos computadores, as instruções por ele executadas, bem como os resultados de um processamento são sempre constituídos de conjuntos ordenados de zeros e uns. 1.2 - ORGANIZAÇÃO BÁSICA DE UM SISTEMA DE COMPUTAÇÃO Na descrição de sistemas de computação, é feita, freqüentemente, a distinção entre arquitetura e organização de computador. Arquitetura de computador refere-se àquelas especificações de um sistema visível para um programador de linguagem de máquina, (aquelas especificações que tem um impacto direto na execução lógica de um programa). Exemplos: O conjunto de instruções, o número de bits usados para representar vários tipos de dados (números, caracteres), mecanismos de entrada/saída e técnicas para memória de endereçamento. Organização de computador refere-se às unidades operacionais e suas interconexões que realizam as especificações da arquitetura. Exemplos: Os detalhes de hardware transparentes para o programador, tais como os sinais de controle, interfaces entre o computador e os periféricos e a tecnologia de memória utilizada. Em cada nível, o projetista está relacionado com a estrutura e a função: CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS • • 4 Estrutura - A forma com que os componentes estão interrelacionados. Função - A operação de cada componente individual como parte da estrutura. Em termos gerais, existem somente quatro funções básicas (figura 1.4) que um computador pode desempenhar: • • • • Processamento de dados; Armazenamento de dados; Movimento de dados; Controle. Figura 1.4 - Funções desempenhadas por um computador. Nota: Ciclos de Busca e de Execução de uma instrução Do ponto de vista mais simples, o processamento da instrução (ciclo de instrução) consiste em dois passos: a busca de instrução é uma operação comum para cada instrução, e consiste em leitura de uma instrução de uma localização em memória. A execução de instrução pode envolver várias operações e pode depender da natureza da instrução. Um ciclo de instrução inclui os seguintes subciclos: - de busca: Ler a próxima instrução de memória na UCP. - de execução: Interpretar o código de operação e executar a operação indicada. - de interrupção: Se interrupções estão habilitadas e uma interrupção ocorreu, salvar o estado de processo atual e cumpra-se a interrupção. Este ciclo se repete indefinidamente até que o sistema seja desligado, ou ocorra algum tipo de erro, ou seja encontrada uma instrução de parada. COMPONENTES DE UM COMPUTADOR Virtualmente todos projetos de computadores contemporâneos estão baseados na arquitetura de Von Neumann, a qual tem três conceitos chave: CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 5 1. Dados e instruções são armazenadas em um única memória de leitura e escrita. 2. Os conteúdos desta memória são endereçáveis por localização, sem levar em conta o tipo de dados contido lá. 3. Execução de uma instrução para a próxima ocorre num modo seqüencial (a menos que explicitamente modificado). Um ponto muito importante é sabermos como é uma descrição bem simples e possível de um computador. O computador (figura 1.5) é uma entidade que interage de algum modo com o ambiente externo (dispositivos periféricos ou linhas de comunicação). Figura 1.5 - Descrição sucinta de um computador. O sistema de computação é composto por três (3) componentes principais: - Hardware: corresponde à parte física do sistema de computação (figura 1.6). É o computador propriamente dito. Possui 2 componentes: . Sistema central: composto pela Unidade Central de Processamento (ou processador), Memória Principal e as suas interconexões; . Periféricos: podem ser de Entrada, Saída e/ou Armazenamento e as suas interconexões. Figura 1.6 - Parte física de um sistema de computação. - Software: corresponde à parte lógica do sistema de computação. São os programas (ou conjunto de instruções), organizados em um ou mais arquivos, que manda o computador executar tarefas que solucionam determinados problemas. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 6 - Peopleware: são os usuários, as pessoas que trabalham com o computador. Podem ser digitadores, programadores, analistas, ou simplesmente usuários do computador. HARDWARE Organização do Processador (UCP) A UCP (figura 1.7) é a parte principal do computador responsável pelo processamento e execução de programas armazenados na memória principal. Sua função consiste em coordenar, controlar e realizar todas as operações (execução de instruções) do sistema. Suas partes principais são as seguintes (figura 1.8): - a unidade aritmética e lógica (UAL): realiza o cálculo real ou o processamento de dados (realiza as operações aritméticas e lógicas). - a unidade de controle (UC): controla o movimento de dados e instruções dentro e fora da UCP e controla a operação da UAL, de forma adequada e sincronizada. - os registradores: memória interna mínima e que consiste num conjunto de localizações de armazenamento. - barramento interno da UCP: é o caminho necessário para transferir dados entre os vários registradores e a UAL. Figura 1.7 - A UCP com o barramento do sistema. Em resumo, as atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais: • função processamento - encarrega de realizar as atividades relacionadas com a efetiva execução de uma operação, ou seja, processar; e CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 7 • função controle - exercida pelos componentes da UCP que se encarregam das atividades de busca, interpretação e controle da execução das instruções, bem como do controle da ação dos demais componentes do sistema de computação (memória, entrada/saída, etc). Figura 1.8 - Estrutura interna da UCP. a) Organização dos Registradores Os registradores na UCP tem duas funções: - Registradores visíveis ao usuário: Estes permitem ou habilitam a máquina ou programador de linguagem Assembly a minimizar referências de memória principal aperfeiçoando uso de registradores. Estes podem se caracterizar nas seguintes categorias: de aplicação geral, de dados, de endereço e de códigos de condição. - Registradores de controle e de estado: Estes são usados pela unidade de controle para controlar a operação da UCP e por privilégio, programas do sistema operacional para controlar a execução de programas. Quatro registradores são essenciais a execução de instrução: contador de programa (CP), registrador de instrução (RI), registrador de endereço de memória (REM) e o registrador de dados da memória (RDM). b) Organização da Unidade Aritmética e Lógica Em termos muito gerais, a UAL (figura 1.9) é interconectada com o resto da UCP. Os dados são apresentados a UAL através de registradores, e os resultados de uma operação são armazenados também em registradores. A UAL também fixará flags como o resultado de uma operação. A unidade de controle fornece sinais que controlam a operação da UAL e o movimento dos dados dentro e fora da UAL. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 8 Figura 1.9 - Entradas e saídas da UAL. c) Organização da Unidade de Controle A unidade de controle (figura 1.10) é aquela porção da UCP que, emite sinais de controle externos à UCP para causar a troca de dados com a memória e os periféricos. A unidade de controle também emite sinais de controle internos à UCP para mover dados entre registradores, fazer com que a UAL execute uma função especificada e para regular outras operações internas. Entrada à unidade de controle consiste no registrador de instrução, flags e sinais de controle de fontes externas (por exemplo, sinais de interrupção). É visto que a responsabilidade básica da unidade de controle é causar uma sucessão de operações elementares, chamada microoperação, a ocorrerem durante o curso de um ciclo de instrução. Há duas maneiras, utilizadas no projeto e funcionamento de uma UC, que caracterizam conceitos diferentes de controle: - controle programado diretamente no hardware (“hardwired control”); e - controle por microprogramação. A diferença básica entre os dois tipos está no processo de controle da realização do ciclo de instrução. No primeiro caso, cada etapa é realizada segundo uma lógica préestabelecida, implementada fisicamente no hardware da área de controle. No caso de controle microprogramado, a interpretação e as conseqüentes etapas do ciclo de instrução são realizadas passo a passo por um programa, denominado microprograma. Figura 1.10 - Modelo da Unidade de Controle . d) Organização do barramento interno da UCP É uma rede de linhas de comunicação que conecta os elementos internos de uma UCP e também direciona-se para os conectores externos que ligam a UCP aos outros elementos de um sistema de computação. Os três tipos de barramentos da UCP são: CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 9 - um barramento de controle: que consiste numa linha que sente sinais de entrada e outra linha que gera sinais de controle a partir da UCP (linha bidirecional); - um barramento de endereço: uma linha unidirecional da UCP que controla a localização de dados em endereços de memória; - um barramento de dados: uma linha de transferência bidirecional que tanto lê como escreve dados na memória. Organização da Memória Principal A memória principal (ou memória primária) tem por finalidade o armazenamento de instruções e dados de programas que serão ou estão sendo executados pela UCP. É considerada como uma memória de trabalho para a UCP, sendo organizada em células com tamanho fixo e igual, cada uma identificada por um número denominado endereço. A MP pode ser acessada através de duas operações: a) leitura: ler da memória - significa requisitar à MP o conteúdo de uma determinada célula. O sentido de operação dá-se da MP para a UCP. b) escrita: escrever na memória - significa escrever uma informação em uma célula da MP. O sentido da operação dá-se da UCP para a MP. Classificam-se em dois grupos: . RAM (Memória de Acesso Aleatório) - dinâmica ou estática - esta memória volátil retém as instruções e dados de programas que estão sendo executados, tornando o tempo de leitura e escrita extremamente rápidos. . ROM ou ROM padrão - é a memória somente de leitura, pois as informações são gravadas no momento da fabricação e não mais serão alteradas. Contém basicamente informações necessárias para o funcionamento do computador, como rotinas que verificam se os meios físicos estão aptos para o funcionamento. Outras versões de ROMs são disponíveis PROM, EPROM, EEPROM ou EAPROM e memória flash - as quais podem ser programadas, no mínimo, uma vez; são todas memórias não voláteis. A memória cache é uma memória (RAM estática) volátil de alta velocidade, localizada entre a UCP e a memória principal, usada com a finalidade de acelerar o processamento do subsistema UCP/MP, funcionando como um buffer da memória principal. Toda vez que a UCP faz referência a um dado armazenado na memória principal, ela “olha” antes na memória cache. Se a UCP encontrar o dado na cache, não há necessidade do acesso à memória principal (cache hit); do contrário o acesso é obrigatório (cache miss ou cache fault). Apesar de ser uma memória de acesso rápido (tempo de acesso é muito menor em relação à memória principal), seu uso é limitado em função do alto custo. A memória cache existe apenas nas placas de microcomputadores com UCP’s mais rápidas, a partir do 386DX de 25 MHz. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 10 As memórias secundárias (auxiliares ou de massa) são um tipo de memória não volátil de grande capacidade de armazenamento, usada para guardar informações (instruções e dados de programas) que não serão imediatamente usadas pela UCP. Como exemplos de memórias secundárias tem-se as fitas magnéticas, discos (fixos e removíveis), disquetes, winchesters, tambores magnéticos, CD-ROM, e outros. Organização da Entrada/Saída (E/S) Um subsistema de entrada/saída (E/S) deve, em conjunto, ser capaz de realizar duas funções: · receber ou enviar informações ao meio exterior; · converter as informações em uma forma inteligível para a máquina ou para o programador. a) Interfaces de E/S Também conhecido como controladoras de E/S, unidade processadora de periféricos, adaptador de periférico e canal de E/S. O interface (figura 1.11) é um conjunto de circuitos (hardware) e programas (software) que interligam um ou mais dispositivos de E/S e o subsistema UCP/MP para controlar e efetivar transferência de bits entre estes elementos. Figura 1.11 - Exemplos de configuração UCP/MP e um interface. O interface tem duas funções principais (figura 1.12): - Interface a UCP e a memória pelo barramento do sistema: Combinar as velocidades entre os dispositivos que operam em velocidades diferentes. - Interface a um ou mais dispositivos periféricos através de vínculos de dados: converter dados de um formato em outro. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 11 Figura 1.12 - Exemplo de comunicação direta UCP/MP e periféricos, indicando-se as diferentes características de transmissão de cada um. Em geral, o interface é responsável pelas seguintes tarefas: controle e sincronização, comunicação com a UCP, comunicação com o dispositivo, armazenamento temporário de dados e detecção de erros. Há duas maneiras básicas de se realizar transmissão/recepção de dados entre os periféricos/interfaces e o subsistema UCP/MP bem como entre dispositivos interconectados entre si, local ou remotamente: 1) a informação pode ser transmitida/recebida, bit a bit, um em seguida ao outro em uma única linha - isto caracteriza a transmissão serial (figura 1.13), que pode ser assíncrona ou síncrona (impressoras e terminais, teclado, mouse, modems); e Figura 1.13 - Exemplo de transmissão serial. 2) a informação pode ser transmitida/recebida simultaneamente em grupos de bits em múltiplas linhas - isto caracteriza a transmissão paralela (figura 1.14) - periféricos de alta velocidade (fitas e discos magnéticos). Figura 1.14 - Exemplo de transmissão paralela. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 12 A escolha de um desses tipos para interligar a E/S ao subsistema UCP/MP depende de vários fatores, tais como: tipo e natureza do periférico, custo de implementação e velocidade de transmissão desejada. b) Dispositivos externos Operações de E/S são realizadas por uma ampla classificação de dispositivos externos que fornecem um significado de troca de dados entre o ambiente externo e o computador. Os diversos tipos de dispositivos que podem ser conectados em um computador são classificados em três categorias: 1) os que transmitem/recebem informações inteligíveis para o ser humano - são adequados para estabelecimento de comunicação com o usuário. É o caso das impressoras, monitores de vídeo, plotters, multimídia, etc. 2) os que transmitem/recebem informações inteligíveis apenas para a máquina - são adequados para comunicação máquina a máquina ou internamente a uma máquina. É o caso dos teclados, mouses, scanners, discos magnéticos, fitas magnéticas, discos óticos, sensores e atuadores em aplicação robótica; 3) os que transmitem/recebem de/para outros dispositivos remotamente instalados, tais como os modems e regeneradores digitais. c) Métodos de realização de operações de E/S Há três métodos distintos de efetuar operações de E/S, isto é, de a UCP ler e escrever dados em um periférico específico: E/S por programa (memória compartilhada e E/S isolada), E/S com o emprego de interrupção e Acesso Direto à Memória. Organização de Interconexão de Sistema ou barramento do sistema O barramento de um sistema de computação (figura 1.15) é o elemento responsável pela interligação dos demais componentes (UCP, memória, E/S), conduzindo de modo sincronizado o fluxo de informações de uns para os outros, de acordo com uma programação de atividades previamente definida na unidade de controle. Em qualquer barramento as linhas podem ser classificadas em três grupos funcionais: - As linhas de dados fornecem um caminho para os dados (as instruções e os valores numéricos ou alfabéticos) se moverem entre os módulos do sistema. - As linhas de endereço são usadas para designar a fonte ou destino dos dados (valores que indicam a localização dos dados) no barramento de dados. Estas linhas são usadas geralmente para endereço de portas de E/S. - As linhas de controle são usadas para controlar o acesso para e o uso das linhas de dados e de endereço. Exemplos de alguns dos sinais de controle: de leitura, de escrita, de interrupção, de sincronização, entre outros). Embora exista uma variedade de implementações de barramentos diferentes, há alguns parâmetros básicos ou elementos de projeto que servem para classificar e diferenciar CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 13 barramentos. Os elementos-chave são: tipos de barramento (multiplexado ou dedicado), métodos de arbitragem (centralizado ou distribuído), temporização (assíncrona ou síncrona), largura do barramento (de dados e de endereço), tipo de transferência de dados (transferências de escrita (mestre para escravo), de leitura (escravo para mestre), de leitura modificada para escrita, de leitura após a escrita e por blocos) e tratamento de interrupções. No mercado existem diversos barramentos, entre os mais conhecidos temos: o UNIBUS da DEC, o MCA da IBM, o ISA da IBM (o mais usado e difundido), o EISA, o SBI da DEC. Figura 1.15 - Barramento do sistema. SOFTWARE O conceito de software refere-se a todos os elementos de programação de um sistema de computação, isto é, todos os programas, sejam de aplicação ou básicos do sistema, contrastando com a parte física e visível do sistema - o hardware. Podem ser classificados em softwares básicos ou softwares aplicativos. Softwares básicos São os programas que definem o padrão do equipamento, sendo necessários para o funcionamento do computador. Os tipos de software básico são: sistema operacional, ambiente operacional, linguagens de programação, tradutores e utilitários. a) Sistema operacional O sistema operacional (figura 1.16) é a interface básica entre usuário e o computador, pois é um gerenciador de recursos, alocando o hardware, o software e os dados. Em resumo, é um sistema (programa de controle mestre) que controla e coordena todas as operações básicas do sistema de computação. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 14 Figura 1.16 - Funções do sistema operacional. Existem diferentes sistemas operacionais. Os mais conhecidos são o MS-DOS (para PC compatíveis), MUMPS, System 7, Unix, etc. Os sistemas operacionais são compostos por duas (2) partes no que diz respeito a localização física na memória do computador. Uma parte está gravada em chip de memória ROM onde estão as rotinas mais fundamentais de coordenação e tradução de fluxos de dados de fontes não similares (unidades de disco ou disk drives, os co-processadores que são chips de processamento que trabalha paralelamente à unidade central, mas com operações diferentes), como: acionar e ler a unidade de disco, colocar mensagens no monitor, verificar se o teclado está funcionando, etc.; sendo que a quantidade de rotinas gravadas na memória ROM depende de cada fabricante. A outra parte do sistema operacional será carregada na memória RAM do sistema normalmente em duas (2) etapas: - A 1ª. é totalmente transferida para a RAM quando o sistema é ligado; - A 2ª. é carregada na memória à medida que é solicitada. Os sistemas operacionais são, às vezes, chamados de firmware, por serem programas que podem ser fornecidos pelo fabricante do equipamento. No caso de PC´s, CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 15 podem vir gravados na memória ROM ou na EEPROM. O padrão é virem em disquetes ou já gravados no winchester. Os programas que compõem o sistema operacional são, na maioria dos casos, escritos em linguagem de programação de baixo nível. Os sistemas operacionais podem ser classificados de acordo com suas características de funcionamento em: sistema monousuário, sistema multiusuário, sistema monotarefa e sistema multitarefa. b) Ambiente operacional São ambientes que adicionam recursos ao sistema operacional para permitir uma interface gráfica com o usuário, ou seja, é um sistema operacional com recursos gráficos. Exemplo: Windows 95. c) Linguagens de programação É um conjunto de símbolos (vocabulário) e regras (gramática) que especificam como transmitir informações entre usuários e computador. As linguagens de programação estão divididas em: linguagem de máquina, linguagem de baixo nível e linguagem de alto nível. A linguagem de máquina é baseada em código binário, em 0s e 1s. É utilizada diretamente pelo computador. Exemplo: Linguagem de máquina 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 Significado carrega no registrador 1 o conteúdo da posição de memória 14 carrega no registrador 2 o conteúdo da posição de memória 15 soma o conteúdo do registrador 1 com o conteúdo do registrador 2 e coloca no registrador 1 armazena o conteúdo do registrador 1 na posição de memória 15 A linguagem de baixo nível é uma simplificação da linguagem de máquina. Faz uso de códigos mnemônicos para expressar as instruções. Exemplo: Assembly. Exemplo: Linguagem de máquina Linguagem de baixo nível 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 LOAD R1, val1 LOAD R2, val2 ADD R1, R2 STORE R1, val2 A linguagem de alto nível utiliza a combinação de um conjunto de símbolos de acordo com certas regras de sintaxe para expressar uma seqüência de operações de máquina. É uma linguagem que não exige conhecimento do código de máquina. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 16 Exemplo: Linguagem de máquina Linguagem de baixo nível Linguagem de alto nível 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 LOAD R1, val1 LOAD R2, val2 ADD R1, R2 STORE R1, val2 val2 = val1 + val2 Como exemplos de linguagens de alto nível tem-se: FORTRAN ( FORmula TRANslator), ALGOL (ALGOrithimic Language), COBOL (Common Business Oriented Language), BASIC (Beginner’s All-purpose Symbolic Instruction Code), PASCAL, LOGO, C, LISP, PROLOG, etc. d) Tradutores Mas, se os computadores trabalham internamente com a linguagem de máquina, como é que podemos fazer programas usando linguagem de baixo ou de alto nível? É que existem tradutores que lêem uma linguagem de programação e a transformam para linguagem de máquina. Existem 3 tipos de tradutores: - Montador: lê uma linguagem de baixo nível e transforma para linguagem de máquina. Interpretador: lê uma linguagem de alto nível e transforma para linguagem de máquina. Compilador: lê uma linguagem de alto nível e transforma para linguagem de máquina. Mas qual a diferença entre interpretador e compilador? Compilador 1) Lê e analisa todo o programa fonte (escrito em linguagem de alto nível) e traduz para linguagem de máquina. 2) Cria um programa objeto que corresponde às instruções em linguagem de máquina. 3) Executa-se direto o programa objeto. 4) Traduz tudo de uma vez. Se encontrar erro, é preciso voltar ao programa fonte, corrigir, recompilar e executar novamente o programa objeto. Interpretador 1) Interpreta cada comando e executa. Faz linha a linha. Não traduz todo o programa para depois executar. 2) Não gera programa objeto. 3) Executa-se o programa fonte e sempre é necessário interpretar antes. 4) Se encontrar erro avisa na hora. Então, se edita o programa fonte, corrige-se o erro e interpreta-se novamente. CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 17 e) Utilitários São programas que ampliam os recursos do sistema facilitando o uso e auxiliando a manutenção de programas. Administram o ambiente oferecendo ferramentas ao usuário para organizar os discos, verificar memória, corrigir falhar, etc. Exemplos: Save Smart: grava automaticamente a tela de trabalho do usuário quando a máquina é desligada e quando ela é ligada, retorna ao mesmo ponto onde estava. Formatadores; Programas de backup; Compactadores de disco: Zip, Arj, etc. Desfragmentadores: regravam de forma mais eficiente os arquivos que foram fragmentados pelo sistema operacional. Ou seja, faz com que um arquivo que foi armazenado em "pedaços" seja armazenado de forma contígua; Antivírus: detectam a presença de algum vírus e tenta eliminá-lo. Estes programas recebem o nome de utilitários por serem úteis ao sistema computacional. Softwares aplicativos São os programas voltados para a solução de problemas do usuário. Podem ser de: - uso geral: são programas que podem ser utilizados em vários tipos de aplicações. Exemplos: editores de texto, gráficos, planilhas, gerenciadores de banco de dados, etc. - uso específico: se destinam exclusivamente a um único tipo de aplicação. Exemplos: folha de pagamento, crediário, imposto de renda, cadastro, contas a pagar e receber, etc. CLASSIFICAÇÃO DOS SISTEMAS DE COMPUTAÇÃO A classificação ou diferenciação dos sistemas de computação mais usual é dada em: - sistemas de grande porte (mainframes e supercomputadores), - sistemas de médio porte (minicomputadores e estações de trabalho) e, - sistemas de pequeno porte (microcomputadores). Suas funções, conceitualmente, são idênticas, e a diferença reside nas escalas, ou seja, os sistemas maiores possuem mais capacidade e velocidade de processamento, são mais confiáveis, apresentam melhor assistência técnica e em geral podem ser utilizados por muitas pessoas. Os limites entre as classes são pouco nítidas e com os avanços tecnológicos tendem a ficar ainda mais difícil de ser distinguidos. O número de modelos disponíveis em cada classe é muito grande, fato este que levou esta classe a uma subdivisão com o adjetivo super (supermicros, superminis e supercomputadores). CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 18 A classificação de um computador pode ser feita de várias maneiras, como por exemplo: a) b) c) d) velocidade de processamento e volume de transações capacidade de processamento e número de usuários concorrentes capacidade de armazenamento tipo de CPU e tamanho da memória disponível - Sistemas de pequeno porte Os micros (é mais comum e popular denominá-los assim do que pela sua forma completa - microcomputador) podem ser do tipo de mesa (Desktop) ou de torre (PC Personnel Computer = computador pessoal), laptops, Notebooks, sub-notebooks e os Palmtops. Exemplos de PCs: PC/XT (eXtend Technology), PC/AT 286 (Advanced Technology), PC/AT 80386 (386SX, 386SL), PC/AT 486 (80486SX, 80486SL, 80486SLC2, Pentium). - Sistemas de médio porte Minicomputadores, por sua vez, são máquinas projetadas para atender simultaneamente a demanda por execução de programas de vários usuários, embora a quantidade de usuários e de programas não seja tão grande quanto se pode encontrar em computadores de grande porte. Os sistemas VAX-11/780 da DEC são exemplos típicos de minicomputadores, bem como os sistemas AS/400 da IBM. Uma estação de trabalho é essencialmente um microcomputador projetado para realizar tarefas pesadas, em geral na área científica ou industrial, tais como complexas computações matemáticas, projetos com auxílio de computação (CAD - Computer Aided Design), fabricação com auxílio de computação (CAM - Computer Aided Manufacturing) e a composição, manipulação e apresentação de gráficos e imagens de altíssima resolução. Essas tarefas requerem mais velocidade de processamento, mais capacidade de memória (em tamanho e velocidade de transferência de informações) e dispositivo de vídeo de mais alta qualidade do que as características usuais dos microcomputadores. O sistema DECstation 5000/33 ou IBM RS/6000 são exemplos de estações de trabalho. - Sistemas de grande porte Os computadores de grande porte ou mainframes são sistemas projetados para manusear considerável volume de dados e executar simultaneamente programas de uma grande quantidade de usuários. Os sistemas IBM 3090 e Control Data CDC 6600 são típicos exemplos de computadores de grande porte. Finalmente, um supercomputador é projetado primariamente para atender a um único propósito: realizar grandes quantidades de cálculos matemáticos o mais rapidamente possível. Essas máquinas, como o sistema CRAY Y-MP e IBM 9021, podem realizar aplicações que demandam mais o processador que os demais componentes, tais como: previsão de tempo, simulação, modelagem tridimensional. Uma máquina dessas é capaz de CAPÍTULO 1 - NOÇÕES BÁSICAS SOBRE SISTEMAS COMPUTACIONAIS 19 realizar dois bilhões de operações matemáticas por segundo e manipular mais de um bilhão de células de memória. MEDIDAS DE DESEMPENHO DE SISTEMAS DE COMPUTAÇÃO A medida geral de desempenho de um sistema de computação depende fundamentalmente da capacidade e velocidade de seus diferentes componentes, da velocidade com que estes componentes se comunicam entre si e do grau de compatibilidade que possa existir entre eles (p.ex., se a velocidade da UCP de um sistema é muito maior que a da memória, então este sistema tem um desempenho inferior ao de um outro em que a UCP e a memória têm velocidades mais próximas). Considerando a existência de tantos fatores que influenciam o desempenho de um sistema de computação, desenvolveram-se diversos meios de medir seu desempenho. O desempenho dos processadores, em geral, é medido em termos da sua velocidade de trabalho; como seu trabalho é executar instruções, criou-se a unidade (sempre questionada por alguns) chamada MIPS - milhões de instruções por segundo, e também a unidade MFLOPS (millions of floating point operations per second) - milhões de operações de ponto flutuante por segundo, que é uma medida típica de estações de trabalho e de supercomputadores, pois estes costumam trabalhar mais com cálculos matemáticos. Já quando se trata de recuperação ou escrita de informações na memória, o tempo de acesso é uma unidade de medida mais apropriada, estando relacionada à velocidade de cada componente e à do canal de interligação entre os dois (UCP e memória). Tempo de resposta é uma medida ligada ao desempenho mais global do sistema e não de um ou outro componente. Trata-se do período de tempo gasto entre o instante em que o usuário iniciou uma solicitação ou interrogação e o instante em que o sistema apresentou ao usuário a sua resposta ou atendeu à sua solicitação. Por exemplo, o intervalo de tempo entre a solicitação de um saldo de conta em um terminal bancário e a apresentação no vídeo da resposta (o saldo da conta). Uma outra unidade de medida de desempenho é a vazão (throughput), que define a quantidade de ações ou transações que podem ser realizadas por um sistema na unidade de tempo. Por exemplo, a quantidade de atualizações que podem ser feitas em um sistema de controle do estoque de uma empresa. Quando estamos nos referindo à velocidade com que um determinado dispositivo de entrada ou de saída transfere ou recebe dados da UCP utilizamos uma unidade que mede a taxa de transferência que o canal de ligação (barramento) pode suportar, isto é, a quantidade de bits por segundo que podem trafegar pelo referido canal.