http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 1/8
1 Introdução
1.1 Conceitos elementares
Um sistema computacional pode ser dividido de um modo abstracto em 4 componentes: 1. Hardware (processador também designado por Central Processing Unit,
memória, dispositivos de entrada-saída ou periféricos): disponibilizam recursos computacionais básicos
2. Sistema operativo: controla e coordena o uso do hardware entre as várias aplicações para os vários utilizadores.
3. Aplicações ou programas (compiladores, sistemas de bases de dados, aplicações financeiras, de escritório, jogos, etc..): Definem o modo como os recursos do sistema são usados pelos utilizadores.
4. Utilizadores (pessoas, outros computadores, sistemas embebidos, outros dispositivos electrónicos)
Fig. 1-1: Componentes de um sistema computacional multi-tarefa (in Silberschatz et al 2004)
Um sistema operativo pode ser definido como um programa que age como intermediário entre um utilizador e o hardware, de modo que o utilizador tenha acesso facilitado e eficiente aos recursos do computador.
Um sistema operativo pode ser dividido em camadas (ou níveis) de abstracção sucessivas, cada uma construída no topo das inferiores. Deste modo cada camada disponibiliza funções para as camadas acima, de modo que à medida que se sobe de nível se aumenta a abstracção em relação ao hardware. Este constituí assim a camada mais abaixo neste modelo, sendo a camada superior o interface com o utilizador. Este interface poderá ser o interpretador de comandos (shell) ou um ambiente de exploração gráfico como KDE ou Gnome. A partir desta camada superior poderão ser lançadas aplicações ou executados comandos de utilizador.
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 2/8 Fig. 1-2: Camadas de um sistema operativo genérico
Nesta disciplina vai ser estudado com mais detalhe o sub-sistema de entrada-saída, isto é como o sistema operativo comunica com o hardware.
Pode-se definir entrada-saída como: Transferência de dados entre a CPU e um periférico. Cada transferência é uma saída de um dispositivo e uma entrada noutro.
Periférico
Equipamento electrónico conectado por um cabo ou barramento ao CPU e que é usado para transferir informação de ou para este. Também chamado de dispositivo de entrada saída e na literatura anglo-saxonica por I/O device.
Interface
No uso comum da palavra, uma interface é o ponto, área ou superfície ao longo da qual duas substâncias qualitativamente diferentes se encontram.
Ou de outra forma, designa a ligação física, lógica ou funcional entre dois sistemas distintos. Assim um interface de sistema operativo (com o utilizador) poderá ser o interpretador de comandos ou o ambiente gráfico como por exemplo o KDE.
Em termos de comunicação entre periféricos e computadores existe a necessidade de adaptar as características do periférico às do computador, sendo por isso também designados os interfaces por adpatadores de E/S e na literatura anglo-saxonica por I/O adpaters.
Os interfaces que se irão estudar podem ser compostos por um ou mais controladores (que incluem firmware), ligados por barramentos ou cabos à motherboard e aos periféricos.
Comunicação e sincronização entre tarefas
Sub-sistema de E/S
Interface de sistema (API, system-calls)
Hardware (CPU, memória, HDD, …) Aplicações
Sub-sistema de ficheiros User Interface (shell)
Drivers Controlo de processos (Interrupções, dispatching) Escalonamento de tarefas controladores de periféricos: HDD, DVD, ...
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 3/8 Fig. 1-3: Diagrama simplificado de acesso ao disco rígido
Alguns exemplo de periféricos comuns são: Impressora
Teclado Monitor
E de interfaces:
Adaptador de monitor (ou video), como por exemplo SVGA. Interface IDE ou SCSI
Adaptador de rede
Se considerarmos que um computador é constituído minimamente por uma Unidade de Processamento Central e alguma memória, a memória não será um periférico. No entanto alguns chips já incluem memória RAM e mais algum hardware adicional.
Na figura seguinte tem-se o diagrama genérico de um DSP, ou Digital Signal Processor.
Fig. 1-4: Diagrama blocos simplificado de um DSP HDD (Disco Rígido) periférico controlador IDE interface CPU
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 4/8 Repare-se que na esquerda do diagrama têm-se uma ALU e um multiplicador que representam o núcleo de processamento. Além disso no mesmo chip têm-se memória ROM e memória RAM para programas. Na direita têm-se um adaptador de entrada-saída para portos série. Nesta disciplina vamos abordar principalmente a arquitectura INTEL que será apresentada posteriormente, não sendo abordados DSPs.
Driver (ou device driver)
Programa que determina como o computador comunica com um periférico.
Para periféricos diferentes os interfaces ou os controladores poderão ser diferentes, de modo que em termos de programação, os drivers podem ser usados para padronizar o acesso aos diferentes periféricos. Deste modo é possível que a escrita num dado periférico, através do seu driver, siga um padrão:
abrir canal para dispositivo A
escrever uma string para o dispositivo A
fechar o canal
Assim o driver deve disponibilizar um conjunto de primitivas de entrada saída comuns a qualquer periférico, tais como:
canal = open(A)
write(canal, “uma string”) close (canal)
Assim o mesmo código permitirá escrever uma string no dispositivo A, seja este uma impressora ou um disco rígido.
Deve ser salientado no entanto que nem todos os periféricos podem implementar todo o conjunto de funções de entrada saída. Não é possível, por exemplo ler de uma impressora.
1.2 Componentes comuns de um PC
Os componentes de um PC que se podem observar do exterior são a caixa que contém o computador, seja Desktop ou Tower, um ou mais monitores, teclado e/ou rato para que o utilizador interaja com o sistema. Podem também estar ligadas ao sistema impressoras ou plotteres, scanners, unidades de discos externas, etc.
Neste ponto vai-se analisar com mais detalhe os componentes que se encontram dentro da caixa do PC.
1.2.1 Caixa
Dentro das caixa têm-se as unidades de disco rígido, disco flexível, DVD, CD, speaker, e a motherboard. Além disso as caixas contêm uma fonte de alimentação para as unidades de disco já referidas e também para a motherboard.
1.2.2 MotherBoard
Ou placa mãe consiste numa placa de circuito impresso onde estão montados grande parte dos componente de um PC, como por exemplo: CPU, Memória principal, portas série e paralela, adaptadores de teclado e rato, chipset, ROM BIOS, Timers, CMOS, etc.
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 5/8 Para expansão as motherboards incluem slots como por exemplo os slots para expansão dos barramentos PCI (Peripheral component interconnect) de 32 ou 64 bits; ISA (Industry Standard Architecture) de 8 e 16 bits. Nestes slots podem ser inseridos adaptadores de periféricos como por exemplo o adaptador de video ou de rede.
1.2.2.1 Processador ou CPU
O núcleo de um PC, ou de qualquer computador, consiste na unidade central de processamento. Alguns sistemas podem ter mais do que um processador, como por exemplo os DUAL-Pentium e QUAD-Pentium, respectivamente com 2 e 4 processadores Pentium idênticos montados na mesma motherboard.
Normalmente na CPU é onde o processamento de dados tem lugar. No entanto é possível que sistemas computacionais distribuam o processamento por processadores dedicados. Como exemplo tem-se adaptadores gráficos, que incluem processadores para tratamento de dados referentes a gráficos e imagem.
1.2.2.2 Coprocessador matemático
Hoje em dia os processadores de uso geral normalmente incluem uma unidade de vírgula flutuante ou FPU (Floating Point Unit), para cálculo de números reais. É no entanto possível que estas operações seja efectuadas por um processador dedicado, normalmente chamado de coprocessador matemático.
Fig. 1-5: PC com periféricos comuns (in Hans-Peter Messmer, 2002)
1.2.2.3 Memória principal ou RAM
O CPU usa a memória principal, RAM (Random Access Memory), para armazenar resultados intermédios e programas. Normalmente a RAM está também situada na motherboard, e é composta por módulos. Existem vários tipos de módulos: SIMMs, DIMMs. A memória é acedida através de um endereço que indica a localização de um dado byte. Numa operação de
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 6/8 leitura esse endereço é colocado no bus de endereços. No bus de controlo é indicada a operação de leitura e finalmente os dados na posição de memória indicada são enviados através do bus de endereços para o CPU.
1.2.2.4 Memória cache
A memória chache tem um custo mais elevado e por isso uma capacidade menor que a RAM , é no entanto de acesso muito mais rápido. Nesta memória são guardados os dados que são usados mais frequentemente pelo CPU, de forma a que o acesso a eles seja mais rápido. Assim, evita ter que aceder sempre à mais lenta memória RAM. A memória cache de nível 1 encontra-se no chip do processador ao passo que a de nível 2, ou Level 2 (secondary) cache, é normalmente localizada na motherboard. Tem uma maior capacidade que a de nível 1, mas o acesso é mais lento.
Fig. 1-6: Diagrama genérico de uma motherboard (in Hans-Peter Messmer, 2002) 1.2.2.5 Memória ROM
A ROM (Read Only Memory) consiste num chip que contém os programas e dados que o PC necessita quando arranca (pois o conteúdo da RAM desaparece totalmente quando o PC é desligado). Na ROM existem várias drivers genéricos para o teclado, monitor, etc, que são colectivamente conhecidos como BIOS (Basic Input Output System).
1.2.2.6 Barramentos
Um barramento ou bus consiste num número de linhas eléctricas através das quais sinais, e desta forma também dados, são transferidos. Um PC tem 3 barramentos: de dados, de endereços e de controlo. Estes barramentos permitem que o CPU comunique com a memória e os periféricos.
O barramento entre o CPU e a memória é chamado de barramento do sistema ou system bus. O barramento entre o CPU e os outros componentes (os periféricos) é chamado de barramento de entrada-saída ou I/O bus. Este barramento tem uma velocidade de transferência de dados inferior ao barramento do sistema. Alguns tipos de barramentos de entrada-saída são:
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 7/8 - ISA (Industry Standard Architecture) paralelo de 8 e 16 bits
- EISA (Extended Industry Standard Architecture) paralelo de 32 bits - PCI (Peripheral component interconnect) paralelo de 32 ou 64 bits - VME (Versa Module Eurocard) paralelo de 32 bits.
- AGP (Accelerated Graphics Port) para o adaptador gráfico. Paralelo de 32 bits. - USB (Universal serial bus) série.
1.2.2.7 chipset
Os barramentos de entrada-saída podem ser vistos como uma extensão do barramento do sistema. Na motherboard o barramento d sistema termina em controladores que fazem uma ponte com o barramento de E/S. Normalmente estes controladores são agrupados em chips chamados chipset. Assim o chipset pode ser visto como o controlador dos barramentos da motherboard. A arquitectura mais comum consiste em dois chips chamados north e south bridges:
Fig. 1-7: Diagrama genérico dos barramentos de sistema e E/S e respectivos controladores norte e sul.
1.2.2.8 Controlador de DMA
Frequentemente, grandes quantidades de dados têm que ser transferidos de um periférico para a memória RAM, e é importante que essa tarefa seja realizada sem que haja uma sobrecarga adicional do CPU, que assim se poderá dedicar a outras tarefas enquanto ocorre a transferência. A motherboard tem chips especializados para transferência de dados directamente entre memória e os periféricos sem intervenção do CPU: o DMA (Direct Memory Access). Este controlador está ligado à RAM, ao bus de dados e a determinadas linhas de controlo e pode ser usado para fazer transferência de dados por exemplo entre o disco rígido e a RAM.
http://w3.ualg.pt/~hdaniel/pin PIN 2005-6 T01 - 8/8 1.2.2.9 Controlador de discos e disquetes
O controlo das unidades de discos rígidos, flexíveis, DVD e CD, o interface IDE (Integrated Drive Electronics) também está localizado na motherboard. Já o interface SCSI (Small Computer System Interface) normalmente está situado numa carta de expansão.
1.2.2.10 Portos de Input/Output
Na motherboard estão normalmente também localizados os controladores dos portos paralelo (LPT), série (COM) e USB (Universal serial bus), teclado e rato PS/2.
1.2.2.11 Outros componentes da motherboard
A motherboard contém ainda timers, relógio de tempo real, CMOS RAM onde é guardada informações sobre a configuração do PC, a qual é alimentada por uma bateria.
1.2.3 Discos
O disco rígido, a disquete e os CDs ou DVD são suportes de armazenamento permanente, pois os dados lá guardados só desaparecem quando fôr dado um comando explicito, isto é não são voláteis como a RAM. Este suporte é também chamado de memória secundária.
Normalmente estas unidades encontram-se dentro da caixa, mas também existem unidades externas que podem ser ligadas ao PC através do porto paralelo ou USB.
1.2.4 Adaptadores (placas ou cartas de expansão)
Como já referido algumas das cartas de expansão já existem integradas na motherboard, no entanto uma forma de actualizar um PC consiste em adquirir cartas de expansão actualizadas. Estas podem ser adaptadores de audio, video, rede, etc..
1.3 Bibliografia
Costa, Ana Paula e José Bastos (2004, 2005) “Resumos das aulas teóricas de Periféricos e Interfaces 2004-2005 “, http://www.deei.fct.ualg.pt/PIn_2005/Anuncios/
Messmer, Hans-Peter (2002). “The Indispensable PC Hardware Book 4th edition”, Addison-Wesley
Silberschatz, Avi, Peter Baer Galvin and Greg Gagne (2004). "Operating System Concepts. 7th Edition", John Wiley & Sons