You are on page 1of 49

8.

Input / Output

Bilgisayar Mühendisliğine Giriş


I/O-Input/Output
Giriş/Çıkış-G/Ç

• İşletim sisteminin temel fonksiyonlarından


biride bilgisayardaki tüm I/O aygıtlarını
kontrol etmesidir.
• İşletim sistemi aygıtlara, komutlar
göndermeli, kesmeleri yakalamalı ve hatalar
ile ilgilenmelidir.

Bilgisayar Mühendisliğine Giriş


I/O Devices
G/Ç Aygıtları
• I/O aygıtları iki kategoriye ayrılabilir: blok aygıtları ve
karakter aygıtları.
• Bir blok aygıtı (block device) sabit boyutlu bloklar
şeklinde veri saklar. Her bloğun kendi adresi vardır.
• Blok boyutları 512 byte-32768 byte arasında değişir.
Farklı bloklar birbirinden bağımsız olarak okunup
yazılabilir.
• Diskler en temel blok aygıtıdır. Okuma kafasının
bulunduğu kolun nerede olduğu önemli değildir. İstenilen
silindir aranabilir ve okuma kafası istenilen verinin
bulunduğu yere konumlandırılabilir.
Bilgisayar Mühendisliğine Giriş
I/O Devices
G/Ç Aygıtları
• Karakter aygıtları(character device) karakter
akımlarını (stream) kabul eder yada dağıtırlar.
• Adreslenemezler ve bu aygıtlarda arama işlemi
gerçekleştirilemez.
• Yazıcılar, ağ aygıtları, mouse,... bu tip aygıtlardır.
• İşletim sisteminin dosya sistemi bu aygıtların hepsi
ile soyut aygıtlar olarak ilgilenir. Aygıtların arka
planında aygıta özel olan olaylar ile ilgilenmezler.

Bilgisayar Mühendisliğine Giriş


I/O Device Örnekleri
Device Input/Output Date Rate
(Kbytes/s)
Keyboard Input 0.01
Mouse Input 0.02
Voice input (microphone) Input 0.02
Scanner Input 200
Voice output (speaker) Output 0.5
Dot-matrix printer Output 1
Laser printer Output 100
Graphics display Output 30,000
Local area network Input/output 200 – 20,000
Optical disk Storage (I/O) 500
Magnetic tape Storage (I/O) 2,000
Magnetic disk Storage (I/O) 2,000

Bilgisayar Mühendisliğine Giriş


I/O Konfigürasyonları (1/2)
Keyboard
CPU Mouse
Voice input (microphone)
Scanner
Birçok şekilde Voice output (speaker)
I/O module Dot-matrix printer
olabilir, mesela,
•Device controller Laser printer
•Disk controller I/O device Graphics display
Local area network
Optical disk
Magnetic tape
Magnetic disk

Bilgisayar Mühendisliğine Giriş


I/O Konfigürasyonları (2/2)
I/O data

I/O address

I/O control

I/O module I/O module

I/O device

CPU I/O device I/O device

Bilgisayar Mühendisliğine Giriş


Bu tanıdık görünüyor mu?
Data
I/O data
bus

Address bus
I/O address

Control
I/O control
bus

I/O module I/O module

I/O device

CPU I/O device I/O device

Bilgisayar Mühendisliğine Giriş


I/O Modülleri
• Device Controller (Aygıt Denetleyici):
• veri okumak,
• yazmak,
• hata kontrolü yapmak.
• Okunan verileri belleğe kopyalamak
• Disk Controller (Disk Denetleyici)
• CPU ‘nun disklerle iletişim kurmasını sağlar.
• IDE, SSCI, ATA, SATA,USB,ISA,PCI

Bilgisayar Mühendisliğine Giriş


