You are on page 1of 40

OPERACIJSKI

SUSTAVI
PREKIDI

MEHANIZAM PREKIDA
Osim procesora, i drugi sklopovi koriste
sabirnicu. U nekim im operacijama procesor
izravno alje podatke (kao to to radi sa
spremnikom), u drugim operacijama
procesor preuzima podatke i sl.
Nekim ureajima procesor alje podatke koje
ureaj interpretira kao naredbe. Primjerice,
pri radu s diskom procesor alje disku
zahtjeve za odreenim blokovima podataka.

MEHANIZAM PREKIDA
S obzirom da je disk znatno sporiji od
glavnog spremnika, dok se podatci ne
dohvate, procesor obrauje one poslove
(procese) koji ne zahtijevaju te podatke,
tj. koji imaju sve to im je potrebno.
Kako e procesor saznati je li disk
dohvatio traene podatke u svoj
meuspremnik ili u glavni spremnik?

MEHANIZAM PREKIDA
Jedan od naina kojim procesor moe
upravljati vanjskim ureajima jest da
periodiki provjerava njihove statusne
registre.
Na primjer, u statusnom bi se registru diska
postavila zastavica zahtjev obraen kada
bi se s diska dohvatio traeni podatak.
Pri otkrivanju (detekciji) te zastavice,
procesor bi mogao nastaviti s procesom
koji je te podatke i zahtijevao, a disku
moda proslijedio sljedei zahtjev.

MEHANIZAM PREKIDA
NEDOSTATCI PERIODIKE PROVJERE
STATUSNIH REGISTARA UREAJA:
mora biti programirana u sustav to
znaajno komplicira programsku izvedbu
upravljanja sustavom,
vrlo e rijetko takve provjere dati povod
nekoj radnji s obzirom da je procesor
znatno bri od ulazno-izlaznih naprava.

MEHANIZAM PREKIDA
Bolje bi rjeenje bilo kada bi ureaj sam
dojavio da se s njim neto dogodilo, a da
procesor, dok se tako neto ne dogodi,
radi neki drugi koristan posao.
MEHANIZAM KOJI SE ZA TO KORISTI JEST
MEHANIZAM PREKIDA.

MEHANIZAM PREKIDA

KAKO PROCESOR DOZNAJE KOJA


JE NAPRAVA IZAZVALA PREKID?
UZ SAM ZAHTJEV ZA PREKID PROCESORU ALJE I
PREKIDNI BROJ,
POMOU TOG BROJA PROCESOR (UZ
ODGOVARAJUU INICIJALIZACIJU SUSTAVA) MOE
DOZNATI KOJA JE NAPRAVA GENERIRALA PREKID I
KAKO DA JU OBRADI
PRI INICIJALIZACIJI OPERACIJSKOG SUSTAVA
ZA SVE JE NAPRAVE PRIPREMLJEN ODGOVARAJUU
UPRAVLJAKI PROGRAM (ENGL. DEVICE DRIVER).
PRI OBRADI PREKIDA KORISTI SE (POZIVA SE)
UPRAVLJAKI PROGRAM ONE NAPRAVE KOJA JE
PREKID IZAZVALA.

PRIHVAT PREKIDA
PRIHVAT PREKIDA KOJEG IZAZIVA NEKA
NAPRAVA OBAVLJA SE U NEKOLIKO KORAKA.
PROCESOR PRIJE PRIHVATA PREKIDA
ZAVRAVA TRENUTANU INSTRUKCIJU (AKO
ONA NIJE UZROK PREKIDU).
PO ZAVRETKU INSTRUKCIJE PROCESOR
PROVJERAVA JESU LI DOPUTENI PREKIDI I
JE LI ZAHTJEV ZA PREKID POSTAVLJEN.
TEK AKO SU OBA UVJETA ISPUNJENA,
KREE SE U PRIHVAT PREKIDA.

