operacijski sustavimetrobroadband.metronet.hr/ksenija-pejic/objects/os...1965 70 75 80 85 90 95 2000...
TRANSCRIPT
1
Operacijski sustaviOperacijski sustavi
Mr. Mr. scsc. Ante . Ante DeDežžuloviulovićć dipl.ing.dipl.ing.
22
Srednja struSrednja struččna sprema?na sprema?
OstaloOstalo
HotelijerskaHotelijerskaElektroElektro
KemijskaKemijskaEkonomskaEkonomska
StrojarskaStrojarskaGimnazijaGimnazija
2
33
•• Koliko Vas ima kod kuKoliko Vas ima kod kućće rae raččunalo?unalo?•• Tko radi: 1. uopTko radi: 1. uopććee
2. u 2. u infoinfo strucistruci
44
LITERATURALITERATURA
•• 1. OPERACIJSKI SUSTAVI1. OPERACIJSKI SUSTAVI
Prof. dr. Prof. dr. scsc. . LeoLeo BudinBudinFERFERZavod za elektroniku, mikroelektroniku,Zavod za elektroniku, mikroelektroniku,raraččunalne i inteligentne sustave unalne i inteligentne sustave Zagreb 2003.Zagreb 2003.
3
55
LITERATURALITERATURA
•• 2. OPERATING SYSTEMS2. OPERATING SYSTEMSA A conceptconcept--basedbased approachapproach
D M D M DhamdhereDhamdhereInternationalInternational EditionEdition2nd 2nd EditionEditionMcMc GrawGraw HillHill2007.2007.
66
LITERATURALITERATURA
•• 3. OPERATIVNI SISTEMI3. OPERATIVNI SISTEMI
B. B. ĐorđeviĐorđevićć D. D. PleskonjiPleskonjićć N. MaN. MaččekekTeorija, praksa i reTeorija, praksa i reššeni zadacieni zadaci
Mikro knjiga Mikro knjiga 2005. Beograd2005. Beograd
4
77
LITERATURALITERATURA
•• 4. OPERATING SYSTEMS4. OPERATING SYSTEMS
DeitelDeitel DeitelDeitel ChoffnesChoffnesInternationalInternational EditionEditionThirdThird EditionEditionPearsonPearson PrenticePrentice HallHallPearsonPearson EducationEducation, , IncInc2004.2004.
88
LITERATURALITERATURA
•• 5. OPERATING SYSTEM CONCEPTS5. OPERATING SYSTEM CONCEPTS
SilberschatzSilberschatz, , GalvineGalvine, , GagneGagneSixthSixth EditionEditionJohnJohn WileyWiley & & SonsSons, , IncInc. . 2003.2003.
5
99
LITERATURALITERATURA
•• 6. MODERN OPERATING SYSTEMS6. MODERN OPERATING SYSTEMS
AndrewAndrew S. S. TanenbaumTanenbaumSecondSecond EditionEditionPrenticePrentice HallHall, , IncInc2001.2001.
1010
LITERATURALITERATURA
•• 7. OPERATING SYSTEMS7. OPERATING SYSTEMSDesignDesign andand ImplementationImplementation
AndrewAndrew S. S. TanenbaumTanenbaumAlbert S. Albert S. WoodhullWoodhullSecondSecond EditionEditionPrenticePrentice HallHall, , IncInc1997.1997.
6
Uvod u OSUvod u OS
1212
ULAZULAZ IZLAZIZLAZPROCESPROCES
POVRATNA SPREGAPOVRATNA SPREGA
TehniTehniččki .....ki .....Informacijski .....Informacijski .....RaRaččunalski unalski .....
SUSTAV.....SUSTAV.....
7
Obrada podatakaObrada podatakaElektroniElektroniččko rako raččunalounalo
PripremaPripremapodatakapodataka UlazUlaz ObradaObrada IzlazIzlaz
PodatakPodatak InformacijaInformacija
ProcesorProcesorRadni spremnikRadni spremnikVanjski spremniciVanjski spremniciUlaznoUlazno--izlazne napraveizlazne naprave
Sklopovlje raSklopovlje raččunalaunala::
KomunikKomunik mremrežžaa
1414
Povijest Povijest HardwareaHardwarea
•• CharlesCharles BabbageBabbage 17921792--18711871 ““analyticalanalytical engineengine””, prva , prva svjetsvjet--skaska programerka je bila programerka je bila LadyLady LovelaceLovelace, k, kććer Lorda er Lorda ByronaByrona
•• Prva generacija 1945Prva generacija 1945--1955 1955 Elektronske Elektronske vakumvakum cijevi i programske plocijevi i programske ploččee
•• Druga generacija 1955Druga generacija 1955--1965 1965 Tranzistori i Tranzistori i BatchBatch sustavisustavi
•• TreTrećća generacija 1965a generacija 1965--1980 1980 Integrirani krugovi (IC) i Integrirani krugovi (IC) i MultiprogramiranjeMultiprogramiranje
•• ČČetvrta generacija 1980 ... danas (LSI)etvrta generacija 1980 ... danas (LSI)Osobna raOsobna raččunala i mreunala i mrežžee
AdaAda
8
1515
MooreMoore--ovov zakonzakon•• Dr. Dr. GordonGordon E. E. MooreMoore -- SuosnivaSuosnivačč Intel Intel CorporationCorporation•• 1965 1965 –– broj tranzistora x2 svakih 12 mjeseci i da broj tranzistora x2 svakih 12 mjeseci i da ćće se e se
to nastaviti u slijedeto nastaviti u slijedeććoj dekadioj dekadi•• 1975 1975 –– broj tranzistora x2 svakih 24 mjesecibroj tranzistora x2 svakih 24 mjeseci•• 2003/4 2003/4 -- snaga procesora x2 svakih 18 mjeseci a broj snaga procesora x2 svakih 18 mjeseci a broj
tranzistora x2 svakih 24 mjeseca tranzistora x2 svakih 24 mjeseca •• KljuKljuččni je faktor da se troni je faktor da se troššak po tranzistoru u ak po tranzistoru u
procesorima smanjuje eksponencijalno procesorima smanjuje eksponencijalno
•• DanasDanas--proglasio ga nevaproglasio ga nevažžeeććim jer se uim jer se uššlo u podrulo u područčje je nanotehnologijenanotehnologije (podru(područčje molekula .. Tranzistori se je molekula .. Tranzistori se sastoje od nekoliko atoma .. Uskoro ogranisastoje od nekoliko atoma .. Uskoro ograniččenje sam enje sam atom)atom)
1616
PCB PCB PrintedPrinted circuitcircuit boardboard(Integrirani(Integrirani--tiskani krugovi)tiskani krugovi)
19651965 7070 8080 8585 9090 95957575 20002000 20052005
101099
101088
101077
101066
191955
101044
10001000
100100
1010
GodGod
Broj integriranih Broj integriranih tranzistoratranzistoraLog skalaLog skala
MooreMoore--ovov zakonzakon1965 1965 CrammingCramming more more componentscomponents
ontoonto IntegratedIntegrated CircuitsCircuits
MatiMatiččina ploina pločča a –– MotherboardMotherboard
9
Funkcijski model raFunkcijski model raččunala unala -- VonVon NeumannNeumann•• 1945 koncepcijski opisan 1945 koncepcijski opisan
1.1. Ulazni dioUlazni dio2.2. Izlazni dioIzlazni dio3.3. Radni ili glavni spremnikRadni ili glavni spremnik4.4. AritmetiAritmetiččkoko--logilogiččka jedinica (ALJ) ka jedinica (ALJ) 5.5. UpravljaUpravljaččka jedinica (UJ)ka jedinica (UJ)
UJ sadrUJ sadržži generator takta te skup registara koji i generator takta te skup registara koji sluslužže za privremeni smjee za privremeni smješštaj raznih podataka.taj raznih podataka.
Skup naredbi određen je izvedbom aritmetiSkup naredbi određen je izvedbom aritmetiččkoko--logilogiččke (ALJ) i upravljake (ALJ) i upravljaččke jedinice (UJ) procesora.ke jedinice (UJ) procesora.
CPUCPU--procesor procesor
Ulazni podaciUlazni podaci NaredbeNaredbe RezultatiRezultati
Ulazni dioUlazni dio SpremnikSpremnik Izlazni dioIzlazni dio
OperandiOperandi
RezultatiRezultati
NaredbeNaredbeAritmetiAritmetiččkoko--logilogiččka ka
jedinicajedinica
UpravljaUpravljaččka ka jedinicajedinicaPROCESORPROCESOR--CPUCPU Podaci i naredbePodaci i naredbe
UpravljaUpravljaččki signaliki signali
10
1919
ProcesorProcesor-- CPUCPU –– CentralCentral ProcessorProcessor UnitUnitmomožže se smatrati automatom koji, nakon ukljue se smatrati automatom koji, nakon uključčenja enja trajno izvodi naredbu za naredbom strojnog trajno izvodi naredbu za naredbom strojnog programa programa
ponavljatiponavljati {{dohvatitidohvatiti iz spremnika na koju pokazuje iz spremnika na koju pokazuje programsko brojiloprogramsko brojilo;;““dekodiratidekodirati”” naredbu naredbu -- odrediti operaciju koju treba izvrodrediti operaciju koju treba izvrššitiiti;;povepoveććati sadrati sadržžaj programskog brojilaaj programskog brojila--pokazuje na slijedepokazuje na slijedećću naredbuu naredbu;;odrediti odakle dolaze operandi i kuda se pohranjuje rezultatodrediti odakle dolaze operandi i kuda se pohranjuje rezultat;;operande dovesti na ALJ; operande dovesti na ALJ; izvrizvrššitiiti zadanu operacijuzadanu operaciju;;pohraniti rezultat u odredipohraniti rezultat u odredišštete;;
}}dok jedok je (procesor uklju(procesor uključčen)en);;
U programsko se brojilo smjeU programsko se brojilo smješšta adresa slijedeta adresa slijedećće naredbe u e naredbe u redoslijedu izvrredoslijedu izvrššenja.enja.
naredbu
2020
ProcesorProcesorALUALU
RegistriRegistri
IzvrIzvrššnanajedinicajedinica
DobavitiDobavitiDekodiratiDekodirati
IzvrIzvršš itiiti
L1L1naredbenaredbecachecache
L1L1podacipodacicachecache
L2 L2 cachecache
Bus suBus suččeljeelje
FetchFetch//decodedecode//executeexecute
GP GP registersregistersControlControl registersregisters
FrontFront side bus side bus FSB FSB MHzMHz//GHzGHzDataData & & addressaddress
I/O I/O channelchannel
11
2121
Skup procesorskih naredbiSkup procesorskih naredbi
•• Određene izvedbom ALJ i UJ Određene izvedbom ALJ i UJ 1.1. Naredbe za premjeNaredbe za premješštanje sadrtanje sadržžajaaja2.2. Naredbe za obavljanje operacijaNaredbe za obavljanje operacija3.3. Naredbe za programske skokoveNaredbe za programske skokove--grananjegrananje4.4. Naredbe za posebna upravljaNaredbe za posebna upravljaččka djelovanjaka djelovanja
Naredbe se sastoje od 2 dijela:Naredbe se sastoje od 2 dijela:•• dio za smjedio za smješštaj operacijskog kodataj operacijskog koda•• adresni dio naredbeadresni dio naredbe
2222
Naredba za premjeNaredba za premješštanje sadrtanje sadržžajaaja
kk pp rr
pomaknuće
registarregistar
kod operacijekod operacije
12
2323
TroadresnaTroadresna naredba za obavljanje naredba za obavljanje operacijeoperacije
kk pp rr
registarregistarrezultatarezultata
operacijski operacijski kodkod
pp pp
registarregistar1. operanda1. operanda
registar registar 2. operanda2. operanda
modifikacijamodifikacijaoperacijeoperacije
2424
Naredba za programske skokoveNaredba za programske skokove
•• NaruNaruššava slijedno izvođenje programaava slijedno izvođenje programa
•• Ako je uvjet ispunjen Ako je uvjet ispunjen ““pomaknupomaknuććee”” je adresa je adresa slijedeslijedećće naredbe koju treba izvesti e naredbe koju treba izvesti
kk pp rr
pomaknupomaknuććee
uvjet za skokuvjet za skok
operacijski kodoperacijski kod
13
2525
Naredba za programske skokoveNaredba za programske skokove
•• Naredbe za bezuvjetne skokoveNaredbe za bezuvjetne skokove(bez ispitivanja bilo kakvog uvjeta)(bez ispitivanja bilo kakvog uvjeta)
•• Naredbe za uvjetne skokoveNaredbe za uvjetne skokove(sadr(sadržžaj programskog brojila se mijenja aj programskog brojila se mijenja samo ako je ispunjen uvjet )samo ako je ispunjen uvjet )
2626
Naredbe za poziv podprogramaNaredbe za poziv podprograma
•• Programski zadatci koji se Programski zadatci koji se ččesto ponavljaju se esto ponavljaju se pripremaju kao pripremaju kao podprogrami podprogrami : procedura : procedura (procedure), funkcija ((procedure), funkcija (functionfunction), rutina (), rutina (routineroutine, , subroutinesubroutine))
•• Nakon izvrNakon izvrššenog zadatka pomoenog zadatka pomoćću podprograma,u podprograma, program mora nastaviti svoje izvođenje program mora nastaviti svoje izvođenje naredbom u redoslijedu na adresi iza naredbe naredbom u redoslijedu na adresi iza naredbe kojom se poziva podprogram. kojom se poziva podprogram.
14
2727
(1)(1)
(2)(2)
(3)(3)(7)(7)
(4)(4)
(5)(5)
(6)(6)
(8)(8)
(9)(9)
PozivPoziv
PozivPoziv
PoPoččetak podprogramaetak podprograma
Kraj Kraj podprogramapodprograma
2 posebne naredbe za izvrposebne naredbe za izvrššenjeenjepodprograma:podprograma:
a) Poziv podprogramaa) Poziv podprogramab) Povratak iz podprogramab) Povratak iz podprograma
Kazaljka stogaKazaljka stoga
Poziv podprogramaPoziv podprograma
2828
GnjeGnježžđenjeđenje podprogramapodprograma
ProgramProgram PodprogramPodprogram1. razine1. razine
PodprogramPodprogram2. razine2. razine
PodprogramPodprogram3. razine3. razine
15
2929
SpremnikSpremnik
Ulazni pristupUlazni pristup Procesor CPUProcesor CPU Izlazni pristupIzlazni pristup
Od ulazne Od ulazne napravenaprave
Ka izlaznojKa izlaznojnapravinapravi
SabirnicaSabirnica
Blok shema Blok shema raraččunalaunala
3030
Struktura raStruktura raččunalskog sustavaunalskog sustava
CPUCPUProcesorProcesor
UJ UJ diskadiska
UJUJpisapisaččaa
UJUJmag.jedmag.jed.
UJ memorijeUJ memorije
MemorijaMemorija
SabirnicaSabirnica
UJUJ--UpravljaUpravljaččka jedinicaka jedinica
16
3131
SabirniSabirniččkaka građa ra građa raččunalaunala
•• DanaDanaššnja ranja raččunala su organizirana na unala su organizirana na principu sabirniceprincipu sabirnice
•• Sve potrebne razmjene podataka, naredbi i Sve potrebne razmjene podataka, naredbi i upravljaupravljaččkih signala vrkih signala vršše se preko e se preko zajednizajedniččkih vodikih vodičča sabirnicea sabirnice
•• Vrijeme se na sabirnici dijeli na Vrijeme se na sabirnici dijeli na sabirnisabirniččkekeperiode ili periode ili sabirnisabirniččkeke ciklusecikluse
3232
SabirniSabirniččkiki ciklusciklus
•• U jednom ciklusu trajanja TU jednom ciklusu trajanja TB B ostvaruje se jedna veza, ostvaruje se jedna veza, tj. prijenos jednog sadrtj. prijenos jednog sadržžaja aja
•• TTBB==100 100 nsns 100*10100*10--99==1010--77==10*1010*10--6 6 (Deset (Deset milionamiliona))
•• 10 M * 4B 10 M * 4B == 40MB 40MB
Sabirničkiciklus
TBTB
17
3333
Memorija Memorija -- radni spremnikradni spremnik
•• Radni spremnik Radni spremnik –– memorija slumemorija služži samo za i samo za pohranjivanje nizova bitovapohranjivanje nizova bitova
•• Isto vrijedi i ostale za spremnike Isto vrijedi i ostale za spremnike
•• Interpretacija znaInterpretacija značčenja tih nizova bitova enja tih nizova bitova događa se izvan spremnika događa se izvan spremnika
3434
00112233
22mm--4422mm--3322mm--2222mm--11
Adresiranje memorije (radnog spremnika)Adresiranje memorije (radnog spremnika)vv do svakog do svakog bytabyta pomopomoćću adrese u binarnom oblikuu adrese u binarnom oblikuvv ako se za zapisivanje adrese koristi m ako se za zapisivanje adrese koristi m bytovabytova tada tada
je velije veliččina adresnog prostora 2ina adresnog prostora 2mm
00--22mm--11
18
3535
Hijerarhija memorijaHijerarhija memorijaRegistri
Cache
Glavna memorija
Elektronički diskovi
Magnetski diskovi
Optički diskovi
Magnetske vrpce
Diskovi
3636
Hard diskTapeCDs
DVDs Digtal versatile/vide disk
DRAM (Dynamic-refreshment)DDR (Double data rate)
Rambus (Nintendo)SDRAM (Sync din RAM)
SRAM (Static, faster, more exp) SRAM
Hijerarhija memorijaHijerarhija memorija
RegistriL1 CacheL2 Cache
Glavna memorija
Sekundarna i
tercijarnamemorija-
pristuppomoću robota
Volatilemedia
Persistentauxiliary
media
Latency in procesor cyclesVrijeme čekanja
02-3~10
~30
~106
Komunikacija između procesoraKomunikacija između procesora
19
3737
Hijerarhija memorijaHijerarhija memorija
•• CPU pristupa samo najbrCPU pristupa samo najbržžoj memoriji. Ako podaci ili oj memoriji. Ako podaci ili naredbe nisu prisutni moraju se prenijeti iz sporijih naredbe nisu prisutni moraju se prenijeti iz sporijih memorija. CPU preko MMU dobavlja podatke iz memorija. CPU preko MMU dobavlja podatke iz CacheCachememorije, ako ih tamo nema ide se dublje prema memorije, ako ih tamo nema ide se dublje prema sporijoj memoriji u hijerarhiji. sporijoj memoriji u hijerarhiji. CacheCache memorija sadrmemorija sadržži i podatke i naredbe koji su se nedavno koristili a podatke i naredbe koji su se nedavno koristili a ččitaju itaju se novi jedino ako se trase novi jedino ako se tražženi tamo ne nalaze. eni tamo ne nalaze. Efektivno vrijeme pristupa memoriji zavisi od toga Efektivno vrijeme pristupa memoriji zavisi od toga kako kako ččesto se taj prijenos nepostojeesto se taj prijenos nepostojeććih mora odvijati. ih mora odvijati.
CPUMemory
ManagementUnit MMU
Cachememory
MainMemory Disk
3838
Adresni Adresni međuregistarmeđuregistar
BajtoviBajtovi spremnikaspremnikaSPREMNIKSPREMNIK
Registar adreseRegistar adrese Registar sadrRegistar sadržžajaaja
Adresni dio Adresni dio sabirnicesabirnice
Podatkovni dio Podatkovni dio sabirnicesabirnice
UpravljaUpravljaččki dio ki dio sabirnicesabirnice
Podatkovni Podatkovni međuregistarmeđuregistarPROCESORPROCESOR
3232
3232
mm==3232
nn==3232
kk
3232
3232
11
JednosmjernoJednosmjerno DvosmjernoDvosmjerno
Arhitektura raArhitektura raččunala 8/16/32/64 bitaunala 8/16/32/64 bita
20
3939
Međusobne vezeMeđusobne veze•• Procesor je povezan na sabirnicu preko Procesor je povezan na sabirnicu preko
međuregistarameđuregistara
•• Adresni Adresni međuregistarmeđuregistar -- jednosmjernojednosmjerno
•• Podatkovni Podatkovni međuregistarmeđuregistar -- dvosmjernodvosmjerno
•• U jednom U jednom sabirnisabirniččkomkom ciklusu mociklusu možže se obaviti jedno e se obaviti jedno pohranjivanje (pohranjivanje (““pisanjepisanje””) u spremnik ili jedno ) u spremnik ili jedno dobavljanje sadrdobavljanje sadržžaja (aja (““ččitanjeitanje””) iz spremnika. ) iz spremnika.
4040
Povijest OSPovijest OS
•• 19401940--te te bez OS, korisnibez OS, korisniččki program u strojnom jeziku se unosio bit poki program u strojnom jeziku se unosio bit pobit putem prekidabit putem prekidačča, a, bubuššene kartice, Strojni jezik (ene kartice, Strojni jezik (AsemblerAsembler –– Engl. Kratice)Engl. Kratice)
•• 19501950--tete General General MotorsMotors ResearchResearch LabLab prvi OS za IBM 701 prvi OS za IBM 701 Aktivan Aktivan JEDANJEDAN JOB JOB -- specifispecifiččan niz međusobno povezanih an niz međusobno povezanih raraččunalskih zadataka kao na primjer plaunalskih zadataka kao na primjer plaćće, inventurae, inventuraSingleSingle--streamstream batchbatch--procesingprocesing systemsystemIntervencija operatera, ograniIntervencija operatera, ograniččenje, malaenje, mala--skupa memorijaskupa memorija
21
4141
•1960-teIsto batch procesi, ali su se resursi računalakoristili efikasnije-obradom VIVIŠŠEE jobovaistovremeno
•1970-teMULTIPROGRAMING – OS je upravljao s više različitih jobova istovremeno tako da je prebacivao aktivnosti (dodjeljivao vrijeme) procesora i U/I uređaja između različitih programa. Primarni cilj: dijeljenje resursa računala.Korisnici nisu bili prisutni kada se job obrađivao.1964 IBM System/360, 370, 390, zSerija
4242
Turnaround time (od predavanja job-a do povratkarezultata) se drastično smanjio na min i čak sekMULTICS je bio prvi OS koji je bio pisan u višem programskom jeziku EPL prema IBM - ovom PL/1.
•1970-te Time sharing - interaktivan rad
TSS, MULTICS, CP/CMS ....Koristili virtualnu memoriju
Ken Thompson (B), Dennis Ritchie (C)MULTICS u UNIX (C) 1969
1968 Doug Engelbart San Francisco – miš GUI
22
4343
1970-teARPA Advanced Research Project AgencyARPAnet prethodnica Interneta projektiran za rad bez središnje kontroleUS Department of defence TCP/IP standardTransmission Control Protocol/Internet Protocol
LANEthernet standard
4444
1980-teReal Time - rezervacijski sustaviOsobna računala i radne staniceGUIDistributed computing: klijenti i poslužioci (serveri)Više međusobno povezanih nezavisnih računala nazajedničkom zadatku Serveri - grafika, baze podataka, Web straniceKlijenti – korisnička računala izdaju zahtjev
23
1990-te Distribuirani OSWWW World Wide WebTim Berners-Lee HTML HyperText Markup LanguageDo tada su OS bili prvenstveno usmjereni na upravlja-nje računalima u lokalnoj mreži, a razvojem Webazadaća se širi na svjetsku mrežu putem distribuiranih OS-a. Povećanje brzine (MIPS) i kapaciteta (GB) OOOS Object Oriented OS C++ SUN JAVA, Microsoft .NET (Visual Basic.NET
Visual C++.NET, C#)Bill Gates Microsoft proprietary approach, licenca,
korporativni razvoj - postaje dominantanLinus Torvalds LINUX Free Open System (source)
4646
2000-te i daljeMiddlewareSoftware koji povezuje preko mreže 2 odvojeneaplikacije (USA-Japan)Internet veze velike brzine preko kabelskih TV linija i DSL (Digital Subscriber Lines)“Kurir” između Web servera i servera baze podataka,omogućava i pojednostavljuje komunikaciju između različitih arhitektura. Web servicesUključuje niz odgovarajućih standarda koji omogućuju bilo kakvu razmjenu podataka bilo kakva 2 računala.
24
4747
Svjedoci u zadnjih par dekada:•Dramatično raste snaga računala a cijena pada•Desktop radne stanice WS u MIPS-ima •Superačunala GIPS•Računala postaju sastavni dio skoro svih vidova ljudske aktivnosti: PC - dokumenti, izračuni, igre, muzika, video te osobne potrebe.
•Prijenosni uređaji kao laptop, PDA (Personal DigitalAssistants), mobiteli te MP3 playeri svi sadrže procesore kao ključne elemente.
•Fiksne žične i bežične mreže povećavaju snagukomunikacija omogućavajući trenutno spajanje preko velikih udaljenosti.
4848
•Internet i World Wide Web su izazvali revolucijuposlovanja općenito stvarajući potrebe za velikimmrežama snažnih računala koje poslužuju brojne transakcije u sekundi. •Mreže računala su postale tako snažne da se onedanas upotrebljavaju u kompleksnim istraživačkimprojektima i simulacijama: klima na zemlji, oponašanjuljudske inteligencije, dekodiranju ljudskog genomate stvaranju 3D animacija.
25
4949
ŠŠto je Operacijski Sustav OS?to je Operacijski Sustav OS?
5050
1960..... 1960..... SoftwareSoftware koji kontrolira koji kontrolira HardwareHardwareDanas ... RaDanas ... Raččunala evoluirala pa je potrebna unala evoluirala pa je potrebna šširaira
definicija definicija
Proširenje zadataka koji se zahtijevaju danas od računala uvjetuje novu definiciju uloge i odgovornosti Operacijskih Sustava.
Kako bi se povećala iskoristivost računalske opremeprimjenski programi (applications) su projektirani tako da se izvršavaju “istovremeno”. Ako ti programi nisu pažljivo usklađeni, može se dogoditi da se međusobno “pomiješaju” – interferiraju.
26
5151
Definicija OSDefinicija OS--aa
OS je ”sloj” programskog koda čiji je zadatak odvojiti međusobno različite ali “istovremeno” aktivne korisničke programe od elektroničkog sklopovlja (hardwera) te omogućiti da se svaki korisnički program odvija sigurno i učinkovito.
P1a
P1b P1c
P2a
P2c
P2b
P3a
P3b P4a
P4b
Rezervirano za OSRezervirano za OS
SadrSadržžaj radnog spremnika: OS i korisniaj radnog spremnika: OS i korisniččki programiki programi
P1a P3aP2b
P2a
P4aP2c
P1b
P1c P4bP3b
Vanjski spremniciVanjski spremnici
(PoPoččetaketak--””DnoDno””))
RastRastadresaadresa
memorijememorije
MMeemmoorriijjaa
27
Apstraktni pogled na komponente Apstraktni pogled na komponente raraččunalnog sustavaunalnog sustava
KorisnikKorisnik11
KorisnikKorisnik22
KorisnikKorisniknn
PrevodilacPrevodilac Strojni jezikStrojni jezik UređivaUređivačč tekstateksta Baza podatakaBaza podataka
Sustav i Sustav i primjenskiprimjenski programiprogrami
Operacijski sustavOperacijski sustav
ElekroniElekroniččkoko sklopovljesklopovlje
KorisniKorisniččki i ostali ki i ostali programiprogrami
((NonNon--kernelkernel prgprg.).)Jezgra OSJezgra OS--aa((KernelKernel OS)OS)
KorisniKorisniččko suko suččeljeelje((UserUser interfaceinterface))
RaRaččunalno sklopovljeunalno sklopovlje((ComputerComputer hardwarehardware))
5454
PrimjenskiPrimjenski -- korisnikorisniččki programki program(aplikacija)(aplikacija)
•• OmoguOmoguććuje korisniku izvruje korisniku izvrššavanje razliavanje različčitih itih postavljenih zadatakapostavljenih zadataka
•• Transformira raTransformira raččunalni sustav u odgovarajuunalni sustav u odgovarajućći i virtualni stroj virtualni stroj
28
5555
Kako tko vidi OS?Kako tko vidi OS?
•• UUččenikenik ..... ..... mogumoguććnost pristupa Internetunost pristupa Internetu•• ProgramerProgramer ..... ..... razvojni alat za korirazvojni alat za korišštenjetenje
raraččunalnog sustava u razliunalnog sustava u različčite svrheite svrhe•• Korisnik Korisnik primjenskogprimjenskog programa ..... programa ..... specifispecifiččnana
primjena raprimjena raččunalnog sustavaunalnog sustava•• TehniTehniččar u procesnoj industriji ....... ar u procesnoj industriji ....... MoguMoguććnostnost vođenja i kontrole proizvodnje vođenja i kontrole proizvodnje
Apstraktni pogled na OSApstraktni pogled na OS•• Nijedan od navedenih pogleda nije Nijedan od navedenih pogleda nije sveobuhvasveobuhva--
tantan, ali je svaki od njih to, ali je svaki od njih toččan i pomaan i pomažže shvatiti e shvatiti korisniku na koje mu sve nakorisniku na koje mu sve naččine OS moine OS možže slue služžiti iti odnosno odnosno biti njegova produbiti njegova produžžena ruka.ena ruka.
•• Ti se pogledi nazivaju Ti se pogledi nazivaju apstraktnim apstraktnim -- usmjereni usmjereni su na bitne karakteristike jednog entiteta sa su na bitne karakteristike jednog entiteta sa stanovistanoviššta specifita specifiččnog promatranog promatračča! a! (Entitet: (Entitet: stvaran ili apstraktni objekt ili događaj o stvaran ili apstraktni objekt ili događaj o kojem se u informacijskom sustavu prikupljaju podacikojem se u informacijskom sustavu prikupljaju podaci))
•• PosljedicaPosljedica: apstraktni pogled sadr: apstraktni pogled sadržži samo i samo nekenekeelemente realnosti ali zanemaruje elemente realnosti ali zanemaruje ostaleostale. .
29
5757
LogiLogiččki pogled Fiziki pogled Fiziččki ki pogledpogled
PodatciPodatci RezultatiRezultati
Program PProgram POSOS
Program PProgram Pi njegovii njegovipodatcipodatci
OstaliOstaliprogramiprogrami
PisaPisaččCPUCPU
PodatciPodatciPrograma PPrograma P
Program PProgram P
5858
Operacijski sustav jeOperacijski sustav je•• skup osnovnih programa koji omoguskup osnovnih programa koji omoguććuju provođenjeuju provođenje--
izvrizvrššenje postavljenih zadataka na raenje postavljenih zadataka na raččunaluunalu•• Nekada ga je pisao proizvođaNekada ga je pisao proizvođačč raraččunala (IBM, unala (IBM, UnivacUnivac, CDC...) , CDC...)
a danas Microsoft (zatvoreni pristup) odnosno udruge a danas Microsoft (zatvoreni pristup) odnosno udruge UnixUnix, , LinuxLinux (otvoreni pristup) u skladu s nekim od standarda. (otvoreni pristup) u skladu s nekim od standarda.
•• Upravlja:Upravlja:
1.1. korisnikorisniččkim programima i drugim programskim apstrakcijamakim programima i drugim programskim apstrakcijamakoji za razliku od sklopovlja nisu fizikoji za razliku od sklopovlja nisu fiziččki objekti.ki objekti.
2.2. resursima raresursima raččunalaunala: s: sklopovljem, procesoroklopovljem, procesorom(ima), m(ima), spremnicima, I/O urspremnicima, I/O uređajimaeđajima, komunikacijama , komunikacijama
30
5959
Dva pogleda Dva pogleda –– prvi (zahtjev korisnika)prvi (zahtjev korisnika)1.1. Sa strane Sa strane korisnika korisnika -- Top Top downdown::
extendedextended//virtualvirtual machinemachine (pro(prošš ireni/virtualni stroj)ireni/virtualni stroj)JEDNOSTAVNOST UPORABEJEDNOSTAVNOST UPORABE
Zahtjev IzvrZahtjev Izvrššenje programa, poziv enje programa, poziv datotedatotečč. sustava. sustavaUsluga Brz odgovor na zahtjeve za Usluga Brz odgovor na zahtjeve za raraččunalunal. resurs.. resurs.Prikladan Lako pamtljive naredbe, GUIPrikladan Lako pamtljive naredbe, GUI................WEB moguWEB moguććnosti Organizacija WEB poslunosti Organizacija WEB poslužžiteljaiteljaRazvoj Dodavanje novih uređaja i raRazvoj Dodavanje novih uređaja i raččunala unala
6060
Dva pogleda Dva pogleda –– drugi (zadadrugi (zadaćća OSa OS--a)a)2.2. Sa strane Sa strane sustava sustava -- BottomBottom upup::
koordinator svih dijelova rakoordinator svih dijelova raččunalaunalaUPRAVLJANJE RESURSIMAUPRAVLJANJE RESURSIMA
Programi .... Programi .... ZapoZapoččimanjeimanje i zavri završšavanje. Osiguranje avanje. Osiguranje uvjeta da viuvjeta da višše procesa radi u svrhu e procesa radi u svrhu postizanja zajednipostizanja zajedniččkog cilja onogkog cilja onogprograma kojem pripadajuprograma kojem pripadaju
Resursi...Osigurava raspoloResursi...Osigurava raspoložživosti i dodjelu programimaivosti i dodjelu programimaPodjela..Odluka kada i koliko dodijeliti CPU programimaPodjela..Odluka kada i koliko dodijeliti CPU programimaZaZašštita ... Programa i podataka od drugih korisnika tita ... Programa i podataka od drugih korisnika
31
6161
UlogaUloga
•• Posrednik izmeđuPosrednik između::–– korisnikorisniččkog programa i kog programa i –– elektronielektroniččkog rakog raččunalskog sklopovlja (unalskog sklopovlja (hardwarehardware--a)a)
6262
Svrha Svrha –– Zadaci Zadaci -- Ciljevi OSCiljevi OS--aa
•• OmoguOmoguććuje okolinu/suuje okolinu/suččelje u kojem elje u kojem korisnik mokorisnik možže izvoditi program na nae izvoditi program na naččin:in:
1.1. PrikladanPrikladan -- olakolakššava uporabu raava uporabu raččunala unala 2.2. Djelotvoran Djelotvoran -- iskoriiskorišštavanje svih dijelova tavanje svih dijelova
raraččunala unala -- ResourceResource ManagerManager
32
6363
UUččinkovitost : Prikladnostinkovitost : Prikladnost•• Mora osigurat ne samo uMora osigurat ne samo uččinkovitu upotrebu inkovitu upotrebu raračč. .
sustava nego i prikladno korisustava nego i prikladno korišštenje za korisnika tenje za korisnika (1968 se u (1968 se u ““3.Maju3.Maju”” programiralo u programiralo u AsembleruAsembleru).).Potrebno tePotrebno težžiti kompromisu između ova iti kompromisu između ova 2 2 zahtjeva, a koji najbolje odgovara zadanom zahtjeva, a koji najbolje odgovara zadanom radnom okruradnom okružženju.enju.
•• Postoje brojni OS koji pruPostoje brojni OS koji pružžaju razne efekte aju razne efekte iskoisko--ristivostiristivosti. Jedni daju brzi odgovor (kontrolni i . Jedni daju brzi odgovor (kontrolni i rezervacijski sustavi) a drugi urezervacijski sustavi) a drugi uččinkovito inkovito iskoriiskorišštata--vajuvaju resurse na resurse na uušštrbtrb vremena kako bi omoguvremena kako bi omoguććili ili ninižže troe trošškove. U sredini su oni koji omogukove. U sredini su oni koji omoguććuju uju razlirazliččite kombinacije brzine i efikasnosti. ite kombinacije brzine i efikasnosti.
6464
Prikladnost za korisnikaPrikladnost za korisnika
Potreba ..... MoguPotreba ..... Moguććnost izvrnost izvrššenja programa,enja programa,poziv datotepoziv datoteččnog sustavanog sustava
Dobra usluga ... Brz odgovor na zahtjeve Dobra usluga ... Brz odgovor na zahtjeve ““UserUser frendlyfrendly”” ... Lako pamtljive naredbe, GUI ... Lako pamtljive naredbe, GUI Nove Nove progrprogr. . mogumoguććnosinosi ... Konkurentni programi... Konkurentni programiDodaci za eksperte ... Stvaranje Dodaci za eksperte ... Stvaranje kompleks.struktkompleks.struktWeb Web orjentiraniorjentirani ..... Mogu..... Moguććnost ukljunost uključčivanjaivanja
WEB serveraWEB serveraRazvoj ..... MoguRazvoj ..... Moguććnost prikljunost priključčka novih dodatakaka novih dodataka
i novih rai novih raččunalaunala
33
6565
OS i uOS i uččinkovitostinkovitost•• Podrazumijeva Podrazumijeva šširoki spektar razmatranja odiroki spektar razmatranja od
korisnikorisniččkiki usmjerenog usmjerenog ((interaktivni rad,interaktivni rad,vremenski kritivremenski kritiččanan) ) dodo sustavnogsustavnog (dobra (dobra raspodjela resursa, raspodjela resursa, nonnon--interaktivan rad). interaktivan rad).
•• UUččinkovitost: 2 inkovitost: 2 vida upotrebe ravida upotrebe raččunalnih resursa:unalnih resursa:
1.1. od od strane OSstrane OS--aa ((““overheadoverhead”” -- potpora potpora korisniku ali na korisniku ali na uušštrbtrb korisnikovog vremena)korisnikovog vremena)
2.2. od od strane korisnikastrane korisnikaSlaba uSlaba uččinkovitost za korisnika moinkovitost za korisnika možže imati 2 uzroka: previe imati 2 uzroka: previššeezauzezauzećća od strane OS (neupotrebljivost za druge) ili nemogua od strane OS (neupotrebljivost za druge) ili nemoguććnostnostoslobađanja slobodnih resursa oslobađanja slobodnih resursa ššto uzrokuje usporavanje drugihto uzrokuje usporavanje drugihprocesa.procesa.
6666
PraPraććenje uenje uččinkovitostiinkovitosti•• MoMožže se postie se postićći i nekrekidnimnekrekidnim prapraććenjem resursa i enjem resursa i
korektivnim akcijama u slukorektivnim akcijama u sluččaju potrebe. aju potrebe.
•• Kako raKako raččunalo ima viunalo ima višše resursa (I/O, CPU, memorija) e resursa (I/O, CPU, memorija) opseopsežžno prano praććenje resursa bi rezultiralo visokim enje resursa bi rezultiralo visokim zauzezauzeććem procesora (t.j. em procesora (t.j. ““overheadomoverheadom””) pa se ili:) pa se ili:
•• fokusira samo na CPU i memoriju ilifokusira samo na CPU i memoriju ili•• upravlja korisniupravlja korisniččkim programima u cilju jamstva visoke kim programima u cilju jamstva visoke
uuččinkovitosti. Ovo posljednje izbjegava prainkovitosti. Ovo posljednje izbjegava praććenje enje resursa/izraresursa/izraččunavanje uunavanje uččinkovitosti inkovitosti ššto bi bio dodatan to bi bio dodatan ““overheadoverhead””. Primjer su . Primjer su BatchBatch i i MultiprogramingMultiprograming koji su koji su za projektni zadatak imali uza projektni zadatak imali uččinkovitost upotrebe. inkovitost upotrebe.
34
6767
Programska struktura i odgovornostProgramska struktura i odgovornost OSOS--aa
1.1. PojedinaPojedinaččni programni program ... Aktivirati/zaustaviti... Aktivirati/zaustavitiprogram, upravljati resursimaprogram, upravljati resursima
22.. Niz pojedinaNiz pojedinaččnih programa (nih programa (BatchBatch) ) .. Ko.. Kontrolantrola međuzavisnosti međuzavisnosti, zaustaviti niz ako , zaustaviti niz ako
je jedan program u gje jedan program u grereššcici
3. Su3. Su--izvrizvrššni programi (ni programi (CoCo--executivexecutiv) ) ... Koo... Koordinirati vezurdinirati vezu među njima te njihov zavr među njima te njihov završšetaketak
ZajedniZajedniččki zadatci OSki zadatci OS--aaZadatak Kada/tkoZadatak Kada/tko1. Popis ovla1. Popis ovlašštenih korisnika.........Sistem tenih korisnika.........Sistem adminstratoradminstrator2. Popis resursa u 2. Popis resursa u raračč. sustavu......OS kod starta . sustavu......OS kod starta 3. 3. ZapoZapoččimanjeimanje izvrizvrššenja enja progrprogr. ....Po naredbi korisnika. ....Po naredbi korisnika4. Pregled programskog zauze4. Pregled programskog zauzećća....Kontinuirano za a....Kontinuirano za
resursa te trenutnog stanja vrijeme operativnostiresursa te trenutnog stanja vrijeme operativnosti--svih programa svih programa aktivnosti OSaktivnosti OS--aa
5. Pregled 5. Pregled trenuttrenut. stanja svih . stanja svih resurresur. ..U trenutku zahtjeva. ..U trenutku zahtjevate te pridrupridružž. program. na zahtjev ili otpu. program. na zahtjev ili otpušštanja resursatanja resursa
6. 6. Usklađuje Usklađuje korikorišštt. dijeljenih . dijeljenih resres. ...Tijekom . ...Tijekom operatoperat OSOS--a a 7. Odr7. Održžava informacije o zaava informacije o zašštiti........Tijekom titi........Tijekom operatoperat OS OS--aa8. 8. Obrađuje zahtjeve od straneObrađuje zahtjeve od strane........Na zahtjev korisnika........Na zahtjev korisnika
korisnika i njihovih programa korisnika i njihovih programa
35
Kako funkcionira OSKako funkcionira OS•• PodrPodržžava ava viviššeprogramskieprogramski radrad
•• Aktivan je u Aktivan je u sustavskomsustavskom ““kernelkernel//supervisorsupervisor modemode””. Dio . Dio softwaresoftware--a koji sadra koji sadržži sredii središšnjicu (njicu (corecore) OS) OS--a zove se a zove se JEZGRA (KERNEL)JEZGRA (KERNEL) i cijelo je vrijeme smjei cijelo je vrijeme smješšten u ten u rezerviranom rezerviranom dolnjemdolnjem--popoččetnom dijelu memorije.etnom dijelu memorije.
•• Jezgra Jezgra ispunjava cilj OSispunjava cilj OS--a izvođenjem niza kontrolnih funkcijaa izvođenjem niza kontrolnih funkcija. . To je zbir programa a ne komad sklopovlja (To je zbir programa a ne komad sklopovlja (hardwarehardware).).VrVršši kontrolnu funkciju izvođenjem naredbi na CPUi kontrolnu funkciju izvođenjem naredbi na CPU--u.u.Tako CPU posluTako CPU poslužžuje i uje i korisnikorisniččke programeke programe i i OS.OS.Prvo predstavlja produktivnu upotrebu CPUPrvo predstavlja produktivnu upotrebu CPU--a i doprinosi a i doprinosi uuččinkovitosti rainkovitosti raččunalnog sustava a drugo je neophodni dodatak unalnog sustava a drugo je neophodni dodatak ((““overheadoverhead””) bez kojeg se ne mo) bez kojeg se ne možže a koji smanjuje ue a koji smanjuje uččinkovitost. inkovitost.
7070
Jezgra prebacujeJezgra prebacuje ((switchswitch offoff) ...) ...•• CPU s jedne aktivnosti na drugu. CPU s jedne aktivnosti na drugu. •• CPU obiCPU običčno radi za korisnika. Kada je jezgra pozvana no radi za korisnika. Kada je jezgra pozvana
izvesti kontrolnu funkciju, koja je njezin sastavni dio, izvesti kontrolnu funkciju, koja je njezin sastavni dio, CPU se mora najprije prebaciti na izvođenje jezgre CPU se mora najprije prebaciti na izvođenje jezgre, a , a
nakon zavrnakon završšetka kontrolne funkcije CPU se (ovisno o etka kontrolne funkcije CPU se (ovisno o uvjetima u tom trenutku) vrauvjetima u tom trenutku) vraćća:a:a) ili na izvra) ili na izvrššenje prekinutog korisnienje prekinutog korisniččkog programa kog programa b) ili na izvrb) ili na izvrššenje nekog drugog programa.enje nekog drugog programa.
Prebacivanje CPUPrebacivanje CPU--a između korisnia između korisniččkih programakih programai jezgre je najkritii jezgre je najkritiččniji trenutak u radu OSniji trenutak u radu OS--a.a.
36
Dijelovi Dijelovi kernelakernela –– jezgre OSjezgre OS--aa••PS ... Proces PS ... Proces schedulerscheduler––planiranje aktivnostiplaniranje aktivnosti--dodjela procesoradodjela procesora
procesima na osnovi nekog algoritma teprocesima na osnovi nekog algoritma teosiguranje uvjeta za izvrosiguranje uvjeta za izvrššenjeenje
••MM ... MM ... MemoryMemory managermanager -- kada i koliko memorije se dodjeljuje kada i koliko memorije se dodjeljuje izabranom procesu i izabranom procesu i ššto se događa kada seto se događa kada se
napuni glavna memorija napuni glavna memorija
••I/O... I/O I/O... I/O managermanager –– posluposlužžuje ulazne i izlazne zahtjeve uje ulazne i izlazne zahtjeve
•• IPC ... IPC ... InterInter Proces Proces CommunicationCommunication managermanager –– omoguomoguććujeuje komunikaciju između razli komunikaciju između različčitih procesaitih procesa
••FS ... File FS ... File systemsystem managermanager––organizira imenovani skup podatakaorganizira imenovani skup podatakana vanjskim spremnicima na vanjskim spremnicima te omogute omoguććuje uje
korisnikorisniččkim programima pristup do njihkim programima pristup do njih
KorisniKorisniččki prostorki prostor
JezgrinJezgrin prostorprostor
KorisniKorisniččki programki program
SystemSystem callcall interfaceinterface
JezgrineJezgrine ((KernelKernel) komponente) komponente
MMMM PSPS
IPCIPC FSFS
I/OI/O NetNet ............
MMMM--MemoryMemory managermanagerPSPS--ProcessProcess SchedulerSchedulerIPCIPC--InetrprocesorInetrprocesor CommunicationCommunicationFSFS--File File systemsystemI/OI/O--InputInput//OutputOutput SchedulerSchedulerNetNet--NetworkNetwork managermanager
Dijelovi jezgre
37
7373
Registri: 2 tipaRegistri: 2 tipa
1.1. Programski dostupni (opProgramski dostupni (općće namjene) e namjene) Program Program accessibleaccessible (general (general purposepurpose))SluSlužže za spremanje adresa ili podataka e za spremanje adresa ili podataka tijekom izvrtijekom izvrššenja programa.enja programa.
2.2. Kontrolni (Kontrolni (controlcontrol registersregisters))SluSlužže za spremanje informacija koje e za spremanje informacija koje kontroliraju/usmjeravaju samu aktivnost kontroliraju/usmjeravaju samu aktivnost CPUCPU--a. a.
MemorijaMemorija
SabirnicaSabirnica MemoryMemoryManagementManagement
UnitUnit
ProcesorProcesor--CPUCPU
ZaZašštita I/Otita I/O
InterruptsInterrupts
DMADMA
PSWPSW
RegistriRegistri
DeviceDevicecontrolescontroles
DevicesDevices
DataData pathpathControlControl pathpath
InterruptInterrupt pathpath
38
PSW PSW –– Program Status WordProgram Status Word
Pokazuje stanje kontrolnih registara raPokazuje stanje kontrolnih registara raččunalnog sustavaunalnog sustavaIMIM –– InterruptInterrupt MaskMask (prekidna maska)(prekidna maska)PP -- PrivilegedPrivileged Mode (privilegirani/Mode (privilegirani/kernelkernel modmod 0/1)0/1)ICIC -- InterruptInterrupt CodeCode (kod prekida)(kod prekida)MPIMPI –– MemoryMemory ProtectionProtection InfoInfo ((infoinfo o zao zašštiti memorije)titi memorije)CCCC –– ConditionCondition CodeCode (stanje zadnje aritmeti(stanje zadnje aritmetiččko/logiko/logiččke naredbe)ke naredbe)PCPC –– Program Program CounterCounter (Programsko brojilo(Programsko brojilo--pokazuje na slijedepokazuje na slijedećću u
narnaredbu u redoslijedu)edbu u redoslijedu)SadrSadržžaj PSW i registara kontinuirano pokazuje aj PSW i registara kontinuirano pokazuje ššto CPU radi pa seto CPU radi pa sekakažže da oni predstavljaju e da oni predstavljaju STANJESTANJE CPUCPU--a. a. Promjena Promjena STANJASTANJA (na poziv) podrazumijeva promjenu procesa(na poziv) podrazumijeva promjenu procesaodnosno prebacivanja s jednog programa na drugi ili na jezgru.odnosno prebacivanja s jednog programa na drugi ili na jezgru.
IM P IC MPI CC PCIM P IC MPI CC PC
KorisniKorisniččki i ki i JezgrinJezgrin nanaččin radain rada(dual (dual –– obrada)obrada)
•• PP -- HardwerskiHardwerski dodatak MODE BITdodatak MODE BITCPU radi na 2 naCPU radi na 2 naččina: ina: jezgrinjezgrin--kernelkernel mode mode iikorisnikorisniččki ki ––useruser..
•• KorisniKorisniččkiki -- UserUser mode mode ““11”” ((““00””--konvencija!!)konvencija!!)
•• JezgrinJezgrin -- Monitor, Monitor, supervisorsupervisor, , systemsystem, , privilegedprivileged, , kernelkernel mode mode ““00””((““11””) ) U U jezgrinomjezgrinom nanaččinu radu izvode se kontrolne funkcijeinu radu izvode se kontrolne funkcijete start I/O operacija, drugi nate start I/O operacija, drugi naččin je za korisnika.in je za korisnika.
IM IM P P IC MPI CC PCIC MPI CC PC
39
7777
I/O operacije se mogu izvesti na 3 naI/O operacije se mogu izvesti na 3 naččina:ina:1.1. Programirani U/IProgramirani U/I......operandi U/I naredbe pokazuju operandi U/I naredbe pokazuju
na detalje U/I operacije. CPU dekodira naredbu i na detalje U/I operacije. CPU dekodira naredbu i ššalje signal U/I ualje signal U/I uređajuređaju. P. Protok podataka između Urotok podataka između U/I /I uređaja i memorije kroz CPU i on je uređaja i memorije kroz CPU i on je zauzet zauzet ččekanjemekanjem
2.2. InterruptInterrupt U/I U/I ... CPU izvr... CPU izvršši U/I naredbu s i U/I naredbu s ččime ime zapozapoččne U/I operaciju koja tene U/I operaciju koja tečče nezavisno od CPUe nezavisno od CPU--a. a. Nakon toga se CPU oslobodi kako bi izvrNakon toga se CPU oslobodi kako bi izvrššavao druge avao druge naredbe. Prekid se javlja kada je naredbe. Prekid se javlja kada je bytebyte spreman za spreman za prenosprenos iz U/I jedinice prema memoriji. CPU se iz U/I jedinice prema memoriji. CPU se aktivira te prekidnom rutinom aktivira te prekidnom rutinom ššalje alje bytebyte u memoriju.u memoriju.
3.3. DMADMA...U/I naredba pokazuje tip U/I operacije te broj ...U/I naredba pokazuje tip U/I operacije te broj i adresu i adresu bytovabytova koje treba prenijeti. Sam CPU ne koje treba prenijeti. Sam CPU ne uuččestvuje u prijenosu nego U/I jedinica javlja prekid estvuje u prijenosu nego U/I jedinica javlja prekid po zavrpo završšetku etku komletnogkomletnog zadanog prijenosa. zadanog prijenosa.
U/I (I/O) PodsustaviU/I (I/O) Podsustavi
7878
Vrste prekida Vrste prekida -- InteruptInterupt
•• Programski (Programski (softwaresoftware)...)... Uzrok unutar CPUUzrok unutar CPU--potrebna potrebna intervencija: aritmetiintervencija: aritmetiččki ki owerflowowerflow, dijeljenje s 0, , dijeljenje s 0,
probijanje zaprobijanje zašštitiććenihenih granicagranica memorijememorije
•• U/IU/I (sklopovski)(sklopovski) .. .. Uzrokovan zavrUzrokovan završšetkom U/Ietkom U/Ioperacije ili looperacije ili loššim im funkcioniranjem U/I jedinicefunkcioniranjem U/I jedinice
•• Vremenski (Vremenski (timertimer )) ... Za nadgledanje pona... Za nadgledanje ponaššanjaanjasustava sustava -- generiranjegeneriranje
dozvoljenog vremenskog odsjedozvoljenog vremenskog odsječčka ka
40
7979
Obrada prekida*Obrada prekida*•• Zahtjeva da se Zahtjeva da se CPUCPU prebaciprebaci (otkloni/(otkloni/divertiradivertira) sa ) sa
tekutekućće aktivnosti kojom je zauzet u tom e aktivnosti kojom je zauzet u tom trenutku na obradu odgovarajutrenutku na obradu odgovarajućće prekidne e prekidne rutine u jezgri. To uzrokuje spremanje PSWrutine u jezgri. To uzrokuje spremanje PSW--a a tekutekućće aktivnosti u memoriju te punjenje PSWe aktivnosti u memoriju te punjenje PSW--a a koji koji ćće usmjeriti CPU na obradu nastalog e usmjeriti CPU na obradu nastalog prekida. Jezgra ustanovi uzrok prekida i prekida. Jezgra ustanovi uzrok prekida i poduzpoduz--me odgovarajume odgovarajućću akciju nakon u akciju nakon ččega ili vraega ili vraćća a PSW prekinutog programa ili pokrePSW prekinutog programa ili pokrećće PSW e PSW nekog drugog programa.nekog drugog programa.
*Vidi *Vidi slideslide No 73No 73
8080
dddddd
PSWPSW
IMIM PPPCPC
ddddddICIC
11
22
33
Spremljeno PSW stanjeSpremljeno PSW stanje
Prekidni vektorPrekidni vektor
*Vidi *Vidi slideslide No 78No 78
41
8181
Koraci prekidne akcije*Koraci prekidne akcije*1.1. Postaviti prekidni kodPostaviti prekidni kod ... ... Prekidno sklopovlje Prekidno sklopovlje
generira kod prekida (IC) koji opisuje uzrok prekidagenerira kod prekida (IC) koji opisuje uzrok prekidaa upisuje se u IC polje PSWa upisuje se u IC polje PSW--a. Na a. Na prpr. . ““I/O zavrI/O završšetaketak””momožže biti adresa I/O jedinice koja je izazvala prekid.e biti adresa I/O jedinice koja je izazvala prekid.
2.2. Spremanje aktivnog PSWSpremanje aktivnog PSW ...... sadrsadržžaj PSWaj PSW--a se a se sprema u odgovarajusprema u odgovarajućće podrue područčje memorije je memorije ukljuuključčujuujućći i PC=PC=dddddd ((Programsko brojiloProgramsko brojilo koje u koje u trenutkutrenutku prekida pokazuje na adresu slijedeprekida pokazuje na adresu slijedećće e naredbe u redoslijedu)naredbe u redoslijedu)
3.3. Punjenje Punjenje prekidnogprekidnog vektoravektora ... ... u odgovarajuu odgovarajućća a polja PSWpolja PSW--a. IMa. IM--maska iskljumaska isključčuje prekide manjeg uje prekide manjeg prioriteta, Pprioriteta, P--privilegirani privilegirani modmod, di, dižže se jezgra, PC e se jezgra, PC Program Program CounterCounter--pokazuje na prvu adresu pokazuje na prvu adresu prekidnogprekidnog vektora. vektora. *Vidi *Vidi slideslide No 78No 78
8282
Pojava prekidaPojava prekida
Obrada prekidaObrada prekida
RasporedRaspored(Odluka o slijede(Odluka o slijedeććem)em)
Izlaz iz jezgreIzlaz iz jezgre
Poziv jezgre programskim prekidom –System call
Poziv OS-u da izvrši neku akciju: povećanje memorije ili početak U/I operacije.Izvršenje samog prekida te odluka o izboru slijedeće aktivnosti uzrokuje trošenje vremena CPU-a.“Scheduling overhead” se naziva vrijeme potrebno za donošenje odluke o slijedećoj aktivnosti koja će se aktivirati.
*Vidi *Vidi slideslide No 81No 81
42
8383
Uloga prekida Uloga prekida --
•• PrivuPrivućći pai pažžnju jezgre na uvjet ili događaj koji nju jezgre na uvjet ili događaj koji se upravo dogodio u se upravo dogodio u raračč. sustavu. . sustavu. RaRačč. sustav . sustav pridrupridružžuje numeriuje numeriččki prioritet svakom prekidu. ki prioritet svakom prekidu. Ako ih se dogodi viAko ih se dogodi višše istovremeno, prekidni e istovremeno, prekidni mehanizam omogumehanizam omoguććava najviava najviššem da se obradi em da se obradi kao prvom u redoslijedu, dok ostale pamti. kao prvom u redoslijedu, dok ostale pamti.
•• ICIC -- jedinstveni prekidni kod pridrujedinstveni prekidni kod pridružžen svakom en svakom prekidu omoguprekidu omoguććava dovoljno informacija da ava dovoljno informacija da jezgra poduzme odgovarajujezgra poduzme odgovarajućću akciju.u akciju.
•• ““InterruptInterrupt processingprocessing”” –– obrada prekidaobrada prekida je je naziv koji opisuje izvrnaziv koji opisuje izvrššenje takve akcije. enje takve akcije.
IM P IM P IC IC MPI CC PCMPI CC PC
*Vidi *Vidi slideslide No 82No 82
8484
Maska prekida Maska prekida InterruptInterrupt MaskMask -- IMIM
•• U PSWU PSW--u pokazuje koji su prekidi dozvoljeni da u pokazuje koji su prekidi dozvoljeni da se pojave u bilo kojem trenutku.se pojave u bilo kojem trenutku.
•• U polju U polju IMIM se pojavljuje se pojavljuje integerinteger mm koji određuje koji određuje da se od tog trenutka dalje dozvoljavaju samo da se od tog trenutka dalje dozvoljavaju samo prekidi prekidi ččiji je prioritet > m. Alternativno iji je prioritet > m. Alternativno IMIMsadrsadržži i kombinaciju bitova gdje svaki pojedini i i kombinaciju bitova gdje svaki pojedini bit pokazuje dali je nekom određenom prekidu bit pokazuje dali je nekom određenom prekidu dozvoljen događaj dozvoljen događaj ((enabledenabled)) odnosno zabranjen odnosno zabranjen ((maskedmasked)). .
IM IM P IC MPI CC PCP IC MPI CC PC
43
8585
SuSuččeljeelje•• ČČvrsto dogovorena pravila o navrsto dogovorena pravila o naččinu inu
uspostavljanja veze odnosno komuniciranja uspostavljanja veze odnosno komuniciranja između dvijuizmeđu dviju, ina, inačče razdvojenih cjelinae razdvojenih cjelina--razina.razina.
•• Aktivnosti operacijskog sustava pokreAktivnosti operacijskog sustava pokrećće:e:1.1. korisnik preko korisnikorisnik preko korisniččkog sukog suččeljaelja2.2. program preko suprogram preko suččelja elja primjenskogprimjenskog programa programa
•• Operacijski sustav preko tih suOperacijski sustav preko tih suččelja povratno vraelja povratno vraćća:a:1.1. rezultate zatrarezultate zatražženih operacijaenih operacija2.2. samo informacije o izvrsamo informacije o izvrššenoj funkcijienoj funkciji
8686
Hijerarhijska izgradnja OSHijerarhijska izgradnja OS--aa
•• Svaki se sustav izgrađuje po razinamaSvaki se sustav izgrađuje po razinama•• Svaka se razina sastoji od objekata i Svaka se razina sastoji od objekata i
operacija nad tim objektimaoperacija nad tim objektima•• Objekti i operacije razine izgrađuju se Objekti i operacije razine izgrađuju se
samo s pomosamo s pomoćću objekata i operacija prve u objekata i operacija prve neposredne nineposredne nižže razinee razine
•• Detalji ostvarenja objekata i operacija Detalji ostvarenja objekata i operacija pojedine razine su skrivenipojedine razine su skriveni
44
8787
SuSuččeljeeljeprimjenskihprimjenskihprogramaprograma
SuSuččelje programa i OSelje programa i OS--aaAPIAPI
KorisniKorisniččko suko suččeljeeljeOperacijskogOperacijskog
sustavasustava
PrimjenskiPrimjenski programiprogrami
Operacijski sustavOperacijski sustav
RaRaččunalno sklopovljeunalno sklopovlje
SuSuččelje elje programa i programa i sklopovljasklopovlja
Razina korisnikaRazina korisnika
Razina Razina primjenskihprimjenskihprogramaprogramaRazina operacijskogRazina operacijskogsustavasustava
RazinaRazinasklopovljasklopovlja
VM VM VirtualVirtual MachineMachine
ProgramProgram ProgramProgram ProgramProgramLinuxLinux WindowsWindows UnixUnix
ProgramProgram VirtualVirtual MachineMachine ProgramProgramOperatingOperating SystemSystem
ProcesorProcesor MemorijaMemorija DiskDisk
FiziFiziččki slojki slojsklopovljasklopovlja
((FizFizččkikihardwarehardware))
Virtualni slojVirtualni slojsklopovljasklopovlja(Virtualni(Virtualnihardwarehardware))
SoftwareSoftware
45
8989
Razine u hijerarhijskoj izgradnji sustavaRazine u hijerarhijskoj izgradnji sustava
SučeljeSuSuččeljeelje
SuSuččeljeelje
SuSuččeljeeljeRRi+1i+1
RRii
RRii--11
9090
KorisniKorisniččki programki program
I/O I/O managementmanagement
MemoryMemory managementmanagement
ProcessorProcessor allocationallocation andandProcessProcess schedulingscheduling
KorisnikKorisnik
KorisniKorisniččkikiprostorprostor
JezgraJezgraKernelKernel
Razina 4Razina 4
Razina 3Razina 3
Razina 2Razina 2
Razina 1Razina 1
Razina 0Razina 0
H SH SA KA KR LR LD OD OW PW PA OA OR VR VE LJE LJ
EE
MessageMessage interpreterinterpreter
Razine*Razine*
*Vidi *Vidi slideslide No No 5656
46
9191
NaNaččini obrade u OSini obrade u OS--uu•• ProgramProgram ... ... niz funkcija ili modula ukljuniz funkcija ili modula uključčujuujućći onei one
““povupovuččeneene”” iz biblioteke.iz biblioteke.
•• JOBJOB ......Niz povezanih koraka od kojih svaki predstavljaNiz povezanih koraka od kojih svaki predstavljaizvrizvrššenje jednog programa. Nema smislaenje jednog programa. Nema smislaizvrizvrššavati slijedeavati slijedećći program ako prethodni nijei program ako prethodni nijeuspjeuspješšno zavrno završšio.io.
•• ProcesProces ... Predstavlja izvr... Predstavlja izvrššenje dijela programa kadaenje dijela programa kadaprogram dobije prostor (memoriju) i vrijeme (CPU) program dobije prostor (memoriju) i vrijeme (CPU)
•• DretvaDretva--Nit (Nit (ThreadThread))... ... ViVišše dretvi dijele zajednie dretvi dijele zajedniččke ke resurse sa procesom s time da svaka ima resurse sa procesom s time da svaka ima
svoje specifisvoje specifiččne podatke (ne podatke (ThreadThread--SpecificSpecific DataData))
9292
Operacijski sustavi PCOperacijski sustavi PC
•• DOS Disk DOS Disk OperatingOperating systemsystem•• MSDOSMSDOS•• Microsoft WindowsMicrosoft Windows•• AppleApple MacintoshMacintosh•• OS/2 OS/2 multitaskingmultitasking systemsystem
47
9393
Klase OSKlase OS--aaPeriod Klasa Primarni zadatak KljuPeriod Klasa Primarni zadatak Ključčni konceptni koncept19601960 BatchBatch .. Bolje koristiti CPU .. Bolje koristiti CPU SpoolingSpooling.......... ..........
SimultaneousSimultaneous PeripheralPeripheral OperationOperation OnOn--LineLine7070--te te MultiprogMultiprog......Iskoristivost Iskoristivost resurresur. Programski prioriteti, . Programski prioriteti,
Zamjena progZamjena programa rama 7070--tete Time Time sharingsharing...... Brzi odgovor Vremenski odsjeBrzi odgovor Vremenski odsječčci, ci,
KruKružžno dodjeljivanje (no dodjeljivanje (RoundRound robinrobin))8080--tete RealReal timetime ... Ispunjenje zahtjeva za promptni... Ispunjenje zahtjeva za promptni
odgovor raodgovor raččunalnog sustavaunalnog sustava9090--tete DistributedDistributed ... Podjela resursa Transparentnost, ... Podjela resursa Transparentnost,
Distribuirana Distribuirana kontrolakontrola
9494
Sustavi u realnom vremenu Sustavi u realnom vremenu -- RealReal timetime
•• Kontrolni uređaj u strogo Kontrolni uređaj u strogo primjenskomprimjenskom programuprogramu•• Koristi se u sluKoristi se u sluččaju kada je neophodan aju kada je neophodan
promptnipromptni--trenutni vremenski odgovor ratrenutni vremenski odgovor raččunala ili unala ili prihvat/pristup podatcima. prihvat/pristup podatcima.
•• Senzori prenose iz okolineSenzori prenose iz okoline--proizvodnog procesa proizvodnog procesa podatke rapodatke raččunalu koji ih obrađuje i vraunalu koji ih obrađuje i vraćća u a u proizvodni proces s kojim upravlja. proizvodni proces s kojim upravlja.
•• Rezervacijski sustavi (zrakoplovi, hoteli)Rezervacijski sustavi (zrakoplovi, hoteli)
48
9595
UUččinkovitostinkovitost
PrikladnostPrikladnostUserUser
convenienceconvenience
BatchBatch
MultiMultiprogramingprograming
RealRealTime OSTime OS
TimeTimesharingsharing
DistributedDistributedOSOS
PotrebaPotrebanunužždada
Dobra uslugaDobra usluga Podjela resursaPodjela resursa
IzvrIzvrššenje korisnienje korisniččkih zahtjeva u raznim OSkih zahtjeva u raznim OSKlasa Obrada KljuKlasa Obrada Ključčni nani naččininBatchBatch JobJob Jedan po jedan Jedan po jedan jobjob. Programi unutar . Programi unutar
jobajoba sekvencijalno (u nizu)sekvencijalno (u nizu)MultiprogMultiprog. . ProgramiProgrami OS OS ““preklapapreklapa”” obradu nekoliko programaobradu nekoliko programa
kako bi se poboljkako bi se poboljššala iskoristivost resursaala iskoristivost resursai ui uččinkovitost (izvinkovitost (izvođenjeođenje) ) raračč. sustava . sustava
Time Time sharingsharing Procesi Procesi ““preklapanjepreklapanje”” procesa radi osiguranjaprocesa radi osiguranjabrzog odgovorabrzog odgovora
RealReal timetime ProcesiProcesi ““preklapanjepreklapanje”” procesa u svim programimaprocesa u svim programimakako bi se postigao planirani zavrkako bi se postigao planirani završšetak (etak (““deadlinedeadline””))
DistributedDistributed Procesi Procesi pristup udaljenim resursima putem mrepristup udaljenim resursima putem mrežže.e.Obrada procesa istog programa na raznim raObrada procesa istog programa na raznim raččunalimaunalima
u mreu mrežži da bi se postigla raspodjela resursa i ui da bi se postigla raspodjela resursa i uččinkovitost inkovitost
49
9797
MultiprocesorskiMultiprocesorski sustavisustavi•• Paralelni sustavi Paralelni sustavi -- ččvrsto povezani sustavivrsto povezani sustavi
Tandem, Tandem, SMP SMP symmetricsymmetric multiprocessingmultiprocessing
CPUCPU CPUCPU CPUCPU
MemorijaMemorija SimetriSimetriččna na multiprocesorskamultiprocesorska arhitekturaarhitektura
Jedno kučište
9898
Distribuirani sustaviDistribuirani sustavi•• ClientClient--serverserver•• ComputeCompute--server server systemssystems•• FileFile--server server systemssystems•• PeerPeer--toto--PeerPeer
ClientClient ClientClient ClientClient ClientClient
ServerServer
Mreža
50
9999
Distribuirani sustaviDistribuirani sustavi•• MreMrežža (a (NetworkNetwork) k) komunikacijski kanal omunikacijski kanal
između dvaju ili viizmeđu dvaju ili višše sustavae sustava•• Razlikuju se po: Razlikuju se po: komunikacijskom protokolukomunikacijskom protokolu
udaljenosti između udaljenosti između ččvorovavorovatransportnom medijutransportnom mediju
•• Sastoji se od 2 ili viSastoji se od 2 ili višše e ččvorova, gdje je svaki vorova, gdje je svaki ččvor ravor raččunalo sa vlastitom memorijom, unalo sa vlastitom memorijom, mremrežžnim sklopovljem te mogunim sklopovljem te moguććnonoššćću vru vrššenja enja kontrolnih funkcija nekog OSkontrolnih funkcija nekog OS--a. a.
100100
MreMrežža i Distribuirani OSa i Distribuirani OS
HubHub
ServerServer ServerServer ServerServer
DiskDisk
ProcesorProcesor
ClientClient
ClientClient ClientClient
ClientClient
ClientClient
51
101101
MreMrežžni Protokolini Protokoli
•• TCP/IP (TCP/IP (Windows & UNIX)Windows & UNIX) •• ATM ATM
Vezu između OSVezu između OS--a i mrea i mrežžnog protokola predstavlja: nog protokola predstavlja:
1.1. susuččelje (elektronielje (elektroniččki sklopki sklop**))2.2. program za pripremu (razlaganje odnosno slaganje) program za pripremu (razlaganje odnosno slaganje)
podataka za slanje putem komunikacijskog kanala. podataka za slanje putem komunikacijskog kanala.
*Vidi *Vidi slideslide No No 8888
102102
MreMrežže .. Podjela obzirom na udaljenoste .. Podjela obzirom na udaljenost
•• LAN LAN locallocal--areaarea networknetwork•• WAN WAN widewide--areaarea networknetwork•• MetropolitanMetropolitan--areaarea networknetwork•• SmallSmall--areaarea networknetwork ((BlueToothBlueTooth) )
52
103103
Transportni medijTransportni medij
•• Bakreni vodiBakreni vodiččii•• OptiOptiččka vlaknaka vlakna•• BezBezžžiiččnini prijenos: prijenos:
sateliti, mikrovalne antene, radiosateliti, mikrovalne antene, radio
104104
HandheldHandheld raraččunalaunala
•• PDAsPDAs Personal Personal digitaldigital assistantsassistants ((dlanovnicidlanovnici))•• BlueToothBlueTooth
53
105105
EmbeddedEmbedded ComputingComputing
•• Od motora automobila preko robota Od motora automobila preko robota do mikrovalnih pedo mikrovalnih pećći.i.
•• ““FiksnoFiksno”” unaprijed programirana funkcionalnost unaprijed programirana funkcionalnost za definirano podruza definirano područčje. je.
106106
Moderni OSModerni OS•• Korisnici zapoKorisnici započčinju razliinju različčite aktivnosti u modernom ite aktivnosti u modernom
OSOS--u pa on u pa on nemonemožžee koristiti jedinstvenu strategiju koristiti jedinstvenu strategiju za sve procese.za sve procese.
•• Na Na prpr. korisnik istovremeno: e. korisnik istovremeno: e--mailmail, editiranje, , editiranje, obrada i gledanje videa a to ukljuobrada i gledanje videa a to uključčuje:uje:
1.1. InteraktivnostInteraktivnost2.2. ZapoZapoččeti proces u drugom eti proces u drugom ččvoru distribuiranog voru distribuiranog sustsust..3.3. VideoVideo--mekmekšša varijanta a varijanta realreal--timetimeOS mora koristiti kruOS mora koristiti kružžno posluno poslužživanje (ivanje (““roundround--robinrobin””))
za izvrza izvrššenje programa, prenje programa, prioritetno raspoređivanje ioritetno raspoređivanje za video, te poziv udaljene procedure za aktivnost u za video, te poziv udaljene procedure za aktivnost u udaljenom udaljenom ččvoru RPC (voru RPC (RemoteRemote Procedure Procedure CallCall). ).
54
Prema tome moderni OS*Prema tome moderni OS*•• Koristi strategije i tehnike Koristi strategije i tehnike batchbatch obrade, obrade, multiprogramiranjamultiprogramiranja, ,
podjele vremena, podjele vremena, realreal time i distribuiranih OStime i distribuiranih OS--a. a. NemoNemožžee koristiti koristiti razlirazliččite strategije za razliite strategije za različčite tipove procesa nego upotrebljava ite tipove procesa nego upotrebljava jedinstvenu kompleksnu strategiju koja se prilagođava svakom jedinstvenu kompleksnu strategiju koja se prilagođava svakom individualnom procesu. individualnom procesu.
•• Raspoređivanje na poRaspoređivanje na poččetku moetku možže biti temeljeno na prioritetu kao e biti temeljeno na prioritetu kao u u multiprogramiranjumultiprogramiranju, ali se temeljem pro, ali se temeljem proššlog ponalog ponaššanja moanja možže e odluodluččiti o tekuiti o tekuććem prioritetu.em prioritetu.
•• Prioritet: Prioritet: RealReal time time –– najvenajveććiiInteraktivni procesi Interaktivni procesi –– srednji srednji NonNon--interaktivni procesi interaktivni procesi -- najninajnižži i
Bit modernog OSBit modernog OS--a je u fleksibilnosti i mogua je u fleksibilnosti i moguććnostinostiprilagođavanja strategije zahtjevima procesaprilagođavanja strategije zahtjevima procesa..
*Vidi *Vidi slideslide No No 9696
108108
TheThe EndEnd
55
Operacijski sustaviOperacijski sustavi
Mr. Mr. scsc. Ante . Ante DeDežžuloviulovićć dipl.ing.dipl.ing.
110110
Srednja struSrednja struččna sprema?na sprema?
OstaloOstalo
HotelijerskaHotelijerskaElektroElektro
KemijskaKemijskaEkonomskaEkonomska
StrojarskaStrojarskaGimnazijaGimnazija
56
111111
•• Koliko Vas ima kod kuKoliko Vas ima kod kućće rae raččunalo?unalo?•• Tko radi: 1. uopTko radi: 1. uopććee
2. u 2. u infoinfo strucistruci
112112
LITERATURALITERATURA
•• 1. OPERACIJSKI SUSTAVI1. OPERACIJSKI SUSTAVI
Prof. dr. Prof. dr. scsc. . LeoLeo BudinBudinFERFERZavod Zavod zaza elektroniku, mikroelektroniku,elektroniku, mikroelektroniku,raraččunalne i inteligentne sustave unalne i inteligentne sustave Zagreb 2003.Zagreb 2003.
57
113113
LITERATURALITERATURA
•• 2. OPERATING SYSTEMS2. OPERATING SYSTEMSA A conceptconcept--basedbased approachapproach
D M D M DhamdhereDhamdhereInternationalInternational EditionEdition2nd 2nd EditionEditionMcMc GrawGraw HillHill2007.2007.
114114
LITERATURALITERATURA
•• 3. OPERATIVNI SISTEMI3. OPERATIVNI SISTEMI
B. B. ĐorđeviĐorđevićć D. D. PleskonjiPleskonjićć N. MaN. MaččekekTeorija, praksa i reTeorija, praksa i reššeni zadacieni zadaci
Mikro knjiga Mikro knjiga 2005. Beograd2005. Beograd
58
115115
LITERATURALITERATURA
•• 4. OPERATING SYSTEMS4. OPERATING SYSTEMS
DeitelDeitel DeitelDeitel ChoffnesChoffnesInternationalInternational EditionEditionThirdThird EditionEditionPearsonPearson PrenticePrentice HallHallPearsonPearson EducationEducation, , IncInc2004.2004.
116116
LITERATURALITERATURA
•• 5. OPERATING SYSTEM CONCEPTS5. OPERATING SYSTEM CONCEPTS
SilberschatzSilberschatz, , GalvineGalvine, , GagneGagneSixthSixth EditionEditionJohnJohn WileyWiley & & SonsSons, , IncInc. . 2003.2003.
59
117117
LITERATURALITERATURA
•• 6. MODERN OPERATING SYSTEMS6. MODERN OPERATING SYSTEMS
AndrewAndrew S. S. TanenbaumTanenbaumSecondSecond EditionEditionPrenticePrentice HallHall, , IncInc2001.2001.
118118
LITERATURALITERATURA
•• 7. OPERATING SYSTEMS7. OPERATING SYSTEMSDesignDesign andand ImplementationImplementation
AndrewAndrew S. S. TanenbaumTanenbaumAlbert S. Albert S. WoodhullWoodhullSecondSecond EditionEditionPrenticePrentice HallHall, , IncInc1997.1997.
60
Uvod u OSUvod u OS
120120
ULAZULAZ IZLAZIZLAZPROCESPROCES
POVRATNA SPREGAPOVRATNA SPREGA
TehniTehniččki .....ki .....Informacijski .....Informacijski .....RaRaččunalski unalski .....
SUSTAV.....SUSTAV.....
61
Obrada podatakaObrada podatakaElektroniElektroniččko rako raččunalounalo
PripremaPripremapodatakapodataka UlazUlaz ObradaObrada IzlazIzlaz
PodatakPodatak InformacijaInformacija
ProcesorProcesorRadni spremnikRadni spremnikVanjski spremniciVanjski spremniciUlaznoUlazno--izlazne napraveizlazne naprave
Sklopovlje raSklopovlje raččunalaunala::
KomunikKomunik mremrežžaa
122122
Povijest Povijest HardwareaHardwarea
•• CharlesCharles BabbageBabbage 17921792--18711871 ““analyticalanalytical engineengine””, prva , prva svjetsvjet--skaska programerka je bila programerka je bila LadyLady LovelaceLovelace, k, kććer Lorda er Lorda ByronaByrona
•• Prva generacija 1945Prva generacija 1945--1955 1955 Elektronske Elektronske vakumvakum cijevi i programske plocijevi i programske ploččee
•• Druga generacija 1955Druga generacija 1955--1965 1965 Tranzistori i Tranzistori i BatchBatch sustavisustavi
•• TreTrećća generacija 1965a generacija 1965--1980 1980 Integrirani krugovi (IC) i Integrirani krugovi (IC) i MultiprogramiranjeMultiprogramiranje
•• ČČetvrta generacija 1980 ... danas (LSI)etvrta generacija 1980 ... danas (LSI)Osobna raOsobna raččunala i mreunala i mrežžee
AdaAda
62
123123
MooreMoore--ovov zakonzakon•• Dr. Dr. GordonGordon E. E. MooreMoore -- SuosnivaSuosnivačč Intel Intel CorporationCorporation•• 1965 1965 –– broj tranzistora x2 svakih 12 mjeseci i da broj tranzistora x2 svakih 12 mjeseci i da ćće se e se
to nastaviti u slijedeto nastaviti u slijedeććoj dekadioj dekadi•• 1975 1975 –– broj tranzistora x2 svakih 24 mjesecibroj tranzistora x2 svakih 24 mjeseci•• 2003/4 2003/4 -- snaga procesora x2 svakih 18 mjeseci a broj snaga procesora x2 svakih 18 mjeseci a broj
tranzistora x2 svakih 24 mjeseca tranzistora x2 svakih 24 mjeseca •• KljuKljuččni je faktor da se troni je faktor da se troššak po tranzistoru u ak po tranzistoru u
procesorima smanjuje eksponencijalno procesorima smanjuje eksponencijalno
•• DanasDanas--proglasio ga nevaproglasio ga nevažžeeććim jer se uim jer se uššlo u podrulo u područčje je nanotehnologijenanotehnologije (podru(područčje molekula .. Tranzistori se je molekula .. Tranzistori se sastoje od nekoliko atoma .. Uskoro ogranisastoje od nekoliko atoma .. Uskoro ograniččenje sam enje sam atom)atom)
124124
PCB PCB PrintedPrinted circuitcircuit boardboard(Integrirani(Integrirani--tiskani krugovi)tiskani krugovi)
19651965 7070 8080 8585 9090 95957575 20002000 20052005
101099
101088
101077
101066
191955
101044
10001000
100100
1010
GodGod
Broj integriranih Broj integriranih tranzistoratranzistoraLog skalaLog skala
MooreMoore--ovov zakonzakon1965 1965 CrammingCramming more more componentscomponents
ontoonto IntegratedIntegrated CircuitsCircuits
MatiMatiččina ploina pločča a –– MotherboardMotherboard
63
Funkcijski model raFunkcijski model raččunala unala -- VonVon NeumannNeumann•• 1945 koncepcijski opisan 1945 koncepcijski opisan
1.1. Ulazni dioUlazni dio2.2. Izlazni dioIzlazni dio3.3. Radni ili glavni spremnikRadni ili glavni spremnik4.4. AritmetiAritmetiččkoko--logilogiččka jedinica (ALJ) ka jedinica (ALJ) 5.5. UpravljaUpravljaččka jedinica (UJ)ka jedinica (UJ)
UJ sadrUJ sadržži generator takta te skup registara koji i generator takta te skup registara koji sluslužže za privremeni smjee za privremeni smješštaj raznih podataka.taj raznih podataka.
Skup naredbi određen je izvedbom aritmetiSkup naredbi određen je izvedbom aritmetiččkoko--logilogiččke (ALJ) i upravljake (ALJ) i upravljaččke jedinice (UJ) procesora.ke jedinice (UJ) procesora.
CPUCPU--procesor procesor
Ulazni podaciUlazni podaci NaredbeNaredbe RezultatiRezultati
Ulazni dioUlazni dio SpremnikSpremnik Izlazni dioIzlazni dio
OperandiOperandi
RezultatiRezultati
NaredbeNaredbeAritmetiAritmetiččkoko--logilogiččka ka
jedinicajedinica
UpravljaUpravljaččka ka jedinicajedinicaPROCESORPROCESOR--CPUCPU Podaci i naredbePodaci i naredbe
UpravljaUpravljaččki signaliki signali
64
127127
ProcesorProcesor-- CPUCPU –– CentralCentral ProcessorProcessor UnitUnitmomožže se smatrati automatom koji, nakon ukljue se smatrati automatom koji, nakon uključčenja enja trajno izvodi naredbu za naredbom strojnog trajno izvodi naredbu za naredbom strojnog programa programa
ponavljatiponavljati {{dohvatitidohvatiti iz spremnika na koju pokazuje iz spremnika na koju pokazuje programsko brojiloprogramsko brojilo;;““dekodiratidekodirati”” naredbu naredbu -- odrediti operaciju koju treba izvrodrediti operaciju koju treba izvrššitiiti;;povepoveććati sadrati sadržžaj programskog brojilaaj programskog brojila--pokazuje na slijedepokazuje na slijedećću naredbuu naredbu;;odrediti odakle dolaze operandi i kuda se pohranjuje rezultatodrediti odakle dolaze operandi i kuda se pohranjuje rezultat;;operande dovesti na ALJ; operande dovesti na ALJ; izvrizvrššitiiti zadanu operacijuzadanu operaciju;;pohraniti rezultat u odredipohraniti rezultat u odredišštete;;
}}dok jedok je (procesor uklju(procesor uključčen)en);;
U programsko se brojilo smjeU programsko se brojilo smješšta adresa slijedeta adresa slijedećće naredbe u e naredbe u redoslijedu izvrredoslijedu izvrššenja.enja.
naredbu
128128
ProcesorProcesorALUALU
RegistriRegistri
IzvrIzvrššnanajedinicajedinica
DobavitiDobavitiDekodiratiDekodirati
IzvrIzvršš itiiti
L1L1naredbenaredbecachecache
L1L1podacipodacicachecache
L2 L2 cachecache
Bus suBus suččeljeelje
FetchFetch//decodedecode//executeexecute
GP GP registersregistersControlControl registersregisters
FrontFront side bus side bus FSB FSB MHzMHz//GHzGHzDataData & & addressaddress
I/O I/O channelchannel
65
129129
Skup procesorskih naredbiSkup procesorskih naredbi
•• Određene izvedbom ALJ i UJ Određene izvedbom ALJ i UJ 1.1. Naredbe za premjeNaredbe za premješštanje sadrtanje sadržžajaaja2.2. Naredbe za obavljanje operacijaNaredbe za obavljanje operacija3.3. Naredbe za programske skokoveNaredbe za programske skokove--grananjegrananje4.4. Naredbe za posebna upravljaNaredbe za posebna upravljaččka djelovanjaka djelovanja
Naredbe se sastoje od 2 dijela:Naredbe se sastoje od 2 dijela:•• dio za smjedio za smješštaj operacijskog kodataj operacijskog koda•• adresni dio naredbeadresni dio naredbe
130130
Naredba za premjeNaredba za premješštanje sadrtanje sadržžajaaja
kk pp rr
pomaknuće
registarregistar
kod operacijekod operacije
66
131131
TroadresnaTroadresna naredba za obavljanje naredba za obavljanje operacijeoperacije
kk pp rr
registarregistarrezultatarezultata
operacijski operacijski kodkod
pp pp
registarregistar1. operanda1. operanda
registar registar 2. operanda2. operanda
modifikacijamodifikacijaoperacijeoperacije
132132
Naredba za programske skokoveNaredba za programske skokove
•• NaruNaruššava slijedno izvođenje programaava slijedno izvođenje programa
•• Ako je uvjet ispunjen Ako je uvjet ispunjen ““pomaknupomaknuććee”” je adresa je adresa slijedeslijedećće naredbe koju treba izvesti e naredbe koju treba izvesti
kk pp rr
pomaknupomaknuććee
uvjet za skokuvjet za skok
operacijski kodoperacijski kod
67
133133
Naredba za programske skokoveNaredba za programske skokove
•• Naredbe za bezuvjetne skokoveNaredbe za bezuvjetne skokove(bez ispitivanja bilo kakvog uvjeta)(bez ispitivanja bilo kakvog uvjeta)
•• Naredbe za uvjetne skokoveNaredbe za uvjetne skokove(sadr(sadržžaj programskog brojila se mijenja aj programskog brojila se mijenja samo ako je ispunjen uvjet )samo ako je ispunjen uvjet )
134134
Naredbe za poziv Naredbe za poziv podprogramapodprograma
•• Programski zadatci koji se Programski zadatci koji se ččesto ponavljaju se esto ponavljaju se pripremaju kao pripremaju kao podprogramipodprogrami : procedura : procedura (procedure), funkcija ((procedure), funkcija (functionfunction), rutina (), rutina (routineroutine, , subroutinesubroutine))
•• Nakon izvrNakon izvrššenog zadatka pomoenog zadatka pomoćću u podprogramapodprograma, , program mora nastaviti svoje izvođenje program mora nastaviti svoje izvođenje naredbom u redoslijedu na adresi iza naredbe naredbom u redoslijedu na adresi iza naredbe kojom se poziva kojom se poziva podprogrampodprogram. .
68
135135
(1)(1)
(2)(2)
(3)(3)(7)(7)
(4)(4)
(5)(5)
(6)(6)
(8)(8)
(9)(9)
PozivPoziv
PozivPoziv
PoPoččetak etak podprogramapodprograma
Kraj Kraj podprogramapodprograma
2 posebne naredbe za izvrposebne naredbe za izvrššenjeenjepodprogramapodprograma::
a) Poziv a) Poziv podprogramapodprogramab) Povratak iz b) Povratak iz podprogramapodprograma
Kazaljka stogaKazaljka stoga
Poziv Poziv podprogramapodprograma
136136
GnjeGnježžđenjeđenje podprogramapodprograma
ProgramProgram PodprogramPodprogram1. razine1. razine
PodprogramPodprogram2. razine2. razine
PodprogramPodprogram3. razine3. razine
69
137137
SpremnikSpremnik
Ulazni pristupUlazni pristup Procesor CPUProcesor CPU Izlazni pristupIzlazni pristup
Od ulazne Od ulazne napravenaprave
Ka izlaznojKa izlaznojnapravinapravi
SabirnicaSabirnica
Blok shema Blok shema raraččunalaunala
138138
Struktura raStruktura raččunalskog sustavaunalskog sustava
CPUCPUProcesorProcesor
UJ UJ diskadiska
UJUJpisapisaččaa
UJUJmag.jedmag.jed.
UJ memorijeUJ memorije
MemorijaMemorija
SabirnicaSabirnica
UJUJ--UpravljaUpravljaččka jedinicaka jedinica
70
139139
SabirniSabirniččkaka građa ra građa raččunalaunala
•• DanaDanaššnja ranja raččunala su organizirana na unala su organizirana na principu sabirniceprincipu sabirnice
•• Sve potrebne razmjene podataka, naredbi i Sve potrebne razmjene podataka, naredbi i upravljaupravljaččkih signala vrkih signala vršše se preko e se preko zajednizajedniččkih vodikih vodičča sabirnicea sabirnice
•• Vrijeme se na sabirnici dijeli na Vrijeme se na sabirnici dijeli na sabirnisabirniččkekeperiode ili periode ili sabirnisabirniččkeke ciklusecikluse
140140
SabirniSabirniččkiki ciklusciklus
•• U jednom ciklusu trajanja TU jednom ciklusu trajanja TB B ostvaruje se jedna veza, ostvaruje se jedna veza, tj. prijenos jednog sadrtj. prijenos jednog sadržžaja aja
•• TTBB==100 100 nsns 100*10100*10--99==1010--77==10*1010*10--6 6 (Deset (Deset milionamiliona))
•• 10 M * 4B 10 M * 4B == 40MB 40MB
Sabirničkiciklus
TBTB
71
141141
Memorija Memorija -- radni spremnikradni spremnik
•• Radni spremnik Radni spremnik –– memorija slumemorija služži samo za i samo za pohranjivanje nizova bitovapohranjivanje nizova bitova
•• Isto vrijedi i ostale za spremnike Isto vrijedi i ostale za spremnike
•• Interpretacija znaInterpretacija značčenja tih nizova bitova enja tih nizova bitova događa se izvan spremnika događa se izvan spremnika
142142
00112233
22mm--4422mm--3322mm--2222mm--11
Adresiranje memorije (radnog spremnika)Adresiranje memorije (radnog spremnika)vv do svakog do svakog bytabyta pomopomoćću adrese u binarnom oblikuu adrese u binarnom oblikuvv ako se za zapisivanje adrese koristi m ako se za zapisivanje adrese koristi m bytovabytova tada tada
je velije veliččina adresnog prostora 2ina adresnog prostora 2mm
00--22mm--11
72
143143
Hijerarhija memorijaHijerarhija memorijaRegistri
Cache
Glavna memorija
Elektronički diskovi
Magnetski diskovi
Optički diskovi
Magnetske vrpce
Diskovi
144144
Hard diskTapeCDs
DVDs Digtal versatile/vide disk
DRAM (Dynamic-refreshment)DDR (Double data rate)
Rambus (Nintendo)SDRAM (Sync din RAM)
SRAM (Static, faster, more exp) SRAM
Hijerarhija memorijaHijerarhija memorija
RegistriL1 CacheL2 Cache
Glavna memorija
Sekundarna i
tercijarnamemorija-
pristuppomoću robota
Volatilemedia
Persistentauxiliary
media
Latency in procesor cyclesVrijeme čekanja
02-3~10
~30
~106
Komunikacija između procesoraKomunikacija između procesora
73
145145
Hijerarhija memorijaHijerarhija memorija
•• CPU pristupa samo najbrCPU pristupa samo najbržžoj memoriji. Ako podaci ili oj memoriji. Ako podaci ili naredbe nisu prisutni moraju se prenijeti iz sporijih naredbe nisu prisutni moraju se prenijeti iz sporijih memorija. CPU preko MMU dobavlja podatke iz memorija. CPU preko MMU dobavlja podatke iz CacheCachememorije, ako ih tamo nema ide se dublje prema memorije, ako ih tamo nema ide se dublje prema sporijoj memoriji u hijerarhiji. sporijoj memoriji u hijerarhiji. CacheCache memorija sadrmemorija sadržži i podatke i naredbe koji su se nedavno koristili a podatke i naredbe koji su se nedavno koristili a ččitaju itaju se novi jedino ako se trase novi jedino ako se tražženi tamo ne nalaze. eni tamo ne nalaze. Efektivno vrijeme pristupa memoriji zavisi od toga Efektivno vrijeme pristupa memoriji zavisi od toga kako kako ččesto se taj prijenos nepostojeesto se taj prijenos nepostojeććih mora odvijati. ih mora odvijati.
CPUMemory
ManagementUnit MMU
Cachememory
MainMemory Disk
146146
Adresni Adresni međuregistarmeđuregistar
BajtoviBajtovi spremnikaspremnikaSPREMNIKSPREMNIK
Registar adreseRegistar adrese Registar sadrRegistar sadržžajaaja
Adresni dio Adresni dio sabirnicesabirnice
Podatkovni dio Podatkovni dio sabirnicesabirnice
UpravljaUpravljaččki dio ki dio sabirnicesabirnice
Podatkovni Podatkovni međuregistarmeđuregistarPROCESORPROCESOR
3232
3232
mm==3232
nn==3232
kk
3232
3232
11
JednosmjernoJednosmjerno DvosmjernoDvosmjerno
Arhitektura raArhitektura raččunala 8/16/32/64 bitaunala 8/16/32/64 bita
74
147147
Međusobne vezeMeđusobne veze•• Procesor je povezan na sabirnicu preko Procesor je povezan na sabirnicu preko
međuregistarameđuregistara
•• Adresni Adresni međuregistarmeđuregistar -- jednosmjernojednosmjerno
•• Podatkovni Podatkovni međuregistarmeđuregistar -- dvosmjernodvosmjerno
•• U jednom U jednom sabirnisabirniččkomkom ciklusu mociklusu možže se obaviti jedno e se obaviti jedno pohranjivanje (pohranjivanje (““pisanjepisanje””) u spremnik ili jedno ) u spremnik ili jedno dobavljanje sadrdobavljanje sadržžaja (aja (““ččitanjeitanje””) iz spremnika. ) iz spremnika.
148148
Povijest OSPovijest OS
•• 19401940--te te bez OS, korisnibez OS, korisniččki program u strojnom jeziku se unosio bit poki program u strojnom jeziku se unosio bit pobit putem prekidabit putem prekidačča, a, bubuššene kartice, Strojni jezik (ene kartice, Strojni jezik (AsemblerAsembler –– Engl. Kratice)Engl. Kratice)
•• 19501950--tete General General MotorsMotors ResearchResearch LabLab prvi OS za IBM 701 prvi OS za IBM 701 Aktivan Aktivan JEDANJEDAN JOB JOB -- specifispecifiččan niz međusobno povezanih an niz međusobno povezanih raraččunalskih zadataka kao na primjer plaunalskih zadataka kao na primjer plaćće, inventurae, inventuraSingleSingle--streamstream batchbatch--procesingprocesing systemsystemIntervencija operatera, ograniIntervencija operatera, ograniččenje, malaenje, mala--skupa memorijaskupa memorija
75
149149
•1960-teIsto batch procesi, ali su se resursi računalakoristili efikasnije-obradom VIVIŠŠEE jobovaistovremeno
•1970-teMULTIPROGRAMING – OS je upravljao s više različitih jobova istovremeno tako da je prebacivao aktivnosti (dodjeljivao vrijeme) procesora i U/I uređaja između različitih programa. Primarni cilj: dijeljenje resursa računala.Korisnici nisu bili prisutni kada se job obrađivao.1964 IBM System/360, 370, 390, zSerija
150150
Turnaround time (od predavanja job-a do povratkarezultata) se drastično smanjio na min i čak sekMULTICS je bio prvi OS koji je bio pisan u višem programskom jeziku EPL prema IBM - ovom PL/1.
•1970-te Time sharing - interaktivan rad
TSS, MULTICS, CP/CMS ....Koristili virtualnu memoriju
Ken Thompson (B), Dennis Ritchie (C)MULTICS u UNIX (C) 1969
1968 Doug Engelbart San Francisco – miš GUI
76
151151
1970-teARPA Advanced Research Project AgencyARPAnet prethodnica Interneta projektiran za rad bez središnje kontroleUS Department of defence TCP/IP standardTransmission Control Protocol/Internet Protocol
LANEthernet standard
152152
1980-teReal Time - rezervacijski sustaviOsobna računala i radne staniceGUIDistributed computing: klijenti i poslužioci (serveri)Više međusobno povezanih nezavisnih računala nazajedničkom zadatku Serveri - grafika, baze podataka, Web straniceKlijenti – korisnička računala izdaju zahtjev
77
1990-te Distribuirani OSWWW World Wide WebTim Berners-Lee HTML HyperText Markup LanguageDo tada su OS bili prvenstveno usmjereni na upravlja-nje računalima u lokalnoj mreži, a razvojem Webazadaća se širi na svjetsku mrežu putem distribuiranih OS-a. Povećanje brzine (MIPS) i kapaciteta (GB) OOOS Object Oriented OS C++ SUN JAVA, Microsoft .NET (Visual Basic.NET
Visual C++.NET, C#)Bill Gates Microsoft proprietary approach, licenca,
korporativni razvoj - postaje dominantanLinus Torvalds LINUX Free Open System (source)
154154
2000-te i daljeMiddlewareSoftware koji povezuje preko mreže 2 odvojeneaplikacije (USA-Japan)Internet veze velike brzine preko kabelskih TV linija i DSL (Digital Subscriber Lines)“Kurir” između Web servera i servera baze podataka,omogućava i pojednostavljuje komunikaciju između različitih arhitektura. Web servicesUključuje niz odgovarajućih standarda koji omogućuju bilo kakvu razmjenu podataka bilo kakva 2 računala.
78
155155
Svjedoci u zadnjih par dekada:•Dramatično raste snaga računala a cijena pada•Desktop radne stanice WS u MIPS-ima •Superačunala GIPS•Računala postaju sastavni dio skoro svih vidova ljudske aktivnosti: PC - dokumenti, izračuni, igre, muzika, video te osobne potrebe.
•Prijenosni uređaji kao laptop, PDA (Personal DigitalAssistants), mobiteli te MP3 playeri svi sadrže procesore kao ključne elemente.
•Fiksne žične i bežične mreže povećavaju snagukomunikacija omogućavajući trenutno spajanje preko velikih udaljenosti.
156156
•Internet i World Wide Web su izazvali revolucijuposlovanja općenito stvarajući potrebe za velikimmrežama snažnih računala koje poslužuju brojne transakcije u sekundi. •Mreže računala su postale tako snažne da se onedanas upotrebljavaju u kompleksnim istraživačkimprojektima i simulacijama: klima na zemlji, oponašanjuljudske inteligencije, dekodiranju ljudskog genomate stvaranju 3D animacija.
79
157157
ŠŠto je Operacijski Sustav OS?to je Operacijski Sustav OS?
158158
1960..... 1960..... SoftwareSoftware koji kontrolira koji kontrolira HardwareHardwareDanas ... RaDanas ... Raččunala evoluirala pa je potrebna unala evoluirala pa je potrebna šširaira
definicija definicija
Proširenje zadataka koji se zahtijevaju danas od računala uvjetuje novu definiciju uloge i odgovornosti Operacijskih Sustava.
Kako bi se povećala iskoristivost računalske opremeprimjenski programi (applications) su projektirani tako da se izvršavaju “istovremeno”. Ako ti programi nisu pažljivo usklađeni, može se dogoditi da se međusobno “pomiješaju” – interferiraju.
80
159159
Definicija OSDefinicija OS--aa
OS je ”sloj” programskog koda čiji je zadatak odvojiti međusobno različite ali “istovremeno” aktivne korisničke programe od elektroničkog sklopovlja (hardwera) te omogućiti da se svaki korisnički program odvija sigurno i učinkovito.
P1a
P1b P1c
P2a
P2c
P2b
P3a
P3b P4a
P4b
Rezervirano za OSRezervirano za OS
SadrSadržžaj radnog spremnika: OS i korisniaj radnog spremnika: OS i korisniččki programiki programi
P1a P3aP2b
P2a
P4aP2c
P1b
P1c P4bP3b
Vanjski spremniciVanjski spremnici
(PoPoččetaketak--””DnoDno””))
RastRastadresaadresa
memorijememorije
MMeemmoorriijjaa
81
Apstraktni pogled na komponente Apstraktni pogled na komponente raraččunalnog sustavaunalnog sustava
KorisnikKorisnik11
KorisnikKorisnik22
KorisnikKorisniknn
PrevodilacPrevodilac Strojni jezikStrojni jezik UređivaUređivačč tekstateksta Baza podatakaBaza podataka
Sustav i Sustav i primjenskiprimjenski programiprogrami
Operacijski sustavOperacijski sustav
ElekroniElekroniččkoko sklopovljesklopovlje
KorisniKorisniččki i ostali ki i ostali programiprogrami
((NonNon--kernelkernel prgprg.).)Jezgra OSJezgra OS--aa((KernelKernel OS)OS)
KorisniKorisniččko suko suččeljeelje((UserUser interfaceinterface))
RaRaččunalno sklopovljeunalno sklopovlje((ComputerComputer hardwarehardware))
162162
PrimjenskiPrimjenski -- korisnikorisniččki programki program(aplikacija)(aplikacija)
•• OmoguOmoguććuje korisniku izvruje korisniku izvrššavanje razliavanje različčitih itih postavljenih zadatakapostavljenih zadataka
•• Transformira raTransformira raččunalni sustav u odgovarajuunalni sustav u odgovarajućći i virtualni stroj virtualni stroj
82
163163
Kako tko vidi OS?Kako tko vidi OS?
•• UUččenikenik ..... ..... mogumoguććnost pristupa Internetunost pristupa Internetu•• ProgramerProgramer ..... ..... razvojni alat za korirazvojni alat za korišštenjetenje
raraččunalnog sustava u razliunalnog sustava u različčite svrheite svrhe•• Korisnik Korisnik primjenskogprimjenskog programa ..... programa ..... specifispecifiččnana
primjena raprimjena raččunalnog sustavaunalnog sustava•• TehniTehniččar u procesnoj industriji ....... ar u procesnoj industriji ....... MoguMoguććnostnost vođenja i kontrole proizvodnje vođenja i kontrole proizvodnje
Apstraktni pogled na OSApstraktni pogled na OS•• Nijedan od navedenih pogleda nije Nijedan od navedenih pogleda nije sveobuhvasveobuhva--
tantan, ali je svaki od njih to, ali je svaki od njih toččan i pomaan i pomažže shvatiti e shvatiti korisniku na koje mu sve nakorisniku na koje mu sve naččine OS moine OS možže slue služžiti iti odnosno odnosno biti njegova produbiti njegova produžžena ruka.ena ruka.
•• Ti se pogledi nazivaju Ti se pogledi nazivaju apstraktnim apstraktnim -- usmjereni usmjereni su na bitne karakteristike jednog entiteta sa su na bitne karakteristike jednog entiteta sa stanovistanoviššta specifita specifiččnog promatranog promatračča! a! (Entitet: (Entitet: stvaran ili apstraktni objekt ili događaj o stvaran ili apstraktni objekt ili događaj o kojem se u informacijskom sustavu prikupljaju podacikojem se u informacijskom sustavu prikupljaju podaci))
•• PosljedicaPosljedica: apstraktni pogled sadr: apstraktni pogled sadržži samo i samo nekenekeelemente realnosti ali zanemaruje elemente realnosti ali zanemaruje ostaleostale. .
83
165165
LogiLogiččki pogled Fiziki pogled Fiziččki ki pogledpogled
PodatciPodatci RezultatiRezultati
Program PProgram POSOS
Program PProgram Pi njegovii njegovipodatcipodatci
OstaliOstaliprogramiprogrami
PisaPisaččCPUCPU
PodatciPodatciPrograma PPrograma P
Program PProgram P
166166
Operacijski sustav jeOperacijski sustav je•• skup osnovnih programa koji omoguskup osnovnih programa koji omoguććuju provođenjeuju provođenje--
izvrizvrššenje postavljenih zadataka na raenje postavljenih zadataka na raččunaluunalu•• Nekada ga je pisao proizvođaNekada ga je pisao proizvođačč raraččunala (IBM, unala (IBM, UnivacUnivac, CDC...) , CDC...)
a danas Microsoft (zatvoreni pristup) odnosno udruge a danas Microsoft (zatvoreni pristup) odnosno udruge UnixUnix, , LinuxLinux (otvoreni pristup) u skladu s nekim od standarda. (otvoreni pristup) u skladu s nekim od standarda.
•• Upravlja:Upravlja:
1.1. korisnikorisniččkim programima i drugim programskim apstrakcijamakim programima i drugim programskim apstrakcijamakoji za razliku od sklopovlja nisu fizikoji za razliku od sklopovlja nisu fiziččki objekti.ki objekti.
2.2. resursima raresursima raččunalaunala: s: sklopovljem, procesoroklopovljem, procesorom(ima), m(ima), spremnicima, I/O urspremnicima, I/O uređajimaeđajima, komunikacijama , komunikacijama
84
167167
Dva pogleda Dva pogleda –– prvi (zahtjev korisnika)prvi (zahtjev korisnika)1.1. Sa strane Sa strane korisnika korisnika -- Top Top downdown::
extendedextended//virtualvirtual machinemachine (pro(prošš ireni/virtualni stroj)ireni/virtualni stroj)JEDNOSTAVNOST UPORABEJEDNOSTAVNOST UPORABE
Zahtjev IzvrZahtjev Izvrššenje programa, poziv enje programa, poziv datotedatotečč. sustava. sustavaUsluga Brz odgovor na zahtjeve za Usluga Brz odgovor na zahtjeve za raraččunalunal. resurs.. resurs.Prikladan Lako pamtljive naredbe, GUIPrikladan Lako pamtljive naredbe, GUI................WEB moguWEB moguććnosti Organizacija WEB poslunosti Organizacija WEB poslužžiteljaiteljaRazvoj Dodavanje novih uređaja i raRazvoj Dodavanje novih uređaja i raččunala unala
168168
Dva pogleda Dva pogleda –– drugi (zadadrugi (zadaćća OSa OS--a)a)2.2. Sa strane Sa strane sustava sustava -- BottomBottom upup::
koordinator svih dijelova rakoordinator svih dijelova raččunalaunalaUPRAVLJANJE RESURSIMAUPRAVLJANJE RESURSIMA
Programi .... Programi .... ZapoZapoččimanjeimanje i zavri završšavanje. Osiguranje avanje. Osiguranje uvjeta da viuvjeta da višše procesa radi u svrhu e procesa radi u svrhu postizanja zajednipostizanja zajedniččkog cilja onogkog cilja onogprograma kojem pripadajuprograma kojem pripadaju
Resursi...Osigurava raspoloResursi...Osigurava raspoložživosti i dodjelu programimaivosti i dodjelu programimaPodjela..Odluka kada i koliko dodijeliti CPU programimaPodjela..Odluka kada i koliko dodijeliti CPU programimaZaZašštita ... Programa i podataka od drugih korisnika tita ... Programa i podataka od drugih korisnika
85
169169
UlogaUloga
•• Posrednik izmeđuPosrednik između::–– korisnikorisniččkog programa i kog programa i –– elektronielektroniččkog rakog raččunalskog sklopovlja (unalskog sklopovlja (hardwarehardware--a)a)
170170
Svrha Svrha –– Zadaci Zadaci -- Ciljevi OSCiljevi OS--aa
•• OmoguOmoguććuje okolinu/suuje okolinu/suččelje u kojem elje u kojem korisnik mokorisnik možže izvoditi program na nae izvoditi program na naččin:in:
1.1. PrikladanPrikladan -- olakolakššava uporabu raava uporabu raččunala unala 2.2. Djelotvoran Djelotvoran -- iskoriiskorišštavanje svih dijelova tavanje svih dijelova
raraččunala unala -- ResourceResource ManagerManager
86
171171
UUččinkovitost : Prikladnostinkovitost : Prikladnost•• Mora osigurat ne samo uMora osigurat ne samo uččinkovitu upotrebu inkovitu upotrebu raračč. .
sustava nego i prikladno korisustava nego i prikladno korišštenje za korisnika tenje za korisnika (1968 se u (1968 se u ““3.Maju3.Maju”” programiralo u programiralo u AsembleruAsembleru).).Potrebno tePotrebno težžiti kompromisu između ova iti kompromisu između ova 2 2 zahtjeva, a koji najbolje odgovara zadanom zahtjeva, a koji najbolje odgovara zadanom radnom okruradnom okružženju.enju.
•• Postoje brojni OS koji pruPostoje brojni OS koji pružžaju razne efekte aju razne efekte iskoisko--ristivostiristivosti. Jedni daju brzi odgovor (kontrolni i . Jedni daju brzi odgovor (kontrolni i rezervacijski sustavi) a drugi urezervacijski sustavi) a drugi uččinkovito inkovito iskoriiskorišštata--vajuvaju resurse na resurse na uušštrbtrb vremena kako bi omoguvremena kako bi omoguććili ili ninižže troe trošškove. U sredini su oni koji omogukove. U sredini su oni koji omoguććuju uju razlirazliččite kombinacije brzine i efikasnosti. ite kombinacije brzine i efikasnosti.
172172
Prikladnost za korisnikaPrikladnost za korisnika
Potreba ..... MoguPotreba ..... Moguććnost izvrnost izvrššenja programa,enja programa,poziv datotepoziv datoteččnog sustavanog sustava
Dobra usluga ... Brz odgovor na zahtjeve Dobra usluga ... Brz odgovor na zahtjeve ““UserUser frendlyfrendly”” ... Lako pamtljive naredbe, GUI ... Lako pamtljive naredbe, GUI Nove Nove progrprogr. . mogumoguććnosinosi ... Konkurentni programi... Konkurentni programiDodaci za eksperte ... Stvaranje Dodaci za eksperte ... Stvaranje kompleks.struktkompleks.struktWeb Web orjentiraniorjentirani ..... Mogu..... Moguććnost ukljunost uključčivanjaivanja
WEB serveraWEB serveraRazvoj ..... MoguRazvoj ..... Moguććnost prikljunost priključčka novih dodatakaka novih dodataka
i novih rai novih raččunalaunala
87
173173
OS i uOS i uččinkovitostinkovitost•• Podrazumijeva Podrazumijeva šširoki spektar razmatranja odiroki spektar razmatranja od
korisnikorisniččkiki usmjerenog usmjerenog ((interaktivni rad,interaktivni rad,vremenski kritivremenski kritiččanan) ) dodo sustavnogsustavnog (dobra (dobra raspodjela resursa, raspodjela resursa, nonnon--interaktivan rad). interaktivan rad).
•• UUččinkovitost: 2 inkovitost: 2 vida upotrebe ravida upotrebe raččunalnih resursa:unalnih resursa:
1.1. od od strane OSstrane OS--aa ((““overheadoverhead”” -- potpora potpora korisniku ali na korisniku ali na uušštrbtrb korisnikovog vremena)korisnikovog vremena)
2.2. od od strane korisnikastrane korisnikaSlaba uSlaba uččinkovitost za korisnika moinkovitost za korisnika možže imati 2 uzroka: previe imati 2 uzroka: previššeezauzezauzećća od strane OS (neupotrebljivost za druge) ili nemogua od strane OS (neupotrebljivost za druge) ili nemoguććnostnostoslobađanja slobodnih resursa oslobađanja slobodnih resursa ššto uzrokuje usporavanje drugihto uzrokuje usporavanje drugihprocesa.procesa.
174174
PraPraććenje uenje uččinkovitostiinkovitosti•• MoMožže se postie se postićći i nekrekidnimnekrekidnim prapraććenjem resursa i enjem resursa i
korektivnim akcijama u slukorektivnim akcijama u sluččaju potrebe. aju potrebe.
•• Kako raKako raččunalo ima viunalo ima višše resursa (I/O, CPU, memorija) e resursa (I/O, CPU, memorija) opseopsežžno prano praććenje resursa bi rezultiralo visokim enje resursa bi rezultiralo visokim zauzezauzeććem procesora (t.j. em procesora (t.j. ““overheadomoverheadom””) pa se ili:) pa se ili:
•• fokusira samo na CPU i memoriju ilifokusira samo na CPU i memoriju ili•• upravlja korisniupravlja korisniččkim programima u cilju jamstva visoke kim programima u cilju jamstva visoke
uuččinkovitosti. Ovo posljednje izbjegava prainkovitosti. Ovo posljednje izbjegava praććenje enje resursa/izraresursa/izraččunavanje uunavanje uččinkovitosti inkovitosti ššto bi bio dodatan to bi bio dodatan ““overheadoverhead””. Primjer su . Primjer su BatchBatch i i MultiprogramingMultiprograming koji su koji su za projektni zadatak imali uza projektni zadatak imali uččinkovitost upotrebe. inkovitost upotrebe.
88
175175
Programska struktura i odgovornostProgramska struktura i odgovornost OSOS--aa
1.1. PojedinaPojedinaččni programni program ... Aktivirati/zaustaviti... Aktivirati/zaustavitiprogram, upravljati resursimaprogram, upravljati resursima
22.. Niz pojedinaNiz pojedinaččnih programa (nih programa (BatchBatch) ) .. Ko.. Kontrolantrola međuzavisnosti međuzavisnosti, zaustaviti niz ako , zaustaviti niz ako
je jedan program u gje jedan program u grereššcici
3. Su3. Su--izvrizvrššni programi (ni programi (CoCo--executivexecutiv) ) ... Koo... Koordinirati vezurdinirati vezu među njima te njihov zavr među njima te njihov završšetaketak
ZajedniZajedniččki zadatci OSki zadatci OS--aaZadatak Kada/tkoZadatak Kada/tko1. Popis ovla1. Popis ovlašštenih korisnika.........Sistem tenih korisnika.........Sistem adminstratoradminstrator2. Popis resursa u 2. Popis resursa u raračč. sustavu......OS kod starta . sustavu......OS kod starta 3. 3. ZapoZapoččimanjeimanje izvrizvrššenja enja progrprogr. ....Po naredbi korisnika. ....Po naredbi korisnika4. Pregled programskog zauze4. Pregled programskog zauzećća....Kontinuirano za a....Kontinuirano za
resursa te trenutnog stanja vrijeme operativnostiresursa te trenutnog stanja vrijeme operativnosti--svih programa svih programa aktivnosti OSaktivnosti OS--aa
5. Pregled 5. Pregled trenuttrenut. stanja svih . stanja svih resurresur. ..U trenutku zahtjeva. ..U trenutku zahtjevate te pridrupridružž. program. na zahtjev ili otpu. program. na zahtjev ili otpušštanja resursatanja resursa
6. 6. Usklađuje Usklađuje korikorišštt. dijeljenih . dijeljenih resres. ...Tijekom . ...Tijekom operatoperat OSOS--a a 7. Odr7. Održžava informacije o zaava informacije o zašštiti........Tijekom titi........Tijekom operatoperat OS OS--aa8. 8. Obrađuje zahtjeve od straneObrađuje zahtjeve od strane........Na zahtjev korisnika........Na zahtjev korisnika
korisnika i njihovih programa korisnika i njihovih programa
89
Kako funkcionira OSKako funkcionira OS•• PodrPodržžava ava viviššeprogramskieprogramski radrad
•• Aktivan je u Aktivan je u sustavskomsustavskom ““kernelkernel//supervisorsupervisor modemode””. Dio . Dio softwaresoftware--a koji sadra koji sadržži sredii središšnjicu (njicu (corecore) OS) OS--a zove se a zove se JEZGRA (KERNEL)JEZGRA (KERNEL) i cijelo je vrijeme smjei cijelo je vrijeme smješšten u ten u rezerviranom rezerviranom dolnjemdolnjem--popoččetnom dijelu memorije.etnom dijelu memorije.
•• Jezgra Jezgra ispunjava cilj OSispunjava cilj OS--a izvođenjem niza kontrolnih funkcijaa izvođenjem niza kontrolnih funkcija. . To je zbir programa a ne komad sklopovlja (To je zbir programa a ne komad sklopovlja (hardwarehardware).).VrVršši kontrolnu funkciju izvođenjem naredbi na CPUi kontrolnu funkciju izvođenjem naredbi na CPU--u.u.Tako CPU posluTako CPU poslužžuje i uje i korisnikorisniččke programeke programe i i OS.OS.Prvo predstavlja produktivnu upotrebu CPUPrvo predstavlja produktivnu upotrebu CPU--a i doprinosi a i doprinosi uuččinkovitosti rainkovitosti raččunalnog sustava a drugo je neophodni dodatak unalnog sustava a drugo je neophodni dodatak ((““overheadoverhead””) bez kojeg se ne mo) bez kojeg se ne možže a koji smanjuje ue a koji smanjuje uččinkovitost. inkovitost.
178178
Jezgra prebacujeJezgra prebacuje ((switchswitch offoff) ...) ...•• CPU s jedne aktivnosti na drugu. CPU s jedne aktivnosti na drugu. •• CPU obiCPU običčno radi za korisnika. Kada je jezgra pozvana no radi za korisnika. Kada je jezgra pozvana
izvesti kontrolnu funkciju, koja je njezin sastavni dio, izvesti kontrolnu funkciju, koja je njezin sastavni dio, CPU se mora najprije prebaciti na izvođenje jezgre CPU se mora najprije prebaciti na izvođenje jezgre, a , a
nakon zavrnakon završšetka kontrolne funkcije CPU se (ovisno o etka kontrolne funkcije CPU se (ovisno o uvjetima u tom trenutku) vrauvjetima u tom trenutku) vraćća:a:a) ili na izvra) ili na izvrššenje prekinutog korisnienje prekinutog korisniččkog programa kog programa b) ili na izvrb) ili na izvrššenje nekog drugog programa.enje nekog drugog programa.
Prebacivanje CPUPrebacivanje CPU--a između korisnia između korisniččkih programakih programai jezgre je najkritii jezgre je najkritiččniji trenutak u radu OSniji trenutak u radu OS--a.a.
90
Dijelovi Dijelovi kernelakernela –– jezgre OSjezgre OS--aa••PS ... Proces PS ... Proces schedulerscheduler––planiranje aktivnostiplaniranje aktivnosti--dodjela procesoradodjela procesora
procesima na osnovi nekog algoritma teprocesima na osnovi nekog algoritma teosiguranje uvjeta za izvrosiguranje uvjeta za izvrššenjeenje
••MM ... MM ... MemoryMemory managermanager -- kada i koliko memorije se dodjeljuje kada i koliko memorije se dodjeljuje izabranom procesu i izabranom procesu i ššto se događa kada seto se događa kada se
napuni glavna memorija napuni glavna memorija
••I/O... I/O I/O... I/O managermanager –– posluposlužžuje ulazne i izlazne zahtjeve uje ulazne i izlazne zahtjeve
•• IPC ... IPC ... InterInter Proces Proces CommunicationCommunication managermanager –– omoguomoguććujeuje komunikaciju između razli komunikaciju između različčitih procesaitih procesa
••FS ... File FS ... File systemsystem managermanager––organizira imenovani skup podatakaorganizira imenovani skup podatakana vanjskim spremnicima na vanjskim spremnicima te omogute omoguććuje uje
korisnikorisniččkim programima pristup do njihkim programima pristup do njih
KorisniKorisniččki prostorki prostor
JezgrinJezgrin prostorprostor
KorisniKorisniččki programki program
SystemSystem callcall interfaceinterface
JezgrineJezgrine ((KernelKernel) komponente) komponente
MMMM PSPS
IPCIPC FSFS
I/OI/O NetNet ............
MMMM--MemoryMemory managermanagerPSPS--ProcessProcess SchedulerSchedulerIPCIPC--InetrprocesorInetrprocesor CommunicationCommunicationFSFS--File File systemsystemI/OI/O--InputInput//OutputOutput SchedulerSchedulerNetNet--NetworkNetwork managermanager
Dijelovi jezgre
91
181181
Registri: 2 tipaRegistri: 2 tipa
1.1. Programski dostupni (opProgramski dostupni (općće namjene) e namjene) Program Program accessibleaccessible (general (general purposepurpose))SluSlužže za spremanje adresa ili podataka e za spremanje adresa ili podataka tijekom izvrtijekom izvrššenja programa.enja programa.
2.2. Kontrolni (Kontrolni (controlcontrol registersregisters))SluSlužže za spremanje informacija koje e za spremanje informacija koje kontroliraju/usmjeravaju samu aktivnost kontroliraju/usmjeravaju samu aktivnost CPUCPU--a. a.
MemorijaMemorija
SabirnicaSabirnica MemoryMemoryManagementManagement
UnitUnit
ProcesorProcesor--CPUCPU
ZaZašštita I/Otita I/O
InterruptsInterrupts
DMADMA
PSWPSW
RegistriRegistri
DeviceDevicecontrolescontroles
DevicesDevices
DataData pathpathControlControl pathpath
InterruptInterrupt pathpath
92
PSW PSW –– Program Status WordProgram Status Word
Pokazuje stanje kontrolnih registara raPokazuje stanje kontrolnih registara raččunalnog sustavaunalnog sustavaIMIM –– InterruptInterrupt MaskMask (prekidna maska)(prekidna maska)PP -- PrivilegedPrivileged Mode (privilegirani/Mode (privilegirani/kernelkernel modmod 0/1)0/1)ICIC -- InterruptInterrupt CodeCode (kod prekida)(kod prekida)MPIMPI –– MemoryMemory ProtectionProtection InfoInfo ((infoinfo o zao zašštiti memorije)titi memorije)CCCC –– ConditionCondition CodeCode (stanje zadnje aritmeti(stanje zadnje aritmetiččko/logiko/logiččke naredbe)ke naredbe)PCPC –– Program Program CounterCounter (Programsko brojilo(Programsko brojilo--pokazuje na slijedepokazuje na slijedećću u
narnaredbu u redoslijedu)edbu u redoslijedu)SadrSadržžaj PSW i registara kontinuirano pokazuje aj PSW i registara kontinuirano pokazuje ššto CPU radi pa seto CPU radi pa sekakažže da oni predstavljaju e da oni predstavljaju STANJESTANJE CPUCPU--a. a. Promjena Promjena STANJASTANJA (na poziv) podrazumijeva promjenu procesa(na poziv) podrazumijeva promjenu procesaodnosno prebacivanja s jednog programa na drugi ili na jezgru.odnosno prebacivanja s jednog programa na drugi ili na jezgru.
IM P IC MPI CC PCIM P IC MPI CC PC
KorisniKorisniččki i ki i JezgrinJezgrin nanaččin radain rada(dual (dual –– obrada)obrada)
•• PP -- HardwerskiHardwerski dodatak MODE BITdodatak MODE BITCPU radi na 2 naCPU radi na 2 naččina: ina: jezgrinjezgrin--kernelkernel mode mode iikorisnikorisniččki ki ––useruser..
•• KorisniKorisniččkiki -- UserUser mode mode ““11”” ((““00””--konvencija!!)konvencija!!)
•• JezgrinJezgrin -- Monitor, Monitor, supervisorsupervisor, , systemsystem, , privilegedprivileged, , kernelkernel mode mode ““00””((““11””) ) U U jezgrinomjezgrinom nanaččinu radu izvode se kontrolne funkcijeinu radu izvode se kontrolne funkcijete start I/O operacija, drugi nate start I/O operacija, drugi naččin je za korisnika.in je za korisnika.
IM IM P P IC MPI CC PCIC MPI CC PC
93
185185
I/O operacije se mogu izvesti na 3 naI/O operacije se mogu izvesti na 3 naččina:ina:1.1. Programirani U/IProgramirani U/I......operandi U/I naredbe pokazuju operandi U/I naredbe pokazuju
na detalje U/I operacije. CPU dekodira naredbu i na detalje U/I operacije. CPU dekodira naredbu i ššalje signal U/I ualje signal U/I uređajuređaju. P. Protok podataka između Urotok podataka između U/I /I uređaja i memorije kroz CPU i on je uređaja i memorije kroz CPU i on je zauzet zauzet ččekanjemekanjem
2.2. InterruptInterrupt U/I U/I ... CPU izvr... CPU izvršši U/I naredbu s i U/I naredbu s ččime ime zapozapoččne U/I operaciju koja tene U/I operaciju koja tečče nezavisno od CPUe nezavisno od CPU--a. a. Nakon toga se CPU oslobodi kako bi izvrNakon toga se CPU oslobodi kako bi izvrššavao druge avao druge naredbe. Prekid se javlja kada je naredbe. Prekid se javlja kada je bytebyte spreman za spreman za prenosprenos iz U/I jedinice prema memoriji. CPU se iz U/I jedinice prema memoriji. CPU se aktivira te prekidnom rutinom aktivira te prekidnom rutinom ššalje alje bytebyte u memoriju.u memoriju.
3.3. DMADMA...U/I naredba pokazuje tip U/I operacije te broj ...U/I naredba pokazuje tip U/I operacije te broj i adresu i adresu bytovabytova koje treba prenijeti. Sam CPU ne koje treba prenijeti. Sam CPU ne uuččestvuje u prijenosu nego U/I jedinica javlja prekid estvuje u prijenosu nego U/I jedinica javlja prekid po zavrpo završšetku etku komletnogkomletnog zadanog prijenosa. zadanog prijenosa.
U/I (I/O) PodsustaviU/I (I/O) Podsustavi
186186
Vrste prekida Vrste prekida -- InteruptInterupt
•• Programski (Programski (softwaresoftware)...)... Uzrok unutar CPUUzrok unutar CPU--potrebna potrebna intervencija: aritmetiintervencija: aritmetiččki ki owerflowowerflow, dijeljenje s 0, , dijeljenje s 0,
probijanje zaprobijanje zašštitiććenihenih granicagranica memorijememorije
•• U/IU/I (sklopovski)(sklopovski) .. .. Uzrokovan zavrUzrokovan završšetkom U/Ietkom U/Ioperacije ili looperacije ili loššim im funkcioniranjem U/I jedinicefunkcioniranjem U/I jedinice
•• Vremenski (Vremenski (timertimer )) ... Za nadgledanje pona... Za nadgledanje ponaššanjaanjasustava sustava -- generiranjegeneriranje
dozvoljenog vremenskog odsjedozvoljenog vremenskog odsječčka ka
94
187187
Obrada prekida*Obrada prekida*•• Zahtjeva da se Zahtjeva da se CPUCPU prebaciprebaci (otkloni/(otkloni/divertiradivertira) sa ) sa
tekutekućće aktivnosti kojom je zauzet u tom e aktivnosti kojom je zauzet u tom trenutku na obradu odgovarajutrenutku na obradu odgovarajućće prekidne e prekidne rutine u jezgri. To uzrokuje spremanje PSWrutine u jezgri. To uzrokuje spremanje PSW--a a tekutekućće aktivnosti u memoriju te punjenje PSWe aktivnosti u memoriju te punjenje PSW--a a koji koji ćće usmjeriti CPU na obradu nastalog e usmjeriti CPU na obradu nastalog prekida. Jezgra ustanovi uzrok prekida i prekida. Jezgra ustanovi uzrok prekida i poduzpoduz--me odgovarajume odgovarajućću akciju nakon u akciju nakon ččega ili vraega ili vraćća a PSW prekinutog programa ili pokrePSW prekinutog programa ili pokrećće PSW e PSW nekog drugog programa.nekog drugog programa.
*Vidi *Vidi slideslide No 73No 73
188188
dddddd
PSWPSW
IMIM PPPCPC
ddddddICIC
11
22
33
Spremljeno PSW stanjeSpremljeno PSW stanje
Prekidni vektorPrekidni vektor
*Vidi *Vidi slideslide No 78No 78
95
189189
Koraci prekidne akcije*Koraci prekidne akcije*1.1. Postaviti prekidni kodPostaviti prekidni kod ... ... Prekidno sklopovlje Prekidno sklopovlje
generira kod prekida (IC) koji opisuje uzrok prekidagenerira kod prekida (IC) koji opisuje uzrok prekidaa upisuje se u IC polje PSWa upisuje se u IC polje PSW--a. Na a. Na prpr. . ““I/O zavrI/O završšetaketak””momožže biti adresa I/O jedinice koja je izazvala prekid.e biti adresa I/O jedinice koja je izazvala prekid.
2.2. Spremanje aktivnog PSWSpremanje aktivnog PSW ...... sadrsadržžaj PSWaj PSW--a se a se sprema u odgovarajusprema u odgovarajućće podrue područčje memorije je memorije ukljuuključčujuujućći i PC=PC=dddddd ((Programsko brojiloProgramsko brojilo koje u koje u trenutkutrenutku prekida pokazuje na adresu slijedeprekida pokazuje na adresu slijedećće e naredbe u redoslijedu)naredbe u redoslijedu)
3.3. Punjenje Punjenje prekidnogprekidnog vektoravektora ... ... u odgovarajuu odgovarajućća a polja PSWpolja PSW--a. IMa. IM--maska iskljumaska isključčuje prekide manjeg uje prekide manjeg prioriteta, Pprioriteta, P--privilegirani privilegirani modmod, di, dižže se jezgra, PC e se jezgra, PC Program Program CounterCounter--pokazuje na prvu adresu pokazuje na prvu adresu prekidnogprekidnog vektora. vektora. *Vidi *Vidi slideslide No 78No 78
190190
Pojava prekidaPojava prekida
Obrada prekidaObrada prekida
RasporedRaspored(Odluka o slijede(Odluka o slijedeććem)em)
Izlaz iz jezgreIzlaz iz jezgre
Poziv jezgre programskim prekidom –System call
Poziv OS-u da izvrši neku akciju: povećanje memorije ili početak U/I operacije.Izvršenje samog prekida te odluka o izboru slijedeće aktivnosti uzrokuje trošenje vremena CPU-a.“Scheduling overhead” se naziva vrijeme potrebno za donošenje odluke o slijedećoj aktivnosti koja će se aktivirati.
*Vidi *Vidi slideslide No 81No 81
96
191191
Uloga prekida Uloga prekida --
•• PrivuPrivućći pai pažžnju jezgre na uvjet ili događaj koji nju jezgre na uvjet ili događaj koji se upravo dogodio u se upravo dogodio u raračč. sustavu. . sustavu. RaRačč. sustav . sustav pridrupridružžuje numeriuje numeriččki prioritet svakom prekidu. ki prioritet svakom prekidu. Ako ih se dogodi viAko ih se dogodi višše istovremeno, prekidni e istovremeno, prekidni mehanizam omogumehanizam omoguććava najviava najviššem da se obradi em da se obradi kao prvom u redoslijedu, dok ostale pamti. kao prvom u redoslijedu, dok ostale pamti.
•• ICIC -- jedinstveni prekidni kod pridrujedinstveni prekidni kod pridružžen svakom en svakom prekidu omoguprekidu omoguććava dovoljno informacija da ava dovoljno informacija da jezgra poduzme odgovarajujezgra poduzme odgovarajućću akciju.u akciju.
•• ““InterruptInterrupt processingprocessing”” –– obrada prekidaobrada prekida je je naziv koji opisuje izvrnaziv koji opisuje izvrššenje takve akcije. enje takve akcije.
IM P IM P IC IC MPI CC PCMPI CC PC
*Vidi *Vidi slideslide No 82No 82
192192
Maska prekida Maska prekida InterruptInterrupt MaskMask -- IMIM
•• U PSWU PSW--u pokazuje koji su prekidi dozvoljeni da u pokazuje koji su prekidi dozvoljeni da se pojave u bilo kojem trenutku.se pojave u bilo kojem trenutku.
•• U polju U polju IMIM se pojavljuje se pojavljuje integerinteger mm koji određuje koji određuje da se od tog trenutka dalje dozvoljavaju samo da se od tog trenutka dalje dozvoljavaju samo prekidi prekidi ččiji je prioritet > m. Alternativno iji je prioritet > m. Alternativno IMIMsadrsadržži i kombinaciju bitova gdje svaki pojedini i i kombinaciju bitova gdje svaki pojedini bit pokazuje dali je nekom određenom prekidu bit pokazuje dali je nekom određenom prekidu dozvoljen događaj dozvoljen događaj ((enabledenabled)) odnosno zabranjen odnosno zabranjen ((maskedmasked)). .
IM IM P IC MPI CC PCP IC MPI CC PC
97
193193
SuSuččeljeelje•• ČČvrsto dogovorena pravila o navrsto dogovorena pravila o naččinu inu
uspostavljanja veze odnosno komuniciranja uspostavljanja veze odnosno komuniciranja između dvijuizmeđu dviju, ina, inačče razdvojenih cjelinae razdvojenih cjelina--razina.razina.
•• Aktivnosti operacijskog sustava pokreAktivnosti operacijskog sustava pokrećće:e:1.1. korisnik preko korisnikorisnik preko korisniččkog sukog suččeljaelja2.2. program preko suprogram preko suččelja elja primjenskogprimjenskog programa programa
•• Operacijski sustav preko tih suOperacijski sustav preko tih suččelja povratno vraelja povratno vraćća:a:1.1. rezultate zatrarezultate zatražženih operacijaenih operacija2.2. samo informacije o izvrsamo informacije o izvrššenoj funkcijienoj funkciji
194194
Hijerarhijska izgradnja OSHijerarhijska izgradnja OS--aa
•• Svaki se sustav izgrađuje po razinamaSvaki se sustav izgrađuje po razinama•• Svaka se razina sastoji od objekata i Svaka se razina sastoji od objekata i
operacija nad tim objektimaoperacija nad tim objektima•• Objekti i operacije razine izgrađuju se Objekti i operacije razine izgrađuju se
samo s pomosamo s pomoćću objekata i operacija prve u objekata i operacija prve neposredne nineposredne nižže razinee razine
•• Detalji ostvarenja objekata i operacija Detalji ostvarenja objekata i operacija pojedine razine su skrivenipojedine razine su skriveni
98
195195
SuSuččeljeeljeprimjenskihprimjenskihprogramaprograma
SuSuččelje programa i OSelje programa i OS--aaAPIAPI
KorisniKorisniččko suko suččeljeeljeOperacijskogOperacijskog
sustavasustava
PrimjenskiPrimjenski programiprogrami
Operacijski sustavOperacijski sustav
RaRaččunalno sklopovljeunalno sklopovlje
SuSuččelje elje programa i programa i sklopovljasklopovlja
Razina korisnikaRazina korisnika
Razina Razina primjenskihprimjenskihprogramaprogramaRazina operacijskogRazina operacijskogsustavasustava
RazinaRazinasklopovljasklopovlja
VM VM VirtualVirtual MachineMachine
ProgramProgram ProgramProgram ProgramProgramLinuxLinux WindowsWindows UnixUnix
ProgramProgram VirtualVirtual MachineMachine ProgramProgramOperatingOperating SystemSystem
ProcesorProcesor MemorijaMemorija DiskDisk
FiziFiziččki slojki slojsklopovljasklopovlja
((FizFizččkikihardwarehardware))
Virtualni slojVirtualni slojsklopovljasklopovlja(Virtualni(Virtualnihardwarehardware))
SoftwareSoftware
99
197197
Razine u hijerarhijskoj izgradnji sustavaRazine u hijerarhijskoj izgradnji sustava
SučeljeSuSuččeljeelje
SuSuččeljeelje
SuSuččeljeeljeRRii+1+1
RRii
RRii--11
198198
KorisniKorisniččki programki program
I/OI/O managementmanagement
Memory managementMemory management
Processor allocation andProcessor allocation andProcess schedulingProcess scheduling
KorisnikKorisnik
KorisniKorisniččkikiprostorprostor
JezgraJezgraKernelKernel
Razina 4Razina 4
Razina 3Razina 3
Razina 2Razina 2
Razina 1Razina 1
Razina 0Razina 0
H SH SA KA KR LR LD OD OW PW PA OA OR VR VE LJE LJ
EE
Message interpreterMessage interpreter
Razine*Razine*
*Vidi slide No *Vidi slide No 5656
100
199199
NaNaččini obrade u OSini obrade u OS--uu•• ProgramProgram ... ... niz funkcija ili modula ukljuniz funkcija ili modula uključčujuujućći onei one
““povupovuččeneene”” iz biblioteke.iz biblioteke.
•• JOBJOB ......NizNiz povezanih korakapovezanih koraka od kojih svaki od kojih svaki predstavljapredstavljaizvrizvrššenje enje jednogjednog programa. Nema programa. Nema smislasmislaizvrizvrššavati avati slijedeslijedećći programi program ako prethodni ako prethodni nijenijeuspjeuspješšno zavrno završšio.io.
•• ProcesProces ... Predstavlja izvr... Predstavlja izvrššenje dijela programa enje dijela programa kadakadaprogramprogram dobije prostor (memoriju) i dobije prostor (memoriju) i vrijeme (CPU)vrijeme (CPU)
•• DretvaDretva--Nit (Nit (ThreadThread))... ... ViVišše dretvi dijele zajednie dretvi dijele zajedniččke ke resurse sa procesom s time da svaka ima resurse sa procesom s time da svaka ima
svojesvoje specifispecifiččne podatke ne podatke (Thread(Thread--SpecificSpecific DataData))
200200
Operacijski sustavi PCOperacijski sustavi PC
•• DOS DiskDOS Disk Operating systemOperating system•• MSDOSMSDOS•• Microsoft WindowsMicrosoft Windows•• Apple MacintoshApple Macintosh•• OS/2OS/2 multitasking system multitasking system
101
201201
Klase OSKlase OS--aaPeriod Klasa Primarni zadatak KljuPeriod Klasa Primarni zadatak Ključčni konceptni koncept19601960 BatchBatch .. Bolje koristiti CPU.. Bolje koristiti CPU SpoolingSpooling....................
Simultaneous Peripheral OperationSimultaneous Peripheral Operation OnOn--LineLine7070--tete MultiprogMultiprog......IskoristivostIskoristivost resurresur. Programski prioriteti, . Programski prioriteti,
Zamjena progZamjena programa rama 7070--tete TimeTime sharingsharing...... Brzi odgovor Vremenski odsjeBrzi odgovor Vremenski odsječčci, ci,
KruKružžno dodjeljivanje (no dodjeljivanje (Round robinRound robin))8080--tete RealReal timetime ... Ispunjenje zahtjeva za promptni... Ispunjenje zahtjeva za promptni
odgovor raodgovor raččunalnog sustavaunalnog sustava9090--tete DistributedDistributed ... Podjela resursa Transparentnost, ... Podjela resursa Transparentnost,
Distribuirana Distribuirana kontrolakontrola
202202
Sustavi u realnom vremenu Sustavi u realnom vremenu -- RealReal timetime
•• Kontrolni uređaj u strogoKontrolni uređaj u strogo primjenskom primjenskom programuprogramu•• Koristi se u sluKoristi se u sluččaju kada je neophodan aju kada je neophodan
promptnipromptni--trenutni vremenski odgovor ratrenutni vremenski odgovor raččunala ili unala ili prihvat/pristup podatcima. prihvat/pristup podatcima.
•• Senzori prenose iz Senzori prenose iz okolineokoline--proizvodnogproizvodnog procesaprocesapodatke rapodatke raččunalu koji ih obrađuje i vraunalu koji ih obrađuje i vraćća u a u proizvodni proces s kojim upravlja. proizvodni proces s kojim upravlja.
•• Rezervacijski sustavi (zrakoplovi, hoteli)Rezervacijski sustavi (zrakoplovi, hoteli)
102
203203
UUččinkovitostinkovitost
PrikladnostPrikladnostUser User
convenienceconvenience
BatchBatch
MultiMultiprogramingprograming
RealRealTime OSTime OS
TimeTimesharingsharing
DistributedDistributedOSOS
PotrebaPotrebanunužždada
Dobra uslugaDobra usluga Podjela resursaPodjela resursa
IzvrIzvrššenje korisnienje korisniččkih zahtjeva u raznim OSkih zahtjeva u raznim OSKlasa Obrada KljuKlasa Obrada Ključčni nani naččininBatchBatch JobJob Jedan po jedanJedan po jedan jobjob. Programi unutar. Programi unutar
jobajoba sekvencijalno (u nizu)sekvencijalno (u nizu)MultiprogMultiprog. . ProgramiProgrami OS OS ““preklapapreklapa”” obradu nekoliko programaobradu nekoliko programa
kako bi se poboljkako bi se poboljššala iskoristivost resursaala iskoristivost resursai i uuččinkovitostinkovitost ( (izvođenjeizvođenje)) raračč. sustava . sustava
TimeTime sharingsharing Procesi Procesi ““preklapanjepreklapanje”” procesa radi osiguranjaprocesa radi osiguranjabrzog odgovorabrzog odgovora
RealReal timetime ProcesiProcesi ““preklapanjepreklapanje”” procesa u svim programimaprocesa u svim programimakako bi se postigao planirani zavrkako bi se postigao planirani završšetak (etak (““deadlinedeadline””))
DistributedDistributed Procesi Procesi pristup udaljenim resursima putem mrepristup udaljenim resursima putem mrežže.e.Obrada procesa istog programa na raznim raObrada procesa istog programa na raznim raččunalimaunalima
u mreu mrežži da bi se postigla raspodjela resursa i ui da bi se postigla raspodjela resursa i uččinkovitost inkovitost
103
205205
MultiprocesorskiMultiprocesorski sustavisustavi•• Paralelni sustavi Paralelni sustavi -- ččvrsto povezani sustavivrsto povezani sustavi
Tandem, Tandem, SMPSMP symmetric multiprocessingsymmetric multiprocessing
CPUCPU CPUCPU CPUCPU
MemorijaMemorija SimetriSimetriččnana multiprocesorskamultiprocesorska arhitekturaarhitektura
Jedno kučište
206206
Distribuirani sustaviDistribuirani sustavi•• ClientClient--serverserver•• ComputeCompute--serverserver systemssystems•• FileFile--serverserver systemssystems•• PeerPeer--toto--PeerPeer
ClientClient ClientClient ClientClient ClientClient
ServerServer
Mreža
104
207207
Distribuirani sustaviDistribuirani sustavi•• MreMrežža (a (NetworkNetwork) k) komunikacijski kanal omunikacijski kanal
između dvaju ili viizmeđu dvaju ili višše sustavae sustava•• Razlikuju se po: Razlikuju se po: komunikacijskom protokolukomunikacijskom protokolu
udaljenosti između udaljenosti između ččvorovavorovatransportnom medijutransportnom mediju
•• Sastoji se od 2 ili viSastoji se od 2 ili višše e ččvorova, gdje je svaki vorova, gdje je svaki ččvor ravor raččunalo sa vlastitom memorijom, unalo sa vlastitom memorijom, mremrežžnim sklopovljem te mogunim sklopovljem te moguććnonoššćću vru vrššenja enja kontrolnih funkcija nekog OSkontrolnih funkcija nekog OS--a. a.
208208
MreMrežža i Distribuirani OSa i Distribuirani OS
HubHub
ServerServer ServerServer ServerServer
DiskDisk
ProcesorProcesor
ClientClient
ClientClient ClientClient
ClientClient
ClientClient
105
209209
MreMrežžni Protokolini Protokoli
•• TCP/IP (TCP/IP (Windows & UNIX)Windows & UNIX) •• ATM ATM
Vezu između OSVezu između OS--a i mrea i mrežžnog protokola predstavlja: nog protokola predstavlja:
1.1. susuččelje (elektronielje (elektroniččki ki sklopsklop**))2.2. program zaprogram za pripremu (razlaganje odnosno slaganje)pripremu (razlaganje odnosno slaganje)
podataka za slanje putem komunikacijskogpodataka za slanje putem komunikacijskog kanala.kanala.
*Vidi slide No *Vidi slide No 8888
210210
MreMrežže .. Podjela obzirom na udaljenoste .. Podjela obzirom na udaljenost
•• LANLAN locallocal--area networkarea network•• WANWAN widewide--area networkarea network•• MetropolitanMetropolitan--area networkarea network•• SmallSmall--area networkarea network ((BlueToothBlueTooth) )
106
211211
Transportni medijTransportni medij
•• Bakreni vodiBakreni vodiččii•• OptiOptiččka vlaknaka vlakna•• BezBezžžiiččnini prijenos: prijenos:
sateliti, mikrovalne antene, radiosateliti, mikrovalne antene, radio
212212
HandheldHandheld raraččunalaunala
•• PDAsPDAs PersonalPersonal digital assistantsdigital assistants ((dlanovnicidlanovnici))•• BlueToothBlueTooth
107
213213
Embedded ComputingEmbedded Computing
•• Od motora automobila preko robota Od motora automobila preko robota do mikrovalnih do mikrovalnih pepećći.i.
•• ““FiksnoFiksno”” unaprijed programirana funkcionalnost unaprijed programirana funkcionalnost za definirano podruza definirano područčje. je.
214214
Moderni OSModerni OS•• Korisnici zapoKorisnici započčinju razliinju različčite aktivnosti u modernom ite aktivnosti u modernom
OSOS--u pa onu pa on nemonemožžee koristiti jedinstvenu strategiju koristiti jedinstvenu strategiju za sve procese.za sve procese.
•• NaNa prpr. korisnik istovremeno:. korisnik istovremeno: ee--mailmail, editiranje, , editiranje, obrada i gledanje videa a to ukljuobrada i gledanje videa a to uključčuje:uje:
1.1. InteraktivnostInteraktivnost2.2. ZapoZapoččeti proces u drugom eti proces u drugom ččvoru distribuiranogvoru distribuiranog sustsust..3.3. VideoVideo--mekmekšša varijantaa varijanta realreal--timetimeOS mora koristiti OS mora koristiti krukružžno posluno poslužživanje (ivanje (““roundround--robinrobin””))
zaza izvrizvrššenje programaenje programa, p, prioritetno raspoređivanje rioritetno raspoređivanje zaza video,video, te te poziv udaljene procedure za aktivnost u poziv udaljene procedure za aktivnost u udaljenom udaljenom ččvoru RPC (Remotevoru RPC (Remote ProcedureProcedure Call).Call).
108
Prema tome moderni Prema tome moderni OS*OS*•• Koristi strategije i tehnikeKoristi strategije i tehnike batchbatch obrade,obrade, multiprogramiranjamultiprogramiranja, ,
podjele vremena,podjele vremena, realreal time i distribuiranih OStime i distribuiranih OS--a.a. NemoNemožžee koristiti koristiti razlirazliččite strategije za razliite strategije za različčite tipove procesa nego upotrebljava ite tipove procesa nego upotrebljava jedinstvenu kompleksnu strategiju koja se prilagođava svakom jedinstvenu kompleksnu strategiju koja se prilagođava svakom individualnom procesu. individualnom procesu.
•• Raspoređivanje na poRaspoređivanje na poččetku moetku možže biti temeljeno na prioritetu kao e biti temeljeno na prioritetu kao uu multiprogramiranjumultiprogramiranju, ali se temeljem pro, ali se temeljem proššlog ponalog ponaššanja moanja možže e odluodluččiti o tekuiti o tekuććem prioritetu.em prioritetu.
•• PrioritetPrioritet:: RealReal time time –– najvenajveććiiInteraktivni procesi Interaktivni procesi –– srednjisrednjiNonNon--interaktivni procesi interaktivni procesi -- najninajnižži i
BitBit modernog OSmodernog OS--a je u fleksibilnosti i mogua je u fleksibilnosti i moguććnostinostiprilagođavanja strategije zahtjevima procesaprilagođavanja strategije zahtjevima procesa..
*Vidi slide No *Vidi slide No 9696
216216
The EndThe End
109
Operacijski sustaviOperacijski sustavi
Procesi i dretveProcesi i dretve
218218
•• Kako bi ostvario maksimalnu uKako bi ostvario maksimalnu uččinkovitost i inkovitost i ispunio korisnikove potrebe OS izvrispunio korisnikove potrebe OS izvrššava ava mnoge aktivnosti mnoge aktivnosti ““istovremenoistovremeno”” (paralelno (paralelno --simultano).simultano).
•• Koristi Koristi apstraktne pojmoveapstraktne pojmove ””procesproces”” ii““dretvadretva”” kako bi pratio i upravljao paralelnim kako bi pratio i upravljao paralelnim aktivnostima. aktivnostima.
110
219219
Mnogi sustavi u prirodi imaju mogućnost izvoditi više aktivnosti istovremeno.
Ljudsko tijelo izvršava razne aktivnosti paralelno odnosno“konkurentno”-istovremeno: disanje, cirkulacija, razmišljanje, šetnja, probava a može i istovremeno aktivirati osjetila: pogled, opip, miris, okus, sluh.
Računalo također: uobičajeno može “istovremeno”prevoditi program, slati datoteku na pisač, tražiti Webstranicu, prikazivati video isječak te u “istom” trenutkuprimati e-poštu.
220220
RazRazččlamba programa lamba programa
•• Program na procese, proces na dretveProgram na procese, proces na dretve•• RaRaččunalo koristan zadatak izvođenjem programa unalo koristan zadatak izvođenjem programa
pisanih u vipisanih u viššem programskom jezikuem programskom jeziku•• Kada se program, Kada se program, prevedeprevede u strojni u strojni oblik ioblik i pokrene pokrene
dobiva vremenske dobiva vremenske atribute:atribute: popoččetaketak, trajanje, , trajanje, zavrzavrššetak.etak.
•• Program u izvođenju se Program u izvođenju se zovezove raraččunalnim procesom unalnim procesom iliili samo samo procesom.procesom.
111
221221
•• U raznim fazama U raznim fazama svog odvijanjasvog odvijanja procesiprocesikoristekoriste razlirazliččite dijelove raite dijelove raččunalnog sustava unalnog sustava pa je svrsishodno posao organizirati tako da pa je svrsishodno posao organizirati tako da se u istom vremenskom razdoblju izvodi se u istom vremenskom razdoblju izvodi vivišše e programa kako bi se poveprograma kako bi se poveććala ala mogumoguććnost simultanog korinost simultanog korišštenja resursa.tenja resursa.
•• ViVišše procesa moe procesa možže istodobno napredovati e istodobno napredovati ako se odvijaju u razliako se odvijaju u različčitim dijelovima itim dijelovima raraččunalnog sustava, pa ako na pr. jedan unalnog sustava, pa ako na pr. jedan proces proces ččeka na zavreka na završšetak ulazne operacije etak ulazne operacije kako bi nastavio sa izrakako bi nastavio sa izraččunavanjem, drugi unavanjem, drugi za to vrijeme moza to vrijeme možže izvoditi svoje naredbe.e izvoditi svoje naredbe.
222222
•• Pojedini, jasno razluPojedini, jasno razluččivi dijelovi ivi dijelovi sklopovlja rasklopovlja raččunalaunalanazivaju senazivaju se raraččunalnim sredstvima unalnim sredstvima iliili sredstvima sredstvima ((resourcesresources))
•• ViViššezadaezadaččnini ili ili viviššeprogramskieprogramski rad (rad (multitaskingmultitasking, , multiprogramingmultiprograming)) omoguomoguććuje:uje:
1.1. BoljeBolje korikorišštenje svih sredstava ratenje svih sredstava raččunalnog unalnog sustavasustava
2.2. OlakOlakššavaava organizacijuorganizaciju poslova u raposlova u raččunalnom unalnom sustavusustavu
OdvijanjeOdvijanje procesa vrprocesa vršši se izvođenjem njegovog i se izvođenjem njegovog podnizapodnizanaredbi naredbi tjtj. i. izvođenjem zvođenjem njegovihnjegovih dretvi.dretvi.Da bi proces bio aktivan moraDa bi proces bio aktivan mora biti prepoznatljivabiti prepoznatljiva barembaremjednajedna dretva.dretva.
112
223223
NaredbeNaredbePodatci Podatci
StogStog
PisaPisaččCPUCPU
Program PProgram PPodatci PPodatci P Adresni prostor
programa P
Da bi izvršio program P mora OS rezervirati u memoriji njegov adresni prostor (stog je naziv dijela memorije namijenjen smještaju tekućih sadržaja registara), pridružiti pisač, osigurati vezu s podatcima P na disku te rasporediti P za izvršenje. CPU je nacrtan isprekidano jer on ne izvršava stalno program P budući ga OS dijeli između P-a i ostalih programa.
Program je “bezživotni” entitet. Tek kad mu OS dodijeli procesor i vrijeme odnosno “udahne” životpostane aktivan entitet koji se zove proces.
224224
RARAČČUNALNI PROCESUNALNI PROCES
•• Program napisanProgram napisan nana papiru je statipapiru je statiččka ka tvorevina.tvorevina.•• Kada se smjesti u radni spremnik te pokrene (dobije Kada se smjesti u radni spremnik te pokrene (dobije
vrijeme) postane dinamivrijeme) postane dinamiččan t.j.an t.j. postaje postaje proces.proces.•• To nije samo izvođenje naredbi veTo nije samo izvođenje naredbi većć i sve ostale i sve ostale
popratne radnje.popratne radnje.•• OS mora osigurati sve uvjete za OS mora osigurati sve uvjete za nesmetano odvijanjenesmetano odvijanje
procesaprocesa -- t.jt.j. s. spremnipremniččki prostor i ki prostor i procesor procesor te ostale te ostale resurse na zahtjev.resurse na zahtjev.
113
225225
Definicija Definicija (prvi puta u MULTICS(prvi puta u MULTICS--u 60u 60--tih)tih)
•• ProcesProces ((tasktask) .. p) .. program u izvođenjurogram u izvođenjumanifestiran je manifestiran je (opisan) postojanjem(opisan) postojanjemstrukture podataka strukture podataka tzvtzv. . ““proces proces descriptordescriptor””ili ili ““ProcesProces ControlControl BlockBlock”” PCBPCB a pridrua pridružženi eni su mu su mu procesorprocesor (i) i izvr(i) i izvrššne ne U/IU/I jedinice.jedinice.ProgramProgram u izvru izvrššenju: enju: note muzikanote muzika
•• ProcesProces je entitet koji ima vlastiti adresni je entitet koji ima vlastiti adresni prostor prostor koji se sastoji odkoji se sastoji od 3 dijela: 3 dijela: tekst (naredbe),tekst (naredbe), podatcipodatci i stogi stog. .
226226
Adresni prostor procesaAdresni prostor procesa
•• TekstTekst.. sadr.. sadržži naredbe koje procesor i naredbe koje procesor izvrizvrššavaava
•• PodatciPodatci..varijable..varijable i dinamii dinamiččki ki pridrupridružženieni dijelovi radnogdijelovi radnogspremnika koje procesor spremnika koje procesor koristi u izvrkoristi u izvrššenjuenju
•• StogStog.. Sadr.. Sadržži i lokalnelokalne varijable aktivnih varijable aktivnih proceduraprocedura. . VeliVeliččinaina se povese poveććava brojem ava brojem aktivnihaktivnih aasmanjujesmanjuje brojem procedura brojem procedura koje predajukoje predajukontrolu nakon zavrkontrolu nakon završšetka. etka.
114
227227
ProcesProces ProcesProces ProcesProces
Konkurentni programKonkurentni program
DretvaDretvaDretvaDretva DretvaDretva
SekvencijalniSekvencijalniprogramprogram
ProcesProces
ProcesProces
ProcesProcesDretvaDretva
DretvaDretva
DretvaDretva
OS koristi procese kako bi postigao izvršenje programabilo konkurentno bilo sekvencijalno.
RRAAZZČČLLAAMMBBAA
228228
•• Za postojanje uistinu konkurentnih Za postojanje uistinu konkurentnih --simultanih sustava potrebno je isto toliko simultanih sustava potrebno je isto toliko procesora koliko i procesa. procesora koliko i procesa.
•• OS mora osigurati svakom procesu OS mora osigurati svakom procesu dovoljnu kolidovoljnu količčinu procesorskog vremena.inu procesorskog vremena.
115
229229
Opisnik Opisnik -- PCB(Process Control block)PCB(Process Control block)
•• Dio strukture podataka jezgre koja koristi Dio strukture podataka jezgre koja koristi 33osnovne funkcijeosnovne funkcije da bi kontrolirala procese:da bi kontrolirala procese:
1.1. Planiranje (Scheduling) slijedePlaniranje (Scheduling) slijedeććeg aktivnog eg aktivnog procesa temeljem nekog algoritmaprocesa temeljem nekog algoritma
2.2. PoPoččetak/nastavak izabranog procesa dodjelom etak/nastavak izabranog procesa dodjelom procesorskog vremena (Dispatching)procesorskog vremena (Dispatching)
3.3. Spremanje informacije o aktivnom procesu Spremanje informacije o aktivnom procesu kada je njegovo izvrkada je njegovo izvrššenje prekinuto (Context enje prekinuto (Context switching) switching)
230230
Osnovne funkcije kontrole procesa
Spremanje informacije
Planiranje procesa
Početak/nastavak procesa
Obrada događaja
Događaj
116
231231
OpisnikOpisnik-- ProcessProcess ControlControl BockBock--PCBPCB((ProcessProcess Descriptors)Descriptors)
Proces tableProces tablePID PCBPID PCB1122........nn
Process Control BlockProcess Control Block
Program CounterProgram CounterRegistersRegistersState (run,ready,blocked)State (run,ready,blocked)PriorityPriorityAddress spaceAddress spaceParentParentChildrenChildrenOpen FilesOpen FilesPSWPSW....Other FlagsOther Flags
Programsko brojiloProgramsko brojiloRegistriRegistriStanje (aktivan,spreman Stanje (aktivan,spreman
blokiran)blokiran)PrioritetPrioritetAdresni prostorAdresni prostorRoditeljiRoditeljiDjecaDjecaOtvorene datotekeOtvorene datotekePSW*PSW*....Ostale zastaviceOstale zastavice
Proc IDentJedinstv broj
*Vidi *Vidi 0101--02 Uvod 02 Uvod slide No 7slide No 755
Operacije procesa Operacije procesa
ChangeChange priority priority (Promijeni prioritet)(Promijeni prioritet)
EnableEnable interproc comminterproc commOmoguOmogućći interproc komi interproc kom
Resume Resume (Nastavi)(Nastavi)
DispatchDispatch(Dodijeli vrijeme)(Dodijeli vrijeme)
Suspend Suspend (Zaustavi)(Zaustavi)
WakeWake upup(Probudi)(Probudi)
Destroy Destroy (Uni(Uniššti)ti)
BlockBlock(Blokiraj)(Blokiraj)
Create Create (Stvori)(Stvori)
117
233233
Zamjena stanja Zamjena stanja -- OSOS zaustavlja tekuzaustavlja tekućći proces i zapoi proces i započčinjeinjeizvrizvrššavanje prethodnog spremnog (avanje prethodnog spremnog (readyready) procesa ) procesa
P1P1
P2P2
P1P1
ProcesorProcesor
ProcesorProcesor
P1 aktivanP1 aktivan
Poslije prekidaPoslije prekidajezgra odlujezgra odluččujeujeaktiviratiaktivirati novinoviproces i proces i zapozapoččimaimazamjenu stanjazamjenu stanja
P2 aktivanP2 aktivan
GlavniGlavnispremnikspremnik
ProcesProcesP1 PCBP1 PCB
ProcesProcesP2 PCBP2 PCBJezgra puniJezgra puni
PCB procesa P2PCB procesa P2iz njegove adreseiz njegove adreseu glavnom spremnikuu glavnom spremniku
Zamjena stanja Zamjena stanja -- Context switchingContext switching
234234
Stanje procesa: Stanje procesa: žživotni ciklusivotni ciklus•• ZaZa vrijeme svog vrijeme svog žživotnog ciklusa proces ivotnog ciklusa proces •• prolaziprolazi kroz seriju diskretnih kroz seriju diskretnih stanjastanja::
1.1. Aktivan (running)Aktivan (running) ...... dodijeljen mu je CPUdodijeljen mu je CPU
2.2. Spreman (ready)Spreman (ready) ..... ..... ččeka na dodjelu CPUeka na dodjelu CPU
3.3. Blokirani (Blocked)Blokirani (Blocked)... ... ččeka na neki događajeka na neki događaj
OS OS odrodržžava popise (liste):ava popise (liste):1.1. Spremnih (ready)Spremnih (ready) ...... ...... slosložženaena po po prioritetimaprioritetima
2.2. Blokiranih (blocked)Blokiranih (blocked) ...... nijenije slosložženaena
118
235235
AktivniAktivniTekuTekuććii
RunnungRunnung
SpremniSpremniReadyReady BlokiraniBlokirani
BlockedBlocked
Dodjela vremenaDodjela vremenaDispatchDispatch Blokiraj Blokiraj ––
ČČeka resurs ili vrijemeeka resurs ili vrijemeBlockBlockIsteklo vrijemeIsteklo vrijeme
Zamjena procesaZamjena procesaTimer runoutTimer runout
Probudi Probudi -- Wake upWake upDodijeljen resurs iliDodijeljen resurs ilizavrzavrššeno eno ččekanjeekanje
ProbuđenProbuđen BlokiranBlokiran--na spavanjuna spavanju
Osnovna prijelazna stanja procesaOsnovna prijelazna stanja procesa
Noviproces
Gotovproces
Inicira OSInicira OS Inicira procesInicira proces
236236
•Kad korisnik započne program, stvaraju se procesi koji se upisuju na Listu Spremnih (Ready) i pomiču prema vrhu liste kako seprocesi ispred u redosljedu završavaju.
•Kada proces stigne na vrh liste čeka da mu se dodijeli procesor.
•Za prelaz iz spremnog u aktivno stanje (State Transition) zadužen je entitet jezgrea samo pridruživanje procesora prvom procesu na listi spremnih zove se dodjela vremena.*
*Vidi 01-02 Uvod slide No 71
119
237237
Zaustavi Zaustavi -- NastaviNastavi
•• su dva dodatna prelazna stanja koja su se su dva dodatna prelazna stanja koja su se nekada vrnekada vrššila ruila ruččno intervencijom operatera a s no intervencijom operatera a s vremenom su automatizirana.vremenom su automatizirana.
•• Predstavljaju i danas moguPredstavljaju i danas moguććnost vremenskog nost vremenskog odgađanjaodgađanja aktivnosti umjesto aktivnosti umjesto prekida (abort),prekida (abort),u sluu sluččaju otkrivanja nekih malicioznih prijetnji aju otkrivanja nekih malicioznih prijetnji te prilikom testiranja.te prilikom testiranja.
238238
SpremniSpremniReadyReady
ZaustavljenZaustavljenspremanspreman
SuspSusp--readyready
ZaustavljenZaustavljenBlokiranBlokiran
SuspSusp--blockedblockedZavrZavrššen U/Ien U/I ili događaj ili događaj
Prijelazna stanja procesa Prijelazna stanja procesa ZaustaviZaustavi--NastaviNastavi
AktivniAktivniTekuTekuććii
RunnungRunnung
BlokiraniBlokiraniBlockedBlocked
Zaus
tavi
Zaus
tavi
Zaus
tavi
Zaus
tavi
Nas
tavi
Nas
tavi
Dodijeli
Dodijeli vrijemevrijemeIsteklo
Isteklo vrijeme
vrijeme
ZavrZavrššen U/Ien U/I ili događaj ili događaj
Aktivnastanja
Zaustavljenastanja
Nas
tavi
Nas
tavi
Zaus
tavi
Zaus
tavi
ČČekanje UI
ekanje UI
ili d
ogađaj
ili d
ogađaj
120
239239
Ada Ada -- progamski jezikprogamski jezikLady Lady AdaAda Lovelace, Lovelace, kkććer Lorda Byronaer Lorda Byrona
•• Ada je nastao 1970Ada je nastao 1970--tih i ranih 80tih i ranih 80--tih unutar US tih unutar US Department of Defence DoD a bio je jedan od Department of Defence DoD a bio je jedan od prvih jezika koji su omoguprvih jezika koji su omoguććili explicitno ili explicitno konkurentne funkcionalne module.konkurentne funkcionalne module.
•• Rani OS su omoguRani OS su omoguććavali raavali raččunalima izvrunalima izvrššenje enje vivišše programa konkurentno, ali tadae programa konkurentno, ali tadaššnji nji programski jezici nisu omoguprogramski jezici nisu omoguććavali programeavali programe--rima specificirati konkurentne aktivnosti unutar rima specificirati konkurentne aktivnosti unutar istog programa.istog programa.
240240
Danas su programski jezici Danas su programski jezici
•• Java Java •• C#C#•• Visual C++.NetVisual C++.Net•• Visual basic.NetVisual basic.Net•• PythonPythonstavili na raspolaganje konkurentne modulestavili na raspolaganje konkurentne module(primitives) koji omogu(primitives) koji omoguććuju programiranje dijelovauju programiranje dijelovaprograma kao dretve te konkurentno izvođenje saprograma kao dretve te konkurentno izvođenje saostalim dretvama u okruostalim dretvama u okružženju (multithread). enju (multithread). One verzije C i C++ koje to pruOne verzije C i C++ koje to pružžaju nisu dioaju nisu dioANSI/ISO standarda. ANSI/ISO standarda.
121
241241
Pisanje takvih programa moPisanje takvih programa možže biti zamre biti zamrššeno, iako eno, iako ljudski um moljudski um možže izvre izvrššavati viavati višše funkcija istovremeno.e funkcija istovremeno.
A B CA B C
11
2211
22
11
22
Index K=AIndex R=1
Ponovi Čitaj R(A)Čitaj R(B)Čitaj R(C)R=R+1Ako nije ZstrGo to PonoviEnd
Izbor knjigeIzbor retkaKratko čitanjePamćenje Povezati sadržaj
242242
Dretva Dretva –– nit (thread)nit (thread)
•• predstavlja takav napredstavlja takav naččin izvrin izvrššenja aktivnosti koje koristi enja aktivnosti koje koristi postojepostojećće okrue okružženje procesa:enje procesa:
naredbe, podatke i resurse.naredbe, podatke i resurse.
•• Ako viAko višše dretvi koristi okrue dretvi koristi okružženje istog procesa one dijeleenje istog procesa one dijelenjegove naredbe, podatke i resurse.njegove naredbe, podatke i resurse.
•• OS koristi tu OS koristi tu ččinjenicu da bi smanjio svoj injenicu da bi smanjio svoj ““overheadoverhead””, to jest, to jestoptereoptereććenje raenje raččunala vremenom i prostorom uslijed aktivnosti unala vremenom i prostorom uslijed aktivnosti samog OSsamog OS--a a koje se troa a koje se trošši na prebacivanje aktivnosti između i na prebacivanje aktivnosti između dretvi. dretvi.
122
243243
Dretva Dretva
•• ProcesiProcesi--zadacizadaci se dijele u se dijele u podzadatkepodzadatke::1. 1. LakLakššee se savladava slose savladava složženost enost programskihprogramskih
sustavasustava2.2. UnutarUnutar jednog procesa bolje se koriste jednog procesa bolje se koriste raraččunalnaunalna
sredstva sredstva –– resursi.resursi.
U operacijske sustave U operacijske sustave su uvedenisu uvedeni mehanizmi kojimehanizmi kojipodrpodržžavaju izvođenje procesa s viavaju izvođenje procesa s višše paralelnihe paralelnihdretvi ilidretvi ili viviššedretvenostedretvenost ((multithreadingmultithreading))ZajedniZajedniččko svim modernimko svim modernim OS.OS.
244244
•• DretveDretve unutar jednog procesa dijele sva unutar jednog procesa dijele sva sredstvasredstva koja im koja im OSOS stavistavi na raspolaganje na raspolaganje uu tom procesu, posebice adresni prostor.tom procesu, posebice adresni prostor.
•• Dretve unutar jednog procesa mogu Dretve unutar jednog procesa mogu neposredno pristupiti do svih adresa adresnog neposredno pristupiti do svih adresa adresnog prostora svog procesa.prostora svog procesa.
•• MeđutimMeđutim, dva procesa ne mogu jedan drugome , dva procesa ne mogu jedan drugome neposredno adresirati varijable. neposredno adresirati varijable. Ako je potrebno Ako je potrebno izvrizvrššitiiti razmjenu podataka razmjenu podataka između dva procesaizmeđu dva procesa, onda se to , onda se to ččini posredno ini posredno pomopomoćću mehanizma koje osigurava OS.u mehanizma koje osigurava OS.
123
245245
Odvijanje procesaOdvijanje procesa
•• Izvodi se dretva: naredba za Izvodi se dretva: naredba za naredbomnaredbom
•• Ako raAko raččunalo ima viunalo ima višše procesora moe procesora možže se e se izvoditi i viizvoditi i višše dretvi istovremenoe dretvi istovremeno
•• SpremnikSpremnik se dijeli tako da svaka dretva se dijeli tako da svaka dretva dobije svoj dio adresnog prostora iz kojeg dobije svoj dio adresnog prostora iz kojeg pripadni procesor pripadni procesor ččita (dohvaita (dohvaćća) naredbe i a) naredbe i podatke.podatke.
246246
PROCESPROCES
Adresni prostorAdresni prostorGlobalni podatci procesaGlobalni podatci procesa........................
TSD ThreadTSD Thread--Specific DataSpecific Data
RegistriRegistriStogStogMaskaMaskaTSDTSD
RegistriRegistriStogStogMaskaMaskaTSDTSD
RegistriRegistriStogStogMaskaMaskaTSDTSD
Zajednički podatcisvim dretvama
u procesu
Lokalni podatcipojedinedretve
124
247247
Razlog projektiranja dretviRazlog projektiranja dretvi
•• Projektiranje softwareaProjektiranje softwarea .. Obzirom na .. Obzirom na modularnost projektiranja prevodioca modularnost projektiranja prevodioca (compiler) mnogi dana(compiler) mnogi današšnji primjenski programi nji primjenski programi sadrsadržže dijelove koji se mogu izvre dijelove koji se mogu izvrššavati avati nezavisno od ostatka. nezavisno od ostatka.
•• Odvajanje nezavisnih dijelova koda u pojedine Odvajanje nezavisnih dijelova koda u pojedine dretve modretve možže pobolje poboljššati ponaati ponaššanje programa te anje programa te u svezi s time i pojednostaviti prikazivanje u svezi s time i pojednostaviti prikazivanje paralelnih aktivnosti.paralelnih aktivnosti.
248248
Razlog projektiranja dretviRazlog projektiranja dretvi
•• UUččinkovitost inkovitost .. Programi samo s jednom .. Programi samo s jednom dretvom nemogu se izvrdretvom nemogu se izvrššavati na viavati na viššeprocesoreprocesor--skim sustavima veskim sustavima većć samo na jednoprocesorskim samo na jednoprocesorskim i to sekvencijalno. U vii to sekvencijalno. U viššedretvenim programima edretvenim programima dretve mogu dijeliti procesor(e) tako da se dretve mogu dijeliti procesor(e) tako da se viviššestruke aktivnosti mogu izvrestruke aktivnosti mogu izvrššavati paralelno avati paralelno ššto moto možže znae značčajno smanjiti ukupno vrijeme ajno smanjiti ukupno vrijeme potrebno za zavrpotrebno za završšetak procesa etak procesa -- aktivnosti. aktivnosti.
125
249249
Razlog projektiranja dretviRazlog projektiranja dretvi
•• Kooperacija Kooperacija .. Mnogi primjenski programi su .. Mnogi primjenski programi su temeljeni na nezavisnim komponentama koje temeljeni na nezavisnim komponentama koje moraju međusobni komunicirati te biti moraju međusobni komunicirati te biti sinkronizirane. Ponasinkronizirane. Ponaššanje vianje viššedretvenih edretvenih paralelnih sustava u odnosu na procese ima paralelnih sustava u odnosu na procese ima prednost jer se međusobno komuniciranje prednost jer se međusobno komuniciranje odvija unutar zajedniodvija unutar zajedniččkog adresnog prostora.kog adresnog prostora.
250250
U danaU današšnjim ranjim raččunalima su viunalima su viššedretvene aktivnosti nezaobilazne.edretvene aktivnosti nezaobilazne.Web server: prima udaljene zahtjeve za Web stranicama, Web server: prima udaljene zahtjeve za Web stranicama,
slikama i drugim datotekama. Server odgovara na svakislikama i drugim datotekama. Server odgovara na svakizahtjev odvojenim dretvama. Proces koji prima zahtjevzahtjev odvojenim dretvama. Proces koji prima zahtjevsadrsadržži jednu dretvu i jednu dretvu ““roditeljaroditelja”” koja koja ““slusluššaa”” ulazne pozive.ulazne pozive.Za svaki zahtjev inicira se nova dretva Za svaki zahtjev inicira se nova dretva ““dijetedijete”” koja ga koja ga
analizira, pronanalizira, pronađe stranicu te ju ađe stranicu te ju ššalje klijentu. Nakon iniciranja alje klijentu. Nakon iniciranja nove dretve nove dretve “dijetedijete”” , ““roditeljroditelj”” momožže nastaviti e nastaviti ““slusluššatiati”” druge druge zahtjeve. Buduzahtjeve. Budućći su Web serveri multiprocesorski sustavi i su Web serveri multiprocesorski sustavi viviššekratni se zahtjevi mogu ispunjavati konkurentno od strane ekratni se zahtjevi mogu ispunjavati konkurentno od strane razlirazliččitih dretvi poboljitih dretvi poboljššavajuavajućći i protok i odgovor rai i protok i odgovor raččunalnog unalnog sustava.sustava.““OverheadOverhead”” koji se javlja zbog Stvaranja (Create) i Unikoji se javlja zbog Stvaranja (Create) i Unišštenja tenja (Distroy) dretvi kako bi se poslu(Distroy) dretvi kako bi se poslužžio svaki zahtjev je znaio svaki zahtjev je značčajan. ajan. Zbog toga serveri odrZbog toga serveri održžavaju niz (pool) dretvi koje se dodjeljuju avaju niz (pool) dretvi koje se dodjeljuju novim zahtjevima kada stignu. Te se dretve nakon akcije ne novim zahtjevima kada stignu. Te se dretve nakon akcije ne uniunišštavaju vetavaju većć se vrase vraććaju natrag u niz. aju natrag u niz.
126
251251
Word procesoriWord procesoriKoriste dretve u smislu poveKoriste dretve u smislu poveććanja produktivnosti i anja produktivnosti i poboljpoboljššanja interaktivnosti. Svaki puta kada anja interaktivnosti. Svaki puta kada korisnik pritisne slovo na tipkovnici, OS dobivakorisnik pritisne slovo na tipkovnici, OS dobiva
signal prekida koji pretvara u prekid Word procesoru.signal prekida koji pretvara u prekid Word procesoru.Word procesor odgovara spremanjem znaka u memorijuWord procesor odgovara spremanjem znaka u memorijute prikazivanjem na zaslonu. Kako danas rate prikazivanjem na zaslonu. Kako danas raččunalaunalaizvrizvrššavaju stotine miliona procesorskih naredbi izmeđuavaju stotine miliona procesorskih naredbi izmeđudva utipkana znaka, Word procesor modva utipkana znaka, Word procesor možže izvre izvrššavati uavati umeđuvremenu razne druge dretve međuvremenu razne druge dretve (ispravak gramatike,(ispravak gramatike,spaspaššavanje podataka) iako mu napr. jedna dretva moavanje podataka) iako mu napr. jedna dretva možžeebiti blokirana uslijed U/I operacije.biti blokirana uslijed U/I operacije.
252252
Naredbena dretvaNaredbena dretva
•• SadrSadržžaj spremnika se dijeli u 3 dijela:aj spremnika se dijeli u 3 dijela:1.1. Dio u kojem se nalazi programDio u kojem se nalazi program--niz naredbiniz naredbi2.2. Dio rezerviran za stog Dio rezerviran za stog 3.3. Dio za smjeDio za smješštanje podatakatanje podataka•• SadrSadržžaji su u procesoru smjeaji su u procesoru smješšteni u registre:teni u registre:1.1. Programsko brojiloProgramsko brojilo2.2. Registar stanjaRegistar stanja3.3. Registar kazaljke stogaRegistar kazaljke stoga4.4. Registri za pohranjivanje podataka i adresa Registri za pohranjivanje podataka i adresa
127
253253
Spremnik i procesor Spremnik i procesor ––radno okruradno okružženje za izvođenje niza enje za izvođenje niza naredbinaredbi
•• Procesor provlaProcesor provlaččii naredbenu dretvu ili dretvu (naredbenu dretvu ili dretvu (threadthread))kroz niz naredbi.kroz niz naredbi.
SPREMNIK
Strojne naredbe
Podatci
Stog
PROCESOR
Registriprocesora
254254
Petlja Potprogram
DRETVA
128
255255
ViViššeprocesorska raeprocesorska raččunalaunala
•• U raU raččunalima s viunalima s višše procesora (vie procesora (viššeprocesorska raeprocesorska raččunala) unala) momožže se proces podijeliti na vie se proces podijeliti na višše dretvi.e dretvi.
Svaki procesor Svaki procesor ““provlaprovlaččii”” svoju dretvu kroz naredbe i tako nekisvoju dretvu kroz naredbe i tako nekizajednizajedniččki posao moki posao možže biti bre biti bržže obavljene obavljen--multithreadingmultithreading..
•• ViViššedretveniedretveni se rad mose rad možže provesti i u jednoprocesorskom e provesti i u jednoprocesorskom raraččunalu i to tako da jedini procesor naizmjence izvodi sve unalu i to tako da jedini procesor naizmjence izvodi sve dretve dretve -- vrijeme se podijeli između vi vrijeme se podijeli između višše dretvi tako da se e dretvi tako da se one one ““prividnoprividno”” izvađaju izvađaju istovremenoistovremeno--simultano.simultano.
•• SadrSadržžaj registara procesora aj registara procesora -- tzvtzv.. kontekst dretve kontekst dretve trebatrebapri prekidanju izvođenja jedne dretve pohraniti izvan pri prekidanju izvođenja jedne dretve pohraniti izvan procesoraprocesora i u registre staviti sadri u registre staviti sadržžaj dretve koju se aj dretve koju se žželi eli pokrenuti. pokrenuti.
256256
SPREMNIK Dretva 1
Dretva 2
Dretva 3
PROCESOR 2
PROCESOR 3
PROCESOR 1Registri procesora
Registri procesora
Registri procesora
Više procesora
129
257257
SPREMNIK Dretva 1
Dretva 2
Dretva 3
PROCESOR
Kontekstdretve 1
Kontekstdretve 3
Registri procesora
Kontekstdretve 2
Jedan procesor
“crtkano” podrazumijeva naizmjence
258258
ZakljuZaključčakak
•• U jednoprocesorskom sustavu se U jednoprocesorskom sustavu se viviššedretvenoedretvenoššććuu ne postine postižže ubrzanje e ubrzanje odvijanja procesa, ali se moodvijanja procesa, ali se možže postie postićći da i da proces izvodi jednu od dretvi dok druga proces izvodi jednu od dretvi dok druga ččeka zbog nekog razlogaeka zbog nekog razloga
•• Ako se promjena sadrAko se promjena sadržžaja procesa obavi aja procesa obavi ispravno stvara se privid da svaka dretva ispravno stvara se privid da svaka dretva ima ima ““vlastitivlastiti”” procesor procesor
•• Promjena konteksta dretve je temeljni Promjena konteksta dretve je temeljni mehanizam na kojem pomehanizam na kojem poččiva ostvarenje iva ostvarenje svih funkcija OSsvih funkcija OS--a. a.
130
259259
TheThe ENDEND
260260
Processes and ThreadsProcesses and Threads
•• There is nothing more requisite in There is nothing more requisite in business than dispatch.business than dispatch.(Ni(Niššta nije nuta nije nužžnije u poslu od hitnog nije u poslu od hitnog izvrizvrššenja).enja).
•• Learn to labor and to wait.Learn to labor and to wait.(U(Učči se raditi i i se raditi i ččekati)ekati)
131
261261
Dretva (Thread)Dretva (Thread)
The spiderThe spider’’s touch, how esquisitely fine!s touch, how esquisitely fine!Feels at each Feels at each threadthread, and lives along the line., and lives along the line.(Alexander Pope)(Alexander Pope)
You cannot conceive the many without the one.You cannot conceive the many without the one.(Platon)(Platon)
Operacijski sustaviOperacijski sustavi
ViViššedretveno izvredretveno izvrššenje zadatakaenje zadataka
132
263263
SustavSustav podzadatakapodzadataka
•• Ima smisla ako se pri planiranju Ima smisla ako se pri planiranju ostvarenjaostvarenjaprepoznajuprepoznaju jasno razlujasno razluččive ive cjeline odnosno cjeline odnosno podzadatkepodzadatke kao na kao na primjer:primjer:
1.1. ččitanjeitanje ulaznih ulaznih podatakapodataka2.2. obraduobradu3.3. obavljanjeobavljanje izlaznih izlaznih operacijaoperacija
264264
•• Ti se Ti se podzadatcipodzadatci unutar jednog zadatka unutar jednog zadatka moraju obavljati moraju obavljati navedenimnavedenim redoslijedom.redoslijedom.
•• Međutim ako se programski Međutim ako se programski zadatcizadatciponavljaju onda se ponavljaju onda se pojedinipojedini podzadatcipodzadatcimogu obavljati istodobno (paralelno) mogu obavljati istodobno (paralelno) odnosno vremenski preklapati.odnosno vremenski preklapati.
133
265265
NaNaččelo cjevovodnog radaelo cjevovodnog rada
A B C D E F GA B C D E F G
A B C D E FA B C D E F
A B C D EA B C D E
Ulazna dretvaUlazna dretva
Radna dretvaRadna dretva
Izlazna dretvaIzlazna dretva
Ne moNe možže se oe se oččekivati da ekivati da ćće pojedine faze e pojedine faze viviššedretvenogedretvenog ostvarenja ostvarenja opisanog zadatka trajati jednako. Zbog toga je potrebno predvidjopisanog zadatka trajati jednako. Zbog toga je potrebno predvidjetietimehanizme mehanizme sinkronizacijesinkronizacije dretvi.dretvi.
266266
SinkronizacijaSinkronizacija•• Ulazna dretva mora nekako dojaviti radnoj dretvi da Ulazna dretva mora nekako dojaviti radnoj dretvi da
su ulaznisu ulazni podatci stiglipodatci stigli
1.1. Ako je radna dretva u tom trenutku zauzeta Ako je radna dretva u tom trenutku zauzeta obradom podataka obradom podataka prethodnogprethodnog zadatkazadatka,, novi se novi se podaci moraju podaci moraju negdje privremenonegdje privremeno pohranitipohraniti
2.2. Ako je radna dretva veAko je radna dretva većć obavila prethodnu obradu, obavila prethodnu obradu, ona se dolaskom novih podataka odmah pokreona se dolaskom novih podataka odmah pokrećće.e.
IstoIsto vavažži i za sinkronizaciju radne i izlazne dretve.i i za sinkronizaciju radne i izlazne dretve.Mehanizam međusobnog iskljuMehanizam međusobnog isključčivanja ivanja ((mutualmutual exclusionexclusion))osigurava da dretve mogu nesmetano jedna od drugeosigurava da dretve mogu nesmetano jedna od drugepristupiti nekom sredstvu. pristupiti nekom sredstvu.
134
267267
Model Model viviššedretvenostiedretvenosti•• Proces koji raspolaProces koji raspolažže svim e svim resursimaresursima za svoje za svoje
izvođenje ima i svoj adresni prostorizvođenje ima i svoj adresni prostor. Taj prostor . Taj prostor je na raspolaganju svim dretvama tog procesa.je na raspolaganju svim dretvama tog procesa.
•• Svaka dretva zauzima svoj dio adresnog prostora Svaka dretva zauzima svoj dio adresnog prostora a taj je podijeljen na 3 dijela:a taj je podijeljen na 3 dijela:
1.1. Dio u kojem su naredbe dretveDio u kojem su naredbe dretve2.2. Dio u kojem je smjeDio u kojem je smješšten stog dretveten stog dretve3.3. Dio u kojem su smjeDio u kojem su smješšteni lokalni podaci dretveteni lokalni podaci dretveU procesnom adresnom dijelu prostora postoji joU procesnom adresnom dijelu prostora postoji jošš iijedan zajednijedan zajedniččki dio koji mogu dohvaki dio koji mogu dohvaććati sve dretve. ati sve dretve. U tom dijelu prostora smjeU tom dijelu prostora smješštaju se zajednitaju se zajedniččkeke(globalne)(globalne) varijable svih dretvi. varijable svih dretvi.
268268
PROCESPROCES
Adresni prostorAdresni prostorGlobalni podatci procesaGlobalni podatci procesa........................
TSD ThreadTSD Thread--Specific DataSpecific Data
RegistriRegistriStogStogMaskaMaskaTSDTSD
RegistriRegistriStogStogMaskaMaskaTSDTSD
RegistriRegistriStogStogMaskaMaskaTSDTSD
Zajednički podatcisvim dretvama
u procesu
Lokalni podatcipojedinedretve
135
269269
DretveniDretveniprostorprostor
LokalniLokalnipodatcipodatcidretvedretve
StogStogdretvedretve
NaredbeNaredbedretvedretve
ProcesniProcesniprostorprostor
DretveniDretveniprostorprostor
dretvedretve D1D1
DretveniDretveniprostorprostor
dretvedretve D2D2
DretveniDretveniprostorprostor
dretvedretve D3D3
DretveniDretveniprostorprostor
dretvedretve DnDn
ZajedniZajedniččkikiprostorprostor
270270
•• SloSložženi programski zadatak moeni programski zadatak možže se sastojatie se sastojatiod viod višše e podzadatakapodzadataka..
•• Za svaki se par zadataka mora utvrditi Za svaki se par zadataka mora utvrditi zavisnost zavisnost iliili nezavisnostnezavisnost..
•• Ako su Ako su zadatcizadatci zavisni mora se utvrditi zavisni mora se utvrditi redoslijedredoslijed njihova izvođenjanjihova izvođenja..
•• Sustav Sustav podzadatakapodzadataka koji koji ćće se pri izvođenju e se pri izvođenju pretvoriti u sustav dretvi zajednipretvoriti u sustav dretvi zajedniččkim kim ćće e djelovanjem obaviti zadatak. djelovanjem obaviti zadatak. SuradnjomSuradnjomdretvidretvi obavlja se obavlja se cjeloviti procescjeloviti procesrjerješšavanja zadataka.avanja zadataka.
136
271271
Sustav Sustav podzadatakapodzadataka--sustavsustav dretvidretviČČvorovi vorovi -- pojedine dretvepojedine dretveStrelice Strelice -- redoslijed izvođenjaredoslijed izvođenja D1D1
D2D2D3D3
D4D4
D5D5 D6D6
D7D7
D1 D1 << D2, D1 D2, D1 << D3, D1 D3, D1 << D4D4D2 D2 << D5D5D3 D3 << D5, D3 D5, D3 << D6D6D4 D4 << D6D6D5 D5 << D7D7D6 D6 << D7D7
272272
•• RazRazččlanjivanjelanjivanje zadataka na zadataka na podzadatkepodzadatkerazmjerazmješštene na tene na ššto je vito je višše mogue mogućće e paralelnih paralelnih putovaputova je osnovni preduvjet za je osnovni preduvjet za dobro iskoridobro iskorišštenje vitenje viššeprocesorskih sustava.eprocesorskih sustava.
•• Dretve koje se nalaze na paralelnim Dretve koje se nalaze na paralelnim putovimaputovima mogu se izvoditi paralelno.mogu se izvoditi paralelno.
•• Stvarno istodobnoStvarno istodobno ako za svaku od njih ako za svaku od njih stoji na raspolaganju jedan fizistoji na raspolaganju jedan fiziččki procesor ki procesor
•• Prividno istodobnoPrividno istodobno ako se viako se višše njih izvodi e njih izvodi na istom procesoru na istom procesoru
137
273273
•• Paralelizam u izvođenju nekih sloParalelizam u izvođenju nekih složženijih enijih poslova poposlova požželjan je na razini iznad dretvi, to eljan je na razini iznad dretvi, to jest na razini procesa. jest na razini procesa.
•• MoMožže se pretpostaviti da e se pretpostaviti da ćće dretve jednog e dretve jednog procesa biti nezavisne sa svim ili sa velikom procesa biti nezavisne sa svim ili sa velikom veveććinom dretvi drugog procesainom dretvi drugog procesa
274274
•• ZakljuZaključčak ak –– postoje mehanizmi za:postoje mehanizmi za:1.1. Pokretanja dretvi,Pokretanja dretvi,2.2. Zaustavljanje dretvi,Zaustavljanje dretvi,3.3. Sinkronizaciju dretvi.Sinkronizaciju dretvi.
Za zavisne dretve postoje mehanizmi zaZa zavisne dretve postoje mehanizmi zarazmjenu podataka:razmjenu podataka:1.1. Najjednostavnije kada jedna piNajjednostavnije kada jedna pišše e
neposredno u domenu druge dretveneposredno u domenu druge dretve2.2. PomoPomoćću poruka dogovorenog oblika u u poruka dogovorenog oblika u
posebno rezerviranom dijelu zajedniposebno rezerviranom dijelu zajedniččkog kog spremnikaspremnika
138
275275
Suradnja dretviSuradnja dretvi
•• Prethodno je bilo govora o konceptu Prethodno je bilo govora o konceptu ““jedinicejedinice”” za za obradu:obradu: procesi i dretveprocesi i dretve..
•• VeVeććina onoga ina onoga ššto je reto je reččeno za dretve moeno za dretve možže se e se primijeniti i na procese.primijeniti i na procese.
•• Kada se istovremeno viKada se istovremeno višše od jedne dretve izvodi u e od jedne dretve izvodi u raraččunalu onda se kaunalu onda se kažže da su dretve e da su dretve konkurentnekonkurentne..
•• Dvije se dretve mogu odvijati potpuno Dvije se dretve mogu odvijati potpuno nezavisnonezavisno ili ili se mogu izvrse mogu izvrššavati u suradnji avati u suradnji -- kooperacijikooperaciji..
•• Za dvije se dretve kaZa dvije se dretve kažže da se izvre da se izvrššavajuavaju asinkronoasinkronokad se odvijaju nezavisno ali povremeno moraju kad se odvijaju nezavisno ali povremeno moraju komunicirati radi izvrkomunicirati radi izvrššenja enja kooperativnihkooperativnih zadazadaććaa. .
276276
......................•• Kada jedna dretva Kada jedna dretva ččita a druga piita a druga pišše ili obratno e ili obratno
momožže se dogoditi neodređeni rezultate se dogoditi neodređeni rezultat..•• RjeRješšenje: svakoj dretvi dozvoliti iskljuenje: svakoj dretvi dozvoliti isključčivi ivi
(ekskluzivni) pristup dijeljenoj varijabli.(ekskluzivni) pristup dijeljenoj varijabli.•• Dok jedna dretva poveDok jedna dretva poveććava dijeljenu varijablu ava dijeljenu varijablu
sve druge moraju sve druge moraju ččekatiekati--međusobno iskljumeđusobno isključčenjeenje•• Kada Kada jednajedna dretva zavrdretva završši pristup dijeljenoj i pristup dijeljenoj
varijabli OS varijabli OS ćće dozvoliti jednoj od dretvi na e dozvoliti jednoj od dretvi na ččekanju da nastavi (serijski pristup dijeljenoj ekanju da nastavi (serijski pristup dijeljenoj varijabli), pa navarijabli), pa na taj nataj naččin dretvama nije moguin dretvama nije moguććistovremeni pristup dijeljenoj varijabli. istovremeni pristup dijeljenoj varijabli.
139
277277
Primjer ePrimjer e--maila:maila:
•• 2 d2 dretve konkurentno surađuju na zajedniretve konkurentno surađuju na zajedniččkom brojakom brojačču poruka:u poruka:
LOAD LOAD mail mail CountCount ...... iz memorije u registar...... iz memorije u registarADD 1 ADD 1 ....... zbrajanje u registru ....... zbrajanje u registru STORE STORE mailmail CountCount ..... iz registra u memoriju..... iz registra u memoriju
Na pr. trenutno Na pr. trenutno mailmail CountCount = 21687= 21687PrvaPrva:: LOAD + ADD LOAD + ADD >> 21688 ;21688 ; prekinuta nakon ADD prije STOREprekinuta nakon ADD prije STORE
21687 + 1 = 21688 ; u registru 21687 + 1 = 21688 ; u registru mailmail CountCount = 21687 = 21687 DrugaDruga: : LOAD + ADD + LOAD + ADD + StoreStore >> 21688 ; zavr21688 ; završšilaila
21687 + 1 = 21688 ; u memoriji 2168821687 + 1 = 21688 ; u memoriji 21688Prva nastavlja sa STORE:Prva nastavlja sa STORE: iz registra u memorijuiz registra u memoriju
u memoriji 21688 u memoriji 21688 A TREBALOA TREBALO BI BITI 21689 BI BITI 21689 !!??!!??
278278
RjeRješšenje: Sinkronizacijaenje: Sinkronizacija
•• Taj se problem rijeTaj se problem riješšava tako da se svakoj dretvi (i procesu) ava tako da se svakoj dretvi (i procesu) dozvoljavadozvoljava ekskluzivna upotrebaekskluzivna upotreba zajednizajedniččke varijable. Dok ke varijable. Dok jedna povejedna poveććava brojaava brojačč sve ostale koje sve ostale koje žžele uele uččinitiiniti istoisto susuprisiljene prisiljene ččekati (ekati (exclusive useexclusive use).).
•• Kada aktivna dretva zavrKada aktivna dretva završši pristup dijeljenoj varijabli OS i pristup dijeljenoj varijabli OS ćće e omoguomoguććiti nekoj drugoj dretvi koja iti nekoj drugoj dretvi koja ččeka da nastavi.eka da nastavi.
•• Takav pristup dijeljenoj varijabli zove seTakav pristup dijeljenoj varijabli zove se serijskiserijski a dretvamaa dretvamaonemoguonemoguććava da pristupaju dijeljenim podacima istovremeno ava da pristupaju dijeljenim podacima istovremeno vevećć samo jedna po jedna u redoslijedu.samo jedna po jedna u redoslijedu.
•• Takav se postupak zoveTakav se postupak zove međusobno iskljumeđusobno isključčenjeenje ((mutualmutualexclusionexclusion) a upravljanje dretvama koje ) a upravljanje dretvama koje ččekaju u redoslijedu ekaju u redoslijedu da pristupe dijeljenoj varijabli mora biti vrlo pada pristupe dijeljenoj varijabli mora biti vrlo pažžljivo izvedeno ljivo izvedeno kako bi im se omogukako bi im se omoguććilo da nastave svoju aktivnost unutar ilo da nastave svoju aktivnost unutar ““razumnograzumnog”” vremena.vremena.
140
279279
KritiKritiččki odsjeki odsječčak (Critcal section)ak (Critcal section)
•• Međusobno se iskljuMeđusobno se isključčenje primijenjuje samo kad enje primijenjuje samo kad dretve pristupaju dijeljenim promijenljivim podacima.dretve pristupaju dijeljenim promijenljivim podacima.
•• Ako dretve izvode operacije koje nisu međusobne Ako dretve izvode operacije koje nisu međusobne konfliktne OS im mora omogukonfliktne OS im mora omoguććiti da nastave iti da nastave izvođenje konkurentnoizvođenje konkurentno..
•• Kada dretva pristupa dijeljenim promijenljivim Kada dretva pristupa dijeljenim promijenljivim podacima kapodacima kažže se da se nalazi ue se da se nalazi u kritikritiččkom odsjekom odsječčkuku(Critical section)(Critical section) a OS mora osigurati da samo jedna a OS mora osigurati da samo jedna dretva u jednom trenutku modretva u jednom trenutku možže izvre izvrššavati naredbe u avati naredbe u kritikritiččkom odsjekom odsječčku za određeni resursku za određeni resurs..
280280
•OS mora pažljivo kontrolirati pristup kritičkom odsječku, ponašanje u njemu te izlazak iz njega, jer dretva u njemu ima ekskluzivno pravo pristupa dijeljenim promijenljivim podacima dok istovremeno sve ostale dretva koje žele isto moraju čekati.
•Dretva se u kritičkom odsječku treba zadržati čim kraće i nesmije se u njemu blokirati. (na pr. petlja)
•Ako se dretva u kritičkom odsječku zaustavi, bilo namjerno ili nenamjerno, OS mora interveniratikako bi isključio međusobno isključenje, teomogućio drugim dretvama da uđu u kritički odsječak.
141
281281
““SiroviSirovi”” kod za međusobno isklju kod za međusobno isključčenjeenjewhilewhile ((truetrue) ) {{ReceiveReceive ee--mail //aktivnost van kritimail //aktivnost van kritiččkog odsjekog odsječčkakaenterMutualExlusionenterMutualExlusion () // zahtjev za ulaz u kriti() // zahtjev za ulaz u kritiččki odsjeki odsječčakak
IncrementmailCountIncrementmailCount // aktivnost u kriti// aktivnost u kritiččkom odsjekom odsječčkukuexitMutualExlusionexitMutualExlusion () // izlaz iz kriti() // izlaz iz kritiččkog odsjekog odsječčkaka
}}
Kad T1 stiKad T1 stižže na kritie na kritiččki odsjeki odsječčak (ak (enterMutualExclusionenterMutualExclusion) OS mora) OS moraustanoviti dali je T2 u kritiustanoviti dali je T2 u kritiččkom odsjekom odsječčku.ku.Ako je T2 izvan, T1 ulazi, poveAko je T2 izvan, T1 ulazi, povećća dijeljenu varijablu za 1a dijeljenu varijablu za 1 i izlazi i izlazi..Ako je međutim TAko je međutim T2 u kriti2 u kritiččkom odsjekom odsječčku T1 mora ku T1 mora ččekati da T2ekati da T2izađe nakon izađe nakon ččega T1 moega T1 možže ue ućći u kritii u kritiččki ki odsjeodsječčakak..Za istovremeni zahtjev postoje mehanizmi OSZa istovremeni zahtjev postoje mehanizmi OS--a koji to iskljua koji to isključčuju.uju.
282282
Međusobno Međusobno iskljuisključčenjeenje•• Potrebno je imati na raspolaganju Potrebno je imati na raspolaganju mehanizammehanizam
međusobnog iskljumeđusobnog isključčenja koji osigurava da se enja koji osigurava da se sredstva rasredstva raččunalnog sustava koriste unalnog sustava koriste pojedinapojedinaččnono
•• KritiKritiččni odsjeni odsječčakak –– (critical(critical section)section) su dijelovi su dijelovi dretve koji koriste neko dretve koji koriste neko zajednizajedniččkoko sredstvo sredstvo
•• DretveDretve, koje su ina, koje su inačče nezavisne, smiju prolaziti kroz e nezavisne, smiju prolaziti kroz svoj kritisvoj kritiččni odsjeni odsječčak samo ak samo pojedinapojedinaččnono
•• KadaKada se dretve izvode u preostalom se dretve izvode u preostalom dijelu dijelu –– to jest u to jest u nekritinekritiččnomnom odsjeodsječčku, one se mogu izvoditi ku, one se mogu izvoditi proizvoljnom brzinom i redoslijedomproizvoljnom brzinom i redoslijedom
142
283283
•• NeprekidiviNeprekidivi dijelovi niza naredbi su dijelovi niza naredbi su kritikritiččkikiodsjeodsječčcici
•• Ako se dretva izvodi u jednoprocesorskom Ako se dretva izvodi u jednoprocesorskom sustavu ona mosustavu ona možže osigurati svoj iskljue osigurati svoj isključčivi ivi rad tako da onemogurad tako da onemogućći prekidanje.i prekidanje.
•• Nakon onemoguNakon onemoguććavanja prekida niti jedan avanja prekida niti jedan prekid viprekid višše ne prolazi do procesora. Kada e ne prolazi do procesora. Kada dretva obavi svoj kritidretva obavi svoj kritiččki odsjeki odsječčak ona ak ona programski omoguprogramski omoguććava prekid i prelazi u ava prekid i prelazi u nekritinekritiččki odsjeki odsječčak ak
284284
•• U skupu naredbi procesora uz naredbe za U skupu naredbi procesora uz naredbe za izazivanje i omoguizazivanje i omoguććavanje programskog avanje programskog prekida postoje i posebne naredbe za prekida postoje i posebne naredbe za onemoguonemoguććavanje prekidaavanje prekida
•• U viU viššeprocesorskom sustavu zabrana eprocesorskom sustavu zabrana prekidanja jednom procesoru ne rjeprekidanja jednom procesoru ne rješšava ava problemproblem
•• Pretpostavka: cikliPretpostavka: cikliččko ponako ponaššanje dretvianje dretvi
143
285285
CikliCikliččke dretveke dretve•• NaNaččelo cjevovodnog radaelo cjevovodnog rada
A B C D E F G A B C D E F G
A B C D E FA B C D E F
A B C D EA B C D E
Ulazna dretvaUlazna dretva
Radna dretvaRadna dretva
Izlazna dretvaIzlazna dretva
Ne moNe možže se oe se oččekivati da ekivati da ćće pojedine faze e pojedine faze viviššedretvenogedretvenog ostvarenja ostvarenja opisanog zadatka trajati jednako. Zbog toga je potrebno predvidjopisanog zadatka trajati jednako. Zbog toga je potrebno predvidjetietimehanizme mehanizme sinkronizacijesinkronizacije dretvi. dretvi.
286286
3 dretve3 dretve•• Ulazna dretva se uzastopno ponavlja Ulazna dretva se uzastopno ponavlja
prihvaprihvaććajuajućći u svakom prolazu kroz petlju i u svakom prolazu kroz petlju novu skupinu podataka i prenosenovu skupinu podataka i prenosećći ih radnoj i ih radnoj dretvidretvi
•• Radna dretva prihvaRadna dretva prihvaćća ulazne podatke koje a ulazne podatke koje joj predaje ulazna dretva, ojoj predaje ulazna dretva, obrađuje ihbrađuje ih, te , te predaje rezultate izlaznoj dretvi i vrapredaje rezultate izlaznoj dretvi i vraćća se na a se na popoččetak, gdje etak, gdje ččeka nove podatkeeka nove podatke
•• Izlazna dretva prihvaIzlazna dretva prihvaćća rezultate radne a rezultate radne dretve, prosldretve, prosljeđuje ih u izlaznu napravu i jeđuje ih u izlaznu napravu i vravraćća se na svoj poa se na svoj poččetak, gdje etak, gdje ččeka nove eka nove rezultate rezultate
144
287287
CikliCikliččke dretveke dretve
UlaznaUlaznadretvadretva
Radna Radna dretvadretva
Izlazna Izlazna dretvadretva
UlazUlaz UlazniUlaznipodacipodaci
RezultatiRezultati IzlazIzlaz
288288
D1D1
D2D2D3D3
D4D4
D5D5 D6D6
D7D7
145
289289
Međusobno iskljuMeđusobno isključčivanje 2 dretviivanje 2 dretvi
•• Pretpostavka: Pretpostavka: 1.1. ViViššedretveniedretveni proces na proces na ččvrsto povezanomvrsto povezanom
viviššeprocesorskom sustavueprocesorskom sustavu2.2. Svaka dretva u jednom procesoruSvaka dretva u jednom procesoru3.3. Sve dretve mogu pristupiti do zajedniSve dretve mogu pristupiti do zajedniččkog spremnika kog spremnika
u kojem su smjeu kojem su smješštene zajednitene zajedniččke varijableke varijable4.4. U uzastopnim spremniU uzastopnim spremniččkim ciklusima do zajednikim ciklusima do zajedniččkog kog
spremnika mogu pristupiti razlispremnika mogu pristupiti različčiti procesori (dretve) iti procesori (dretve) i pri tome obaviti samo jedno: ili i pri tome obaviti samo jedno: ili ččitanje ili pisanje. itanje ili pisanje.
290290
DijeljeniDijeljenispremnikspremnik
LokalniLokalniSpremnikSpremnik
00
LokalniLokalniSpremnikSpremnik
11
Lokalni Lokalni SpremnikSpremnik
nn--11
ProcesorProcesornn--11
DodjeljivaDodjeljivaččsabirnicesabirnice
ProcesorProcesor00
ProcesorProcesor11
SabirnicaSabirnica
D(1) T(1)
T(0)
D(0)
D(N-1)
T(N-1)
ZajedniZajedniččkikiadresniadresniprostorprostor
DD00DD11 DDNN--11
146
291291
•• Sve su dretve međusobno nezavisneSve su dretve međusobno nezavisne•• Mehanizam međusobnog iskljuMehanizam međusobnog isključčivanja mora ivanja mora
djelovati i u uvjetima kada su brzine djelovati i u uvjetima kada su brzine izvođenja dretvi razliizvođenja dretvi različčiteite
•• Kada je jedna dretva u nekritiKada je jedna dretva u nekritiččkom dijelu ona kom dijelu ona ne smije sprijene smije spriječčiti ulazak druge dretve u iti ulazak druge dretve u kritikritiččki odsjeki odsječčakak
•• Izbor jedne od dretvi koja smije uIzbor jedne od dretvi koja smije ućći u kritii u kritiččki ki odsjeodsječčak mora biti obavljen u konaak mora biti obavljen u konaččnom nom vremenu vremenu
292292
•• ZASTAVICA = 0ZASTAVICA = 0 slobodanslobodan ulazulaz u kritiu kritiččkikiodsjeodsječčakak
•• ZASTAVICA = 1ZASTAVICA = 1 zabranjen zabranjen ulaz u kritiulaz u kritiččkikiodsjeodsječčakak (druga dretva (druga dretva sese vevećć nalazi u kritinalazi u kritiččkom kom odsjeodsječčkuku) )
147
293293
VeVećći broj dretvi i broj dretvi -- LamportovLamportov protokolprotokol
•• LamportLamport‘‘s s backerybackery algorithmalgorithm•• Svaka dretva dobiva svoju varijablu u koju Svaka dretva dobiva svoju varijablu u koju
zapisuje broj prilikom zapisuje broj prilikom ““prijaveprijave”” BROJ(N)BROJ(N)•• Dodatna nadzorna varijabla koja oznaDodatna nadzorna varijabla koja označčava ava
da se dretva upravo nalazi u fazi dodjele da se dretva upravo nalazi u fazi dodjele broja broja ULAZ(N)ULAZ(N)
•• U zajedniU zajedniččkom spremniku smjekom spremniku smješšteni su teni su BROJ(N) i ULAZ(N) te dodatno varijabla BROJ(N) i ULAZ(N) te dodatno varijabla ZADNJI_BROJ koja se na poZADNJI_BROJ koja se na poččetku etku inicijalizirainicijalizira s 0.s 0.
294294
•• Dretva koja Dretva koja žželi ueli ućći u kritii u kritiččki odsjeki odsječčak dolazi do ak dolazi do svog broja:svog broja:
ULAZ (I) = 1ULAZ (I) = 1 ;;ččitati ZADNJI_BROJ itati ZADNJI_BROJ ;;BROJ (I) = ZADNJI_BROJ + 1BROJ (I) = ZADNJI_BROJ + 1 ;;ZADNJI_BROJ = BROJ (I) ZADNJI_BROJ = BROJ (I) ;;ULAZ (I) = 0ULAZ (I) = 0 ;;
Dretva DDretva DI I uspjeuspješšno prolazi ispitivanje kada suno prolazi ispitivanje kada susve dretve koje su prije nje najavile ulazak usve dretve koje su prije nje najavile ulazak ukritikritiččni odsjeni odsječčak vratile svoje brojeve na 0.ak vratile svoje brojeve na 0.
148
295295
•• Dretva koja Dretva koja žželi ueli ućći u kritii u kritiččni odsjeni odsječčak neak nećće e momoćći jednostavnom instrukcijom i jednostavnom instrukcijom ispitati ispitati iipostavitipostaviti (ustanoviti) smije li u(ustanoviti) smije li ućći u kritii u kritiččni ni odsjeodsječčak, veak, većć ćće to e to ččiniti pozivom initi pozivom odgovarajuodgovarajućće e funkcijefunkcije jezgre jezgre kojakoja ćće:e:
1.1. ili dozvoliti ulazak u kritiili dozvoliti ulazak u kritiččni odsjeni odsječčakak2.2. ili dretvu izbaciti iz procesora (pohraniti ili dretvu izbaciti iz procesora (pohraniti
njezin kontekst) i pokrenuti drugu dretvu njezin kontekst) i pokrenuti drugu dretvu
296296
•• Dretva koja izlazi iz kritiDretva koja izlazi iz kritiččnog odsjenog odsječčka neka nećće e neposredno zapisivati 0 u varijablu zastavice veneposredno zapisivati 0 u varijablu zastavice većććće pozivom e pozivom jezgrinejezgrine funkcije:funkcije:
1.1. ili zastavicu postaviti u prolazno stanjeili zastavicu postaviti u prolazno stanje2.2. ili pokrenuti slijedeili pokrenuti slijedećću dretvu koja je u dretvu koja je ččekala na ekala na
ulazak u kritiulazak u kritiččni odsjeni odsječčak ak
Na taj su naNa taj su naččin sklopovski detalji povezani sin sklopovski detalji povezani smeđusobnim iskljumeđusobnim isključčivanjem na razini ivanjem na razini programiranjaprogramiranjadretvidretvi sakriveni sakriveni -- međusobno isklju međusobno isključčivanjeivanje obavljaobavljajezgrajezgra koja ima koja ima odgovarajuodgovarajućće pouzdanee pouzdane mehanizmemehanizmezaza tu funkciju. tu funkciju.
149
297297
The EndThe End
Operacijski Operacijski sustavisustavi
U/I UlaznoU/I Ulazno--izlazne napraveizlazne naprave(I/O Input(I/O Input--Output UnitsOutput Units))
150
299299
Struktura raStruktura raččunalskog sustavaunalskog sustava
CPUCPUProcesorProcesor
UJ UJ diskadiska
UJUJpisapisaččaa
UJUJmag.jed.mag.jed.
UJ memorijeUJ memorije
MemorijaMemorija
SabirnicaSabirnica
UJUJ--UpravljaUpravljaččka jedinicaka jedinica
300300
Obavljanje Obavljanje U/IU/I operacijaoperacijaPrekidni radPrekidni rad
•• PrikljuPriključčivanje ivanje U/IU/I naprava preko UJnaprava preko UJ
•• U: tipkovnica, U: tipkovnica, mimišš, komunikacijski kanal, komunikacijski kanal
•• I: I: zaslonzaslon, , pisapisačč, disk, magnetska vrpca, CD, disk, magnetska vrpca, CD
•• U/I: zaslon, disk, magnetska vrpca, CD, komuU/I: zaslon, disk, magnetska vrpca, CD, komu--nikacijski kanalnikacijski kanal
151
301301
U/IU/I naprave vrlo naprave vrlo ššarolikearolike•• Brzine Brzine naprava su vrlonaprava su vrlo razlirazliččiteite•• Kako je odvijanje posla u napravama nezavisno Kako je odvijanje posla u napravama nezavisno
o brzini odvijanja rada u procesoru potrebno jeo brzini odvijanja rada u procesoru potrebno jeposebnuposebnu papažžnjunju posvetitiposvetiti sinkronizacijisinkronizaciji rada rada između procesora i ulaznoizmeđu procesora i ulazno--izlaznih naprava.izlaznih naprava.
•• Sustavnost:Sustavnost:* svaka svoj vlastiti* svaka svoj vlastiti upravljaupravljaččki elektroniki elektroniččki sklopki sklop* * spojena naspojena na pristupni skloppristupni sklop raraččunalaunala
302302
SpremnikSpremnik
ProcesorProcesor
U/IU/I NapravaNaprava
U/I PristupU/I Pristup
PrilagodbaPrilagodbasabirnicisabirnici
Prilagodba Prilagodba U/IU/Inapravinapravi
SabirnicaSabirnica
UpravljaUpravljaččki elktroniki elktroničč. sklop. sklop
152
303303
2 skupine2 skupine
•• Prijenos pojedinaPrijenos pojedinaččnih znakova (nih znakova (baytovabaytova))
•• Prijenos blokova znakova (niz uzastopnih Prijenos blokova znakova (niz uzastopnih baytovabaytova))
304304
PrenoPrenoššenjeenje pojedinapojedinaččnih nih znakova znakova -- prekidni radprekidni rad((““RadnoRadno”” ččekanje)ekanje)
SpremnikSpremnik
ProcesorProcesorSklop za
prepoz. adr.UpravljaUpravljaččkikidio pristupadio pristupa
PRPR RSRS
Podatkovni Podatkovni regreg..
Registar stanjaRegistar stanja
od ili premaU/I napravi
adresepodatciupravljanje
RegistarRegistar
153
305305
Izgled sa strane sabirnice podsjeIzgled sa strane sabirnice podsjećća na a na izgled spremnikaizgled spremnika•• Postoje 2 registra:Postoje 2 registra:•• podatkovnipodatkovni registar (registar (PRPR))•• registar stanja (registar stanja (RSRS))
•• Pri obavljanju Pri obavljanju izlazneizlazne operacije procesor:operacije procesor:
•• jednomjednom naredbom dobavlja sadrnaredbom dobavlja sadržžaj iz aj iz glavnogglavnogspremnikaspremnika u svoj registaru svoj registar
•• drugomdrugom naredbom prenosi taj znak u naredbom prenosi taj znak u podatkovnipodatkovniregistarregistar pristupnog sklopapristupnog sklopa
306306
•• Pri obavljanju Pri obavljanju ulazneulazne operacije procesor:operacije procesor:
•• jednomjednom naredbom dobavlja znak naredbom dobavlja znak iz iz podatkovnogpodatkovnog registar pristupnog sklopa u registar pristupnog sklopa u svoj registarsvoj registar
•• drugomdrugom naredbom prenosi taj znak iz svog naredbom prenosi taj znak iz svog registra u glavni spremnikregistra u glavni spremnik
154
307307
OznaOznaččavanje zavravanje završšetka etka operacije operacije SinkronizacijaSinkronizacija
•• U RS pristupnog sklopa poseban bit U RS pristupnog sklopa poseban bit IzlaznaIzlazna zastavicazastavica bit kojibit koji ostaje postavljen dok ostaje postavljen dok U/IU/I naprava nijenaprava nije proproččitala znak (procesor postavlja itala znak (procesor postavlja zastavicu sa novim sadrzastavicu sa novim sadržžajem u PR)ajem u PR)
•• Isto tako u RS Isto tako u RS UlaznaUlazna zastavicazastavicabit bit koji ostajekoji ostaje postavljen dok procesor ne postavljen dok procesor ne proproččitaitaznakznak (U/I(U/I naprava postavlja zastavicu sa naprava postavlja zastavicu sa novimnovimsadrsadržžajemajem u PR)u PR)
308308
na sabirnicu
bitzastavica
podatkovniregistar PR
registarstanja RS
bitovisadržaja
Signal UPISATI samo kadaje zastavica spuštena
signalZASTAVICA
automatskobrisanje
pri čitanju PR
U/INAPRAVA
8 1
1
2
SR
na sabirnicu
155
309309
Sa strane procesora sinkronizacija je Sa strane procesora sinkronizacija je programskaprogramska
LDRLDR r0, (r1)r0, (r1) ;prenijeti u r0 sadr;prenijeti u r0 sadržžaj s aj s ;adrese koja se nalazi u r1;adrese koja se nalazi u r1
STR r0, (r1)STR r0, (r1) ;prenijeti sadr;prenijeti sadržžaj r0 na aj r0 na ;adresu koja se nalazi u r1;adresu koja se nalazi u r1
ADR r1, SIMB_IME ;smjestiti u r1 adresu ADR r1, SIMB_IME ;smjestiti u r1 adresu ;;ččije je ije je simbsimb.ime SIMB_IME.ime SIMB_IME
CMP r0, #0CMP r0, #0 ;usporedba r0 sa 0;usporedba r0 sa 0BEQ PETLJABEQ PETLJA ;sko;skoččiti na PETLJA ako iti na PETLJA ako
;usporedba daje jednakost;usporedba daje jednakostBALBAL ;sko;skoččiti iti uvijekuvijek
310310
OdsjeOdsječčak programa za ak programa za ččitanje 1 znakaitanje 1 znaka
ADR r1, RSADR r1, RS ;;ADR r2, PRADR r2, PR ;;
PETLJA PETLJA LDR r0, (r1)LDR r0, (r1) ;;ččitati RSitati RSCMP r0, #0CMP r0, #0 ;;BEQ PETLJABEQ PETLJA ;;LDR r0, r2LDR r0, r2 ;;ččitati PRitati PR
156
311311
Pripadni Pripadni pseudokodpseudokod
ččitati registar stanja RS;itati registar stanja RS;dok jedok je (ZASTAVICA=0) (ZASTAVICA=0)
{{ččitati registar stanja RS};itati registar stanja RS};ččitati registar PR; //time se automatski itati registar PR; //time se automatski
// bri// brišše zastavicae zastavica
•• akoako se ovako se ovako ččita niz znakova onda ovu petlju ita niz znakova onda ovu petlju treba ponavljati u nekoj nadređenoj petljitreba ponavljati u nekoj nadređenoj petlji
•• pripri tome sadrtome sadržžaj iz podatkovnog registar treba aj iz podatkovnog registar treba prenositi u radni spremnikprenositi u radni spremnik
312312
““IGRAIGRA”” na vodina vodiččimaimaUPISATI i ZASTAVICAUPISATI i ZASTAVICA
UPISATIUPISATI
ZASTAVICAZASTAVICA
ččitanje PRitanje PR
DvoDvožžiiččno rukovanje no rukovanje twotwo--wirewire handshakinghandshaking
Pristupni sklop određuje protokol komuniciranja između UPristupni sklop određuje protokol komuniciranja između U/I /I naprave i ranaprave i raččunalaunala
157
313313
Nedostatak Nedostatak Programiranog Programiranog U/I*U/I*
•• Programsko ispitivanje registra stanjaProgramsko ispitivanje registra stanja•• Procesor izvodi Procesor izvodi naredbenaredbe petlje petlje ččekanja ekanja ččekajuekajućći događaj podizanja ZASTAVICEi događaj podizanja ZASTAVICE
•• Procesor troProcesor trošši svoje vrijeme izvodei svoje vrijeme izvodećći i bespotrebne bespotrebne naredbenaredbe i troi trošši sabirnii sabirniččke ke cikluse koji bi se mogli bolje iskoristiticikluse koji bi se mogli bolje iskoristiti
*Vidi 01*Vidi 01--02 Uvod slide No 7702 Uvod slide No 77
314314
Prekidni naPrekidni naččin rada in rada procesora*procesora*((Interrupt U/IInterrupt U/I))
•• Pristupni sklop je modificiran tako da je Pristupni sklop je modificiran tako da je podizanje bita ZASTAVICA u registru stanja podizanje bita ZASTAVICA u registru stanja poprapopraććeno generiranjem elektrieno generiranjem električčkog signala kog signala koji se putem posebnog vodikoji se putem posebnog vodičča dovodi do a dovodi do procesoraprocesora
•• Procesor se nadopunjuje tako da on na Procesor se nadopunjuje tako da on na kraju izvođenja svake naredbe ispituje dali kraju izvođenja svake naredbe ispituje dali se pojavio prekidni signalse pojavio prekidni signal
*Vidi *Vidi 0101--02 02 UvodUvod slide no 7slide no 777
158
315315
Prekidni Prekidni signal*signal*•• Prebacuje procesor u Prebacuje procesor u sustavskisustavski nanaččinin radarada
•• Pozivaju se Pozivaju se potprogramipotprogrami koji sakoji saččinjavaju injavaju jezgru operacijskog sustava (jezgru operacijskog sustava (jezgrenijezgreni nanaččininradarada--systemsystem ili ili kernelkernel modemode))
•• Proces kojiProces koji se pojavom prekidnog signala se pojavom prekidnog signala prekida najprekida najččeeššćće izvodi neki korisnie izvodi neki korisniččki ki posao u korisniposao u korisniččkom nakom naččinu inu ((useruser modemode))
*Vidi 01*Vidi 01--02 Uvod slide No 02 Uvod slide No 69,70,69,70,7766
316316
NaNaččin rada procesorain rada procesora•• OnemoguOnemoguććuje daljnje prekidanjeuje daljnje prekidanje•• Adresira Adresira sustavskisustavski dio spremnika (za razliku od dio spremnika (za razliku od
korisnikorisniččkog)kog)•• Aktivira drugi Aktivira drugi sustavskisustavski registar kazaljke stoga registar kazaljke stoga
koji se nalazi u procesoru (time se omogukoji se nalazi u procesoru (time se omoguććuje uje ostvarenje posebnog ostvarenje posebnog sustavskogsustavskog stoga u stoga u jezgrinomjezgrinom dijelu adresnog prostora)dijelu adresnog prostora)
•• Pohranjuje trenutni sadrPohranjuje trenutni sadržžaj programskog brojila aj programskog brojila na na sustavskisustavski stogstog
•• U programsko brojilo stavlja adresu na kojoj U programsko brojilo stavlja adresu na kojoj popoččinje inje potprogrampotprogram za obradu prekida za obradu prekida ((u u jezgrinomjezgrinom adresnom prostoru)adresnom prostoru)
159
317317
Adresa koja se stavlja u programsko Adresa koja se stavlja u programsko brojilo*brojilo*•• trajnotrajno je spremljena u jedan od je spremljena u jedan od ““skrivenih skrivenih
registararegistara”” procesora pri njegovoj procesora pri njegovoj proizvodnjiproizvodnji
•• Na tu se adresu smjeNa tu se adresu smješšta prva naredba ta prva naredba programskog odsjeprogramskog odsječčka za posluka za poslužživanje prekidaivanje prekida
•• PrekidniPrekidni signal djeluje kao sklopovski izazvani signal djeluje kao sklopovski izazvani poziv poziv potprogramapotprograma
*Vidi 01*Vidi 01--02 Uvod slide No 702 Uvod slide No 788
318318
Obrada prekida Interrupt ProcessingPrekidi omogućavaju softwareu-jezgri da odgovori na signalekoji dolaze od hardwarea.OS ima u sebi definiran niz naredbi tzv Interrupt handlerkoji se izvršavaju zavisno od svakog pojedinog tipa prekida. To omogućuje OS-u da preuzme kontrolu nad procesorom kako bi upravljao resursima računala.
1. Interrupt controller – slaže prekide po priotitetu2. Kada se dogodi prekid procesor mora zaustaviti tekući proces
i spremiti sve podatke o stanju tekućeg procesa u njegov dio u glavnom spremniku da bi ga kasnije opet reaktivirao.
3. Procesor dodjeljuje kontrolu odgovarajućem interupt handleru4. Inter handl izvodi odgovarajuću akciju ovisno o tipu prekida5. Kada inter handl završi obradu prekida, stanje prekinutog
procesa se regenerira (ili započne neki drugi proces a jezgra prethodno izvrši zamjenu stanjazamjenu stanja - Context switchingContext switching)
160
319319
VrijemeVrijeme
Processor controlProcessor control
Proces P1Proces P1(1)(1)
(22)(33)
InterruptInterruptvectorvector
InterruptInterrupt
InterruptInterrupthandlerhandler
(44) TekuTekućći sadri sadržžajajspremljen u spremljen u privremenu privremenu
lokaciju lokaciju memorijememorije
(55)
(6)6) Proces P2Proces P2
Prekidni satPrekidni sat
320320
Zamjena stanja Zamjena stanja --Context Context switchingswitching•• se naziva aktivnost koju izvađa jezgra OSse naziva aktivnost koju izvađa jezgra OS--a u a u
cilju spremanja (arhiviranja) trenutnog stanja cilju spremanja (arhiviranja) trenutnog stanja aktivnog procesa koji se zbog nekog razloga aktivnog procesa koji se zbog nekog razloga prekida a u svrhu zamjene s nekim drugim prekida a u svrhu zamjene s nekim drugim procesom. procesom.
•• Isto tako, OS mora i vratiti spremljeno stanje Isto tako, OS mora i vratiti spremljeno stanje prekinutog procesa prije nego mu se dodjeli prekinutog procesa prije nego mu se dodjeli procesor.procesor.
161
321321
Procesor ima u Procesor ima u svojim registrimasvojim registrima pohranjene sadrpohranjene sadržžaje aje sa trenutnisa trenutni stanjem procesastanjem procesa kojikoji se upravo izvodise upravo izvodi
•• Taj se Taj se sadrsadržžajaj--kontekstkontekst mora spremiti na mora spremiti na sustavskisustavski stog kako bi se stog kako bi se prekinutiprekinuti procesprocesmogaomogao kasnije nastaviti kasnije nastaviti
•• Prvi zadatak Prvi zadatak potprogramapotprograma za obradu prekida je za obradu prekida je pohranjivanje sadrpohranjivanje sadržžaja svih registara procesora aja svih registara procesora na na sustavskisustavski stogstog
•• Postoje posebne naredbe za spremanje Postoje posebne naredbe za spremanje registara na stog (registara na stog (pushpush))
322322
Nakon Nakon ššto se sato se saččuva kontekst uva kontekst prekinutogprekinutog procesa:procesa:
•• MoMožže se obaviti stvarna obrada prekidae se obaviti stvarna obrada prekida((na na pr.pr. prenoprenoššenje sadrenje sadržžaja iz podatkovnog aja iz podatkovnog registra pristupnog sklopa u spremnik)registra pristupnog sklopa u spremnik)
•• Nakon Nakon ššto je to je potprogampotprogam za posluza poslužživanje ivanje prekida zavrprekida završšio svoj posao, treba ponovo io svoj posao, treba ponovo pokrenuti pokrenuti prekinutiprekinuti procesproces
•• Najprije se sa Najprije se sa sustavskogsustavskog stoga posebnim stoga posebnim naredbamanaredbama ((pop, pop, pullpull) vra) vraććaju sadraju sadržžaji aji registara obrnutim registara obrnutim redoslijedomredoslijedom
•• Nakon izvođenja te operacije na stogu ostaje Nakon izvođenja te operacije na stogu ostaje samo sadrsamo sadržžaj programskog aj programskog brojilabrojila
162
323323
Prije vraPrije vraććanja programskog brojila mora se anja programskog brojila mora se omoguomoguććiti prekidanjeiti prekidanje
•• Posebna naredba Posebna naredba omoguomoguććuje prekidanjeuje prekidanje((enableenable interruptinterrupt))
•• Ta naredba djeluje odgođeno tako da Ta naredba djeluje odgođeno tako da ćće e prekidanje biti omoguprekidanje biti omoguććeno tek nakon eno tek nakon ššto se to se posebnom naredbom u procesor vrati posebnom naredbom u procesor vrati sadrsadržžaj programskog brojilaaj programskog brojila
•• Naredba koja vraNaredba koja vraćća sadra sadržžaj programskog aj programskog brojila sa stoga mora aktivirati adresiranje u brojila sa stoga mora aktivirati adresiranje u korisnikorisniččkom adresnom prostoru kroz kom adresnom prostoru kroz korisnikorisniččki registar kazaljke stogaki registar kazaljke stoga
PrimjerPrimjer•• ReRežžim im ččekanjaekanja (Programirani U/I)(Programirani U/I)
Procesor 10MIPS, znakovi stiProcesor 10MIPS, znakovi stižžu u brzinom 1000/secbrzinom 1000/secZa spremanje jednog znaka 10Za spremanje jednog znaka 10--tak naredbitak naredbiProdukt. : neprodukt. 10*1000/10*10Produkt. : neprodukt. 10*1000/10*1066=10=10--
33=0,001=0,0010,1% produktivno0,1% produktivno 99,999,9% % neproduktivnoneproduktivnoččekanje ekanje
•• ReRežžimim prekida prekida (Interrupt U/I)(Interrupt U/I)Procesor 10MIPS, znakovi stiProcesor 10MIPS, znakovi stižžu brzinom 1000/sec u brzinom 1000/sec Za spremanjeZa spremanje i obnovu kontekstai obnovu konteksta 200 200 naredbinaredbiNeproduk. : produkt. 200*1000/10Neproduk. : produkt. 200*1000/1077=2*10=2*10--
22=0,02=0,02
163
325325
Podsustav za prihvat prekidaPodsustav za prihvat prekida•• RaRaččunalo ima viunalo ima višše e U/IU/I naprava pa se mora naprava pa se mora
raraččunati s viunati s višše mogue moguććih izvora prekidnih ih izvora prekidnih signalasignala
•• Svaka Svaka U/IU/I naprava prikljunaprava priključčena preko svog ena preko svog pristupnog sklopa mopristupnog sklopa možže generirati prekidni signale generirati prekidni signal
•• PretpostavkaPretpostavka da se svi prekidni signali moguda se svi prekidni signali moguspojiti zajedno i time postispojiti zajedno i time postićći da se prekid pojavi i da se prekid pojavi na ulazu procesora kada bilo koji pristup (barem na ulazu procesora kada bilo koji pristup (barem jedan) generira prekidni signaljedan) generira prekidni signal
326326
SPREMNIKSPREMNIK
Pristup nPristup nPristup 2Pristup 2Pristup 1Pristup 1PROCESORPROCESOR
SABIRNICASABIRNICA
Prekidni vodiPrekidni vodičč
164
327327
Pri pojavi prekidnog signala procesor Pri pojavi prekidnog signala procesor ćće reagirati kao e reagirati kao i u prethodnom i u prethodnom slusluččaju:aju:
1.1. Zabranjuje daljnje prekidanje Zabranjuje daljnje prekidanje 2.2. Sprema programsko brojilo na stogSprema programsko brojilo na stog3.3. U programsko U programsko se brojilose brojilo upisuje upisuje adresaadresa prve prve
naredbe naredbe potprogramapotprograma za posluza poslužživanje prekidaivanje prekida•• U tom odsjeU tom odsječčku treba najprije ustanoviti ku treba najprije ustanoviti kojikoji je je
od pristupnih sklopova izazvao prekid uzastopnim od pristupnih sklopova izazvao prekid uzastopnim ččitanjem registara stanja pristupnih sklopovaitanjem registara stanja pristupnih sklopova
•• Obraditi ustanovljeni prekidObraditi ustanovljeni prekid
328328
Ispitni lanacIspitni lanac•• Ispituje redom zastavice u RS pojedinih Ispituje redom zastavice u RS pojedinih
pristupnih sklopovapristupnih sklopova•• Ako se ustanovi da je neka Ako se ustanovi da je neka zastavica postavljezastavica postavlje--
nana dogoditi dogoditi ćće se skok na dio programa za e se skok na dio programa za obradu tog prekida obradu tog prekida
•• Ispituje se i zadnji pristup radi otkrivanja Ispituje se i zadnji pristup radi otkrivanja eventualno laeventualno lažžnognog
•• Ako se u međuvremenu nije pojavio neki novi ili Ako se u međuvremenu nije pojavio neki novi ili lalažžni ni prekid obnavljaprekid obnavlja se kontekst se kontekst prekinutog prekinutog procesa.procesa.
165
329329
NedostatciNedostatci
•• Tijekom obrade prekida zabranjeno svako Tijekom obrade prekida zabranjeno svako drugo drugo prekidanjeprekidanje
•• ZnaZnačči da obrada nekog prekida i da obrada nekog prekida ččija obrada ija obrada zahtjeva trenutno reagiranje ne mozahtjeva trenutno reagiranje ne možže biti e biti prihvaprihvaććena ako traje obrada nekog drugog ena ako traje obrada nekog drugog manje vamanje važžnog prekida koji se pojavio nog prekida koji se pojavio ranije i pri tome moranije i pri tome možže biti dugotrajane biti dugotrajan
330330
PodsustavPodsustav za prihvat prekida za prihvat prekida razvrstanih po prioritetimarazvrstanih po prioritetima
•• Primjer: Primjer: prioriteti su oznaprioriteti su označčeni prirodnim brojevima eni prirodnim brojevima tako da tako da veveććii broj ima znabroj ima značčenje enje veveććegeg prioritetaprioriteta
•• Opisani ispitni Opisani ispitni lanac (lanac ( ) koji) koji popoččinje inje ispitivanje s veispitivanje s veććim indeksima uvesti im indeksima uvesti ćće redoslijed e redoslijed obrade za prekide koji su se pojavili istodobno, ali obrade za prekide koji su se pojavili istodobno, ali nenećće prihvatiti prekid vie prihvatiti prekid viššeg prioriteta nakon eg prioriteta nakon ššto to obrada niobrada nižžeg prioriteta zapoeg prioriteta započčne. ne.
*Vidi slide No *Vidi slide No 2929
166
331331
PrimjerPrimjer•• Pretpostavka: Pretpostavka: 5 pristupnih sklopova5 pristupnih sklopova
•• RazvrstaniRazvrstani u 5 razina prioritetau 5 razina prioriteta
•• ŽŽeljaelja je obraditi prekid tako da je obraditi prekid tako da pojava prekida vipojava prekida viššeg prioriteta moeg prioriteta možže e prekinuti obradu niprekinuti obradu nižžeg prioritetaeg prioriteta
•• UzUz pretpostavku pretpostavku slijeda vremenskih slijeda vremenskih događaja kao u tablicidogađaja kao u tablici žželja je elja je omoguomoguććiti obradu tako da prekid iti obradu tako da prekid viviššeg moeg možže prekinuti obradu nie prekinuti obradu nižžegegprioriteta prioriteta P5P5T5T5
P2P2t4t4
P1P1t3t3
P4P4t2t2
P3P3t1t1
332332
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Korisnički proces
P1
P2
P3
P4
P5
P3 P4 P1 P2 P5
167
333333
PretpostavkePretpostavke•• Program se sastoji od Program se sastoji od neprekidivihneprekidivih dijelova dijelova
(obrada ku(obrada kuććanskih anskih poslovaposlova--spremanje konteksta spremanje konteksta dretve)dretve) i i prekidivihprekidivih dijelova (sama obrada prekida)dijelova (sama obrada prekida)
•• Svi prekidi, bez obzira na prioritet, prihvaSvi prekidi, bez obzira na prioritet, prihvaććaju se aju se onda kada se program nalazi u onda kada se program nalazi u prekidivomprekidivom dijelu,dijelu,
•• Ako je novo prispjeli prekid niAko je novo prispjeli prekid nižžeg prioriteta on se eg prioriteta on se stavlja u listu stavlja u listu ččekanja, a ako ima viekanja, a ako ima višši prioritet on i prioritet on se pose poččinje obrađivatiinje obrađivati
•• Kada zavrKada završši obrada nekog prekida nastavlja se i obrada nekog prekida nastavlja se obrada slijedeobrada slijedeććih (onih koji su bili prekinuti ili onih ih (onih koji su bili prekinuti ili onih na listi na listi ččekanja)ekanja)
•• Ako niti jedan prekid viAko niti jedan prekid višše ne e ne ččeka nastavlja se s eka nastavlja se s obradom korisniobradom korisniččkog programa kog programa
334334
•• Program mora imati prikladnu strukturu Program mora imati prikladnu strukturu podataka u koju se mogu pohraniti svi vapodataka u koju se mogu pohraniti svi važžni ni podatcipodatci ukljuuključčujuujućći i kontekst i i kontekst procesaprocesa kojikoji se se izvodeizvode
•• Pretpostavka: za N pristupa mora postojati Pretpostavka: za N pristupa mora postojati mogumoguććnost pohranjivanja konteksta za nost pohranjivanja konteksta za ukupno N+1 ukupno N+1 procesproces
•• N za obradu N pristupa i N+1 koja izvodi N za obradu N pristupa i N+1 koja izvodi korisnikorisniččki programki program
•• KorisniKorisniččki proceski proces ima najniima najnižži prioritet oznai prioritet označčen en brojem 0brojem 0
168
335335
Dvojaki uDvojaki uččinakinak
•• Ako mu je prioritet veAko mu je prioritet većći od onog koji se i od onog koji se upravo obrađuje njegova upravo obrađuje njegova ćće e procesproces biti biti pokrenutpokrenut
•• Ako mu je niAko mu je nižži od tekui od tekuććeg njegova eg njegova ćće e pojava biti samo zabiljepojava biti samo zabilježžena u oznaci ena u oznaci ččekanjaekanja
336336
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Korisnički proces
Kućanski poslovi
P1
P2
P3
P4
P5
P3 P4 P1 P2 P5
169
337337
•• U ovom rjeU ovom rješšenju s minimalnom sklopovskom enju s minimalnom sklopovskom opremom mora se obaviti mnogo opremom mora se obaviti mnogo neproduktivnog kuneproduktivnog kuććanskog anskog poslaposla
•• Taj se kuTaj se kuććanski posao anski posao vrvrššii uzuz svaki svaki događajdogađaj::
1.1. Događaj dolaska prekida iliDogađaj dolaska prekida ili2.2. Događaj zavrDogađaj završšetka obrade prekida.etka obrade prekida.
338338
PrekidiPrekidiSklopovska oprema za ostvarenje Sklopovska oprema za ostvarenje viviššestrukog prekidanjaestrukog prekidanja
•• RazliRazliččita rjeita rješšenjaenja•• Prekidni vodiPrekidni vodičči od pojedinih pristupnih sklopova i od pojedinih pristupnih sklopova
ne dovode se neposredno na procesor vene dovode se neposredno na procesor većć na na ulaze posebnog sklopa za prihvat prekidaulaze posebnog sklopa za prihvat prekida
•• Taj sklop vrTaj sklop vršši selekciju i prema procesoru i selekciju i prema procesoru propupropuššta samo onaj prekidni signal koji ima veta samo onaj prekidni signal koji ima većći i prioritet od dretve koju procesor upravo izvodi.prioritet od dretve koju procesor upravo izvodi.
•• Do procesora dolazi samo 1 prekidni signal i to Do procesora dolazi samo 1 prekidni signal i to samo onda kada je to uistinu potrebno. samo onda kada je to uistinu potrebno.
170
339339
SPREMNIK
PROCESOR PRISTUP 1 PRISTUP 2 PRISTUP N
Sklop za prihvat prekida
P1 P2 PN
SABIRNICA
PRIHVAT
PREKID
Procesor u trenutku kada prihvaća prekid (na kraju izvođenja neke instrukcije)postavlja signal PRIHVAT.
340340
PREPOZNAVANJEPREPOZNAVANJE
PRIORITETAPRIORITETA
TABLICATABLICA
ADRESAADRESA
K_ZK_Z T_PT_P
1 2 N1 2 N 1 2 N1 2 N
PRIHVATPRIHVAT
PREKIDPREKID
P_1 P_2 P_NP_1 P_2 P_N
SABIRNICASABIRNICA
Registar kopijaRegistar kopijazastavica K_Zzastavica K_Z
Registar tekuRegistar tekuććeg eg prioriteta T_Pprioriteta T_P
PomaknuPomaknućće za e za raraččunanje adreseunanje adrese
SKLOP ZA PRIHVAT PREKDASKLOP ZA PRIHVAT PREKDA
171
341341
SADRSADRŽŽAJ SKLOPAAJ SKLOPA1.1. Registar kopija zastavica K_Z u Registar kopija zastavica K_Z u ččije se bitove ije se bitove
zapisuje jedinica zapisuje jedinica ččiji pristupni sklop zatraiji pristupni sklop zatražži prioriteti prioritet
2.2. Registar T_P u koji se zapisuje prioritet dretve koja Registar T_P u koji se zapisuje prioritet dretve koja se upravo izvodi (1 u odgovarajuse upravo izvodi (1 u odgovarajućći bit registrai bit registra--kada kada su svi bitovi = 0 izvodi se korisnisu svi bitovi = 0 izvodi se korisniččka dretva)ka dretva)
Sklop propuSklop propuššta pekid prema procesoru samo ta pekid prema procesoru samo ondaonda
kada je prioritet zahtjeva vekada je prioritet zahtjeva većći od onog i od onog zabiljezabilježženog enog
u registru T_P. u registru T_P.
342342
•• Istodobno s propuIstodobno s propušštanjem prekidnog signala prema tanjem prekidnog signala prema procesoru mora se izbrisati bit u registru K_Z, te procesoru mora se izbrisati bit u registru K_Z, te generirati pripadnu vrijednost kazaljke usmjerenu na generirati pripadnu vrijednost kazaljke usmjerenu na tablicu adresa.tablicu adresa.
•• Tablica sadrTablica sadržži adrese (ili pomaknui adrese (ili pomaknućća) na kojima a) na kojima popoččinje odsjeinje odsječčak programa za obradu prekida koji je ak programa za obradu prekida koji je propupropuššten prema procesoruten prema procesoru
•• SadrSadržžaj se tablice pod utjecajem signala PRIHVAT aj se tablice pod utjecajem signala PRIHVAT prenosi na sabirnicu gdje ga procesor prihvaprenosi na sabirnicu gdje ga procesor prihvaćća i a i oblikuje adresu na koju treba skooblikuje adresu na koju treba skoččiti. iti.
172
343343
U U trenutcima ttrenutcima t33 i ti t44 nailaze prekidi P_1 i P_2 ali procesor nailaze prekidi P_1 i P_2 ali procesor uopuopćće ne biva prekidane ne biva prekidan
KorisniKorisniččkaka dretvadretva
KuKuććanski poslovianski poslovi
P_1P_1
P_2P_2
P_3P_3
P_4P_4
P_5P_5
tt11 tt2 2 tt3 3 tt44 tt55 tt66 tt77 tt88 tt99 tt1010
P_3 P_4 P_1 P_2 P_5P_3 P_4 P_1 P_2 P_5
344344
Redosljed događajaRedosljed događaja
•• U trenutcima t3U trenutcima t3 i t i t4 k4 kada nailaze prekidi ada nailaze prekidi P_1 P_1 i P_i P_2 d2 događa se promjena samo u ogađa se promjena samo u registru kopija zastavica K_Z.registru kopija zastavica K_Z.
•• Prekidi ne dolaze do procesora Prekidi ne dolaze do procesora
•• Registar tekuRegistar tekuććeg prioriteta T_P i sadreg prioriteta T_P i sadržžaj aj stoga se ne mijenjajustoga se ne mijenjaju
173
345345
Prekidi generirani unutar procesora, poziv Prekidi generirani unutar procesora, poziv sustavskog potprograma*sustavskog potprograma*
•• U raznim djelovima procesora mogu se pri U raznim djelovima procesora mogu se pri izvođenju dretvi pojaviti neka nenormalna izvođenju dretvi pojaviti neka nenormalna stanja (dijeljenje s 0, adresiranje nepostojestanja (dijeljenje s 0, adresiranje nepostojećće e adrese, dekodiranje nepostojeadrese, dekodiranje nepostojeććeg oper. koda)eg oper. koda)
•• U takvim sluU takvim sluččajevima treba prekinuti izvođenjeajevima treba prekinuti izvođenjedretve i po mogudretve i po moguććnosti dojaviti uzrok prekidanosti dojaviti uzrok prekida
*Vidi *Vidi 0101--02 02 Uvod slide no 7Uvod slide no 788
346346
•• Skup naredbi procesora sadrSkup naredbi procesora sadržži naredbu koja i naredbu koja omoguomoguććuje izazivanja prekida iz programauje izazivanja prekida iz programa-- to je to je tzv tzv programski prekidprogramski prekid (software interrupt)(software interrupt)
•• Djelovanje te naredbe je sliDjelovanje te naredbe je sliččno djelovanju no djelovanju sklopovskog prekidasklopovskog prekida--prevodi procesor u prevodi procesor u sustavski nasustavski naččin rada.in rada.
•• Izazivanje prekida je namjerno i predviđeno pa Izazivanje prekida je namjerno i predviđeno pa kontekst ima potpuno predviđeni sadrkontekst ima potpuno predviđeni sadržžaj aj
•• U jedan od registara procesora pohranjen kod U jedan od registara procesora pohranjen kod funkcije koju se funkcije koju se žželi pokrenuti tim programskim eli pokrenuti tim programskim prekidom.prekidom.
*Vidi *Vidi 0101--02 02 Uvod slide no 7Uvod slide no 788
174
347347
•• Registri procesora sluRegistri procesora služže i za prenoe i za prenoššenje enje parametara iz programa u tu funkciju koju parametara iz programa u tu funkciju koju pokrepokrećće e programski prekidprogramski prekid kao i za kao i za vravraććanje rezultata anje rezultata
•• Mehanizam programskog prekida koristi se Mehanizam programskog prekida koristi se za pozivanje potprograma koji se izvode u za pozivanje potprograma koji se izvode u sustavskom ili jezgrenom nasustavskom ili jezgrenom naččinuinu rada rada procesora pa se za takve naredbe koristi procesora pa se za takve naredbe koristi naziv naziv poziv poziv sustavasustava ili ili poziv jezgre (systempoziv jezgre (systemcall, supervisory call)call, supervisory call)
*Vidi *Vidi 0101--02 02 UvodUvod slide no slide no 8282
348348
•• ZakljuZaključčakak::
•• Sklop za prihvat prekida nije poseban Sklop za prihvat prekida nije poseban sklop vesklop većć je sastavni dio procesora.je sastavni dio procesora.
•• Svi prekidi (vanjski i unutarnji) Svi prekidi (vanjski i unutarnji) objedinjeni su u jedan podsustav i objedinjeni su u jedan podsustav i jasno razvrstani u prioritetne razine. jasno razvrstani u prioritetne razine.
175
349349
DMA DMA -- PrenoPrenoššenje blokova znakova enje blokova znakova neposredni pristup spremnikuneposredni pristup spremniku
•• Mnoge su aktivnosti raMnoge su aktivnosti raččunala povezane s unala povezane s prenoprenoššenjem veenjem veććeg broja znakova eg broja znakova -- blokovablokova
•• Razmjena sadrRazmjena sadržžaja između radnog i vanjskih aja između radnog i vanjskih spremnika na pr. diskaspremnika na pr. diska
•• Radni spremnik video spremnik Radni spremnik video spremnik pristupnog sklopa zaslonapristupnog sklopa zaslona--ekranaekrana
•• PrenoPrenoššenje sadrenje sadržžaja prema komunikacijskim aja prema komunikacijskim pristupnim sklopovimapristupnim sklopovima
MMUMMUMemorijaMemorija
SabirnicaSabirnica MemoryMemoryManagement Management
UnitUnit
ProcesorProcesor--CPUCPU
ZaZašštita U/Itita U/I
InterruptsInterrupts
DMADMA
PSWPSW
RegistriRegistri
DeviceDevicecontrolescontroles
DevicesDevices
Data pathData pathControl pathControl path
Interrupt pathInterrupt path
176
351351
•• PrenoPrenoššenje pojedinaenje pojedinaččnih znakova bloka u nih znakova bloka u prekidnom naprekidnom naččinu rada zahtijeva mnogo inu rada zahtijeva mnogo kukuććanskog poslaanskog posla
•• Procesor je prekidan pri prijenosu svakog Procesor je prekidan pri prijenosu svakog znaka, a nakon svakog prekida prenosi se znaka, a nakon svakog prekida prenosi se samo po jedan znaksamo po jedan znak
•• Pri tome procesor obavlja vrlo jednostavan Pri tome procesor obavlja vrlo jednostavan posao koji se sastoji od izvođenja samo posao koji se sastoji od izvođenja samo nekoliko naredbi. nekoliko naredbi.
•• Taj se zadatak prepuTaj se zadatak prepuššta pristupnom skloputa pristupnom sklopu. .
352352
•• Pristupni sklop sadrPristupni sklop sadržži 2 registra:i 2 registra:1.1. podatkovni registar PRpodatkovni registar PR2.2. registar stanja RSregistar stanja RSnadopunjuje se s jonadopunjuje se s jošš 2 registra2 registra1.1. adresni registaradresni registar ARAR u kojem se nalazi u kojem se nalazi
adresa u spremniku na koju (ili s koje) adresa u spremniku na koju (ili s koje) ćće e se obaviti prijenos pojedinase obaviti prijenos pojedinaččnog znakanog znaka
2.2. brojilombrojilom BRBR u kojem se nalazi broj znakova u kojem se nalazi broj znakova koje jokoje jošš treba prenijeti treba prenijeti
Ta 2 dodatna registra imaju svoje adrese takoTa 2 dodatna registra imaju svoje adrese takoda su programski dohvatljiva.da su programski dohvatljiva.
*Vidi slide No *Vidi slide No 88
177
353353
Detaljni pogled na pristupni sklopDetaljni pogled na pristupni sklop
SPREMNIKSPREMNIK
PROCESORPROCESOR RSRS PRPR ARAR BRBR
PRISTUPNI SKLOPPRISTUPNI SKLOP
SABIRNICASABIRNICA
Regist stanjaRegist stanja Podatk regPodatk reg Adr regAdr reg BrojiloBrojilo.
354354
•• Operacija prenoOperacija prenoššenja bloka znakova poenja bloka znakova poččima tako ima tako da procesor zapida procesor zapišše:e:
1.1. u AR pou AR poččetnu adresu bloka u spremnikuetnu adresu bloka u spremniku2.2. u BR broj znakova koji se u BR broj znakova koji se žželi prenijetieli prenijeti
Nakon toga se upisom odgovarajuNakon toga se upisom odgovarajuććeg sadreg sadržžajaajau registar stanja RS pokreu registar stanja RS pokrećće prijenos bloka.e prijenos bloka.Odvijanje prijenosa cijelog bloka između dvaju prekidaOdvijanje prijenosa cijelog bloka između dvaju prekidaobavlja se bez sudjelovanja procesora.obavlja se bez sudjelovanja procesora.
Zbog toga i naziv takvog naZbog toga i naziv takvog naččina prijenosaina prijenosaDMA (Direct Memory Access)DMA (Direct Memory Access)
178
355355
DMA Direct memory accessDMA Direct memory access
Memorija
U/IU/IKontrolnaKontrolnajedinicajedinica
RAMRAM
ProcesorProcesor
1122
22
22
11
33
11 Proc U/I zahtjev Proc U/I zahtjev –– U/I kontr jed U/I kontr jed –– Disk Disk –– Proces nastavlja radProces nastavlja rad22 Disk podatke U/I kDisk podatke U/I kontr jed ontr jed -- DMA naredba određuje adresu u RAM DMA naredba određuje adresu u RAM--u i duu i dužžinuinu33 Disk Disk ššalje prekid procesoru po zavralje prekid procesoru po završšetku U/I operacijeetku U/I operacije
356356
Vremenska linija prekidaVremenska linija prekida
CPUCPU
U/IU/Iuređajuređaj
KorisniKorisniččki proceski proces
U/I obrada prekidaU/I obrada prekida
NeaktivanNeaktivan
AktivanAktivan--prijenosprijenos
U/IU/Izahtjevzahtjev
U/IU/Izahtjevzahtjev
TransferTransferzavrzavrššenen
Transferzavršen
179
357357
DMA struktura DMA struktura (Direct memory access)(Direct memory access)DirektanDirektan--neposredan pristup memorijineposredan pristup memoriji
•• Asinkroni U/I se pridruAsinkroni U/I se pridružžuje niskom prioritetuuje niskom prioritetu1 prekid po bytu (znaku, rije1 prekid po bytu (znaku, riječči i -- tipkovnica)tipkovnica)
•• Diskovi, mreDiskovi, mrežža ...visoki prioritet a ...visoki prioritet Zato se za U/I visoke brzine koristi DMA.Zato se za U/I visoke brzine koristi DMA.1 prekid po bloku 1 prekid po bloku
358358
AsinkronoAsinkrono
•• Nije sinkronizirano Nije sinkronizirano -- t. t.j. j. ne događa se na ne događa se na unaprijed određen naunaprijed određen naččin u pravilnim razmacimain u pravilnim razmacima
•• Neredovito Neredovito -- a ne u stalnom i mirnom protokua ne u stalnom i mirnom protoku
•• Problem: razlikovati podatke (poruku) od Problem: razlikovati podatke (poruku) od ššumauma•• STARTSTART--STOPSTOP•• VeVeććina komunikacija između raina komunikacija između raččunala i uređaja unala i uređaja
(U/I, periferije, Interneta) bilo kada u (U/I, periferije, Interneta) bilo kada u neredovitim vremenskim intervalimaneredovitim vremenskim intervalima
180
359359
SinkronoSinkrono
•• Događa se na unaprijed određen naDogađa se na unaprijed određen naččin u in u pravilnim razmacimapravilnim razmacima
•• Redovito Redovito -- u stalnom i mirnom protokuu stalnom i mirnom protoku•• Komunikacija unutar raKomunikacija unutar raččunala je sinkrona i unala je sinkrona i
upravljana unutarnjim satom (clock rate)upravljana unutarnjim satom (clock rate)•• Signali po sabirnici (bus) samo sinkrono u toSignali po sabirnici (bus) samo sinkrono u toččno no
određenim vremenskim toodređenim vremenskim toččkama kama -- intervalimaintervalima
360360
Asinkrono : SinkronoAsinkrono : Sinkrono•• Kada se neki događaj dogodi asinkrono s procesom Kada se neki događaj dogodi asinkrono s procesom
misli se na to da se dogodio nezavisno od procesa. U/I misli se na to da se dogodio nezavisno od procesa. U/I operacija se mooperacija se možže izvoditi istovremeno (simultano e izvoditi istovremeno (simultano --konkurentno) sa operacijom na CPU. Kada U/I zavrkonkurentno) sa operacijom na CPU. Kada U/I završši i ššalje prekidni signal koji proces moalje prekidni signal koji proces možže odmah obraditi e odmah obraditi ili ga ostaviti za kasniji prikladan trenutak.ili ga ostaviti za kasniji prikladan trenutak.
•• PollingPolling je sinkroni mehanizam kojim procesor je sinkroni mehanizam kojim procesor ponavljajuponavljajućće ispituje uređaj oe ispituje uređaj oččekujuekujućći zavri završšetak U/I etak U/I operacije. Sinkroni mehanizam operacije. Sinkroni mehanizam ““gubigubi”” vrijeme na vrijeme na ččekanje dok se aktivnost ne dogodi, a asinkroni ekanje dok se aktivnost ne dogodi, a asinkroni mehanizam nastavlja sa drugim aktivnostima ne mehanizam nastavlja sa drugim aktivnostima ne gubegubećći vrijeme na događaj koji sei vrijeme na događaj koji se NIJE NIJE dogodio dogodio ššto to opopććenito popravlja uenito popravlja uččinkovitost.inkovitost.
181
361361
U/I prekidiU/I prekidi
Obrada prekidaObrada prekida
KorisnikKorisnik KorisnikKorisnik
JezgraJezgra JezgraJezgra
vrijemevrijeme vrijemevrijeme
SinkroniSinkroni
ZahtjevZahtjevČČekanjeekanje
Prijenos Prijenos podatakapodataka
UpravljaUpravljaččka jedinicaka jedinicaU/IU/I
Obrada prekidaObrada prekida
hardwarehardware hardwarehardware
Prijenos Prijenos podatakapodataka
AsinkronAsinkroni
Zahtjev Zahtjev Prekid Prekid
UpravljaUpravljaččka jedinicaka jedinicaU/IU/I
362362
Tablica stanja uređajaTablica stanja uređaja
PisaPisaččStanje aktivanStanje aktivan
TipkovnicaTipkovnicaStanje neaktivanStanje neaktivan
MiMiššStanje neaktivanStanje neaktivan
Disk 1Disk 1Stanje neaktivanStanje neaktivan
Disk 2Disk 2Stanje aktivanStanje aktivan
Zahtjev za pisaZahtjev za pisaččememAdresa 38546Adresa 38546DuDužžina 1372ina 1372
Zahtjev za disk 2Zahtjev za disk 2file xxxfile xxxOperacija readOperacija readAdresa 43046Adresa 43046DuDužžina 20000ina 20000
Zahtjev za disk 2Zahtjev za disk 2file yyyfile yyy
Operacija readOperacija readAdresa 03458Adresa 03458
DuDužžina 500ina 500
182
363363
SpoolingSpooling•• Simultaneous Peripheral Operations OnlineSimultaneous Peripheral Operations Online•• Operacija gdje se pomoOperacija gdje se pomoććno (mno (međusredstvoeđusredstvo) )
kao napr. dkao napr. disk interpolira između procesa i Uisk interpolira između procesa i U/I /I uređaja niske brzine uređaja niske brzine (ili ograni(ili ograniččenog enog kapaciteta kapaciteta -- buffera)buffera)
•• Ako proces pokuAko proces pokušša tiskati podatke, a pisaa tiskati podatke, a pisačč je je zauzet drugim poslom, proces umjesto da zauzet drugim poslom, proces umjesto da ččeka, upisuje izlazne podatke na diskeka, upisuje izlazne podatke na disk
•• Kada se pisaKada se pisačč oslobodi oslobodi, t, tiskaju se podatci koji iskaju se podatci koji su u međuvremenu bili pohranjeni na disku su u međuvremenu bili pohranjeni na disku
364364
Ispitivanje Ispitivanje -- Pooling međutim Pooling međutim•• je tehnika za otkrivanje stanja uređaja njihovim je tehnika za otkrivanje stanja uređaja njihovim
ponavljajuponavljajuććim ispitivanjem.im ispitivanjem.
•• MoMožže se upotrijebiti kao zamjena za prekide ali e se upotrijebiti kao zamjena za prekide ali tipitipiččno smanjuje uno smanjuje uččinkovitost zbog poveinkovitost zbog poveććanog anog ““overheadaoverheada”” (anga(angažžiranjem CPUiranjem CPU--a).a).
183
365365
U/I strukturaU/I struktura
•• Small computerSmall computer--system interfacesystem interfaceSCSI suSCSI suččelje elje
Kontroler sadrKontroler sadržži lokalni i lokalni ““buffer storagebuffer storage””(pomo(pomoććnu memoriju) i niz registara nu memoriju) i niz registara specijalne namjene specijalne namjene
366366
Magnetski DiskoviMagnetski Diskovi1,8-5,25 inc (4,6-13,4 cm)
184
367367
U/I bus U/I bus sabirnicasabirnica
D1D1 D2D2CacheCache
UJ diskaUJ diska
UpravljaUpravljaččka jedinicaka jedinicaHost kontrolerHost kontroler
368368
CashingCashing
•• Podatak se kod upotrebe prebacuje u cash Podatak se kod upotrebe prebacuje u cash memoriju na privremenoj osnovimemoriju na privremenoj osnovi pod pod pretpostavkom da pretpostavkom da ćće opet trebatie opet trebati
•• VeliVeliččina cash mem je ograniina cash mem je ograniččena pa je cashe ena pa je cashe management vamanagement važžan problem projektiranja OS an problem projektiranja OS
•• Pravilna procjena veliPravilna procjena veliččine casha i algoritam ine casha i algoritam zamjene mogu povezamjene mogu poveććati adresiranje u cashu ati adresiranje u cashu između između 8080--99% pobolj99% poboljššavajuavajućći na taj nai na taj naččin in sveukupnu protosveukupnu protoččnostnost
185
369369
The EndThe End
Operacijski sustaviOperacijski sustavi
JEZGRA OSJEZGRA OS--aaSemaforiSemafori
186
371371
Radno okruRadno okružženje za izvođenje dretvienje za izvođenje dretvi
•• Programski zadatak je Programski zadatak je niz procesaniz procesa ččiji se iji se podzadatcipodzadatci nazivaju nazivaju dretvamadretvama
•• Prije pokretanja procesa operacijski sustav Prije pokretanja procesa operacijski sustav osigurava cijelo okruosigurava cijelo okružženje za njegovo enje za njegovo izvođenjeizvođenje: adresni prostor koji je : adresni prostor koji je podijeljen na podijeljen na dretvenedretvene potprostorepotprostore s s jednim dijelom zajednijednim dijelom zajedniččkim za sve dretve.kim za sve dretve.
372372
•• Dretva se pokreDretva se pokrećće tako da se u programsko e tako da se u programsko brojilo procesora pohrani adresa prve naredbe brojilo procesora pohrani adresa prve naredbe dretve. Nakon pokretanja dretva dretve. Nakon pokretanja dretva ćće se izvre se izvrššiti iti do svog do svog kraja.kraja.
•• Ona moOna možže biti tijekom izvođenja prekinuta ali e biti tijekom izvođenja prekinuta ali to ne smeta njezinom izvođenju ako se to ne smeta njezinom izvođenju ako se osigura pravilna promjena osigura pravilna promjena sadrsadržžajaaja--konteksta.konteksta.
•• Sve dretve Sve dretve ““surađujusurađuju”” te se natjete se natječču na u na organizirani naorganizirani naččin pozivajuin pozivajućći funkcije jezgre. i funkcije jezgre.
*Vidi 0*Vidi 055--0066 U/I U/I slide No 7slide No 744
187
373373
•• Jezgra se sastoji od skupine funkcija koje se Jezgra se sastoji od skupine funkcija koje se pozivaju bilo sklopovskim bilo programskim pozivaju bilo sklopovskim bilo programskim prekidima.prekidima.
•• Dretve koje Dretve koje žžele komunicirati s drugim ele komunicirati s drugim dretvama dretvama ““pozivajupozivaju”” odgovarajuodgovarajućće e jezgrinejezgrinefunkcije koje za njih obavljaju zadani posao.funkcije koje za njih obavljaju zadani posao.
•• IstaIsta je stvar i s ulaznom ili izlaznom je stvar i s ulaznom ili izlaznom operacijom koja se također obavlja preko operacijom koja se također obavlja preko jezgre. jezgre.
*Vidi 01*Vidi 01--02 Uvod slide No 702 Uvod slide No 788
374374
Jednostavan model jezgre na pretpostavkama:Jednostavan model jezgre na pretpostavkama:1.1. u adresnom prostoru procesa smjeu adresnom prostoru procesa smješšteni svi teni svi
dretvenidretveni prostoriprostori2.2. ččitav adresni prostor procesa dohvatljiv je itav adresni prostor procesa dohvatljiv je
svim dretvamasvim dretvama3.3. izvođenje dretvi se obavlja u izvođenje dretvi se obavlja u jednoprocesorjednoprocesor--
skomskom sustavu sustavu 4.4. dretve odgovarajudretve odgovarajuććim programskim prekidom im programskim prekidom
mogu pozivati mogu pozivati jezgrinejezgrine funkcije funkcije 5.5. u sustavu postoje i u sustavu postoje i U/IU/I naprave koje se naprave koje se
uzimaju u razmatranje kako bi se jezgrom uzimaju u razmatranje kako bi se jezgrom obuhvatila i obrada sklopovskih prekida. obuhvatila i obrada sklopovskih prekida.
188
375375
66. u sustavu djeluje sklopovski sat koji se mo. u sustavu djeluje sklopovski sat koji se možže e podesiti tako da izaziva periodne prekide spodesiti tako da izaziva periodne prekide speriodom periodom Tq.Tq.
Ti prekidi sluTi prekidi služže za zaustavljanje izvođenja e za zaustavljanje izvođenja nekih dretvi koje predugo traju, kao i za nekih dretvi koje predugo traju, kao i za generiranje zadanih vremenskih intervala.generiranje zadanih vremenskih intervala.Period otkucaja sata je reda veliPeriod otkucaja sata je reda veliččine ine milisekundemilisekunde (1, 10 ili 100)(1, 10 ili 100)
*Vidi 01*Vidi 01--02 Uvod slide No 702 Uvod slide No 788
376376
3 vrste 3 vrste prekida*:prekida*:
1. sklopovski prekidi od 1. sklopovski prekidi od U/IU/I napravanaprava
2. periodni sklopovski prekidi 2. periodni sklopovski prekidi satasata
3. programski prekidi koje izazivaju 3. programski prekidi koje izazivaju dretvedretve
*Vidi *Vidi 0101--02 Uvod 02 Uvod slide No 7slide No 788
189
377377
•• Svi prekidi sluSvi prekidi služže za pozivanje e za pozivanje jezgrinihjezgrinih funkcijafunkcija
•• Prekidom procesor ulazi u Prekidom procesor ulazi u jezgrinjezgrin nanaččin rada in rada ss onemoguonemoguććenim daljnjim prekidanjem.enim daljnjim prekidanjem.
•• U sustavnom naU sustavnom naččinu rada on adresira svojinu rada on adresira svojsustavnisustavni adresni prostor i upotrebljava svojadresni prostor i upotrebljava svojsustavnisustavni registar kazaljke stoga.registar kazaljke stoga.
•• U sustavnom adresnom prostoru nalaze se sve U sustavnom adresnom prostoru nalaze se sve potrebnepotrebne strukture podataka i programski odsjestrukture podataka i programski odsječčci ci koji koji ććee ostvariti ostvariti jezgrinejezgrine funkcije funkcije
378378
•• Nakon Nakon ššto se obavi potrebna to se obavi potrebna ““obrada podatakaobrada podataka””, , t.j. izvede prekidom pozvana t.j. izvede prekidom pozvana jezgrinajezgrina funkcija, funkcija, pokrepokrećće se neka druga dretva koju na odgovarajue se neka druga dretva koju na odgovarajućći i nanaččin odabire jezgra.in odabire jezgra.
•• Unutar jezgre se moraju donositi odluke koje Unutar jezgre se moraju donositi odluke koje utjeutječču na daljnje odvijanje dretvi.u na daljnje odvijanje dretvi.
•• Te se odluke donose u skladu s pravilima i na Te se odluke donose u skladu s pravilima i na temelju odgovarajutemelju odgovarajuććih podataka o dretvama a koji ih podataka o dretvama a koji se se ččuvaju u strukturi podataka jezgre. uvaju u strukturi podataka jezgre.
190
379379
JEZGRAJEZGRA
PROCESORPROCESOR
D1D1 D2D2 DnDn
UI1UI1 UI2UI2 UInUIn
programskiprogramskiprekidprekid
sklopovskisklopovskiprekidprekid
aktiviranjeaktiviranjedretvedretve
pokretanjepokretanjeU/IU/I operacijeoperacije
SATSAT
prekidprekidod sataod sata
380380
•• Jezgra se moJezgra se možže smatrati prvom hijerarhijskom e smatrati prvom hijerarhijskom razinom izgrađenom iznad sklopovlja razinom izgrađenom iznad sklopovlja procesoraprocesora..
•• Ta se razina sastoji od strukture podataka Ta se razina sastoji od strukture podataka jezgre i jezgre i jezgrinihjezgrinih funkcija.funkcija.
•• D1, D2 ....... D1, D2 ....... DnDn dretvedretve•• Poziv Poziv jezgrinejezgrine funkcijefunkcije•• Pokretanje dretve od strane jezgrePokretanje dretve od strane jezgre
191
381381
•• UI1, UI2 ....... UI1, UI2 ....... UInUIn ulaznoulazno--izlazne napraveizlazne naprave•• Svaka se Svaka se U/IU/I naprava pokrenaprava pokrećće iz jezgre e iz jezgre
operacijskog sustava operacijskog sustava •• Naprava se javlja prekidom kada pokrenuta Naprava se javlja prekidom kada pokrenuta
operacija bude zavroperacija bude završšena ena •• Sat prekidom također poziva Sat prekidom također poziva jezgrinujezgrinu funkcijufunkciju•• Poziv Poziv jezgrinejezgrine funkcije (ulazakfunkcije (ulazak u u jezgru) zbivajezgru) zbiva se se
prekidom.prekidom.•• Izlaz iz jezgre svodi se na pokretanje jedne od Izlaz iz jezgre svodi se na pokretanje jedne od
dretvi, pri dretvi, pri ččemu procesor mora biti vraemu procesor mora biti vraććen u en u korisnikorisniččki naki naččin rada. in rada.
382382
Struktura podataka jednostavnog Struktura podataka jednostavnog modela jezgre modela jezgre –– stanja dretvistanja dretvi
•• Jezgra se sastoji Jezgra se sastoji od:od:
1.1. StruktureStrukture podatakapodataka ... ... sadrsadržžii o dretvama sveo dretvama sveinformacije informacije kojekoje su potrebne za donosu potrebne za donoššenje odluka o enje odluka o njihovom njihovom izvođenjuizvođenju
1.1. FunkcijaFunkcija -- smjesmješštenihtenih u u sustavskomsustavskom djelu djelu spremnika. spremnika. PozivPoziv jezgrinejezgrine funkcije (ulazakfunkcije (ulazak u u jezgru)jezgru) zbiva se pod zbiva se pod utjecajem sklopovskog ili programskog utjecajem sklopovskog ili programskog prekida, prekida, odnosno od odnosno od ““unutarnjegunutarnjeg”” prekida sata.prekida sata.
192
383383
•• Za svaku se dretvu mora u jezgru pohraniti Za svaku se dretvu mora u jezgru pohraniti sve njezine relevantne podatke.sve njezine relevantne podatke.
•• Podatci se smjePodatci se smješštaju u jedan zapis kojeg se taju u jedan zapis kojeg se naziva naziva opisnikomopisnikom--deskriptoromdeskriptorom dretve.dretve.
•• Uz podatke vaUz podatke važžne za opis stanja dretve u ne za opis stanja dretve u opisnikuopisniku su predviđena i mjesta za su predviđena i mjesta za smjesmješštanje kazaljki koje tanje kazaljki koje ćće omogue omoguććiti da se iti da se kontrola lako premjekontrola lako premješšta iz jedne dinamita iz jedne dinamiččke ke strukture (liste) u drugu.strukture (liste) u drugu.
384384
KazaljkeKazaljke
IndentifikatorIndentifikator_procesa_procesaIndifikatorIndifikator_dretve_dretveStanje_dretveStanje_dretvePrioritet_dretvePrioritet_dretvePoPoččetna_adresa_adresnog_etna_adresa_adresnog_dretvenogdretvenog_prostora_prostoraVeliVeliččina_ina_dretvenogdretvenog_adresnog_prostora_adresnog_prostoraAdresa_prve_naredbe_dretveAdresa_prve_naredbe_dretveZadano_kaZadano_kaššnjenjenjenje
Prostor za smjeProstor za smješštanje konteksta dretvetanje konteksta dretve
OPISNIK DRETVEOPISNIK DRETVE
193
385385
•• U strukturi podataka jezgre su U strukturi podataka jezgre su zaglavljazaglavlja listilistiu koje u koje ćće se svrstavati e se svrstavati opisniciopisnici dretvi.dretvi.
•• Pojedine Pojedine jezgrinejezgrine funkcije premjefunkcije premješštati tati ćće, e, prema potrebi, prema potrebi, opisnikeopisnike dretvi iz jedne liste u dretvi iz jedne liste u drugu.drugu.
•• SmjeSmješštanje tanje opisnikaopisnika dretve u pojedinu od dretve u pojedinu od lista odrediti lista odrediti ćće njezino trenutno stanje.e njezino trenutno stanje.
386386
Lista postojeLista postojeććih dretvi ih dretvi –– pasivno stanjepasivno stanje
•• Sve dretve smjeSve dretve smješštene u adresnom prostoru tene u adresnom prostoru procesa upisane su u jednu listu tako da se procesa upisane su u jednu listu tako da se njihovi njihovi opisniciopisnici mogu redom svi uvijek mogu redom svi uvijek pregledatipregledati
•• Zaglavlje Zaglavlje PostojePostojećće_D e_D pokazuje na listu svih pokazuje na listu svih dretvi smjedretvi smješštenih u procesni adresni prostortenih u procesni adresni prostor
194
387387
PostojePostojećće_De_D
Zaglavlje Zaglavlje PostojePostojećće_D e_D pokazuje na listu svih pokazuje na listu svih dretvi smjedretvi smješštenih u procesni adresni prostortenih u procesni adresni prostor
UU toj listi toj listi opisniciopisnici se povezuju drugim po redu se povezuju drugim po redu kazaljkama jer prva po redu kazaljka svakog kazaljkama jer prva po redu kazaljka svakog opisnikaopisnika sluslužži za povezivanje u druge liste. i za povezivanje u druge liste.
388388
•• Za dretvu Za dretvu ččiji se iji se opisnikopisnik nalazi samo u listinalazi samo u listiPostojePostojećće_De_D i niti u jednoj drugoj listi kai niti u jednoj drugoj listi kažže se da se e se da se
nalazi u nalazi u pasivnom stanjupasivnom stanju..
Aktivno stanje dretveAktivno stanje dretve•• U jednoprocesorskom sustavu samo jedna od dretvi U jednoprocesorskom sustavu samo jedna od dretvi
momožže biti aktivna. To je ona e biti aktivna. To je ona ččije naredbe procesor ije naredbe procesor upravo upravo izvodi.izvodi.
•• Jezgra Jezgra ćće staviti e staviti opisnikopisnik te dretve u posebnu listu te dretve u posebnu listu ččije se zaglavlje oznaije se zaglavlje označčava sa Aktivna_D i koja moava sa Aktivna_D i koja možže e sadrsadržžavati samo jedan avati samo jedan opisnikopisnik dretve.dretve.
195
389389
Aktivno_DAktivno_D
Pri svakom pohranjivanju konteksta sadrPri svakom pohranjivanju konteksta sadržžaj registara aj registara procesora smjeprocesora smješšta se na zato predviđeno mjesto ta se na zato predviđeno mjesto unutar unutar opisnikaopisnika koji se nalazi u toj listi.koji se nalazi u toj listi.Nakon toga taj Nakon toga taj ćće se e se opisnikopisnik premjestiti u neku drugu premjestiti u neku drugu listu, a u listu listu, a u listu Aktivna_DAktivna_D dolazi dolazi opisnikopisnik dretve koja dretve koja ćće e upravo biti aktivirana. upravo biti aktivirana. Iz tog Iz tog ćće se novog e se novog opisnikaopisnika smjesmješštenog u listu tenog u listu Aktivna _DAktivna _D napuniti registri procesora kontekstom napuniti registri procesora kontekstom nove aktivne dretve.nove aktivne dretve.
390390
Pripravno stanje Pripravno stanje dretve*dretve*RedRed pripravnih dretvipripravnih dretvi
•• U jednoprocesorskom sustavu samo jedna dretva U jednoprocesorskom sustavu samo jedna dretva je u jednom trenutku aktivna a sve ostale moraju je u jednom trenutku aktivna a sve ostale moraju ččekati na dodjelu procesora.ekati na dodjelu procesora.
•• Pitanje je na koji se naPitanje je na koji se naččin odabire dretva koja in odabire dretva koja ćće e ““dobitidobiti”” procesor odnosno na koji se naprocesor odnosno na koji se naččin in dodjeljuje procesor pojedinim dretvama.dodjeljuje procesor pojedinim dretvama.
•• Najjednostavnije je u procesor pripuNajjednostavnije je u procesor pripušštati dretve tati dretve redoslijedom kojim su one postajale pripravne za redoslijedom kojim su one postajale pripravne za izvođenjeizvođenje..
•• OpisnikOpisnik nove dretve koja je postala pripravna nove dretve koja je postala pripravna stavlja se na kraj liste, a dretva stavlja se na kraj liste, a dretva ččiji je iji je opisnikopisnik na na popoččetku liste pripuetku liste pripuššta se u procesor. ta se u procesor.
*Vidi 0*Vidi 033 Proc Drtv Proc Drtv slide No slide No 18 1918 19
196
391391
Izbor dretveIzbor dretve
•• Ovom se listom ostvaruje Ovom se listom ostvaruje redred..
•• Novi Novi opisniciopisnici dretvi se umedretvi se umećću u red na kraj, u u red na kraj, a uzimaju iz reda s njegova poa uzimaju iz reda s njegova poččetka.etka.
•• Dretve se aktiviraju po Dretve se aktiviraju po redu redu prispijeprispijeććaa FIFOFIFO
392392
Izbor dretveIzbor dretve
•• Drugi naDrugi naččin odabira je zasnovan na uvain odabira je zasnovan na uvažžavanju avanju prioriteta pojedinih dretvi.prioriteta pojedinih dretvi.
•• OpisnikOpisnik se smjese smješšta u red pripravnih dretvi u ta u red pripravnih dretvi u skladu s njegovim prioritetom.skladu s njegovim prioritetom.
•• Pitanje: Pitanje: ššto procesor radi kada niti jedna dretva to procesor radi kada niti jedna dretva nije pripravna za izvođenjenije pripravna za izvođenje
•• Problem se rjeProblem se rješšava jednom latentnom dretvom ava jednom latentnom dretvom najninajnižžeg prioriteta koja uvijek moeg prioriteta koja uvijek možže e ““trotroššitiiti””vrijeme procesoravrijeme procesora--aktivira se kada u redu aktivira se kada u redu pripravnih dretvi nema niti jedne dretve.pripravnih dretvi nema niti jedne dretve.
197
393393
•• U praktiU praktiččnim rjenim rješšenjima se za svaku razinu enjima se za svaku razinu prioriteta organizira red po red prispijeprioriteta organizira red po red prispijećća.a.
•• DretveDretve za aktiviranje odabiru se iz reda za aktiviranje odabiru se iz reda najvinajviššegeg prioriteta u kojem ima dretvi. Tek prioriteta u kojem ima dretvi. Tek kada se taj red isprazni pokada se taj red isprazni poččinje prainje pražžnjenje njenje reda slijedereda slijedećće razine.e razine.
•• UU najninajnižžu razinu stavlja se latentna uvijek u razinu stavlja se latentna uvijek spremna dretva. Mospremna dretva. Možže se ree se rećći da je procesor i da je procesor za vrijeme izvođenja latentne dretve prazanza vrijeme izvođenja latentne dretve prazan. .
394394
E.W. Dijkstra:E.W. Dijkstra: Sinkronizacija semaforom*Sinkronizacija semaforom*•• Osim sklopovskog rjeOsim sklopovskog rješšenja za sinkronizaciju enja za sinkronizaciju
događaja događaja ( ) podr( ) podržžanog anog softwareom ( ) Dijkstra softwareom ( ) Dijkstra je predloje predložžio semfor kao mehanizam koji io semfor kao mehanizam koji osigurava primjenu naosigurava primjenu naččela ela ““međusobnemeđusobneiskljuisključčivosti ivosti ””. .
•• Semafor sadrSemafor sadržži zai zašštitiććenu varijablu koja je enu varijablu koja je ““integerinteger”” vrijednost. Jednom inicijalizirana vrijednost. Jednom inicijalizirana njoj se monjoj se možže pristupiti te ju se moe pristupiti te ju se možže e promijeniti samo pomopromijeniti samo pomoćću dvije operacije u dvije operacije PP(proberen) (proberen) ispitatiispitati i i VV (verhogen) (verhogen) povepoveććatiati..
Vidi 0Vidi 055--0066 UU/I/I slide No slide No 1111Vidi 0Vidi 055--0066 UU/I /I slide No slide No 13 1413 14
**Vidi 0Vidi 04 Vi4 Viššedrt izv zad edrt izv zad slide No slide No 1414--1818
198
395395
•• Dretva poziva operaciju P kada Dretva poziva operaciju P kada žželi ueli ućći u kritii u kritiččki ki odsjeodsječčak a operaciju V kada ak a operaciju V kada žželi izaeli izaćći. i.
•• Prije nego se moPrije nego se možže upotrijebiti za sinkronizaciju e upotrijebiti za sinkronizaciju semafor se mora inicijalizirati semafor se mora inicijalizirati ččime se vrijednost ime se vrijednost zazašštitiččene varijable postavlje na vrijednost koja ene varijable postavlje na vrijednost koja pokazuje da se niti jedna dretva ne nalazi u svom pokazuje da se niti jedna dretva ne nalazi u svom kritikritiččkom odsjekom odsječčku. Osim toga ku. Osim toga ““formiraformira”” se i redse i redu kojem se nalazi pokazivau kojem se nalazi pokazivačč (pointer, reference) (pointer, reference) na sve dretve koje na sve dretve koje ččekaju da uđu u kritiekaju da uđu u kritiččki odsjeki odsječčakakzazašštitiččen tim semaforom.en tim semaforom.
•• PP i i VV su jednostavne abstrakcije koje ukljusu jednostavne abstrakcije koje uključčuju i uju i skrivaju detalje primjene međusobne iskjlu skrivaju detalje primjene međusobne iskjluččivosti aivosti a
mogu se primjeniti na bilo koji broj kooperativnih mogu se primjeniti na bilo koji broj kooperativnih zavisnih dretvi. zavisnih dretvi.
•• BuduBudućći da je semafor i da je semafor SS inicijaliziran s vrijednoinicijaliziran s vrijednoššćću u 11,,samo je jednoj dretvi dozvoljeno u datom trenutku samo je jednoj dretvi dozvoljeno u datom trenutku uućći u kritii u kritiččki odjseki odjseččak. ak. KadaKada dretva dođe pred dretva dođe pred semafor poziva P(S):semafor poziva P(S):IF S > 0IF S > 0
S = S S = S –– 1 (dretve ulazi u kriti1 (dretve ulazi u kritiččki odsjeki odsječčak)ak)Else Else
PozivjuPozivjućća dretva se pridrua dretva se pridružžuje redu na semaforuuje redu na semaforujer je naijer je naiššla na neprolazan semafor S = 0la na neprolazan semafor S = 0
Kada dretva zavrKada dretva završši svoj prolaz kroz kritii svoj prolaz kroz kritiččki odsjeki odsječčakakpoziva V(S):poziva V(S):IF bilo koja dretva IF bilo koja dretva ččeka u redu ispred semafora S eka u redu ispred semafora S
nastavi sa nastavi sa ““slijedeslijedeććomom”” koja koja ččeka u redu pred Seka u redu pred SElseElse
S = S + 1 (otvori semafor .. nema dretvi u redu) S = S + 1 (otvori semafor .. nema dretvi u redu)
199
397397
Blokirana stanja dretviBlokirana stanja dretvi•• Tijekom svog izvođenja dretve mogu biti Tijekom svog izvođenja dretve mogu biti
blokirane blokirane ččekajuekajućći i ispunjenjeispunjenje nekog uvjeta za nekog uvjeta za daljnje daljnje napredovanje kao na pr. napredovanje kao na pr. ččekanje na:ekanje na:
1.1. binarnombinarnom semaforusemaforu2.2. opopććemem semaforusemaforu3.3. nana istek zadanog intervala kaistek zadanog intervala kaššnjenjanjenja4.4. zavrzavrššetaketak U/IU/I operacijeoperacije
398398
•• Binarni semaforBinarni semafor omoguomoguććuje ostvarenje uje ostvarenje međusobnog iskljumeđusobnog isključčivanja dretviivanja dretvi
•• Sastoji se od Sastoji se od 1.1. Varijable Varijable BsemBsem(I) v(I) vii koja igra ulogu koja igra ulogu
zastavice izastavice i2.2. Kazaljke koja pokazuje na red Kazaljke koja pokazuje na red opisnikaopisnika
dretvi koje nisu uspjele prodretvi koje nisu uspjele proćći semafor i semafor Semafor poprima Semafor poprima dvije (2)dvije (2) vrijednosti:vrijednosti:BsemBsem(I) v = 1 semafor je prolazan(I) v = 1 semafor je prolazanBsemBsem(I) v = 0 semafor je neprolazan(I) v = 0 semafor je neprolazan
200
399399
•• Dretva koja naiđe na prolazni semafor biti Dretva koja naiđe na prolazni semafor biti ćće e propupropušštena i jezgra stavlja vrijednost 0 u tena i jezgra stavlja vrijednost 0 u BsemBsem (I) (I) vv
•• Ako jedna ili viAko jedna ili višše dretvi pokue dretvi pokuššaju proaju proćći uz i uz neprolazni semafor, one neprolazni semafor, one ćće biti zaustavljenee biti zaustavljenei njihovi i njihovi ćće e opisniciopisnici biti prebabiti prebaččeni u red eni u red pridrupridružžen tom semaforu. en tom semaforu.
400400
•• OpOpćći semafori semafor se razlikuje od binarnog po tome se razlikuje od binarnog po tome ššto to njegova vrijednost njegova vrijednost OsemOsem (J) v mo(J) v možže poprimati e poprimati vrijednosti cijelog broja, ne samo vrijednost 0 ili 1.vrijednosti cijelog broja, ne samo vrijednost 0 ili 1.
•• Kada dretva pokuKada dretva pokušša proa proćći opi općći semafor, jezgra smanji i semafor, jezgra smanji njegovu vrijednost za jedan i ako je nakon toga njegovu vrijednost za jedan i ako je nakon toga OsemOsem(J) (J) dozvoljavadozvoljava dretvi dretvi prolazprolaz
•• Ako je nakon smanjenja Ako je nakon smanjenja OsemOsem(J) (J) << 00 dretva se blokira dretva se blokira u red pridruu red pridružžen tom open tom opććem semaforuem semaforu
•• Neka druga dretva Neka druga dretva (kada zavr(kada završši korii korišštenje optenje opććeg eg semafora) semafora) zatrazatražžii njegovo njegovo ““oslobađanjeoslobađanje”” šštoto uzrokuje uzrokuje povepoveććanje anje OsemOsem(J) v(J) v
•• Time se eventualno moTime se eventualno možže ispuniti uvjet za pokretanje e ispuniti uvjet za pokretanje neke druge dretveneke druge dretve koja je bila koja je bila blokiranablokirana
>> ili = 0ili = 0
201
401401
•• TreTrećći razlog blokiranja neke dretve moi razlog blokiranja neke dretve možže biti e biti žželjeno odgađanjeeljeno odgađanje izvođenja za zadani interval izvođenja za zadani interval vremena.vremena.
•• Taj interval je cjelobrojni viTaj interval je cjelobrojni viššekratnik periode ekratnik periode otkucaja sata otkucaja sata TqTqDT = M x DT = M x TqTq
•• OpisnikOpisnik dretve koju se dretve koju se žželi odgoditi stavlja se u eli odgoditi stavlja se u red red OdgođenoOdgođeno_n_n i u njegovu lokaciju i u njegovu lokaciju Zadano_kaZadano_kaššnjenjenjenje zapisuje broj M.zapisuje broj M.
•• Pri svakom prekidu sata vrijednost pohranjena u Pri svakom prekidu sata vrijednost pohranjena u spremniku se smanjuje za jedan i kada dosegne 0 spremniku se smanjuje za jedan i kada dosegne 0 dretva se iz reda odgođenih prebacuje među dretva se iz reda odgođenih prebacuje među pripravne pripravne dretve.dretve.
402402
•• Ako treba odgođeno izvoditi viAko treba odgođeno izvoditi višše dretvi njih e dretvi njih se u red odgođenih dretvi mose u red odgođenih dretvi možže smjestiti e smjestiti sortirano (u redosljedu)sortirano (u redosljedu)
M1 M1 << M2 M2 << M3 M3 << ..........•• U prvi se U prvi se opisnikopisnik upisuje upisuje apsolutnu apsolutnu
vrijednostvrijednost zadanog kazadanog kaššnjenjanjenja a u ostale a u ostale opisnikeopisnike samo samo dodatno odgađanje u odnosu dodatno odgađanje u odnosu na prethodnu dretvuna prethodnu dretvu
•• Smanjuje se Smanjuje se Zadano_kaZadano_kaššnjenjenjenje samo u samo u prvomprvom opisnikuopisniku i i kada ono padne na 0,kada ono padne na 0,opisnikopisnik se se odstranjujeodstranjuje iz reda i poiz reda i poččne ne smanjivanje u smanjivanje u drugomdrugom opisniku u redosljedu opisniku u redosljedu kakaššnjenja.njenja.
202
403403
•• Zadnji, Zadnji, ččetvrti razlog blokiranja je etvrti razlog blokiranja je ččekanjeekanje na na popoččetak/zavretak/završšetaketak U/IU/I operacije. operacije.
•• Dretva moDretva možže obavljati e obavljati U/IU/I operaciju samo operaciju samo preko jezgre.preko jezgre.
•• Pretpostavka je da svaku Pretpostavka je da svaku U/IU/I napravu dretve napravu dretve koriste koriste pojedinapojedinaččno. Tono. To znaznačči da svakoj i da svakoj U/IU/Inapravi treba pridrunapravi treba pridružžiti jedan binarni semafor iti jedan binarni semafor koji dretva najprije mora prokoji dretva najprije mora proćći. i.
•• Nakon toga ona Nakon toga ona ćće pozivati e pozivati jezgrinujezgrinu funkciju funkciju pomopomoćću koje u koje ćće obavljati e obavljati U/IU/I operaciju. operaciju.
404404
Red_UI(N)Red_UI(N)
Pretpostavka je da dretva koja je zatraPretpostavka je da dretva koja je zatražžila ila U/IU/I mora primora priččekatiekatizavrzavrššetak prethodne operacije.etak prethodne operacije.
U tom sluU tom sluččaju njezin aju njezin ćće se e se opisnikopisnik smjestiti u RED_UI(N).smjestiti u RED_UI(N).On On ćće biti premjee biti premješšten u red Pripravna_D kada se dogodi ten u red Pripravna_D kada se dogodi sklopovski prekid od naprave k.sklopovski prekid od naprave k.
203
405405
•• Ako dretve intenzivno obavljaju Ako dretve intenzivno obavljaju U/IU/I operacijeoperacijemomožžee se dogoditi da su one u nekom se dogoditi da su one u nekom vremenskom razdoblju sve blokirane.vremenskom razdoblju sve blokirane.
•• UU raraččunalu se niunalu se niššta ne događa i on ta ne događa i on ““ččekaeka”” da da se dogodi neki prekid koji se dogodi neki prekid koji ćće e ““oožživjetiivjeti”” barem barem jednu dretvu.jednu dretvu.
ZakljuZaključčakak::•• Tijekom rada dretve prelaze iz stanja u Tijekom rada dretve prelaze iz stanja u
stanje i to pod utjecajem stanje i to pod utjecajem jezgrinihjezgrinih funkcija. funkcija.
406406
JezgrineJezgrine funkcijefunkcije
•• Ulazak u jezgru i izlazak iz jezgreUlazak u jezgru i izlazak iz jezgrePoziv Poziv jezgrinejezgrine funkcije funkcije –– ulazakulazak u jezgruu jezgru--zbiva se zbiva se podpod utjecajem sklopovskog ili utjecajem sklopovskog ili programskog modula.programskog modula.
U jednoprocesorskom sustavu je time U jednoprocesorskom sustavu je time osigurano međusobno iskljuosigurano međusobno isključčeno obavljanje eno obavljanje jezgrinihjezgrinih funkcija.funkcija.
204
407407
Funkcije za binarni semaforFunkcije za binarni semafor•• Uz binarni su semafor potrebne 2 funkcijeUz binarni su semafor potrebne 2 funkcije1.1. Ispitati_Ispitati_BsemBsem(I);(I); koju dretva poziva kada koju dretva poziva kada žželi ueli ućći u i u
kritikritiččki odsjeki odsječčak:ak:ifif I I >> 00
I = I I = I --1 1 ElseElsePozivajuPozivajuććaa dretva se pridrudretva se pridružži redu i redu ččekanja na semaforuekanja na semaforu2. Postaviti_2. Postaviti_BsemBsem(I); koju dretva poziva kada izlazi iz (I); koju dretva poziva kada izlazi iz
kritikritiččkog odsjekog odsječčka ka Ako bilo koja dretva Ako bilo koja dretva ččeka na Ieka na INastaviti sa Nastaviti sa ““slijedeslijedeććomom”” dretvom u redu dretvom u redu ččekanja semafora (FIFO)ekanja semafora (FIFO)ElseElse
I = I + 1 I = I + 1
408408
FunkcijeFunkcije za opza općći semafor i semafor •• OpOpćći semafor slui semafor služži za sinkronizaciju dretvi te za i za sinkronizaciju dretvi te za
brojanje događaja i identibrojanje događaja i identiččnih nih ““sredstavasredstava”” koji stoje koji stoje na raspolaganju na raspolaganju
•• Poprima vrijednosti iz skupine cijelih brojeva.Poprima vrijednosti iz skupine cijelih brojeva.SvakojSvakoj se dretvi se dretvi DiDi pridrupridružžuje njezin uje njezin ““privatniprivatni””semafor Os(I) i pripisuje posemafor Os(I) i pripisuje poččetna vrijednost u opetna vrijednost u opććem em slusluččaju aju >> 0 i 0 i >> 1.1.Os(I)vOs(I)v je jednak (1je jednak (1--Np(I)) gdje je Np(I) broj Np(I)) gdje je Np(I) broj neposrednih prethodnika dretve neposrednih prethodnika dretve DiDi..ProgramePrograme dretvi trebalo bi dretvi trebalo bi nadopuniti nadopuniti tako da svaka tako da svaka dretva prije svoje prve naredbe poziva funkciju dretva prije svoje prve naredbe poziva funkciju kojom ispituje svoj semafor, a po svome zavrkojom ispituje svoj semafor, a po svome završšetku etku poziva funkcije kojima postavlja semafore svih svojih poziva funkcije kojima postavlja semafore svih svojih neposrednih sljedbenica. neposrednih sljedbenica.
205
409409
D1D1
D2D2D3D3
D4D4
D5D5 D6D6
D7D7
I 1 2 3 4 5 6 7 I 1 2 3 4 5 6 7 Np(I) 0 1 1 1 2 2 2 Np(I) 0 1 1 1 2 2 2 Os(I) 1 0 0 0 Os(I) 1 0 0 0 --1 1 --1 1 --11
Os(I)v=(1Os(I)v=(1--Np(I)) Np(I)) Np(I) broj neposrednih prethodnikaNp(I) broj neposrednih prethodnika
410410
Ako se sa D(I) obiljeAko se sa D(I) obilježži programski odsjei programski odsječčak dretve D1ak dretve D1onda se nadopunjene dretve onda se nadopunjene dretve D1D1‘‘ dobije na slijededobije na slijedećći nai naččin:in:D1D1‘‘ Ispitati_Os(1); D(1)Ispitati_Os(1); D(1)
Postaviti_Os(2); Postaviti_Os(3); Postaviti_Os(4); Postaviti_Os(2); Postaviti_Os(3); Postaviti_Os(4); D2D2‘‘ Ispitati_Os(2); D(2); Postaviti_Os(5); Ispitati_Os(2); D(2); Postaviti_Os(5);
D3D3‘‘ Ispitati_Os(3); D(3); Postaviti_Os(5); Postaviti_Os(6); Ispitati_Os(3); D(3); Postaviti_Os(5); Postaviti_Os(6);
D4D4‘‘ Ispitati_Os(4); D(4); Postaviti_Os(6); Ispitati_Os(4); D(4); Postaviti_Os(6);
D5D5‘‘ Ispitati_Os(5); D(5); Postaviti_Os(7); Ispitati_Os(5); D(5); Postaviti_Os(7);
D6D6‘‘ Ispitati_Os(6); D(6); Postaviti_Os(7); Ispitati_Os(6); D(6); Postaviti_Os(7);
D7D7‘‘ Ispitati_Os(7); D(7); Ispitati_Os(7); D(7); Tako Tako nadopunjenenadopunjene dretve mogu se sve proglasiti pripravnima dretve mogu se sve proglasiti pripravnima i u proizvoljnom i u proizvoljnom redoslijeduredoslijedu smjestiti u red pripravnih dretvi.smjestiti u red pripravnih dretvi.
206
411411
ČČekanje na raspoloekanje na raspoložživost ivost ““sredstvasredstva””
•• Ovaj je naOvaj je naččin naroin naroččito koristan kada se ito koristan kada se ““sredstvosredstvo””((resourceresource) dodjeljuje iz niza ) dodjeljuje iz niza indentiindentiččnihnih ((poolpool).).
•• Semafor se inicira s ukupnim brojem sredstava na Semafor se inicira s ukupnim brojem sredstava na raspolaganju. raspolaganju.
•• Svako operacija Ispitati_Os(n) smanjuje vrijednost Svako operacija Ispitati_Os(n) smanjuje vrijednost semafora za 1, pokazujusemafora za 1, pokazujućći da je dodatno sredstvo i da je dodatno sredstvo zauzeto od strane neke dretve. zauzeto od strane neke dretve.
•• Svaka Postaviti_Os(n) poveSvaka Postaviti_Os(n) poveććava vrijednost za 1 ava vrijednost za 1 pokapoka--zujuzujuććii da je dretva vratila sredstvo (u da je dretva vratila sredstvo (u poolpool) i da je ono ) i da je ono na raspolaganju drugoj dretvi. na raspolaganju drugoj dretvi.
•• Ako Ispitati_Os(n) pokuAko Ispitati_Os(n) pokuššava zauzeti sredstvo kada je ava zauzeti sredstvo kada je vrijednost semafora 0, mora vrijednost semafora 0, mora ččekati dok ga neka druga ekati dok ga neka druga dretva ne vrati operacijom Postaviti_Os(n). dretva ne vrati operacijom Postaviti_Os(n).
412412
Funkcije za ostvarivanje kaFunkcije za ostvarivanje kaššnjenjanjenja
•• Dretva moDretva možže zatrae zatražžiti da sama bude odgođena za M iti da sama bude odgođena za M perioda otkucaja sata. U tom sluperioda otkucaja sata. U tom sluččaju ona aju ona ćće pozvati e pozvati jezgrinujezgrinu funkciju Zakasniti_sebe (M) na funkciju Zakasniti_sebe (M) na pr.pr.
•• j_funkcijaj_funkcija Zakasniti_sebe (M) (Zakasniti_sebe (M) (pohraniti kontekst u pohraniti kontekst u opisnikopisnik Aktivna_D;Aktivna_D;uvrstiti uvrstiti opisnikopisnik iz reda Aktivna iz reda Aktivna_D _D u red Odgođenau red Odgođena_D; _D; aktivirati prvu dretvu iz reda Pripravna_D;aktivirati prvu dretvu iz reda Pripravna_D;) )
207
413413
Aktivna dretva moAktivna dretva možže zatrae zatražžiti i odgođeno izvođenjeiti i odgođeno izvođenjeneke druge dretve.neke druge dretve.
Funkcija moFunkcija možže odgođeno pokrenuti neku drugu dretvu e odgođeno pokrenuti neku drugu dretvu samo ako je ova pasivna. samo ako je ova pasivna. Zbog toga se pokuZbog toga se pokuššaj pokretanja dretve koja nije bilaaj pokretanja dretve koja nije bilapasivna mora smatrati pogrepasivna mora smatrati pogrešškom te se to posebno kom te se to posebno dojavljuje.dojavljuje.
Deblokiranje dretve koja se nalazi u redu OdgođenaDeblokiranje dretve koja se nalazi u redu Odgođena_D_Dizvrizvrššiti iti ćće funkcija koja se poziva prekidom od stranee funkcija koja se poziva prekidom od stranesata.sata.
414414
Funkcije za obavljanje Funkcije za obavljanje U/IU/I operacijaoperacija
•• Dretva koja Dretva koja žželi obaviti neku eli obaviti neku U/IU/I operaciju operaciju ne mone možže to obaviti neposredno. Ona mora e to obaviti neposredno. Ona mora pozvati odgovarajupozvati odgovarajućću u jezgrinujezgrinu funkciju.funkciju.
•• U pozivu te funkcije ona U pozivu te funkcije ona ćće specificirati e specificirati vrstu operacije i adrese izlaznih podataka vrstu operacije i adrese izlaznih podataka odnosno adrese na koje treba smjestiti odnosno adrese na koje treba smjestiti ulazne podatke. ulazne podatke.
208
415415
•• Pretpostavka je da dretva koja je pokrenula Pretpostavka je da dretva koja je pokrenula U/IU/Ioperaciju mora operaciju mora ččekati dok se ta operacijaekati dok se ta operacijane obavi.ne obavi.
ZbogZbog toga se toga se opisnikopisnik dretve blokira u redu UI(K)dretve blokira u redu UI(K)
•• Naredba pokrenuti Naredba pokrenuti U/IU/I operaciju na napravi K operaciju na napravi K momožžee izazvati vrlo sloizazvati vrlo složženu operaciju enu operaciju prenoprenoššenjaenjapodatakapodataka pozivajupozivajućći i posebne i i posebne potprogramepotprogrameii dretve koje obavljaju posao prenodretve koje obavljaju posao prenoššenja.enja.
416416
Objektni model jezgre operacijskog Objektni model jezgre operacijskog sustavasustava
•• Suvremeni se pristup izgradnji sloSuvremeni se pristup izgradnji složženih enih programskih sustava zasniva na objektnom programskih sustava zasniva na objektnom pristupupristupu
•• ObjektObjekt se sastoji od se sastoji od strukture podatakastrukture podataka i i od od funkcijafunkcija koje se nazivaju koje se nazivaju metodamametodama. . Odziv objekta na pojedine funkcije ovisi o Odziv objekta na pojedine funkcije ovisi o trenutnom unutarnjem stanju objekta.trenutnom unutarnjem stanju objekta.
209
417417
••Prethodno je bilo govora o naPrethodno je bilo govora o naččelu hijerarhijske izgradnje elu hijerarhijske izgradnje operaopera--cijskogcijskog sustava. Jezgra operacijskog sustava je jedna od razina sustava. Jezgra operacijskog sustava je jedna od razina hijerarhijske izgradnjehijerarhijske izgradnje
••Opisana struktura podataka jezgre i naOpisana struktura podataka jezgre i naččini ostvarenja pojedinih ini ostvarenja pojedinih jezgrinihjezgrinih funkcija su skrivene vifunkcija su skrivene viššim razinama programa koji im razinama programa koji ćće te e te funkcije koristiti.funkcije koristiti.
••U dosadaU dosadaššnjem opisu jezgre bilo je govora o razlinjem opisu jezgre bilo je govora o različčitim objektima itim objektima ili ili klasamaklasama objekata za koje su definirane neke operacije. To su objekata za koje su definirane neke operacije. To su klase procesa, dretvi, binarnih i opklase procesa, dretvi, binarnih i opććih semafora.ih semafora.Do pojedinih se objekata određene klase dolazi ili preko kazaljkDo pojedinih se objekata određene klase dolazi ili preko kazaljki ili i ili simbolisimboliččkih identifikatorakih identifikatora--imena. Svi se objekti dretvi mogu imena. Svi se objekti dretvi mogu dohvatiti preko zaglavlja Postojedohvatiti preko zaglavlja Postojećće_D. Svaka pojedina dretva je e_D. Svaka pojedina dretva je jedan konkretni objekt klase dretvi. jedan konkretni objekt klase dretvi.
418418
••Dretve kao objekti jedne klase mogu koristiti objekte Dretve kao objekti jedne klase mogu koristiti objekte drugih klasa pri svom izvođenjudrugih klasa pri svom izvođenju. Tako dretve mogu . Tako dretve mogu koristiti objekte iz klase binarnih semafora za međukoristiti objekte iz klase binarnih semafora za među--sobno iskljusobno isključčivanje i objekte opivanje i objekte opććih semafora za ih semafora za sinkrosinkro--nizacijunizaciju ili brojanje nekih događaja ili brojanje nekih događaja..
••Objekti jezgre se ostvaruju unutar Objekti jezgre se ostvaruju unutar sustavskogsustavskog adresnog adresnog prostora. Oni tamo prostora. Oni tamo ““skrivenoskriveno”” od korisnika od korisnika izgrađuju izgrađuju svoje strukture podataka i u tim strukturama pohranjuju svoje strukture podataka i u tim strukturama pohranjuju svoja stanja.svoja stanja.
••Izvan jezgre poznati su samo naIzvan jezgre poznati su samo naččini pokretanja ini pokretanja pojedinih pojedinih operacijaoperacija nad tim objektima nad tim objektima
210
419419
The EndThe End
Operacijski sustaviOperacijski sustavi
Međudretvena komunikacijaMeđudretvena komunikacija
211
421421
CikliCikliččke dretveke dretve
UlaznaUlaznadretvadretva
Radna Radna dretvadretva
Izlazna Izlazna dretvadretva
UlazUlaz UlazniUlaznipodatcipodatci
RezultatiRezultati IzlazIzlaz
422422
Okolina Okolina ““proizvođaproizvođačč –– potropotroššaačč””•• ProizvođaProizvođačč ššalje podatke u dijeljeno podrualje podatke u dijeljeno područčje iz je iz
kojeg ih kojeg ih ččita dretva potroita dretva potroššaačča. a. •• U sluU sluččaju nesinkroniziranog djelovanja aju nesinkroniziranog djelovanja podatcipodatcićće se ili izgubiti ili duplicirati.e se ili izgubiti ili duplicirati.
•• Međusobno iskljuMeđusobno isključčenje je potrebno jedino u enje je potrebno jedino u slusluččaju kada dretve pristupaju dijeljenim aju kada dretve pristupaju dijeljenim promjenljivimpromjenljivim podatcimapodatcima. .
•• Kada se dretve izvrKada se dretve izvrššavaju bez međusobnog avaju bez međusobnog konflikta (konflikta (ččitanje) OS im mora dozvoliti da se itanje) OS im mora dozvoliti da se izvode konkurentno. izvode konkurentno.
212
423423
Problem potroProblem potroššaačča i proizvođaa i proizvođaččaa
•• U U viviššedretvenomedretvenom sustavu dretve surađuju na sustavu dretve surađuju na zajednizajedniččkom poslu razmjenjujukom poslu razmjenjujućći podatke preko i podatke preko zajednizajedniččkih lokacija u dijeljenom spremniku.kih lokacija u dijeljenom spremniku.
•• ProizvođaProizvođačč ((producerproducer) je cikli) je cikliččka dretva u kojoj ka dretva u kojoj se generiraju se generiraju podatcipodatci--uobliuobliččujuuju kao poruka i kao poruka i ššalju alju potropotroššaaččuu
•• PotroPotroššaačč ((consumerconsumer) je cikli) je cikliččki procesor koji ki procesor koji ččeka eka na poruke, prihvana poruke, prihvaćća ih i koristi podatke prispjele a ih i koristi podatke prispjele u poruci. u poruci.
424424
•• ProizvođaProizvođačč::dokdok je (I) (je (I) (
proizvesti poruku;proizvesti poruku;poslati poruku;poslati poruku;))
•• PotroPotroššaačč::dok je (I) (dok je (I) (
ččekati poruku;ekati poruku;prihvatiti poruku;prihvatiti poruku;potropotroššiti poruku;iti poruku;))
U opU opććem sluem sluččaju proizvođaaju proizvođačč i potroi potroššaačč obavljaju poslove obavljaju poslove proizvoljnomproizvoljnombrzinombrzinom..
Postoje vremenska razdoblja kada potroPostoje vremenska razdoblja kada potroššaačč ne mone možže obraditi sve e obraditi sve porukeporukepa sepa se one nagomilavaju. one nagomilavaju.
ad4
213
425425
Nagomilane se poruke spremaju u Nagomilane se poruke spremaju u međuspremnikmeđuspremnik kako bi ih potrokako bi ih potroššaačč mogao mogao potropotroššiti. iti. MeđuspremnikMeđuspremnik se organizira u se organizira u adresnom prostoru procesa kome dretve adresnom prostoru procesa kome dretve pripadaju*.pripadaju*.
Međuprostor se mo Međuprostor se možže zamisliti kao poredak e zamisliti kao poredak pretinaca oznapretinaca označčenih kao MS(I). enih kao MS(I).
*Vidi 0*Vidi 033 Proc i dretvProc i dretv slide No slide No 3030
426426
Pretinci MS(I):Pretinci MS(I):
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
Uvode se 2 indeksa (kazaljke)Uvode se 2 indeksa (kazaljke)
UL pokazuje na prazni pretinac u koji proizvođaUL pokazuje na prazni pretinac u koji proizvođačč treba smjestiti treba smjestiti slijedeslijedećću poruku u poruku
IZ pokazuje na pretinac iz kojeg potroIZ pokazuje na pretinac iz kojeg potroššaačč upravo treba preuzeti upravo treba preuzeti poruku poruku
Na poNa poččetku obje kazaljke pokazuju na pretinac MS(0) te je etku obje kazaljke pokazuju na pretinac MS(0) te je UL=0 i IZ=0UL=0 i IZ=0
214
427427
•• ProizvođaProizvođačč uvijek pronalazi mjesto u uvijek pronalazi mjesto u međuspremnikumeđuspremniku::
dok je (I) (dok je (I) (proizvesti poruku P;proizvesti poruku P;MS(UL) = P MS(UL) = P UL = UL +1;UL = UL +1;))
PotroPotroššaačč momožže potroe potroššiti poruku tek nakon iti poruku tek nakon ššto ona bude stavljena u to ona bude stavljena u spremnik. On mospremnik. On možže preuzeti poruku iz e preuzeti poruku iz međuspremnikameđuspremnika u svoj lokalni u svoj lokalni spremnik R tek kada je ispunjen uvjet ULspremnik R tek kada je ispunjen uvjet UL>>IZIZ
•• PotroPotroššaačč::dok je (I) (dok je (I) (
ččekati na ispunjenje uvjeta ULekati na ispunjenje uvjeta UL>>IZIZ;;R = MS(IZ);R = MS(IZ);IZ = IZ +1 IZ = IZ +1 potropotroššiti poruku R;iti poruku R;))
428428
•• Svako stavljanje poruke u Svako stavljanje poruke u međuspremnikmeđuspremnik pomipomičče e kazaljku UL za jedno mjesto u desno, i svako kazaljku UL za jedno mjesto u desno, i svako uzimanje poruke iz uzimanje poruke iz međuspremnikameđuspremnikapomipomičče kazaljku IZ za jedno mjesto u desno. e kazaljku IZ za jedno mjesto u desno.
•• RazlikaRazlika ULUL--IZ je jednaka broju poruka koje se IZ je jednaka broju poruka koje se nalazenalaze u u međuspremnikumeđuspremniku..
•• TaTa se razlika povese razlika poveććava za jedan (1) pri ava za jedan (1) pri stavljanjustavljanju svake poruke u spremnik, i smanjuje za svake poruke u spremnik, i smanjuje za jedanjedan (1) pri svakom uzimanju poruke iz (1) pri svakom uzimanju poruke iz
međuspremnika međuspremnika..
215
429429
MeđuspremnikMeđuspremnik prazanprazan
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 0 UL = 0
IZ = 0 IZ = 0
430430
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 1 UL = 1
IZ = 0IZ = 0
ULUL--IZ = 1 IZ = 1
216
431431
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 2 UL = 2
IZ = 0IZ = 0
ULUL--IZ = 2 IZ = 2
432432
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 3 UL = 3
IZ = 0IZ = 0
ULUL--IZ = 3 IZ = 3
217
433433
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 3 UL = 3
IZ = 1IZ = 1
ULUL--IZ = 2IZ = 2
434434
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 3 UL = 3
IZ = 2IZ = 2
ULUL--IZ = 1IZ = 1
218
435435
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 4 UL = 4
IZ = 2IZ = 2
ULUL--IZ = 2IZ = 2
436436
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 5 UL = 5
IZ = 2IZ = 2
ULUL--IZ = 3IZ = 3
219
437437
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ IZ ULUL
UL = 6 UL = 6
IZ = 2IZ = 2
ULUL--IZ = 4IZ = 4
438438
Umetanje porukeUmetanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ IZ ULUL
UL = 7 UL = 7
IZ = 2IZ = 2
ULUL--IZ = 5IZ = 5
220
439439
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ IZ ULUL
UL = 7 UL = 7
IZ = 3IZ = 3
ULUL--IZ = 4IZ = 4
440440
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ IZ ULUL
UL = 7 UL = 7
IZ = 4IZ = 4
ULUL--IZ = 3IZ = 3
221
441441
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ IZ ULUL
UL = 7 UL = 7
IZ = 5IZ = 5
ULUL--IZ = 2IZ = 2
442442
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 7 UL = 7
IZ = 6IZ = 6
ULUL--IZ = 1IZ = 1
222
443443
Uzimanje porukeUzimanje poruke
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 7 UL = 7
IZ = 7IZ = 7
ULUL--IZ = 0IZ = 0
444444
MeđuspremnikMeđuspremnik prazan prazan
MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8) MS(0) MS(1) MS(2) MS(3) MS(4) MS(5) MS(6) MS(7) MS(8)
IZ ULIZ UL
UL = 7 UL = 7
IZ = 7IZ = 7
ULUL--IZ = 0IZ = 0
223
445445
•• Za Za brojanje poruka u spremniku slubrojanje poruka u spremniku služži i brojabrojaččkiki semafor semafor OsemOsem(1)(1) s pos poččetnom etnom vrijednovrijednoššćću u OsemOsem(1) (1) = 0= 0
•• ProizvođaProizvođačč postavlja taj semafor:postavlja taj semafor:dok jedok je (I) ((I) (
proizvesti poruku P;proizvesti poruku P;MS(UL) = P;MS(UL) = P;UL = (UL + 1);UL = (UL + 1);postaviti_postaviti_OsemOsem(1);(1);))
446446
•• PotroPotroššaačč ispituje semafor:ispituje semafor:dok jedok je (I) ((I) (
ispitati_ispitati_OsemOsem(1);(1);R = MS(IZ);R = MS(IZ);IZ = (IZ + 1);IZ = (IZ + 1);potropotroššiti poruku R;iti poruku R;))
224
447447
•• Ispred potroIspred potroššaačča se oblikuje red poruka:a se oblikuje red poruka:•• ProizvođaProizvođačč stavlja novu poruku u red a potrostavlja novu poruku u red a potroššaačč
uzima novu poruku iz reda i trouzima novu poruku iz reda i trošši jui ju•• Za njeno troZa njeno troššenje potroenje potroššaačču je potrebno stanovito u je potrebno stanovito
vrijeme i zbog toga se movrijeme i zbog toga se možže dogoditi da se u redu e dogoditi da se u redu poruka povremeno nađe veporuka povremeno nađe većći broj poruka koje i broj poruka koje ččekaju kako bi bile potroekaju kako bi bile potroššene.ene.
•• Ovakav red Ovakav red ččekanjaekanja ((queuequeue) zajedno s ) zajedno s potropotroššaaččem koji se moem koji se možže nazvati e nazvati posluposlužžiteljemiteljem((serverserver) ) ččini najjednostavniji model za analizu ini najjednostavniji model za analizu sustava.sustava.
•• Takvom se analizom bavi teorija redovaTakvom se analizom bavi teorija redova•• ((queuingqueuing theory)theory)
448448
Umjesto proizvođaUmjesto proizvođačča strelica kao simbol ulazaa strelica kao simbol ulaza
RED RED ČČEKANJAEKANJA POSLUPOSLUŽŽITELJITELJ
PosluPoslužžitelj je cikliitelj je cikliččka dretva koja redovito uzima iz reda ka dretva koja redovito uzima iz reda ččekanja poruke, obrekanja poruke, obrađuje ih i ađuje ih i ššalje na izlaz rezultate obrade. alje na izlaz rezultate obrade.
Poruka
225
449449
MeđudretvenaMeđudretvena komunikacija s pomokomunikacija s pomoćću u ograniograniččenog spremnikaenog spremnika
•• Ostvarenje Ostvarenje međuspremnikameđuspremnika pomopomoćću neograniu neograniččenog enog prostora je nepraktiprostora je nepraktiččno jer bi trebalo rezervirati no jer bi trebalo rezervirati veliki dio procesnog spremniveliki dio procesnog spremniččkog kog prostora.prostora.
•• Ako se pretpostavi da u sustavu neAko se pretpostavi da u sustavu nećće biti nikad vie biti nikad višše e od od NN poruka onda se moporuka onda se možže e međuspremnikmeđuspremnik ograniograniččiti iti na na NN pretinaca i povepretinaca i poveććanje kazaljki izvesti po anje kazaljki izvesti po modulu modulu NN t.j. sat.j. saččiniti cikliiniti cikliččki spremnik.ki spremnik.
•• PomicanjePomicanje kazaljke: UL = (UL+1) kazaljke: UL = (UL+1) modmod N; N; IZ = (IZ+1) IZ = (IZ+1) modmod N;N;
450450
0 1 2 N0 1 2 N--3 N3 N--2 N2 N--11
IZ ULIZ UL
Ako se Ako se nemonemožžee sa sigurnosa sigurnoššćću utvrditi da se u utvrditi da se međuspremnikmeđuspremniknenećće prepuniti mora se osigurati da proizvođae prepuniti mora se osigurati da proizvođačč ne stavlja ne stavlja poruke u puni spremnik.poruke u puni spremnik.Stoga se uvodi novi semafor Stoga se uvodi novi semafor OsemOsem (2) koji ima zada(2) koji ima zadaćću u brojanja praznih pretinaca.brojanja praznih pretinaca.
PoPoččetna vrijednost etna vrijednost OsemOsem (2) je V = N (2) je V = N
226
451451
•• ProizvođaProizvođačč::dok jedok je (I) ((I) (
proizvesti poruku P;proizvesti poruku P;ispitati_ispitati_OsemOsem(2);(2);MS(UL) = P;MS(UL) = P;UL = (UL + 1) UL = (UL + 1) modmod N;N;postaviti_postaviti_OsemOsem(1);(1);
))
452452
•• PotroPotroššaačč svaki puta kada preuzima poruku iz svaki puta kada preuzima poruku iz međuspremnikameđuspremnika postavlja postavlja OsemOsem(2) (2) dok jedok je (I) ((I) (
ispitati_ispitati_OsemOsem(1);(1);R = MS(IZ);R = MS(IZ);IZ = (IZ + 1) IZ = (IZ + 1) modmod N;N;postaviti_postaviti_OsemOsem(2)(2)potropotroššiti poruku R;iti poruku R;
))
227
453453
•• Pristup Pristup međuspremnikumeđuspremniku se ne smatra kritise ne smatra kritiččkim kim odsjeodsječčkom jer proizvođakom jer proizvođačč upotrebljava samo upotrebljava samo kazaljku UL a potrokazaljku UL a potroššaačč samo kazaljku IZ samo kazaljku IZ..
•• Ako međutim viAko međutim višše proizvođae proizvođačča a ššalje poruke alje poruke jednom potrojednom potroššaačču onda oni svi moraju dohvau onda oni svi moraju dohvaććati ati kazaljku UL.kazaljku UL.
•• U tom sluU tom sluččaju za sve proizvođaaju za sve proizvođačče pristup do e pristup do kazaljke UL postaje kritikazaljke UL postaje kritiččki odsjeki odsječčak i treba ga ak i treba ga zazašštititi dodatnim binarnim semaforom.tititi dodatnim binarnim semaforom.
454454
RED RED ČČEKANJAEKANJA
POSLUPOSLUŽŽITELJITELJ
PROIZVOĐAPROIZVOĐAČČII
228
455455
ProizvođaProizvođačči bi se morali nadopunitii bi se morali nadopunitidok jedok je (I) ((I) (
proizvesti poruku P;proizvesti poruku P;ispitati_ispitati_OsemOsem(2);(2);ispitati_ispitati_BsemBsem(1) (1) MS(UL) = P;MS(UL) = P;UL = (UL + 1) UL = (UL + 1) modmod N;N;postaviti_postaviti_BsemBsem = 1 = 1 postaviti_postaviti_OsemOsem(1);(1);
))U sluU sluččaju viaju višše potroe potroššaačča tada bi i za njih trebalo a tada bi i za njih trebalo uvesti dodatni binarni semafor.uvesti dodatni binarni semafor.
456456
UvjetiUvjeti za nastajanje potpunog zastojaza nastajanje potpunog zastoja
•• Potpuni se zastoj moPotpuni se zastoj možže dogoditi kada e dogoditi kada se najmanjese najmanje22 dretve nadmedretve nadmećću za najmanje 2 sredstva.u za najmanje 2 sredstva.
•• PretpostavkaPretpostavka: : DiDi i Dj trebaju za svoje izvođenje i Dj trebaju za svoje izvođenje 2 2 sredstva koji se moraju upotrebljavati međusobno sredstva koji se moraju upotrebljavati međusobno iskljuisključčenoeno..
•• PojedinaPojedinaččnunu uporabu dvaju sredstava ostvaruje se uporabu dvaju sredstava ostvaruje se kritikritiččkim kim odsjeodsječčcima zacima zašštitiććenimenim binarnim semaforima binarnim semaforima Bsem(KBsem(K) i ) i BsemBsem(L) (L)
229
457457
Dvije dretve imaju slijedeDvije dretve imaju slijedećći i izgledizgled
Dretva Dretva DiDi Dretva Dj Dretva Dj .. .... ..
Ispitati_Ispitati_BsemBsem(K)(K) Ispitati_Ispitati_BsemBsem(L)(L)Ispitati_Ispitati_BsemBsem(L)(L) Ispitati_Ispitati_BsemBsem(K)(K)
.. ..
.. ..Ispitati_Ispitati_BsemBsem(K)(K) Ispitati_Ispitati_BsemBsem(L)(L)Ispitati_Ispitati_BsemBsem(L)(L) Ispitati_Ispitati_BsemBsem(K)(K)
.. ..
.. ..
458458
BsemBsem(K) (K) BsemBsem(L) (L)
11 11
Dretva Dretva DiDi Dretva DjDretva Dj
tt
230
459459
BsemBsem(K) (K) BsemBsem(L) (L)
00 11
Dretva Dretva DiDi Dretva DjDretva Dj
tt
Ispitati_Ispitati_BsemBsem(K) ..............(K) ..............
460460
BsemBsem(K) (K) BsemBsem(L) (L)
00 00
Dretva Dretva DiDi Dretva DjDretva Dj
tt
Ispitati_Ispitati_BsemBsem(K) ..............(K) ..............
Ispitati_Ispitati_BsemBsem(L)(L)......................
231
461461
BsemBsem(K) (K) BsemBsem(L) (L)
00 00
Dretva Dretva DiDi Dretva DjDretva Dj
tt
Ispitati_Ispitati_BsemBsem(K) ..............(K) ..............
Ispitati_Ispitati_BsemBsem(L)(L)......................
...................... Ispitati_Ispitati_BsemBsem(K)(K)
DjDj
462462
BsemBsem(K) (K) BsemBsem(L) (L)
00 00
Dretva Dretva DiDi Dretva DjDretva Dj
tt
Ispitati_Ispitati_BsemBsem(K) ..............(K) ..............
Ispitati_Ispitati_BsemBsem(L)(L)......................
...................... Ispitati_Ispitati_BsemBsem(K)(K)
DjDj
Ispitati_Ispitati_BsemBsem(L)...........(L)...........
DiDi
232
463463
Potpuni se zastoj moPotpuni se zastoj možže prikazati u e prikazati u obliku grafaobliku grafaDretve su prikazane krugovima a Dretve su prikazane krugovima a sredstvasredstvakvadratimakvadratima
KK
LLLL
DiDi DjDj
dodijeljenododijeljenozahtjevazahtjeva
Problem bi se mogao rijeProblem bi se mogao riješšiti zamjenom iti zamjenom redoslijedaredoslijeda (zahtjev jednakim(zahtjev jednakimredoslijedomredoslijedom), ), ššto nije uvijek moguto nije uvijek mogućće.e.
464464
Problem pet filozofa:Problem pet filozofa:–– naizmjence misle i jedu za stolomnaizmjence misle i jedu za stolom---- ponaponaššanje svakog anje svakog je ciklije cikliččkaka dretvadretva
•• E.W. E.W. DijkstraDijkstra 5 dretvi i 5 sredstava5 dretvi i 5 sredstavadok je (I) (dok je (I) (
misliti;misliti;jesti;jesti;
))
Okrugli stol i kineska hranaOkrugli stol i kineska hrana5 tanjura5 tanjura5 5 šštapitapiććaa2 potrebna za jelo2 potrebna za jelo
233
465465
SoSo S1S1
S2S2
S3S3
S4S4
F0F0
F1F1
F2F2F3F3
F4F4
466466
ProtokolProtokoldok jedok je (I) ((I) (
misliti;misliti;priprićći k stolu;i k stolu;uzeti lijevi uzeti lijevi šštapitapićć;;uzeti desni uzeti desni šštapitapićć;;jesti;jesti;spustiti lijevi spustiti lijevi šštapitapićć;;spustiti desni spustiti desni šštapitapićć; ; ) )
Uporaba Uporaba šštapitapićća je kritia je kritiččki odsjeki odsječčakak1.1. Lijevi se Lijevi se šštapitapićć filozofa F1 filozofa F1 šštiti semaforom titi semaforom BsemBsem(I)(I)2.2. Desni semaforom Desni semaforom BsemBsem(I+1) (I+1) modmod 5)5)
234
467467
dok jedok je (I) ((I) (misliti;misliti;priprićći k stolu;i k stolu;ispitati_ispitati_BsemBsem(I);(I);ispitati_ispitati_BsemBsem(I+1);(I+1);jesti;jesti;postaviti_postaviti_BsemBsem(I);(I);postaviti_postaviti_BsemBsem(I+1) (I+1) modmod 5); 5); ) )
MoguMogućće: e: Svi istovremeno ogladneSvi istovremeno ogladneSvi priđu stolu i svi uzmu lijevi Svi priđu stolu i svi uzmu lijevi šštapitapićć ( (prođu prođu BsemBsem(I))(I))Ne moguNe mogu dohvatiti desnu (blok dohvatiti desnu (blok BsemBsem(I+1) (I+1) modmod 5)5)Ostanu s lijevim Ostanu s lijevim šštapitapiććem u ruci i umru od gladiem u ruci i umru od gladi
468468
S0S0 F0F0
S1S1
F1F1
S2S2
F2F2
S3S3
S4S4
F4F4
F3F3
235
469469
•• U ovom sluU ovom sluččaju propisani aju propisani redoslijedredoslijed ne ne pomapomažže jer je lijevi e jer je lijevi šštapitapićć jednog ujedno i jednog ujedno i desni desni šštapitapićć njegovog lijevog njegovog lijevog susjeda.susjeda.
•• Jedno od moguJedno od moguććih rjeih rješšenja izbjegavanja enja izbjegavanja potpunog zastoja je da se za stol pusti samo potpunog zastoja je da se za stol pusti samo 4 korisnika. U tom slu4 korisnika. U tom sluččaju jedan moaju jedan možže dobitie dobiti2 vilice i nema potpunog zastoja.2 vilice i nema potpunog zastoja.
•• ToTo rjerješšenje pretpostavlja uvađanje jednog enje pretpostavlja uvađanje jednog opopććeg semafora koji k stolu pripueg semafora koji k stolu pripuššta najvita najvišše e ččetiri korisnika. etiri korisnika.
470470
Naziv Naziv OsemOsem(Stol).v=4 (po(Stol).v=4 (poččetne vrijednosti 4) rjeetne vrijednosti 4) rješšava ava potpuni zastoj:potpuni zastoj:
dok jedok je (I) ((I) (misliti;misliti;priprićći k stolu;i k stolu;ispitati_ispitati_OsemOsem(Stol);(Stol);ispitati_ispitati_BsemBsem(I);(I);ispitati_ispitati_BsemBsem((I+1) ((I+1) modmod=5);=5);jesti;jesti;postaviti_postaviti_BsemBsem(I);(I);postaviti_postaviti_BsemBsem((I+1) ((I+1) modmod 5);5);postaviti_postaviti_OsemOsem(Stol); (Stol); ) )
236
471471
OpOpćća naa naččela za svladavanje problema potpunog ela za svladavanje problema potpunog zastojazastoja
IzIz prethodnog se moprethodnog se možže shvatiti da za nastajanje e shvatiti da za nastajanje potpunogpotpunog zastoja postoje 3 slijedezastoja postoje 3 slijedećća nua nužžna uvjeta:na uvjeta:
1.1. Neko sredstvo moNeko sredstvo možže u istom e u istom ččasu upotrebljavati samo asu upotrebljavati samo jedna od dretvi (mjedna od dretvi (međusobno iskljueđusobno isključčivo)ivo)
2.2. Dretvi se sredstvo ne moDretvi se sredstvo ne možže oduzeti (otpue oduzeti (otpuššta ga sama ta ga sama kada ga vikada ga višše ne treba)e ne treba)
3.3. Dretva drDretva držži i dodijeljenododijeljeno joj sredstvo dok joj sredstvo dok ččeka na dodjelu eka na dodjelu dodatnog sredstvadodatnog sredstva
Potpuni bi se zastoj mogao izbjePotpuni bi se zastoj mogao izbjećći ako se odstrani bilo koji odi ako se odstrani bilo koji odta 3 uvjeta.ta 3 uvjeta.
472472
•• Odstranjivanje prvog uvjeta nije smisleno jer kad bi Odstranjivanje prvog uvjeta nije smisleno jer kad bi sredstva mogla biti raspoređena na visredstva mogla biti raspoređena na višše dretvi e dretvi problem potpunog zastoja problem potpunog zastoja ne bine bi postojao.postojao.
•• Ostaju druga 2 Ostaju druga 2 uvjeta:uvjeta:•• Drugi nije jednostavno odstraniti. Zahtjeva mnogo Drugi nije jednostavno odstraniti. Zahtjeva mnogo
dodatnog posla u sludodatnog posla u sluččaju prekida i kasnijoj ponovnoj aju prekida i kasnijoj ponovnoj dodjeli procesa radi obnavljanja konteksta.dodjeli procesa radi obnavljanja konteksta.
•• Kao jedno od osnovnih naKao jedno od osnovnih naččela otklanjanja opasnosti ela otklanjanja opasnosti od potpunog zastoja ostaje zadnji uvjet (dretva drod potpunog zastoja ostaje zadnji uvjet (dretva držži i sredstvo dok sredstvo dok ččeka na dodjelu dodatnog). To eka na dodjelu dodatnog). To podrazumijeva da se dretvi sredstva, kada je to podrazumijeva da se dretvi sredstva, kada je to mogumogućće, ne dodjeljuju pojedinae, ne dodjeljuju pojedinaččno nego sva u isti no nego sva u isti mah.mah.
237
473473
•• Dretvu bi pritom trebalo osmisliti tako da ona sama Dretvu bi pritom trebalo osmisliti tako da ona sama prije nego zatraprije nego zatražži neko dodatno sredstvo sama i neko dodatno sredstvo sama dragovoljno otpusti sva sredstva koja je do tada dragovoljno otpusti sva sredstva koja je do tada drdržžala.ala.
•• Nakon toga ona mora zatraNakon toga ona mora zatražžiti istodobno sva iti istodobno sva sredstva koja su joj potrebna za daljnje sredstva koja su joj potrebna za daljnje napredovanje.napredovanje.
•• Dosada opisane Dosada opisane jezgrinejezgrine funkcije ne omogufunkcije ne omoguććavaju avaju ostvarenjeostvarenje ove zamisli pa prema tome jezgru treba ove zamisli pa prema tome jezgru treba proprošširiti. iriti.
474474
TheThe endend
238
Operacijski sustaviOperacijski sustavi
MonitoriMonitori
476476
Koncepcija monitoraKoncepcija monitora•• Semafori omoguSemafori omoguććuju pouzdano međusobno uju pouzdano međusobno
iskljuisključčivanje kao i brojanje događajaivanje kao i brojanje događaja..•• Moraju se upotrebljavati paMoraju se upotrebljavati pažžljivo a neke od ljivo a neke od
stvarnih problema s njima se nemostvarnih problema s njima se nemožže ni e ni rijeriješšiti.iti.
•• Problemi su zbog dvaju njihovih svojstava:Problemi su zbog dvaju njihovih svojstava:1.1. Svaki semafor ispituje samo jedan Svaki semafor ispituje samo jedan
jednostavni pojedinajednostavni pojedinaččni uvjetni uvjet2.2. Ispitivanje nekog semafora povezano je s Ispitivanje nekog semafora povezano je s
zauzezauzeććem sredstva koje semafor em sredstva koje semafor šštiti. titi.
239
477477
Dijkstra Hansen HoareDijkstra Hansen Hoare•• Nije moguNije mogućće provesti ispitivanje vie provesti ispitivanje višše semafora pa e semafora pa
nakon toga obaviti rezervaciju sredstava tek ako nakon toga obaviti rezervaciju sredstava tek ako se ustanovi da su sva trase ustanovi da su sva tražžena sredstva slobodna.ena sredstva slobodna.
•• PredloPredložžio da se mehanizmi suradnje, tada se io da se mehanizmi suradnje, tada se govorilo procesa danas dretvi, objedine u govorilo procesa danas dretvi, objedine u nakupine funkcijanakupine funkcija za razrijeza razriješšavanje nekih avanje nekih viviššestrukih sloestrukih složženih problema.enih problema.
•• Cijelu takvu nakupinu funkcija treba nadzirati Cijelu takvu nakupinu funkcija treba nadzirati objedinjenim nadzornim programom kojeg je on objedinjenim nadzornim programom kojeg je on nazvao nazvao monitorommonitorom. .
478478
•• Monitor je softwerski objekt koji sadrMonitor je softwerski objekt koji sadržži podatke i i podatke i procedure (rutine) potrebne za pridruprocedure (rutine) potrebne za pridružživanje pojedinih ivanje pojedinih serijski dijeljenih sredstava (resursa) ili grupa takvih serijski dijeljenih sredstava (resursa) ili grupa takvih sredstava.sredstava.
•• Da bi se postiglo pridruDa bi se postiglo pridružživanje sredstava upotrebomivanje sredstava upotrebommonitora dretva mora pozvati ulaznu monitorsku rutinu. monitora dretva mora pozvati ulaznu monitorsku rutinu.
•• Monitor se sliMonitor se sliččno kao i jezgra sastoji od strukture no kao i jezgra sastoji od strukture podataka i funkcija koje djeluju nad tom strukturom a podataka i funkcija koje djeluju nad tom strukturom a odnose se na serijski dijeljena sredstva (resurse) ili odnose se na serijski dijeljena sredstva (resurse) ili grupu takvih sredstava. grupu takvih sredstava.
•• Struktura podataka o sredstvima je globalna ili lokalna Struktura podataka o sredstvima je globalna ili lokalna za specifiza specifiččnu funkciju ali je dostupna samo unutar nu funkciju ali je dostupna samo unutar monitora. monitora.
240
479479
•• Izvođenje Izvođenje monitorskih funkcijamonitorskih funkcija mora biti mora biti pojedinapojedinaččno, to jest pozivanje funkcija je ulazak no, to jest pozivanje funkcija je ulazak u kritiu kritiččki odsjeki odsječčak.ak.
•• Sve funkcije jednog monitora moraju na svom Sve funkcije jednog monitora moraju na svom popoččetku ispitati binarni semafor. Raetku ispitati binarni semafor. Radi ostvarenja di ostvarenja međusobnog iskljumeđusobnog isključčivanja monitorskih funkcija ivanja monitorskih funkcija potrebna je posebna vrsta semafora Monitor(M). potrebna je posebna vrsta semafora Monitor(M).
•• Po zavrPo završšetku ispitivanja sve funkcije jednog etku ispitivanja sve funkcije jednog monitora moraju postavljati taj semafor.monitora moraju postavljati taj semafor.
480480
•• Pozivom monitorske funkcije dretva Pozivom monitorske funkcije dretva ćće:e:
•• ili proili proćći monitorski semafor i tada se kai monitorski semafor i tada se kažže da e da je uje uššla u monitor te je zatvorila ulaz drugimala u monitor te je zatvorila ulaz drugima
•• ili ili ćće biti svrstana u red na monitorskom e biti svrstana u red na monitorskom semaforu i za nju se kasemaforu i za nju se kažže da e da ččeka na ulazak eka na ulazak zbog zatvorenog monitorazbog zatvorenog monitora
•• SlijedeSlijedećća dretva moa dretva možže ue ućći u monitor tek kada i u monitor tek kada ga prethodna dretva napusti. ga prethodna dretva napusti.
241
481481
•• Unutar monitora dretva ispituje neke uvjete za Unutar monitora dretva ispituje neke uvjete za daljnje napredovanje.daljnje napredovanje.
•• Ako je uvjet, koji dretva unutar monitora Ako je uvjet, koji dretva unutar monitora ispituje ispunjen, dretva napuispituje ispunjen, dretva napuššta monitor ta monitor pozivajupozivajućći jezgrinu funkciju za postavljanje i jezgrinu funkciju za postavljanje monitorskog semafora i time ujedno omogumonitorskog semafora i time ujedno omoguććuje uje drugoj dretvi ulazak u monitor.drugoj dretvi ulazak u monitor.
•• Ako uvjet za nastavak izvođenja dretve nije Ako uvjet za nastavak izvođenja dretve nije ispunjen dretva mora ispunjen dretva mora ččekati jer je traekati jer je tražženo eno sredstvo pridrusredstvo pridružženo nekoj drugoj dretvi. eno nekoj drugoj dretvi.
482482
•• BuduBudućći da je međusobno iskljui da je međusobno isključčenje primjenjeno enje primjenjeno na granicama monitora, dretva koja na granicama monitora, dretva koja ččeka na eka na sredstvo to mora usredstvo to mora uččiniti initi izvan monitoraizvan monitora, k, kako bi ako bi dozvolila nekoj drugoj dretvi da uđe u monitor dozvolila nekoj drugoj dretvi da uđe u monitor i vrati sredstvo.i vrati sredstvo.
•• Dretva koja drDretva koja držži sredstvo i sredstvo ćće pozivom monitorske e pozivom monitorske funkcije otpustiti sredstvo. Monitorska funkcija bi funkcije otpustiti sredstvo. Monitorska funkcija bi mogla osloboditi sredstvo i mogla osloboditi sredstvo i ččekati poziv neke ekati poziv neke druge dretve. Bududruge dretve. Budućći da moi da možžda postoje dretve da postoje dretve koje koje ččekaju na sredstvo monitorska ulazna ekaju na sredstvo monitorska ulazna funkcija funkcija ššalje signal alje signal ““pozivapoziva”” kojim je omogukojim je omoguććen en ulaz jedne od dretvi na ulaz jedne od dretvi na ččekanju da uđe u monitor ekanju da uđe u monitor i zauzme trai zauzme tražženo sredstvo.eno sredstvo.
242
483483
•• Ako dretva signalizira povrat sredstva, a nitiAko dretva signalizira povrat sredstva, a nitijedna dretva ne jedna dretva ne ččeka na njega, tada signal eka na njega, tada signal ““pozivapoziva”” nema utjecaja ali si je monitor nema utjecaja ali si je monitor pridrupridružžio (zauzeo) sredstvo koje moio (zauzeo) sredstvo koje možže e dodijeliti nekoj dolazedodijeliti nekoj dolazeććoj dretvi.oj dretvi.
•• Kako bi se izbjeglo neodređeno odgađanje Kako bi se izbjeglo neodređeno odgađanje (indefinite postponent) monitor pridru(indefinite postponent) monitor pridružžuje uje vevećći prioritet dretvama na i prioritet dretvama na ččekanju u redu ekanju u redu pred semaforom, u odnosu na novopridopred semaforom, u odnosu na novopridoššle. le.
484484
Jezgrine funkcije za ostvarivanje monitoraJezgrine funkcije za ostvarivanje monitora
•• Ostvarivanje monitora mora biti pomognuto Ostvarivanje monitora mora biti pomognuto prikladnim jezgrinim funkcijama prikladnim jezgrinim funkcijama
•• U strukturi podataka modela jezgre za svaki se U strukturi podataka modela jezgre za svaki se monitor predviđa posebno zaglavlje reda monitor predviđa posebno zaglavlje reda ččekanja ekanja Monitor (M)Monitor (M) te uz njega potreban broj redova te uz njega potreban broj redova ččekanja na ispunjenje nekog od uvjeta.ekanja na ispunjenje nekog od uvjeta.
•• Redova Redova ččekanja unutar jednog monitora moekanja unutar jednog monitora možže biti i e biti i vivišše, pa ih se oznae, pa ih se označčava dodatnim indeksom.ava dodatnim indeksom.
Uvjet Uvjet KK monitora monitora MM oznaoznaččava se identifikatorom ava se identifikatorom Red_uvjeta (M,K)Red_uvjeta (M,K)
243
485485
•• Struktura podataka jezgre jednog monitoraStruktura podataka jezgre jednog monitora
Monitor (M)Monitor (M)Red_uvjeta (M,1)Red_uvjeta (M,1)
Red_uvjeta (M,2)Red_uvjeta (M,2)
Red_uvjeta (M,3)Red_uvjeta (M,3)
486486
•• U pretpostavljenom modelu jezgre za ostvarenje U pretpostavljenom modelu jezgre za ostvarenje monitora poslumonitora poslužžiti iti ćće 4 funkcije:e 4 funkcije:
1.1. UUćći_u_Monitor (M) ;i_u_Monitor (M) ;2.2. IzaIzaćći_iz_Monitora (M) ;i_iz_Monitora (M) ;3.3. Uvrstiti_u_red_uvjeta (M,K) ;Uvrstiti_u_red_uvjeta (M,K) ;4.4. Osloboditi_iz_reda_uvjeta (M,K) ;Osloboditi_iz_reda_uvjeta (M,K) ;Prva jezgrina funkcija po djelovanju je jednaka Prva jezgrina funkcija po djelovanju je jednaka funkciji za ispitivanje binarnog semafora.funkciji za ispitivanje binarnog semafora.Jedina razlika je Jedina razlika je ššto je Monitor (M) povezan s to je Monitor (M) povezan s redovima uvjeta redovima uvjeta ššto to ćće biti vodljivo u opisu funkcija zae biti vodljivo u opisu funkcija zauvruvršštenje i uzimanje iz redova uvjeta. tenje i uzimanje iz redova uvjeta.
244
487487
Monitor za 5 filozofaMonitor za 5 filozofa
•• Deklarirati Monitor (3) iDeklarirati Monitor (3) i•• Za svakog filozofa Red_uvjeta (3,I)Za svakog filozofa Red_uvjeta (3,I)•• 2 poretka:2 poretka:
1.1. Broj_Broj_šštapitapićća (5)a (5)SadrSadržži broj i broj šštapitapićća koje stoje uz tanjur flozofa Ia koje stoje uz tanjur flozofa IFilozof ne uzima Filozof ne uzima šštapitapićće pojedinae pojedinaččno veno većć samo onda kada vidisamo onda kada vidiOba Oba šštapitapićća na stolu. Time se izbjegava potpuni zastoj.a na stolu. Time se izbjegava potpuni zastoj.Kada filozof I uzme svoje Kada filozof I uzme svoje šštapitapićće on smanjuje broj e on smanjuje broj šštapitapiććaasvom lijevom susjedu Broj_svom lijevom susjedu Broj_šštapitapićća((I+4) mod 5), i desnoma((I+4) mod 5), i desnomsusjedususjedu Broj_Broj_šštapitapićća((I+1) mod 5) a((I+1) mod 5)
2.2. Filozof_Filozof_ččeka(5)eka(5)Filozof_Filozof_ččeka(I) = 1 oznaeka(I) = 1 označčava da filozof I ava da filozof I ččeka na dodjelu eka na dodjelu šštapitapićća.a.
488488
SoSo S1S1
S2S2
S3S3
S4S4
F0F0
F1F1
F2F2F3F3
F4F4
245
489489
Monitorska funkcija za uzimanje Monitorska funkcija za uzimanje šštapitapiććaa•• m_funkcijam_funkcija Uzeti_Uzeti_šštapitapićće (I) (e (I) (
uućći_u_monitor(3);i_u_monitor(3);proproččitati Broj_itati Broj_šštapitapićća(I);a(I);dok_jedok_je (Broj_(Broj_šštapitapićća(I) a(I) <<2) (2) (
Filozof_Filozof_ččeka(I) = 1;eka(I) = 1;Uvrstiti_u_red_uvjeta (3,I);Uvrstiti_u_red_uvjeta (3,I);UUćći_u_monitor(3);i_u_monitor(3);ProProččitati Broj_itati Broj_šštapitapićća(I);a(I);
))Broj_Broj_šštapitapićća(I+4) mod 5) a(I+4) mod 5) -- --;;Broj_Broj_šštapitapićća(I+1) mod 5) a(I+1) mod 5) -- --;;
IzaIzaćći_iz_monitora(3);i_iz_monitora(3);))
Kada filozof I ne vidi na stolu par Kada filozof I ne vidi na stolu par šštapitapićća on ne uzima niti jedan vea on ne uzima niti jedan većć ulazi ulazi u red u red ččekanja. Time neekanja. Time nećće sprijee spriječčiti drugoga da uzme svoje iti drugoga da uzme svoje šštapitapićće. e.
490490
Monitorska funkcija za spuMonitorska funkcija za spušštanje tanje šštapitapiććaa•• m_funkcijam_funkcija Spustiti_Spustiti_šštapitapićće (K) (e (K) (
uućći_u_monitor(3);i_u_monitor(3);Broj_Broj_šštapitapićća(K+4) mod 5) + +;a(K+4) mod 5) + +;Broj_Broj_šštapitapićća(K+1) mod 5) + +;a(K+1) mod 5) + +;J = (K+4) mod 5;J = (K+4) mod 5;ako_jeako_je (Broj_(Broj_šštapitapićća(J) =a(J) =2) &&2) &&
(Filozof_(Filozof_ččeka(J) = 1))(eka(J) = 1))(Filozof_Filozof_ččeka(J) = 0;eka(J) = 0;Osloboditi_iz_reda_uvjeta (J,J);Osloboditi_iz_reda_uvjeta (J,J);UUćći_u_monitor(J);i_u_monitor(J);
))J=(K+1) mod 5 J=(K+1) mod 5 ako_jeako_je (Broj_(Broj_šštapitapićća(J) = 2 ) &&a(J) = 2 ) &&
(Filozof_(Filozof_ččeka(J) = 1))(eka(J) = 1))(Filozof_Filozof_ččeka(J) = 0; eka(J) = 0; Osloboditi_iz_reda_uvjeta(3,J);Osloboditi_iz_reda_uvjeta(3,J);
))inainaččee ((izaizaćći_iz_monitora(3);i_iz_monitora(3);
))))
Provjera lijevog susjedaProvjera lijevog susjeda
Provjera desnog susjedaProvjera desnog susjeda
246
491491
•• Monitorska funkcija za spuMonitorska funkcija za spušštanje tanje šštapitapićća, nakon a, nakon ššto to povepovećća broj raspoloa broj raspoložživih ivih šštapitapićća, svojim susjedima, a, svojim susjedima, treba pogledati dali oni treba pogledati dali oni ččekaju u svojim redovima i ekaju u svojim redovima i ako sada ima dovoljno ako sada ima dovoljno šštapitapićća osloboditi ih iz a osloboditi ih iz redova redova ččekanja.ekanja.
•• Posebnost ove funkcije je u tome da ona mora Posebnost ove funkcije je u tome da ona mora djelovati na dva reda djelovati na dva reda ččekanja.ekanja.
•• Ona mora ponovo uOna mora ponovo ućći u monitor nakon i u monitor nakon ššto to deblokira dretvu lijevog susjeda, jer se pozivom deblokira dretvu lijevog susjeda, jer se pozivom jezgrine funkcije jezgrine funkcije Osloboditi_iz_reda_uvjeta(3,J) iz Osloboditi_iz_reda_uvjeta(3,J) iz njega izbanjega izbaččenaena
492492
Uporabom tih monitorskih funkcija Uporabom tih monitorskih funkcija ponaponaššanje filozofa moanje filozofa možže se opisati:e se opisati:
•• dok_jedok_je (I) ((I) (misliti;misliti;Uzeti_Uzeti_šštapitapićće(I);e(I);jesti;jesti;Spustiti_Spustiti_šštapitapićće(I); e(I);
))Nema potpunog zastoja ali ima nedostataka.Nema potpunog zastoja ali ima nedostataka.
247
493493
Nedostatci:Nedostatci:
•• Ako filozof ((I+1) mod 5) i ((I+4) mod 5) Ako filozof ((I+1) mod 5) i ((I+4) mod 5) naizmjence prilaze stolu i uzimaju naizmjence prilaze stolu i uzimaju šštapitapićće tako e tako da jedan uvijek uzme svoje da jedan uvijek uzme svoje šštapitapićće prije nego e prije nego ššto ih drugi spusti, onda to ih drugi spusti, onda ćće filozof I stojee filozof I stojećći za i za stolom izgladnjeti gledajustolom izgladnjeti gledajućći kako mu susjedi i kako mu susjedi jedu.jedu.
•• Taj se fenomen naziva izgladnjivanjeTaj se fenomen naziva izgladnjivanje--starvationstarvation
494494
Analiza vremenskih svojstava Analiza vremenskih svojstava raraččunalnog sustavaunalnog sustava
•• Do sada se dretva promatrala samo s Do sada se dretva promatrala samo s logilogiččkog stanovikog stanoviššta svog razvoja bez obzira ta svog razvoja bez obzira na razliku vremena između dohvana razliku vremena između dohvaććanja anja ulaznih podataka i pohranjivanja rezultata u ulaznih podataka i pohranjivanja rezultata u svoju kodomenu. svoju kodomenu.
•• Nije se postavljalo pitanje trajanja izvođenja Nije se postavljalo pitanje trajanja izvođenja dretve.dretve.
•• Dretvu obrađuje procesor logiDretvu obrađuje procesor logiččkim redom kim redom njezinih naredbi pohranjenih u dretvenom njezinih naredbi pohranjenih u dretvenom dijelu radnog spremnika. dijelu radnog spremnika.
248
495495
•• Trajanje izvođenja dretve zavisi o broju Trajanje izvođenja dretve zavisi o broju naredbi dretve i o brzini kojom procesor naredbi dretve i o brzini kojom procesor obavlja naredbe.obavlja naredbe.
•• Brzina procesora je određena frekvencijom Brzina procesora je određena frekvencijom generatora takta koji potigeneratora takta koji potičče rad sklopovlja e rad sklopovlja procesora. procesora.
•• Frekvencija takta (osnovni osFrekvencija takta (osnovni oscilator) cilator) neposredno određuje broj naredbi koje neposredno određuje broj naredbi koje procesor moprocesor možže izvesti u jedinici vremena. e izvesti u jedinici vremena.
496496
•• Vremensko ponaVremensko ponaššanje cijelog raanje cijelog raččunalnog sustava unalnog sustava ne ovisi samo o brzini procesora vene ovisi samo o brzini procesora većć i o brzini i o brzini ostalih ulaznoostalih ulazno--izlaznih naprava pa ga je stoga izlaznih naprava pa ga je stoga vrlo tevrlo tešško procijeniti.ko procijeniti.
•• VeVećć i priblii približžni model ponani model ponaššanja omoguanja omoguććuje uje shvashvaććanje nekih vremenskih svojstava sustava anje nekih vremenskih svojstava sustava ššto moto možže pomoe pomoćći pri donoi pri donoššenju odluka o enju odluka o izgradnji ili dogradnji sustava. Ocjena ponaizgradnji ili dogradnji sustava. Ocjena ponaššanja anja sustava se zasniva na:sustava se zasniva na:
1.1. MatematiMatematiččkom modelu i matematikom modelu i matematiččkoj analizi,koj analizi,2.2. Simulacijskom modelu koji sluSimulacijskom modelu koji služži za izrai za izraččunavanje unavanje
parametara pomoparametara pomoćću rau raččunala,unala,3.3. Mjerenju ponaMjerenju ponaššanja stvarnog sustava. anja stvarnog sustava.
249
497497
Jednostavni matematiJednostavni matematiččki modelki model•• Sastoji se od jednog reda u kojem dretve Sastoji se od jednog reda u kojem dretve ččekaju ekaju
na izvođenje i procesora koji te dretve izvodina izvođenje i procesora koji te dretve izvodi
•• Red pripravnih dretvi organiziran po redu Red pripravnih dretvi organiziran po redu prispjeprispjećća (a (FIFO)FIFO)
•• U okolini proizvođaU okolini proizvođačč--potropotroššaačč prvi stavlja poruke prvi stavlja poruke u red, a drugi ih uzima iz reda po redoslijedu u red, a drugi ih uzima iz reda po redoslijedu prispjeprispjećća i obrađujea i obrađuje..
•• Svaka poruka zahtijeva stanovito vrijeme obrade Svaka poruka zahtijeva stanovito vrijeme obrade
498498
Oba se ta događaja Oba se ta događaja (dretva, poruka) mogu modelirati (dretva, poruka) mogu modelirati pooppoopććenim modelom prema gornjoj slicienim modelom prema gornjoj slici
RED RED ČČEKANJAEKANJA POSLUPOSLUŽŽITELJITELJ
DolasciDolasci OdlasciOdlasci
Jednostavni se sustav sastoji od reda Jednostavni se sustav sastoji od reda ččekanja i posluekanja i poslužžitelja iitelja iuz svaku su aktivnost vezana dva događajauz svaku su aktivnost vezana dva događaja::1.1. Dolazak u trenutku tDolazak u trenutku tdd2.2. Odlazak tOdlazak too
250
499499
Vrijeme zadrVrijeme zadržžavanja u sustavuavanja u sustavu
T = tT = too –– ttddTTpp ..... trajanje poslu..... trajanje poslužživanjaivanjaTrajanje zadrTrajanje zadržžavanja u redu:avanja u redu:TTrr = T = T –– TTpp
t trenutci T intervali ..razlika vremenat trenutci T intervali ..razlika vremenaAko su trenutci dolazaka novih poslova poznati i ako suAko su trenutci dolazaka novih poslova poznati i ako sutrajanja poslutrajanja poslužživanja tih poslova određena onda seivanja tih poslova određena onda segovori o govori o deterministideterminističčkomkom ponaponaššanju sustava.anju sustava.PonaPonaššanje se takvog sustava moanje se takvog sustava možže potpuno predvidjeti.e potpuno predvidjeti.
500500
Prevođenje deterministiPrevođenje determinističčkog kog modela u nedeterministimodela u nedeterminističčkiki
•• Poissonova razdiobaPoissonova razdioba•• Eksponencijalna razdiobaEksponencijalna razdioba•• Markovljevi lanciMarkovljevi lanci•• Taylorov redTaylorov red•• Littleovo praviloLittleovo pravilo
251
501501
Osnovna naOsnovna naččela dodjeljivanja ela dodjeljivanja procesora dretvamaprocesora dretvama
•• Pretpostavka su dvije skupine poslovaPretpostavka su dvije skupine poslova
1.1. Dugi posloviDugi poslovi2.2. Kratki posloviKratki poslovi
Uz pretpostavku da su dugi mnogo dulji od kratkihUz pretpostavku da su dugi mnogo dulji od kratkihformira se mjeformira se mješšavina koja se avina koja se ššalje procesoru alje procesoru
Poslovi ProsjePoslovi Prosječčno zadrno zadržžavanje u sustavu avanje u sustavu Dugi 100 j.v. Dugi 100 j.v. Kratki 0,025 j.v.Kratki 0,025 j.v.MjeMješšavina 0,233 j.v.avina 0,233 j.v.
Nije moguNije mogućće skratiti vrijeme obrade dugih poslovae skratiti vrijeme obrade dugih poslovaunounoššenjem kratkih u sustav. Formula raenjem kratkih u sustav. Formula raččuna prosjekuna prosjekzadrzadržžavanja u sustavu i za duge i za kratke kojih imaavanja u sustavu i za duge i za kratke kojih imatisutisućću puta viu puta višše.e.
Umetanje dugih poslova u skupinu kratkih je poveUmetanje dugih poslova u skupinu kratkih je poveććaloalovrijeme zadrvrijeme zadržžavanja skoro 10 puta.avanja skoro 10 puta.
ZadrZadržžavanje pojedinaavanje pojedinaččnih kratkih poslova u sustavunih kratkih poslova u sustavunakon nekog dugog posla je mnogo drastinakon nekog dugog posla je mnogo drastiččnije tako danije tako dase vrijeme zadrse vrijeme zadržžavanja moavanja možže produljiti i do 1000 puta. e produljiti i do 1000 puta.
252
503503
•• U stvarnim se uvjetima u raU stvarnim se uvjetima u raččunalu mounalu možže e istodobno naistodobno naćći vii višše dretvi razlie dretvi različčita trajanja za ita trajanja za koje se unaprijed ne mora znati koliko koje se unaprijed ne mora znati koliko ćće e trajati njihovo izvođenjetrajati njihovo izvođenje..
•• Sve koje postaju pripravne nakon neke dretve Sve koje postaju pripravne nakon neke dretve duga trajanja biti duga trajanja biti ćće drastie drastiččno odgođene u no odgođene u svom izvođenjusvom izvođenju..
•• RjeRješšenje je u tome da se dretvama ne dozvoli enje je u tome da se dretvama ne dozvoli izvođenje do njihova zavrizvođenje do njihova završšetka.etka.
•• Svaka promjena stanja dretvi i svaki prekid Svaka promjena stanja dretvi i svaki prekid zahtijeva zahtijeva ““oduzimanjeoduzimanje”” procesora dretvi koja procesora dretvi koja se izvodi kako bi se obavili kuse izvodi kako bi se obavili kuććanski poslovi.anski poslovi.
504504
•• Tako se organiziraju redovi pripravnih dretviTako se organiziraju redovi pripravnih dretvia dodjeljivanje procesora nije samo po redua dodjeljivanje procesora nije samo po reduprispjeprispjećća.a.
•• Prethodno se govorilo da se dretve moguPrethodno se govorilo da se dretve mogurazvrstati i po redu prvenstva ako se dretvamarazvrstati i po redu prvenstva ako se dretvamapridrupridružže odgovarajue odgovarajućći prioriteti.i prioriteti.
•• U nastavku razmatranja kratkih i dugih poslova U nastavku razmatranja kratkih i dugih poslova moglo bi se kratke poslove smatrati hitnimmoglo bi se kratke poslove smatrati hitnimdretvama, a duge poslove normalnim.dretvama, a duge poslove normalnim.
•• Normalne se prekidaju kada neka hitna postane Normalne se prekidaju kada neka hitna postane pripravna. pripravna.
253
505505
•• Ovakva disciplina posluOvakva disciplina poslužživanja moivanja možže biti e biti ““nepravednanepravedna““ prema dugim poslovima jer sve prema dugim poslovima jer sve kratke dretve, odmah kratke dretve, odmah ččim postanu pripravne, im postanu pripravne, prekidaju dugi posao. Duga dretva bi se u tom prekidaju dugi posao. Duga dretva bi se u tom slusluččaju nastavila izvoditi tek kada viaju nastavila izvoditi tek kada višše nema niti e nema niti jedne kratke pripravne dretve. U takvom bi jedne kratke pripravne dretve. U takvom bi slusluččaju svaka nova kratka dretva odgađala aju svaka nova kratka dretva odgađala dugu dretvu u njezinu izvođenjudugu dretvu u njezinu izvođenju. .
506506
KruKružžno dodjeljivanje procesorano dodjeljivanje procesora
RED RED ČČEKANJAEKANJA Procesor TqProcesor TqNoveNovepripravne pripravne dretvedretve
ZavrZavrššeneenedretvedretve
Dretve koje se vraDretve koje se vraććaju na daljnje izvođenjeaju na daljnje izvođenje
Jedan od vrlo prikladnih naJedan od vrlo prikladnih naččina dodjele procesora jeina dodjele procesora jekrukružžno posluno poslužživanjeivanje dretvi (dretvi (round robinround robin).).
Procesor se dodjeljuje jednoj dretvi samo za određeni Procesor se dodjeljuje jednoj dretvi samo za određeni kvant vremena Tq kvant vremena Tq Dretva:Dretva:1.1. NapuNapuššta sustav ako je unutar Tq zavrta sustav ako je unutar Tq završšilaila2.2. Ako nije vraAko nije vraćća se na kraj reda pripravnih dretvia se na kraj reda pripravnih dretvi
254
507507
•• U red pripravnih dretvi ulaze nove dretve kao U red pripravnih dretvi ulaze nove dretve kao i dretve vrai dretve vraććene na daljnju obradu. Time ene na daljnju obradu. Time ćće e se kratke dretve malo usporiti u svom se kratke dretve malo usporiti u svom izvođenjuizvođenju, ali stoga duga dretva ima , ali stoga duga dretva ima mogumoguććnost dobiti procesor i prije nego li sve nost dobiti procesor i prije nego li sve kratke dretve budu obavljene. kratke dretve budu obavljene.
508508
ZakljuZaključčakak
•• Usporedba posluUsporedba poslužživanja po redu prispjeivanja po redu prispjeććaai krui kružžnog poslunog poslužživanja ukazuje prednostivanja ukazuje prednostkrukružžnognog
•• Nedostatak kruNedostatak kružžnog poslunog poslužživanja je ivanja je intenzivna promjena konteksta koja i poredintenzivna promjena konteksta koja i poredtoga ostaje jedna od najprikladnijih toga ostaje jedna od najprikladnijih disciplina posludisciplina poslužživanja. ivanja.
255
509509
•• U operacijskim sustavima se kruU operacijskim sustavima se kružžno raspoređivanje no raspoređivanje upotrebljava za raspoređivanje veupotrebljava za raspoređivanje veććine dretvi.ine dretvi.
•• Iznimku Iznimku ččine dretve koje obavljaju vremenskiine dretve koje obavljaju vremenskikritikritiččne funkcije a koje moraju biti obavljene u nekom ne funkcije a koje moraju biti obavljene u nekom zadanom vremenskom intervalu. Takvazadanom vremenskom intervalu. Takva se dretva se dretva obrađuje s najviobrađuje s najviššim prioritetom i to bez prekidanja.im prioritetom i to bez prekidanja.
•• Dretve koje se prekidaju i ulaze u kruDretve koje se prekidaju i ulaze u kružžno posluno poslužživanje ivanje mogu također imati razlimogu također imati različčite prioritete. ite prioritete.
510510
•• ViVišši prioritet moi prioritet možže doe doćći do izrai do izražžaja na taj aja na taj nanaččin da se dretvi dodjeljuje dva ili viin da se dretvi dodjeljuje dva ili višše e uzastopnih kvanta procesnog vremena.uzastopnih kvanta procesnog vremena.
•• U suvremenim operacijskim sustavima se U suvremenim operacijskim sustavima se na temelju prana temelju praććenja odvijanja poslova enja odvijanja poslova dretvama prioriteti podedretvama prioriteti podeššavaju i dinamiavaju i dinamiččki.ki.
256
511511
The EndThe End
Operacijski sustaviOperacijski sustavi
Gospodarenje spremniGospodarenje spremniččkim prostoromkim prostorom
257
513513
Uvodna razmatranjaUvodna razmatranja
•• vonvon Neumann:Neumann: sredisrediššnjinji--radni spremnik je stjeciradni spremnik je stjeciššte te svih informacija koje kolaju između ostalih dijelova svih informacija koje kolaju između ostalih dijelova raraččunala.unala.
•• Sve se adrese generiraju unutar procesora (osim u Sve se adrese generiraju unutar procesora (osim u pristupnim sklopovima s neposrednim pristupom pristupnim sklopovima s neposrednim pristupom spremniku):spremniku):
•• Adrese Adrese naredbenaredbe iz programskog brojilaiz programskog brojila•• StogovneStogovne adrese iz registra kazaljke stogaadrese iz registra kazaljke stoga•• Adrese Adrese operanadaoperanada i rezultata operacija na temelju i rezultata operacija na temelju
sadrsadržžaja adresnih dijelova aja adresnih dijelova naredbe.naredbe.
514514
Adresni međuregistar
Bajtovi spremnikaSPREMNIK
Registar adrese Registar sadržaja
Adresni dio sabirnice
Podatkovni dio sabirnice
Upravljački dio sabirnice
Podatkovni međuregistar
PROCESOR
32
32
m=32
n=32
k
32
32
1
258
515515
•• Ostvarenje tog modela stvarnim raOstvarenje tog modela stvarnim raččunalom zahtijevalo unalom zahtijevalo bi velibi veliččinu fiziinu fiziččkog radnog spremnika od 4GB.kog radnog spremnika od 4GB.
•• Od moguOd moguććih 32 bita koristilo bi se na primjerih 32 bita koristilo bi se na primjer27 bitova 227 bitova 22727=128 * 2=128 * 22020 = 128M = 128M 2220 20 priblipribližžno 10no 1066=1M=1M28 bitova 228 bitova 22828=256 * 2=256 * 22020 = 256M= 256M32 bita 232 bita 23232=2=244 * 2* 22828 = = 4GB4GB
•• Ako je stvarno ugrađeni radni Ako je stvarno ugrađeni radni (fizi(fiziččki) spremnik manji ki) spremnik manji od od maksimalnomaksimalno (128 ili 256 MB) onda se u prvi mah (128 ili 256 MB) onda se u prvi mah momožže zakljue zaključčiti da se u takvom raiti da se u takvom raččunalu mogu izvoditi unalu mogu izvoditi samo oni procesi samo oni procesi ččiji adresni prostor ne premaiji adresni prostor ne premaššuje tu uje tu veliveliččinu.inu.
516516
•• Svi programi, bez obzira u kojem su jeziku Svi programi, bez obzira u kojem su jeziku pisani, morajpisani, moraju prije izvođenja biti prevedeni u prije izvođenja biti prevedeni u strojni oblik i moraju biti pohranjeni u u strojni oblik i moraju biti pohranjeni u radni spremnik u obliku niza strojnih radni spremnik u obliku niza strojnih naredbi kojenaredbi koje procesor procesor prepoznaje.prepoznaje.
SustavskiSustavskiadresniadresniprostorprostor
KorisniKorisniččkikiadresniadresniprostorprostor
PAPA
NANA
FiziFiziččki ki adresniadresniprostorprostor
Strukture podataka i funkcije Strukture podataka i funkcije operacijskogoperacijskog sustavasustava
KorisniKorisniččki programi pripremljeni takoki programi pripremljeni takoda se mogu smjestiti izmeđuda se mogu smjestiti izmeđupopoččetne etne PAPA i najvei najvećće e NANA adrese. adrese.
259
517517
BBAA CC DD
PAPA
NANA
Program Program AA je fizije fiziččki u spremniku i njegov ki u spremniku i njegov se proces obavljase proces obavljaBB, , CC i i DD ččekaju na izvođenjeekaju na izvođenjeOni se u obliku pripravnom za izvođenje Oni se u obliku pripravnom za izvođenje moraju pohraniti u neki pomomoraju pohraniti u neki pomoććni spremnik ni spremnik ili dopunski vanjski spremnik na pr magnetskiili dopunski vanjski spremnik na pr magnetskidisk ...disk ...backingbacking storestore. .
518518
CompilingCompiling, , linkinglinking, , loadingloadingPrevođenjePrevođenje, povezivanje, punjenje, povezivanje, punjenje
Lexer ParserGeneratormeđukoda
GeneratorkodaOptimizator
Izvorni kod HLL Tokens
AbstractSyntax tree
Jezikniže razine
Jezikniže razine
Strojnenaredbe
Lexical analyzer-scanner
Ime, operator,ključna riječ,
rezervirana riječ,interpunkcija
Syntax analyzer
Niz osnovnih ASMB naredbi bez definiranja registara
Efikasnost izvršenjaOptimiranje memorije
Ulaz: izvorni kod programa u višem programskom jeziku Izlaz: prevedene naredbe programa u strojni jezik
260
519519
CompilingCompiling,, linkinglinking, , loadingloadingPrevođenjePrevođenje, , povezivanjepovezivanje, punjenje, punjenje
Moduli
Kod
Podatci
Simboličkatabela
Vanjska Vanjskaimena reference
A1B2C5
Povezivanje (Povezivanje (linkinglinking) je proces ) je proces spajanjaspajanja razlirazliččitih itih modula, pozvanihmodula, pozvanih(referenciranih)(referenciranih) od istog programa, u jedinstvenu izvrod istog programa, u jedinstvenu izvrššnu cjelinunu cjelinu.
Moduli-biblioteke
Ulaz: naredbe programa u strojnom jezikuIzlaz: objektni kod programa povezan sa modulima biblioteke OS-a
520520
CompilingCompiling,, linkinglinking, , loadingloadingPrevođenjePrevođenje, povezivanje, , povezivanje, punjenjepunjenje
Kod
Podatci
Kod
Podatci
0
300
750
10.000
10.300
10.750
Punjenje
Ulaz: objektni kod s relativnim adresamaZadatak: punjenje memorije prema raspoloživim apsolutnim adresama
261
521521
OsnovnaOsnovna svojstva magnetskih diskovasvojstva magnetskih diskova
•• Koriste se za smjeKoriste se za smješštanje datoteka te su osnovna sklopovska tanje datoteka te su osnovna sklopovska podloga za stvaranja baze podataka a time i informacijskih podloga za stvaranja baze podataka a time i informacijskih sustavasustava
•• Dva svojstva:Dva svojstva:1.1. PomoPomoććni/dopunski sni/dopunski spremnici koji pri izvođenju programa premnici koji pri izvođenju programa
nadopunjuju radni nadopunjuju radni 2.2. SkladiSkladiššte za trajno te za trajno ččuvanje svih vrsta podatakauvanje svih vrsta podataka
((optioptiččki diskoviki diskovi se zbog nase zbog naččina pristupa pohranjenim ina pristupa pohranjenim podatcimapodatcima, , s danas današšnjim tehnolonjim tehnološškim kim rijeriješšenjimaenjima, ne mogu , ne mogu upotrebljavati kao djelotvorni pomoupotrebljavati kao djelotvorni pomoććni spremnici, ni spremnici, magnetske vrpcemagnetske vrpce zbog nazbog naččina pristupa ina pristupa podatcimapodatcima se se također ne mogu koristiti kao efikasni pomotakođer ne mogu koristiti kao efikasni pomoććni spremnici). ni spremnici).
522522
•• Na raNa raččunalo se prikljuunalo se priključčuju pomouju pomoćću prikladnogu prikladnogupravljaupravljaččkog sklopovljakog sklopovlja
•• Jedinica mag diska se sastoji od dvije komponente: Jedinica mag diska se sastoji od dvije komponente:
1.1. ElektromehaniElektromehaniččkog dijela koji sakog dijela koji saččinjavaju jedna ili injavaju jedna ili vivišše okruglih ploe okruglih pločča presvua presvuččenih magnetskim enih magnetskim materijalom koje se vrte konstantnom brzinom s materijalom koje se vrte konstantnom brzinom s mehanizmom magnetskih glava koje se pomimehanizmom magnetskih glava koje se pomičču u priblipribližžno radijalno iznad tih no radijalno iznad tih ploploččaa
2.2. UpravljaUpravljaččkogkog sklopa sastavljenog od sklopa sastavljenog od mikroprocesora, spremnika, sumikroprocesora, spremnika, suččelja prema elja prema elektromehanielektromehaniččkom dijelu i sukom dijelu i suččelja prema sabirnici elja prema sabirnici raraččunala koje se ponaunala koje se ponašša kao pristupni sklop s a kao pristupni sklop s neposrednim pristupom radnom spremniku. neposrednim pristupom radnom spremniku.
262
523523
Organizacija zapisivanja sadrOrganizacija zapisivanja sadržžaja na diskuaja na disku
Sektor Sektor sectorsector
Cilindar Cilindar cylindercylinder
PloPloččaa
sektorsektor
stazastaza
reperreperStaza Staza tracktrack
Na disku se ne adresiraju pojedinaNa disku se ne adresiraju pojedinaččni bajtovi nego blokovi bajtova.ni bajtovi nego blokovi bajtova.Blokovi bajtova sastoje se od jednog ili viBlokovi bajtova sastoje se od jednog ili višše sektora.e sektora.
524524
•• U jedan sektor se pohranjuje U jedan sektor se pohranjuje uobiuobiččajenoajeno256, 512 ili 1024 bajtova.256, 512 ili 1024 bajtova.
Svaki sektor na disku ima svoju jedinstvenu adresuSvaki sektor na disku ima svoju jedinstvenu adresukoja se izrakoja se izraččunava iz:unava iz:1.1. Rednog broja ploRednog broja ploččee2.2. Rednog broja staze na ploRednog broja staze na ploččii3.3. Rednog broja sektora na Rednog broja sektora na ploploččii
UobiUobiččajeno svaka ploajeno svaka pločča ima svoju glavu za pisanje,a ima svoju glavu za pisanje,odnosno odnosno ččitanje, ali se u jednom itanje, ali se u jednom ččasu moasu možže pristupitie pristupitisamo do jedne od plosamo do jedne od pločča, to jest moa, to jest možže e ččitati ili pisatiitati ili pisatisamo u jednu stazu cilindra.samo u jednu stazu cilindra.
263
525525
UpravljaUpravljaččki sklop diskovne jediniceki sklop diskovne jedinice
ProcesorProcesordiskovnediskovnejedinicejedinice
sabirnicasabirnica
Radni spremnikRadni spremnik
Blok bajtovaBlok bajtova
SpremnikSpremnikdiskovnediskovnejedinicejedinice
526526
Gledano sa strane sabirnice disk se moGledano sa strane sabirnice disk se možže promatrati e promatrati kao niz sektora definirane velikao niz sektora definirane veliččine do kojih se moine do kojih se možže e pristupiti putem njihovog rednog brojapristupiti putem njihovog rednog broja--adrese sektora.adrese sektora.Disk predstavlja linearni adresni prostor sektora Disk predstavlja linearni adresni prostor sektora definirane velidefinirane veliččine, a ta se jedinstvena adresa ine, a ta se jedinstvena adresa momožže prerae preraččunati u polounati u položžaj sektora na disku aj sektora na disku određen rednim brojem ploodređen rednim brojem pločče, staze i sektora.e, staze i sektora.U upravljaU upravljaččkom sklopu jedinice mokom sklopu jedinice možže se obaviti i e se obaviti i slosložženije preslikavanje jedinstvene adrese u fizienije preslikavanje jedinstvene adrese u fiziččki ki sektor, tako da se pri tome mogu sakriti i neke sektor, tako da se pri tome mogu sakriti i neke neispravni sektori ili cijele staze.neispravni sektori ili cijele staze.To se naroTo se naroččito koristi prilikom zavrito koristi prilikom završšnih proizvodnih nih proizvodnih ispitivanja. ispitivanja.
264
527527
Svojstva se godinama Svojstva se godinama poboljpoboljššavaju:avaju:
••Promjeri ploPromjeri pločča 1,3 a 1,3 –– 8 in8 inččaa••GustoGustoćća staza 1500a staza 1500--3000 po jednom in3000 po jednom inčču radijusau radijusa••GustoGustoćća bitova na stazi 40000a bitova na stazi 40000--60000 po in60000 po inččuu••Diskovna jedinica 1Diskovna jedinica 1--20 plo20 ploččaa••Staza ima 70Staza ima 70--130 sektora 130 sektora ••Kapacitet u granicama od stotinjak megabajta doKapacitet u granicama od stotinjak megabajta dostotinjak gigabajta.stotinjak gigabajta.
••PloPločče su e su ččvrsto ugrađene u diskovne jedinice i vrsto ugrađene u diskovne jedinice i ne mogu se mijenjati kao diskete. ne mogu se mijenjati kao diskete.
528528
Vremenska svojstva diskovaVremenska svojstva diskovaIzraIzražžavaju se nekim prosjeavaju se nekim prosječčnim vremenom zanim vremenom zadohvat jednog sektora na disku.dohvat jednog sektora na disku.Taj jedinstveni parametar sluTaj jedinstveni parametar služži za uspoređivanje i za uspoređivanje diskova. diskova. Vremenska svojstva diskova određena su preteVremenska svojstva diskova određena su pretežžito ito brzinama pokretanja njegovih mehanibrzinama pokretanja njegovih mehaniččkih dijelova.kih dijelova.Vrijeme potrebno za prijenos sadrVrijeme potrebno za prijenos sadržžaja nekog sektoraaja nekog sektoras diska ili pohranjivanje sadrs diska ili pohranjivanje sadržžaja u taj sektor moaja u taj sektor možže se e se podijeliti u dva dijela:podijeliti u dva dijela:••trajanje postavljanja glavetrajanje postavljanja glave ((headhead positioningpositioning time)time)••trajanje prijenosa podatakatrajanje prijenosa podataka ((datadata transfer time) transfer time) Postavljanje glave dijeli se na:Postavljanje glave dijeli se na:••trajanje tratrajanje tražženja stazeenja staze ((seekseek time)time)••rotacijsko karotacijsko kaššnjenjenjenje ((rotationalrotational latencylatency) )
265
529529
Vrijeme traVrijeme tražženjaenja se uobise uobiččajeno uzima kao vrijeme ajeno uzima kao vrijeme potrebno za prijelaz preko potrebno za prijelaz preko tretreććineine ukupnog broja staza.ukupnog broja staza.Rotacijsko se kaRotacijsko se kaššnjenje uzima kao njenje uzima kao prosjeprosječčno vrijemeno vrijemedvaju krajnjih sludvaju krajnjih sluččajeva odnosno jednako polovini ajeva odnosno jednako polovini trajanja jednog okretaja diska.trajanja jednog okretaja diska.Trajanje prijenosaTrajanje prijenosa podataka određeno je podataka određeno je brzinombrzinomprijenosaprijenosa ((datadata transfer rate) i kolitransfer rate) i količčinom inom prenesenih prenesenih podataka.podataka.U sektoru se osim bajtova podataka nalaze i bajtovi U sektoru se osim bajtova podataka nalaze i bajtovi zazašštitnog titnog kodiranjakodiranja..
ProsjeProsječčno vrijeme postavljanja glave u zadnje vrijeme no vrijeme postavljanja glave u zadnje vrijeme palo od priblipalo od približžno 20 ms na ispod 10ms.no 20 ms na ispod 10ms.TipiTipiččna brzina okretaja povena brzina okretaja poveććana je s 3000/min naana je s 3000/min na54005400--7200 okretaja/min. 7200 okretaja/min.
530530
Primjer:Primjer:Broj povrBroj površšina (glava) P=10ina (glava) P=10Broj cilindara (staza na povrBroj cilindara (staza na površšini) C=2000ini) C=2000Broj sektora na stazi S=100Broj sektora na stazi S=100VeliVeliččina sektora M=512 Bina sektora M=512 B
Kapacitet K=P*C*S*M=10*2000*100*512 B= 1GBKapacitet K=P*C*S*M=10*2000*100*512 B= 1GBUz pretpostavljenu brzinu vrtnjeUz pretpostavljenu brzinu vrtnjew=4800 w=4800 okrokr/min = 80 /min = 80 okrokr//seksekTrajanje jednog okretaja TTrajanje jednog okretaja TRRTTRR = 1/n=1/80 s= 12,5ms= 1/n=1/80 s= 12,5msBrzina prijenosa Brzina prijenosa VVpp=M*S/T=M*S/TRR=M*S*w=M*S*w
512*100*80B/s=4,096 MB/s512*100*80B/s=4,096 MB/s222020 101066=1M=1M
266
531531
TraTražženje staze je prosjeenje staze je prosječčno trajanje prelano trajanje prelažženjaenjaglava preko treglava preko treććine svih staza diska.ine svih staza diska.
Empirijske Empirijske (iskustvene) formule(iskustvene) formule za trajanje traza trajanje tražženja stazeenja staze
TTss = 1,5*D ms D= 1,5*D ms D<< 44TTss = 4,0+0,5*D ms 4= 4,0+0,5*D ms 4<< D D << 400400TTss = 10,0+0,01*D ms D = 10,0+0,01*D ms D >>400400
Za prethodni primjer Za prethodni primjer TS= 10,0 + 0,01*2000/3ms=16,66msTS= 10,0 + 0,01*2000/3ms=16,66ms
532532
Disk kao dopunski spremnik radnom spremnikuDisk kao dopunski spremnik radnom spremniku
ProgramProgram pripremljen zapripremljen za izvođenje izvođenje smjesmješštata se nase navanjski pomovanjski pomoććni spremnik. Prebacivanjem u radnini spremnik. Prebacivanjem u radnispremnik spremnik postajepostaje proces sa svojim procesnim adresnim proces sa svojim procesnim adresnim prostorom. Sve dretve koje prostorom. Sve dretve koje pripadajupripadaju tom pocesu tom pocesu koristekoriste zajednizajedniččki adresniki adresni prostor procesa.prostor procesa.Procesni adresni prostor ne moProcesni adresni prostor ne možže biti vee biti većći od fizii od fiziččki ki ostvarenog dijela spremnika predviđenog za korisniostvarenog dijela spremnika predviđenog za korisniččki ki nanaččin rada.in rada.Ako sve dretve procesa koji zauzima radni spremnik Ako sve dretve procesa koji zauzima radni spremnik postanu blokirane (ili se zbog krupostanu blokirane (ili se zbog kružžnog poslunog poslužživanja ivanja žželi eli oduzeti procesor tom procesu) treba pokrenuti neki oduzeti procesor tom procesu) treba pokrenuti neki drugi proces. U radnom se spremniku obavlja drugi proces. U radnom se spremniku obavlja zamjenazamjenaprograma (programa (swapswap) )
267
533533
Kasnije ponovno pokretanje prvog procesa zahtijevatKasnije ponovno pokretanje prvog procesa zahtijevatćće ponovnu promjenu sadre ponovnu promjenu sadržžaja radnog spremnika.aja radnog spremnika.Taj mehanizam podsjeTaj mehanizam podsjećća na promjenu konteksta koda na promjenu konteksta kodprebacivanja procesora s izvođenja jedne dretve na prebacivanja procesora s izvođenja jedne dretve na
drugu. Tamo se moralo pohraniti sadrdrugu. Tamo se moralo pohraniti sadržžaje registara aje registara procesora u procesora u opisnikopisnik dretve koja se prekida i dretve koja se prekida i napuniti registre procesora iz napuniti registre procesora iz opisnikaopisnika dretve koja dretve koja zapozapoččinje izvođenjeinje izvođenje..
Ovdje se mora zamijeniti sadrOvdje se mora zamijeniti sadržžaje svih spremniaje svih spremniččkih kih lokacija:lokacija:
1.1. Pohraniti u pomoPohraniti u pomoććni spremnik sadrni spremnik sadržžaje lokacija aje lokacija procesa koji se prekidaprocesa koji se prekida
2.2.Napuniti lokacije sadrNapuniti lokacije sadržžajima koji pripada procesu ajima koji pripada procesu koji koji ćće zapoe započčeti ili nastaviti s izvođenjem eti ili nastaviti s izvođenjem
534534
BBAA CC DD
PAPA
NANA
Programi oznaProgrami označčeni eni A, B,C A, B,C ii D D su procesni su procesni adresni prostori adresni prostori ččetiriju procesa koji se etiriju procesa koji se naizmjence izvode. naizmjence izvode. U jednom trenutkuU jednom trenutku samo jedan od njih mosamo jedan od njih možžeebiti smjebiti smješšten u radni spremnik, a ostali ten u radni spremnik, a ostali moraju biti pohranjeni na disku. moraju biti pohranjeni na disku.
Svaki program na disku mora biti smješten u odgovarajući broj sektora,gdje zadnji najvjerojatnije neće biti do kraja popunjen.
268
535535
U tablicama operacijskog sustava se za svaki procesU tablicama operacijskog sustava se za svaki procesmoramora nalaziti popis sektora diska u kojima se nalazinalaziti popis sektora diska u kojima se nalazismjesmješšten ten program.program.
Na samom disku sektori jednog programa ne morajuNa samom disku sektori jednog programa ne morajubiti smjebiti smješšteni jedan uz drugog. Vateni jedan uz drugog. Važžno je samo dano je samo daoni budu oni budu ččitani s diska onim redom kako je to zapisanoitani s diska onim redom kako je to zapisanou tablicama procesa i smjeu tablicama procesa i smješšteni u radni spremnikteni u radni spremnikpravilnim redoslijedom. pravilnim redoslijedom.
NaNaččinin na koji su sektori smjena koji su sektori smješšteni na disku moteni na disku možžeejako utjecati na trajanje prebacivanja programa.jako utjecati na trajanje prebacivanja programa.
536536
Primjer:Primjer:
Punjenje radnog spremnika programa s procesnimPunjenje radnog spremnika programa s procesnimadresnim prostorom 1MB s diska iz prethodnog adresnim prostorom 1MB s diska iz prethodnog primjprimj..Procjena vremena punjenja programa ako Procjena vremena punjenja programa ako je:je:
1.1. Program na disku smjeProgram na disku smješšten kompaktno (u ten kompaktno (u uzastopuzastop--nimnim sektorima smjesektorima smješštenim u jedan ili vitenim u jedan ili višše susjednihe susjednihcilindara)cilindara)
22. Program podijeljen u blokove veli. Program podijeljen u blokove veliččine 1KB koji suine 1KB koji susmjesmješšteni u dva uzastopna sektora, s tim da su ti teni u dva uzastopna sektora, s tim da su ti parovi sektora rasprparovi sektora rasprššeni po cijelom disku.eni po cijelom disku.Vrijeme utroVrijeme utroššeno u upravljaeno u upravljaččkom sklopu diskovnekom sklopu diskovnejedinice se zanemaruje. jedinice se zanemaruje.
269
537537
Program 1 Program 1 MB = 1024MB = 1024 KBKBDijeli se na 1024 bloka od 1KB za Dijeli se na 1024 bloka od 1KB za ššto treba 2048 to treba 2048 sektora po 512 B.sektora po 512 B.
a)a) Cilindar od 10 staza sa po 100 sektoraCilindar od 10 staza sa po 100 sektoraPotrebno 2 cilindra i 48 sektora u trePotrebno 2 cilindra i 48 sektora u treććem.em.
Nakon prosjeNakon prosječčnog rotacijskog kanog rotacijskog kaššnjenja ponjenja poččinjeinjeprijenos cijele prve i bez kaprijenos cijele prve i bez kaššnjenja slijedenjenja slijedeććih staza ih staza istog cilindra (svaka staza ima svoju glavu).istog cilindra (svaka staza ima svoju glavu).ČČitanje 10 cijelih staza u 10 okretaja diskaitanje 10 cijelih staza u 10 okretaja diskaPremjePremješštanje na susjedni cilindar D=1, rotacijskotanje na susjedni cilindar D=1, rotacijskokakaššnjenje, cijeli cilindar, rotacijsko kanjenje, cijeli cilindar, rotacijsko kaššnjenje, 48 njenje, 48 sektsektUkupno Ukupno T = 294,41T = 294,41 msms
b) Kod rasprb) Kod rasprššenih blokova: 1024 prosjeenih blokova: 1024 prosječčno trajanjeno trajanjetratražženja, 1024 prosjeenja, 1024 prosječčno rotacijsko kano rotacijsko kaššnjenje tenjenje teprijenos 2 sektoraprijenos 2 sektora
Ukupno Ukupno T = 23,72T = 23,72 ss
538538
Usporedba s promjenom konteksta dretve (dijeloviUsporedba s promjenom konteksta dretve (dijelovims) pokazuje da promjena programa u radnomms) pokazuje da promjena programa u radnomspremniku traje jako dugo (vispremniku traje jako dugo (višše stotina ms).e stotina ms).Za vrijeme promjene sadrZa vrijeme promjene sadržžaja spremnika procesoraja spremnika procesorstoji nezaposlen.stoji nezaposlen.Zbog toga je potrebno gospodarenje spremniZbog toga je potrebno gospodarenje spremniččkimkimprostorom obavljati tako da se u radnom spremniku prostorom obavljati tako da se u radnom spremniku istovremeno nalazi viistovremeno nalazi višše programa.e programa.PoPožželjno je da u svakom trenutku, barem jedna od eljno je da u svakom trenutku, barem jedna od dretvi iz bilo kojeg procesa dretvi iz bilo kojeg procesa ččiji je adresni prostoriji je adresni prostorsmjesmješšten u radnom spremniku, bten u radnom spremniku, bude pripravna zaude pripravna zaizvođenjeizvođenje..Tijekom izvođenja takve dretve jednog procesaTijekom izvođenja takve dretve jednog procesa,,momožže se izbacivati program drugog procesa ie se izbacivati program drugog procesa inadomjestiti programom trenadomjestiti programom treććeg procesa. eg procesa.
270
539539
Procesni informacijski Procesni informacijski blok blok -- PCB*PCB*
•• Problem postaje joProblem postaje jošš slosložženijim kada se enijim kada se postavi zahtjev za izvođenjem programa postavi zahtjev za izvođenjem programa ččijiijisu procesni adresni prostori vesu procesni adresni prostori većći od fizii od fiziččkog kog adresnog prostora raadresnog prostora raččunala.unala.Mehanizmi Mehanizmi virtuelnogvirtuelnog spremnika (spremnika (virtualvirtualmemorymemory) prikladno koriste radni i pomo) prikladno koriste radni i pomoććni ni spremnik.spremnik.
*Vidi 0*Vidi 033 Proc i drtvProc i drtv slide No slide No 9,139,13
540540
U U sustavskomsustavskom adresnom prostoru postoji za svakuadresnom prostoru postoji za svakudretvu dretvu opisnikopisnik dretve i jezgra operacijskog sustavadretve i jezgra operacijskog sustavapremjepremješšta taj ta taj opisnikopisnik iz jedne liste u drugu u iz jedne liste u drugu u ovisnosti o stanju dretve. ovisnosti o stanju dretve. Jednako tako, u Jednako tako, u sustavskomsustavskom adresnom prostoru adresnom prostoru ččuvaju se u posebnim tablicama informacije ouvaju se u posebnim tablicama informacije osvakom procesu.svakom procesu.Za svaki se proces oblikuje Za svaki se proces oblikuje procesni informacijskiprocesni informacijski//kontrolni blokkontrolni blok ((processprocess informationinformation//controlcontrol blockblock))unutar kojeg se nalaze sve informacije vaunutar kojeg se nalaze sve informacije važžne zane zaodvijanje procesa. odvijanje procesa. U njemu se nalaze informacije o gospodarenjuU njemu se nalaze informacije o gospodarenjuspremnispremniččkim prostorom, tablice sektora o smjekim prostorom, tablice sektora o smješštajutajuprograma na disku kao i programa na disku kao i podatcipodatci o smjeo smješštanju programa tanju programa u radnom spremniku. u radnom spremniku.
271
541541
Razvitak naRazvitak naččina dodjeljivanja radnog spremnikaina dodjeljivanja radnog spremnika
•• StatiStatiččko raspoređivanje radnog spremnikako raspoređivanje radnog spremnikaAdrese:Adrese:1.1. Iz programskog brojila kada se u radnom spremniku Iz programskog brojila kada se u radnom spremniku
dohvadohvaććaju naredbe aju naredbe 22. Iz registra kazaljke stoga kada se adresira stog. Iz registra kazaljke stoga kada se adresira stog33. Iz adresnog dijela naredbe kada se adresiraju . Iz adresnog dijela naredbe kada se adresiraju podatcipodatci
Prevodilac Prevodilac (Compiler(Compiler) p) prilikom prevođenja programa morarilikom prevođenja programa moragenerirati niz strojnih naredbi i poslagati ih jednu iza druge.generirati niz strojnih naredbi i poslagati ih jednu iza druge.U nekim naredbama moraju biti zapisane stvarne fiziU nekim naredbama moraju biti zapisane stvarne fiziččke adreseke adresei za takav se program kai za takav se program kažže da je napisan u e da je napisan u apsolutnom oblikuapsolutnom obliku..Apsolutne adrese koje treba zapisati u takvom programuApsolutne adrese koje treba zapisati u takvom programuzavise o tome gdje zavise o tome gdje ćće program biti smjee program biti smješšten u radnomten u radnomspremniku kada bude pripremljen za izvođenjespremniku kada bude pripremljen za izvođenje. .
542542
Ako se predviđa da Ako se predviđa da ćće prva adresa e prva adresa programa bitiprograma biti smjesmješštena na potena na poččetnoj adresi etnoj adresi PA PA onda prevodilaconda prevodilac mora tu adresu uzeti u mora tu adresu uzeti u obzir pri obzir pri određivanjuodređivanju apsolutnih adresa koje apsolutnih adresa koje ćće e se zapisivatise zapisivati unutar strojnog programa. unutar strojnog programa.
To znaTo značči da bi se poi da bi se poččetna adresa PA moralaetna adresa PA moralastaviti na raspolaganje prevodiocu prijestaviti na raspolaganje prevodiocu prijepopoččetka stvaranja strojnog programa.etka stvaranja strojnog programa.
272
543543
Međutim prikladniji je drugi naMeđutim prikladniji je drugi naččin pripremein pripremeprograma kod kojeg se prevođenje obavljaprograma kod kojeg se prevođenje obavljatako da se pretpostavi potako da se pretpostavi poččetna adresa etna adresa programa jednaka nuli i generira strojni oblik u programa jednaka nuli i generira strojni oblik u kojem su sve adrese izrakojem su sve adrese izraččunate s obzirom na tu unate s obzirom na tu popoččetnu 0etnu 0--tu (nultu) adresu.tu (nultu) adresu.Te se adrese zovu Te se adrese zovu relativne adreserelativne adrese..Uz takav strojni oblik programa s relativnim Uz takav strojni oblik programa s relativnim adresama prevodilac mora generirati posebne adresama prevodilac mora generirati posebne oznake uz one lokacije u kojima treba promijenitioznake uz one lokacije u kojima treba promijenitiadresu zavisno o stvarnoj poadresu zavisno o stvarnoj poččetnoj adresi adresnogetnoj adresi adresnogprostora u koji prostora u koji ćće program biti smjee program biti smješšten.ten.
544544
Veza relativnih i apsolutnih adresaVeza relativnih i apsolutnih adresa
NANA
PAPA
SustavskiSustavskiadresniadresniprostorprostor
ApsolutnaApsolutnaadresaadresa
RelativnaRelativnaadresaadresa
00
LL--11PA+LPA+L--11
ProgramPrograms relativnims relativnimadresamaadresama
00
LL--11
273
545545
U radnom je spremniku poU radnom je spremniku požželjno dreljno držžati istodobnoati istodobnovivišše programa koji moraju biti u razlie programa koji moraju biti u različčitim dijelovimaitim dijelovimaspremnika s razlispremnika s različčitim poitim poččetnim adresama.etnim adresama.Jedan od povijesnih naJedan od povijesnih naččina dodjele spremnika bio jeina dodjele spremnika bio jepodjela spremnika na dijelove stalne velipodjela spremnika na dijelove stalne veliččine zvane ine zvane stalne stalne particijeparticije ((fixedfixed partitionpartition))
ParticijeParticije su mogle biti jednake ili razlisu mogle biti jednake ili različčite veliite veliččine ine pa su se tako smjepa su se tako smješštali i razlitali i različčiti programi iti programi po velipo veliččiniini..Programi pripremljeni za jednu Programi pripremljeni za jednu particijuparticiju nisu senisu sejednostavno mogli preseliti u drugu jednostavno mogli preseliti u drugu particijuparticiju jer je jer je to seljenje zahtijevalo novo generiranje apsolutnogto seljenje zahtijevalo novo generiranje apsolutnogoblika programa. oblika programa.
546546
Podjela spremnika na Podjela spremnika na particijeparticije
SustavskiSustavski adresni prostoradresni prostorPA1PA1
PA2PA2
PA3PA3
PA4PA4PA5PA5
1M1M
1M1M
512Kb512Kb256Kb256Kb256KB256KB
ParticijaParticija 11
ParticijaParticija 22
ParticijaParticija 33
ParticijaParticija 44ParticijaParticija 55
274
547547
Programi su pripremljeni za izvođenje u pojedinojProgrami su pripremljeni za izvođenje u pojedinojparticijiparticiji i nalaze se na disku. i nalaze se na disku. Po potrebi ulaze u radni spremnik ali ako ih se Po potrebi ulaze u radni spremnik ali ako ih se izbaci oni izbaci oni ćće se kasnije moe se kasnije moćći vratiti i vratiti samosamo u istuu istuparticijuparticiju..
StatiStatiččko raspoređivanjeko raspoređivanje –– programi se tijekom programi se tijekom boravka u sustavu nalaze uvijek u istom dijelu boravka u sustavu nalaze uvijek u istom dijelu radnog radnog spremnika.spremnika.
548548
Nedostatci statiNedostatci statiččkog raspoređivanjakog raspoređivanja::•• Tijekom rada spremnik neTijekom rada spremnik nećće biti potpuno iskorie biti potpuno iskoriššten:ten:1.1. Programi nisu jednake veliProgrami nisu jednake veliččine pa ine pa ćće dijelovie dijelovi
particijaparticija ostati neiskoriostati neiskoriššteni teni -- unutarnjaunutarnja fragmentacijafragmentacijainternalinternal fragmentationfragmentation
2. Mo2. Možže se dogoditi da svi procesi e se dogoditi da svi procesi ččiji su programi iji su programi smjesmješšteni u istu teni u istu particijuparticiju budu blokirani pa tabudu blokirani pa taparticijaparticija ostaje prazna. Pri tome moostaje prazna. Pri tome možže postojati vie postojati viššeeprocesa koji procesa koji ččekaju na dodjelu radnog spremnika ali ekaju na dodjelu radnog spremnika ali se se nemogunemogu napuniti jer nisu pripremljeni za tu napuniti jer nisu pripremljeni za tu particijuparticijuVanjska fragmentacija ... Vanjska fragmentacija ... externalexternal fragmentationfragmentation
Dodatno,Dodatno, adresni prostori programa nisu mogli bitiadresni prostori programa nisu mogli bitivevećći od najvei od najvećće e particijeparticije fizifiziččkog spremnika.kog spremnika.
275
549549
DinamiDinamiččko raspoređivanje radnog spremnikako raspoređivanje radnog spremnika
•• Generiranje apsolutnog oblika programa svodi Generiranje apsolutnog oblika programa svodi se na prilagođavanje pose na prilagođavanje poččetnoj adresi one etnoj adresi one particijeparticije u koju u koju ćće program biti smjee program biti smješšten.ten.
•• Obzirom da je jedina operacija koju treba Obzirom da je jedina operacija koju treba izvesti pri preraizvesti pri preraččunavanju adresa pribrajanje unavanju adresa pribrajanje popoččetne adrese PA to se izvodi sklopovski i to etne adrese PA to se izvodi sklopovski i to uvijek kada se adresa iz procesora uvijek kada se adresa iz procesora ššalje prema alje prema spremniku.spremniku.
550550
••Program uvijek ostaje u obliku s relativnim adresama Program uvijek ostaje u obliku s relativnim adresama to jest sve adrese unutar programa izrato jest sve adrese unutar programa izraččunate su kaounate su kaoda je poda je poččetna adresa =0 etna adresa =0 logilogiččki adresni prostorki adresni prostor. .
••Program se smjeProgram se smješšta u radni spremnik koji zapota u radni spremnik koji započčinjeinjepopoččetnom adresom PA etnom adresom PA fizifiziččki adresni prostorki adresni prostor..
••U procesoru, na putu prema sabirnici, iza adresnogU procesoru, na putu prema sabirnici, iza adresnogmeđuregistrameđuregistra, dodaje se sklopovsko , dodaje se sklopovsko međuzbrajalomeđuzbrajalo i i uz njega jouz njega jošš jedan registar u koji se zapisuje pojedan registar u koji se zapisuje poččetna etna adresa fiziadresa fiziččkog adresnog prostora. Taj se registar kog adresnog prostora. Taj se registar zove bazni registar zove bazni registar ((base registarbase registar).).
276
551551
Sklopovska pretvorba logiSklopovska pretvorba logiččke u fizike u fiziččku adresuku adresu
ALAL
PAPA Bazni registar BRBazni registar BR
Prije poPrije poččetka izvođenja dretve etka izvođenja dretve PA mora biti u BRPA mora biti u BR
U U procesoru se procesoru se generira logigenerira logiččka ALka AL
ProcesorProcesor
Radni Radni spremnikspremnik
U radni spremnikU radni spremnikizlazi fiziizlazi fiziččka adresa AFka adresa AF
AFAF
552552
••PoPoččetna se adresa pribraja svakoj adresi koja seetna se adresa pribraja svakoj adresi koja segenerira u procesu, pa tako i adresama koje dolaze generira u procesu, pa tako i adresama koje dolaze iz programskog brojila i registra kazaljke stoga.iz programskog brojila i registra kazaljke stoga.Time su rijeTime su riješšeni svi problemi sa adresama koje dolaze eni svi problemi sa adresama koje dolaze iz ta dva registra.iz ta dva registra.
••Ovo sklopovsko proOvo sklopovsko prošširenje procesora zairenje procesora začčetak je tzv.etak je tzv.spremnispremniččkog kog međusklopameđusklopa ((memorymemory managementmanagement unitunit))MMAMMA koji postaje sastavni dio svakog procesora. koji postaje sastavni dio svakog procesora.
Uz ovakvu sklopovsku opremu svi se programi Uz ovakvu sklopovsku opremu svi se programi priređuju tako da imaju svoj priređuju tako da imaju svoj logički adresni prostorkoji se za programe kada se izvode zove koji se za programe kada se izvode zove procesni procesni adresni prostor. adresni prostor.
277
553553
LogiLogiččki se adresni prostorki se adresni prostor ne mijenja tijekom izvođenja ne mijenja tijekom izvođenjaprograma programa bez obzira na mjesto na koji bez obzira na mjesto na koji ćće programe programpri vipri viššekratnoj zamjeni biti premjeekratnoj zamjeni biti premješštenten. .
Bitno je da se prije njegova izvođenja uvijek u bazni Bitno je da se prije njegova izvođenja uvijek u bazni registar pohrani njegova aktualna (u tom trenutku) registar pohrani njegova aktualna (u tom trenutku) popoččetna adresa u fizietna adresa u fiziččkom adresnom prostoru.kom adresnom prostoru.
Za razliku od Za razliku od statistatiččkogkog raspoređivanja spremnika raspoređivanja spremnikaovdje se radi o ovdje se radi o dinamidinamiččkom raspoređivanju spremnikakom raspoređivanju spremnika..
Uz ovakvo sklopovsko rjeUz ovakvo sklopovsko rješšenje enje nisu nisu potrebne stalne potrebne stalne particijeparticije i za njih pripremljeni programi. Programi se i za njih pripremljeni programi. Programi se mogu mogu ““naslagatinaslagati”” u spremnik neposredno jedan iza u spremnik neposredno jedan iza drugoga.drugoga.
554554
SklopovskiSklopovskiadresniadresniprostorprostor
PAPAII
PAPA11
PAPA22
PAPA33
PAPA44
PAPA55
VeliVeliččina 1ina 1
VeliVeliččina 2ina 2
VeliVeliččina 3ina 3
VeliVeliččina 4ina 4
VeliVeliččina 5ina 5
U procesnom informacijskomU procesnom informacijskombloku svakog procesa morabloku svakog procesa morabiti zapisana biti zapisana PAPAI.I.U takvom se radnomU takvom se radnomokruokružženju vrlo jednostavnoenju vrlo jednostavnoostvaruje ostvaruje viviššeprogramskieprogramskirad.rad.U baznom registru mora se U baznom registru mora se nalaziti ponalaziti poččetna adresa onogetna adresa onogprocesa procesa ččija se dretva upravoija se dretva upravoizvodi.izvodi.To znaTo značči da se sadri da se sadržžaj baznogaj baznogregistra mora mijenjati kada registra mora mijenjati kada se izvođenje prebacuje sse izvođenje prebacuje sdretve jednog procesa na dretve jednog procesa na dretvu drugog procesa.dretvu drugog procesa.
278
555555
Promjena sadrPromjena sadržžaja baznog registra postaje tako sastavni dioaja baznog registra postaje tako sastavni diopromjene konteksta koju treba obaviti kada se izvođenje promjene konteksta koju treba obaviti kada se izvođenje prebacuje s dretve jednog na dretvu drugog procesa.prebacuje s dretve jednog na dretvu drugog procesa.
Unutar dretvi istog procesa sadrUnutar dretvi istog procesa sadržžaja baznog registra se aja baznog registra se nenemijenja.mijenja.
Pri ovakvom naPri ovakvom naččinu uporabe radnog spremnika postojiinu uporabe radnog spremnika postojiopasnost da procesi jedan drugome zasmetaju takoopasnost da procesi jedan drugome zasmetaju takoda da ““upadajuupadaju”” u tuđi adresni prostor u tuđi adresni prostor..
U tom se radnom okruU tom se radnom okružženju izvode i programi koji se joenju izvode i programi koji se joššrazvijaju i ispitujurazvijaju i ispituju i koji i koji ćće s vrlo velikom vjerojatnoe s vrlo velikom vjerojatnoššććuupisati (upadapisati (upadati) uti) u prostor predviđen za druge procese prostor predviđen za druge procese. .
556556
Takve pogreTakve pogrešške nije moguke nije mogućće izbjee izbjećći nikakvim programskimi nikakvim programskimzazašštitama pa je zato napravljeno sklopovsko rjetitama pa je zato napravljeno sklopovsko rješšenje.enje.
AFAF>>OGOG
AFAF<<PAPA
DADA
DADA
RadniRadnispremnikspremnik
PAPABazni registar BRBazni registar BR
prekidprekid
prekidprekid
OGOGRegistar ograde OGRegistar ograde OG
ALAL AFAF
ProcesorProcesor
279
557557
U dodatni registar ograde RO pohranjuje se U dodatni registar ograde RO pohranjuje se najvenajveććaa adresaadresakoju program smije dohvakoju program smije dohvaććati.ati.
OGOGII = PA= PAII + Veli+ VeliččinainaII
U sluU sluččaju aju prelaska i gornje i donje graniceprelaska i gornje i donje granice međusklopmeđusklopizaziva sklopovski prekid.izaziva sklopovski prekid.
Naredba koja je izazvala prekid neNaredba koja je izazvala prekid nećće se izvesti do kraja e se izvesti do kraja i pozvati i pozvati ćće se funkcija operacijskog sustava koja e se funkcija operacijskog sustava koja ććeezaustaviti izvođenje tog neispravnog procesazaustaviti izvođenje tog neispravnog procesa..
558558
Memorijska zaMemorijska zašštitatita
Monitor
Job 1
Job 2
Job 3Job 4
0
256000
300040420940
880000
1024000
300040
120900
Base register
Limit register
280
559559
Memorijska zaMemorijska zašštitatita
CPU >- <
Base Base+limit
MemorijaAdresa Yes Yes
No No
Poziv OS-u ... adresna greška
560560
S ovakvim spremniS ovakvim spremniččkim kim međusklopommeđusklopom mogu se rijemogu se riješšiti nekiiti nekinedostatci statinedostatci statiččkog raspoređivanja radnog spremnika alikog raspoređivanja radnog spremnika alii dalje ostaje problem i dalje ostaje problem fragmentacije spremnifragmentacije spremniččkog prostorakog prostora..
Tijekom vremena neki procesi zavrTijekom vremena neki procesi završšavaju izvođenje i avaju izvođenje i oslobađajuoslobađaju svoj spremnisvoj spremniččki prostor. Drugi procesi bivaju ki prostor. Drugi procesi bivaju blokirani i izbacuju se iz radnog spremnika, pa blokirani i izbacuju se iz radnog spremnika, pa takođertakođeroslobađaju svoj procesni prostor kako bi napravili mjesta zaoslobađaju svoj procesni prostor kako bi napravili mjesta zaprograme procesa koji se mogu izvoditi. programe procesa koji se mogu izvoditi.
Ti Ti ćće se procesi kasnije vratiti u radni spremnik, ali e se procesi kasnije vratiti u radni spremnik, ali najvjerojatnijenajvjerojatnije na neko drugo mjesto.na neko drugo mjesto.
S obzirom da veliS obzirom da veliččine programa nisu jednake u spremnikuine programa nisu jednake u spremnikućće se nakon nekog vremena između procesnih adresnihe se nakon nekog vremena između procesnih adresnihprostora pojaviti prazni dijelovi spremnika koji se nazivajuprostora pojaviti prazni dijelovi spremnika koji se nazivajurupama (rupama (holesholes). ).
281
561561
SustavskiSustavskiadresniadresniprostorprostor
PAPA11
PAPA22
PAPA33
PAPA44
VeliVeliččina 1ina 1
VeliVeliččina 2ina 2
VeliVeliččina 3ina 3
VeliVeliččina 4ina 4
ruparupa
ruparupa
ruparupa
ruparupa
Izgled radnog spremnikaIzgled radnog spremnikasustava koji dulje vrijeme radisustava koji dulje vrijeme radi
562562
SpremniSpremniččki ki međusklopovimeđusklopovi su dobili dodatne funkcije koje su dobili dodatne funkcije koje procesni adresni prostor dijele na posebne dijelove procesni adresni prostor dijele na posebne dijelove tzvtzv segmente:segmente:
•• Naredbeni ili kodniNaredbeni ili kodni segmentsegment uu koji se pohranjuju koji se pohranjuju naredbe programa ili programski kod inaredbe programa ili programski kod i adresira se iz adresira se iz programskog brojila,programskog brojila,
•• StogovniStogovni segmentsegment u koji se pohranjuje stog i adresirau koji se pohranjuje stog i adresirase iz registra kazaljke stoga,se iz registra kazaljke stoga,
•• PodatkovniPodatkovni segmentsegment u koji se pohranjuju u koji se pohranjuju podatcipodatci i i ččijeijeadrese potiadrese potičču iz adresnih dijelova naredbi.u iz adresnih dijelova naredbi.
282
563563
Za Za svaki svaki segment u spremnisegment u spremniččkom kom međusklopumeđusklopu predviđenipredviđenisu su posebni bazni registri i registri ogradeposebni bazni registri i registri ograde kako bi se cijelikako bi se cijeliradni spremnik mogao podijeliti na posebne segmente:radni spremnik mogao podijeliti na posebne segmente:naredbeni,naredbeni, stogovnistogovni i podatkovnii podatkovni. .
Problem fragmentacije međutim ostaje i daljeProblem fragmentacije međutim ostaje i dalje..Osnovni naOsnovni naččin suzbijanja fragmentacije svodi se na toin suzbijanja fragmentacije svodi se na toda se rupe odrda se rupe održžavaju avaju ššto to veveććimaima kako bi se u njih moglikako bi se u njih moglismjestiti novi programi.smjestiti novi programi. To se postiTo se postižže tako da se:e tako da se:
•• Pri svakom oslobađanju nekog procesnog prostora novoPri svakom oslobađanju nekog procesnog prostora novonastala rupa nastala rupa spajaspaja ss eventualnim susjednim rupamaeventualnim susjednim rupamau novu veu novu većću rupu,u rupu,
•• Pri svakom novom zahtjevu za spremniPri svakom novom zahtjevu za spremniččkim prostoromkim prostorompotrapotražži se najprije najmanjai se najprije najmanja rupa u koju se morupa u koju se možže e smjestiti novi program. smjestiti novi program.
564564
Postoji moguPostoji moguććnost da se u nekom trenutku, kada se ustanovi nost da se u nekom trenutku, kada se ustanovi da je fragmentacija postala prevelika, privremeno obustavi da je fragmentacija postala prevelika, privremeno obustavi izvođenje dretvi i izvođenje dretvi i ““preslopresložžee”” programi u kompaktni programi u kompaktni (slijedni)(slijedni)prostor.prostor.
Time se na kraju spremnika moTime se na kraju spremnika možžda dobije dovoljna velika rupada dobije dovoljna velika rupau koju se mou koju se možže smjestiti program koji e smjestiti program koji ččeka na dodjelu radnog eka na dodjelu radnog spremnika.spremnika.
Ta se tehnika Ta se tehnika ““skupljanja otpadakaskupljanja otpadaka”” ((garbagegarbage collectioncollection))upotrebljava i u nekim programskim okruupotrebljava i u nekim programskim okružženjima za izvođenje enjima za izvođenje programa koji intenzivno koriste dinamiprograma koji intenzivno koriste dinamiččke strukture podataka. ke strukture podataka.
283
565565
Primjer D.E. Primjer D.E. KnuthaKnutha
Vjerojatnost oslobađanja spremniVjerojatnost oslobađanja spremniččkog bloka jednaka je kog bloka jednaka je vjerojatnosti zahtjeva.vjerojatnosti zahtjeva.Kada takav sustav radi dovoljno dugo uspostaviti Kada takav sustav radi dovoljno dugo uspostaviti ćće se u njemue se u njemuravnoteravnotežžno stanje, a to znano stanje, a to značči da i da ćće prosjee prosječčni broj ni broj punihpunih blokovablokovai prosjei prosječčni broj ni broj ruparupa biti stalanbiti stalan..Pretpostavke:Pretpostavke:••Spremnik je dovoljno velik da se mogu zanemariti rubni uvjetiSpremnik je dovoljno velik da se mogu zanemariti rubni uvjeti
te se podrazumijeva da iznad i ispod svakog punog bloka te se podrazumijeva da iznad i ispod svakog punog bloka postoji jopostoji jošš jedan dio spremnika (prazan ili pun),jedan dio spremnika (prazan ili pun),
••Da se nova rupa nastala oslobađanjem prostora spaja sa Da se nova rupa nastala oslobađanjem prostora spaja sa susjednim rupama ukoliko postoje,susjednim rupama ukoliko postoje,
••Da je vjerojatnost Da je vjerojatnost qq pronalapronalažženja rupe koja je jednaka velienja rupe koja je jednaka veliččiniinizahtjevanogzahtjevanog prostora zanemariva, a suprotna vjerojatnostprostora zanemariva, a suprotna vjerojatnostp = 1 p = 1 –– qq priblipribližžno jednaka jedinici.no jednaka jedinici.
566566
Stanje rupa prije i poslije oslobađanja jednog punog bloka Stanje rupa prije i poslije oslobađanja jednog punog bloka
Prog
Prog
Rupa Rupa
Rupa
RupaRupa
Rupa
Prog Prog
XX
yy
zz
XX
yy
zz
XX
yy
zz
XX
yy
zz
X
y
z
X
y
z
X
y
z
X
y
z
Oslobađanje Y
Broj rupa +1 Broj rupa = Broj rupa = Broj rupa - 1
Tip A Tip B Tip C Tip D
Prog
Prog
Prog
Prog
Prog
Rupa
Prog
Prog
Rupa
284
Uz pretpostavku da se u sustavu nalazi
a punih blokova tipa Ab punih blokova tipa Bc punih blokova tipa Cd punih blokova tipa D
Broj punih blokova m=a+b+c+dBroj rupa n= (b+c+2d)/2
Uz puni blok tipa A nene postoji rupa,Uz svaki puni blok tipa B postoji jedna donjajedna donja rupa,Uz svaki puni blok tipa C postoji jedna gornjajedna gornja rupa,Uz svaki puni blok tipa D postoje 2 rupe: gornja i donja,Uz pune blokove tipa A nema susjednih rupa.
Svaka se rupa broji 2 puta, jer je jednom punom bloku gornjaa drugom punom bloku donja, pa se zbroj mora podijeliti s 2.
568568
b = cjer svaka rupa kad je jednom punom bloku gornja mora bitijednom punom bloku donja tako da formula
Broj rupa n= (b+c+2d)/2 postaje n= (2b+2d)/2
n = b + d
Obzirom da se promatra stacionarno stanje, vjerojatnost porasta broja rupa jednaka je vjerojatnosti njihova smanjivanja.
To se izražava tako da se izjednači vjerojatnost nastanka jednerupe s vjerojatnošću nestanka jedne rupa.
285
569569
Vjerojatnost porasta broja rupa
Broj rupa može porasti za 1 samo onda ako se oslobodi 1 puniblok i to blok tipa A.
Vjerojatnost takvog događaja je
(vjerojatnost oslobađanja) * a/m (m broj svih punih blokova)
Vjerojatnost smanjenja broja rupaTo se može dogoditi kada se:1. oslobodi jedan puni blok tipa D2. ako postoji zahtjev upravo jednak veličini rupe u koji se
novi program može smjestiti (vjerojatnost q) pa je vjerojatnost da će se to dogoditi
(vjerojatnost oslobađanja)*d/m + (vjerojatnost zahtjeva) * q
570570
Vjerojatnost povećanja i smanjivanja broja rupa za jedan moraju biti jednake pa se dva gornja izraza izjednačuju.Osim toga, slijedom pretpostavke da su vjerojatnostioslobađanja i zahtjeva jednake njihovim se dokidanjemdobiva
a/m = d/m + q a uz q = 1 – pa = d + (1-p) * mAko se to uvrsti u m = a+b+c+dm = d + (1-p) * m + b +c + d
uz uvažavanje b = c i n = b + d
te sređivanjem dobiva
286
571571
m = m – p*m + 2(b+d)
p * m = 2n
n = ½ p*m
odnosno, s obzirom da p teži prema 1
n = ½ m
U stacionarnom stanju će se u spremniku naćibroj rupa n jednak polovici broja punih blokova m.
“Knuthovo 50% pravilo”
572572
ZakljuZaključčakak
•• Fragmentacija se u ovakvom naFragmentacija se u ovakvom naččinu raspoređivanja inu raspoređivanja punih blokova nikako ne mopunih blokova nikako ne možže izbjee izbjećći.i.
•• Uz opisanu fragmentaciju ozbiljan nedostatakUz opisanu fragmentaciju ozbiljan nedostatakje i je i ččinjenica da programi nikako ne mogu biti veinjenica da programi nikako ne mogu biti većći i od fiziod fiziččki raspoloki raspoložživog spremniivog spremniččkog prostora.kog prostora.
•• To je ograniTo je ograniččenje uvjetovano zahtjevom da se, prije enje uvjetovano zahtjevom da se, prije popoččetka izvođenjaetka izvođenja, cjeloviti program, t.j. cijeli, cjeloviti program, t.j. cijeliadresni prostor procesa nalazi u radnom spremniku. adresni prostor procesa nalazi u radnom spremniku.
287
573573
Preklopni naPreklopni naččin uporabe radnog spremnikain uporabe radnog spremnika
•• Zamisao koja omoguZamisao koja omoguććuje izvođenje programa uje izvođenje programa ččiji je iji je logilogiččki adresni prostor veki adresni prostor većći od fizii od fiziččkog spremnika je kog spremnika je da se program podijeli na dijelove koji svi ne moraju da se program podijeli na dijelove koji svi ne moraju biti biti istovremenoistovremeno smjesmješšteni u fiziteni u fiziččkom spremniku.kom spremniku.
•• U radnom spremniku mora se stalno nalaziti onaj dio U radnom spremniku mora se stalno nalaziti onaj dio programa koji sadrprograma koji sadržži naredbe koje se upravo izvode i naredbe koje se upravo izvode kao i dio podatkovnog prostora koji te naredbe kao i dio podatkovnog prostora koji te naredbe adresiraju.adresiraju.
•• Program se dijeli na Program se dijeli na jedan osnovni diojedan osnovni dio koji se uvijek koji se uvijek nalazi u radnom spremniku i na nalazi u radnom spremniku i na zamjenljive dijelovezamjenljive dijelove((overlayoverlay--prekloppreklop) koji se naizmjence pozivaju u ) koji se naizmjence pozivaju u preostali dio korisnipreostali dio korisniččkog dijela fizikog dijela fiziččkog spremnika.kog spremnika.
574574
PA
Fizički spremnik
Sustavskiadresniprostor
Preklopni način uporabe radnog spremnika
Osnovni dio
Preklopni dio 1
Preklopni dio 2
Preklopni dio 3
Logički adresniprostor
288
575575
PA
Fizički spremnik
Sustavskiadresniprostor
Preklopni način uporabe radnog spremnika
Osnovni dio
Preklopni dio 1
Preklopni dio 2
Preklopni dio 3
Logički adresniprostor
576576
PA
Fizički spremnik
Sustavskiadresniprostor
Preklopni način uporabe radnog spremnika
Osnovni dio
Preklopni dio 1
Preklopni dio 2
Preklopni dio 3
Logički adresniprostor
289
577577
Ovakav način uporabe spremnika zahtijeva međutim vrlo pažljivu pripremu programa.
Programer mora podijeliti program na odgovarajuće dijelove i u osnovni dio programa ugraditi mehanizme za donošenje odluke o pravodobnom prebacivanju preklopnih dijelovau radni spremnik.
Unutar programa mora se voditi računa o načinu korištenja pojedinih dijelova programa.
Takav način programiranja zahtijeva pažljivu analizu svakogprograma, jer je način njegove podjele na preklopne dijelove zavisan o njegovim željenim funkcijskim svojstvima.
578578
Posao podjele na preklopne dijelove u višeprogramskom radu bitno se usložnjava jer se u radnom spremniku mogu naći pojedini preklopni dijelovi različitih programa.
Zamisao podjele programa na dijelove koji ne moraju svi u istovrijeme biti u radnom spremniku pokazala se vrlo korisnom.
Pri tome je postalo razumljivo da postupak podjele programana dijelove i način njihova smještaja u radni spremnik trebaautomatizirati kako bi se olakšala priprema programa i izbjeglegreške programera.
U današnjim računalskim sustavima koriste se procesori sprikladnim spremničkim međusklopovima koji omogućuju da operacijski sustavi ostvare vrlo djelotvorno gospodarenje spremničkim prostorom.
290
579579
DodjeljivanjeDodjeljivanje spremnika spremnika stranistraniččenjemenjem
•• Sklopovska podloga Sklopovska podloga stranistraniččenjuenju•• Stranice logiStranice logiččkog adresnog prostora i okviri kog adresnog prostora i okviri
fizifiziččkog adresnog prostorakog adresnog prostoraLogiLogiččki adresni prostor programa zove se iki adresni prostor programa zove se ilogilogiččki adresni prostor procesa. Adrese unutarki adresni prostor procesa. Adrese unutartog adresnog prostora su logitog adresnog prostora su logiččke adrese koje ke adrese koje zapozapoččinju nultom adresom. Na putu iz registarainju nultom adresom. Na putu iz registaraprocesa do fiziprocesa do fiziččkog spremnika iz tih logikog spremnika iz tih logiččkihkihregistara spremniregistara spremniččki ki međusklopmeđusklop mora odreditimora odreditifizifiziččku adresu. ku adresu.
580580
To se pri dinamičkom dodjeljivanju spremnika obavlja pribrajanjem početne adrese smještene u bazni registar.
U fizičkom spremniku mogu se odvijati programi čiji je procesni adresni prostor veći od prostora fizičkog spremnikaako se procesni adresni prostor podijeli na dijelove koji ne moraju svi biti istovremeno smješteni u fizičkom spremniku.
U današnjim računalnim sustavima, zasnovanim okosuvremenih procesora, ustalio se takav način gospodarenja spremničkim prostorom koji se zove straničenje (paging).
291
581581
Logički adresni prostor zamizamiššljenoljeno se dijeli na jednako velikedijelove koji se zovu stranicama (page).
Logički adresni prostor
0123
2r-32r-22r-1
2pPrikladno je da stranice imaju veličinu koja je cjelobrojna potencija broja 2.U tom se slučaju m adresnih bitovamože podijeliti na 2 skupine:1. p bitova koji će odrediti adresu
unutar pojedine stranice i2. r=m-p bitova koji određuju redni broj
stranice
Veličina stranice 2p
Adresa unutar stranice 0 do 2p-1Ukupni broj stranica 2r
Adrese stranica 0 do 2r-1
582582
Stvarni fizički radni spremnik može se zamišljeno podijeliti nadijelove jednake veličini stranice logičkog adresnog prostora.
Logički adresni prostor
0123
2q-32q-22q-1
2p
Ti se zamišljeni dijelovi zovu okviri (frames).U jedan okvir fizičkog radnog spremnika možese smjestiti jedna stranica logičkog adresnogprostora.Veličina ostvarenog-realnog fizičkog spremnika računala određuje broj postojećih okvira. Pretpostavi li se da je broj postojećih okviracjelobrojna potencija broja 2, okvire će semoći adresirati s q bitova i to tako da seredni brojevi kreću od 0 do 2q-1
292
583583
Primjer moguće podjele logičkog adresnog prostora u računalnimSustavima s 32-bitnom i 64-bitnom arhitekturom.
32 bita32 bita (210=KB 220=MB 230=GB)
m = 32 pa je veličina logičkog adresnog prostora
232 = 22 * 230 = 4 GBUz pretpostavku da je p = 12 veličina stranice slijedi
212 = 22 * 210 = 4 KB
Preostalih r = m – p = 32-12 = 20 bitova adrese služi za adresiranje stranice pa je prema tome u 32 bitnoj arhitekturi moguće adresirati
220 = 1 M stranica (106)210=103 220=2(10+10)=210*210=103*103=106
584584
64 bita64 bitam = 64 pa je veličina logičkog adresnog prostora
264=24 * 260=16 * (210)6=16 * (103)6=16 * 1018= 16 EB eksa bajta
Uz jednaku veličinu stranice od 4 KB
adresiranje stranica r = m – p = 52 daje mogućih
252=22*250=4*(210)5 = 4* (103)5 = 4*1015= 4P penta stranica
kilo, mega , giga, tera, penta, eksa(103 106 109 1012 1015 1018)
293
585585
Fizički radni spremnik ne mora (m0že) biti ni izdaleka tako velik pa prema tome sadrži mnogo manje okvira od mogućeg broja stranica logičkog adresnog prostora.
Tako radni spremnik od 128 MB ima ukupno (27=128):
27 * 220 B = 227 B (220 = 1 M stranica -106)
Ako se taj prostor podijeli na okvire veličine 212 Bdobije se ukupno (27=12+15)
215 = 32 K okvira (215=25*210=32*103)
Fizički spremnik s 256 MB imat će prema tome 64 K okvira
586586
Kako bi se pri dodjeli okvira fizičkog spremnika izbjegaoproblem fragmentacije, osnovna postavka straničenjasvodi se na to da stranice logičkog adresnog prostoramogu biti smještene u okvire fizičkog spremnika proizvoljnimredoslijedom.
U posebnoj se tablici pri tome mora voditi evidencija o tomeu kojem je okviru smještena pojedina stranica. Ta se tablicakoristi pri svakom pristupu fizičkom spremniku.
Prema tome, ta bi tablica morala biti sastavni dio spremničkogmeđusklopa, jer se prevođenje logičke adrese u fizičku moraobaviti što je moguće brže.Zbog njihove veličine tablice nije moguće u potpunosti pohraniti unutar spremničkog međusklopa pa je uobičajenou priručnim registrima međusklopa pohraniti samo jedan diotablice.
294
587587
Prevođenje logičke adrese u fizičku je vrlo jednostavno jer su veličine stranica (odnosno okvira) cjelobrojne potencije broja 2:
•Redni brojevi stranica izraženi s pomoću r bitova nadopunjeni s desne strane s p nula čine logičku adresu prvog bajta u stranici, a
•Sadržaj donjih p bitova daju relativnu adresu unutar stranice.
Ti se donji bitovi mogu dovesti neposredno do fizičkogspremnika i tamo će oni određivati relativnu adresu unutar okvira.Početna adresa okvira dobiva se tako da se rednom broju okvira izraženog s q bitova pridoda s desne strane p nula.
588588
•• Prema tome, prePrema tome, prevođenje logivođenje logiččke adrese (AL) ke adrese (AL) u fiziu fiziččku adresu (AF) obavlja se tako da se:ku adresu (AF) obavlja se tako da se:
•• Donjih Donjih pp bitova logibitova logiččke adrese propusti ke adrese propusti neposredno prema fizineposredno prema fiziččkom spremniku kom spremniku
•• Gornjih Gornjih rr bitova logibitova logiččke adrese (tj. redni broj ke adrese (tj. redni broj stranice) zamijeni s stranice) zamijeni s qq bitova fizibitova fiziččke adrese ke adrese (tj. s rednim brojem okvira) (tj. s rednim brojem okvira)
295
589589
Logička adresa AL
mr p
tablica
2r x q
r p
q
Fizička adresa AF q+p
Prevođenje adrese
S gornjih r bitova logičke adreseAL adresira se tablica prevođenjakoja može imati 2 r redaka.Svaki redak ima q bitova kojiodređuju redni broj (početnuadresu) okvira u koji se smještastranica.
Fizička adresa AF dobiva senadovezivanjem tih q bitova sizvornim vrijednostima donjih pbitova.
590590
U opisanom načinu prevođenja adresa pretpostavljeno jeda se sve stranice nalaze u okvirima radnog spremnika.
U stvarnosti će samo neke od stranica biti smještene u radnispremnik a sve ostale će biti pohranjene samo u vanjskom spremniku.
U tablici prevođenja se stanje stranice može označiti posebnim bitom prisutnosti koji se dodaje svakom njezinom retku:
• vrijednost 1 označava prisutnost stranice u okviru fizičkog spremnika,
• vrijednost 0 označava da se stranica ne nalazi u fizičkom spremniku.
296
591591
01234567
01234567
ABC
FGH
DE
2
0
3
10010100
AF
0123
D
Tablica prevođenja Bit prisutnosti
Fizičkispremnik
Brojokvira
Broj stranice
Logičkiadresniprostor
Vanjski spremnik
A H C
B F GD E
Primjer
F
592592
U fizičkom se spremniku može istovremeno nalaziti ograničeni broj stranica programa, pa će se tijekom izvođenja programa stranice morati zamjenjivati u raspoloživim okvirima.
Zahtjev za prekidom radi dobivanja mjesta u fizičkom spremniku izazivaju stranice koje imaju u bitu prisutnostizapisanu vrijednost 0.
Taj je prekid poziv funkcije u jezgri operacijskog sustava koji se bavi gospodarenjem spremničkog prostora.
Posebno je pitanje kako se određuje stranica koju treba izbaciti iz nekog okvira kako bi se smjestila nova stranica u radni spremnik.
297
593593
OpisnikOpisnik virtualnog adresnog prostoravirtualnog adresnog prostora•• Za svaki program, Za svaki program, koji se pri izvođenju oblikuje u koji se pri izvođenju oblikuje u
proces, postoji u strukturi podataka operacijskog proces, postoji u strukturi podataka operacijskog sustava informacijski blok. sustava informacijski blok.
•• U taj se informacijski blok uz U taj se informacijski blok uz opisnikeopisnike dretvi mora dretvi mora ukljuuključčiti i iti i opisnikopisnik virtualnog procesnog adresnog virtualnog procesnog adresnog prostora.prostora.
•• Iako je teorijski moguIako je teorijski mogućće da procesni adresni prostor e da procesni adresni prostor u u mm--bitnoj arhitekturi mobitnoj arhitekturi možže zauzimati svih 2e zauzimati svih 2mm
adresa, u praksi gospodarenja spremniadresa, u praksi gospodarenja spremniččkim kim prostorom ograniprostorom ograniččava se na veliava se na veliččinu virtualnog inu virtualnog adresnog prostora koji adresnog prostora koji ćće se stvarno koristiti. e se stvarno koristiti.
594594
•• Ako se cijeli adresni prostor trajno stavlja na Ako se cijeli adresni prostor trajno stavlja na raspolaganje programu, onda se trajno mora raspolaganje programu, onda se trajno mora podrpodržžavati velike tablice za prevođenje logiavati velike tablice za prevođenje logiččkih u kih u fizifiziččke adrese.ke adrese.
•• U U 3232--bitnojbitnoj arhitekturi:arhitekturi:4GB4GB za smjeza smješštaj svih mogutaj svih moguććih stranica ih stranica
logilogiččkog adresnog prostorakog adresnog prostora4KB4KB veliveliččina straniceina stranice1MB1MB redaka bi morala imati tablica za redaka bi morala imati tablica za
prevođenje prevođenje
LogiLogiččki adresni prostor se ograniki adresni prostor se ograniččava u skladu saava u skladu sastvarnim potrebama pojedinih programa. stvarnim potrebama pojedinih programa. *Vidi slide No 7*Vidi slide No 722--7474
298
595595
•• Programska pomagala (OS) za pripremanje Programska pomagala (OS) za pripremanje programa osiguravaju osnovni adresni prostor: programa osiguravaju osnovni adresni prostor: za naredbe i stog svake dretve , te minimalni za naredbe i stog svake dretve , te minimalni prostor za lokalne podatke i zajedniprostor za lokalne podatke i zajedniččki procesni ki procesni podatkovni podatkovni prostor.prostor.
•• Podatkovni se prostor dijeli na Podatkovni se prostor dijeli na tzvtzv. . statistatiččkiki (ne (ne mijenja se tijekom procesa) i mijenja se tijekom procesa) i dinamidinamiččki ki koji se koji se koristi za podatke koji nastaju i nestaju, pa se koristi za podatke koji nastaju i nestaju, pa se ovi zadnji mogu naizmjence smjeovi zadnji mogu naizmjence smješštati u isti tati u isti adresni prostor. adresni prostor.
596596
•• Posebnim API funkcijama predviđenim za Posebnim API funkcijama predviđenim za gospodarenje spremnikom mogospodarenje spremnikom možže se e se programski traprogramski tražžiti rezerviranje kao i iti rezerviranje kao i oslobađanje podruoslobađanje područčja logija logiččkih adresa.kih adresa.
•• Osim toga, sve stranice rezerviranog Osim toga, sve stranice rezerviranog prostora ne moraju biti u uporabi. prostora ne moraju biti u uporabi.
299
597597
Posebnim API Application Programming Interface(funkcije unutar operacijskog sustava koje su dohvatljivosučelje prema primjenskim programima) mogu se unutar rezerviranog adresnog prostora pojedine stranice stvarno dodjeljivati i oslobađati.
Smještaj na disku potrebno je osigurati samo za dodijeljene stranice, to jest za popunjeni dio logičkog adresnog prostora.
U opisniku virtualnog adresnog prostora mora se nalazititablica koja opisuje rezervirani adresni prostor i koja možeopisivati samo granice rezerviranih adresa. Pokušaj pristupado adresa izvan rezerviranih područja izazvati će prekidanjeprograma. U toj se tablici nalazi još dodatno za svaku stranicuredak koji sadrži adresu sektora na disku u kojem je stranicapohranjena (odnosno adresu prvog od nakupine sektora ako jestranica pohranjena u više uzastopnih sektora).
598598
A1R1 D1
Rezervirani i dodijeljeni diologičkog adresnog prostora
Smještaj popunjenihstranica na disku
R rezerviranoD dodijeljeno
A3
R3 D3
300
599599
•Tijekom izvođenja programa opisnik virtualnog adresnog prostora nadopunjuje se tablicom prevođenja, tako da je u svakom trenutku za svaku stranicu jednoznačno definirano gdje je ona smještena na disku a gdje u radnom spremnikuako se u njemu nalazi.
•Na taj je način u potpunosti opisan procesni adresni prostor.
600600
Straničenje na zahtjevPri pokretanju nekog programa mora se uspostaviti opisnikvirtualnog adresnog prostora i rezervirati odgovarajućiprostor na disku.U radni se spremnik mora smjestiti barem jedna stranica i to ona u kojoj se nalaze početne naredbe strojnog programa.
Sve ostale stranice mogu se dobavljati u trenutku kada se za njih ukaže potreba, to jest kada se unutar procesora budegenerirala adresa kojom se zahtijeva pristup do neke stranice.
Takav se način straničenja zove straničenje na zahtjev(demand paging).
301
601601
Stranicau
okviru
0
1
Adresiranje neprisutne stranice
Operacijskisustav
Stranica na disku
2Prekid zbogpromašaja
3Dohvat stranice
na disku
Prazniokvir
4Prebacivanje straniceu prazni okvir
Nadopuna tablicestranica
5
Tablicastranica
6Ponovo pokretanje
dretve
602602
Trajanje prijenosa određeno je vremenskim svojstvima diskaa operacijski će sustav prekidom od upravljačkog sklopa diskovne jedinice biti obaviješten o završetku prijenosa.Prilikom obrade ovog prekida procesor se ponaša malo drugačije nego kod obrade drugih vrsta prekida.
Procesor uobičajeno ispituje postojanje prekida pri kraju svakenaredbe i nakon što tekuću naredbu izvede do kraja prihvaća prekid.Programsko brojilo pri tome sadrži adresu slijedeće naredbe i ta se vrijednost pohranjuje u kontekst dretve. Ponovo pokretanje dretve započinje slijedećom naredbom.
302
603603
Međutim, nakon obrade prekida zbog adresiranja neprisutne stranice mora se ponoviti naredba unutar koje se pojavio prekid.
Pri tome u kontekst dretve treba pohraniti one sadržaje registara procesora koji su u njima pohranjeni prije početka izvođenja naredbe koja je izazvala prekid.
Zbog toga procesori predviđeni za ostvarenje virtualnog spremnika imaju posebne skrivene preslike registara u kojima čuvaju nepromijenjene vrijednosti registara tijekom izvođenja cijele naredbe.
Vrijednosti se tih registara obnavljaju tek na kraju izvođenja svake naredbe.
604604
Pri pojavi prekida zbog adresiranja neprisutne stranice u kontekst se dretve pohranjuju skrivene preslike registara to jest vrijednosti koje odgovaraju stanju procesora prijeizvođenja naredbe koja je izazvala prekid.
Ponovo pokretanje prekinute dretve započet će ponavljanjem naredbe koja je izazvala prekid zbog promašaja.
Usporavanje izvođenja dretviDobavljanje stranica u radni spremnik usporava izvođenjedretvi. Trajanje prebacivanja ovisi o vremenskim svojstvimadiska pa preveliki broj prekida zbog adresiranja neprisutnih stranica može znatno usporiti izvođenje programa.
303
605605
Primjer
Dretva pristupa do radnog spremnika u svakom spremničkom ciklusu trajanja TBNakon svakih N pristupa radnom spremniku dogodi se promašaj stranice za čije se dobavljanje s diska utroši TD
Izračunati usporavanje TP dretve zbog promašaja!!
N pristupa spremniku sa promašajemN*TB+TD
Prosječno trajanje pristupaTP=(N*TB+TD)/N= TB+TD/N
606606
PretpostavkaSpremnički ciklus TB=100ns=0,1 µsTrajanje dobavljanja TD= 15ms=15000 µs
Prosječno trajanje jednog pristupa spremniku:
TP=(0,1 +15000/N) µs
promašaj u N pristupa TP (µs) Povećanje103 15,1 :0,1 150*104 1,6105 0,25106 0,115 :0,1 15%107 0,1015
304
607607
Strategija zamjene stranicaČiste i nečiste stranice
Ako u radnom spremniku ne postoji prazni okvir tada treba neku stranicu vratiti natrag na disk kako bi se načinilo mjesta za novu stranicu. Pražnjenje okvira traje u prosjeku jednako kao i njegovo punjenje novom stranicom.Ako se sadržaj stranice nije mijenjao, to jest ako je ostalačista, ne treba ju prepisivati natrag na disk.
Zbog toga se u tablicu stranica uvodi posebni bit za označavanje čistoće.
608608
Bitovi stanja stranicaBitovi stanja stranica
31 12 11 10 9 8 7 6 5 4 3 2 1 0
Redni broj okvira
Gl D A W1 O W V
V bit prisutnosti u radnom spremnikuW postavljena zastavica zabranjuje pisanje u stranicuO stranicu upotrebljava operacijski sustavW1 svako pisanje u stranicu prepisuje stranicu na diskA stranica u koju se pristupalo D stranica je nečista (nije prazna)Gl stranica se smatra globalnom
305
609609
Strategije zamjene stranica
• FIFO First-in, First-out izbacuje se stranica koja je najdulje u radnom spremniku
• LRU Least Recently used izbacuje se stranicakoja se najdalje u prošlosti nije upotrebljavala.
• OPT Optimalna strategija izabire stranicu koja se najdalje u budućnosti neće upotrebljavati
610610
Praktične aproksimacije strategije zamjene stranica
Kako bi postupci odabira stranica za izbacivanje bili što brži oni moraju biti što je moguće više poduprti sklopovljem.
Na primjer zastavica pristupa (A) postavlja se na vrijednost 0pri punjenju stranice a prvim se pristupom stranici (A) (čitanje ili pisanje) postavlja u 1.
Aproksimacija LRU strategije svodi se na nadopunu tablice stranica posmačnim registrima u koji se “posmiču”bitovi pristupa.
306
611611
10011
1 0 1 1 0 1 00 0 1 1 0 0 00 0 1 1 1 0 0 1 1
Tablica stranica
Bitovipristupa
Posmačniregistri
Pri (prvom) punjenju stranice u neki okvir briše se njezin bit pristupa te isto tako pripadni posmačni registar.Satni prekid posmakne sve bitove pristupa u posmačne registrei zatim ih izbriše.Pristup stranici postaviti će njen bit pristupa na 1.Nakon nekoliko ciklusa sata sadržaj registra se može pročitatikao binarni broj, pa manji broj ukazuje da se u stranicu manji broj ukazuje da se u stranicu nijenije dulje vrijeme pristupalodulje vrijeme pristupalo. Izbacuje se stranica s najmanjim brojem ili jedna iz razreda s jednakim najmanjim brojevima.
x
612612
Stranice se mogu razvrstati u 2 razreda:
1. u koje se u prethodnom periodu nije pisalo2. u koje se u prethodnom periodu pisalo
Kad se pojavi potreba pražnjenja jednog okvira najprije se pokušava izbaciti stranica s vrijednošću 0 u zastavici pristupa A.
Osim toga, poželjno je iz okvira izbaciti čiste stranice kojesu označene bitom D jer se time štedi jedan pristup disku.
Stranice se mogu razvrstati u četiri razreda prema Tablici:
307
613613
U prethodnoj periodi bilo jepristupa i stranica je nečista
U prethodnoj periodi bilo jepristupa i stranica je čista
U prethodnoj periodi nije bilo
pristupa i stranica je nečista
Tip stranice
BitPristupa
A
Bit Nečistoće
DNapomena
U prethodnoj periodi nije bilopristupa i stranica je čista0 0
0
0
0
1 1
2
3
1
1 1
*Vidi slide No 9*Vidi slide No 977
614614
Svojevrsna inačica LRU strategije koristi se u više izvedbioperacijskog sustava UNIX te u Windowsima NT odnosnoWindows 2000.
Ta se inačica naziva satnim algoritmom (Clock algorithm)
Sve se stranice svrstavaju u listu po redu prispjeća (FIFO).
Lista se obilazi kružno posebnom kazaljkom. U slučaju potrebe za praznim okvirom izbaciti će se stranica na kojupokazuje kazaljka ako je njezina zastavica A = 0.
Stranica se preskače ako je A = 1, ali će se pritom njezinavrijednost promijeniti u 0.Kazaljka se pomiče za po jedno mjesto dok ne naiđe na stranicu s A = 0. Ako kazaljka kružno obiđe cijelu listu nalazeći samo 1 ona će ih sve obrisati te izbaciti stranicus koje je započela obilazak.
308
615615
Raspodjela okvira u višeprogramskom radu
Gospodarenje okvirimaU višeprogramskom radu raspoloživi okviri fizičkog spremnikamoraju poslužiti za ostvarenje razdvojenih virtualnih procesnih adresnih prostora.
Sve stranice popunjenog logičkog adresnog prostora smještenesu na disku.
Njihov smještaj u sektore diska opisan je u opisniku adresnogprostora koji se nalazi u informacijskom bloku procesora.
Na disku su procesni adresni prostori potpuno razdvojeni.
616616
Dio operacijskog sustava koji se bavi gospodarenjem spremničkog prostora mora osigurati da okviri fizičkogadresnog prostora budu dodjeljivani tako da u jednom trenutku pripadaju samo jednom od procesa.
Dobro gospodarenje spremničkim prostorom zahtijevapoznavanje trenutnog stanja svakog pojedinačnog okvira fizičkog adresnog prostora.
Sve podatke o pojedinom okviru najprikladnije je smjestitiu opisnik okvira. Opisnik mora imati mjesta i za kazaljke kako bi se jednostavno premještao iz liste u listu.
309
617617
Tijekom rada se pojedini okviri mogu nalaziti u slijedećimosnovnim stanjima:
1. U aktivnom stanju okvir je dodijeljen jednom od procesai njegov se redni broj (kazaljka koja pokazuje na njegovpočetak) nalazi u odgovarajućem retku tablice prevođenjatog procesa.
2. U slobodnom stanju okvir se nalazi u poveznoj listi oslobođenih okvira
3. U slobodnom stanju s obrisanim sadržajem okvir jespreman za dodjeljivanje (zeroed)
618618
Moguća su i neka međustanja okvira:
•Kada se okvir oduzima procesu, nečistu stranicu koja se u njemu nalazi treba prenjeti na disk prije nego li se okvir unese u listu slobodnih okvira,
•Okvir se nalazi u prijelaznom stanju i kada se iz liste slobodnih okvira seli u listu slobodnih pobrisanih okvira (posebna sustavska dretva vrlo niskog priotiteta vršibrisanje okvira)
Tijekom rada neki okviri mogu postati i neispravni. Tada ih se smješta u listu neispravnih okvira.
310
619619
Podjela okvira procesimaPodjela okvira procesima
U višeprogramskom radu okvire je moguće raspodjeljivati:
•Svim procesima bez ograničenja iz zajedničkog skladišta okvira
•S ograničenjem broja okvira koje pojedini proces može dobiti
620620
Dodjeljivanje bez ograničenja nije prikladno jer bi pojedini procesi koji intenzivno zahtijevaju nove okvire mogliograničavajuće djelovati na ostale procese.
Djelotvorno je ograničiti broj okvira koje pojedini procesi mogu dobiti. Početna podjela je ujednačena (na raspolaganju M okvira-istodobno N procesa pa bi početno svako proces mogao dobiti M/N okvira)
Tijekom izvođenja procesa može se mijenjati intenzitet promašivanja i u skladu s njim dodjeljivati ili oduzimatiokvire procesu.
311
Intenzitetpromašivanja
Brojokvira
Dodavati okvire
Oduzimati okvire
Područjeprihvatljivogintenziteta
promašivanja
Premalopromašivanja
Minimalnibroj
Maksimalnibroj
Previšepromašivanja
622622
Okviri dodijeljeni operacijskom sustavuOkviri dodijeljeni operacijskom sustavu
Operacijski sustav treba za svoje strukture podataka i sustavske dretve veći broj okvira koji su trajno zauzeti.
Tako na pr., struktura podataka jezgre kao i naredbe jezgrinih funkcija moraju trajno biti u radnom spremniku.
Isto tako, stranice koje služe kao međuspremnici za obavljanjeU/I operacija neposrednim pristupom spremniku (DMA) moraju trajno biti smještene u okvire fizičkog spremnika.
312
Radni skup stranicaRadni skup stranica
Pri analizi straničenja upotrebljava se pojam radni skup stranica(working set) ali se taj naziv koristi dvojako.
1. Stranice koje su se upotrebljavale unutar jednograzdoblja mjerenog od trenutka promatranja unatrag. To se razdoblje zove vremenskim prozorom.
2. Stranice koje se u danom trenutku nalaze u okvirima fizičkog spremnika.
Radni skup stranica za odabrani vremenski prozor može, u skladu s osnovnim načelom LRU strategije, biti koristan načinodabira stranica koje će ostati u okvirima fizičkog spremnika.
624624
PrimjerPrimjer•• Razlika između Razlika između 2 definicije2 definicije•• ponaponaššanje procesa anje procesa ččiji logiiji logiččki adresni ki adresni
prostor ima 6 stranica: 0,1,2,3,4,5prostor ima 6 stranica: 0,1,2,3,4,5•• vrijeme se mjeri diskretno a tijekom vrijeme se mjeri diskretno a tijekom
izvođenja dretvi procesa u pojedinim izvođenja dretvi procesa u pojedinim periodama prekida sata upotrebljavaju se periodama prekida sata upotrebljavaju se stranice logistranice logiččkog adresnog prostora prema kog adresnog prostora prema slijedeslijedeććoj slici: oj slici:
313
625625
t1 t2
1
024
123
01
035
d=1
d=2
d=3
d=4
d=5
14
231 1
13
td=1
d=2
d=3
d=4
d=5
RS (t1,1) = (0,3,5)RS (t1,2) = (0,1,3,5)RS (t1,3) = (0,1,2,3,5)RS (t1,4) = (0,1,2,3,4,5)RS (t1,5) = (0,1,2,3,4,5)
Radni skupovistranica uvremenskimprozorima
RS (t2,1) = (1,3)RS (t2,2) = (1,3)RS (t2,3) = (1,2,3)RS (t2,4) = (1,2,3)RS (t2,5) = (1,2,3,4)
626626
Radni skupovi okvira imaju redom 3,4,5 odnosno 6 okvira
Stranice se zahtijevaju slijedećim redoslijedom:
1,0,2,4,3,2,1,0,1,3,0,5,1,4,1,2,3,1,1,3
i izbacuju temeljem FIFO strategije pa će se sadržaji radnih skupova okvira mijenjati kao na slijedećim slikama:
314
627627
3 okvira
4 okvira
1 1 1 4 4 4 0 0 0 1 1 1
- 0 0 0 3 3 3 5 5 5 2 2
- - 2 2 2 1 1 1 4 4 4 3
t1 t2
t1 t2
1 1 1 1 3 3 3 3 4 4 4 4
- 0 0 0 0 1 1 1 1 2 2 2
- - 2 2 2 2 0 0 0 0 3 3
- - - 4 4 4 4 5 5 5 5 1
RS (t1,3) = (0,1,5)RS (t1,4) = (0,1,3,5)
RS (t2,3) = (0,1,3)RS (t2,4) = (0,1,3,4)
Radni skupovistranica u okvirima
628628
5 okvira
t1 t2
RS (t1,5) = (0,2,3,4,5) RS (t2,5) = (1,2,3,4,5)Radni skupovistranica u okvirima
1 1 1 1 1 5 5
- 0 0 0 0 0 1
- - 2 2 2 2 2
- - - 4 4 4 4
- - - - 3 3 3
315
629629
6 okvira
t1 t2
RS (t1,6) = (0,1,2,3,4,5) RS (t2,6) = (0,1,2,3,4,5)Radni skupovistranica u okvirima
1 1 1 1 1 1
- - 2 2 2 2
- 0 0 0 0 0
- - - 4 4 4
- - - - 3 3
- - - - - 5
ZakljuZaključčakakPostupci gospodarenja spremničkim prostorom uvelike određuju ponašanje računalnog sustava. U velikoj većini računalnih sustava prevladava gospodarenjezasnovano na virtualnom spremniku:1. procesni adresni prostor može biti mnogo veći od
fizičkog spremnika,2. ne postoji problem fragmentacije radnog spremnika.Trajanje izvođenja procesa ovisi o ponašanju programa i obroju promašivanja stranica tijekom izvođenja.Trajanje jednog procesa može bitno zavisiti o ponašanju drugihprograma jer OS uravnotežuje njihovo ponašanje dinamičkompreraspodjelom okvira, pa se stoga u takvim sustavima ne može sa sigurnošću predvidjeti trenutke završavanja pojedinih procesa. Gospodarenje spremničkim prostorom zbiva se automatski i to uz potporu sklopovlja spremničkog međusklopa procesora.
317
633633
DatoteDatoteččnini sustavsustav•• Uloga datoteka u raUloga datoteka u raččunalnim sustavimaunalnim sustavimaZa najveZa najvećći broj korisnika je sui broj korisnika je suččelje prema datoteelje prema datoteččnomnomsustavu najvidljiviji dio OSsustavu najvidljiviji dio OS--a.a.OmoguOmoguććuje mehanizam za pristupanje vanjskimuje mehanizam za pristupanje vanjskimspremnicima koji sadrspremnicima koji sadržže podatke i programe OSe podatke i programe OS--aai to za sve korisnike rai to za sve korisnike raččunalnog sustava. unalnog sustava.
Svi sadrSvi sadržžaji koji se u raaji koji se u raččunalu moraju trajno unalu moraju trajno ččuvatiuvati(inventure, pla(inventure, plaćće, bankovni podaci, osiguranje)e, bankovni podaci, osiguranje)pohranjuju se u datotekepohranjuju se u datoteke--praktipraktiččki se sve aktivnostiki se sve aktivnostisvode na svode na uporabu i pretvorbu datoteka (file).(file).
634634
HijerarhijaHijerarhija•• Bit Bit ByteByte Word (pristup 32/64)Word (pristup 32/64)•• Znak (Znak (charactercharacter) 8.... 2) 8.... 288 = 256 mogu= 256 moguććnostinosti•• ASCII .. Am Stand ASCII .. Am Stand CodeCode forfor InformInform InterchInterch 88--bitni bitni
ali zbog malog broja moguali zbog malog broja moguććnosti ne podrnosti ne podržžava ava internacionalni skup znakovainternacionalni skup znakova
•• EBCDIC .. EBCDIC .. ExtExt BinBin--CodCod DecDec InterchInterch CodeCode –– IBM, IBM, smjesmješštaj podataka u taj podataka u memmem/disk /disk
•• UNICODE .. Internacionalno prepoznat, popularan UNICODE .. Internacionalno prepoznat, popularan na Internetu i u vina Internetu i u viššejeziejeziččnoj primjeni (8,16,32)noj primjeni (8,16,32)
•• Polje..Polje..fieldfield•• Slog..Slog..recordrecord•• Datoteka..fileDatoteka..file•• VolumenVolumen
318
635635
Pristup se obavlja posredstvom dijela OSPristup se obavlja posredstvom dijela OS--a koji se zove a koji se zove datotedatoteččni sustavni sustav ((file file systemsystem).).BuduBudućći da se sadri da se sadržžaj radnog spremnika gubi pri svakomaj radnog spremnika gubi pri svakomiskljuisključčivanju raivanju raččunala, datoteke se trajno unala, datoteke se trajno ččuvaju na vanjskimuvaju na vanjskimspremnicima (diskovima) gdje u spremnicima (diskovima) gdje u ““otporneotporne”” na ispad napajanja na ispad napajanja ili ponovno pokretanje OSili ponovno pokretanje OS--a. a.
DatoteDatoteččni sustav se sastoji od 2 razlini sustav se sastoji od 2 različčita dijela:ita dijela:1.1. Niza datoteka koje sadrNiza datoteka koje sadržže određene podatkee određene podatke2.2. ““directorydirectory structurestructure”” -- direktorijidirektoriji ((directoriesdirectories) su tablice u ) su tablice u
koje se pohranjuju imena datoteka s kazaljkama koje koje se pohranjuju imena datoteka s kazaljkama koje omoguomoguććuju pristup datotekama.uju pristup datotekama.
Neki datoteNeki datoteččni sustavi imaju i 3ni sustavi imaju i 3--ććii dio, dio, particijeparticije, koje se, koje seupotrebljavaju za fiziupotrebljavaju za fiziččko ili logiko ili logiččko razdvajanje velikog zbirako razdvajanje velikog zbiratablica. tablica.
636636
BuduBudućći rai raččunala upotrebljavaju razliunala upotrebljavaju različčite tipoveite tipovespremnika (mag. diskovi i vrpce, optispremnika (mag. diskovi i vrpce, optiččki diskovi)ki diskovi)OS mora osigurati uniformniOS mora osigurati uniformni--jedinstveni pogledjedinstveni pogledna sve spremnike podataka. OS izdvaja logina sve spremnike podataka. OS izdvaja logiččkukucjelinu (datoteku) od fizicjelinu (datoteku) od fiziččkih svojstavakih svojstavaspremnispremniččkog uređajakog uređaja. . Datoteke su povezaneDatoteke su povezane--pridrupridružžene, od straneene, od straneOSOS--a samim fizia samim fiziččkim uređajimakim uređajima. .
319
637637
Datoteke su imenovani zbir povezanih podatakaDatoteke su imenovani zbir povezanih podatakapohranjenih u vanjskom spremniku.pohranjenih u vanjskom spremniku.
Korisnikov Korisnikov pogled pogled :: datoteka je najmanji diodatoteka je najmanji diologilogiččkog vanjskog spremnika kog vanjskog spremnika –– podaci sepodaci sene mogu spremiti na vanjski spremnik ako nisune mogu spremiti na vanjski spremnik ako nisuunutar datoteke. unutar datoteke. Datoteke Datoteke :: a) programi (izvorni i prevedeni)a) programi (izvorni i prevedeni)
b) podaci b) podaci
638638
SadrSadržžaj aj datotekadatoteka
1.1.NumeriNumeriččkiki--brojevibrojevi2.2. ZnakoviZnakovi--slovaslova3.3.AlfanumeriAlfanumeriččkiki--znakovi i brojeviznakovi i brojevi4.4.BinarniBinarni
Oblik datoteka:Oblik datoteka:1.1. SlobodanSlobodan--tekstovitekstovi2.2.ČČvrsto vrsto formatiziranformatiziran
OpOpććenito: datoteka je niz bitova, enito: datoteka je niz bitova, bytebyte--ovaova, linija ili, linija ilizapisa zapisa ččije je znaije je značčenje određeno od straneenje određeno od stranestvaraoca datoteke ili korisnika. stvaraoca datoteke ili korisnika.
320
639639
Atributi datotekeAtributi datotekeDatoteka je zbog prikladnosti prema korisnicimaDatoteka je zbog prikladnosti prema korisnicimaimenovana nizom znakova. Jednom imenovana datotekaimenovana nizom znakova. Jednom imenovana datotekapostaje nezavisna o procesu.postaje nezavisna o procesu.TipiTipiččni sadrni sadržžaj aj opisnikaopisnika--atributi datoteke:atributi datoteke:••Naziv datotekeNaziv datoteke, simboli, simboliččko ime je jedina informacija u ko ime je jedina informacija u
obliku obliku ččitljiv korisniku, itljiv korisniku, ••IdentifikatorIdentifikator, jedinstvena oznaka unutar datote, jedinstvena oznaka unutar datoteččnog s.nog s.••Tip, LokacijaTip, Lokacija ( (uređajuređaj+adresa)+adresa)••Ime vlasnika datotekeIme vlasnika datoteke, pravo pristupa,, pravo pristupa,••VeliVeliččina ina ((baytovabaytova,rije,riječči,blokova) te i,blokova) te maxmax dozvoljena dozvoljena velvel..••LozinkaLozinka (za(zašštita pristupa, koritita pristupa, korišštenja, izvrtenja, izvrššenja)enja)••Vrijeme stvaranja Vrijeme stvaranja datoteke,datoteke,••Vrijeme zadnje uporabeVrijeme zadnje uporabe datoteke,datoteke,••Ime posljednjeg korisnikaIme posljednjeg korisnika i slii sliččno.no.
640640
Naziv svake datoteke mora biti jedinstven kako biNaziv svake datoteke mora biti jedinstven kako bije se moglo nedvosmisleno prepoznati.je se moglo nedvosmisleno prepoznati.
Vlasnik koji poznaje lozinku moVlasnik koji poznaje lozinku možže mijenjati nekee mijenjati nekeatribute kao atribute kao ššto je pravo pristupa.to je pravo pristupa.Datoteke mogu upotrebljavati i drugi ali samo na naDatoteke mogu upotrebljavati i drugi ali samo na naččininkako je to propisao vlasnik. Pristup datoteci mokako je to propisao vlasnik. Pristup datoteci možžeebiti sigurnosno zabiti sigurnosno zašštitiććen pa se u en pa se u opisnikuopisniku nalaze i nalaze i mogumogućći elementi sigurnosne zai elementi sigurnosne zašštite. tite.
Jedan od najvaJedan od najvažžnijih sadrnijih sadržžaja aja opisnikaopisnika datoteke je opis datoteke je opis njezina smjenjezina smješštaja u vanjskom spremniku.taja u vanjskom spremniku.
321
641641
Informacije o svim datotekama se pohranjuju uInformacije o svim datotekama se pohranjuju utablice. Tipitablice. Tipiččno se element tablice sastoji odno se element tablice sastoji odimenaimena i i jedinstvenog identifikatorajedinstvenog identifikatora datoteke koji datoteke koji pak pokazuje na ostale atribute datoteke.pak pokazuje na ostale atribute datoteke.
BuduBudućći da tablice, kao i datoteke moraju biti i da tablice, kao i datoteke moraju biti postojane (neizbrispostojane (neizbrisive) onive) one se također spremaju e se također spremaju na vanjskim spremnicima i una vanjskim spremnicima i uččitavaju u radni itavaju u radni spremnik djelomispremnik djelomiččno i po potrebi. no i po potrebi.
642642
Tablice su organizirane po odjeljcima i pododjeljcimaTablice su organizirane po odjeljcima i pododjeljcima((subdirectorysubdirectory).).
Svi vaSvi važžni podaci (ni podaci (atributi datotekeatributi datoteke--atributtesatributtes) su u ) su u jednom zapisu koji se zove jednom zapisu koji se zove opisnikopisnik datotekedatoteke--descriptordescriptor..Taj se zapis pohranjuje uz samu datoteku a podatke izTaj se zapis pohranjuje uz samu datoteku a podatke iztog zapisa koristi OS a ne korisnitog zapisa koristi OS a ne korisniččki program. ki program.
322
643643
DatoteDatoteččni sustav omoguni sustav omoguććuje provođenje razliuje provođenje različčitihitihoperacija nad datotekama, a za odoperacija nad datotekama, a za određeni tip su ređeni tip su dopudopušštene samo određene operacijetene samo određene operacije..Program se moProgram se možže pokrenuti samo iz datoteke koja e pokrenuti samo iz datoteke koja sadrsadržži program pripremljen za izvođenjei program pripremljen za izvođenje, znakovna se , znakovna se datoteka ne modatoteka ne možže pokrenuti.e pokrenuti.Za pojedine se datoteke moZa pojedine se datoteke možže odrediti dopue odrediti dopušštene tene nanaččine uporabe (samo ine uporabe (samo ččitanje ili samo pisanje).itanje ili samo pisanje).Pristup se do određenih datoteka moPristup se do određenih datoteka možže sigurnosno e sigurnosno zazašštititi, dozvoliti samo ovlatititi, dozvoliti samo ovlašštenim korisnicima. tenim korisnicima.
644644
ZakljuZaključčak :ak :
••Svi podaci o datoteci su smjeSvi podaci o datoteci su smješšteni u teni u opisnikopisnik••OpisniciOpisnici su smjesu smješšteni u datoteteni u datoteččnoj tablicinoj tablici••Datoteke su smjeDatoteke su smješštene u sektore ili nakupinetene u sektore ili nakupinesektora na diskusektora na disku
323
645645
FunkcijeFunkcije
•• OpenOpen –– pripremiti za poziv (otvaranje)pripremiti za poziv (otvaranje)•• CloseClose –– onemoguonemoguććiti pozivanje prije otvaranjaiti pozivanje prije otvaranja•• CreateCreate –– stvaranjestvaranje•• DestroyDestroy –– izbrisatiizbrisati•• CopyCopy –– prepisatiprepisati•• RenameRename –– preimenovatipreimenovati•• ListList –– prikazati ili tiskati sadrprikazati ili tiskati sadržžajaj
646646
Operacije s datotekamaOperacije s datotekama
DatoteDatoteččni sustavi s pomoni sustavi s pomoćću zbirke API funkcija u zbirke API funkcija omoguomoguććavaju obavljanje tipiavaju obavljanje tipiččnih operacija s nih operacija s datotekama:datotekama:
••StvoritiStvoriti (prona(pronaćći mjesto na disku, upisati ime u tablicu) i mjesto na disku, upisati ime u tablicu) ••PisatiPisati (ime d., sadr(ime d., sadržžaj, kazaljka)aj, kazaljka)••ČČitatiitati (ime d., adresa u radnom spremniku, kazaljka)(ime d., adresa u radnom spremniku, kazaljka)••Premjestiti kazaljkuPremjestiti kazaljku (file (file seekseek) ) ••IzbrisatiIzbrisati ( (oslobađanje prostora na disku i brisanjeoslobađanje prostora na disku i brisanje
imena iz tabele) imena iz tabele) ••SkratitiSkratiti ((truncationtruncation) du) dužžina=0, ime i atributi ostaju ina=0, ime i atributi ostaju
nepromijenjeninepromijenjeni
324
647647
Stvaranje datotekeStvaranje datoteke
Prilikom stvaranja nove datoteke najprije se ispitujePrilikom stvaranja nove datoteke najprije se ispitujedali u datotedali u datoteččnoj tablici venoj tablici većć postoji to ime. Ako postojipostoji to ime. Ako postojijavlja se poruka o grejavlja se poruka o greššci, aci, a ako ne postoji uvađa se ako ne postoji uvađa senovi novi opisnikopisnik u tablicu, dodjeljuje pou tablicu, dodjeljuje poččetni prostor te seetni prostor te seu u opisnikopisnik upisuju svi podaci o datoteci. upisuju svi podaci o datoteci.
648648
Otvaranje Otvaranje datotekadatoteka
PrijePrije uporabe datoteka se mora otvoriti. uporabe datoteka se mora otvoriti. Samo otvorene datoteke se mogu koristiti. Samo otvorene datoteke se mogu koristiti. Pri otvaranju se datotePri otvaranju se datoteččna kazaljka postavlja na na kazaljka postavlja na popoččetak.etak.
PriPri otvaranju se:otvaranju se:••u adresni prostor operacijskog sustava prenau adresni prostor operacijskog sustava prenašša s a s diska aktivnadiska aktivna kopija kopija opisnikaopisnika datoteke,datoteke,
••u adresnom prostoru operacijskog sustava u adresnom prostoru operacijskog sustava rezerviraju rezerviraju međuspremnici međuspremnici za smjeza smješštaj dijelova datoteke,taj dijelova datoteke,••pomopomoćću identifikatora uspostavlja veza izmeđuu identifikatora uspostavlja veza izmeđuadresnog prostora procesa i otvorene datoteke.adresnog prostora procesa i otvorene datoteke.
325
649649
ČČitanje datotekeitanje datoteke
Biblioteke pojedinih jeziBiblioteke pojedinih jeziččnih procesora sadrnih procesora sadržže funkcijee funkcijekoje vrkoje vršše e formatiziranoformatizirano ččitanje. itanje.
Pri pisanju u datoteku piPri pisanju u datoteku pišše se u kopiju skupine sektora e se u kopiju skupine sektora u radnom spremniku.u radnom spremniku. Postoji opasnost da se pri nekom Postoji opasnost da se pri nekomnepredviđenom prekidu rada promijenjeni sadrnepredviđenom prekidu rada promijenjeni sadržžaj aj ne prepine prepišše na disk.e na disk.
Time se u transakcijskim postupcima moTime se u transakcijskim postupcima možže pojavitie pojavitinekonzistentnost. nekonzistentnost.
650650
Osim prethodno Osim prethodno navedenih:navedenih:
••Dodavanje sadrDodavanje sadržžajaaja••PreimenovanjePreimenovanje••CopyCopy –– preslikavanje na istu ili drugu I/O jedinicupreslikavanje na istu ili drugu I/O jedinicu••Pregled stanjaPregled stanja••Promjena atributaPromjena atributa
••OPENOPEN--FILEFILE--TABLETABLE
326
651651
Individualna manipulacija u datoteciIndividualna manipulacija u datoteci
•• ReadRead –– preslikati podatak iz datoteke u radni preslikati podatak iz datoteke u radni spremnikspremnik
•• WriteWrite -- preslikati podatak iz radnog preslikati podatak iz radnog spremnikaspremnikau datotekuu datoteku
•• UpdateUpdate –– promijeniti postojepromijeniti postojeććeg u datotecieg u datoteci•• InsertInsert –– dodati novog dodati novog •• DeleteDelete –– izbrisati postojeizbrisati postojeććegeg
652652
Tipovi Tipovi datotekadatoteka
Datoteke imaju Datoteke imaju sufixsufix (odvojen (odvojen ““..”” od imena) kojim se opisuje tip datotekeod imena) kojim se opisuje tip datoteke::
1. izvr1. izvrššnini2. objektni2. objektni
exeexe,,comcom,,binbin,bl,blobjobj,o,o
oblik spreman za izvođenjeoblik spreman za izvođenjeprevedeni, ne prevedeni, ne linkanilinkani oblikoblik
3. izvorni oblik c,cc,java,pas,3. izvorni oblik c,cc,java,pas,asmasm,a izvorni, razli,a izvorni, različčiti jeziciiti jezici4. 4. batchbatch bat,sh naredbe za intebat,sh naredbe za interpretatorrpretator5. 5. texttext txttxt,,docdoc tekstovi, dokumentitekstovi, dokumenti6. word 6. word processorprocessor wpwp,,textex,,rtfrtf,,docdoc razlirazliččiti formati t.p. iti formati t.p. 7. biblioteke 7. biblioteke liblib,a,so,,a,so,dildil biblioteke ili rutinebiblioteke ili rutine8. tisak ili pregled ps,pdf,8. tisak ili pregled ps,pdf,jpgjpg ASCII ili binarna datoteka ASCII ili binarna datoteka 9. arhiva 9. arhiva arcarc,,zipzip,tar ,tar kompresiranjekompresiranje10. 10. multimediamultimedia mpegmpeg,,movmov,rm binarni s audio ili A/V ,rm binarni s audio ili A/V infoinfo
TIP TIP SufixSufix FunkcijaFunkcija
327
653653
Organizacija datotekaOrganizacija datoteka
•• SekvencijalnaSekvencijalna –– podaci smjepodaci smješšteni prema fiziteni prema fiziččkom kom redoslijedu (magnetska vrpca/disk)redoslijedu (magnetska vrpca/disk)
•• DirektnaDirektna –– randomrandom pristup putem fizipristup putem fiziččkih adresa kih adresa DASD (DASD (dirdir accacc st st devdev) zavisno od ) zavisno od namjenskognamjenskogprogramaprograma
•• IndexedIndexed sequentialsequential –– logilogiččki redoslijed prema kljuki redoslijed prema ključču u koji je sastavni dio svakog sloga. Pristupa se ili koji je sastavni dio svakog sloga. Pristupa se ili sekvencijalno prema kljusekvencijalno prema ključču ili direktno putem u ili direktno putem indexaindexa stvorenog od sustavastvorenog od sustava
•• PartitionedPartitioned –– datoteka sekvencijalnih datoteka sekvencijalnih poddatotekapoddatoteka((membersmembers--ččlanovi, svaka polanovi, svaka poččetna adresa se etna adresa se smjesmješšta u direktorij..program/ta u direktorij..program/macromacro biblioteke) biblioteke)
654654
............•• Osim pohranjivanja podataka datoteke sluOsim pohranjivanja podataka datoteke služže i zae i za razmjenu informacija između programa razmjenu informacija između programa. . •• Jedan ju na primjer moJedan ju na primjer možže stvoriti i napuniti a poslijee stvoriti i napuniti a poslije
nastavlja obradu drugi program.nastavlja obradu drugi program.
•• Struktura datotekaStruktura datotekaDatoteDatoteččni se sustav u nani se sustav u naččelu ne brine o sadrelu ne brine o sadržžaju. aju.
•• Binarna datotekaBinarna datotekaNajjednostavniji oblik koristi se za pohranjivanje Najjednostavniji oblik koristi se za pohranjivanje
strojnih programa pripravnih za izvođenje strojnih programa pripravnih za izvođenje. Prenosi . Prenosi se kao cjelina iz jednog spremnika u drugi i to bezse kao cjelina iz jednog spremnika u drugi i to bezkakvih promjena.kakvih promjena.
328
655655
Nestrukturirana datotekaNestrukturirana datotekaDanas u OSDanas u OS--ima preteima pretežžito datoteke koje se sastoje od ito datoteke koje se sastoje od niza niza bytebyte--ovaova i nemaju nikakvu strukturu. i nemaju nikakvu strukturu. DatoteDatoteččni sustavni sustav omoguomoguććuje pristup do pojedinog uje pristup do pojedinog bytebyte--aa pomopomoććnu nu datotedatoteččne kazaljkene kazaljke ((file file pointerpointer)) kojakojase pri se pri ččitanju i pisanju pomiitanju i pisanju pomičče za broj proe za broj proččitanih itanih odnosno upisanih odnosno upisanih bytebyte--ovaova..Posebna je oznaka na kraju datoteke (Posebna je oznaka na kraju datoteke (endend of fileof file). ). PokuPokuššaj aj ččitanja iza kraja izaziva pogreitanja iza kraja izaziva pogreššku, ali ku, ali upisivanje novih podataka moupisivanje novih podataka možže izazvati produljenje i e izazvati produljenje i pomicanje kraja datoteke.pomicanje kraja datoteke.Datoteka se opDatoteka se opććenito moenito možže promatrati kao linearni e promatrati kao linearni adresni prostor adresni prostor ččije adresiranje obavlja datoteije adresiranje obavlja datoteččna na kazaljka.kazaljka.
656656
Prednost nestrukturiranih datoteka je Prednost nestrukturiranih datoteka je ššto omoguto omoguććujuujujednostavnu razmjenu sadrjednostavnu razmjenu sadržžaja između razliaja između različčitih itih programa (programskih okruprograma (programskih okružženja i razlienja i različčitih OS)itih OS)
Na razini Na razini namjenskihnamjenskih programa potpuno nestrukturiraniprograma potpuno nestrukturiranibyjtovibyjtovi mogu se organizirati u razlimogu se organizirati u različčite strukture. Takoite strukture. Takose datoteka mose datoteka možže e strukturiratistrukturirati u u podnizovepodnizove bytebyte--ovaovastalne ili promjenljive duljine. Unutar korisnistalne ili promjenljive duljine. Unutar korisniččkogkogprograma se moraju nalaziti parametri (n za datotekuprograma se moraju nalaziti parametri (n za datotekusa stalnim duljinama zapisa, tablica velisa stalnim duljinama zapisa, tablica veliččina nina nii za za datoteke s promjenljivim duljinama zapisa) koji datoteke s promjenljivim duljinama zapisa) koji određuju logiodređuju logiččku strukturu datoteke.ku strukturu datoteke.
329
657657
Uporabom API funkcije za postavljanje datoteUporabom API funkcije za postavljanje datoteččne ne kazaljke na izrakazaljke na izraččunati pounati poččetni etni bytebyte nekog loginekog logiččkogkogzapisa izvorna se nestrukturirana datoteka mozapisa izvorna se nestrukturirana datoteka možže e pretvoriti u datoteku koja omogupretvoriti u datoteku koja omoguććuje neposredni uje neposredni pristup do svakog zapisa. pristup do svakog zapisa.
OponaOponaššanje indeksne struktureanje indeksne struktureU nekim su ranijim OS datoteU nekim su ranijim OS datoteččni sustavi podrni sustavi podržžavaliavalioperacije s operacije s tzvtzv indeksnim datotekama. Danas seindeksnim datotekama. Danas seuporaba indeksno organiziranih struktura zapisa uporaba indeksno organiziranih struktura zapisa prepuprepuššta sustavima ta sustavima baza podatakabaza podataka..
658658
Programski sustavi za podrProgramski sustavi za podržžavanje baza podatakaavanje baza podatakaomoguomoguććuju pohranjivanje i dohvauju pohranjivanje i dohvaććanje zapisa anje zapisa usklađeno s vrijednostima pojedinih polja tih zapisausklađeno s vrijednostima pojedinih polja tih zapisa..
Indeksna se struktura moIndeksna se struktura možže organizirati unutar e organizirati unutar korisnikorisniččkog programa uporabom tablica za kog programa uporabom tablica za pohranjivanje parametara strukture te izgradnjompohranjivanje parametara strukture te izgradnjomfunkcija za pristupanje do pojedinih elemenata funkcija za pristupanje do pojedinih elemenata strukture uporabom postojestrukture uporabom postojeććih API funkcija za ih API funkcija za pristupanje nestrukturiranoj datoteci.pristupanje nestrukturiranoj datoteci.
330
659659
U izvorno nestrukturiranoj datoteci moU izvorno nestrukturiranoj datoteci možže se oponae se oponaššati ati indeksni pristup tako da se redne brojeve poindeksni pristup tako da se redne brojeve poččetnihetnihbytebyte--ovaova svakog zapisa smjesti u posebni poredak svakog zapisa smjesti u posebni poredak smjesmješšten također unutar datoteketen također unutar datoteke..
001122
ii
NN--11
RR11
RRNN--11
RR00
RR22
RRii
Zapisi mogu u datoteciZapisi mogu u datotecibiti razmjebiti razmješšteni teni proizvoljnimproizvoljnimredoslijedom.redoslijedom.Redoslijed pristupa određenRedoslijed pristupa određenje razmjeje razmješštajem kazaljki u tajem kazaljki u poredak.poredak.Ovakva se organizacija zoveOvakva se organizacija zoveindeksindeks--sekvencijskomsekvencijskom aaostvaruje se uporabom ostvaruje se uporabom postojepostojeććih API funkcija.ih API funkcija.
660660
Opis diskovnog prostoraOpis diskovnog prostoraNa disku se ne mogu adresirati pojedinaNa disku se ne mogu adresirati pojedinaččni ni bytebyte--oviovinego sektori.nego sektori.Datoteke se dijele na blokove Datoteke se dijele na blokove bytebyte--ovaova koji su po koji su po veliveliččini jednaki veliini jednaki veliččini sektora odnosno cjelobrojnom ini sektora odnosno cjelobrojnom viviššekratniku te veliekratniku te veliččine. Nakupine od viine. Nakupine od višše susjednih e susjednih sektora zovu se sektora zovu se clustericlusteri. . Jedan fiziJedan fiziččki disk moki disk možže se upotrebljavati kao jedan e se upotrebljavati kao jedan jedinstveni adresni prostor ili se mojedinstveni adresni prostor ili se možže podijeliti nae podijeliti nalogilogiččki razdvojene ki razdvojene podprostorepodprostore tzvtzv sveske (sveske (volumevolume).).
331
661661
Svaki svezak ima svoj direktorij u kojem su sadrSvaki svezak ima svoj direktorij u kojem su sadržžanianiopisniciopisnici svih datoteka smjesvih datoteka smješštenih u tom svesku.tenih u tom svesku.Osim toga sastavni dio svakog direktorija je i opisOsim toga sastavni dio svakog direktorija je i opisslobodnog prostora sveska.slobodnog prostora sveska.
U nizu bitova svakom sektoru odnosno nakupini U nizu bitova svakom sektoru odnosno nakupini sektora pripada jedan bit sektora pripada jedan bit ččija je vrijednost ija je vrijednost jedanakajedanaka 11kada je sektor odnosno nakupina zauzeta ili jednaka 0kada je sektor odnosno nakupina zauzeta ili jednaka 0u suprotnom sluu suprotnom sluččaju.aju.
662662
KorisniKorisniččki direktorijki direktorij
Datoteka LokacijaDatoteka Lokacija
DataDataDataData
DataData DataDataEndEnd
332
663663
sektor 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ....sektor 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ....zauzetost 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 ..zauzetost 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 ..
slobodnoslobodno
33
44
55
88
1111
1212
Lista u kojoj svaki zapis sadrLista u kojoj svaki zapis sadržži poi poččetnu adresuetnu adresuskupine slobodnih sektora te broj sektora u toj skupini. skupine slobodnih sektora te broj sektora u toj skupini.
664664
Struktura direktorijaStruktura direktorija
Da bi se diskovi napunili podacima potebno ih je: Da bi se diskovi napunili podacima potebno ih je:
1. Organizirati u particije minidiskove (IBM)1. Organizirati u particije minidiskove (IBM)volumene (PC, Macintosh)volumene (PC, Macintosh)
Particije u jednim sustavima predstavljaju odvojena Particije u jednim sustavima predstavljaju odvojena podrupodruččja unuar jednog diska, dok u drugim ja unuar jednog diska, dok u drugim sustavima particije mogu biti vesustavima particije mogu biti većće od jednog e od jednog ččitavog itavog diska tako da grupiraju vidiska tako da grupiraju višše diskova u jedinstvenu e diskova u jedinstvenu logilogiččku cjelinu.ku cjelinu.Na taj naNa taj naččin korisnik se treba brinuti samo o logiin korisnik se treba brinuti samo o logiččkoj koj cjelini datoteke i njezinoj strukturi a ne treba voditi cjelini datoteke i njezinoj strukturi a ne treba voditi raraččuna o njezinom fiziuna o njezinom fiziččkom smjekom smješštaju. taju.
333
665665
Na taj se naNa taj se naččin particije mogu smatrati virualnimin particije mogu smatrati virualnimdiskovima.diskovima.Particije mogu tako sadrParticije mogu tako sadržžavati razliavati različčite Operacijske ite Operacijske Sustave omoguSustave omoguććavajuavajućći na taj nai na taj naččin pokretanje in pokretanje (booting) svakog posebno.(booting) svakog posebno.
2. U svakoj particiji organizirati i upisati informacije 2. U svakoj particiji organizirati i upisati informacije o datotekama koje se u njoj nalaze.o datotekama koje se u njoj nalaze.Ti se podaci Ti se podaci ččuvaju uuvaju u““device directorydevice directory”” direktorij uređaja ili direktorij uređaja ili direktorijdirektorij““volume table of contentsvolume table of contents””a sastoje se od imena, lokacije, velia sastoje se od imena, lokacije, veliččine i tipaine i tipasvih datoteka untar te particije.svih datoteka untar te particije.
666666
Particija AParticija A
direktorijdirektorij
direktorijdirektorij
direktorijdirektorij
datotekadatoteka
datotekadatoteka
datotekadatotekaParticija BParticija B
Particija CParticija CDisk 1Disk 1
Disk 2Disk 2
Disk 3Disk 3
334
667667
Direktorij jedne razineDirektorij jedne razine
direktorijdirektorij
datotekedatoteke
A1 A2 B5 C6 U A9A1 A2 B5 C6 U A9
OgraniOgraniččenja: poveenja: poveććanje broja datotekaanje broja datotekapovepoveććanje broja korisnikaanje broja korisnikajedinstveno ime (svi korisnici) jedinstveno ime (svi korisnici)
668668
Jedna razina izaziva nesporazume s imenima izmeđuJedna razina izaziva nesporazume s imenima izmeđuvivišše korisnika.e korisnika.
Standardno rjeStandardno rješšenje je stvoriti posebnu tabeluenje je stvoriti posebnu tabelu--direktorijdirektorijza svakog korisnika. za svakog korisnika.
Kod 2 razine svaki korisnik ima svoj vlastiti direktorijKod 2 razine svaki korisnik ima svoj vlastiti direktorijUFD UFD ““user file directoryuser file directory”” iste strukture, a sadriste strukture, a sadržži i imena datoteka koja pripadaju samo jednom korisniku.imena datoteka koja pripadaju samo jednom korisniku.
Kad Kad korisnikkorisnik pokrene sustav najprije se pretrapokrene sustav najprije se pretražžuje uje MFDMFD ––Glavni direktorijGlavni direktorij koji je indeksiran pomokoji je indeksiran pomoćću korisniu korisniččkogkogimena ili broja raimena ili broja raččuna (account number) te vezom premauna (account number) te vezom premavlastitom direktoriju dotivlastitom direktoriju dotiččnog korisnika UFD.nog korisnika UFD.
335
669669
Direktorij dvije razineDirektorij dvije razine
A1 B1 C6 U7A1 B1 C6 U7
C6 U7C6 U7 C6 U7C6 U7
A1 B1 U7A1 B1 U7
Kor1Kor1 Kor2 Kor3 Kor4Kor2 Kor3 Kor4GlavniGlavnidirektorijdirektorij
KorisniKorisniččkikidirektorijdirektorij
MFDMFD
UFDUFD
670670
Direktorij dvije razine efikasno dijeli strogo odvojeneDirektorij dvije razine efikasno dijeli strogo odvojenekorisnike.korisnike.Mana mu je kada korisnici medjusobno surađuju teMana mu je kada korisnici medjusobno surađuju tedijele zajednidijele zajedniččki pristup nekim datotekama.ki pristup nekim datotekama.Za oznaZa označčiti jedinstvenim imenom datoteku direktoriju s iti jedinstvenim imenom datoteku direktoriju s
2 razine mora se navesti:2 razine mora se navesti:•• ime korisnika ime korisnika •• ime datoteke.ime datoteke.
Takav se direktorij moTakav se direktorij možže usporediti s e usporediti s ““stablomstablom”” , ili, iliinvertiranim stablom visine 2. invertiranim stablom visine 2. Korjen invertiranog stabla je Korjen invertiranog stabla je MFDMFD..Direktni slijednici MFDDirektni slijednici MFD--a su a su UFDUFD, a slijednici UFD su, a slijednici UFD sudatotedatote..
336
671671
Datoteke su Datoteke su ““liliššććee”” stabla stabla..
Navođenjem korisniNavođenjem korisniččkog imena i imena datoteka kog imena i imena datoteka određena je određena je ““pathpath”” (staza, put, putanja) u stablu od(staza, put, putanja) u stablu odkorjena (MFD) do likorjena (MFD) do liššćća (datoteke).a (datoteke).
Ime korisnika i ime datoteke definiraju Ime korisnika i ime datoteke definiraju ““ime stazeime staze””..
Svaka datoteka u raSvaka datoteka u raččunalnom sustavu ima svoje unalnom sustavu ima svoje jedinstveno ime staze.jedinstveno ime staze.
PoopPoopććenje dvije razine je vienje dvije razine je višše razina e razina ššto omoguto omoguććuje uje korisniku njegovu vlastitu organizaciju. korisniku njegovu vlastitu organizaciju.
672672
KorjenKorjen--rootroot AA
BB
CC
DD
337
673673
Absolute path name Absolute path name PoPoččima na vrhu ima na vrhu –– korjenu pa sve do datoteke odredikorjenu pa sve do datoteke odredišštata
Relative path nameRelative path nameOd trenutnog mjesta prema dolje Od trenutnog mjesta prema dolje
Na primjer: Na primjer: Ako se trenutno nalazimo na Ako se trenutno nalazimo na Root/A/BRoot/A/BRelativno je Relativno je C/DC/D isto isto ššto i apsolutno to i apsolutno Root/A/B/C/DRoot/A/B/C/D
674674
Brisanje datotekaBrisanje datoteka
•• Svaka pojedina datoteka mora biti izbrisana prijeSvaka pojedina datoteka mora biti izbrisana prijenego se izbrinego se izbrišše direktorije direktorij
•• Brisanjem direktorija mogu se izbrisati i sveBrisanjem direktorija mogu se izbrisati i svepripadajupripadajućće datoteke e datoteke
338
675675
Primjena datotePrimjena datoteččnog sustavnog sustav
SmjeSmješšten je na diskovima koji imaju karakteristike: ten je na diskovima koji imaju karakteristike: rewriterewrite--read, modify, writeread, modify, write
pristup (direktni ili sekvencijski) najmanjem pristup (direktni ili sekvencijski) najmanjem adresibilnom dijelu podatakaadresibilnom dijelu podataka
UkljuUključčuje rjeuje rješšenje dva potpuno razlienje dva potpuno različčita problema:ita problema:
A)A) Kako Kako ćće sustav izgledati prema korisnikue sustav izgledati prema korisniku(definiranje datoteke i njezinih atributa, (definiranje datoteke i njezinih atributa, dozvoljene operacije te struktura direktorija)dozvoljene operacije te struktura direktorija)
B) Stvaranje algoritama i postupka za pridruB) Stvaranje algoritama i postupka za pridružživanjeivanjelogilogiččkog datotekog datoteččnog sustava fizinog sustava fiziččkom sekundarnomkom sekundarnomadresnom prostoru. adresnom prostoru.
676676
PrimjenjeniPrimjenjeni programprogram
LogiLogiččki datoteki datoteččni sustavni sustav
Modul za organizaciju datotekeModul za organizaciju datoteke
Osnovni datoteOsnovni datoteččni sustavni sustav
I/O KontrolaI/O Kontrola
UređajUređaj
339
677677
PrimjenjeniPrimjenjeni programprogram
LogiLogiččki datoteki datoteččni sustavni sustav
Modul za organizaciju datotekeModul za organizaciju datoteke
Osnovni datoteOsnovni datoteččni sustavni sustav
I/O KontrolaI/O Kontrola
UređajUređaj
678678
Svaka razina upotrebljava moguSvaka razina upotrebljava moguććnosti ninosti nižže razinee razinekako bi stvorila novi sadrkako bi stvorila novi sadržžaj za koriaj za korišštenje na vitenje na viššojojrazini. razini.
I/O KontrolaI/O KontrolaSastoji se od Sastoji se od ““device driversdevice drivers”” -- upravljaupravljaččkih programakih programate te ““interrupt handlerainterrupt handlera”” –– programa za obradu prekidaprograma za obradu prekidasa svrhom upravljanja protokom podataka izmeđusa svrhom upravljanja protokom podataka izmeđuglavnog spremnika i diskova. glavnog spremnika i diskova. MoMožže ga se posmatrati kao prevodiocae ga se posmatrati kao prevodioca--translator translator između naredbi viizmeđu naredbi višše razine (e razine (““retrieve block 123retrieve block 123””) i ) i specifispecifiččnih sklopovskih instrukcija ninih sklopovskih instrukcija nižže razine koje see razine koje sekoriste u I/O upravljakoriste u I/O upravljaččkoj jedinici za povezivanje koj jedinici za povezivanje same I/O jedinice sa rasame I/O jedinice sa raččunalnim sustavom.unalnim sustavom.(Lokacija (Lokacija –– adresa + akcija)adresa + akcija)
340
679679
PrimjenjeniPrimjenjeni programprogram
LogiLogiččki datoteki datoteččni sustavni sustav
Modul za organizaciju datotekeModul za organizaciju datoteke
Osnovni datoteOsnovni datoteččni sustavni sustav
I/O KontrolaI/O Kontrola
UređajUređaj
680680
Osnovni datoteOsnovni datoteččni sustavni sustav
Generira osnovne naredbe odgovarajuGenerira osnovne naredbe odgovarajuććoj fizioj fiziččkojkojjedinici za jedinici za ččitanje i pisanje fiziitanje i pisanje fiziččkih blokova na disku.kih blokova na disku.(broj diska, cilindra, tracke i sektora)(broj diska, cilindra, tracke i sektora)
341
681681
PrimjenjeniPrimjenjeni programprogram
LogiLogiččki datoteki datoteččni sustavni sustav
Modul za organizaciju datotekeModul za organizaciju datoteke
Osnovni datoteOsnovni datoteččni sustavni sustav
I/O KontrolaI/O Kontrola
UređajUređaj
682682
Modul za organizaciju datotekeModul za organizaciju datoteke
Veza između logiVeza između logiččkog pogleda na datoteku sa stranekog pogleda na datoteku sa stranekorisnika i njezinog fizikorisnika i njezinog fiziččkog smjekog smješštaja na disku.taja na disku.
Svaki logiSvaki logiččki blok datoteke je oznaki blok datoteke je označčen brojevima en brojevima popoččevevšši od 0 (1).i od 0 (1).Prilikom smjePrilikom smješštaja pojedinih logitaja pojedinih logiččkih blokova na kih blokova na disku njihov redosljed ne mora odgovarati fizidisku njihov redosljed ne mora odgovarati fiziččkom kom redosljedu smjeredosljedu smješštaja. taja.
Ovaj modul ukljuOvaj modul uključčuje i algoritam za upravljanje i uje i algoritam za upravljanje i reorganizaciju slobodnog prostora na disku.reorganizaciju slobodnog prostora na disku.
342
683683
PrimjenjeniPrimjenjeni programprogram
LogiLogiččki datoteki datoteččni sustavni sustav
Modul za organizaciju datotekeModul za organizaciju datoteke
Osnovni datoteOsnovni datoteččni sustavni sustav
I/O KontrolaI/O Kontrola
UređajUređaj
684684
LogiLogiččki datoteki datoteččni sustavni sustav
SadrSadržži podatke o cijeloji podatke o cijeloj strukturistrukturi datotedatoteččnog sustava,nog sustava,ali ne podatke pojedine datoteke ili njezin sadrali ne podatke pojedine datoteke ili njezin sadržžaj.aj.
Ti se podaci koriste na niTi se podaci koriste na nižžoj razini prilikom oj razini prilikom dodjeljivanja imena datoteci, te za odrdodjeljivanja imena datoteci, te za održžavanje avanje strukture datoteke putem strukture datoteke putem FCBFCB (File Control Blocks).(File Control Blocks).
FCB pokazuje na vlasniFCB pokazuje na vlasnišštvo, dozvole, zatvo, dozvole, zašštitu, titu, sigurnost te lokaciju datoteke. sigurnost te lokaciju datoteke.
343
685685
OtvoriOtvori(open)(open)filenamefilename
directory structuredirectory structureKorisniKorisniččki dioki dio
StogStogDiskDisk
KorisniKorisniččki dioki dioStogStog
DiskDisk
ČČitajitaj(index)(index)
indexindex
prepre--procprocopenopen--fl tblfl tbl
systsyst--widewideopenopen--fl tblfl tbl
FCBFCB
dat bldat bl
File cont blFile cont bl
dir strdir str
686686
SystemSystem--wide open filewide open file--table table SadrSadržži kopije FCB svih otvorenih datoteka kao i i kopije FCB svih otvorenih datoteka kao i druge informacijedruge informacije
PrePre––proces openproces open--file tablefile tableSadrSadržži kazaljke na odgovarajui kazaljke na odgovarajućće ulaze u e ulaze u systemsystem--wide open filewide open file--table.table.
344
687687
The EndThe End
Operacijski sustaviOperacijski sustavi
Komunikacija između Komunikacija između procesoraprocesora
345
689689
Komunikacija između procesa Komunikacija između procesa unutar jednog raunutar jednog raččunalnog sustavaunalnog sustava
::
PorukaPoruka
RED RED ČČEKANJAEKANJA POSLUPOSLUŽŽITELJITELJ
Sve dretve jednog procesa djeluju u njima Sve dretve jednog procesa djeluju u njima zajednizajedniččkomkom adresnomadresnomprostoru.prostoru.
PosluPoslužžitelj je cikliitelj je cikliččka dretva koja redovito uzima iz reda ka dretva koja redovito uzima iz reda ččekanja ekanja poruke, obrporuke, obrađuje ih i ađuje ih i ššalje na izlaz rezultate obrade. alje na izlaz rezultate obrade.
690690
••Sve su lokacije u tom dijeljenom adresnom prostoru dostupne Sve su lokacije u tom dijeljenom adresnom prostoru dostupne svim dretvama te se govori da dretve djeluju u dijeljenom svim dretvama te se govori da dretve djeluju u dijeljenom adresnom prostoru a to znaadresnom prostoru a to značči da se iz svake dretve moi da se iz svake dretve možže e pohranjivati i dohvapohranjivati i dohvaććati sve lokacije. ati sve lokacije. ••U takvim se uvjetima međudretvena komunikacija nastoji U takvim se uvjetima međudretvena komunikacija nastoji ostvarivati na sustavnim mehanizmima:ostvarivati na sustavnim mehanizmima:
proizvođaproizvođačč--potropotroššaačč--međuspremnikmeđuspremnik
Najjednostavniji naNajjednostavniji naččin komuniciranja između procesa je in komuniciranja između procesa je razmjena datoteka:razmjena datoteka:••Proces proizvođaProces proizvođačč proizvede datoteku i pohrani je na diskproizvede datoteku i pohrani je na disk••Proces potroProces potroššaačč otvara datoteku i preuzima njezin sadrotvara datoteku i preuzima njezin sadržžaj aj
346
691691
RED RED ČČEKANJAEKANJA
POSLUPOSLUŽŽITELJITELJ
PROIZVOĐAPROIZVOĐAČČII
692692
Razmjena podataka između datoteka nije uvijek najprikladnija jer u komunikaciju unosi stanovit statičnost.
Zbog toga se uvode mehanizmi koji omogućuju dinamičkukomunikaciju.
U načelu su moguća 2 načina komuniciranja:•zajednička uporaba izvornih podataka u dijeljenom spremničkom prostoru,
•uporaba kopija podataka zasnovana na razmjeni poruka.
347
693693
Dijeljeni spremnički prostor
Svaki proces ima svoj vlastiti spremnički prostor.
Uloga operacijskog sustava je da spremničke prostore procesa održava razdvojenim.
Sve dretve istog procesa mogu slobodno pristupati svim lokacijama adresnog prostora samo svojeg procesa.
Suvremeni operacijski sustavi omogućuju da se dio virtualnog adresnog prostora više procesa (dva ili više) proglasi zajedničkim prostorom.
694694
Dijeljeni dioadresnog prostora
Adresni prostorProcesa A
Adresni prostorProcesa B
348
695695
Sve dretve iz procesa A i procesa B mogu pristupiti do dijeljenog dijela adresnog prostora.
To je najjednostavniji način razmjene podataka izmeđuprocesa unutar jednog računala.
Pri toj se razmjeni moraju uvažavati sva načela određenosti, te je potrebno provesti sinkronizaciju procesa odnosno dretviiz oba procesa.Zbog toga se moraju uvesti semafori koji su zajednički zaoba (ili više) procesa. Pojednostavljeno gledano, dretve svih procesa čije se domenenalaze u dijeljenom dijelu adresnog prostora moraju se podvrći pravilima komuniciranja opisanim u poglavlju:
6. Međudretvena komunikacija i koncepcija monitora.
696696
Ostvarenja dijeljenog spremničkog prostora se u različitimoperacijskim sustavima međusobno razlikuju.
U zbirci Win32 API nalaze se funkcije koje omogućuju da se cijela datoteka preslika u virtualni adresni prostor procesai da se zatim dijeli s drugim procesima.U načelu se dijeljenje adresnog prostora svodi na dinamičko
dijeljenje datoteke preslikane u virtualni adresni prostor procesa.
Datoteka koja je preslikana u adresni prostor naziva se preslikdatoteke (file view).
Dijeljenje prostora može se načiniti i za više procesa.
349
697697
Razmjena poruka između procesa
Razmjena poruka između procesa može se ostvariti na načinvrlo sličan razmjeni poruka između dretvi unutar jednog procesa.
U monitorskom načinu rješenja problema proizvođača i potrošača u poglavlju Koncepcija monitora opisane su dvijeMonitorske funkcije:
poslati_porukuprihvatiti_poruku
Pri tome se struktura podataka potrebna za ostvarenje tih funkcija te međuspremnik za razmjenu poruka smješta u adresni prostor procesa.
698698
Tamo su opisane jezgrine funkcije:
ući_u_monitor,izaći_iz_monitora,uvrstiti_u_red_uvjeta,osloboditi_iz_reda_uvjeta.
Na sličan se način izgrađuju API funkcije za komunikacijuizmeđu procesa, ali ne u adresnom prostoru procesa već uadresnom prostoru operacijskog sustava.
350
699699
Komunikacija između procesora u Komunikacija između procesora u raspodjeljenim sustavimaraspodjeljenim sustavimaOsnove umreOsnove umrežžavanjaavanja•• Mnoge se ljudske aktivnosti zbivaju prostorno rasprostraMnoge se ljudske aktivnosti zbivaju prostorno rasprostra--
njeno pa se i odgovarajunjeno pa se i odgovarajućće rae raččunalne usluge nude na unalne usluge nude na mjestu gdje su potrebne mjestu gdje su potrebne -- ššto podrazumijeva povezivanje to podrazumijeva povezivanje raraččunala u mreunala u mrežžu.u.
•• RaRaččunala u mreunala u mrežži djeluju pod utjecajem svojih vlastitih i djeluju pod utjecajem svojih vlastitih operacijskih sustava koji ne moraju svi biti jednaki.operacijskih sustava koji ne moraju svi biti jednaki.
•• Svi operacijski sustavi, mSvi operacijski sustavi, međutim moraju imati eđutim moraju imati komunikacijski podsustav koji podrkomunikacijski podsustav koji podržžava razmjenu poruka ava razmjenu poruka između raizmeđu raččunala.unala.
•• Svrha međusobnog povezivanja raSvrha međusobnog povezivanja raččunala je izmjena unala je izmjena informacija u digitaliziranom obliku (tekst, zvuk, slikainformacija u digitaliziranom obliku (tekst, zvuk, slika). ).
700700
Povezivanje raPovezivanje raččunala se mounala se možže svesti na uspostavljanje nae svesti na uspostavljanje naččina ina razmjene datoteka, pri razmjene datoteka, pri ččemu su emu su ččvrsto dogovorena pravila vrsto dogovorena pravila prenoprenoššenja koja svi sudionici moraju poenja koja svi sudionici moraju pošštivati. tivati.
Utvrđena pravila komuniciranja nazivaju se Utvrđena pravila komuniciranja nazivaju se protokolimaprotokolima..Za uspostavljanje funkcionalnog povezivanja potrebno je Za uspostavljanje funkcionalnog povezivanja potrebno je utvrditi skup protokola tzv. utvrditi skup protokola tzv. protokolni slogprotokolni slog ( (protocol stack,protocol stack,protocol suite) protocol suite)
Međunarodna telekomunikacijska unija Međunarodna telekomunikacijska unija (International (International Telecommunication Union Telecommunication Union -- ITU) je u ime M ITU) je u ime Međunarodne eđunarodne organizacije za normizaciju (International Standard organizacije za normizaciju (International Standard Organisation Organisation -- ISO) propisala protokolni slog kojim se ISO) propisala protokolni slog kojim se uspostavlja 7uspostavlja 7--meroslojni referentni model povezivanja otvorenihmeroslojni referentni model povezivanja otvorenihsustava Open System Interconnection ISO/OSI model) sustava Open System Interconnection ISO/OSI model)
351
701701
MeđutimMeđutim, u dana, u današšnjoj globalnoj mrenjoj globalnoj mrežži Internetu prevladaoi Internetu prevladaoje protokolni slog nastao postupno tijekom razvitka mreje protokolni slog nastao postupno tijekom razvitka mrežžeekao skup kao skup de iurede iure normi. normi.
O tehniO tehniččkom aspektu Interneta vodi brigu konzorcij kom aspektu Interneta vodi brigu konzorcij Internet Engineering Task Force (IETF).Internet Engineering Task Force (IETF).IETF utvrđuje i protokolni slog koji se danas preteIETF utvrđuje i protokolni slog koji se danas pretežžitoitoupotrebljava pri povezivanju raupotrebljava pri povezivanju raččunala u mreunala u mrežžu. u.
Taj protokolni slog ima 4 razine:Taj protokolni slog ima 4 razine:••najvinajviššaa--primjenska (applicatiprimjenska (application layer) on layer) određuje pravilaodređuje pravila
ostvarenja i uporabe pojedinih mreostvarenja i uporabe pojedinih mrežžnih usluga. nih usluga. ••ispod toga je je utvrđen prijenosni protokol ispod toga je je utvrđen prijenosni protokol (Transmission(Transmission Control Protocol TCP Control Protocol TCP). Od). Određuje kako se datotekaređuje kako se datoteka, koja , koja
se sastoji od proizvoljno dugog niza bitova, dijeli nase sastoji od proizvoljno dugog niza bitova, dijeli najednake dijelovejednake dijelove--prijenosne jedinke te naprijenosne jedinke te naččin dodavanjain dodavanjarednog broja i dodatnih nadzornih i zarednog broja i dodatnih nadzornih i zašštitnih bajtova jedinki. titnih bajtova jedinki.
702702
Ovako nadopunjene prijenosne jedinke dobivaju u slijedeOvako nadopunjene prijenosne jedinke dobivaju u slijedeććememmremrežžnom protokolnom slogu, obiljenom protokolnom slogu, obilježžen kraticom IP en kraticom IP (Internet Protocol), jedno zaglavlje unutar kojeg se nalaze (Internet Protocol), jedno zaglavlje unutar kojeg se nalaze adrese izvoriadrese izvoriššnog (source) i odredinog (source) i odrediššnog ranog raččunala (destination).unala (destination).
Tako nadopunjena prijenosna jedinka postaje IP paket, koji Tako nadopunjena prijenosna jedinka postaje IP paket, koji ććeeposredstvom prijenosnih puteva stiposredstvom prijenosnih puteva stićći u odredii u odrediššte.te.
Prijenosni putevi Prijenosni putevi ččine 4ine 4--tu fizitu fiziččku razinu protokola. Ona nije ku razinu protokola. Ona nije posebice normirana.posebice normirana.
IP je poluIP je poluččio veliki uspjeh upravo zbog toga io veliki uspjeh upravo zbog toga ššto je prijenos to je prijenos paketa mogupaketa mogućć uporabom razliuporabom različčitih mreitih mrežžnih tehnolonih tehnološških rjekih rješšenja.enja.
352
703703
Na odrediNa odrediššnoj noj ćće strani IP razina iz prispjelog paketa odstranitie strani IP razina iz prispjelog paketa odstranitisvoje zaglavlje i predati prijenosnu jedinku TCP razini unutar svoje zaglavlje i predati prijenosnu jedinku TCP razini unutar koje se na temelju rednih brojeva uspostavlja izvorni oblik koje se na temelju rednih brojeva uspostavlja izvorni oblik datoteke.datoteke.
U toj se razini provjerava ispravnost prispjelih jedinki odnosnoU toj se razini provjerava ispravnost prispjelih jedinki odnosnotratražži od izvorii od izvoriššta ponovno slanje neispravnih te predaje uređene ta ponovno slanje neispravnih te predaje uređene podatkovne jedinke u primjensku razinu.podatkovne jedinke u primjensku razinu.
U primjenskoj U primjenskoj ćće se razini uspostaviti izvorni oblik prenesene e se razini uspostaviti izvorni oblik prenesene datoteke. datoteke.
704704
Datoteka u izvoriDatoteka u izvorišštutu
Podatkovna jedinkaPodatkovna jedinka Prijenosna jedinkaPrijenosna jedinka
Primjenska razinaPrimjenska razina
TCPTCPPrijenosniPrijenosniprotokolprotokol
IPIPMreMrežžni ni protokolprotokol
IP paketIP paket
IP paket
Komunikacijska mreKomunikacijska mrežžaa
Datoteka u odrediDatoteka u odredišštutu
353
705705
Struktura globalne mreStruktura globalne mrežže rae raččunala nije unala nije ččvrsto definirana,vrsto definirana,ali se u njoj moali se u njoj možže prepoznati nekoliko kontinentalnihe prepoznati nekoliko kontinentalnihokosnica (backbones) sastavljenih od vrlo brzih okosnica (backbones) sastavljenih od vrlo brzih komunikacijskih veza i IP usmjernika (IP Routers).komunikacijskih veza i IP usmjernika (IP Routers).
Okosnice su međusobno povezane međukontinentalnimOkosnice su međusobno povezane međukontinentalnimvezama. Na okosnice su povezane nacionalne ili regionalne vezama. Na okosnice su povezane nacionalne ili regionalne mremrežže, e, također sastavljene od međusobno povezanih također sastavljene od međusobno povezanih usmjernika, a na te su mreusmjernika, a na te su mrežže preko spojnih pristupa e preko spojnih pristupa (gateweys) povezane razli(gateweys) povezane različčite lokalne mreite lokalne mrežže sae saččinjene odinjene odradnih raradnih raččunala (hosts). unala (hosts).
706706
AmeriAmeriččka okosnicaka okosnicaEuropska okosnicaEuropska okosnica
Regionalna mreRegionalna mrežžaa
Lokalna mreLokalna mrežžaa
Nacionalna mreNacionalna mrežžaa
Lokalna mreLokalna mrežžaa
RaRaččunalaunala
Transkontinentalna mreTranskontinentalna mrežžaa
Spojni Spojni pristuppristup
IPIPusmjerniciusmjernici
354
707707
Svako raSvako raččunalo ima svoju jedinstvenu adresu koju unalo ima svoju jedinstvenu adresu koju ččiniinibroj iz kojeg se mobroj iz kojeg se možže jednoznae jednoznaččno ustanoviti kojoj lokalnoj no ustanoviti kojoj lokalnoj mremrežži, kojoj regionalnoj ili nacionalnoj mrei, kojoj regionalnoj ili nacionalnoj mrežži i kojoj i i kojoj kontinentalnoj okosnici ono pripada.kontinentalnoj okosnici ono pripada.
Paketi koji krePaketi koji krećću iz izvru iz izvrššnog ranog raččunala se takvim naunala se takvim naččinom inom adresiranja mogu djelotvorno usmjeravati kroz mreadresiranja mogu djelotvorno usmjeravati kroz mrežžu.u.
Paketi od izvoriPaketi od izvoriššta do odredita do odrediššta mogu biti usmjeravani ta mogu biti usmjeravani i razlii različčitim putevima i u odrediitim putevima i u odrediššte pristizati razlite pristizati različčitim itim redosljedima. TCP razina se mora pobrinuti da se paketiredosljedima. TCP razina se mora pobrinuti da se paketina odredina odrediššnoj strani ispravno poredaju. noj strani ispravno poredaju.
708708
Prijenos datoteka na daljinu (File Transfer ProtocolPrijenos datoteka na daljinu (File Transfer Protocol--FTP)FTP)je jedna od usluga pomoje jedna od usluga pomoćću koje je pojau koje je pojaššnjen nanjen naččininoblikovanja IP paketa. oblikovanja IP paketa.
Na toj su primjenskoj razini utvrđene i druge uslugeNa toj su primjenskoj razini utvrđene i druge usluge::
••ElektroniElektroniččka poka poššta (Eta (E--mail)mail)••Uporaba udaljenih raUporaba udaljenih raččunala (Remote login)unala (Remote login)••Diskusijske skupine (Newsgroups) i sl.Diskusijske skupine (Newsgroups) i sl.
Svi se ti primjeri svode na to da se informacijski sadrSvi se ti primjeri svode na to da se informacijski sadržžajiajioblikuju u IP pakete koji u skladu s jedinstvenim naoblikuju u IP pakete koji u skladu s jedinstvenim naččinom inom adresiranja putuju između raadresiranja putuju između raččunala koji međusobno unala koji međusobno komuniciraju.komuniciraju.
355
709709
U zaglavlju svakog paketa nalaze se i bitovi koji omoguU zaglavlju svakog paketa nalaze se i bitovi koji omoguććujuujuda se unutar svakog rada se unutar svakog raččunala dodatno adresiraju unala dodatno adresiraju pristupne topristupne toččkeke za pojedine primjene (servis access points za pojedine primjene (servis access points –– SAP).SAP).
Komunikacijska mreKomunikacijska mrežžaa
1 2 31 2 3
RaRaččunalo 1unalo 1
MreMrežžnanarazinarazina
PrijenosnaPrijenosnarazinarazina
PrimjenskaPrimjenskarazinarazina
PrimjenskaPrimjenskarazinarazina
RaRaččunalo 2unalo 2 RaRaččunalo 3unalo 3
1 2 31 2 3 1 2 31 2 3
PrimjenskaPrimjenskarazinarazina
PrijenosnaPrijenosnarazinarazina
PrijenosnaPrijenosnarazinarazina
MreMrežžnanarazinarazina
MreMrežžnanarazinarazina
710710
Komunikacija između procesaKomunikacija razmjenom poruka
Budući da procesi u raspodijeljenim sustavima ne dijele spremnički prostor u takvim se sustavima kao osnovni modelkomuniciranja nameće razmjena poruka. U primjenskoj se razini iznad TCP/IP razine nalaze komunikacijski mehanizmi sa kojima se uspostavlja protokolrazmjene poruka. Ti se mehanizmi aktiviraju odgovarajućimAPI funkcijama.
Poruke se oblikuju kao IP paketi.Kratke se poruke smještaju unutar jedne podatkovne jedinke,a poruke većih dimenzija se po analogiji s prijenosom datotekadijele na veći broj podatkovnih jedinki i šalju kao niz IP paketa.
356
711711
Poziv udaljenih proceduraPoziv udaljenih proceduraRemote procedure call Remote procedure call –– RPC je svojevrsna nadogradnja RPC je svojevrsna nadogradnja mehanizma razmjene poruka.mehanizma razmjene poruka.SluSlužži za olaki za olakššavanje pripreme podprograma u raspodijeljenomavanje pripreme podprograma u raspodijeljenomokruokružženju.enju.
Prilikom poziva podprograma ulazni se podaci, preko jasnoPrilikom poziva podprograma ulazni se podaci, preko jasnospecificiranih lokacija prenose podprogramu a po zavrspecificiranih lokacija prenose podprogramu a po završšetkuetkurezultati se vrarezultati se vraććaju u nadređeni programaju u nadređeni program. .
U podprogram se mogu prenositi vrijednosti (call by value)U podprogram se mogu prenositi vrijednosti (call by value)ili adrese (call by reference) ulaznih podataka, a na jednakili adrese (call by reference) ulaznih podataka, a na jednakse nase naččina vraina vraććaju i rezultati .aju i rezultati .
Mehanizam poziva udaljenih procedura je proMehanizam poziva udaljenih procedura je prošširenje tog irenje tog koncepta s tim da se instrukcije procedure ne nalaze u koncepta s tim da se instrukcije procedure ne nalaze u adresnom prostoru procesa iz kojeg se pozivaju.adresnom prostoru procesa iz kojeg se pozivaju.
712712
Mehanizam poziva udaljenih procedura ostvaruje se iznadMehanizam poziva udaljenih procedura ostvaruje se iznadTCP razine tako da poziv udaljene procedure izgleda kao TCP razine tako da poziv udaljene procedure izgleda kao uobiuobiččajeni poziv podprogarma. ajeni poziv podprogarma.
Taj poziv prihvaTaj poziv prihvaćća spojni modul koji oblikuje poruku i prepua spojni modul koji oblikuje poruku i prepušštataju komunikacijskom sustavu.ju komunikacijskom sustavu.
Poruka se upuPoruka se upuććuje rauje raččunalu koje unalu koje ćće izvesti proceduru. e izvesti proceduru. U njegovom spojnom modulu u poruci U njegovom spojnom modulu u poruci ćće se prepoznati imee se prepoznati imeprocedure i njezine ulazne vrijednosti.procedure i njezine ulazne vrijednosti.Procedura po svom zavrProcedura po svom završšetku predaje rezultate svom spojnometku predaje rezultate svom spojnommodulu koji modulu koji ćće oblikovati povratnu poruku i predati je e oblikovati povratnu poruku i predati je komunikacijskom sustavu.komunikacijskom sustavu.Na strani koja je pozvala proceduru spojni modul rezultate Na strani koja je pozvala proceduru spojni modul rezultate prispjele povratnom porukom vraprispjele povratnom porukom vraćća u proces koji je pozvaoa u proces koji je pozvaoproceduru. proceduru.
357
713713
Proces koji poziva proceduru je ustvari klijent, a proces koji Proces koji poziva proceduru je ustvari klijent, a proces koji izvodi proceduru je posluizvodi proceduru je poslužžitelj.itelj.
klijentklijent
Spojni modulSpojni modul
KomunikacijaKomunikacija
posluposlužžiteljitelj
Spojni modulSpojni modul
KomunikacijaKomunikacija
PozivPozivprocedureprocedure
VraVraććeni eni rezultatirezultati
RezultatiRezultatiAktiviranjeAktiviranjeprocedureprocedure
714714
Proces koji poziva podprogram treba nastaviti izvođenje Proces koji poziva podprogram treba nastaviti izvođenje dretve na mjestu iza poziva podprograma.dretve na mjestu iza poziva podprograma.
Protokol poziva udaljenih procedura mora blokirati izvođenje Protokol poziva udaljenih procedura mora blokirati izvođenje dretve procesa klijenta koja je pozvala udaljenu procedurudretve procesa klijenta koja je pozvala udaljenu procedurudok se ne vrate rezultati.dok se ne vrate rezultati.
358
715715
dretvadretvablokiranablokirana
VraVraććenienirezultatirezultati
PozivPozivprocedureprocedure
Dretva Dretva u procesuu procesuklijentaklijenta
Dretva Dretva U procesuU procesuposluposlužžiteljaitelja
AktiviranjeAktiviranjeprocedureprocedure
RezultatiRezultati
716716
Raspodijeljeni dijeljeni spremnički prostor
Unutar jednog računala procesi mogu dijeliti dio spremničkogprostora kako bi se osigurala razmjena podataka jednostavnimpristupom istim lokacijama iz različitih procesa.U takvom načinu dijeljenja spremničkog prostora pojedinenaredbe dva ili više procesa mogu adresirati pojedinačne spremničke lokacije dijeljenog dijela spremnika.Virtualni se spremnički prostor ostvaruje tako da se logičkiadresni prostor procesa dijeli na stranice koje se dinamički smještaju u radni spremnik onda kada je to potrebno. Ako procesor adresira stranicu koja trenutno nije u radnom spremniku generira se prekid zbog promašaja stranice iaktivira se postupak dobavljanja stranice.Programer ne brine o detaljima ostvarenja virtualnog spremnika,on jednostavvno upotrebljava veliki adresni prostor cijelog procesa.
359
717717
Postavlja se pitanje može li se slično razmišljati o jednomdijeljenom spremniku kojeg će jednostavno moći dohvaćatiprocesi koji se odvijaju u različitim računalima mreže.
Zamisimo da se u svakom od N računala povezanih u mrežuizvodi po jedan proces koji djeluje u svom adresnom prostoru.Poželjno je da jedan dio adresnog prostora dijele svi ti procesi.
718718
Dijeljeni dioadresnog prostora
Adresni prostorprocesa 1
Adresni prostorprocesa N
Adresni prostorprocesa 2
360
719719
Taj dijeljeni dio prostora može biti samo virtualan, jer procesi mogu stvarno komunicirati samo razmjenom poruka krozkomunikacijsku mrežu.
Komunikacijska mreža
komunikacija komunikacija komunikacija
Lokalnispremnik
Lokalnispremnik
Lokalnispremnik
Racunalo 1 Racunalo 2 Računalo 3
Virtualni dijeljeni dioadresnog prostora
720720
Pretpostavka: • U svim se računalima upotrebljava virtualni spremnik• Dijeljeni je dio adresnog prostora podijeljen na stranice
jednakih veličina.
Ako se u jednom od računala dogodi promašaj stranicedijeljenog dijela spremnika, onda može biti:1. Da se tražena stranica nalazi u računalu (na njegovu disku)
u kojem se dogodio promašaj ili2. Da se stranica nalazi u nekom drugom računalu.
U prvom slučaju dogoditi će se uobičajena zamjena stranicaa u drugom treba pokrenuti postupak dobavljanja stranice kroz komunikacijsku mrežu. Zamjena stranice će u tom slučaju potrajati znatno duže jertreba pokrenuti čitav mehanizam razmjene poruka.
361
721721
Ostvarenje dijeljenog raspodjeljenog spremnika zahtijevapažljivu analizu mnogih detalja.
Na primjer, kako bi se povećala djelotvornost-protočnostsustava poželjno bi bilo da se kopije pojedinih stranica koje sečesto upotrebljavaju istodobno nalaze u više računala. Ako se iz tih stranica samo čita, onda nema nikakvih problema. Međutim, ako jedan od procesa piše u takvu stranicu tada treba načiniti promjene u svim njezinim kopijama.
Tako dugo dok postoje razlike u sadržajima stranica dijeljenispremnik nije koherentan (konzistentan).
Postoji nekoliko protokola kojima se podržava koherentnost.
722722
The EndThe End
362
Operacijski sustaviOperacijski sustavi
ViViššediskovni zalihovni spremniciediskovni zalihovni spremnici
724724
MikroelektroniMikroelektroniččka tehnologija osigurava trajno unapređivanje ka tehnologija osigurava trajno unapređivanje svojstava procesora i poluvodisvojstava procesora i poluvodiččkih spremnika. kih spremnika.
Napredak svojstava magnetskih diskova mnogo je sporiji, jer Napredak svojstava magnetskih diskova mnogo je sporiji, jer on prvenstveno ovisi o napretku elektromehanion prvenstveno ovisi o napretku elektromehaniččkih svojstavakih svojstavadiskovnih naprava. diskovnih naprava. Diskovlje postaje ograniDiskovlje postaje ograniččavajuavajućći faktor u sveopi faktor u sveopććem em unapređivanju raunapređivanju raččunalnih sustava. unalnih sustava. Pri razmatranju gospodarenja spremniPri razmatranju gospodarenja spremniččkim prostorom bilo je kim prostorom bilo je govora o osnovnim svojstvima diskova te je zakljugovora o osnovnim svojstvima diskova te je zaključčeno da je eno da je maksimalna brzina prijenosa podatak s diska ili na diskmaksimalna brzina prijenosa podatak s diska ili na diskjednoznajednoznaččno određena brzinom vrtnje plono određena brzinom vrtnje pločča i kapacitetom a i kapacitetom staze diska.staze diska.
363
725725
Dobavljanje nekog sadržaja s diska ili njegovo pohranjivanje na disk zavisi i o njegovom samom smještaju u sektore diska
Kompaktni-slijedni smještaj pri kojem se minimizira trajanje premještanja glava sa cilindar na cilindar omogućuje maksimalno iskorištenje širine pojasa pristupa disku. Raspršeni smještaj blokova podataka (minimizira ga fragmentcija) smanjuje brzinu prijenosa jer se prijenos ne obavlja za vrijeme premještaja glava i rotacijskog kašnjenja.
Upravljački sklopovi su po brzini rada usporedivi s procesorom i oni neznatno utječu na brzinu prijenosa.Upravljački se sklopovi u nekim izvedbama koriste za poboljšanja u prijenosu više uzastopnih blokova jer se njihovi spremnici mogu koristiti kao pomoćni spremnici.
726726
Ubrzanje pri prijenosu se moUbrzanje pri prijenosu se možže postie postićći:i:••Pri Pri ččitanju jednog bloka u spremnik upravljaitanju jednog bloka u spremnik upravljaččkog sklopa prenosi kog sklopa prenosi
se cijela staza i tako eventualno ubrza se cijela staza i tako eventualno ubrza ččitanje nekog drugogitanje nekog drugogbloka s iste staze,bloka s iste staze,
••PosluPoslužživanje viivanje višše zahtjeva upravljae zahtjeva upravljaččki sklop ne vrki sklop ne vrššiiredom prispijeredom prispijećća vea većć redosljedom koji minimizira pomak glaveredosljedom koji minimizira pomak glave
Sve to moSve to možže ubrzati prijenos samo do njegovog e ubrzati prijenos samo do njegovog maksimalnogmaksimalnogiznosa određenog elektromehaniiznosa određenog elektromehaniččkim svojstvima diskova.kim svojstvima diskova.
To se ograniTo se ograniččenje moenje možže zaobie zaobićći smjei smješštajem podataka na vitajem podataka na viššeediskova kojima se modiskova kojima se možže istodobno pristupiti. e istodobno pristupiti.
364
727727
UpravljaUpravljaččki sklop diskovne jediniceki sklop diskovne jedinice
ProcesorProcesordiskovnediskovnejedinicejedinice
sabirnicasabirnica
Radni spremnikRadni spremnik
Blok bajtovaBlok bajtova
SpremnikSpremnikdiskovnediskovnejedinicejedinice
procesorprocesor
728728
UpravljaUpravljaččki sklop diskovne jediniceki sklop diskovne jedinice
ProcesorProcesordiskovnediskovnejedinicejedinice
sabirnicasabirnica
Radni spremnikRadni spremnik
Blokovi bajtovaBlokovi bajtova
SpremnikSpremnikdiskovnediskovnejedinicejedinice
procesorprocesor
Višediskovni podsustav
365
729729
ViViššediskovni sustav se sastoji od polja diskova (disk array)ediskovni sustav se sastoji od polja diskova (disk array)kojima se kojima se pristupa paralelnopristupa paralelno. . Podaci se na diskove mogu raspoređivati na razliPodaci se na diskove mogu raspoređivati na različčite naite naččine.ine.Najjednostavnije je diskove promatrati kao nezavisne cjeline, Najjednostavnije je diskove promatrati kao nezavisne cjeline, te svakog od njih adresirati nezavisno (te svakog od njih adresirati nezavisno (cilindar, staza, sektorcilindar, staza, sektor))
U drugom se naU drugom se naččinu raspoređivanja inu raspoređivanja cijelo polje diskova cijelo polje diskova promatra kao jedan logipromatra kao jedan logiččki adresni postorki adresni postor. Pri tome je . Pri tome je osnovna jedinica adresiranja osnovna jedinica adresiranja podatkovni pojaspodatkovni pojas ili samo pojasili samo pojas(data stripe, stripe), koji se na diskove smje(data stripe, stripe), koji se na diskove smješštaju krutaju kružžnimnimadresiranjem (round robin) .adresiranjem (round robin) .
730730
Pojasna organizacija viPojasna organizacija viššediskovnog adresnog prostoraediskovnog adresnog prostora
11 2 3 42 3 455 6 7 86 7 8....17 18 19 2017 18 19 20
Postoje dvije vrste pojasne organizacije:Postoje dvije vrste pojasne organizacije:
••Sitno zrnata pojasna organizacija (fineSitno zrnata pojasna organizacija (fine--grained stripinggrained striping••Krupno (coarseKrupno (coarse--grained striping) grained striping)
366
731731
SitnoSitno: p: podaci su podjednako raspoređeni na sve diskoveodaci su podjednako raspoređeni na sve diskove..UobiUobiččajeno je za najmanju veliajeno je za najmanju veliččinu pojasa odabratiinu pojasa odabrativeliveliččinu jednog sektora (u literaturi se spominju bytoviinu jednog sektora (u literaturi se spominju bytoviili ili ččak bitovi kao moguak bitovi kao mogućće minimalne velie minimalne veliččine pojaseva).ine pojaseva).
Ostvarenje takve ekstremne sitne zrnatosti moOstvarenje takve ekstremne sitne zrnatosti možže se postie se postiććiiuporabom međuspremnika upravljauporabom međuspremnika upravljaččkog sklopa u kojem jekog sklopa u kojem jemogumogućće razloe razložžiti sadriti sadržžaje dobavljenih cijelih sektora. aje dobavljenih cijelih sektora.
Osnovna je pretpostavka sitno zrnate organizacije da se Osnovna je pretpostavka sitno zrnate organizacije da se pri pojedinim zahtjevima za pristupanju diskovima uvijek pri pojedinim zahtjevima za pristupanju diskovima uvijek podjednako angapodjednako angažžiraju svi diskovi.iraju svi diskovi.Pojednostavljeno, Pojednostavljeno, brzina poslubrzina poslužživanja zahtjeva trebala biivanja zahtjeva trebala bise smanjiti za faktor koji je jednak broju diskova u poljuse smanjiti za faktor koji je jednak broju diskova u polju..BuduBudućći da su pri poslui da su pri poslužživanju zahtjeva zaposleni ivanju zahtjeva zaposleni svisvi diskovi,diskovi,svaki se zahtjev obavlja svaki se zahtjev obavlja pojedinapojedinaččnono..
732732
KrupnoKrupno: Jedan se pojas sastoji od nakupine sektora. U takvoj : Jedan se pojas sastoji od nakupine sektora. U takvoj organizaciji nije nuorganizaciji nije nužžno da svi diskovi sudjeluju uno da svi diskovi sudjeluju uispunjenju svakog pojedinaispunjenju svakog pojedinaččnog zahtjeva. U ovoj nog zahtjeva. U ovoj organizaciji polje diskova moorganizaciji polje diskova možže istodobno ispunjavatie istodobno ispunjavativivišše manjih pojedinae manjih pojedinaččnih zahtjeva, dok se za prijenosnih zahtjeva, dok se za prijenosvelikih kolivelikih količčina podataka opet angaina podataka opet angažžira viira višše diskova e diskova ili ili ččak svi diskovi.ak svi diskovi.
Izbor veliIzbor veliččine pojasa ovisi o predviđenoj primjeniine pojasa ovisi o predviđenoj primjeni. .
367
733733
Smještaj podatakana pojedine diskove
Sitnozrnati pojasnismještaj
Krupno zrnatiPojasni smještaj
Disk1 Disk2 Disk3 Disk1 Disk2 Disk3Disk1 Disk2 Disk3
A0
A1
A2
A3
B0
B1
B2
B3
C0
C1
C2
C3
C0C1C2C3
C0C1C2C3
A0A1A2A3
A0A1A2A3
A0A1A2A3
B0B1B2B3
B0B1B2B3
B0B1B2B3
C0C1C2C3
A0
A3
A1
A4
A2
A5
B0
B3
B1
B4
B2
b5
734734
Uporaba veUporaba veććeg broja diskova eg broja diskova povepoveććava vjerojatnost pojaveava vjerojatnost pojavekvara, pa se stoga kao nukvara, pa se stoga kao nužžno nameno namećće uvođenje stanovitee uvođenje stanovitezalihosti i tehnika za popravak kvarova.zalihosti i tehnika za popravak kvarova.
Uporaba zalihosti diskova za poveUporaba zalihosti diskova za poveććanje pouzdanosti unosianje pouzdanosti unosipotrebu za dodatnim pohranjivanjem i dobavljanjima potrebu za dodatnim pohranjivanjem i dobavljanjima podataka, podataka, ššto smanjuje efektivnu brzinu prijenosato smanjuje efektivnu brzinu prijenosa. .
Postizanje vePostizanje većće brzine i vee brzine i većće pouzdanosti su 2 e pouzdanosti su 2 kontradiktorna zahtjeva.kontradiktorna zahtjeva.
Postoji nekoliko moguPostoji nekoliko moguććih naih naččina ostvarivanja zalihosnih ina ostvarivanja zalihosnih mehanizma u vimehanizma u viššediskovnim sustavima koji ediskovnim sustavima koji ćće biti razmotrenie biti razmotreninakon osnovnih pojmova o pouzdanosti.nakon osnovnih pojmova o pouzdanosti.
368
735735
Struktura diskaModerni diskovi se adresiraju kao veliki jedno-dimenzionalninizovi logičkih blokova, gdje se pod logičkim blokovimapodrazumijevaju najmanje prenosne jedinke. Veličina logičkihblokova je uobičajeno 512 bytova, iako se neki diskovi moguformatirati na guščoj razini od 1024 byta (low-lewel formatted).Jednodimenzionalni niz logičkih blokova je sekvencijalno smješten na disk. Sektor 0 je prvi sektor na prvoj stazi naj “vanjskijeg” cilindra. Smještanje se dalje nastavlja na toj stazi, zatim na sljednim stazama istog cilindra, zatim na slijedećecilindre sve do naj ”unutarnjeg”. Takvim se smještajem (bar teorijski) može pretvoriti (preslikati)logički broj bloka u adresu na disku koja se sastoji od: •broja cilindra, •broja staze unutar tog cilindra,•broja sektora unutar te staze.
736736
U stvarnosti je takvo preslikavanje teško postići iz 2 razloga:1. Većina diskova ima oštećene neke sektore pa je pridruživanje
prekinuto zamjenskim sektorima s neke druge staze
2. Na nekim diskovima broj sektora po stazi nije isti. Na medijimakoji upotrebljavaju konstantnu linearnu brzinu (constantlinear velocity CLV) gustoća bitova po stazi je uniformna.
Čim je staza dalje od središta to je duža i sadrži više sektora.Od vanjske prema unutarnjim stazma broj sektora se smanjujetako da naj “vanjska” staza sadrži i do 40% više sektora negonaj “unutarnja”. Kako se glava pomiče od vanjske premaunutarnjoj stazi disk jedinica povećava svoju rotacijsku brzinu da bi se zadržala ista količina podataka koja protiče ispod glave.
Ta se metoda upotrebljava kod CD-ROM i DVD-ROM uređaja.
369
737737
Alternativno, rotacijska brzina okretanja diska može ostatikonstantnom, ali se u tom slučaju mora smanjivati gustoćabitova počevši od nutarnje prema vanjskoj stazi kako bi se zadržala ista količina podataka koja protiče ispod glave
Ta se metoda upotrebljava na čvrstim diskovima a zove sekonstantna kutna brzina (constant angular velocity CAV).
Broj sektora po stazi se tehnološkim razvojem neprestanopovećava pa vanjske zone na disku imaju i po nekolikostotina sektora po stazi. Isto se tako povećava i broj cilindara po disku tako da veliki diskovi imaju po desetine tisuća cilindara.
738738
Raspoređivanje pozivaZadatak je OS efikasna upotreba sklopovlja što u slučajudiska znači brzo vrijeme pristupa te širinu diskovnog pojasa.Vrijeme pristupa:1. Vrijeme pozicioniranja glave na cilindar koji sadrži traženu
stazu/sektor2. Rotacijsko kašnjenje-dodatno vrijeme da se disk okrene
dok pod glavu ne dođe traženi sektor
Širina diskovnog pojasa: ukupni broj prenesenih bytovapodijeljen s ukupnim vremenom između prvog zahtjeva zauslugom i završetka zadnjeg prijenosa.
Pravilnim rasporedom I/O poziva može se poboljšati vrijemepristupa te širina diskovnog pojasa.
370
739739
Kada god proces treba I/O funkciju za čitanje ili pisanje na disk upućuje poziv OS-u a koji sadrži nekoliko informacija:•Ulaz ili izlaz•Adresu na disku•Adresu u memoriji•Broj bytova za prijenos.
Ako su željena disk jedinica i njezin upravljački sklop dostupniakcija se može odmah izvršiti. Ako su međutim disk jedinicaili upravljački sklop zauzeti svaki novi zahtjev se uvrštava u red čekanja za tu jedinicu. Za višeprogramski sustav sa mnogoprocesa takav red čekanja može sadržavati više zahtjeva.Kada se jedan zahtjev ispuni OS mora izabrati koji će slijedećizahtjev poslužiti.
740740
FCFS algoritam
First come first served
U biti je “pošten” ali općenito ne osigurava najbržu uslugu.
Primjer:
Red čekanja za I/O na blokove cilindra
(START: 53) 98, 183, 37, 122, 14, 124, 65, 67
uzrokuje ukupni pomak glave za 640 cilindara.
371
741741
(53) 98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
Zbroj pomaka 640 cilindaraFCFS algoritam
742742
(53) 98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
Zbroj pomaka 236 cilindaraNedostatak: puno bliskih “izgladnjuje” udaljenog
SSTF Shortest seek time first SJF Shortest job first
372
743743
(53) 98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
SCAN (elevator-lift) algoritam
Zbroj pomaka 236 cilindara
744744
(53) 98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
C-SCAN algoritam
Zbroj pomaka 383 cilindara
373
745745
(53) 98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
LOOK/C-LOOK algoritam
Zbroj pomaka 322 cilindara
746746
Izbor:SSTF je bolji od FCFS jer povećava brzinu prijenosa.SCAN i C-SCAN se bolje ponašaju u okruženju gdje se očekuje veliko opterećenje na disku jer je manje vjerojatnoda će uzrokovati problem izgladnjivanja. Za svaku posebnu listu zahtjeva mogao bi se definiratioptimalni redosljed pristupa ali potreba za računskimoptimiranjem problema nebi opravdala uštedu u odnosuSSTF ili SCAN.
Za bilo koji algoritam raspodjele zahtjeva, brzina vrlo mnogoovisi o broju i tipu zahtjeva. (Na pr. ako postoji samo jedanzahtjev onda se svi algoritmi ponašaju jednako-FCFS)Zahtjev za dodjelom ovisi mnogo i o samom smještaju datoteka na disk.
374
747747
Cashiranje direktorija datoteka i indeksnih blokova je jedna pomoćna metoda za smanjenje pomaka glave diska naročito kada se radi o funkciji čitanja.
Zbog ovih komlpeksnosti algoritam za raspodjelu diska se piše kao odvojeni modul OS tako da se može zamijeniti s različitim algoritmom ako je potrebno.
Default SSTF ili LOOK su razumni izbor.
Ovdje se razmatralo samo vrijeme pozicioniranja a ne i rotacijsko kašnjenje.
748748
Osnovni pojmovi pri razmatranju pouzdanosti
Popravljive i nepopravljive komponente
Ocjena pouzdanosti može se načiniti za neku komponentu sustava ili za neki uređaj na temelji prikupljenih podataka ovelikom broju istovrsnih komponenti odnosno uređaja.
Komponenta može imati 2 stanja:•Ispravno stanje,•Kvarno stanje.
kvar
popravakIspravno stanje Kvarno stanje
Ostanak uispravnom stanju
Ostanak ukvarnomstanju
375
749749
Nova komponenta započinje svoj životni vijek u ispravnom stanju.Kada se dogodi kvar komponenta prelazi u kvarno stanje.
Komponente mogu biti:•popravljive i •nepopravljive.
Nepopravljive komponente nakon događaja kvara ostaju trajno u kvarnom stanju. Tim događajem završava njihovživotni vijek.
Popravljive komponente događajem popravka vraćaju se izkvarnog stanja natrag u ispravno stanje.
750750
t
popravak popravak popravakkvar kvar
Ispravnostanje
Ispravnostanje
IspravnostanjeKvarno
stanje
Kvarnostanje
Pri modeliranju ponašanja popravljenih komponentipretpostaviti će se da one nakon popravka započinjunovi životni ciklus.
376
751751
Pouzdanost i nepouzdanost nepopravljivih komponenti
Razmatranje ponašanja pojedine komponente može seprovesti promatranjem velikog broja komponenti.Pretpostavka:Vrijeme t = 0N komponenti stavljeno u pogon (početna populacija)
Tijekom vremena pojedine se komponente u radu kvaren(t) broj ispravnih komponenti se smanjujem(t) broj neispravnih komponenti raste
Nakon dovoljno dugo vremena pokvariti će se i zadnja komponenta odnosno cijela početna populacija.U svakom trenutku t zbroj ispravnih i neispravnih je jednakpočetnoj populaciji:
n(t) + m(t) = N
752752
t
Nn(t) m(t)
Temeljem promatranja cijele populacije može se za pojedinukomponentu odrediti pouzdanost odnosno nepouzdanost.
Pozdanost (reliability) R(t) neke komponente je vjerojatnost dase ona u trenutku t nalazi u ispravnom stanju odnosno to je vjerojatnost da se do trenutka t nije dogodio kvar.
377
753753
Nepouzdanost (unreliability) F(t) neke komponente jevjerojatnost da se ona u trenutku t nalazi u kvarnom stanjuodnosno vjerojatnost da se do trenutka t dogodio kvar.
Promatranjem statističkih podataka za cijelu populaciju može se ustanoviti da je:
•Pouzdanost R(t) proporcionalna dijelu populacije koja ćeostati u ispravnom stanju do trenutka t
•Nepouzdanost F(t) proporcionalna dijelu populacije koja ćeprijeći u kvarno stanje do trenutka t
Ako se izraz n(t) + m(t) = N podijeli s Nn(t) m(t)N N + = 1 odnosno R(t) + F(t) = 1
754754
MTTF Mean Time To Failer .. Prosječno vrijeme do pojave kvara MTBF Mean Time Between Failer
Promatranjem statističkih podataka za cijelu populaciju ocjenjuje se pouzdanost, nepouzdanost i prosječno vrijeme do pojavekvara za pojedinačnu komponentu.
Brzina kvarenja (failure rate) r(t) se definira kao vjerojatnost pojavljivanja kvara u jedinici vremena u trenutku t i to za onaj diopopulacije koji je do tog trenutka preživio.
Za mnoge tehničke komponente vrijedi da je brzina kvarenja r(t) relativno velika na početku njihova korištenja, da je približnokonstantna u nekom razdoblju te da se opet povećava prikraju životnog vijeka komponenti.
378
755755
tTaj se podatak odnosi na stabilno stanje to jest kada se više ne pojavljuju početni kvarovi. Komponente s “dječjim”bolestima odstranjuju se završnim ispitivnjem nakon proizvodnje, a još se ne pojavljuju učestali kvarovi zbogistrošenosti.
MTTF
Proizvođači komponenti na temelju dugotrajnih promatranjai mjerenja svojih proizvoda obznanjuju svoju ocjenu za MTTF.
756756
Načini zalihosne organizacije diskova
Postoji veći broj mogućih načina ostvarivanja zalihosnihmehanizama u višediskovnim sustavima koji omogućuju povećanje njihove raspoloživosti.Niz tehnika upotrebljava višestruke diskove (array) koji suorganizirani tako da osiguraju visoku raspoloživost i/ili pouzdanost.
Polje diskova s ugrađenom zalihošću (redundancijom) dobilo je naziv Redundant Array of Indipendent Disks RAID.Inexpensive zamijenjeno sa Indipendent (komercj. razlozi).
379
757757
Brzina procesora, veličina glavnog kao i pomoćnog spremnika su se brzo povećavali dok je brzina I/O prijenosa(naročito tvrdih diskova) rasla neusporedivo sporije.
Računalni sustavi su postajali ograničeni I/O – I/O nije mogaoodgovoriti tako brzo na zahtjeve kako su se stvarali te nisumogli prenašati (stavljati na raspolaganje) podatke kako suse ti podaci mogli brzo obraditi.
Kako bi se poboljšala protočnost i brzina prijenosa podatakaautori (Patterson, Gibson, Katz 1988) su predložili slaganjeniza (polja, array) diskova kojima bi se moglo pristupiti istovremeno (simultano).U literaturi se spominje 7 osnovnih načina organizacije višediskovnih sustava RAID 0 do RAID 6.
758758
U izvornom radu predložili su 5 različitih organizacija ili razinaniza diskova. Svaka RAID razina je karakterizirana podatkovnim trakom i zalihošću (redundancija).
Redundancija = umnožavanje elemenata iz sigurnosnih razloga
Postupak podrazumijeva podjelu vanjskog spremnika u fiksnedjelove – blokove (strips).Uzastopni se dijelovi datoteke smještaju na odvojene diskove pa se zahtjevu za čitanje/pisanje podataka može udovoljititako da se pristupa istovremeno ka više diskova što smanjuje vrijeme pristupa. Traka – pojas (stripe) se sastoji od niza blokova na istim lokacijama (adresama) na svakom disku u nizu.
380
759759
= = = = = =Datoteka
RAID sučelje
Trakapojas
blok
760760
Fino zrnata Sitna podjela, istovremeni pristup više diskova, superračunala, brzi pristup,baze podataka sa malim brojem podatakaNedostatak: u jednom trenutku se poslužuje samo
jedan korisničkov zahtjev
Krupno zrnataVeća dužina trake omogućuje smještaj manjih datoteka u jednu čitavu traku, pa je veća vjerovatnoća da će se u jednom trenutku moći poslužiti više istovremenihkorisničkih zahtjevaWEB serveri sa zahtjevom za istovremeno pristupanje malim datotekama istovremeno
381
761761
CijenaMTTF jedan disk 200.000 sati cca 23 godine100 diskova u nizu 2.000 sati cca 3 mjeseca
RedundancyFault tolerant
Disk mirroring zrcaljenje
762762
RAID 0 nezalihosna organizacijaRAID 0 nezalihosna organizacija
ProsjeProsječčno vrijeme do pojave kvara sustava jeno vrijeme do pojave kvara sustava je
MTTFMTTFss = = 1N
MTTFMTTF
U RAID 0 nema zalihosti. Svi diskovi su podatkovni.Prikladno kada je raspoloživost manje važna od kapacitetai brzine.
382
763763
ProsjeProsječčno vrijeme MTTFno vrijeme MTTFss u viu viššediskovnim se sustavimaediskovnim se sustavimanaziva i prosjenaziva i prosječčnim vremenom do gubitka podataka nim vremenom do gubitka podataka Mean Time To Data Loss Mean Time To Data Loss –– MTTDL MTTDL
pa se mopa se možže pisati e pisati
MTTDL = MTTDL = 1N
MTTF
764764
Raid 0 nije bila jedna od izvornih 5 razina RAIDA jer NE OSIGURAVA “toleriranje pogrešaka”.Ako neki od diskova ispadne sve podaci koji ovise oispadnutom disku nisu više dostupni.Jednostavan za upotrebu jer ne zahtjeva dodatnikapacitet, ali ne omogućuje toleriranje pogrešaka.RAID 0 s n diskova mogućava čitanje/pisanje do n putabrže nego jedan disk.Upotreba: visoka djelotvornost i niska cijena važniji odpouzdanosti.
A B C DE F G HI J K L. . . . D1 D2 D3 D4
Ovisno o pojasu mogućeparalelnoservisiranje
Read A,B Write K
383
765765
RAID 1 zrcaljena organizacijaRAID 1 zrcaljena organizacija
••Svako se pisanje mora obaviti 2 puta,Svako se pisanje mora obaviti 2 puta,••ČČitanje moitanje možže biti bre biti bržže nego kod RAID 0 jer se moe nego kod RAID 0 jer se možže e
obaviti s diska koji postigne kraobaviti s diska koji postigne kraćće vrijeme postavljanja glave e vrijeme postavljanja glave ••Koristi se Koristi se ččesto za pohranjivanje baze podatakaesto za pohranjivanje baze podataka••NedostatakNedostatak –– pola se kapaciteta tropola se kapaciteta trošši za postizanje zalihostii za postizanje zalihosti
Zrcaljeni diskovi
U organizaciji RAID 1 svaki disk ima svoju kopiju – zrcaljeni disk (mirror disk-shadowing):
Zrcaljeni diskovi
A B CD EF AB CD EF Read A,BWrite C
766766
Na razini 1 nisu upotrebljeni pojasi (trake) pa se na tajnačin smanjuje kompleksnost sklopovlja i ponašanječitavog sustava. Troškovi dvostruki u odnosu na RAID 0.Ispad jednog ne izaziva gubljenje podataka.Ako jedan ispadne zamjenjuje se novim na kojeg se moraju prepisati podaci sa izvornog – regeneracija podataka.Ako medjutim ispadnu oba diska u zrcaljenom paru podacisu izgubljeni.Neki RAID sustavi sadrže tzv “hot spare” ili “online spare” diskpa se regeneracija dogadja dok je sustav u pogonu.To je važno u okruženju kao što je online sustav za obradutransakcija.
384
767767
Prednosti i mane RAID 1Prednosti i mane RAID 1
•• Velika rezervaVelika rezerva--iskoristivo samo pola kapaciteta za smjeiskoristivo samo pola kapaciteta za smješštaj taj podatakapodataka
•• Velika prosjeVelika prosječčna brzina na brzina ččitanjaitanja--2 razli2 različčita zahtjeva na ita zahtjeva na zrcaljenim diskovima istovremenozrcaljenim diskovima istovremeno
•• Manja prosjeManja prosječčna brzina pisanjana brzina pisanja--viviššestruko upisivanje na isti estruko upisivanje na isti zrcaljeni par mora se provoditi jedan iza drugoga. Na zrcaljeni par mora se provoditi jedan iza drugoga. Na razlirazliččite parove istovremeno.ite parove istovremeno.
•• NajviNajvišša tolerancija na grea tolerancija na grešške između RAIDke između RAID--a.a.•• Visoki troVisoki trošškovi u odnosu na jedinicu kapacitetakovi u odnosu na jedinicu kapaciteta•• Najbolje prilagođeni u okruNajbolje prilagođeni u okružženjima gdje enjima gdje pouzdanost ima pouzdanost ima
prednost u odnosu na troprednost u odnosu na trošškove i djelotvornost.kove i djelotvornost.
768768
RAID 2 organizacija zasnovana na Hammingovim kodovimaRAID 2 organizacija zasnovana na Hammingovim kodovimaKorekcijski diskovi
U organizaciji RAID 2 se za korekciju jednostrukih pogrešakakoristi Hammingov kod.
Za korekciju nakupine od N bitova potrebno je dodati log2N+1 korekcijskih bitova.
N = 4 potrebna 3 korekcijska bitaN = 128 8
385
769769
Zrnatost na razini bita.Ne postoji zrcaljenje pa slijedno tome niti potreba za povećanjemkapaciteta kao na razini 1.Kada ispadne disk to je analogno situaciji kada se dio porukeizgubi za vrijeme prijenosa što je dobro prostudirano u tehnologijikomunikacija.Metoda je posuđena iz memorijskih modula a koristi “parity bit”za ispitivanje grešaka prilikom prijenosa sa diska i njihovoispravljanje, ako je moguće.
0110 Paritet paran upisuje 0 na paritetni disk istovremenoKod čitanja to usporedjuje.Ako se je jedan bit promijenio 0100 sustav može otkriti greškukontrolom paritetnog bita. Ograničenje: nemože otkriti parni broj grešaka 0000 niti koji se je bit promijenio.
770770
Prosječno vrijeme do pojave gubitka podataka
MTTFS = 1N (N-1)
MTTF2
MTTR
Hamming error-correcting codes (Hamming ECCs)Korekcijski bitovi omogućuju:•Otkrivanje do 2 greške, •Ispravljanje 1 greškeODNOSNO •Određivanje diska na kojem je nastala pogreška•Ispravljanje pogrešnog bita (jednog) i ispravljanje pogrešnog bita na ustanovljenom mjestu.U višediskovnim se sustavima, međutim, može na drugi način ustanoviti koji se disk pokvario tako da je mjesto pokvarenog bita poznato i dovoljan je samo jedan paritetni korekcijski bit za utvrđivanje vrijednosti bita na poznatom mjestu.
386
771771
Sustav mora pristupiti pojasu 2 puta za svako pisanjepa je to degradacijaRead-modify-write cycle.
Ta ili slično usporedive metode za toleriranje pogrešakasu ugradjene u hardware i primjenjuju se u skoro svimmodernim SCSI i IDE diskovima.
772772
RAID 3 paritetna organizacija sitne zrnatostiRAID 3 paritetna organizacija sitne zrnatosti
Ovaj naOvaj naččin organizacije podataka stvara pojaseve na razini in organizacije podataka stvara pojaseve na razini bita ili byta.bita ili byta.Umjesto Hamming ECC za generiranje pariteta u ovom Umjesto Hamming ECC za generiranje pariteta u ovom slusluččaju se koristi XOR (exclusive OR) erroraju se koristi XOR (exclusive OR) error--corecting codes.corecting codes.
Paritetni disk
U organizaciji RAID 3 se za korekciju jednostrukih pogrešaka koristi samo jedan paritetni disk.
387
773773
XOR ECCXOR ECC
( a XOR b) = 0 kada su a i b oboje nula ili oboje jedan= 1 ostalo
Slijedno( a XOR ( b XOR c)) = 0 samo kada je parni broj argumenta
nula ili jedanD1 D2 D3 D4 P
A1B1C1D1.. A2B2C2D2.... A3B3C3D3 A4B4C4D4 ApBpCpDp
A=1001A1=1 A2=0 A3=0 A4=1 Ap=0Write (A1,A2) Write (C4) čeka
774774
Za razliku od Hammingovog ECC XOR ECC ne omogućujesustavu otkriti koji bit sadrži krivi podatak.Ovo je ipak prihvatljivo jer većina paritetnih grešaka u RAID sustavima je posljedica “ispada” jednog čitavog diska što jelako otkriti.
Na primjer:U slučaju ispada D2 pročitana kombinacija je:A = 1X01Ap=0
Zaključak:X=0
388
775775
Ova se tehnika može upotrijebiti za ispravljanje jednostruke pogreške na bilo kojem pojedinačnom disku.
U slučaju pak “ispada” paritetnog diska, potrebno je ponovnouspostaviti početno stanje na njemu ponovnim računanjem pariteta temeljem podataka na podatkovnim diskovima.
Obzirom na sitnu zrnatost najviše zahtjeva za čitanjempodrazumijeva pristup čitavom pojasu. Obzirom na generiranje pariteta samo se jedno pisanje možeizvršavati u jednom trenutku.Slično kao i RAID 2 to omogućuje velike brzine prijenosa prilikom čitanja i pisanja velikih datoteka, ali općenito, samo se jedan zahtjev može poslužiti u jednom trenutku.Write (A1,A2,A3,A4) a na čekanju Write (C4)
776776
ZakljuZaključčakak
•• Primarna prednost: jednostavan za upotrebuPrimarna prednost: jednostavan za upotrebu
•• OmoguOmoguććuje pouzdanost sliuje pouzdanost sliččnu RAID 2nu RAID 2
•• SadrSadržži (i (zahtjevazahtjeva) znatno manji () znatno manji (potrebnipotrebni) ) dodatni diskovni kapacitetdodatni diskovni kapacitet
389
777777
RAID 4 paritetna organizacija krupne zrnatostiRAID 4 paritetna organizacija krupne zrnatosti
Pri kvaru jednog diska mogu se rekonstruirati podaci Pri kvaru jednog diska mogu se rekonstruirati podaci pokvarenog pojasa uz pomopokvarenog pojasa uz pomoćć pripadnog pojasa paritetnogpripadnog pojasa paritetnogdiska (paritetni pojas PO diska (paritetni pojas PO šštiti podatkovne pojaseve 0,1,2 i 3).titi podatkovne pojaseve 0,1,2 i 3).
Paritetni disk
U organizaciji RAID 4 se za korekciju jednostrukih pogrešakatakođer koristi jedan paritetni disk ali su pojasevi veći i koristeblokove fiksne veličine.
0 1 2 3 P04 5 6 7 P18 9 10 11 P212 13 14 15 P316 17 18 19 P4
778778
D1 D2 D3 D4 P
A0 B0D0C0
A1B1 A2B2 A3B3 ApBp C1D1 C2D2 C3D3 CpDp
Tehnika pariteta XORJedina organizacijska razlika između RAID 3 i 4 je da svakipodatkovni pojas u RAIDU 4 sadrži više podataka.Budući da je organizacija temeljena na krupnoj zrnatostimože se dogoditi da su podaci smješteni na jednom disku.Ako se paritet ne određuje za svako čitanje, sustav može potencijalno posluživati više istovremenih zahtjeva za čitanje.
390
779779
Pisanje u jedan od pojaseva zahtijeva četiri pristupa dodiskova zbog izračunavanja paritetnog zaštitnog sadržaja:
•Čitanje starih podataka•Čitanje iz paritetnog pojasa•Pisanje novih podataka•Pisanje u paritetni pojas.
Nedostatak: budući da svaki zahtjev za pisanjem podataka (a obzirom na krupnu zrnatost može ih biti više istovremenih) mora upisivati i odgovarajući paritet na partetni disk onda paritetni disk možepostati usko grlo. RAID 5 rješava to usko grlo pa se RAID 4 tijetko koristi.
780780
RAID 5 paritetna organizacija krupne zrnatostiRAID 5 paritetna organizacija krupne zrnatosti s s raspodijeljenim paritetnim pojasevima raspodijeljenim paritetnim pojasevima
Najprikladniji je naNajprikladniji je naččin razmjein razmješštaja pojaseva prikazan na slici.taja pojaseva prikazan na slici.(left symetric parity distribution). Kada se pri takvom (left symetric parity distribution). Kada se pri takvom razmjerazmješštaju pojasevi taju pojasevi ččitaju sekvencijski onda itaju sekvencijski onda ćće se pristupiti e se pristupiti svim diskovima prije nego se ponovno pristupi prvom disku. svim diskovima prije nego se ponovno pristupi prvom disku.
Organizacija RAID 5 se temelji na XOR ECC. Pojasi su na razini blokova a paritetni se pojasevi raspoređujupo svim diskovima.
0 1 2 3 P05 6 7 P1 4 10 11 P2 8 915 P3 12 13 14 P4 16 17 18 19
391
781781
D1 D2 D3 D4 D5
A1 A2 A3 A4 APB1 B2 B3 Bp B4C1 C2 Cp C3 C4D1 Dp D2 D3 D4
Write request: A1 D1, D5C2 D2, D3
Budući su paritetni blokovi raspoređeni na više diskova možese paritetnim pojasevima pristupiti istovremeno čime se izbjegava usko grlo mnogim istovremenim zahtjevima za pisanjem.
782782
Primjer:
Skupina G diskova zaštićena RAID 5 načinom:
MTTDLG = 1 MTTF2
G (G-1) MTTR
Ako postoji K takvih skupina tako da je ukupnoN = K * G
MTTF = 200 000 satiMTTR = 1 sat (Mean time to repair)N = 96G = 16 .....................MTTDL96 = 3170 god
Mean Time To Data Loss
392
783783
RAID 1 i RAID 5 se najčešće upotrebljavaju.
Iskoristivost kapaciteta je mnogo veća u RAID 5 organizaciji.
Ako se s C označi korisni kapacitet sustava N diskova
RAID 1 RAID 5 K paritetnih diskova G skupina
C= ½ N C = N –K N = K*G C = N – N/G = ((G-1)/G)*N
G = 16 C = 15/16 NG = 2 C = ½ N
784784
ZakljuZaključčakak•• Iako RAID 5 poveIako RAID 5 poveććava djelotvornost u odnosu na RAID ava djelotvornost u odnosu na RAID
22--4, u primjeni je kompleksan 4, u primjeni je kompleksan ššto poveto poveććava troava trošškove. kove.
•• BuduBudućći su paritetni blokovi raspoređeni cijelim sustai su paritetni blokovi raspoređeni cijelim susta--vom diskova, regeneracija podataka u sluvom diskova, regeneracija podataka u sluččaju ispada je aju ispada je mnogo zahtjevnija u odnosu na druge RAID razine. mnogo zahtjevnija u odnosu na druge RAID razine.
•• Usprkos ovih ograniUsprkos ovih ograniččenja RAID 5 se enja RAID 5 se ččesto primjenjuje esto primjenjuje obzirom na izjednaobzirom na izjednaččene komponente: djelotvornost, ene komponente: djelotvornost, cijena i pouzdanost. Smatra se najupotrebljivija cijena i pouzdanost. Smatra se najupotrebljivija tehnlogija za optehnlogija za općću namjenu i u namjenu i ččesto se nalazi na esto se nalazi na posluposlužžiteljima aplikacija, planiranju korporativnih iteljima aplikacija, planiranju korporativnih resursa kao i ostalim poslovnim sustavima. resursa kao i ostalim poslovnim sustavima.
393
785785
RAID 6 organizacija sa zaRAID 6 organizacija sa zašštitom od dvostrukog kvaratitom od dvostrukog kvara(P + Q zalihost)(P + Q zalihost)
Paritetni diskovi
Podloga za RAID 6 organizaciju su Reed-Solomonovi kodovi.
Postoje 2 zaštitna diska, odnosno dva zaštitna pojasa za svaku zaštićenu skupinu diskova koji se ravnomjerno raspoređuju po svim diskovima.
P Q
786786
Prikaz RAID razinaPrikaz RAID razina
BlockBlockRaspodjeljeniRaspodjeljeniXOR paritetXOR paritet
++++55
BlockBlockXOR paritetXOR paritet--++44
Bit/byteBit/byteXOR paritetXOR paritet----33
BitBitHammingHamming----22
NemaNemaZrcaljenjeZrcaljenje--++11
BlokBlokNemaNema++++00
RAID Read Conc Write Conc Zalihost Razina pojasa