Denetleyiciler
• Her denetleyici içerisinde belirli sayıda
register vardır.
• Registerlar işlemci ile iletişimde kullanılırlar.
• İşlemci bu registerlara komut ve bilgi yazarak,
denetleyicinin veri getirmesini, yazmasını,
aygıtı kapatıp açmasını,... gibi işlemleri
gerçekleştirir.
• Aygıtın mevcut durumu hakkındaki bilgilerde
bu registerlardan elde edilir.
Bilgisayar Mühendisliğine Giriş
I/O
I/O, insanlar da dahil olmak üzere dış dünya ile çevresel
aygıtları kullanan bir bilgisayar arasındaki iletişimi
tanımlayan bir terimdir.

Blok aygıtlar : harddisk, SSD, CD, DVD

Karakter aygıtlar: klavyeler, fareler, monitörler, yazıcılardır.

Çevresel aygıtlar dış dünya ile CPU arasında bilgi


alışverişinde bulunur. Bazı I/O aygıtları giriş aygıtı, bazıları
çıkış aygıtı, bazıları ise her ikisi gibi davranır.
Bilgisayar Mühendisliğine Giriş
I/O
Bilgileri CPU'dan I/O cihazlarına aktarıyoruz. I/O
cihazlarından CPU'ya aktarılan bilgileri hafızada
saklarız. CPU, bellekte saklanan verileri işler ve bir I/O
işleminde verilerin aktarılmasına yardımcı olur. Bir işlemci
tarafından çalıştırılan bir sistemde verimli bir şekilde
çalışabilmek için G/Ç cihazlarının bir arayüze ihtiyacı
vardır.

Bilgisayar Mühendisliğine Giriş


I/O
Bilgileri CPU'dan I/O cihazlarına aktarıyoruz. I/O
cihazlarından CPU'ya aktarılan bilgileri hafızada
saklarız. CPU, bellekte saklanan verileri işler ve bir I/O
işleminde verilerin aktarılmasına yardımcı olur. Bir işlemci
tarafından çalıştırılan bir sistemde verimli bir şekilde
çalışabilmek için G/Ç cihazlarının bir arayüze ihtiyacı
vardır.

Bilgisayar Mühendisliğine Giriş


I/O

Bilgisayar Mühendisliğine Giriş


I/O
Harici bir cihazdan alınan ikili bilgi genellikle bellek
ünitesinde saklanır. CPU'dan harici cihaza aktarılan bilgiler
bellek ünitesinden alınarak işleme konur. CPU yalnızca
bilgiyi işler ancak kaynak ve hedef her zaman bellek
birimidir. CPU ve I/O cihazları arasındaki veri aktarımı
farklı modlarda yapılabilir.

Bilgisayar Mühendisliğine Giriş


I/O
Çevre birimlerine ve çevre birimlerinden veri aktarımı üç
olası yoldan biriyle yapılabilir.

Bilgisayar Mühendisliğine Giriş


Bir Önceki Soru
• I/O bellekten nasıl ayırt edilir?
• İki olasılık
• Bellek eşlemeli I/O
• I/O eşlemeli I/O

Bilgisayar Mühendisliğine Giriş


Bellek-Eşlemeli I/O
• Memory ve I/O…
.
• aynı alanda -“space”- ikamet ederler
(hem bellek hem de G/Ç aygıtları aynı adres alanını kullanır)
• aynı şekilde erişim sağlanır
(tüm veri yolları hem bellek hem de G/Ç aygıtları için aynıdır)
• Sadece adreslerine göre ayırt edilir
• Tüm kontrol registerları bellekteki belli bir alan ile eşleştirilirler.
• Her kontrol register’ı belirli bir adrese atanır.
• Örnek:
• STA adres (belirlenen adrese akümülatör içeriğini sakla)
• STA 2000 - bellekte A’ yı sakla
• STA 8000 - A’ yı bir I/O device’da sakla

Bilgisayar Mühendisliğine Giriş


Memory Map
FFFF

I/O

Memory

0000

Bilgisayar Mühendisliğine Giriş


