395
1 Operacijski sustavi Operacijski sustavi Mr. Mr. sc sc . Ante . Ante De De ž ž ulovi ulovi ć ć dipl.ing. dipl.ing. 2 Srednja stru Srednja struč na sprema? na sprema? Ostalo Ostalo Hotelijerska Hotelijerska Elektro Elektro Kemijska Kemijska Ekonomska Ekonomska Strojarska Strojarska Gimnazija Gimnazija

Operacijski sustavimetrobroadband.metronet.hr/ksenija-pejic/Objects/OS...1965 70 75 80 85 90 95 2000 2005 109 108 107 106 195 104 1000 100 10 God Broj integriranih tranzistora Log

  • Upload
    lyduong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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

Slide 424

ad4 adezulo1; 14.12.2003

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.

316

631631

The EndThe End

Operacijski sustaviOperacijski sustavi

DatoteDatoteččnini sustav sustav

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

394

787787

The EndThe End