# $ %'& ( *+-/23/453/6/784 9:4 ;//4784 ; 84 <=7?> @BACED?F7/G<H<=7JIK7?<=L/8M784 ;?8< FBACEDNO784 ; 84 P?8MQ<=?<=8R <HR/:G<H4 SQ/ 7 NO784 ;?8MQ<H4 T L?< Stallings Luku 4 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 4 - KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-2 # $ $ U VXW %XY% % $ Z % [ $ Y U\] && ^^ \ &_ && && `2/R?+ 3/4 8MQ8Sa4 <=LJIKL8bIK8T T al8t T 8; 84 <HR virtuaaliosoiteavaruus eli suoritusympäristö d prosessin kuva (image: PCB koodi data pino resursseja d muistia tiedostoja I/O-laitteita efr +-?<=<=LJIKL8Mag L8T T 4 M?M 84 SQL; 8; 8M L84 /R?R/h i +-2/3/4 8MQ8gIK8T SQL8M/R +=4 <HRj; 8M?23L suoritus limittäin muiden prosessien kanssa prosessiin liittyy tila (Running sekä prioriteetti Proess task KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-3 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-4 U\] && lkmon && kn && && `2/R?+ 3/4 8Ma;?4 + IKL8M i 4 P?8MG/;/4 ;?; p8b 8Sa4 <=LJIKL virtuaaliosoiteavaruus jossa prosessin kuva laitteiden varaus NER JIKL8R?;8MG/;//4 ;?; p muistinsuojaus prosessien välinen kommunikointi tdstot ja niiden pääsyoikeudet SaR <H<=L efr 8+-?<H<=L8Sa4 8MG/;//4 ;?; pqno784 CPU suorittaa säikeitä ei prosesseja rf;//4?;??p84 s+-//r?+k3/4 <Hb?SQ8M <=Lm/R 8+=4 <HR/<=L Thread Lightweight proess U\] && nt && Yksiajo Moniajo ~2 ƒ uwv(x(y(vz { } H H J ( v( ˆ Š?Œ Ž KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-5 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-6 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2 -
' $% & ' ( (( IK/jF8D 37a<=?<=8R?<=?<=<HRj784 ;??<<=L84 qafbac IK/j; 72G<=?<=7?78M784 8;?4 + IKL/<=?L qa@bac NO784 ;?8T T 7a8SQLa<H4 T L-`R?M?M?4 M 8b?`?L?P2G/6 6 6 NO784 ;?8T T 7a8SQLa<=L8T T?L8T R +-8;?4 <=8+-84 T T mm omat PC:n ja PSW:n arvot NO784 ;?8T T 7a8SQL i 4 M aliohjelmakutsuja ja paikallisia muuttujia varten # NO784 ;?8T T 7a8SQL;?R5L?LJIKL TCB Thread Control Blok KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-7 Säikeen kuvaaja TCB tallealue rekistereille prioriteetti tila KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-8 $% ( * ((+ -/232465798:57; <2=;9>@?A 2 *+-/23/4 M784 ;??<; 72G<=<=7257?<OG/g <=84 <=7;??P84 h IKLaP?L?<=L?h L8T R 8<=<=L viite sivutauluun vain PCB:ssä mutta jokaisella oma suoritusaikainen pino FBR?M784 SaR?R?<=<=L?LaP?L?<=L?h L8T R?<H<=L-SaR?R <=<HRI 4 L-b SaR?R <=2jM 78;G3Gj; L84 ;?4 T T i +-2/3/4 Mj784 ; 84 T T NO784 ;?8MQL/5L?L8SQLa<=P2<=aL/584 M?M LSGp2jSaR?4 T T i +-2/3/4 M784 ; 84 T T tiedostokuvaajataulu vain PCB:ssä yhteinen luku/kirjoituspositio? C B -/D B DFE B -HG BJI ELK KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-9 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2 - CNM@O<PM < 9M@O ;9M2= KK QFRTSU V W(WX Y Z [X \U(]_^`ba d3x [e W(fg e f(fv(z(u X V [V [X f(fx Z(Z h(wx e(i_[kjlwjbju X Y Z [X \U mn3i_[jlwj ju X6jlSU V WU h(wx6oz [i_[\p\pfg U X WX X [e W(fg e f(fv(z(u X e(i_[kjlwjbju WX6oZ [3i_[(\p\pfg U X WX qrsz(x6jlsu W [(h([(\\pf(ftlol[u h(f(fx6jz [ipu \p\pf(fvuw[(\pfu X g Z(Z \pfxjlfg fx e(i_[jlwj ju X6jlSU W(\\pS yfrtsu V W(WX Y [e W(\p\pfg U X WX X [e W(fg e f(fv(z(u X e(i_[kjlwjbju X Y [e W(\\pfg U X WX CNM@O<PM < 9M@O ;9M2= KK z{3wjzi jbju WX uwfv fg U X WX6jlSU V WU h(wx}olsy U Y Y S \pw~ [V fkjl\pf oletus: yhteiskäyttöisiä FRTfg fx e(i_[jlwj ju X6jlSU V WU h(wx6olsy U X WX V [g g Z(X(U V [U X \U(~ WY e(e [(fvuwfx [e W(f(f yhteiskäyttöinen data-alue kaikilla pääsy globaaleihin muuttujiin säie hoitaa itse tiedon sovittuun paikkaan toinen noutaa itse ei tarvita ytimen apua ei siirtymisiä etuoik tilaan Fƒ [U(~ WY e [(\\pf(f [~:uwwy g [U X \U \w l \ps KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2 - KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-2 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-2
CNM@O<PM < 9M@O ;9M2= KK Z(\p\pf j X(V(i_[X [U X \U:uwfe [U j jz(y V Wg U X WX V [V [X f(fx [~:uwwy g [U uwfx6olfkjl\z(z(y Y f esim Yhteisen tietorakenteen muuttaminen jos yksi muuttamassa muut eivät saa käyttää jos väh yksi käyttää kukaan ei saa muuttaa esim Tuottaja ja kuluttaja kuluttaja ei saa edetä ennenkuin tuottaja edennyt tiettyyn vaiheeseen { V(Z(i j ju - 9Ox 4 27 KK RT[olWY Y Zljt:uw[kjbjlf}jlWY V W(Sj\U(ipU U e(e(z(g f(\\p[g U f V [V [X fu jz(z(vju f ts suoritusjärjestyksellä ei väliä ts säikeillä ei synkronointitarvetta kukin osa toteutettavissa omana säikeenä KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-3 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-4 - 9Ox 4 27 KK kju g(y S~(U olw3ipv [X \phjl\p[e fy olwy U uwf rsju \pwy \psolszljlwu \pfel b X(\p uwsy ~l lwj jls f uwfjbjlf fy olwg e f(fy Z [(h(f \pfe(e f(fv(z \pfv(u X el X \p (S V [~ h(wx [g f}jlsu WV(Z(U X [g fei_[jlwjbju R n (e(i_[jlwkjbju X6jlSU V W(W(\ ol[u h(f(fx6jz [ipu \p\pf(f fu h([j\ul ~ \ps(fu V f(f WipU(ei_[jlWj jl[i_wu Y Y f kju g V [g WX(X [(\ olfy U V [U jl\pf VjUljlSU WX S l\\ps(s}olfy U V [X uwfy Z(V W(W}j l (\p\pw(wx [U X WX6jlSU W}jZ [3ipU \p\pf(f W(h(WY Y U j\psv [g WX \p[(f WY e [g e(u [~:uwwy g [U h(f GP<PM@? ;98=OPOPM#P; 2= O$ 23<$ %% KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-5 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-6 -/232465798:57; <2=;9>@?A 2 - E'& II E( E I+* D-/ DFE B -HGG I ULT User Level Threads -/232657 2 <2 hu X WU(\U W(h(S}jlSU V WU jl\ps vuorottaa vain prosesseja RT[olWY Y Zlj}V Sk l\p\ps(s}jlsu V WU h(wx ~ fy Y U X \pf(fx jlsu WV(U i uwfjl\p[(f kirjanpito TCB:t RT[olWY Y Zlj}~(Z [Y W~(\U U(U \wjlw jlsu V WU h(wxjls oz [3i_[(\p\pfg U jlwx ohjelmoijan vastuulla ei käytä ytimen koodia ei keskeytysohjattua < 9M@O ;9; 2 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-7 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-8 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-3
; < 2 2 D D 9MJ;9OPM@8:5 <2 2 ;; 88 <P8 2M@MPM2 rfipv W(fvuwfV [ RTSU V W(WX Y Z [g U X WX kirjanpito säikeestä ja sen tilasta RTSU V W(WX W(\pWX Wg U jlwx Wkjl\pSg U X WX rekistereiden tallettaminen RTSU V W(WX W(\pWX Wg U jlwx}jlfy Y U g U X WX rekistereiden palauttaminen RTSU V W(WX Y [e W(\p\pfg U X WX r[~ h(f(\ vuwf 6j X(V(i_[X [U X \U KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-9 2 DD B 2 P8; < 22 P83;$ < e \~i_w(f(h V(U i uwfjl\p[kjbjlf} Y U(a Z(X(V \U [\pf e \~i_w(f(hi_w(f(\pw]_d parametrina funktio josta suoritus alkaa e \~i_w(f(h W(U \]_d lopeta säikeen suoritus e \~i_w(f(hpuw[u X(]_d odota parametrina annetun säikeen loppumista R3 X(V(i_[X [U X(\U t(e [U jbjz(y V Wg U X WX ] jlwg fw[ipu \d pthread_mutex_init( / _destroy( pthread_mutex_lok( / _trylok( / _unlok( X(X Sg Z(U \pf Z(X(V \U [U \pf shed_yield(: luovu vapaaehtoisesti CPU:sta KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-2 GP<PM@? ;98=OPOPM void main( { pthread_t thr thr2; har *msg = Hello; har *msg2 = World; pthread_reate(&thr pthread_attr_default (void*&print_message_funtion(void*msg; pthread_reate(&thr2 pthread_attr_default (void*&print_message_funtion(void*msg2; exit(; } void print_message_funtion(void *ptr{ har *message; message = (har * ptr; printf(%s message; } -/232657 2 <2 ##$ #%'##('(##*+ ei KJ:n apua ei keskeytystä ei prosessinvaihtoa -/ # %'#& #&# & #*#& #( ##$ #%'& #( KJ ei tunne sovelluksen tarpeita # 3 & & $ $ & # *# + & %'* $ & & #4 #& 5 #% & #6#& $ < 9M@O ;9; 2 #& #( & 6###( *# # #* 5 ( #& '#7+ #4 6#& 6#6#&+% #% #( *#$ 5 & 6## #7# #% #('*#$ 5 & 6## #& #&+# ##$ & #6 5 # *#$ 5 #$ & #& 6 Ydin vuorottaa vain prosesseja KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-2 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-22 -/232465798:57; <2=;9>@?A 2 & I/B C G DFE B -HGG I KLT Kernel Level Threads D D 9M@O ;9M+9; 22 2=;2 2 < 2M@? ; << 2 & 6##& 7##( # 6##6##( #( 8:9 ( 5 & %' 5 #&+6 5 6#& $ ohjelmoijalle näkyvä rajapinta voi olla silti sama kuin edellä palvelupyynnöt 7= & # & 6##& prosesseista PCB:t niiden säikeistä TCB:t ##$ #%'##( 8:9 ( aikaviipale säikeelle ##& KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-23 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-24 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-4
& D D 9M@O ;9M+9; 22 2=;2 2 < 2M@? ; << $ + & 6##& #& #& # #& 6 2 & 6###( #& & & #9 ##$ & #6 5 '#$ & *#$ 5 #$ #& 8: & = #6##7 & #(#4 % *#$ 5 & 6## #& & & 6 8 5 & %'#( # 5 # & 6##& # #& keskeytys + siirtyminen KJ:hin (-> etuoik tila vuorottaminen (->kjätila =& & #%'* '6# 6#& $ '6 5 5 ks taulukko 4 -/232465798:57; <2=;9>@?A 2 - I+* B HG -HG9D%- BJI/B G K KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-25 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-26 D-9> 983M< 7#& < # %'# #%'*#& #( *#$ *#& & $ # ##( &+6 5 & 5 2 (#6#$ #(## & 6 5 & + # ##$ #%'& 6 5 & + -/ # %'#& #& 6 5 #( & 6## 5 & %'#( & 6##& 6 # #% # #( # D-9> 983M< KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-27 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-28 -/232465798:57; <2=;9>@?A 2 D D 9M@O ;9; 2M@> 2 DFE B -HGG I B * I # $ $ $&%' ( +*' # - /& kuten prosessilla 234&$& 5 6/&-+/& 7 $&6/&-/&-64 8-& liittyy heittovaihtoon osoiteavaruus prosessitason käsite mm koodialue + globaali data yhteiskäytössä 9 $74 8-+:<;=-& >234&$& 5 $ ' ;=-&? @/& / / $>A /& #- - BC $ 9 $74 8-+: -4& $ ' 4&- $>BC 6/& / / $DA /& KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-29 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-3 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-5
$# %&&('* +(- / & ' 23 94 $>* $C A/567 5 A /& A KJ vuorottaa prosessitasolla 8 Ready-jonossa prosesseja aikaviipale prosessille säiekirjasto huolehtii säikeiden vuorottamisesta prosessin aikaviipaleen sisällä 4-9567 5 A 7- - 64&? 4*&*$ $;::A' 4 8-+:<;=-& 6# - /& 5 $ B7&DA / ;=-$7/ ;=$ 4 -& A 7 $6# $ $ $&% 5 : < ULT- säikeen ja prosessin tila erillisiä KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-3 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-32 %&&('* +(- / & ' 23 %&&('* +(- / & ' 23 947 A ADA /& $C- BC: - -+ KJ ylläpitää säiekuvaajia KJ vuorottaa säietasolla 8 jos prosessin aikaviipaletta jäljellä vuorota saman prosessin säikeitä tai 8 koko aikaviipale säikeelle 4 -D967 5 A 7- - 64&? 4*&*$ $;::A' 4 8-+: $7B7 &3A /&?-? <;=/& Kuva 47 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-33 KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-34 = = 3>&?&-22 $ 3@ 23'A3 >/-CBD3 EF3G/ &%*H *HJIHJ%/ & K $74 8-&<;=DA 78- +? #- $;L K AD*NM& A6$ A7-$;L K A/M*: =*A A /& AL K $ 5677;=6967 8-? #- $;L K /O567 A /& $>?&-8- B7 $&$ $&-4& B74& 6/ $7967 A /& $;L K /O567 A /& $7# - /& 5 D? 648-& $ # - /& 5 $ ' B7&6967 A /& $C L KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-36 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-6
E H CBD BD /F2I I@JG - ' (' %&G&O / & % - Mitä laitteistopiirteitä tarvitaan moniajonjärjestelmän toteuttamiseksi Mitä tietoja on tapana tallettaa tiedostoattribuutteihin Mitä tietoja on tapana tallettaa prosessin kuvaajaan #$%& %$(' $(' Perustele keskeytysmekanismin tarve ja siitä saatavat hyödyt Kuvaa neljä (erilaista keskeytystilannetta ja kerro kuinka käyttöjärjestelmä käsittelee kunkin tilanteen (n yksi virke per tilanne Miten ja milloin prosessori huomaa keskeytyksen Selitä yksityiskohtaisesti keskeytyskäsittelyn vaiheet Aloita tilanteesta jossa keskeytys on juuri huomattu ja päätä tilanteeseen jossa KJ on käsitellyt keskeytyksen ja prosessori jatkaa joko keskeytyneen prosessin tai jonkun muun prosessin suoritusta (ts selitä myös mahdollinen prosessin vaihto Tuo vastauksessani selkeästi esiin mitkä toiminnoista ovat laitetoimintoja ja mitkä toiminnot KJ hoitaa ohjelmallisesti KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-38 I@JG - ' (' %&G&O / & % - *+OK $OM& $& Selitä MMU:n rakenneosat sekä kuinka MMU tekee osoitemuunnoksen kun 8 ei käytetä virtuaalimuistia ja prosessille on varattu yksi yhteinäinen muistialue 8 muistinhallinta perustuu sivuttavaan virtuaalimuistiin -+73 --$7/&A+ *A Sovellus avaa tiedoston palvelupyynnöllä OPEN( ja lukee sieltä sitten tietoa toistosilmukassa palvelupyynnöllä READ( Selitä KJ:n ja I/O-laitteiston toimitaa näiden kahden palvelupyynnön yhteydessä (mm mitä pitää tehdä millaisia tietorakenteita parametrien välitys jne KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-39 = = G& $F3I@3(>?&-22 $ & 3@F&I -CBD3 (8-+: tilakaavio prosessin kuvaaja 6&?&*/ ;=$ 4-23 8A$ A A K $?8 7 BC ;=A/8 4& /& '& &- /& C '#+ + + + + + KJ-I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-4 KJ-I I S24 / Tiina Niklander kalvot Auvo Häkkinen 2-7