Bir önceki soru
• I/O bellekten nasıl ayırt edilir?
• İki olasılık
• Bellek Eşlemeli I/O
• I/O Eşlemeli I/O

Bilgisayar Mühendisliğine Giriş


I/O-Eşlemeli I/O
• Memory ve I/O…
• Farklı alanları-“spaces” işgal ederler
(I/O cihazlarına bellek adres alanı dışında ayrı bir adres
alanı vardır.)
• Kendilerine özgü komutlarla erişilir
Komutlarla ayırt edilebilir
• Bellek Komutları
• Çoğu komutlar bellek referanslıdır
• I/O komutları
• Veri taşıma komutları (belirli bir I/O adresine/adresinden –
port-) ve bir CPU registerına)
• IN port – bir cihazdan veri girişi
• OUT port – bir cihaza veri çıkışı

Bilgisayar Mühendisliğine Giriş


Bellek Haritası
FFFF FFFF

Memory I/O

0000 0000

Bilgisayar Mühendisliğine Giriş


I/O Çeşitleri
• Programlı I/O
• Kesme odaklı (Interrupt-driven) I/O
• Doğrudan Bellek Erişimi
(Direct memory access - DMA)

Bilgisayar Mühendisliğine Giriş


Programlı I/O
• CPU ile ağ çevre birimleri arasında I/O arayüzünü kullanan bir veri aktarım yöntemidir.
Ek olarak, CPU üzerinde çalışan bir bilgisayar programı, programlanmış I/O’ da I/O
işlemlerini başlatır. CPU tüm I/O işlemini kontrol eder.
• I/O işlemleri doğrudan yazılım kontrolü altındadır.
• Yazılım I/O işlemini başlatır
• Dezavantajı:
• Yavaş ve Pek çok CPU kaynağı kullanır

• Avantaj:
• Basit

Bilgisayar Mühendisliğine Giriş


Polling
• Bir programlı I/O formu, bir cihazın bağlı olduğu
CPU giriş portu herhangi bir servis isteğinin
mevcut olup olmadığını anlamak için düzenli
olarak kontrol edilir
• Örneğin.,
• Bir klavye, bir tuşa basılıp basılmadığını belirlemek
için sürekli «polling» sorgulama yapabilir
• Pek çok benzer aygıtın bir sisteme bağlandığında
kullanışlıdır.

Bilgisayar Mühendisliğine Giriş


Dezavantajlar
– “Polling” işlemi için CPU zamanı gereksizce harcanır
• Kontrol işlemi süresince CPU ‘nun mevcut işleri kesintiye uğrar
• O an için koşulan ana programın icra süresi uzar
– Ana programların boyutu büyür
• “Polling” işlemini gerçekleştirecek kod parçası ana program
koduna dahil edilir
– Veri kaybı gerçekleşebilir
• Ardışıl sorgulama işlemleri arasındaki süre harici cihazdan gelen
ardışıl servis istekleri arasındaki süreden uzun ise ya isteklerin
bazıları hiçbir şekilde cevaplandırılamaz (veri kaybı) ya da bazı
istekler geç cevaplandırılır.

Bilgisayar Mühendisliğine Giriş


I/O Çeşitleri
• Programlı I/O
• Kesme odaklı (Interrupt-driven) I/O
• Doğrudan Bellek Erişimi
(Direct memory access - DMA)

Bilgisayar Mühendisliğine Giriş


Interrupt-Driven I/O
Kesme Odaklı G/Ç

Polling deki tüm problemler kesmeli G/Ç kullanılarak ortadan