PRIHVAT PREKIDA
KORACI U PRIHVATU PREKIDA:
ZABRANI DALJNJE PREKIDANJE,
AKO JE PODRANO, POSTAVI PROCESOR U
PREKIDNI NAIN RADA (PRIVILEGIRANI NAIN
RADA),
POHRANI PROGRAMSKO BROJILO NA STOG
(ADRESA INSTRUKCIJE NA KOJU SE TREBA VRATITI
NAKON OBRADE PREKIDA),
U PROGRAMSKO BROJILO STAVI ADRESU
PROCEDURE ZA OBRADU PRIHVAENOG PREKIDA.
PO ZAVRETKU OBRADE PREKIDA POTREBNO JE
VRATITI SE U PREKINUTI PROCES

POVRATAK IZ OBRADE PREKIDA


OBAVLJA SE OBRNUTIM REDOSLIJEDOM
OD PRIHVATA PREKIDA:
OBNOVI PROGRAMSKO BROJILO SA
STOGA,
PREBACI PROCESOR U PRIJANJI NAIN
RADA,
DOPUSTI PREKIDE.

KUANSKI POSLOVI
Pohrana konteksta pa utvrivanje koja je
naprava izazvala prekid te naknadni
povratak u prekinuti program (obnova
konteksta), esto se nazivaju kuanskim
poslovima koji se pojavljuju pri svakom
prekidu.
U sustavima gdje se prekidi vrlo esto
pojavljuju, sami kuanski poslovi mogu
znaajno utjecati na uinkovitost sustava.
Zato se za takve naprave koriste i drugi
postupci.

KORITENJE SABIRNICE
NEKE NAPRAVE MOGU POVREMENO I SAMOSTALNO
KORISTITI SABIRNICU.
NPR., PRI RADU S DISKOM S NJEGA SE UITAVAJU
VEE KOLIINE PODATAKA.
KADA BI UPRAVLJANJE PRENOENJEM PODATAKA S
DISKA (NJEGOVE UPRAVLJAKE ELEKTRONIKE, TJ.
NJEGOVIH MEUSPREMNIKA) U GLAVNI SPREMNIK
OBAVLJAO PROCESOR, TADA BI BILO MNOGO
NEUINKOVITOG KORITENJA SABIRNICE:
PROCESOR BI SVAKI PODATAK NAJPRIJE MORAO
DOHVATITI U SVOJ REGISTAR, A TEK GA POTOM
POHRANITI U GLAVNI SPREMNIK.

KORITENJE SABIRNICE
TAKVI SE POSLOVI MOGU POVJERITI I SAMOJ NAPRAVI: ONA E, KADA
ELI KORISTITI SABIRNICU, DATI ZAHTJEV SABIRNIKOM ARBITRU
(TO U NEKIM SUSTAVIMA MOE BITI I DIO PROCESORA).
ARBITAR E ODLUITI KAD E TOJ NAPRAVI DODIJELITI SABIRNIKE
CIKLUSE, KADA E NAPRAVA SAMOSTALNO PRENIJETI PODATKE U
GLAVNI SPREMNIK ILI PROITATI PODATKE IZ NJEGA.
TAKVIM SE OPERACIJAMA GLAVNOM PROCESORU USKRAUJU SAMO
PONEKI SABIRNIKI CIKLUSI, ALI SE SUSTAV UINKOVITIJE
ISKORIUJE: OSIM DVOSTRUKO MANJEG KORITENJA SABIRNICE ZA
PRIJENOS ISTIH PODATAKA S NAPRAVE U GLAVNI SPREMNIK,
PROCESOR SE NE PREKIDA U SVOM RADU (PRIHVAT PREKIDA UNOSI
DOSTA KUANSKOG POSLA!).
U SLUAJU DISKA, ON MOE GENERIRATI PREKID TEK KAD PRENESE
SVE PODATKE KOJI INE JEDAN ZAHTJEV I TEK TADA PROCESOR
MOE NASTAVITI S DRUGIM PROCESOM KOJI JE TE PODATKE
ZATRAIO.

