You are on page 1of 42

Paisjet I/O

Leksioni IX

Hyrje

Paisjet I/O mund te karakterizohen nga

Sjellja: input, output, storage


Partneri i komunikimit: njeriu ose makina
Sasia te te dhenave ne sec: byte/sek, transferime/sek

Buset e lidhjes se I/O

Karakteristikat e sistemit I/O

Siguria eshte e rendesishme

Sidomos per paisjet e ruajtjes se informacionit

Njesite matese te performances

Latency (response time)


Throughput (bandwidth)
Desktopet dhe sistemet embedded

Kryesisht te interesuar ne response time dhe


diversitetin e paisjeve

Serverat

Kryesisht te interesuara ne throughput dhe ne


zgjerueshmeri

Siguria
Kryerja e sherbimit
Sherbimi realizohet
sic u kerkua

Rikthim

Deshtim

Nderprerja e sherbimit
Devijimi nga sherbimi
i duhur

Gabim: deshtim i nje


komponenti

Mund ose jo te coje


ne deshtimin e
sistemit

Njesite e sigurise

Besueshmeria: mean time to failure (MTTF)


Nderprerja e sherbimit: mean time to repair
(MTTR)
Mean time between failures

MTBF = MTTF + MTTR

Disponueshmeria = MTTF / (MTTF + MTTR)


Permiresimi i disponueshmerise

Rritja e MTTF: shmangia e gabimeve, toleranca ndaj


deshtimit, parashikimi i gabimeve
Reduktimi i MTTR: Permiresim i proceseve dhe
veglave per parashikim dhe riparim

Disk Storage

Jo volatile, disk magnetik ne rrotullim

Sektoret e diskut dhe aksesi

Cdo sektor ruan

Id e sektorit
Te dhenat (512 byte, 4096 byte)
Kodet e korigjimit te gabimit (ECC)

Te perdorura per te fshehur defektet ose gabimet ne ruajtje

Fusha sinkronizimi dhe hapsira

Aksesi ne nje sektor perfshin

Vonesen ne rradhe nese ka kerkesa te tjera


Seek: levizja e kokes
Vonesa e rrotullimit
Transferimi i te dhenave
Vonesa e kontrollerit

Aksesi ne disk shembull

Kemi

Koha mesatare e leximit

512B sektor, 15,000rpm, 4ms seek time


mesatare, 100MB/s shpejtesi transferimi,
0.2ms vonesa e kontrollerit, disku eshte i lire
4ms seek time
+ / (15,000/60) = 2ms vones e rrotullimit
+ 512 / 100MB/s = 0.005ms koha e
transferimit
+ 0.2ms vonesa e kontrollerit
= 6.2ms

Nese seek time mesatar eshte 1ms

Koha mesatare e leximit eshte = 3.2ms

Probleme te performances se
diskut

Prodhuesit percaktojne seek time mesatar

Kontrolleri i diskut alokon sektoret fizike ne disk

Ne varesi te gjithe vonesave te mundshme


Lokalitati dhe skedulimi i SO ben qe te kemi seek time
akoma me te vogel
I prezanton sektoret llogjike hostit
SCSI, ATA, SATA

Disqet e ngurte perfshijne edhe cache

Ngarkojne parakohe sektoret qe mendohen te


aksesohen
Shmangin vonesat qe lidhen me leximin

Memoria flash

Jo volatile e ndertuar me gjysempercjellesa

100 1000 me e shpejte se disku


Me e vogel, konsum me i ulet, me rezistente
Por me shume $/GB (ndermjet diskut dhe DRAM)

Tipet e flashit

Flash NOR : qeliza e bitit si nje porte NOR


Akseset read/write jane random
Perdoret si memorie e instruksioneve ne sistemet
embedded
Flash NAND : qeliza e bitit si nje porte NAND
Dendesitet me i larte (bit/sip.), por akses nje bllok ne kohe
Me e lire per GB
Perdoret per memorie, si storage per paisje te ndryshme,

Bitet e flashit demtohen mbas nje numri te caktuar aksesesh


Jo e pershtatshme per RAM
Wear leveling: i zhvendos te dhenat ne blloqet me pak te
perdorura

Nderlidhja e komponenteve

Ka nevoje per nderlidhje midis

Bus: kanal komunikimi i perbashket