kaldırılabilir:
– Herhangi bir servis isteği olması durumunda harici cihazın bizzat
kendisi CPU ‘yu uyarır; CPU ‘nun sorgulamasına gerek yoktur
•I/O işlemleri bir aygıt tarafından başlatılır.
•Aygıt ya da onun I/O modülü, CPU da bir kesme
oluşturmak için bir sinyal oluşturur.
•Bu sinyaller kesme hattı-interrupt lines olarak
adlandırılır.
•Genel bir CPU 8 ila 16 kesme sinyalini destekler.
•Genel isimleri: IRQ1, IRQ2, IRQ3, vs.
Bilgisayar Mühendisliğine Giriş
Interrupt Servisi
• Bir kesme meydana geldiğinde (kabul edilir),
çalışan mevcut program askıya alınır.
• Özel bir rutin kesme servisi işletilir.
• Ardından, kesilen program sürdürülür.
• Bu rutin kesme, kesme hizmet programı-
interrupt service routine (ISR) ya da kesme
işleyicisi-interrupt handler olarak adlandırılır.

Bilgisayar Mühendisliğine Giriş


Registerları Kaydetme
• Kesilen programın sürdürülebilmesi için, CPU
durumu ve data register kaydedilmelidir. (çünkü
ISR süresince değiştirilecek)
• ISR çalıştırılmadan önce kaydedilir.
• ISR çalıştırıldıktan sonra yeniden geri yüklenir.

Bilgisayar Mühendisliğine Giriş


Interruptların Kullanımı
• CPU dışındaki bir olayı bildiren
• Bir tamamlama sinyali olarak
• CPU’ya zaman tahsis aracı olarak
• Anormal bir durum göstergesi olarak

Bilgisayar Mühendisliğine Giriş


Harici olaylar için Kesme
Interrupts for External Events

• CPU yu bir olaydan ’’event’’haberdar


etmek için, bir aygıtta bir olay meydana
geldiğinde, bir kesme sinyali oluşur.
• Örneğin,
• Klavye: Bir tuşa basıldığında, ISR tuş için kod
okur)
• Notebook kapağı: Kapak kapatıldığında ISR
bilgisayarı standby moduna alır)

Bilgisayar Mühendisliğine Giriş


Interruptların Kullanımı
• CPU dışındaki bir olayı bildiren
• Bir tamamlama sinyalı olarak
• CPU’ya zaman tahsisi aracı olarak
• Anormal bir durum göstergesi olarak

Bilgisayar Mühendisliğine Giriş


Tamamlama Sinyalleri için Kesme
Interrupts for Completion Signals

• Bir aygıt bir işlemi tamamladığında bir


kesme sinyali oluşur. CPU bu durumu
bilmelidir
• Örneğin,
• Yazıcı: «Çıkış bufferı (tampon) boştur.» CPU
daha fazla veri gönderebilir.
• Tarayıcı: «Bir veri transferi tamamdır.»
(CPU/uygulama imaj verisini işlemeye devam
edebilir.)

Bilgisayar Mühendisliğine Giriş


Interruptların Kullanımı
• CPU dışındaki bir olayı bildiren
• Bir tamamlama sinyali olarak
• CPU ya zaman tahsisi aracı olarak
• Anormal bir durum göstergesi olarak

Bilgisayar Mühendisliğine Giriş


CPU’ya Zaman Tahsisi için Kesme
Interrupts for Allocating CPU Time

• multi-tasking sistemler üzerinde yararlıdır –


sistemler aynı anda birden fazla programı
çalıştırabilir
• Örneğin,
• Bir zamanlayıcı (timer) CPU ‘yu her 100 µs ye de
kesme için programlayabilir.
• ISR ‘nin yaptığı iş program görevlendiriciliktir.
(dispatcher program)
• Programları çalıştırma örneğin her 100 µs de bir diğer
programın çalıştırılmasına geçebilir.

Bilgisayar Mühendisliğine Giriş


Interruptların Kullanımı
• CPU dışındaki bir olayı bildiren
• Bir tamamlama sinyali olarak
• CPU ya zaman tahsisi aracı olarak
• Anormal bir durum göstergesi olarak

Bilgisayar Mühendisliğine Giriş