PRIORITETI PREKIDA
OBRADA NEKOG PREKIDA MOE POTRAJATI I
POPRILINO DUGO (U RAUNALNOM SMISLU).
ZA VRIJEME OBRADE PREKIDA, PROCESOR MOE
ILI ZABRANITI PRIHVAT DRUGIH PREKIDA ILI IH
DOPUSTITI.
KADA BI PROCESOR SVE PREKIDE OBRAIVAO
SLIJEDNO, UZ ZABRANU PRIHVATA DRUGIH
PREKIDA ZA VRIJEME OBRADE PRVOG, TADA BI
NEKI PREKIDI MOGLI I POPRILINO DUGO EKATI
NA OBRADU.
ZBOG TOGA SE KORISTE RAZNI POSTUPCI,
SKLOPOVSKI ILI PROGRAMSKI, KOJIMA SE NASTOJI
TE PROBLEME UMANJITI.

PRIORITETI PREKIDA
PREKIDI KOJI SE DOGODE ZA VRIJEME OBRADE
PRIORITETNIJIH PREKIDA ILI ZA ZA VRIJEME
KADA SU PREKIDI BILI ZABRANJENI SAMO SE
ZABILJEE U SKLOPU KOJI UPRAVLJA
PREKIDIMA.
TI SE PREKIDI PROPUSTE DO PROCESORA
ONDA KADA ON DOVRI OBRADU
PRIORITETNIJIH PREKIDA ILI ONDA KADA ON
PONOVNO DOPUSTI PRIHVAT PREKIDA.
U REGISTRU STANJA PROCESORA POSTOJI
(BAREM) JEDNA ZASTAVICA (ENGL. INTERRUPT
FLAG) KOJA DEFINIRA PRIHVAAJU LI SE
PREKIDI TRENUTANO ILI NE.

PRIORITETI PREKIDA
PROGRAMSKI SE NASTOJI OBRADA PREKIDA UINITI
TO KRAOM, AKO JE TO MOGUE. AKO NIJE, ONDA
SE OBRADA DIJELI NA NEKOLIKO DIJELOVA IZMEU
KOJIH SE OBRADA MOE PREKIDATI.
NA PRIMJER, OBRADA SE MOE PODIJELITI NA DVA
DIJELA:
PRVI DIO (KRAI) KOJI E SAMO POHRANITI
POTREBNE PODATKE ZA OBRADU (DOHVATITI IH
OD NAPRAVE), A
U DRUGOM (DUEM) DIJELU (KOJI SE MOE I
PREKIDATI) DOVRITI OBRADU.
NA OVAJ E SE NAIN PRIORITETNIJI PREKIDI MOI
PRIJE OBAVITI, AKO SU ZAHTJEVI ZA OBRADOM
(DRUGI DIO OBRADE) SLOENI PREMA PRIORITETIMA.

INSTRUKCIJSKA DRETVA
PRI IZVOENJU NEKOG PROGRAMA
PROCESOR IZVODI NIZ INSTRUKCIJA
INSTRUKCIJSKU DRETVU KRAE: DRETVU
OSNOVNA RAZLIKA IZMEU NIZA
INSTRUKCIJA I DRETVE:
NIZ INSTRUKCIJA U SPREMNIKU JE
POVEZAN REDOSLIJEDOM SPREMNIKIH
LOKACIJA (JEDNA IZA DRUGE U
SUSJEDNIM SPREMNIKIM LOKACIJAMA)
NIZ INSTRUKCIJA KOJE INE DRETVU
POVEZAN JE VREMENSKIM SLIJEDOM
(IZVOENJA)

INSTRUKCIJSKA DRETVA