Nje grup linjash paralele qe sherbejne per te


dhena dhe per sinkronizimin e transferimeve
Mund te kthehet ne bottleneck

Performanca kufizohet nga faktore fizike

CPU-se, memories, kontrollerave I/O

Gjatesia e linjes, numri i lidhjeve

Alternativa e fundit: lidhje seriale me


celesa me shpejtesi te larte

Si rrjetat e kompjuterave

Tipet e buseve

Busi Procesor-Memorie

I Shkurter, me shpejtesi te larte


Projektimi perputhet me organizimin e
memoires

Buset I/O

Me te gjate, lejojne lidhje te shumfishta


Specifikohen nga standarte per
interoperatibilitetin
Lidhen me busin procesor memorie nepermjet
nje ure

Sinjalet ne bus dhe sinkronizimi

Linjat e te dhenave

Linjat e kontrollit

Percaktojne tipin e te dhenave, sinkronizojne


transaksionet

Sinkron

Mbajne adresa dhe te dhena


Te multipleksuara ose te ndara

Perdor nje sinjal ore per busin

Asinkron

Perdor linjat e kontrollit REQ/ACK per te kryer


koordinimin (handshaking)

Shembuj busesh I/O


Firewire

USB 2.0

PCI Express

Serial ATA

Serial
Attached
SCSI

Perdorimi

I jashtem

I jashtem

I brendshem

I brendshem

I jashtem

Paisje per
kanal

63

127

Gjersia e
kom.

2/lane

Bandwidth
max.

50MB/s ose
100MB/s

0.2MB/s,
1.5MB/s, ose
60MB/s, ose
625 MB/s

250MB/s/lane 300MB/s ose 300MB/s


375 MB/s,
1, 2, 4,
8, 16, 32 ose 750 MB/s

Hot
pluggable

Po

Po

Varet

Po

Po

Gjat. Max.

4.5m

5m

0.5m

1m

8m

Standarti

IEEE 1394

USB
Implementers
Forum

PCI-SIG

SATA-IO

INCITS TC
T10

Sistemi I/O ne PC x86

Menaxhimi i I/O

I/O menaxhohen nga SO

Programe te shumta ndajne burimet I/O

Ka nevoje per mbrojtje dhe renditje te akseseve

I/O shkaktojne interrupte asinkrone

I njejti mekanizem si perjashtimet

Komandat I/O

Paisjet I/O menaxhohen nga kontrollleri

Regjistrat e komandes

Shkaktojne kryerjen e nje detyre nga paisja

Regjistrat e gjendjes

Transferon te dhena nga/drejt paisjes


Sinkronizon veprimet me software-in

Tregon se cfare po ben paisja dhe nese ka ndonje


gabim apo jo

Regjistrat e te dhenave

Shkrim: transferon te dhenat tek paisja


Lexim: transferon te dhenat nga paisja

I/O Register Mapping

Paisje te lidhura me memorien (Memory mapped


I/O)
Regjistrat adresohen ne te njejten hapsire si
memoria
Dekoderi i adreses ben dallimin
SO perdor mekanizmat e perkthimit te adreses
per ti bere ato te aksesueshme vetem nga kerneli
Instruksione I/O
Instruksione te vecante per aksesimin e
regjistrave I/O
Mund te ekzekutohen vetem ne menyren kernel
Shembull: x86

Polling

Periodikisht kontrollohet regjistri i gjendjes


se I/O

E zakonshme ne sisteme embedded te


vogla dhe me performance te ulet

Nese paisja eshte gati, kryet operacioni


Nese ka gabim, merren masa

Kohet e parashikueshme
Kosto e HW e ulet

Ne sisteme te tjere, humbet koha e CPU

Interruptet

Kur paisja eshte gati ose ndodh nje gabim

Interrupti eshte si nje perjashtim

Kontrolleri ngre nje interrupt ndaj CPU


Por jo i sinkronizuar ne lidhje me ekzekutimin
e instruksionit
Mund te thirret menaxheri ndermjet
instruksioneve
Informacioni i shakkut shpesh identifikon
paisjen

Interrupte me prioritet

Paisje qe kerkojne vemendje me te larte


marrin prioritet me te larte

Transferimi i te dhenave nga I/O

Paisjet I/O qe punojne me polling ose interrupte