Anormal durumlar için Kesme
Interrupts for Abnormal Events

• Anormal bir olay anında örneğin sistemin


bakıma ihtiyacı ortaya çıktığında bir kesme
sinyali oluşur
• Örneğin.,
• CPU çipinin yanındaki ısı sensörü– eğer ısı
aşırı yüksekse, bir kesme üretilir, ISR CPU
yanındaki fan ı aktif eder.

Bilgisayar Mühendisliğine Giriş


I/O Çeşitleri
• Programlı I/O
• Kesme odaklı (Interrupt-driven) I/O
• Doğrudan Bellek Erişimi
(Direct memory access - DMA)

Bilgisayar Mühendisliğine Giriş


Niçin DMA?
• Aygıt ve bellek arasındaki yüksek hızlı blok
transferleri için kullanılır
• Transfer esnasında CPU görev almaz
• Genel DMA aygıtları:
• Disk sürücüler,
• Hatırlatma (5. slayt)
• Keyboard data rate  0.01 KB/s (her 100 ms 1 byte)
• Disk drive data rate  2,000 KB/s (her 0.5 µs 1 byte)

Çok yüksek transfer hızları CPU üzerinde çalışan


bir yazılım tarafından kontrol edilmesi zor

Bilgisayar Mühendisliğine Giriş


Nasıl
• CPU DMA denetleyicisine (DMAC) bilgi
aktararak DMA operasyonu hazırlar:
• Aygıttaki verinin yeri
• Bellekteki verinin yeri
• Transfer için blok uzunluğu
• Transfer yönü
• Transfer modu
• Aygıt veri transferine hazır olduğunda, DMAC
sistem veri yolu kontrolünü alır.

Bilgisayar Mühendisliğine Giriş


“Kontrolü Alma” (1/2)
Control Bus
CPU signals DMAC

BR BR
BG BG
BGACK BGACK

BR = Bus request-Veriyolu Talebi (DMAC: Sistem veri yolu kontrolünü alabilir


miyim?)
BG = Bus grant-Veri yolu bağışı (CPU: Evet, buyrun.)
BGACK = BG kabulu (DMAC: Teşekkürler, Kontrol bende.)

Bilgisayar Mühendisliğine Giriş


“Kontrolü Alma” (2/2)
• DMAC bir BR (“bus request”) sinyali verir
• CPU durur (belkide bir komut icrası ortasında!) ve
bir BG (“bus grant”) sinyali verir
• DMAC BGACK (“bus grant acknowledge”)
sinyali verir ve BR bırakır
• DMAC sistem veri yollarının kontrolünü alır
• DMAC “CPU gibi davranır” ve gerçekleşek
transferler için veriyolu sinyalleri üretir (addres,
kontrol)

Bilgisayar Mühendisliğine Giriş


BR-BG-BGACK Timing

time

BR

BG

BGACK

CPU DMA CPU


cycles cycles cycles

Bilgisayar Mühendisliğine Giriş


I/O Çeşitleri
• Programmed I/O
• Interrupt-driven I/O
• Direct memory access (DMA)

DMA her 3 I/O


çeşidini de içerir.

Bilgisayar Mühendisliğine Giriş


Program-Controlled I/O (DMA)

Data bus
Address bus
Control bus
CPU

DMAC
Memory
CPU
DMAC
Disk “hazırlar”

Bilgisayar Mühendisliğine Giriş


DMA

Data bus
Address bus
Control bus
CPU
transfer
DMAC gerçekleşir
Memory

Disk

Bilgisayar Mühendisliğine Giriş


Interrupt-driven I/O (in DMA)

Data bus
Address bus
IRQ Control bus
CPU
Transfer
DMAC tamamlandığında
Memory DMAC CPU ya
kesme gönderir.
Disk

Bilgisayar Mühendisliğine Giriş


Teşekkür Ederim

Bilgisayar Mühendisliğine Giriş

You might also like