PRIORITETI PREKIDA
UOBIAJENO RJEENJE U MODERNIM OPERACIJSKIM
SUSTAVIMA JEST DA SE OBRADA PREKIDA DIJELI NA DVA
DIJELA:
KRATKI (UZ ZABRANJENO PREKIDANJE)
KOJI SE OBAVLJA U SAMOJ PREKIDNOJ PROCEDURI PRI
PRIHVATU PREKIDA
NAJEE SAMO SPREMA PARAMETRE ZA OBRADU I
POSTAVLJA ZAHTJEV U RED (S PRIORITETOM) ILI
AKTIVIRA DRETVU KOJA E PREKID OBRADITI
DUI (UZ DOZVOLJENO PREKIDANJE)
OBAVLJA SE NAKNADNO, S PRIDIJELJENIM PRIORITETOM
KORISTI SE ZASEBNA DRETVA ZA OBRADU
ILI JEDNA ILI VIE DRETVI OBRAUJU ZAHTJEVE
PREMA PRIORITETIMA (ILI REDU PRISPIJEA)

PRIORITETI PREKIDA
OBRADA PREKIDA U DVA ODVOJENA DIJELA NA
RAZNIM SE SUSTAVIMA RAZLIITO NAZIVA.
ZA WINDOWS SUSTAVE NAZIVI SU:
PREKIDNA PROCEDURA (ENGL. INTERRUPT
SERVICE ROUTINE ISR)
PREKIDNA DRETVA (INTERRUPT SERVICE
THREAD - IST)
ZA LINUX SUSTAVE NAZIVI SU:
GORNJA POLOVICA (ENGL. TOP HALF )
DONJA POLOVICA (BOTTOM HALF: TASKLET,
SOFTIRQ, WORKQUEUE).

PRIORITETI PREKIDA
PODJELA PREKIDNIH BROJEVA (ENGL. INTERRUPT NUMBER)
ZADAA JE OPERACIJSKOG SUSTAVA I UPRAVLJAKIH
PROGRAMA.
NAJEE SVAKA NAPRAVA KORISTI VLASTITI PREKIDNI
BROJ. NO VEINA NAPRAVA MOE I DIJELITI PREKIDNI BROJ S
DRUGOM NAPRAVOM, AKO ZBOG SKLOPOVSKIH OKOLNOSTI
NE MOGU DOBITI ZASEBNE (KADA BI SUSTAV BIO
UINKOVITIJI).
PONEKAD (U STARIJIM SUSTAVIMA) SE IPAK MOE DOGODITI
TAKOZVANI KONFLIKT, KADA DVIJE RAZLIITE NAPRAVE
ELE KORISTITI ISTI PREKIDNI BROJ, I TO BEZ DIJELJENJA.
TADA KORISNIK, KORITENJEM SUELJA OPERACIJSKOG
SUSTAVA ILI ZASEBNIH PROGRAMA KOJI SU ISPORUENI UZ
NAPRAVE ILI KORITENJEM BIOS-A PRIJE POKRETANJA
OPERACIJSKOG SUSTAVA, TREBA PRONAI ALTERNATIVNO
RJEENJE ZA JEDNU OD NJIH, U SKLADU S MOGUNOU
NAPRAVA

PROGRAMSKI PREKIDI
POSEBNA VRSTA PREKIDA JESU PROGRAMSKI
PREKIDI.
OPERACIJSKI SUSTAV SVOJE OPERACIJE NUDI
KORISNIKU KROZ KORISNIKO GRAFIKO SUELJE,
DOK IH PROGRAMIMA NUDI KROZ PROGRAMSKO
SUELJE (API).
U IZVONENJU OPERACIJA KOJE SE NUDE KROZ
PROGRAMSKO SUELJE
MOGU BITI I NEKI PRIVILEGIRANI ILI ZATIENI
PODZADACI. U TAKVIM SE SLUAJEVIMA ZA NJIHOVO
OBAVLJANJE KORISTI MEHANIZAM PROGRAMSKOG
PREKIDA.