CPU transferon te dhena midis memories dhe
paisjes I/O
Nje proces qe konsumon shume kohe per paisjet
e shpejta
Direct memory access (DMA)
SO jep adresen e fillimit te memories
Kontrolleri I/O transferon nga/drejt memories ne
menyre autonome
Kontrolleri ngre nje interrupt ne perfundim ose ne
rast gabimi

Nderveprimi DMA/Cache

Nese DMA shkruan ne nje bllok te memories qe


eshte ne Cache

Nese Cache me politiken wite-back ka nje bllok


dirty, dhe DMA lexon ate bllok nga memoria

Kopja ne Cache behet e paperdorshme

Lexon te dhena te vjeteruara

Duhet te sigurojme koherencen e cache-se

Shkarkkoi blloqet nga cache nese do te perdoren per


DMA
Ose perdor per I/O blloqe memorie qe nuk mund te
hidhen ne Cache

Nderveprimi DMA/MV

SO perdor adresat virtuale per memorien

Duhet DMA te perdore adresa virtuale?

Blloqet DMA mund te mos jene ne adresa


fizike te njespasnjeshme
Duhet qe kontrolleri me perpara te beje
perkthimin

Nese DMA perdor adrese fizike

Duhet te ndaje transferimet ne pjese me


madhesine e nje faqeje
Ose te lidhe transferime te ndryshme
Ose te alokohen faqe te vazhdueshme fizike
per DMA

Matja e performances I/O

Performanca e I/O varet nga


Hardware: CPU, memoria, kontrollerat, buset
Software: sistemi operativ, sistemi i menaxhimit te
bazes se te dhenave, aplikacioni
Ngarkesa e punes: frekuenca e kerkesave dhe
tipi
Projektimi i sistemit I/O duhet te marre parasysh dy
metrika: koha epergjigjes dhe throughput
Matjet e throughputit mund te behen me nje kohe
pergjigje te kufizuar

Performanca I/O vs. CPU

Ligji Amdahlit

Nuk duhet nenvleresuar performanca e sistemit


I/O per sa kohe qe paralelizmi rrit performancen e
perpunimit

Shembull

Nje benchmark kerkon 90s kohe CPU, 10s kohe


I/O
Dyfishimi i nurmit te CPU-ve/2 vjet

I/O e pandryshuar

Viti

Koha CPU

Koha I/O

Koha e
nevojshme

% Koha I/O

tani

90s

10s

100s

10%

+2

45s

10s

55s

18%

+4

23s

10s

33s

31%

+6

11s

10s

21s

47%

RAID

Redundant Array of Inexpensive (Independent)


Disks
Perdor disa disqe te vegjel (c.f. one large disk)
Paralelizmi rrit performancen
Disqe ekstra per te ruajtur informacion
kontrolli
Krijon nje sistem ruajtje tolerant ndaj deshtimit
Vecanterisht nese disqet qe deshtojne mund
te zevendesohen automatikisht (hot
swapped)
RAID 0
Jo redundance (Ndihme?)
Thjesht shperndan te dhenat ne disa disqe
Por permireson performancen

RAID 1 & 2

RAID 1: Pasqyrimi(Mirroring)

N + N disqe, replikim i te dhenave

Shkruhen te dhenat si tek disku i informacionit


ashtu edhe tek ai pasqyre
Ne rast te deshtimit te nje disku lexo nga pasqyra

RAID 2: Error correcting code (ECC)

N + E disqe (p.sh., 10 + 4)
Ndahen te dhenat ne nivel biti ne N disqe
Gjenero informacion ECC me E-bit
Shume kompleks, nuk perdoret ne praktike

RAID 3: Pariteti me shperndarje


ne nivel biti

N + 1 disqe

Te dhenat shperndahen ne N disqe ne nivel


byte
Disku shtese ruan informacionin e paritetit
Leximet

Shkrimet

Gjenero paritetin e ri dhe update te gjitha disqet

Ne rast deshtimi

Lexo te gjitha disqet

Perdor paritetin per te rindertuar te dhenat e


humbura

Nuk perdoret shume

RAID 4: Pariteti me shperndarje


ne nivel blloku

N + 1 disqe

Te dhenat shperndahen ne N disqe ne nivel blloku


Disku shtese ruan paritetin e blloqe
Leximi

