Академический Документы
Профессиональный Документы
Культура Документы
a1
U najjednostavnijem načinu upotrebe spremnika - jednoprogramskom
radu - uvijek je samo jedan program u glavnom spremniku.
0
OPERACIJSKI
SUSTAV
POČETNA
ADRESA
PROGRAM PROGRAM PROGRAM
KORISNIČKOG
A B C
SUSTAVA
2m-1
3
a2
OPERACIJSKI STALNI
SUSTAV DIO
PREKLOPNI
DIO 3
a3
ω
ploča
cilindar (cylinder)
staza (track)
sektor
Glava
za
sektor čitanje i
pisanje
Ruka
reper 7
a4
• Broj bajtova po sektoru
tipično: 256, 512 ili 1024
(vidljivo sa strane računala, inače se znatan broj bitova
jednog sektora koristi za korekciju grešaka )
• Mnogi diskovi imaju staze grupirane u zone (3 do 20 zona). Zone
s većim promjerom staza imaju više sektora kako bi se iskoristila
moguća gustoća bitova.
• Svaki sektor ima svoju jedinstvenu adresu, koja se izračunava iz:
• rednog broja ploče;
• rednog broja staze na ploči;
• rednog broja sektora na stazi.
Dinamička svojstva
Prijenos podataka obavlja se po sektorima. Vrijeme potrebno
za obavljanje prijenosa dijeli se na:
• vrijeme za postavljanje glava
(engl. head-positioning time)
• vrijeme za prijenos podataka
(engl. data transfer rate)
Vrijeme za postavljanje glava ima dvije komponente:
• vrijeme postavljanja (glave na stazu)
(engl. seek time)
• rotacijsko kašnjenje
(engl. rotational lateney)
10
a5
Rotacijsko kašnjenje određeno je brzinom okretanja ploča.
Uobičajena brzina n=3 600 okretaja/min
Brzi dijelovi do 7 200 okretaja/min
za 3 600 okretaja/min
11
a6
Prijenos u glavni spremnik može početi nakon
Procesor postavlja zahtjev što je s diska prenesena stanovita količina
t Upravljač
Disk
t
Rotacijsko kašnjenje Prijenos s diska
Postavljanje glave
Upravljač
t
Disk
Postavljanje glave Roracijsko kašnjenje Prijenos na disk t
13
a7
“Dugo”
postavljanje 10.8+0.012d ms 8.00+0.008d ms
preko d staza
“Kratko
postavljanje 3.45+0.597 d ms 3.24+0.4 d ms
ispod d staza
d 616 383
Postavljanje
preko cijelog 22.5 ms xx xx
diska
Brzina 4.6 MB/s 1.2 MB/s 10 MB/s
prijenosa
15
a8
Model diska za ilustrativne primjere
Broj ploča (površina) P = 10
Broj
⋅ cilindara (staza na ploči) C = 2000
Broj sektora na stazi S = 100
Veličina sektora V = 512 B
Brzina vrtnje n = 4 800 o/min
= 80 o/s
Trajanje 1 okretaja TR= 12.5 ms
Trajanje postavljanja glava
preko d staza
TS= 1.5 d ms d ≤4
TS=4.0+0.5 d 4 ≤ d ≤ 400
TS=10.0+0.01d d ≥ 400
Kapacitet C •S •P •V = 1024 •106 B
Brzina prijenosa VP= 4.096 •106 B/s
VP= (V• S)/TR = V •S •n
17
Primjer:
Koliko je trajanje prijenosa programa veličine 1 MB = 1024 KB
s diska u radni spremnik?
Zanemariti sva vremena zadržavanja upravljačkog sklopa. Koristiti
podatke za model diska.
Razmotriti dva slučaja:
a) program je smješten na disku kompaktno
b) program se prenosi u blokovima veličine 1 KB smještenim u
dva uzastopna sektora, s tim da ti parovi mogu biti raspršeni po
cijelom disku.
a) Za 1024 KB potrebna su 2048 sektora
Kompaktni smještaj : 3 uzastopna cilindra
2 cilindra puna 2 000 sektora
u 3. cilindru 1 staza (48 sektora)
18
a9
Trajanje:
• postavljanje na 1. cilindar 10.0+c/3 •0.01 16.66 ms
• rotacijsko kašnjenje 1/2TR=1/2 12.5
• 6.25 ms
• prijenos 10 staza 10TR= 125 125.00 ms
• premještanje na susjedni cilindar 1.50 ms
• prijenos 10 staza 10TR=125 125.00 ms
• premještanje na susjedni cilindar 1.50 ms
• rotacijsko kašnjenje 1/2TR=1/2 12.5
• 6.25 ms
• priojenos 48 sektora 48/100TR=0.48 12.5
•
6.00 ms
Ta= 294.41 ms
Glavni spremnik
Blok
DMA Pristup
Buff.
Procesor
Mikroprocesor Lokalni
spremnik
20
a10
Upravljački sklop može zahtjeve za prijenos s cilindara
posluživati na razne načine.
21
SSTF: Glave su
prešlepreko
3200 staza
22
a11
FCFS first come first served
SSTF shortest seek time first
SCAN scan (LOOK)
C-SCAN circular scan (C-LOOK)
24
a12
8.3. Statičko dodjeljivanje spremnika
• Povijesno značenje
• Adrese koje se generiraju u programu su fizičke adrese glavnog
(radnog) spremnika
• Programi moraju biti pripremljeni tako da započinju na početnoj
adresi korisničkog adresnog prostora.
• Pri pripremi programa stvara se tzv. premjestivi modul
(relokatibilni) kod kojeg je početna adresa jednaka nuli,
a sve ostale adrese referiraju se na tu početnu adresu.
• Pretpostavimo da je strojni oblik zapisan u polje (riječi)
R[1..k]
i da su neke od njih adrese. U takovom pojednostavljenom
modelu može se poljem bitova odrediti u kojoj riječi treba
promijeniti adresu C[1..k].
C[i]=0 ne treba mijenjati
C[i]=1 treba promijeniti
25
a13
• Svaki od programa pripreman je za jednu od particija.
• Particije su u načeli bile različitih veličina.
REDOVI PROGRAMA ZA POJEDINE
PARTICIJE
O.S.
PA1
1 MB
PA2
PA3
1 MB
PA4
512 KB
256 KB
PA5
256 KB 27
28
a14
8.4 Dinamičko dodjeljivanje spremnika s jednim segmetom
Priprema apsolutnog modula zahtijeva pribrajanje početne adrese
na neke adresne sadržaje premjestivig modula.Taj se posao može obaviti
sklopovski i to tijekom izvođenja programa u trenutku kada se adresira
radni spremnik
* Program stalno ostaje u premjestivom obliku tj. S početnom adresom
jednakom nuli - to tzv. Logički adresni prostor programa.
* Kada se program smjesti u spremnik, on je smješten u fizički adresni
prostor.
* Unutar procesora generiraju se adrese logičkog adresnog prostora, a
kada se pristupa u spremnik one se prevode u fizičke adrese
pribrajanjem početne adrese fizičkog adresnog prostora,
29
Al Af
+
Procesor
Spremnik
PA
Bazni registar
Spremnički međusklop
a15
Prekid
Da
OGRADA Af>Ogr
Spremnik
Al
Procesor Af
+
PA Af<PA
Bazni registar Da
Prekid 31
O.S
PA1
P1 VELIČINA 1
Ograda1
OGRADAi=PAi+VELIČINAi
PA2
P2 VELIČINA 2
Ograda2
PA2 P3
VELIČINA 3
Ograda3
PA3 P4
VELIČINA 4
Ograda3
a16
Kako voditi evidenciju o raspodjeli prostora spremnika ?
Tokom rada neki procesi završavaju a drugi traže spremnik
Stoga mogu nastati nepopunjeni dijelovi ili “rupe”
PUNI_B
PA PA PA
PRAZNI_B
PA PA PA
VELIČINA VELIČINA
VELIČINA
a17
Npr. Uz svaki puni i prazni blok se na njegovu početku i kraju žrtvuje
određeni broj bajtova
0 Veličina
1 Veličina
Veličina
0 Veličina
1 Veličina
35
1 Veličina A 1 Veličina A’
Veličina A
Rupa
1 Veličina A
1 Veličina B
OSLOBAĐA-
Veličina B NJE B Veličina A’
Puni blok
1 Veličina B
1 Veličina C
Rupa
Veličina C
1 Veličina C 1 Veličina A’
Veličina A’=VeličinaA+VeličinaB+VeličinaC
Spremnik je podijeljen na dva skupa blokova
H={Hi | i=1,..n} skup rupa veličine hi
36
F= {Fi | i=1,..m} skup punih blokova veličine fi
a18
Kada dođe novi zahtjev za dodjelu prostora veličine k, može se u načelu
postupiti na dva načina:
* dodjela prve odgovarajuće rupe, tj dodjeli se prva Hi za koju je
hi>= k (first fit)
* dodjeljuje se Hi za koju je ispunjeno
hi>=k
hi-k minimalno
38
a19
Postoje četiri tipa punih blokova
B A C B A C B A C B A C
Oslobađanjem A dobiva se
B A C B C’ B’ C B’
Tip i broj a b c c
blokova tipa:
39
40
a20
Ocjena fragmentacije:
Pretpostavke: b prosječna veličina punog bloka
h prosječna veličina rupe
h=k*b (naći koeficijent k)
M Veličina memorije
Slijedi:
h=(M-mb)/n=(M-mb)/(m/2) M=mb(k/2+1)
f=(n*k*b)/M=m/2*k*b/(m*b*(k/2+1))
f=k/(k+2)
41
a21
Posao se usložnjava u višeprocesorskom radu i ne može se izbjeći
fragmentacija spremnika.
0
Stvarni (fizički) spremnik podijeljen je na
p
1 }2 okvire jednake veličini stranice tj 2p
2
2r-1
44
a22
Prekid kod
m=r+p p promašaja q+p
r
Procesor Tablica
2r*q q
Spremnik
45
Broj
stranice 0 Bit prisutnosti
A
0 4 1 Broj
1 B 1 0
okvira
0
2 C 2 0
3 0 1 E
3 D
4 1 1 2
4 E 5 0
3 H
5 F 6 0
7 3 1 4 A
6 G
Tablica prevođenja Fizički adresni prostor
7 H
Logički adresni
prostor
Pomoćni spremnik
(disk)
46
a23
r p Logička adresa
RAM
2r*q
Fizička adresa
q p
48
a24
Primjer: Intel 486 p=12 r=q=20 m=32
Tablica prevođenja je dvorazinska:
* bitovi 22 - 31 određuju indeks u tablici tablica (directory)
* bitovi 12 - 21 određuju indeks u tablici stranica (table)
31 22 21 12 18 0
r p
10 10 12
Tablica
tablica 20
(page dir.)
CR3 registar
49
Tablice stranica
To znači da:
*Jedna tablica tablica može adresirati 1K*1K=1M stranica tj
čitav linearni adresni prostor od 4GB.
* Tablice zauzimaju 4MB + 4KB prostora za 4GB veliki program.
a25
Stranice koje se dohvaćaju imaju adrese svojih okvira u TBL
međuspremniku. Taj međuspremnik se automatski puni iz tablice
stranica i u njemu se zadržavaju do istisnuća novim adresama.
Bit pristupa
Bit pisanja
Za stranicu koja nije prisutna u glavnom spremniku
31 0
0 bit prisutnosti
51
52
a26
8.5.3 Straničenje na zahtjev
Stranica u (engl. demand paging)
okviru
Stranice se dobavljaju u radni spremnik kada je to potrebno
Instrukcija Adresiranje
1 TLB
Prazni
6 0 okvir
pokretanje procesa
ponavljanja instrukcije
tablica nadopuna
2 prekid zbog
5 promašaja
stranica tablica
4
Prebacivanje
dohvat stranice u prazni
operacijski 3 stranice okvir
sustav Adresirana 53
stranica
54
a27
8.5.4. Strategija zamjene stranica
123412512345
55
2 113311552244
-22442211335 12
3 1114445--55-
-222111--33- 9
--33322--24-
4 1111--1-----
1222--2-----
--33--332222 10
---4--444333
5 1 1 1 1- - 1 - - - - -
-222--2 -----
--33--3----- 5
---4--4-----
------5----- 56
a28
Optimalna strategija (OPT)
Izbaciti strranicu koja se najdalje u budućnosti ne će upotrebljavati.
Nije prikladna za praktičnu upotrebu. Služi samo za usporedbu!
Primjer: 3 okvira; koriste se redom sreanice
50120304230321201501
Za usporedbu: FIFO:
57
Primjer:
50120304230321201501
5552 2 4440 1 1 1
- 000 0 0033 3 0 0 12 promašaja
- - 11 3 3222 2 2 5
a29
Uz tablicu stranica postoji: * bit pristupa *posmačni registri povijesti
2 0 1 nije * pisana
upotrebljavana (“nečista”)
3 1 0 upotrebljavana “čista”
4 1 1 upotrebljavana “nečista”
a30
8.5.5. Dodjela stranica u višezadaćnom sustavu.
Broj okvira
a31
8.5.6. Model radnog skupa stranica
63
2 6 1 5 7 7 7 7 5 1 6 2 3 4 2 3 4 4 4 3 1 4 3
t1 t2
D=2
D=2
W(t1,2)={1,5} W(t2,2)={3,4}
D=4 D=4
W(t1,4)={1,5,7} W(t2,4)={3,4}
D=10 D=10
W(t1,10)={1,2,5,6,7} W(t2,10)={2,3,4,6,}
64
a32
Veličina radnog skupa mijenja se tijekom odvijanja programa
Uz dovoljno širok prozor, sve stranice Pi nekog procesa mogu se
nalaziti u radnom skupu
1<=|w(t,D)|<=Pi
Praćenjem rada nekog programa može se ustanoviti da u tipičnom
slučaju postoje vremenska razdoblja kada je radni skup slabo
promjenjiv, te razdoblja (tranzijetna) kada je veličina skupa jako
promjenjiva.
|W(t,D)|
t
65
Stabilno
Neka jedna stranica bude veličine 512 riječi. Ako se matrica smješta po
recima, tada je u jednoj stranici smješten jedan stupac
|A[i,1] | |A[i,2] |A[i,3] |A[i,4] …. |A[i,512] | jedna stranica
66
a33
Ako na raspolaganju imamo samo jedan okvir, izvođenje
inicijalizacije će izazvati 512 promašaja.
67
a34