PROGRAMSKI PREKIDI
IZAZIVA SE PROGRAMSKI, POSEBNIM INSTRUKCIJAMA
PROCESORA.
PRIJE IZAZIVANJA PROGRAMSKOG PREKIDA PROGRAM MORA
U UNAPRIJED DEFINIRANE REGISTRE (ILI NA STOG) POSTAVITI
PARAMETRE ZA FUNKCIJU OPERACIJSKOG SUSTAVA KOJU
POZIVA TIM PREKIDOM.
PROGRAMSKIM PREKIDOM, KAO I SVIM OSTALIM PREKIDIMA,
PROCESOR PRELAZI U PRIVILEGIRANI NAIN RADA U KOJEM
MOE OBAVITI I OPERACIJE KOJE SU INAE NEDOSTUPNE.
PRI POKRETANJU OPERACIJSKOG SUSTAVA POSTAVLJAJU SE
FUNKCIJE KOJE OBRANUJU PREKIDE I KOJE SE MOGU POZVATI
ISKLJUIVO NA TAJ NAIN.
OVAKO SE ISTODOBNO POSTIE I ZATITA OPERACIJSKOG
SUSTAVA OD PROGRAMA KOJI SVE KRITINE OPERACIJE
MOGU PROVESTI JEDINO PREKO UNAPRIJED DEFINIRANIH
FUNKCIJA OPERACIJSKOG SUSTAVA.

PROGRAMSKI PREKIDI

INSTRUKCIJSKA DRETVA

INSTRUKCIJSKA DRETVA
Niz procesorskih instrukcija koje se nalaze u spremniku
(ili programu) samo je niz instrukcija.
pri izvoenju programa procesor nee samo slijedno
izvoditi te instrukcije (jednu iza druge)
neke e segmente instrukcija viestruko obilaziti
(petlje),
Neke e segmente povremeno pozivati
(potprogrami, rutine, procedure),
a neke e preskoiti jer uvjeti za njihovo izvoenje
nisu bili zadovoljeni (grananja tipa ako).

INSTRUKCIJSKA DRETVA
Ako usporedimo poetni niz instrukcija s nizom onih
koje su se izvele, vidimo veliku razliku.
Zato se u kontekstu operacijskih sustava (i openito
programiranja) uvodi novi pojam: instrukcijska
dretva ili krae samo dretva (engl. thread) koja
opisuje vezu instrukcija prema vremenu njihova
izvoenja.
DRETVA OPISUJE IZVOENJE JEDNOG PROGRAMA,
kojim su se redoslijedom njegove instrukcije izvodile u
konkretnom pokretanju tog programa.

PROCES
PROCES OPISUJE ADRESNI PROSTOR (I
OSTALA SREDSTVA) U KOJEM SE
PROGRAM ODVIJA, U TO SE UKLJUUJE I
DRETVA.
NO OSIM JEDNE DRETVE KOJA IZVODI
PROGRAM, UNUTAR ISTOG PROCESA
MOE BITI I VIE DRETVI KOJE TO RADE, A
KOJE MORA STVORITI POSTOJEA DRETVA
ODGOVARAJUIM POZIVOM
OPERACIJSKOG SUSTAVA.

PROCES

ZATO BISMO
ELJELI IMATI VIE
DRETVI?

PROCES
NEKE SE OPERACIJE NAD VELIKIM
SKUPOM PODATAKA MOGU NAPRAVITI I
PARALELNO:
PODIJELITI SKUP PODATAKA NA
JEDNAKE DIJELOVE KOJE E
OBRANIVATI DRETVE NA RAZLIITIM
PROCESORIMA.
S OBZIROM DA SE POSAO PARALELNO
IZVODI, PRIJE E BITI GOTOV!

PROCES
DRUGI JE PRIMJER U APLIKACIJAMA KOJE
KORISTE GRAFIKO KORISNIKO SUELJE.
ZASEBNA DRETVA UPRAVLJA SUELJEM,
DRUGE IZVODE POTREBNE PRORAUNE.
NA TAJ E NAIN SUELJE REAGIRATI NA
KORISNIKOVE NAREDBE I ZA VRIJEME
TRAJANJA PRORAUNA (RADI U
POZADINI).