Shkrimi

Lexohet disku qe permban bllokun e modifikuar dhe disku i


paritetit
Llogaritet pariteti i ri, shkruhen disku i te dhenave dhe disku i
paritetit

Ne rast deshtimi

Lexohet vetem disku qe ka bllokun e kerkuar

Perdor paritetin per te rindertuar te dhenat

Nuk perdoret gjeresisht

RAID 3 vs RAID 4

RAID 5: Pariteti i shperndare

N + 1 disqe

Si RAID 4, por blloqet e paritetit jane te


shperndara ne disqe te ndryshme

Shmang mundesine qe disku i paritetit te behet


faktor bllokues

Perdoret gjeresisht

RAID 6: Redundanca P + Q

N + 2 disqe

Si RAID 5, por me shume paritet


Me teper tolerance ndaj deshtimit duke rritur
redundancen

Permbledhje RAID

RAID permireson performancen dhe


disponueshmerine e te dhenave

Supozon deshtime te pavarura te diqeve

Disponueshmeri e larte kerkon zevendesim


automatik te diqeve te demtuara
Shume keq nese digjet godina!

http://www.pcguide.com/ref/hdd/perf/index.
htm

Projektimi i sistemit I/O

Kenaqja e kerkesave ne vonese

Per operacione ne kohe reale

Maksimizimi i throughputit

Gjej lidhjen me te dobet (lowest-bandwidth)


Konfiguroje per te vepruar me bandwidth maksimal
Balanco komponentet e mbetur ne sistem

Kompjuterat Server

Aplikacionet gjithnje e meshume


ekzekutohen ne servera

Kjo kerkon dhoma te medha ku


perqendrohen shume komp. Server

Web search, office apps, virtual worlds,

Disa procesore, lidhje ne rrjet, vendruajtje


masive e te dhenave
Kufizime ne hapsire dhe ne fuqi

Paisjet server te ndertuara per rack 19


racks

Lartesia shumefish i 1.75 (1U)

Rack-Mounted Servers
Sun Fire x4150 1U server

Sun Fire x4150 1U server

4
berthama
secili
16 x 4GB =
64GB DRAM

Shembull projektimi i nje sistemi


I/O

Sistemi Sun Fire x4150

Ngarkesa: Lexime 64KB

Cdo operacion I/O kerkon 200,000 instruksione perdorues


dhe 100,000 instruksione te SO

Cdo CPU: 109 instruksione/sec


FSB: 10.6 GB/sec max.
DRAM DDR2 667MHz: 5.336 GB/sec
PCI-E 8 bus: 8 250MB/sec = 2GB/sec
Disqet: 15,000 rpm, 2.9ms avg. seek time, 112MB/sec
transfer rate

Cfare shpejtesie komunikimi me I/O mund te


realizohet?

Per lexime random dhe per lexime sekuenciale

Shembull projektimi(vazhd)

Shpejtesia e op. I/O per CPU-te

Lexime random, shpejtasia I/O per disqet

Per berthame: 109/(100,000 + 200,000) = 3,333


8 berthama: 26,667 op/sec
Supozojme seek time eshte mesatarja/4
Koha/op = seek + latency + transfer
= 2.9ms/4 + 4ms/2 + 64KB/(112MB/s) = 3.3ms
303 op/sec per disk, 2424 op/sec per 8 disqe

Leximet sekuenciale

112MB/s / 64KB = 1750 op/sec per disk


14,000 op/sec per 8 disqe

Shembull projektimi(vazhd)

Shpejtesia I/O per PCI-E

Shpejtesia I/O per DRAM

5.336 GB/sec / 64KB = 83,375 op/sec

Shpejtesia I/O per FSB

2GB/sec / 64KB = 31,250 op/sec

Supozojme se mund te mbeshtesim gjysmen e


shpejtesise max.
5.3 GB/sec / 64KB = 81,540 op/sec per FSB
163,080 op/sec for 2 FSB

Pika me e dobet: disqet

2424 op/sec random, 14,000 op/sec sekuenciale

Perfundime

Matja e performances

Buset perdoren per te lidhur CPU,


memorien, kontrollerat I/O

Throughput, response time


Siguria dhe kosto eshte e rendesishme

Polling, interrupte, DMA

RAID

Permiresojne performancen dhe sigurine

You might also like