PROCES
DRUGI JE PRIMJER U APLIKACIJAMA KOJE
KORISTE GRAFIKO KORISNIKO SUELJE.
ZASEBNA DRETVA UPRAVLJA SUELJEM,
DRUGE IZVODE POTREBNE PRORAUNE.
NA TAJ E NAIN SUELJE REAGIRATI NA
KORISNIKOVE NAREDBE I ZA VRIJEME
TRAJANJA PRORAUNA (RADI U
POZADINI).

PROCES
RAZLIITI PROGRAMI RADE RAZLIITE
POSLOVE.
ZATO SU ONI PRI POKRETANJU
RAZDVOJENI U RAZLIITIM PROCESIMA.
GREKA U JEDNOME, A KOJU UZROKUJE
JEDNA NJEGOVA DRETVA, NE UTJEE NA
DRUGI, VE SAMO NA TAJ U KOJEM SE
GREKA DOGODILA.

PROCES
PONEKAD SE I IZ JEDNOG PROGRAMA
STVORI VIE PROCESA POETNI STVARA
NOVE.
NPR, ZBOG SIGURNOSNIH RAZLOGA.
RAZLIITI PROZORI INTERNETSKOG
PREGLEDNIKA MOGU SADRAVATI
POVJERLJIVE PODATKE I TREBA IH
ZATITI OD MOGUEG ZLONAMJERNOG
KODA IZ NEKOG DRUGOG PROZORA.

RASPOREIVANJE
U SVAKOM TRENUTKU U OPERACIJSKOM
SUSTAVU POSTOJI BAREM NEKOLIKO PROCESA
OD KOJIH SVAKI IMA BAREM PO JEDNU
DRETVU.
UKUPAN BROJ DRETVI SVIH PROCESA ZAJEDNO
JE GOTOVO UVIJEK VEI OD BROJA
PROCESORA.
DA BI OPERACIJSKI SUSTAV MOGAO UPRAVLJATI
DRETVAMA SVIH PROCESA, ON MORA IMATI
POPIS SVIH TIH DRETVI I ZNATI U KOJIM SU
ONE STANJIMA.

RASPOREIVANJE

RASPOREIVANJE
DRETVA KOJA SE TRENUTANO IZVODI
NA PROCESORU NAZIVA SE AKTIVNA
DRETVA.
U JEDNOPROCESORSKIM SUSTAVIMA
SAMO JEDNA DRETVA ISTODOBNO MOE
BITI AKTIVNA, DOK U
VIEPROCESORSKIM SUSTAVIMA SVAKI
PROCESOR IMA SVOJU AKTIVNU DRETVU.

RASPOREIVANJE
DRETVA KOJA EKA NA NEKAKAV
DOGANAJ NAZIVA SE BLOKIRANA
DRETVA.
RAZLOZI BLOKIRANJA MOGU BITI RAZNI:
OD EKANJA NA DOGAAJ NEKE
NAPRAVE, DO DOGAAJA KOJE IZAZIVAJU
DRUGE DRETVE U SUSTAVU ILI SAM
OPERACIJSKI SUSTAV.

RASPOREIVANJE
DRETVE MOGU BITI I SPREMNE ZA IZVOENJE,
ALI SE IPAK NE IZVODE JER PROCESOR U TOM
TRENUTKU IZVODI INSTRUKCIJE NEKE DRUGE
DRETVE.
TAKVE DRETVE NAZIVAMO PRIPRAVNIM
DRETVAMA.
KADA TRENUTANO AKTIVNA DRETVA ZAVRI
S RADOM (I ODLAZI U TZV. PASIVNO
STANJE) ILI SE U SVOM RADU BLOKIRA, JEDNA
OD PRIPRAVNIH DRETVI POSTAT E AKTIVNA.

You might also like