Operation_System

Page 1

c °2003, sangjin@kut.ac.kr

* <* Ö = å i< K: ~ ¡q ç { ¡È 01

A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

Part I. Overview

<Õ ªa > 1.1> ( Ë É Ó' r Û ¼% _ 7 ½ ¨$

‫כ‬ í ¹ è

} º4

1

1.1.2 • î r%

^ ò ] jê Í? ø

­ S y å ð ËX ¾ È ì

• " ¶½ é É{ + ©

– ( É Ó' × ¼J ?# Q\ ¦ ao ' Há Ô ÐÕ ªÏ þ – (É Ó' ¶ " é: CPU r ç , B ß j ¸o / Nç B ,

ß { 9 $ / © Nç B , { ß Ø 9 ¦§ 4 u ©

– 6 x6 £ xá Ô ÐÕ ªÏ _ þ Ð@ /\ ¦ ] j/ NK B Å Ò H á Ô Ð Õ ªÏ þ – (É Ó' _ 6 x ü <( É Ó' × ¼J ?# Q s \ × æç B ß > h^ % ½ i É` + ¦K Å Ò Há Ô ÐÕ ªÏ þ

• ] j# Qá Ô ÐÕ ªÏ þ – 6 x á Ô ÐÕ ªÏ _ þ z ´ ' ` ¦ ao ' ¦, ¸À Ó <( ü É Ó' ¸6 x\ ¦~ Ót ½ ô Ç .

ØW U Æ Ë= _ k< g m?

1.1

• ( É Ó' r Û ¼% 7 _ ¨ ½$

‫כ‬ í ¹ è

1.1.3 Æ ØW U Ë= _ k< g8 ý × Ò »

– × ¼J ?# Q

• î r%

^ ò ] j_ 3 q³ l ð

– î r%

^ ò ] j – 6 x6 £ xá Ô ÐÕ ªÏ þ

– 6 x \ > ¼ o # $

] í j/ N B

– 6 x

– ( É Ó' r Û ¼% _ 7 ´ òÖ ¦& î h r%

ò • î r%

^ ò ] j_ 3 q& l h

• î r%

^ ò ] j# A 3 0\ @ /ô Ç&

_ ñ – ä +q 1. î r%

^ ò ] j\ ¦½ ¨{ 9 % ` i ¦M : í Ê÷ < & # Qe H ¸ H ‫כ‬

– 6 x \ > ( É Ó' \ " f á Ô ÐÕ ªÏ ` þ ¦ ´ òÖ ¦ s h & ¦¼ o # > z ´' ½ Éà + ºe H¨ 8

` â ¦] j N B /

– ä +q 2. Ó ½ à © º' ÷ & ¦e HÄ »{ ô 9 Çá Ô Ð Õ ªÏ ë þ î ß r%

^ ò ] js . Ð: x r ´ É ú Ð &

(kernel)s y Û ô Ç .

– (É Ó' " ¶_ é ½ É{ + , s © ½ É{ + © r/ É N& B

K ñ 9´ òÖ ¦& Ü h ¼ Ðs À Ò# Q4 R Ê. < – j ]# QÔ á ÐÕ ªÏ Ü þ ¼ Ð 6 x á Ô ÐÕ ªÏ _ þ z ´ ` ' ¦y 1 q l # ¸À Óü <( É Ó' ¸6 x` ¦~ Ót ½ ¦{ 9 Ø ¦§ © 4 u _ ] j# Q< ü1 x l ` ¦ ao ' ô Ç .

Ð: x&

_ ñ 2\ ¦ 6 x Ê. < 1.1.1

Þ Ó å ËX ¾ È ì

• (É Ó' _ 6 x ¸\ î r%

^ ò ] j_ [ > O ~ Ó ½ Ós ¾ &

ñ a ) .

1.2

– > h 6 x( É Ó' : ¼ o # $

( í ), $ ©

0 í x(× p æ), " ¶ é ¸6 Ö x( )

cß 8 à ų 7 _Æ ÈS k ­ y ð

• ô Ç 6 x _ á Ô ÐÕ ªÏ ë þ ` ß ¦Ã º' î r

^ ò % ] j_ { 9 rÕ É ªë ß u~ p 1 . ì Í ø \ ô Ç 6 x # Qá Ô ÐÕ ªÏ ` þ ¦1 xr l \ à º' # Q 6 x 1 xr l \ 6 x Hr Û ¼% 7 \ " f Hî r%

^ ò ] j_ 9 { rç É é ß ß t · § ú .

– B j á ÔY Ua >, p Ë m ( É Ó' : " ¶ é ¸6 Ö x( ) © – 0 >ß ¼Û ¼_ s : > h 6 x$

õ í " ¶ é ¸6 Ö x – Ê ë@ /6 x( É Ó' : > h 6 x$

( í ), © ¶ " é] X 1


1.2.1

ø Ç m Í% Z iP S ­ y ð

• k& T P »(time sharing) ¢ Ò ¸ HY w O I Û ¼(

(multitaskç ing) r É × æá Ô ÐÕ ªA b ç

õ ² o ú &

K ñ r ç s ß ÷ & Á º ¸| 6 §í £ H" f_ \ ` O ¦z ´ ' H~ Ód ½ Ü ¼ Ð, §@ / Hr ç s ß B Ä ºÂ ª ú á Ô ÐÕ ªÏ s þ z ´' & ÷ H1 xî l ß 6 x H( É Ó' ü < © ñ 6 xs 0 x p .

• í Ól ½ r Û ¼% 7 r É 6 x f ] r X Û ¼% ` 7 ¦ 6 x t · § ú ¦, ë H( É Ó' î r%

ò \ > á Ô ÐÕ ªÏ õ þ X <s ' \ ¦ u

× ¼\ ¦: xK ] j/ N B # 6 x % i . • ô Ç _ _ á Ô ÐÕ ªÏ ß þ ës à º ' ÷ &Ù ¼ Ðî r%

^ ò ] j_ Å Òe Á º H _ \ \ O " f 6 § £ \ Ü O ¼ Ð ] j# Q\ ¦ 1 x& l Ü h ¼ Ð` l H s ‫כ‬ % 3 .

• s% ! 3 6 x ü < r Û ¼% 7 ç \ ß f ] X © ñ 6 x 0 s xô p Çr Û ¼% ` 7 ¦@ / od ( É Ó' r Û ¼% (inter7 active computer system)s ô Ç . s r Û ¼% \ 7 f " H6 x² £ r ú ç (response time)s ß Â ª ú ô Ç .

• î r%

^ ò ] j H Ó ½ B © j ¸o \ Å © Ò % i .

• rì r½ Ér + Û ¼% 7 r# É Q 6 x 1 xr l \ ( É Ó' ¦ \ 6 x½ ÉÃ + ºe > K ï r .

• % o 5 q Å ¸\ ¦ Ó ¾ © l 0 AK Ä » ô Ç‫כ‬ ¹½ ¨\ ¦ ‫כ‬ 9 ¹ Ð H \ ` O ¦ Êa < ¸ " f{ 9 F c% o (batch processing) % i .

• j B ¸o \ & F h ÷ &# Qz ´ ' × æ á Ô ÐÕ ªÏ ` þ ¦è « ×T z «(process) â ô Ç .

• ë H] j& h

• ú ´ § r É 6 x _ á Ô ÐÕ ªÏ ` þ ¦1 xr l \ à º' l 0 A " K f HÅ Òl % 3 u © _ 6 x| ÓÜ ¾ ¼ Ð H Ò7 ¤ á . s H] ë j\ ¦ K l 0 AK n Û ¼ß ¼\ ¦ Å Òl % 3 u © _ Ð ¸$ © u © Ð ¸6 Ö x 9, ³F & V © o , 6 x & ÷ Hl Z O r É B © j ¸o (virtual memory)s .

– l > & { h 9 Ø ¦§ 4 u © & h u © _ 5 q Å ¸ Ð @ © /& Ü h ¼ ÐÖ ¼ 9 CPU 7 x7 á x/ á ' H

â Ä º ´ § ú ¤ . • f ] ] X H X (direct access)s 0 xô p Çn Û ¼ß ¼_ ¸{ 9 – ¼ Ðá Ç

â «X · äÿ

(job scheduling)õ b

ä »è « × Ü «8 b (multiprogramming)s 0 x p > H d. 1.2.2

1.3

• í Ól ½ > h 6 x( É Ó' _ CPU_ ô Ç> M :ë H\ > h 6 x( É Ó' _ î r%

^ ò ] j Hé í ß Hô Çl 0 xë p ] ß j/ N B % i .

ú Þ³ n z º§ q S­ y ð

• × æá Ô ÐÕ ªA b ç

s ê Í# ø Q> h_ á Ô ÐÕ ªÏ ` þ ¦1 x l r \ B j ¸o \ & F h # _ á Ô ÐÕ ªÏ s þ @ / l I © ÷ & Õ ª1 xî l ß rá É Ô ÐÕ ªÏ ` þ ¦z ´' H~ Ód ½ ` ¦´ ô ú Ç .

• lÕ t_ ü µ Ï 1 \ > h 6 x( É Ó' _ î r%

^ ò ] j ¸Y w O I Û ¼(

, ç B © j ¸o 1 xõ p ° ú r É ¦/ Ll å x` p 0 ¦] j/ N B > ÷ &% 3 . t ë s ß [ tî þ r%

^ ò ] j H CPU_ 6 x´ òÖ ¦ Ð H 6 x_ ¼ o # $

\ í u × æ % i .

• & © h

• : x _ µ ϲ 1 \ ú ¶ " é \ " f

{ ` 9 ¦] H X ½ ÉÃ + º > e ÷ &# Q, l r> > h 6 x( É Ó' \ ‫כ‬ 9 ¹\ ~ O

{ 9 Ð ñ ‫כ‬ 9 ¹K & .

– 9 { Ø ¦§ õ 4 á Ô ÐÕ ªÏ _ þ z ´ ' ` ¦#

î ' Ü ¼ ÐÃ º ' ½ ÉÃ + ºe # Q CPU_ 6 x´ òÖ ¦(CPU utiliza tion)s 7 x £ Ê < • × æá Ô ÐÕ ªA b

\ ç " fî rò %^

] j H 6 x \ ¦@ / # _ &

` ñ ¦ # ô Ç .

1.4

ú Þ³ n z º: g" eS ­ y ð

• × æá Ô Ð[ j" fr Û ¼% (multiprocessor system): ( 7 Ó' É ! QÛ ¼, 9 t! þ , B 3 j ¸o 1 x` p ¦/ NÄ B » HÑ ts ü © á _ Ô Ð[ j" f\ ¦ 6 x Hr Û ¼% 7

– n Û ¼ß ¼\ e H \ $ O © è(job pool)\ " f \ ` O ¦ × þ # j B ¸o Ð` l H ` ‫כ‬ ¦ Û O \ ¼H × ¦a As ô Ç .

– r ´ É ú Ð #

§ î = r > Û ¼% 7 (parallel system) ¢ ¸ Hx 9 ½ Ër + Û ¼% 7 (tightly coupled system)s ô Ç .

– z ´ ' × æ \ s O @ /l H © ÷ &% ` 3 ¦M :B j ¸o \ e H \ × O æ \ ¦ × þ # CPU \ ½ É{ + © H ‫כ‬ r CPU Û É ¼H × ¦a As ô Ç .

• × æá Ô Ð[ j" fr Û ¼% _ 7 & © h

• # Q á Ô ÐÕ ªÏ s þ 1 xr l \ B j ¸o \ Å © Ò Ù ¼ Ð B j ¸o ao ' ¤ 4¸ ú . 1.2.3

K­ 6 ± ´ qS ­ y ð

– %o Ö ¦(throughput) 7 x : N > £ h_ á Ô Ð[ j" f ¦ \ 6 xô Ç ¦ # % o Ö ¦s NC 7 x £ H ‫כ‬ r É m .

S Ä Ø¶ Z £S ­ y ð

• × æá Ô ÐÕ ªA b

` ç ¦] j/ N B H{ 9 F c% o r Û ¼% 7 r É CPU_ 6 x´ òÖ ¦ rZ É }% t i ë ß 6 x ü <( É Ó' \ ß ç © ñ 6 x rj É ]/ N B t 3 w l % i .

– â ]

j& 8 h ¤ £ \ " f × æá Ô Ð[ j" f r Û ¼% ` 7 ¦ 6 x H s ‫כ‬ # Q> h_ é { ß á 9 Ô Ð[ j" fr ¼% Û ` 7 ¦ 6 x H ‫כ‬ Ð $ § 4 . 2


– Â’ ø @$

7 Ă­ ÂŁ x : † ĂŠ) < ‡6 x(fault tolerance)\   Ă„ Âť o . > 5 qĂƒ Ă… Âş' Â?á Â&#x; &Â? H Ă— ÂźJ ?# Q_ Ăƒ Âş\  q Y V # ÂŒ" fq Ă› Âź\ ÂŚ> 5 q] Ă… j/ N½ B Ă‰Ăƒ + Âşe Â? ” H0 x§ p 4 ÂŚĂ„ ` Âş Ă´ Ç$

0 í x$ p (graceful degradation) Ç ô .

• 9 |ĂŠ –r Ă&#x; Ă› Âź% ›• 7 ¸ Ă— ĂŚĂĄ Ԗ Ă?[ j" fr Ă› Âź% ›þ 7 Ă° Ă? t ø Ă?@ – /g A+ A~ Ăž Ă“d ½ Ăľ ” q @ /g A+ A~ Ăž Ă“d ½ Ăœ ” Ÿ– Ă?ĂŹ rĂ€ Ă“½ Ă‰Ăƒ + Âş ” e . – q@ /g A+ A~ Ăž Ă“d ½ : ” _ ( É ÂŽ Ă“' Â? H@ /l ÂœI Š Ă?e – “ ” ÂŚ Qt Â? H ¸$ Ă–

Ă­ oá &# Q6 x6 ÂŁ xĂĄ  Ă”– Ă?Ă• ÂŞ ›` Ăž Ă? ÂŚĂƒ Âş' Â?Ă´ Â&#x; Ç . @ /l ÂœI Š _ ( É ÂŽ Ă“' Â? H Q  t ¸$ Ă–

Ă­ o ( É ÂŽ Ă“' \ ÂŚ y ™r ÂŒ Ă´ Ç . ĂŤ –€ Ă&#x; • Â? ( _ É ÂŽ Ă“' z ´J € @ /l ÂœI Š _ ( É ÂŽ Ă“'  ¸$ Ă–

Ă­ oá &# Qz ´J Ă´ Ç" f! Q\ ÂŚ@ /Â’ Ă´ Ç . – @ /g A+ A~ Ăž Ă“d ½ : y ” •( ÂŒ É ÂŽ Ă“' Â? H— ¸¿ Âş6 x6 ÂŁ xĂĄ  Ă”– Ă?Ă• ÂŞ ›` Ăž Ă? ÂŚĂƒ ÂşÂ? ' Â&#x; Â? H1 xr l \  Â? r( É É ÂŽ Ă“' _ ÂœI Š ÂŚy \ ™r ÂŒ Ă´ Ç .

• Ă— ĂŚĂĄ Ԗ Ă?[ j" fr Ă› Âź% ›_ 7 ĂŹ rĂ€ Ă“ – @ /g A+ A Ăž Ă— ĂŚ% ƒo (SMP, Symmetric MultiProcessing):  Âœ´ Š §s Ăş 6 x  Â“ ÂŚe Â? ” H~ Ă“d ½ Ăœ ” Âź – Ă?s ~ Ă“d ½  Â” \" fy •å ÂŒ Ԗ Ă?[ j" fÂ? H@ /1 x p 9, °  ú “ rĂƒ É ºï r_ { 9 ` ÂŚĂ´ Ç . – q @ /g A+ A Ăž Ă— ĂŚ% ƒo (asymmetric multiprocessing): s ~ Ă“d ½ \ ”  " fy •å ÂŒ Ԗ Ă?[ j" fÂ? H" f– Ă? Â? r \ É Ă O Âş\ ÂŚ ĂŹ r{ ™ô ÂŒ Ç . ˜ Ă?: x ĂĄ Â&#x; Ԗ Ă?[ j" f ç –\ Ă&#x;  Ă… Ă’/7 x› ĂĄ a> ' (master/slave relationship)\ ÂŚ+ A$ Ăž

Ă­ 9, Ă… Ă’ĂĄ Ԗ Ă?[ j" fÂ? H •\ ÂŒ _ O Ă› ÂźH Ă— ÂŚ` ÂŚ &

Ăą # ÂŒ7 x5 ĂĄ qĂĄ Ă… Ԗ Ă?[ j" f\   Â•\ ÂŒ ` O Œ½ É{ + ÂœĂ´ Š Ç .

1.5

1.7

• ™ k

ĂŤ Ă‘k 5 â ÂŤ` g(real-time system)“ rĂĄ É Ԗ Ă?[ j" f Â• ÂŒ xs l 1 X <s ' â ĂŹ2 §\ ÂŁ  % 3 Ă´ Â? Çr ç –] Ă&#x; j€ •s Â? e ` ” ÂŚ : M 6 xÂ?  a ) . • zr ´ ç –r Ă&#x; Ă› Âź% ›_ 7 ĂŽ r%

^ ò ‰] jÂ? H˜ Ă?: x: Â&#x; ¤Ăƒ ÂŁ Âş3 q& l 6 h x  s .

Ă˜Â? Z Ă„ mS ˜ ­ ÂŽy Ă°

• s r Ă› Âź% ›“ 7 rW É 1Ă Ă”0 >Ă&#x; Âź\ ÂŚ: xK Â&#x; : xÂ’ Â&#x; # ÂŒĂ• ÂŞl 0 x p ÂŚ] ` j/ NĂ´ B Ç .

• z ´r ç –þ Ă&#x; Ă˜ Ă” Â? H “ ‍כ‏ r É Â? r> É hÂĽ s Æ . • z ´r ç –r Ă&#x; Ă› Âź% ›_ 7 ĂŹ rĂ€ Ă“

• ĂŹĂ­ r –r Ă&#x; Ă› Âź% 7 ›“ r É Ă— ĂŚĂĄ Ԗ Ă?[ j" fr Ă› Âź% ›þ 7 Ă° Ă? t ø – Ă?# ÂŒ QĂĄ Ԗ Ă?[ j" f\ ÂŚ 6 x  t ĂŤ –x Ă&#x; 9 ½ Ă‹+ + AI Ăž m “ Ϊ è ½ Ă‹(loosely coupled) + + AI Ăž s 9, ( É ÂŽ Ă“' ! QĂ› Âź 9 t! Ăž ` 3 ÂŚ/ NĂ„ B Âť t Ăş § ¡Â“ ÂŚ, W 1Ă Ă”0 >Ă&#x; Âź\ ÂŚs 6 x  # ÂŒ: x Â&#x; Â’ Ă´ Ç .

– 7 Â…~ ø ĂŠ 5 ™

k ĂŤ Ă‘ k 5 â ÂŤ` g(hard real-time system): Ă— Ì‍כ‏ šô Ǡ•\ ÂŒ s O &

K Ăą ” r ç –? Ă&#x; /\  ¢ aÂŤ Ă‘ d` † H ÂŚÂ˜ Ă? ÂœĂ´ Š Ç . s \ ÂŚ0 AK r Ă› Âź% 7 ›? /\  e Â? ” H ¸ÂŽ — Ht ƒ “ r% É 3 Ă´ Â? Çr ç –] Ă&#x; jĂ´ Ç` ÂŚ ” . – Âľ ” ĂŹ ÂŞĂ› S Ă– ™

k ĂŤ Ă‘ k 5 â ÂŤ` g(soft real-time system): Ă— Ì‍כ‏ šô Ç z ´r ç –  Ă&#x; •\ ÂŒ “ O r É Â? r  Ă‰ •\ ÂŒ ˜ O Ă? Ă„ º‚ Ă­ H0 A\ ÂŚ t “ ÂŚz ´' Â?á Â&#x; &t ĂŤ –% Ă&#x; 3 Â? & >

K Ăą ” r ç –? Ă&#x; /\  ¢ aÂŤ Ă‘H d` † ÂŚÂ˜ Ă? Âœ Š t Â? H §Â? Ăş ¡ H .

• W 1Ă Ă”0 >Ă&#x; ÂźÂ? H 6 x  Â? HĂĄ Ԗ Ă?ž Ă?c t, } + Âœ_ Š Ă&#x; Âźl , „ 5 x Ă… B ^ ‰\  Ï rĂ€ Ă“½ Ă‰Ăƒ + Âşe ” . } Âœ_ Š Ă&#x; Âźl \  " f H LAN (Local Area Network), MAN (Metropolitan Â? Area Network), WAN (Wide Area Network)Ăœ Ÿ– Ă?ĂŹ r Ă€ Ă“Ă´ Ç .

1.8 1.5.1

z Ăź > T ÂŽ Ă…² š ÂŽ-" e! aS ­ ÂŽy Ă°

Ă…6 Âœ “ ĂžS Ă“ ­ ÂŽy Ă°

• ĂŤ ĂŠ@ /6 xr  Ă› Âź% ›(handlheld system): W 7 1Ă Ă”0 >Ă&#x; Âź: xÂ’ Â&#x; 0 s xĂ´ p Ç PDA (Personal Digital Assistant) ¢ ¸Â? H ĂŤ@ ĂŠ /„ oĂź <°  Â“ Ăş rr É Ă› Âź% › 7

• " f! Qr Ă› Âź% 7 ›“ r ÉĂ&#x; Âź> > Ă­ –" Ă&#x; f! Qr Ă› Âź% 7 ›(computeserver system)Ăľ

{ 9 " f! Q(file-server system)Ăœ Âź – Ă?ĂŹ rĂ€ Ă“½ Ă‰Ăƒ + Âşe ” .

• ĂŠ ĂŤ@ /6 xr  Ă› Âź% ›_ 7 : ¤f ÂŁ

ç – h &“ rB É j— ¸o – ĂĄ Ԗ Ă?j [Ă› Âź_ $

0 Ă­ xs p { 9 ĂŹ Ă? PC\ ø  q K Âœ@ Š /& h Ÿ– Ăœ Ă?b # Â? Q ” . s “ ‍כ‏ rĂŠ É ĂŤĂŽ t6 ‰ xr  Ă› Âź% 7 ›_ Ă&#x; Âź Ăź l <„ § 4 6 xĂŤ  H] jM :ĂŤ Hs . –  Â•Â“ ÂŒ r É o€

– > Ă­ –" Ă&#x; f! Q rĂ› Âź% ›: 9 7 t Ăž s ƒ Ă Ă”Ăœ Ÿ– Ă?Ă‚ Ă’' ‍כ‏ š A` Ăľ ' ÂŚ~ ĂŽ Ăƒ ÂŞ Ă• ` ‍כ‏ ÂŚ@ /Â’ Ăƒ ÂşÂ? ' Â&#x;K ĂŻ r 6 §\ ÂŁ  9 t Ăž s ƒ Ă Ă”\  > Ăľ \ · &[ t 9ĂŻ r . –

{ 9 " f! Q rĂ› Âź% ›: 9 7 t Ăž s ƒ Ă Ă”\  >

{ 9 r Ă› Âź% 7 ›“ ' ` Â…s Ă› Âź\ ÂŚ] j/ N B # ÂŒĂ… Ă’9, 9 t Ăž s Ă Âƒ Ă”Â? Hs “ ' ` Â…s Ă› Âź\ ÂŚ: xK Â&#x;

{ ` 9 ÂŚĂ’ t$ q

, Ă­ t q ĂŒ Â’ , •] ÂŒ j1 x` p Œ½ Ă‰Ăƒ + Âşe ” .

1.6

ÇS m á ‡ mS ˜ ­ ÂŽy Ă°

• ĂŤ ĂŠ@ /6 xr  Ă› Âź% ›“ 7 rĂž É jH \  bluetoothĂź <°  Â“ Ăş rà É º‚ xÂ’ Â&#x; : l Ă• t` Ăź ÂŚs 6 x  # Œ“ ' ] Ă… X H` ÂŚ] j/ NĂ´ B Ç .

Ăš É m‰ mS ˜ ­ ÂŽy Ă°

1.9

ĂˆÂ› e ĂĽ ½Ă‹ ĂŠ Sò ĂżĂ&#x; & Ă‹ O

• Ă­ œ‚ Ă“l ½ ( É ÂŽ Ă“h A¨ Š 8

“ â rĂ— É ̀ Âœ| Š Ă— 9 ĂŚ( É ÂŽ Ă“h A¨ Š 8

s â 3 % . W 1Ă Ă”0 >Ă&#x; Âźl Ă• t, : Ăź ¤y ÂŁ Ă„ ‚ : xÂ’ Â&#x; l Ă• t_ Ăź Âľ Ă?² 1 ˜ Ăş Ă?ĂŹ – rĂ­ –( Ă&#x; É ÂŽ Ă“h A(distributed computing) ¨ Š 8

s â 1 x p Âœ Š  % i . Ăž jH \  Â? H à º‚ : xÂ’ Â&#x; l Ă• tĂľ Ăź ™ è+ A, ĂŠ Ăž ĂŤ /6 @ x(  Ă‰ ÂŽ Ă“' Ă— ÂźJ ?# Ql Ă• t_ Ăź Âľ Ă?² 1 ˜– Ăş Ă?s 1 x( l É ÂŽ Ă“ A(mobile computing) ¨ h Š 8

s â 1 x p Âœ Š % i .

• ™

Ă­ 5 k â ÂŤ` g(clustered system)“ r# É

§ ĂŽ =r > Ă› Âź% 7 ›, ĂŹ r –r Ă&#x; Ă­ Ă› Âź% 7 ›þ Ă° Ă? t ø – Ă? Ă— ĂŚ CPU\ ÂŚ 6 x  t ĂŤ – Ă&#x; # ÂŒ Q> h_ r Ă› Âź% 7 ›` ÂŚx 9 ½ Ă‹ + # ÂŒ 6 xĂ´  Ă‡ Â? H8 ¤ ÂŁ \ €  " f Ă˜ Ă” . • | 9 ĂŠ – Ă&#x; o(clustering)_ 3 q& l “ h rZ É }“ r 6 É x$ Â

s Ă­ . 3


• ' Å_ µ ϲ 1 ú Ð ³F & _ ( É Óh A¨ 8

` â ¦Û R /l ì Í ø É ( Óh As ¦¸ ô Ç . • j þH \ Hz ´r ç î ß r%

^ ò ] j\ ¦y 7 xl á > ü < u © \ ? / © # 6 x ¦e . s ( É Óh A¨ 8

` â ¦ Z e n × ¼( É Óh A(embedded computing) ¨ 8

s â Ç ô . s ¨ 8

\ â 6 x÷ & Hî r%

^ ò ] j H B © j ¸o ü <° ú r É ¦/ L å l0 x p rj É ]/ N B t · § ú H .

4


c °2003, sangjin@kut.ac.kr

* <* Ö = å i< K: ~ ¡q ç { ¡È 02 A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

Part I. Overview

2.1

!

<Õ ªa > 2.1> Ë u © I © _ s ^ ¦ (2) ' X à O Ô_ 7 xÀ á Óì r$ 3 (3) : ¤& £

ñ ' X à O ÔÃ º ' ( ' X à O Ô7 ' ¸ Ö 6 x) (4) Ð a ' a ) I © \ ¦ ¶ " é 4 © ¤) ¦ " ð 3 r ` O \ ¦F > h

å È e ½' [S ­ y ð º

2

å È e ½' [S ­ y 8 ð ý ÞX Ò l c

• & @ ³ /_ # 6 3 x( É Ó' H/ NÄ B » aÅ ) Òl % 3 u © \ ] X H ` ¦] j/ N B H/ N: B x! QÛ ¼\ _ K a CPUü ) < # Q> h_ u © ] j# Ql (device controller) н ¨$

í &# ÷ Qe .

2.2

I/O º

• © u ] j# Ql \ s _ © u © ] j# Ql \ | cà ¨ ºe .

– © u ] j# Ql : y u © (n Û ¼ß ¼, ¸n ¸ u © , q n ¸n Û ¼e ¦Y Us )\ ¦ ao ' ô Ç .

• © u ] j# Ql Ht % ! i Q( ü <Y

> > h_ : ¤Ã £ º3 q& l Y h U Û t ¼' \ ¦Ä »t ô Ç .

– © u ] j# Ql ü < CPU H #

î ' Ü ¼ Ð Ã º' ÷ &Ù ¼ Ðs [ t þ rÅ É Òl % 3 u © ] X H\ @ /K

Ô â tô q Ç . Å Òl % 3 u © ] j# Ql Hs [ t_ þ ] X H` ¦1 x l l oK ï r .

• © u ] j# Ql H aÅ ) Ò u © ü <t % ! i Q( ç ß X \ <s ' s 1 x` l ¦Õ e þ . s ! Q( _ ß ¼l HÅ Ò u © \ Ø Ô .

• (É Ó' % 6 §½ £ ¨1 x÷ l & íl \ z ´' | cá ¨ Ô ÐÕ ª s þ Ï 9 ‫כ‬ ¹ . s Ô á ÐÕ ªÏ ` þ ¦É Ùç Ãâ «ç é hè 5 « × Ü «^ 9 g(bootstrap program)s ô Ç . s á Ô ÐÕ ªÏ þ r É Ð: x( É Ó' × ¼J ?# Q? /\ ROM(Read-Only Memory)\ $ ÷ © &# Qe .

2.2.1 I/O ß Ã Å' [. ɲ n • I/O` ¦r l 0 AK CPU H u © ] j# Ql ? /\ e HY Ut Û ¼' \ & X h ]ô ÇX <s ' \ ¦& F h ô Ç . ] j# Q l Hs ` ‫כ‬ ¦ # # Q ' " 1 x` l ¦2 [½ Ét + &

ñ Ç ô . { 9 Ø ¦§ _ 4 à º ' s = Q å Ð: x ' X à O Ô\ ¦ xK : CPU\ Õ ª z ´` ¦: x Ðô Ç .

–  Òà ÔÛ ¼à Ôê á Á Ô ÐÕ ªÏ þ r É ¸ H × ¼J ?# Q\ ¦ íl o ¦ î r%

^ ò ] j & V ` , ¦ Å Òl % 3 u © \ & F h ô ÇÊ ê\ & V ` , ¦z ´ ' ô Ç .

• { Ø 9 ¦§ _ 4 ¿ º t + AI þ – l 1l x d { 9 Ø ¦§ (synchronous I/O): { 4 Ø 9 ¦§ s 4 r ÷ & ‫כ‬ ¹' Aô õ Çá Ô Ð[ j" f H{ Ø 9 ¦§ s 4 ¢ a Ñ| « cM ¨ : t l ; 2 . – q 1 xl l d { Ø 9 ¦§ (asynchronous I/O): ‫כ‬ 4 ¹' Aô õ Ç Ô á Ð[ j" f H{ Ø 9 ¦§ s 4 ¢ a« Ñ| cM ¨ : t l t o · § ú ¦> 5 q Å r É \ ` O ¦Ã º' ô Ç .

• (É Ó' \ " f | _ µ ÏÒ 1 t q rê É >ç ÃÝ

ç Ã(interrupt) ñ¢ ¸ Hç é h(trap)` 5 ¦ x :K î r%

^ ò ] j\ : x Ð a ) . à Ôê Á r É r´ É ú ÐV \ü @(exception) ô Ç . – à ÔX à O Ô H × ¼J ?# Q r Û ¼% 7 _ Ã º' â ì 2 §` £ ¦ Ë ¨l 0 AK µ ÏÒ 1 t q H s ‫כ‬ ¦, à Ôê Á r É èá Ôà ÔJ ?# Q µ ÏÒ 1 t q H à ÔX à O Ôs .

• { Ø 9 ¦§ _ 4 ¢ a« Ñ\ ¦l o H~ ÓZ ½ O

– × ¼J ?# Q H CPU\ : ¤& £

ñ ñ\ ¦ Ð? /# Q à ÔX à O Ô_ µ ÏÒ 1 t` q ¦· ; ú 2 .

– : ¤Ã £ ºô Ç"

§ î

# î Q 6 x – @ /l À Òá Ô 6 x

– èá Ôà ÔJ ?# Q H k â «` g ¡ õ· (system call)s H: ¤& £

ñ í ` ß ¦z ´' # {  9 Ò Ðµ ÏÒ 1 tr q v ¸À Ó(0 ¾ ºl ,  Ò& ½ h Ëô + ÇÅ Òl % 3 © u ] H X ) M :ë H\ µ Ï& 1 Ü h ¼ е ÏÒ 1 t q a ) .

• ß ë CPU { 9 Ø ¦§ ¢ 4 a« Ñ\ ¦ Ó ½ l © o ô Ç ô \ Ç{ Ø 9 ¦§ ë 4 0 ß x p . s ‫כ‬ r É | Ðf à t · § ú . # Q{ Ø 9 ¦§ ` 4 ¦#

î ' Ü ¼ Ðà º ' ½ Éà + ºe ¦, { 9 ¦§ Ø õ 4 > í ` ß ¦#

' î ½ ÉÃ + ºe # Q r Û ¼% 7 _ ´ òÖ ¦ ¦Z ` }{ Ã 9 ºe .

– ' X à O Ô µ ÏÒ 1 t÷ q & CPU H ³F & Ã º' × æ \ ` O ¦3 "Æ Ò ¦, î r%

^ ò ] j? /\ e H: ¤& £

ñ ï× ¼\ ¦z ´' ô Ç . sz ´' s = Q å r " 3 r ð \ ` O ¦F > hô Ç .

• î% r

^ ò ] j H# Q> h_ { Ø 9 ¦§ ‫כ‬ 4 ¹' A` õ ¦ ao ' l AK 0 Õ ªa > 2.1õ Ë ° ú r É u © I © _ s ^ ¦(device status table)` ¦Ä »t ô Ç . ¢ ¸ô Çy u © @ /l ©\ Ç ¦Ä »t ô Ç .

– l r& : h ' X à O Ô1 x l ¶ " éo (1) ³F & \ ` O ¦3 "Æ Ò ¦, ³F & I © \ ¦ Ð a ' 1


DMA º

2.2.2

• Ò Ål % 3 u © ü < CPU_ 5 q Å ¸ s \ ¦F G4 ¤ l 0 A Å K Òl % 3 u © ü < CPU s \ H r (cache) ¦ H ¦5 qB Å j ¸o ! Q( \ ¦ 6 xô Ç .

• 5 q Å ¸ Ö ¼ ;{ 2 9 Ø ¦§ 4 u © H _ { 9 § ` 4 ¦~ Î Ã r É Ê ê\ 6 §{ £ 9 § 4 t CPU H rÄ É »6 xô Ç \ ` O ¦ Éà + ½ ºe . Õ ª Q ì Í@ ø / Ð{ 9 Ø ¦§ 4 u © _ 5 q Å ¸ Ø Ô à ÔX à O Ô -Á º > µ ÏÒ 1 t q # CPU rÄ É »6 xô Ç \ ` O ¦½ Ér + ç s ß & h .

2.3.2

• l n Û ¼ß ¼ He ¦A ' (platter) ¦ H# Q> h " _ ¶+ é Aó þ ÍÜ ø ¼ н ¨$

÷ í &# Qe Ü ¼9, s e ¦A ' H " r ¶+ é A þ ¸ _ ª à ÔÏ (track)Ü þ ¼ Ð * '# Q . à Ô þ Ï r É r # Q> h_ ! o' l Ð * '# Q .

• s ` ‫כ‬ ¦ K l 0 AK 6 x H l Z s O DMA (Direct Memory Access)s . DMA ~ Ód ½ \ " f © u ] j# Ql HX <s ' ^ ¦2 ¤` ¦ CPU_ a# ' \ s O f Å X ] Òl % 3 u © Ðs 1 x l 9, ' X à O Ô H s à Ô 0 ß é A ^ ¦2 ¤é 0 ß A е ÏÒ 1 tô q Ç .

• ú ° r 0 É Au \ e H à ÔÏ _ þ ¸6 §` £ ¦ z ´; 2 8(cylinder) ô Ç . • nÛ ¼ß ¼_ 5 q Å ¸ Hn Û ¼ß ¼\ " f( É Ó' ÐX <s ' \ ¦ 5 x Å Hq Ö ¦ 5 xÒ Å ¦(transfer rate)õ e _ ] X Hr ç (random-access time)s ß ¦ H0 Au

r ñ & ç (positioning time)\ ß _ K &

ñ a ) .

$ [X s ê º

2.3

• (É Ó' á Ô ÐÕ ªÏ s þ ´ ' z & ÷l 0 AK " f HÅ Òl % 3 © u \ & F h ÷ &# Q ô Ç . Å Òl % 3 u © \ ¦ r´ É ú Ð _ e ] H X B j ¸o (random-access memory) ô Ç .

• e _ ] X Hr ç _ ß ½ ¨$

‫כ‬ í ¹ è

• CPU f ] ] X H X ½ ÉÃ + ºe Hl % 3 u © HÅ Òl % 3 u © ÷ rs .

– Ã Ò Ð or ç (seek time): n ß Û ¼ß ¼ ` ¦" ¶ é H ´ z ; 2 80 Au Ð` l HX < o Hr ç ß

• Å Òl % 3 u © H Ð: x1 x& l e h _ ] X HB j ¸o (dynamic RAM) ¦ Hì Í ø ¸^ B j ¸o \ ¦ 6 xô Ç .

– r t (rotation latency): n Û ¼ß ¼ r # ¶ " é H! o' l n Û ¼ß ¼ 0 Au \ Z ~s HX < o Hr ç ß

• Å Òl % 3 u © _ ô Ç ½ ¨$

é í 0 ß A\ ¦ 0 >× ¼(word) 9, y 0 >× ¼ H1 q: l ¤ô £ ÇÅ Ò è\ ¦ .

• Ð : xe ¦A ' H· ª û r É Ð ñ} Ü ¼ ÐW # = e t ë K ß ¼ × l ³ ð ` ¦ H < r © ~ ´Ã ºe Ü ¼9, s

Ä â º\ H4 ¤½ ¨½ Éà + º\ O .

• s & © Ü h ¼ Ð H ¸ HÔ á ÐÕ ªÏ õ þ X <s ' \ ¦Å Òl % 3 u © \ %

½ ò ¨& Ü h ¼ Ð$ © ¦z ·t ë ß 6 §¿ £ º t s Ä »M :ë H\ 0 x p t ú § · .

• nÛ ¼ß ¼× ¼ s Ú Ô H I/O ! QÛ ¼\ ¦: xK ( É Ó' \ ÷ &# Qe Ü ¼9, ³F & V o , 6 x÷ & H~ Ód ½ r É 6 § £ ° õ ú .

– s Ä » 1. Å Òl % 3 u © _ ¼ ßl – s Ä » 2. Å Òl % 3 u © _ 6 fµ Ï$ 1

í

– EIDE (Enhanced Integrated Drive Electronics)

s ë H] j\ ¦K l 0 AK Ð ¸l % 3 u © \ ¦ 6 x Ç ô . Ð ¸l % 3 u © H´ § ú r É _ ª X <s ' \ ¦%

½ ò ¨ Ð a½ ' ÉÃ + ºe # Q ô Ç .

– ATA (Advanced Technology Attachment) – SCSI (Small Computer-Systems Interface) • < Xs ' _ §¨ 8 r: É ¤Ã £ ºô Ç] j# Ql \ ¦: xK s À Ò# Q . ( É Ó' = Q\ å H ñÛ ¼à Ô] j# Ql e Ü ¼ 9, n Û ¼ß ¼ ^ ? /\ Hn Û ¼ß ¼] j# Ql e .

• V © o , 6 x H Ð ¸l % 3 u © H l n Û ¼ ß ¼(magnetic disk)s . 2.3.1

M O ­ ±

¤M W ÄX ì sV ê

• nÛ ¼ß ¼] j# Ql H ^ & Ü h ¼ ÐH r \ ¦ t ¦e .

• Memory-mapped I/O: Å Òl % 3 u © _ { 9  ÒÅ Ò è 9 { Ø ¦§ ` 4 ¦0 AK \ V ÷ &# Qe Ü ¼9, s Å Ò è\ " f{ 9 æ ¼ u © Y Ut Û ¼' РÒ' X <s ' \ ¦{ 9 æ ¼ H õ a ) . s ~ ÓZ ½ O r É ¦5 q6 Å x² £ r ú ç ß ¦‫כ‬ ` ¹½ ¨ H u © \ h &½ Ë + .

• z] ´ jX <s ' Hn Û ¼ß ¼] j# Ql \ _ K n Û ¼ß ¼\ fH " r Ð` t ¦, ñÛ ¼à Ô] j# Ql HH r \ e HX <s ' \ ¦Å Òl % 3 u © Ð` | .

• s ~ ÓZ ½ O rf É § = > íà Ô¢ ¸ H#

§ î = > íà Ô\ a ) © u ü <{ Ø 9 ¦§ ½ 4 É: + M ¸ 6 x a ) . CPU H I/O íà Ô\ ¦ : xK s ü <° ú r É u © ü <X <s ' \ ¦ §¨ ô 8 Ç . X <s ' §¨ ~ 8 Ód ½ r É 6 §õ £ ° ú r¿ É º t ~ Ód ½ s e .

2.4

[X $ sX ê sV ê 8 ý4 « º

• $ © u © _ > 8 x½ £ ¨ ¸\ 0 A\ 0 Au ½ ÉÃ + º2 ¤5 q Å ¸ H Ø Ôt ë ß ¦ s . ¢ ¸ô Ç0 A\ 0 Au ½ ÉÃ + º2 ¤6 f Ï$ 1 µ

s í .

– á Ô ÐÕ ªÏ þ a I/O(programmed I/O): CPU > ) 5 q Å u © _ I © \ ¦ (polling) H~ Ód ½

• º ¿$ © u © _ 5 q Å ¸ s H× æç \ ß rH É r \ ¦ u O [ # F G4 ¤½ Éà + ºe .

– ' X à O Ôl ì Í: ø 6 §X £ <s ' \ ¦% o ½ Éï + rq ÷ & u © ] j# Ql H ' X à O Ô\ ¦: xK Õ ª z ´` ¦ CPU\ · o ú H~ Ód ½

• rÛ ¼% ` 7 ¦½ ¨$

½ í ÉM + :$ © u © _ > 8 x½ £ ¨ ¸\ ¦ç H Ae þ + > ¸ ½ ú ¨$

í $ § ô 4 Ç \ Z } r$ É

0 í x` p ¦ ` 3 % ¦Ã ºe . 2


• ìí r ¨ ß 8

\ â " f H# Q

{ 9 _ 4 ¤ rs : # Q( Ó' É \ ì rí ÷ ß &# Qe ` ¦Ã ºe . " f _ 4 ¤ r\ : @ /ô ÇÌ t q s s À Ò# Qt r4 É ¤ r : ¸ t q Ì ÷ & ¸2 ¤ # ô Ç .

2.5

• × æá Ô ÐÕ ªA b

¨ ç 8

\ â " f H _ á Ô Ð[ jÛ ¼_ ¸À Ó rá É Ô Ð[ jÛ ¼\ > ¸%

ò Ó` ¾ ¦× ¦Ã ºe .

• " fî r%

^ ò ] j Hs ¸À Ó rá É Ô Ð[ jÛ ¼ % \

ò Ó` ¾ ¦Å Òt · § ú ¸2 ¤K ô Ç .

• Ð : x ¸À Ó µ ÏÒ 1 t q × ¼J ?# Q Hà Ôê ` Á ¦µ ÏÒ 1 t q 9, î r%

^ ò ] j Hà Ôê ` Á ¦µ ÏÒ 1 tr q á Ô Ð[ jÛ ¼\ ¦ ] © y j Ð7 x« á Ñr v ¦& ] h ô X Ç ¸À ÓB jr t \ ¦Ø ¦§ 4 # ï r .

<Õ ªa > 2.2> $ Ë © u © _ > 8 x½ £ ¨ ¸ 2.4.1

2.5.1

ú T Þ{ n ¢© ÞX Ò l c

• # Q ¸À Ó Ð Ò' á Ô Ð[ jÛ ¼\ ¦ Ð ñ l 0 AK Ð x : 6 §õ £ ° ú r¿ É º t 1 x l ¸× ¼\ ¦] j/ Nô B Ç . ³F & ¸× ¼\ ¦ ? /l 0 AK × ¼J ?# Q\ s ` ‫כ‬ ¦ ? / H ¸× ¼q à Ô(mode bit) e .

> 0Ë Å S

• CPU X <s ' \ ¦ 9 ‫כ‬ ¹ $ H r \ Õ ªX <s ' e Ht ô Ç . ë ß e Ü ¼ H r \ " f Ð 6 x ¦\ Ü O ¼ Å Òl % 3 u © \ e HX <s ' ¦ \ 6 x t ë s ß X <s ' _ 4 ¤ r` : ¦H r \ Ð aô ' Ç . s ‫כ‬ rs É X <s ' \ ¦/ I¢ B ¸ r 6 x½ É + Ò X S ¦s Z }l M :ë Hs .

– 6 x ¸× ¼: 6 x á Ô Ð[ jÛ ¼ Hs ¸× ¼\ fà " º' ÷ & à ÔX à O Ô à Ôê s Á µ ÏÒ 1 t q ¸m ' ¸× ¼ Ð ¨ 8 a ) . – ¸ m ' ¸× ¼(monitor mode): r´ É ú Ðà »( s $ ¸× ¼(supervisor mode), r Û ¼% 7 ¸× ¼, ¤ £ : ¶ Ý ¸× ¼(privileged mode) ô Ç .

• î "§

# î QH r % 3 ! & ¼ h Ü Ð × ¼J ?# Q\ ¦s 6 x # ½ ¨ ³ & aH ) r ¸e . s ‫כ‬ rî É r%

^ ò ] j a# ' t 3 w l Ù ¼ Ðs õ 3 q\ l " f H À Òt · § ú H .

• ë] H j\ ¦{ 9 Ü ¼~ ´ èt e H"

§ î

# î Q H: ¤¶ £ Ý"

§ î

î ¼ Ü Ðì rÀ Ó ¦s "

§ î

î r É ¸m ' ¸× ¼\ " fë Ã ß º ÷ ' & ¸2 ¤ # á Ô Ð[ jÛ ¼\ ¦ Ð ñô Ç .

• H r _ ß ¼l H] jô Ç÷ &# Qe Ü ¼Ù ¼ Ðs ` ‫כ‬ ¦¸ ú a ' o # r Û ¼% _ 7 $

0 í x` p ¦Z }{ Ã 9 ºe . H r _ ß ¼l ü < §^ &

Õ ñ (replacement policy)` þ ¦¸ ú × þ " ¶ é HX <s ' Hr \ e ` ¦S Ò X ¦` ¦ 80\ " f 99% t Z }{ à 9 ºe .

• 6 x Hî r%

^ ò ] jë s ß Ã º' ½ Éà + ºe H: ¤¶ £ Ý"

î

_ î § Ã º' ` ¦ Â Ò Ì Ã # î r%

^ ò ] jü < © ñ 6 xô Ç . s ‫כ‬ ¹' A` õ ¦ Ð: xr Û ¼% 7 ñØ ¦s 9, ¼J × ?# Q Hs r Û ¼% 7 ñØ ¦` ¦ èá Ôà ÔJ ?# Q ' à O X Ô Ðç Å ß Òô Ç .

• Å Òl % 3 u © H CPUü < Ð ¸l % 3 u © s \ e H H r Ð 6 x| cà ¨ ºe . 2.4.2

© ú# a| º Æ

2.5.2 ø Éû m ÚI s Ä| í º Æ

ø Ç må ËV ¾ Ë R

• 6 x Ô ¦Z & O h { Ø 9 ¦§ ‫כ‬ 4 ¹' A` õ ¦½ Éà + º\ O ¸2 ¤ ¸ H{ Ø 9 ¦§ " 4

§ î

î r: É ¤ £ ¶" Ý

§ î

Ü î ¼ Ðì rÀ Óô Ç .

• $ © u © _ > 8 x½ £ ¨ ¸\ ¦ 6 x ° ú rX É <s ' # QY U 6 \\ rF > ½ ɺ + Ãe .

• 6 x HÕ ªa > 2.3õ Ë ° s ú r Û ¼% 7 ñØ ¦` ¦s 6 x { # Ø 9 ¦§ " 4

§ î

` î ¦z ´' ô Ç .

• ô Ç \ _ á Ô Ð[ jÛ ¼ë 1 ß x l s ‫כ‬ r É Á ºë H] j ÷ &t · § ú H . Õ ª Q # Qá Ô Ð[ jÛ ¼ ° ú rX É <s ' \ ¦] H X ¦ ¸ Há Ô Ð[ jÛ ¼ þ j _ X <s ' \ ¦% ` 3 ¦Ã ºe ¸2 ¤K ô Ç . s ë H] j H × æá Ô Ð[ j" fr Û ¼% \ 7 " f 8¹ ¤d ¡ y .

2.5.3

¤M W ÄX ì sV ê | º Æ

• î% r

^ ò ] j 6 x HÅ Òl % 3 u © %

% ò i r É 6 x Ô á ÐÕ ªÏ Ü þ ¼ РÒ' Ð ñ÷ &# Q 9, 6 x á Ô ÐÕ ªÏ s þ 6 x HÅ Òl % 3 u © %

% ò i r É r É x 6 á Ô ÐÕ ªÏ Ü þ ¼ РÒ' Ð ñ÷ &# Q ô Ç .

– × æá Ô Ð[ j" fr Û ¼% 7 \ " f# QH r \ ° ú rX É <s ' 1 xr l \ rF > ½ ÉM + : _ H r \ " fÕ ªú ‫כ‬ °s

÷ â & rH É r ¸

s â Í% ø ì

÷ ò &# Q ô Ç . s ü <ú ° rë É H] j\ ¦H r { 9 a$ '

(cache coherency) ë í H] j ô Ç . s ë H] j H Ð: x × ¼J ?# Që H] js .

• Ò Ål % 3 u © \ ¦ Ð ñ l 0 AK " f H: ¤& £

á ñ Ô ÐÕ ªÏ þ ] s H X ½ Éà + ºe HÅ Òl % 3 u © %

% ò ` i ¦ &

½ ñ ÉÃ + º # e Q ô Ç . Ð: xl ï rY Ut Û ¼' (base register)ü < Ç> ô Y Ut Û ¼' (limit register)\ ¦s 6 x # s %

% ò i 3


<Õ ªa > 2.3> r Ë Û ¼% 7 ñ Ø ¦` ¦s 6 xô Ç{ Ø 9 ¦§ à 4 º ' õ &

ñ ` ¦ p · . CPU HÅ Òl % 3 u © ] X H` ¦) 6 x l \ s ¿ ºY Ut Û ¼' \ ¦s 6 x # ) 6 x# Â Ò\ ¦ &

ô ñ Ç . 2.5.4

ÞW n ú s% ê iP X sV ê | º Æ

• î% r

^ ò ] j Ó ½ ] © j# Q ¶` Ý ¦S X н Éà + ºe ¸2 ¤K ô Ç . 6 x á Ô ÐÕ ªÏ s þ Á ºô ÇÀ Òá Ô\ 4 R] j # Q¶ Ý` ¦ r î r%

^ ò ] j\ l Å t · §` ú ¦Ã ºe . • s ë H] j\ ¦K l 0 AK s Q\ ¦ 6 xô Ç . { 9

r ñ & ç s ß

õ â ÷ & s Q H ' X à O Ô\ ¦µ ÏÒ 1 t q # î r%

^ ò ] j\ j ]# Q ¶` Ý ¦ | Å . • l ç ß r É ¦&

÷ ñ &# Qe ` ¦Ã ºe ¦, & { h à 9 º ¸e . • r ì r½ É` + ¦ ½ ¨ ³ & l 0 AK " f ¸ s Q\ ¦ 6 xô Ç . s

Ä â ºr ç ½ ß ¨S (time slice)s \ ¦ H ¦

ñ & al ) ç ß ' X à O Ô\ ¦µ ÏÒ 1 tô q Ç . – r ì r½ É\ + " fl ç s ß ÷ &# Q ' X à O Ô µ ÏÒ 1 t q î r%

^ ò ] j H ³F & Ã º ' × æ á Ô Ð[ jÛ ¼ _ I © \ ¦ Ð a ' ¦, 6 § £ Y V_ á Ô Ð[ jÛ ¼ _ I © \ ¦& F h ô Çê Ê\ z ´ ' ô Ç . s õ &

` ñ ¦ HÐ ë o ¨ (context switch)s 8 ô Ç .

4


3.1.3

ø Çå m ËP ¾

c °2003, sangjin@kut.ac.kr

{ : Ò 9 t$ q

í \ _ K &

_ ñ a ) aº ' &

ñ Ð_ ¸6 § £

* <* Ö = å i< K: ~ ¡q ç { ¡È 03

• î% r

^ ò ] j H ô ª Ç$ B © ^ \ @ /ô Çç H{ 9 ô Ç H 7 & o  h Ó\ ¦] j/ N B

A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

– $ © u © _ Ó to ü & : h ¤$ £

` í ¦ Ho 7 $ é © 0 ß A

{ 9 ÐÆ Ò © oK ï r . •

{ 9 ao ' ü < aº ' aî ) r%

^ ò ] j_ e Á º –

{ _ 9 Ò t$ q

õ í ] j – n Ð 7 o (e ¦ 8)_ Ò t$ q

õ í ] j –

{ õ 9 n 7 Ðo \ ¦ ¸ l 0 Aô Çl í ] ß í j/ N B – Ð ¸l % 3 u © ü <

{ ç 9 \ ß B i

ç – Ñ \ þ O

Part I. Overview

ØW U Æ Ë= _ k< g º

3 3.1 3.1.1

S ­ y ð V Ë~ R ¿} º

3.1.4 ø Éû m ÚI s Äå í ËP ¾

³ z º: g­ å ËP ¾

• î% r

^ ò ] j_ Å Òe Á º× æ H ô ª Ç × ¼J ?# Q u © _ : ¤$ £

` í ¦ 6 x \ > ¸ ul n H s ‫כ‬ .

• è « ×T zâ «: z ´ '× æ Ô á ÐÕ ªÏ þ

• Ð : x{ 9 Ø ¦§ 4 0 Ar Û ¼% (I/O subsystem)` 7 ¦ 6 x # s l 0 x` p ¦] j/ Nô B Ç .

• á Ô Ð[ jÛ ¼ HÕ ª _ ‫כ‬ eÁ º\ ¦º Ã' l 0 AK CPU r ç , B ß j ¸o ,

{ 9 , { 9 ا ¦ 4 u © ü <° ú r É " ¶s é 9 ‫כ‬ ¹ .

• { Ø 9 ¦§ 4 0 Ar Û ¼% _ 7 ½ ¨$

‫כ‬ í ¹ è – Q !( a A, H d ç

, Û ¼Û ¦a A(spooling)1 õ ° ú rl É 3 % u © ao ' ½ ¨$

‫כ‬ í ¹ è – { ì 9 Í& ø h u © ½ ¨1 xl l (device driver)2 s ` Û ¼ – : ¤& £

ñ × ¼J ?# Q\ ¦0 Aô Ç u © ½ ¨1 xl l

• ¶ " é_ ½ É{ + © rá É Ô Ð[ jÛ ¼_ r õ 1 xr l \ s À Ò # Q| 9 à ºe Ü ¼9, 9 ‫כ‬ ¹½ ÉM + : s À Ò# Q| 9 à ºe . • á Ô Ð[ jÛ ¼ H0 x1 p x& l > h h^ ì Í ø á Ô ÐÕ ªÏ þ rÃ É º 1 x& l > h h^ s .

º W sV ê ËP 3.1.5 | ºM ÄX ì å ¾

• ôá Ç Ô ÐÕ ªÏ þ rÕ É ª s ‫כ‬ z ´ ' ÷ & H1 xî l # ß Q> h_ á Ô Ð[ jÛ ¼\ ¦Ò t$ q

½ í ÉÃ + ºe .

• Ò Ål % 3 u © H6 fµ Ï$ 1

s í 9 Õ ª6 x| Ós ¾ ] jô Ç& s h Ù ¼ Ð ‫כ‬ 9 ¹ .

• á Ô Ð[ jÛ ¼ Hr Û ¼% _ 7 \ é O 0 ß A a ) .

• Ð ¸l % 3 u © ao ' ü < aº ' aî ) r%

^ ò ] j_ e Á º

• á Ô Ð[ jÛ ¼ H ß ¼> î r%

^ ò ] j á Ô Ð[ jÛ ¼ü < 6 x á Ô Ð[ jÛ ¼ н ¨ì r a ) .

– / Nç B ß ao ' – $ / © Nç B ½ ß É{ + © – n Û ¼¼ ßÛ ¼H × ¦a A: n Û ¼ß ¼ü < aº ' a‫כ‬ ) ¹' A_ õ ´' z í H" f\ ¦ &

ñ Hë H] j

• á Ô Ð[ jÛ ¼ ao ' ü < aº ' aî ) r%

^ ò ] j_ e Á º – 6 x ü <r Û ¼% 7 á Ô Ð[ jÛ ¼_ Ò t$ q

õ í ] j 3.1.6

– á Ô Ð[ jÛ ¼_ × æt ü <F > h

• î% r

^ ò ] j HW 1à Ô0 >ß ¼] X H` ¦

{ ] 9 X Hõ ° ú r É AI þ + Ð{ ì 9 Í ø oK ï r .

– á Ô Ð[ jÛ ¼1 xl l o – á Ô Ð[ jÛ ¼ç : ß x

• î% r

^ ò ] j Hy 7 x: á x á Ô Ð Ðc t` + ¦t " ¶K é 9, y 7 xW á 1à Ô0 >ß ¼ u © ½ ¨1 xl l \ ¦0 Aô Ç ' ` s ¼\ Û ¦] j/ NK B Å Ò# Q ô Ç .

– § Ì Ã I © (deadlock) % o 3.1.2

2² 5 ùÉ Ë S

¤M W ÄX ì sV ê å ËP ¾

1f ] X

Ø 9 { ¦§ ` 4 ¦ t · § ú ¦Û ¼Û ¦a An 7 Ðo \ { 9 Ø ¦§ ½ 4 ÉX + <s ' \$ ¦ © Õ ª{ 9 Ø ¦§ ` 4 ¦{ { © H daemons Û ¼Û ¦a An 7 Ðo \ e HX <s ' \ ¦{ Ø 9 ¦§ ô 4 Ç . Û ¼Û ¦a A r CPU É \ õ O { Ø 9 ¦§ ` 4 ¦#

' î Éà + ½ ºe > K Å Ò9, ° ú r{ É 9 Ø ¦§ ‫כ‬ 4 ¹' A_ õ Ç ©\ ¦ë [ ß tà þ ºe ¸2 ¤K ï r . 2 u © \ ¦] j# Q Há Ô ÐÕ ªÏ Ü þ ¼ Ð" fy u © H ë _ ß ¦Ä »ô Ç

§ î "

# î Q| ½ 9 Ë` + ¦ . á Ô ÐÕ ªÏ þ r{ É 9 ì Í{ ø 9 Ø ¦§ " 4

§ î

` î ¦s 6 x # r% î

^ ò ] j\ ¦: xK u © \ ¦ 6 x 9, s M : u © ½ ¨1 xl l H{ ì 9 Í" ø

§ î

î ¦ ` _ ¦Ä »_ "

§ î

Ü î ¼ Ð Ë ¨# Qz ´' K ï r .

• Å Òl % 3 u © a ' oü < aº ' aî ) r%

^ ò ] j_ e Á º – l % / 3 Nç B _ ß 6 x ³S & ! ao ' – & F h ½ Éá + Ô Ð[ jÛ ¼ × þ – l % / 3 Nç B _ ß ½ É{ + õ © rà º 1


3.1.7

| º ÆS ­ y ð

• × æ 6 x , × æá Ô Ð[ jÛ ¼¨ 8

\ â " fî r%

^ ò ] j Hy á Ô Ð[ jÛ ¼\ ¦ rá É Ô Ð[ jÛ ¼ ÐÂ Ò' Ð ñK Å Ò# Q ô Ç .

2 process B

kernel

(a) B jr t ² ú ¸4 q S

ËI _ ã ËA [ 0V ÄM S ­ y ð

(b) / NÄ B »B j ¸o ¸4 q S

<Õ ªa > 3.1> : Ë x ¸q 4 S • á Ô Ð[ jÛ ¼_ &

ñ 7 © x« á Ñ(end)ü < q &

ñ © 7 x« á Ñ(abort) • á Ô Ð[ jÛ ¼& F h ü <Ã º ' • á Ô Ð[ jÛ ¼_ Ò t$ q

õ í y ] © j 7 x« á Ñ(terminate) • á Ô Ð[ jÛ ¼5 q$ Å

S í 1 \ qx p 9

[ & O

ñ • r ç @ ß /l • | @ /l , | µ ÏÒ 1 t· q a ú > Ë • B j ¸o ½ É{ + õ © K ] j

– Ä »_ Û ¼\ " f H Ð: xÙ Q (shell)s ô Ç . • í Ól ½ \ Hv Ð× ¼\ ¦s 6 xô Ç"

§ î

# î Ql ì Í~ ø Ód ½ s % t 3 ë ß ³F & H@ / Òì r Ä ºÛ ¼l ì Ͷ ø û ¸Ä º~ Ó ½ s d .

ØW U Æ Ë= _ k< g" eR ­

• á Ô ÐÕ ªA Q_ ¼ o # $

` í ¦A 0K ] j/ N÷ B & H" fq Û ¼ – á Ô ÐÕ ªÏ z þ ´ '

{ 9 ao '

– { 9 Ø ¦§ à 4 º '

• • • •

{ 9 r Û ¼% 7 ¸ – : x : / NÄ B »B j ¸o , B jr t ² ú – ¸À Ó Ø ¦

{ 9 Ò t$ q

õ í ] j

{ 9 \ l P ü <{ l 9 { l , æ ¼l , F C u (reposition)

{ 9 5 q$ Å

S í 1 \ qx p 9

[ & O

ñ

– u © ao '

• r Û ¼% 7 _ ´ òÖ ¦& î h r%

` ò ¦A 0K ] j/ N÷ B & H" fq Û ¼

• © u 6 x‫כ‬ ¹' A, õ u © K ] j • { 9 l , æ ¼l , F C u :

{ 9 õ u © HB Ä ºÄ » Ù ¼ Ð Ð: x u © ` ¦

© { 9 ÐÆ Ò © o # 6 xô Ç . • u © 5 q$ Å

S í 1 \ qx p 9

[ & O

ñ • u © _ Ho 7 & Â h Ò Ìõ Ã ] j

– ¶ " é½ É{ + © – r> (accounting) – Ð ñ

3.3

• î "§

K î $ l 3 : 6 x ü <î r%

^ ò ] jç \ ß ' ` s Û ¼ Ð 6 x ÐÂ Ò' "

§ î

` î ¦~ Î Ã z ´' K ï r . "

î

K î § $ l 3 H& V \ , í Ê÷ < &t · § ú H .

3.2

1 shared memory

• Ð ñ: ( É Ó' rÛ ¼% \ 7 " f&

_ ñ ô Ç ¶ " é\ @ /ô Çá Ô Ð[ jÛ ¼ü < 6 x _ ] X H` ¦] j# Q l 0 Aô ÇB j& m 7 § £ 3.1.8

process A

S ­ y ð Æû Ú s

– &

ñ ÐÄ »t ÐÃ º

• r Û ¼% 7 ñØ ¦ rá É Ô Ð[ jÛ ¼ü <î r%

^ ò ] jç \ ß ' ` s Û ¼\ ¦] jB N /K ï r .

• r ç õ ß ± ú ‫כ‬ ¹' A õ • r ¼ Û% 7 &

ñ ÐS 1 \ qx p 9

[ & O

ñ • á Ô Ð[ j¼ Û,

{ 9 , u © 5 q$ Å

S í 1 \ qx p

[ 9 O

ñ &

• ´ § ú r É ¦/ Lá å Ô ÐÕ ªA b

ç # Q(\ V, C, C++, Java) H 6 x f ] r X Û ¼% 7 ñØ ¦` ¦½ Éà + ºe ¸2 ¤t " ¶ é Ç ô . Õ ª Q ? / Ò4 ¤¸ ô ú Çõ &

ñ r É 6 x H· ú 9 ‫כ‬ ¹ \ O ¸2 ¤¸ u n ï r .

– : x (B jt t ² ú ¸4 qõ S / NÄ B » B j ¸o ¸ q): Õ S 4 ªa > 3.1 Ë Ð Ã ¸

• r Û ¼% 7 ñØ ¦½ ÉM + :î r%

^ ò ] j\

{ s 9 2 §õ £ ° ú r É Æ Ò &

ñ Ð\ ¦ ² K ú ô Ç .

• • • •

• î r%

^ ò ] j\

p ' \ ¦ ² ú H~ ÓZ ½ O – Y Ut Û ¼' \ ¦: xK f ] X ² ú – B j ¸o \ $ ô © ÇÊ ê\ Õ ª _ ‫כ‬ r Å Ò èü < ß ¼l \ ¦Y Ut Û ¼' \ ¦: xK ² ú

3.4

– Û ¼× ½ þ ¨ ¸\ ¦s 6 x

: x Ò t$ q

x í 9

] j X <s ' 5 xx Å 9

à º I © &

ñ Ð ² ú " ¶ é u © Â Ò Ìx à 9

] j

­ S y ³ ð z º§ q

• rÛ ¼% á 7 Ô ÐÕ ªÏ þ rá É Ô ÐÕ ªÏ > þ hµ Ïõ 1 z ´' ` ¦0 A Ǽ ô o # ô Ǩ 8

` â ¦] j/ NK B ï r .

• r Û ¼% 7 ñØ ¦ _7 xÀ á Ó

• r Û ¼% á 7 Ô ÐÕ ªÏ _ þ 7 xÀ á Ó

– á Ô Ð[ jÛ ¼] j# Q 2


(a) q l © > ¸4 q S

(b) l © > ¸4 q S

<Õ ªa > 3.2> Ä Ë »_ Û ¼r Û ¼% 7 ½ ¨ ¸

<Õ ªa > 3.3> r Ë Û ¼% 7 ¸q 4 S 3.5.3 T ± z º& , Ç f

{ 9 ao ' : \ V) ÐÒ Ã ol

• s ß ¼ Ð& V : & , V \ , = G 9 ‫כ‬ ¹ô Çl 0 xë p t ß ¸ ¤½ 2 ¨$

í a& ) V ,

– I © &

ñ Ð: \ V) 1 x2 p ¤&

ñ Ðl 0 x p –

{ 9 ¼ | # 9 : \ V) ë H" f¼ | # l 9 – á Ô ÐÕ ªA b ç

# Qt " ¶: \ é V) (

{ 9 Q, # Q! r l ¦ ^ Q, ' á Ôo '

• / @³ ð& h s ß ¼ Ð& V , r Carnegie Mellon @ É / Æ < " \ f> hµ Ïô 1 Ç Machs .

– á Ô ÐÕ ªÏ & þ F h ü <z ´ ' : \ V) n ! Q

• s ß ¼ Ð& V _ , © & : S h X _ © 6 xs $

, Z í } rî É ß

(´ í $ § ú r É s ‫כ‬ 6 x ¸× ¼\ " f1 x l ), Z } r É ø @

, Z í $ } rs É d $

(portability) í

– : x

3.5 3.5.1

S ­ y ð º

3.6

V sM ê 4

• Ô á Ð[ jÛ ¼ u ë _ ß á Ô Ð[ j" fü < B j ¸o ¦ t \ ¦e H % ‫כ‬ ! Ò 3 ty q ½ Éà + ºe ¸2 ¤î r%

^ ò j\ ] ¦[ > O ½ ÉÃ + ºe . s ] X H~ Ód ½ ` ¦ l © (VM, Virtual Machine) > ô Ç .

mÅ Ø U º

• @ /Â Òì r_ 6 © xî r%

^ ò ] j H¸ & ú

_ ñ a½ ) ¨ ¸\ ¦ t ¦e t · § ú . s [ t þ r% É 6 §\ £ H ¦é í ß Hô Çr Û ¼% 7 \ " fØ ¦µ Ï 1 # Õ ª _ ‫כ‬ l \ ¦ ÓÜ ½ ¼ Ð& h & h ¦/ Ll å 0 xs p Æ Ò ÷ &% 3 .

• l © > ~ Ód ½ \ " f ¸ Há Ô Ð[ jÛ ¼ H( É Ó' _ ¤ 4 rs : ] j/ N B a ) .

• s [ tr þ Û ¼% s 7 é í ß H½ ¨ ¸\ ¦ t > Å Ò as ) Ä »× æ H> hµ Ï{ 1 r © j ]/ N B a ) × ¼J ?# Q_ l 0 x& p ] h j ÇM ô :ë Hs . 3.5.2

• l © > \ ¦ 6 x { 9 Ø ¦§ _ 4 z ´' 5 q Å ¸ Hz ´ j l ] > \ " f s À Ò# Qt H ‫כ‬ Ð \ ¦ à º ¸ e ¦(Û ¼Û ¦a A) Ö ¼w n =à º ¸e (K $ ~ 3 ÓZ ½ ). O • CPU H# Q l © > s \ × æá Ô ÐÕ ªA b

ç &Ù ÷ ¼ Ð l © > _ 5 q Å ¸ H 8Ö ¼ 9| Ã 9 ºe .

4 «X ı ì É¿ n < R

• > 8 x& £ X h ]H ~ Ód ½ : î r%

^ ò ] j\ ¦# Q> 8 xÜ £ ¼ Ð ¾ º H~ Ód ½ Ü ¼ Ð, s ~ Ód ½ \ " f 0 © A> 8 x £ r É 0 A> 8 x_ £ ' ` s Û ¼\ ¦s 6 xô Ç . © 0 A> 8 x £ r É × ¼J ?# Qs ¦, © 0 © A >8 x £ r É 6 x ' ` s Û ¼ a ) .

3.6.1

ô

• Ð : xl > H 6 x ¸× ¼ü < ¸m ' ¸× ¼¿ º t ¸× ¼\ ¦] j/ Nô B Ç . • l © > \ ¦½ ¨ ³ & H èá Ôà ÔJ ?# Q Hî r%

^ ò ] js ¼ Ù Ð ¸m ' ¸× ¼\ " f1 x l 0 x p t ë z ß ´] j l © > H 6 x ¸× ¼\ " f1 x l K ô Ç .

• > 8 x& £ ] h X H~ Ód ½ _ é © & ß h – & © : h ¸Ñ t ý o` ¦: xô Ç 0 A> 8 x_ £ Æ Ò © o

• l © > \ ¦ 6 x Há Ô Ð[ jÛ ¼8 ¤ £ \ " f Ð l © > % r i l © > 6 x ¸× ¼ü < l © > ¸m ' ¸× ¼¿ º t ¸× ¼\ ¦] j/ NK B ô Ç . ª Õ X <s ¿ º ¸× ¼ H ¸¿ ºz ´] j Ð H 6 x ¸× ¼ " \ f1 x l K ô Ç .

• ` s Û ¼ë Õ ß ª@ / Ð Ä »t 0 A 8 > xÉ £ r 0 © A > 8 xõ £ Á º a ' > à º&

½ ñ É + ºe à . 7 ¤, £ 0 A> 8 x £ r É 0 A> 8 x_ £ ¤¸ 4 $ ú

` í ¦ 0 © A >8 x\ £ > ¸ u n ï r . – é & ß h

3.6.2 X sX ê È ì

• >8 x½ £ ¨ì r_ Q # 9¹ § ¡ • ´ ò Ö$ ¦

ë í H] j: y > 8 xç £ \ ß ' ` s Û ¼ ¦: \ xô Ç \ º O Ã' Ü ¼ д § ú r É ¸! QK × ¼ rF > ½ ɺ + Ãe 6 § £

• y l © > H" f Ð1 qw l & n s h Ù ¼ Ðr Û ¼% 7 " ¶ é Ð ñ8 ¤ £ \ " fÄ »o . Õ ª Q " ¶/ é NÄ B » # Q > § . 3


• r Û ¼% 7 > hµ Ï_ 1 6 xs $

: r í Û ¼% á 7 Ô ÐÕ ªA Q H ë _ ß l © > \ " f> hµ Ï 1 Ù ¼ Ðz ´] jr Û ¼% 7 \ %

ò Ó` ¾ ¦Å Òt · § ú ¦> hµ Ïs 1 0 x p .

• é & ß \ h @ /ô Çì Í ø r : – ` ¦ rX É <s ' ½ ¨ ¸ü <· o ú ¦7 §` £ ¦ 6 x H s ‫כ‬ r Û ¼% $ 7

0 í x\ p 8 H ¸¹ §s ¡ a ) .

• ñ¨ $ 8

ë í H] jK Hà ºé Ü ß ¼ Ð 6 x: l © > ¦ë \ [ ß t# þ Q ½ Éz + ´] jl > 4 ¤¸ ú ½ Éà + º2 ¤&

ñ Æô < Ç l © > \ ¦ë × ß ¼ H s ‫כ‬ # Q 90 >t 9, s ‫כ‬ r É l © > _ º Ã' Å q 5 ¸\ r% É

ò Ó` ¾ ¦ï r . 3.6.3

– rÛ ¼% $ 7

0 í x\ p H%

ò Ó` ¾ ¦Å Ò H Òì r rF É G è ºs à . s ` ‫כ‬ ¦¹ Ô 1 s  Òì rë # ß Q! r^ l ¦o # Q н ¨ ³½ & Éà + ºe .

3.8

• rÛ ¼% [ 7 u O : y : ¤& £

ñ s à Ô\ 1 x l ¸2 ¤½ ¨$

í Hõ &

ñ

• : Sun \ " f> hµ Ïô 1 ÇÌ o^ t Ó ¾ # Q • á Ô ÐÕ ªÏ þ r É © l> (JVM, Java Virtual Machine)\ ¦ 6 x 9, s M :ë H\ á Ô Ð Õ ªÏ þ r É l © > e H# Q ( " É Ó' \ " f ¸z ´ ' a ) .

• r Û ¼% [ 7 u O ½ ÉM + : &

K ñ H&

ñ Ð – CPU_ 7 xÀ á Ó, CPU_ Ã º – Å Òl % 3 u © _ ß ¼l

• (

{ 9 Q Hy 9 tA þ Û ¼ ( É Ó' ½ ¨ ¸ü < 1 qw l n & h s à Ô ï× ¼(bytecode)` ¦ Ò t$ q

í 9, s ï× ¼ H © l> \ " fz ´' a ) .

– Â Ò Ì Ã a ) u © – î% r

^ ò ] j ` v &

: CPU Û ñ ¼H × ¦a A ~ ÓZ ½ , O Q( ! _ ß ¼l 1 x p

• l © > H9 tA þ Û ¼ Ð 8(class loader), 9 t þ A Û ¼S X (class verifier) ' á Ôo ' (java interpreter) н ¨$

÷ í &# Qe .

• [ u O ~ ÓZ ½ O – ç ( ¡ 1. [ « u O 0 A&

ñ Ð\ ¦· ú p ·Ê ê\ 9 ¹ô ‫כ‬ Ç èÛ ¼ ï× ¼\ ¦Ã º&

ñ ¦(

{ ô 9 ÇÊ ê\ u O [

• l © > H` %

% ò i rà º(garbage collection) ÓZ ½ ~ Ü O ¼ ÐB j¸ o \ ¦ ao ' ô Ç .

– ç ( ¡ 2. « 9 ‫כ‬ ¹ô Ç ¸ H ï× ¼\ ¦ t ¦e Hr ¼% Û ` 7 ¦s 6 x # [ u O ô Ç . 0 A&

ñ Ð H[ u O " f1 x& l Ü h ¼ Ð &

÷ ñ & × þ a ) . ~ Ó ½ 1 O Z Ð s ~ ÓZ ½ _ O î r%

^ ò ] j_ ß ¼l ß ¼ .

• ' á Ôo ' H s à Ô ï× ¼\ ¦Õ ªM :Õ ªM :K $ 3 # z ´' H èá Ôà ÔJ ?# Q ¸Ñ ts ý s à Ô ï× ¼\ ¦ ¸¿ º3 l q& ( h É Ó' _ l > ï× ¼ Ð Ë ¨# Q z ´ ' H JIT(Just-In-Time) (

{ 9 Q{ 9 Ã ºe .

3.7 3.7.1

• î% r

^ ò ] j [ u O aÊ ) ê\ ( É Ó' \ ¦ r r ( É Ó' H& V ` , ¦Å Òl % 3 u © \ & F h ¦z ´ ô ' Ç . s õ &

` ñ ¦Â Òh A(booting)s ê Íô ø Ç . s ‫כ‬ ¦K ` Å Ò Há Ô ÐÕ ªÏ ` þ ¦Â Òà ÔÛ ¼à Ôê á Á Ô ÐÕ ªÏ ¢ þ ¸ H Òà ÔÛ ¼à Ôê Á Ð 8(bootstrap loader) ô Ç .

S ­ y ‫כ‬ ð Ç4 r õ Í m ô Ç4 r ‫כ‬ × Ò »

• j þ 0 © A3 q³ l ð: 6 x H × ¼J ?# Q, r Û ¼% 7 _ 7 xÀ á Ó \ _ K &

ñ • 0 AY U 6 \_ 3 q³ l ð – 6 x 3 l q³ ð: 6 x_ ¼ o # $

, s í K _ 6 xs

, í $ ø @$

, % í o 5 q Å ¸_ 2 § £ – r Û ¼% 7 3 q³ l ð: Ä » $

(B í j& m 7 §õ £ &

Õ ñ _ þ ì r o ), ø @$

, ´ í òÖ ¦$

í • 3 #6 x& B h j& m 7 §` £ ¦ 6 x # ñ &Õ

s þ 7 Q # ¸ B j& m 7 § £ t Ü J ã ¹ 9 ‫ כ‬ O \ ¸2 ¤ H s ‫כ‬ | Ðf à . 3.7.2

­ S y ‫כ‬ ð ÇV r

ô

• í Ól ½ \ H# Q! r^ l ¦o # Q Ðî r%

^ ò ] j\ ¦½ ¨ ³ & % t i ë ß ³F & H@ / Òì r C C++ü <° ú r É ¦/ Lá å Ô ÐÕ ªA b ç

Q # н ¨ ³ô & Ç . • ¦/ Lá å Ô ÐÕ ªA b

ç # Q н ¨ ³½ & ÉM + :_ é © & ß h – © & : ½ h ¨ ³_ & x 6s $

, n í ! Q^ ç

_ 6 xs $

, í ï × ¼s K _ 6 xs $

, Z í } rs É d $

í – é & ß : 5 h q Å ¸$ , $ / © Nç B 7 ß x £ 4


c °2003, sangjin@kut.ac.kr user running

* <* Ă– = ĂĽ i< K: ~ ÂĄq ç { ÂĄĂˆ ‘ 04

return from syscall or interrupt

syscall, interrupt

A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

fork

initial exit

kernel running fork

wait

sleep

swtch

Part II. Process Management

zombie

swtch ready

wakeup

blocked

stop stop

Âł ÂŽz Âş: g­ ÂŽ

4

Âł ÂŽz Âş: g­ ÂŽ4 G › Ăˆ

4.1

stop

continue

suspended ready

continue

wakeup

suspended blocked

Âł ÂŽz Âş: g­ ÂŽ

4.1.1

• è — Ă—T zâ ÂŤ: z ´' Â?Ă— Â&#x; ̓ ĂĄ Ԗ Ă?Ă• ÂŞĂ? › Ăž

<Ă• ÂŞa > 4.2> Ă„ Ă‹ Âť_ Ă› ” Ÿå Ԗ Ă?[ jĂ› Âź_ ÂœI Š • ¸

• ĂĄ Ԗ Ă?[ jĂ› Âź_ ½ ¨$

í – 7e

Âť(waiting): ĂĄ ä Ԗ Ă?[ jĂ› Âź # Q‹ " | ` ÂŚ l o “ ÂŚe Â? ” H ÂœI Š

– % 7 Â˜Ă› Ÿà Ô ÒÏ r(text section): ĂĄ Ԗ Ă?Ă• ÂŞĂ? ›Â? Ăž ĂŻĂ— Âź – & ‰F Âł ÂœI Š : ĂĄ Ԗ Ă?Ă• ÂŞĂ? ›

Ăž ĂŽ r' \ ÂŚÂ&#x; í† ĂŠĂ´ < lj ÂłF & ĂĄ Ԗ Ă?[ j" f_ Y Ut Ă› Âź' ° ‍כ‏ Ăş

– K )j Âľ ”‍כ‏ ĂŹ Ă˜(ready): ĂĄ Ԗ Ă?[ jĂ› Âź ĂĄ Ԗ Ă?[ j" f\  Ă‰{ + ½ Âœá Š &l \ ÂŚl o “ ÂŚe Â? ” H ÂœI Š

– Ă› Ÿ× ˜(stack): { Ăž r 9 & “ h X <s ' (

p ' , 4 ¤ Â&#x; ) Ă… ҙ è, t %  i Ăƒ Âş1 x)\ p ÂŚ$  Âœ Š Â? H/ M B

– 4 ¤â€Ť×›â€Ź Ă˜(terminate): ĂĄ Ԗ Ă?[ jĂ› Âź_ z ´' Â?s Â&#x; 7 xÂŤ ĂĄ Ă‘ a ) Â? ÂœI Š

– X <s ' Â ÒÏ r: F g%

 i Ăƒ Âş\ ÂŚ$  Âœ Š Â? H/ M B

• Ă&#x; ĂŠ{ – ĂĄ 9 Ԗ Ă?[ jĂ› Âźr Ă› Âź% ›\ 7  " fÂ? H‰ ÂłF & z ´' Â? Â&#x; ÂœI Š \  ` ” e ÂŚĂƒ Âşe Â? ” HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? Hš ¸f ” s . t ĂŤ – Ă&#x; §Â“ Ăş ´ rĂĄ É Ԗ Ă?[ jĂ› Âź @ /l ¢ ¸Â? HĂŻ rq ¢ aÂŤ Ă‘ ÂœI Š \  e ” ÂŚĂƒ ` Âşe ” .

• ĂĄ Ԗ Ă?Ă• ÂŞĂ? › Ăž ^ ‰Â? HĂĄ Ԗ Ă?[ jĂ› Âź m . ĂĄ Ԗ Ă?Ă• ÂŞĂ? › Ăž “ rĂƒ É Âş1 x& l > h h^ ‰s t ĂŤ –å Ă&#x; Ԗ Ă?[ jĂ› ÂźÂ? H0 x1 p x& l > h h^ ‰ s . • # ÂŒ QĂĄ Ԗ Ă?[ jĂ› Âź °  Â“ Ăş rĂĄ É Ԗ Ă?Ă• ÂŞĂ? ›þ Ăž › aÂş ' á &# Qe ” 8 • ¸" f– Ă?°  Â“ Ăş r É Ăœ ‍כ‏ Ÿ– Ă?ç –Å Ă&#x; Ă’ t ¡ §Â? Ăş H .

• / @l Ă— ̓ ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H ‰ ÂłF & ĂĄ Ԗ Ă?[ j" f z ´' Â?½ Â&#x; É + Ԗ ĂĄ Ă?[ jĂ› Âź \ O 8 • ¸z ´' Â?| Â&#x; cĂƒ ¨ Âş\ O .

Âł ÂŽz Âş: g­ ÂŽ8 ýê s V? 0

4.1.2

• \ V) Ă„ Âť_ Ă› ” Ÿå Ԗ Ă?[ jĂ› Âź_ ÂœI Š • ¸: Ă• ÂŞa > 4.2 ‚ Ă‹ Ă?› Ăƒ ¸.

• 0 xĂ´ p Ç ÂœI Š : Ă• ÂŞa > 4.1 Ă‹

– Âť Ă„_ Ă› ” Âź\  " fĂĄ Ԗ Ă?[ jĂ› Âź exit r Ă› Âź% › 7 ĂąĂ˜ ÂŚ` ÂŚ Âş' Ăƒ Â? Â&#x; € Ă• ÂŞĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H7 xÂŤ ĂĄ Ă‘á &9, ĂŽ r%

^ ò ‰ jÂ? ] HĂ• ÂŞĂĄ Ԗ Ă?[ jĂ› Âź\  > ½ É{ + ÂœÂ? Š a ) " Âś` ĂŠ ÂŚK ] j Ç Ă´ . Ă• ÂŞ Q r Ă› Âź% ›\ 7  " f¢ a„ y ] j Â? a ) ‍כ‏ r É “ m “ ÂŚ, Ă• ÂŞĂĄ Ԗ Ă?[ jĂ› Âź\ ÂŚĂ’ t$ q

Ă´ Ă­ Çå Ԗ Ă?[ jĂ› Âź Ă• ÂŞĂĄ Ԗ Ă?[ jĂ› Âź_ 7 xÂŤ ĂĄ Ă‘ ÂœI Š Ăƒ ÂşÂ? ' Â&#x; Ăľ \ ÂŚ ` 3 % ÂŚĂƒ Âşe • ” ¸2 ¤{ Â&#x; r 9 & Ăœ h Ÿ– Ă? zombie ÂœI Š \  ~s Z > Â? a ) .

– j “ Å

] ä Âť(new): ĂĄ Ԗ Ă?[ jĂ› Âź Ă’ t$ q

Ă— Ă­ ĂŚs . • \ V) log on, ĂĄ Ԗ Ă?Ă• ÂŞĂ? ›_ Ăž z ´Â? ' Â&#x; – ™

j š Ă&#x;

ä Âť(running): ĂĄ Ԗ Ă?[ jĂ› Âź z ´Â? ' Â&#x;Ă— ĂŚs .

new

terminated interrupt admitted

– Ă” å– Ă?[ jĂ› Âź_ ÂœI Š ĂŻ rq Ă— ĂŚ, z ´Â? ' Â&#x;Ă— ĂŚ, @ /l Ă— ĂŚ s Â? H “ ‍כ‏ rĂĄ É Ԗ Ă?[ jĂ› Âź Ă… Ă’l %  3 Âœu Š \  & h á F &# Qe 6 ” §` ÂŁ Ϋ Â˜Ă´ Ăş Ç . Ă… Ă’l %  3 Âœu Š \  & F h &# á Qe Â? ” HĂĄ Ԗ Ă?[ jĂ› Âź_ Ăƒ Âş\ ÂŚĂ— ÂŚs l 0 AK Ă„ Âť Ă› ” _ Âź\  " fÂ? HĂĄ Ԗ Ă?[ jĂ› Âź\ ÂŚĂ— ĂŚt (suspend)½ Ă‰Ăƒ + Âş ” e . ĂĄ Ԗ Ă?[ jĂ› Âź Ă— ĂŚt á &€ Ă… Ă’l %  3 Âœu Š \  f{ " r 9 & Ăœ h Ÿ– Ă?] j á &# Qn Ă› ÂźĂ&#x; Âź\  Â˜ Ă?› aá ' & 9, F > h| cM ¨ : t Ă› ÂźH Ă— ÂŚa A@ / Âœ\ Š  " f] jĂź @ a ) Â? .

exit ready

I/O or event completion

running

scheduler dispatch

I/O or event wait

waiting

<Ă• ÂŞa > 4.1> ĂĄ Ă‹ Ԗ Ă?[ jĂ› Âź ÂœI Š • ¸ 1


pointer

queue header

process state

process number

head

program counter

tail

PCB7

PCB2

register

register

registers

<Õ ªa > 4.4> ï Ë rq ¢ a« ÑÇ ©

memory limits list of open files

ready queue

I/O

<Õ ªa > 4.3> á Ë Ô Ð[ jÛ ¼] j# Q^ ¦2 ¤

CPU

I/O queue

I/O request

time slice expired

4.1.3

³ z º: g­ g <# a÷ § u ×

• î% r

^ ò ] j Há Ô Ð[ jÛ ¼ Õ ªa > 4.3ü Ë <° ú rè É « × T zâ «V # a¡ · ´(PCB, Process Control Block)` ¦ Ä »t ô Ç . r´ É ú ÐI Û ¼ß ¼] j# Q^ ¦2 ¤s ô Ç . • á Ô Ð[ jÛ ¼] j# Q^ ¦2 ¤\ Ä »t ÷ & H&

ñ Ð

interrupt occur

wait for an interrupt

• rì r½ É r + Û ¼% _ 7 3 q& l h r á É Ô Ð[ jÛ ¼\ ¦ > Ë ¨# Q " fz ´ ' # 6 x [ ts þ á Ô ÐÕ ªÏ õ þ © ñ 6 x½ Éà + ºe ¸2 ¤ H s ‫כ‬ .

– á Ô ÐÕ ªÏ

þ î r' : 6 §\ £ z ´ ' ½ É" +

§ î

# î Q_ Å Ò è – CPU Y Ut Û ¼' : z ´' × æ I © \ " f@ /l × æ¢ ¸ Hï rq × æÜ ¼ Ð

¨ â |M c : ³F & Y Ut Û ¼' _ ° ‫`כ‬ ú ¦# l \ Ð aô ' Ç . s ‫כ‬ rá É Ô ÐÕ ªÏ

þ r' î ü < Êa < r z ´' × æ I © Ð` U ´M : 9 ‫כ‬ ¹ .

4.2.1

> ­ ú ÚÂ n Ë S Á

• Ô á Ð[ jÛ ¼_ Û ¼H × ¦a A` ¦ 0 AK î r%

^ ò ] j H # Q xÀ á 7 Ó_ Ç ©\ ¦Ä »t ô Ç . • © Ç H{ 9 ì Í& ø Ü h ¼ Ð o Û ¼à Ô(linked list) н ¨ ³ & &# ÷ Qe . Õ ªa > 4.4 Ë Ð Ã ¸.

– CPU Û ¼H × ¦a A&

ñ Ð: Ä º í H0 Aü <° ú rÛ É ¼H ¦a × A\ 9 ‫כ‬ ¹ô Ç&

ñ Ð

– © Ç_ K 8 Ho Û ¼à Ô\ e H' Í P :ü < t PCB\ } ¦ o v H í ' \ ¦ t ¦e Ü ¼ 9, y PCB H 6 § PCB\ £ ¦ o v H í ' ¦ \ × 9 ¼ Ð t ¦e .

– Å Òl % 3 u © ao ' &

ñ Ð: l ï rY Ut Û ¼' ü <ô Ç > Y Ut Û ¼' _ ° ‫כ‬õ ú ° ú rÅ É Òl % 3 u © ao ' \ 9 ‫כ‬ ¹ô Ç&

ñ Ð – r> &

ñ Ð: CPU 6 xr ç õ ß ° ú r: É x> &

ñ Ð

• Ç ©_ 7 xÀ á Ó

– 9 { Ø ¦§ 4 I © &

ñ Ð: á Ô Ð[ jÛ ¼\ ½ É{ + © a{ ) Ø 9 ¦ § 4 u © , á Ô Ð[ jÛ ¼

{ 9 3 q2 l ¤1 x p

– Ç ¼á Ð

Î ª(job queue): á Ô Ð[ jÛ ¼ r Û ¼% \ 7 6 % §[ £ t# þ Qü <" f@ /l HÇ ©

­ 7 _©

– K )j µ ‫כ‬ ì Ø Î ª(ready queue): Ò Ål % 3 u © \ F h & ÷ &# Qz ´' ` ¦l o Há Ô Ðj [Û ¼\ ¦Ä » t HÇ ©

• á Ô Ð[ jÛ ¼ ¸q 4 S\ " fá Ô Ð[ jÛ ¼ Hé { ß z 9 ´' â ì2 § £ ¦ ` . s â ì2 §` £ ¦¼ ÛY U× ¼(thread) ô Ç .

– *n × Î ª(device queue): u © \ ¦ 6 x l 0 A l K o HÇ © Ð" f, y u © H ë _ ß © Ç u ©\ ¦ t ¦e .

• j þH \ H _ á Ô Ð[ jÛ ¼ # Qz ´' â ì2 §` £ ¦ | 9 à ºe ¸2 ¤ % i . " fá Ô Ð[ jÛ ¼ Hô Ç \ # Q \ ` O ¦Ã º' ½ ɺ + Ãe .

4.2

fork a child

<Õ ªa > 4.5> á Ë Ô Ð[ jÛ ¼Û ¼H × ¦a A³ ð ³ & HÇ ©e

ç ¸³ ð

– á Ô Ð[ jÛ ¼ I © : Ò t$ q

× í æ, z ´' × æ, @ /l × æ, ï r q ¢ a« Ñ, 7 x« á Ñ

4.1.4

child execute

– 7e Î ª(waiting queue): : ¤& £

ô ñ Ç | ª Õ | ` ¦l o Há Ô Ð[ jÛ ¼\ ¦Ä »t H ©\ Ç ¦ 6 x½ Éà + ºe .

³ z º: g­ ­ > ú ÚÂ n Ë S

• Ô á Ð[ jÛ ¼ z ´ ' × æ I © { 9 M :µ ÏÒ 1 t½ q ÉÃ + ºe H _ | 7 xÀ á Ó

• × æá Ô ÐÕ ªA b ç

_ 3 q& l h r É Ó ½ z © ´' ½ Éá + Ô Ð[ j Û ¼ e ¸2 ¤ H s ‫כ‬ . s \ ¦: xK CPU 6 x ´ òÖ ¦` ¦Z }s H s ‫כ‬ .

– 9 {Ø ¦§ ` 4 ¦‫כ‬ ¹' A õ K { © H u © Ç © Ð` . 2


– D h Ðî rá Ô Ð[ jÛ ¼\ ¦Ò t$ q

í # Õ ªá Ô Ð[ jÛ ¼ _ 7 x« á Ñ\ ¦l w n =à ºe . s

Ä â º\ H@ / l Ç ©\ ` . t ë Â ß Ò ¸á Ô Ð[ jÛ ¼ ¸ d á Ô Ð[ jÛ ¼ü < Êa < #

' î Ü ¼ Ðà º' | cà ¨ º e . s

Ä â º\ Hï rq Ç © Ð` .

Ô á Ð[ jÛ ¼ ¥½ D Ë` + ¦ Ó ¾ r © v B j ¸o ‫כ‬ ¹½ ¨ Ó ½ `Ø ¦ æ7 ¤r á v l 0 A Ês < . s ` ‫כ‬ ¦{ { © HÛ ¼H ¦ × Q × æl Û ¼H × ¦ Qs . • ß él Û ¼H × ¦ Q H l © Û ¼H × ¦ Q Ð @ © /& Ü h ¼ Ð > z ´' a ) .

– ' X à O Ô µ ÏÒ 1 t q ³F & à º' × æ á Ô Ð [ jÛ ¼\ ¦× æé ß ¦ à ÔX à O Ô\ ¦% o K ô Ç . % o = Q å à ÔX à O Ô\ Ø Ôt ß ë Ð: x ³F & á Ô Ð[ jÛ ¼\ ¦ï rq ¢ a« ÑÇ © Ð` | .

4.2.3

• K %_ c¦ 9 >» É(context switch): z . ´ ' × æ á Ô Ð[ jÛ ¼ _ I © \ ¦ Ð a ' ¦D h Ðî rá Ô Ð[ jÛ ¼_ I © \ ¦ CPU\ & F h Hõ &

` ñ ¦´ ô ú Ç .

• ¸× ¼Û ¼0 Au (mode switch)ü <á Ô Ð[ jÛ ¼Û ¼0 Au _ s & h

• Ô á Ð[ jÛ ¼_ ë HÐ o(context) r á É Ô Ð[ jÛ ¼_ PCB\ »t Ä a ) .

– ¸× ¼Û ¼0 Au : 6 x ¸× ¼\ " f& V , ¸× ¼ Ð | cM ¨ :µ ÏÒ 1 t q 9, ¢ a ë HÐ o ¨ s 8 ‫כ‬ 9 ¹ t · §¦ ú r Û ¼% 7 Û ¼× ` þ ¦ 6 xô Ç . \ V) r Û ¼% 7 ñØ ¦

• ëÐ H o §¨ \ 8 è‫כ‬ ¹÷ & Hr ç ß rí É Hà º ¸! QK × ¼s . • s ` ‫כ‬ ¦F G4 ¤ l 0 Aô Ç~ Óî ½ ß

– á Ô Ð[ jÛ ¼Û ¼0 Au : ³F & z ´ ' × æ á Ô Ð[ jÛ ¼ ¦× \ æé ß ¦D há Ô Ð[ jÛ ¼\ ¦z ´ ' ½ ÉM + :µ ÏÒ 1 t q 9, ¢ a ë HÐ o ¨ 8 9 ‫כ‬ ¹ . 4.2.2

Ør U Ã Åò ¹ ÿ &

– : ¤Ã £ º"

§ î

# î Q – Y Ut Û ¼' | ½ 9 Ë + – Û ¼Y U× ¼ 6 x

­ > ú Ú n [

• y Ç © 6 £ § Y V_ á Ô Ð[ jÛ ¼\ ¦ &

ñ # Å Ò Hâ «X

ä · a(scheduler) e .

4.3 4.3.1

• á Ô Ð[ jÛ ¼_ 7 xÀ á Ó

z ³ º: g­ ; c6 ¢ X Å ì m V t Ë R

• Ô á Ð[ jÛ ¼ Hà º' ¸× æ\ D h Ðî r# Qá Ô Ð[ jÛ ¼ ¦Ò \ t$ q

½ í ÉÃ + ºe . s M :á Ô Ð[ jÛ ¼\ ¦Ò t$ q

í H Ô á Ð[ jÛ ¼\ ¦É Ù ¿è « ×T zâ «(parent process) ¦, Ò t$ q

í aá ) Ô Ð[ jÛ ¼\ ¦ Ð è Ï « ×T zâ «(child process) ô Ç .

· » ] äÐ

è Ï « ×T zâ «(I/O-bound process): > í ß Ð H{ 9 Ø ¦§ ` 4 ¦´ §s ú Há Ô Ð[ jÛ ¼ – N ñ Ñ

5 ä »Ð « Ï è ×T zâ «(CPU-bound process): 9 { Ø ¦§ 4 Ð H> í ` ß ¦´ §s ú Há Ô Ð[ jÛ ¼

• d á Ô Ð[ jÛ ¼ HÕ ª s ‫כ‬ ‫כ‬ 9 ¹ô Ç " ¶` é ¦î r%

^ ò j ] РÒ' f ] ~ X Î` à ¦Ã ºe ¦, Â Ò ¸á Ô Ð[ jÛ ¼_ ¶\ é " ô Ç&

÷ ñ &# Q~ Î` à ¦Ã º ¸e .

• * × e â «X

·a ä (long-term scheduler): ô Ç \ #

î ' Ü ¼ Ðà º' ½ Éà + ºe H \ _ O à º ] jô Ç÷ &# Qe . s

Ä â º\ ï rq ¢ a« ÑÇ ©\ à º6 x t 3 w l H O \ rn É Û ¼ß ¼\ Ä »t ÷ & H \ Û O ¦(job pool)\ Ä »t a ) . l © Û ¼H × ¦ Q H \ Û O ¦\ " fï rq ¢ a« ÑÇ © Ð` | 9 6 § £ \ ` O ¦ &

ô ñ Ç . r´ É ú Ð \ O Û ¼H × ¦ Q(job scheduler) ô Ç .

• d á Ô Ð[ jÛ ¼ % ` 3 ¦Ã ºe H ¶ " é` ¦ô Ç&

ñ Çá ô Ô Ð[ jÛ ¼ Ã º´ § ú r É d á Ô Ð[ jÛ ¼\ ¦Ò t$ q

í r # Û ¼% ` 7 ¦ q r v H ` ‫כ‬ ¦~ Ót ½ HX < ¸¹ § ¡ s a ) .

– s Û ¼H × ¦ Q H × æá Ô ÐÕ ªA b ç

_ &

ñ ¸(degree of multiprogramming)\ ¦ &

ô ñ Ç . r Û ¼ 7 % _ $

0 í xs p $ ÷ &t · § ú ¸2 ¤ × æá Ô ÐÕ ª A b ç

_ &

ñ ¸ H ¸] ÷ X &# Q ô Ç .

• Â Ò ¸ü < d á Ô Ð[ jÛ ¼_ z ´' + AI þ – Ò Â ¸ü < d á Ô Ð[ jÛ ¼ #

' î Ü ¼ Ðz ´' a ) .

– © l Û ¼H × ¦ Q H{ 9 ا ¦ × 4 æd õ > í × ß æd á Ô Ð[ jÛ ¼\ ¦& X h ]ô Çq Ö ¦ Ð × K þ ô Ç .

– d á Ô Ð[ jÛ ¼ ¢ a« Ñ| cM ¨ : t Â Ò ¸á Ô Ð jÛ [ ¼ Hl ; 2 .

– Ä »_ Û ¼ü <° ú rr É Û ¼% 7 r É l © Û ¼H × ¦ Q\ ¦ 6 x t · § ú H .

• d á Ô Ð[ jÛ ¼_ Å Ò è/ Nç B 8 ß ¤ £ \ " f¿ º t x$ p 0

í

• 5 í e â «X

· ä a(short-term scheduler): s Û ¼H × ¦ Q Hï rq ¢ a« ÑÇ ©\ " f 6 §\ £ CPU\ ½ É{ + © # z ´ ' ½ Éá + Ô Ð[ jÛ ¼\ ¦ &

ô ñ Ç . r´ É ú Ð CPU Û ¼ H × ¦ Q ô Ç .

– Ò Â ¸á Ô Ð[ jÛ ¼_ Å Ò è/ Nç B _ ß 4 ¤ rs : ½ É + © { a ) . – d á Ô Ð[ jÛ ¼ H _ / Nç B \ ß & F h ½ Éá + Ô ÐÕ ªÏ ` þ ¦ t ¦e .

• ä

»e â «X

· ä a(medium-term scheduler): r ì r½ É + r Û ¼% 7 \ " f Há Ô Ð[ jÛ ¼\ ¦B j ¸o \ " fn Û ¼ß ¼ Ð ` { ì © rç z ß ´ ' ÷ &t 3 w l ¸2 ¤ H

Ä â º e . s ‫כ‬ r É × æÔ á ÐÕ ªA b

_ ç &

ñ ¸\ ¦ ¸] X #

• \ V) Ä »_ Û ¼ – yá Ô Ð[ jÛ ¼ H1 q: l ¤ô £ Ç&

à ñ º° ‫ כ‬ ú è « ×T zâ « ß Ï Ð

~ (process identifier)\ _ K d Z > a ) . 3


B N /Ä »B j ¸o #define BUFSIZE 10 typedef struct { ...} item; item buf[BUFSIZE]; int in=0, out=0; tí q Ò ß ï× ¼ while(1) { /* nextProduced\ 6 § £ s % 7 ` ¦Ò tí q */ ß while(((in+1) % BUFSIZE) == out); buf[in] = nextProduced; in = (in+1) % BUFSIZE; } è q ï× ¼ while(1) { while(in == out); nextConsumed = buf[out]; out = (out + 1) % BUFSIZE; /* nextConsumed\ e H s % 7 ` ¦ èq */ }

– D há Ô Ð[ jÛ ¼ H fork r Û ¼% 7 ñØ ¦\ ¦s 6 x # Ò t$ q

ô í Ç . – fork\ ¦: xK d á Ô Ð[ jÛ ¼\ ¦Ò tí q

$ s á Ô Ð[ jÛ ¼ HÂ Ò ¸á Ô Ð[ jÛ ¼_ Å Ò è/ Nç B _ ß 4 ¤ r` : ¦ ½ É{ + ~ © Î Ã H . s & h r fork r É Û ¼ 7 % ñØ ¦_ ì ͨ ø ° 8 ‫כ‬s ú " f Ð Ø Ô . – d á Ô Ð[ jÛ ¼ H Ð: x execlp r Û ¼% 7 ñØ ¦ ° õ ú rr É Û ¼% 7 ñØ ¦` ¦s 6 x # ½ É{ + ~ © Î Ã r É l rÅ > Ò èB N /ç \ ß D h Ðî rá Ô ÐÕ ªÏ Ü þ ¼ ÐW = # Q H 6 §\ £ Õ ªá Ô ÐÕ ªÏ ` þ ¦Ã º ' ô Ç . – Â Ò ¸á Ô Ð[ jÛ ¼ H> 5 q¢ Å ¸ rá É Ô Ð[ jÛ ¼\ ¦ t$ q Ò

½ í Éà + ºe . ë ß 8s ½ © É{ + 9 s \ Ü O ¼ wait r Û ¼% 7 ñØ ¦` ¦s 6 x # d á Ô Ð [ jÛ ¼_ 7 x« á Ñ\ ¦l w n =à ºe . • \ V) ¶ û ¸Ä ºÝ ¼ NT – d á Ô Ð[ jÛ ¼\ ¦Ò t

q í½ $ ÉM + :Â Ò ¸á Ô Ð[ jÛ ¼ _ Å Ò è/ Nç B _ ß 4 ¤ r` : ¦½ É{ + K © × ¦Ã º ¸e ¦, Â Ò ¸ d Å Ò è/ Nç B \ ß & F h ½ ÉD + há Ô ÐÕ ªÏ _ þ s 2 §` £ ¦× ¦Ã º ¸e . 4.3.2

<Õ ªa > 4.6> Ä Ë »ô Ç! Q( èq Ò tí q ß ë H] j

Þz Ò »

– a ? ¸á Ô Ð[ jÛ ¼(cooperating process): rá É Ô Ð[ jÛ ¼_ z ´ ' \ %

ò Ó` ¾ ¦Å Ò H¢ ¸ H%

ò Ó` ¾ ¦ Î Ã ~ Há Ô Ð[ jÛ ¼

• á Ô Ð[ jÛ ¼ H _ t } ë H ` © ¦Ã º' 7 x á « Ñ a ) . s M :á Ô Ð[ jÛ ¼ H exit r Û ¼% 7 ñØ ¦` ¦s 6 x # î r%

^ ò ] j\ > _ ] j\ ¦‫כ‬ ¹' Aô õ Ç . s M : d rÂ É Ò ¸\ > õ X <s ' \ ¦ ² ½ ú Éà + º e . Â Ò ¸ H wait rÛ ¼% 7 ñØ ¦` ¦: xK s X <s ' ¦~ \ Î` à ¦Ã ºe .

• a ? ¸á Ô Ð[ jÛ ¼ ‫כ‬ 9 ¹ô Çs Ä » – ñ &

Ð/ NÄ B »: ° ú r& É

ñ Ð(\ V: / NÄ B »

{ ) 9 ‫כ‬ 9 ¹ Éà + ½ ºe . – > í 5 ß q Å o: Ð r É õ \ ¦% l 3 0 AK í > ` ß ¦ ¾ º# Qz ´' + ½Ã É ºe . s s ‫כ‬ 0 x p l 0 AK " f Hì Í× ø ¼r × æ% o l ‫כ‬ ¹ è(\ V: CPU, { 9 Ø ¦§ 4 u © ) e # Q ô Ç . – ¸Ñ t ý o: l 0 x_ p ì ro \ ¦0 AK – ¼ o # $

: í 6 x Hô Ç \ # Q \ ` O ¦1 xr l à \ º' ½ É + ‫כ‬ 9 ¹ 7 x7 á xe á .

• Â Ò ¸á Ô Ð[ jÛ ¼ H abort r Û ¼% 7 ñØ ¦` ¦s 6 x # d á Ô Ð[ j¼ Û\ ¦y ] © j Ðá x 7« Ñr ~ ´Ã ºe . • y ] © j Ð7 x« á ÑK H

Ä â º – ½ É{ + © a ) ¶ " é` ¦ íõ 6 xô Ç

Ä â º – d \ > ½ É{ + ô © Ç O \s 8s © ‫כ‬ 9 ¹\ O H

Ä â º

• Ô á Ð[ jÛ ¼ç \ ß a ? ¸ s À Ò# Qt l 0 AK " f H © ñ: x HB j& m 7 §õ £ 1 xl l oB j& m 7 §s £ 9 ¹ ‫כ‬ .

– Â Ò ¸á Ô Ð[ jÛ ¼ 7 x« á Ñ÷ & H

Ä â º: î r%

^ ò ] j HÂ Ò ¸á Ô Ð[ jÛ ¼ 7 x« á Ñ a ) d á Ô Ð[ jÛ ¼ _ à º ' ` ¦) | Ì Ã t · §` ú ¦Ã ºe . s

Ä â º \ Â Ò ¸á Ô Ð[ jÛ ¼ 7 x« á Ñ÷ & Õ ª _ ‫כ‬ ¸ H Há < Ô Ð[ jÛ ¼[ t þ ¸ Êa < 7 x« á Ñ÷ &# Q ô Ç . s ³ & ` © ¦; ¤ í+ A7 þ x« á Ñ(cascading termination) ô Ç .

4.4.1

• q Òí t ß á Ô Ð[ jÛ ¼ H èq á Ô Ð[ jÛ ¼ ‫כ‬ 9 ¹ô Ç

ñ & Ð\ ¦Ò tí q ô ß Ç . • V \) á Ô; 2' á Ô ÐÕ ªÏ (Ò þ tí q ß ), á Ô; 2' ½ ¨1 xl l ( è q )

• \ V) Ä »_ Û ¼ – ; ¤ í+ A7 þ x« á Ñ\ ¦ t · § ú ¦, inits ¦ H r Û ¼% 7 á Ô Ð[ jÛ ¼ ¦ á Ô Ð[ jÛ ¼(orphan process)_ D hÂ Ò ¸ a ) .

4.4

ºR } t m à Ø< U g

• q Òí t ß ü < èq Hs \ ¦0 AK ! Q( \ ¦/ NÄ B »K Ç ô . • q Òí t ß _ Ò tí q 5 ß q Å ¸ü < èq _ èq 5 q Å ¸\ ¦´ ú ¦Ã Ø ºe # Q ô Ç .

³ z º: g­ m¶ ÷I Ä í

• #

î ' à º ' ÷ & Há Ô Ð[ jÛ ¼ç _ ß a> '

• ! Q( _ : ¤$ £

\ í r É èq Ò tí q ß ë H] j_ ì rÀ Ó

– 1 qw l n á Ô Ð[ jÛ ¼(independent process): r É á Ô Ð[ jÛ ¼_ z ´ ' \ ò %

Ó` ¾ ¦Å Òt ¸~ Ît à · § ú Há Ô Ð[ jÛ ¼

– º Áô Ç! Q( : èq Hl 9 H

Ä â º t e ë Ò ß tí q ß Hl 9 H

Ä â º \ O . 4


– Ä »ô Ç! Q( : èq H! Q( q # Qe Ü ¼ l 9 ¦, Ò tí q ß H! Q( G 0 >4 Re Ü ¼ l 9 ô Ç .

– º ¿á Ô Ð[ jÛ ¼ç \ ß H ¸f _ a Aß ¼ë ß r > ô F Ç . • @ /g A~ Ód ½

• s ! Q( Há Ô Ð[ jÛ ¼ç : ß x (IPC, InterProcessCommunication) l 0 x` p ¦ s6 x # ë [ ß tà þ ºe ¦, á Ô ÐÕ ªA Q / NÄ B »B j ¸ o\ ¦s 6 x # f ] ½ X ¨ ³½ & Éà + ºe .

– send(P, msg): á Ô Ð[ jÛ ¼ P\ > msg\ ¦ 5 x Å Ç ô . – receive(Q, msg): á Ô Ð[ jÛ ¼ Q ÐÂ Ò' msg\ ¦ º Ã ô Ç .

• Ä »ô Ç! Q( èq Ò tí q ß ë H] j_ \ V: Õ ªa > 4.6 Ë

• q@ /g A~ Ód ½ : à º _ s 2 §ë £ " ß

Ñ î þ > ] jr K H~ Ód ½

– s \ V\ " f Hþ j@ / BUF-1> h_ s % s 7 ! Q ( \ rF > ½ ÉÃ + ºe .

4.5

– send(P, msg): á Ô Ð[ jÛ ¼ P\ > msg\ ¦ 5 x Å Ç ô .

³ z º: g­ m ÞÞ Å Ã

– receive(id, msg): e _ _ # Q Ô " á Ð[ jÛ ¼ Ð Ò' Â msg\ ¦ Ã º ô Ç . 5 x Å ô Ç á Ô Ðj [Û ¼_ 2 s §s £ id\ $ © a ) .

• IPC Há Ô Ð[ jÛ ¼ ° ú rÅ É Ò è/ Nç B ` ß ¦/ NÄ B » t · § ú ¸á Ô Ð[ jÛ ¼ç \ ß : x ¦Õ ª[ t_ þ ' 1 x` l ¦1 x l l oK × ¦Ã ºe Hj B& m 7 §` £ ¦] j/ Nô B Ç . 4.5.1

4.5.2.2 ë Ñâ 5

§ é >

8 cS U Å« ¹ oS ­ y ð

• ß ç] : X x \ " fB jr t HB j{ ~ 9 ÌÛ Ã ¼ íà Ô Ð ú ² a ) .

• B jr t ² r ú Û ¼% 7 rX É <s ' _ / NÄ B »\ s O á Ô Ð [ jÛ ¼ç \ ß : x ` ¦½ Éà + ºe ¸2 ¤K ï r .

• s~ Ód ½ \ " f¿ ºá Ô Ð[ jÛ ¼ H# Q> h_ B j{ ~ 9 ÌÛ Ã ¼ ¦s \ 6 x # : x ½ Éà + ºe .

• B jr t ² ~ ú Ód ½ _ IPC H l r& : Ü h ¼ Ð 6 §õ £ ° ú r¿ É º t í ` ß ¦] j/ Nô B Ç .

• º ¿á Ô Ð[ jÛ ¼ç \ ß : x s s À Ò# Qt l 0 AK " f H j{ B ~ 9 ÌÛ Ã ¼\ ¦" f Ð/ NÄ B »K ô Ç .

– send(msg) – receive(msg)

• ç ] ß : X x _ : ¤f £

ç

• B jr t _ ß ¼l H & { h à 9 ºe ¦ ¦&

÷ ñ &# Qe ¦Ã ` ºe .

– º ¿á Ô Ð[ jÛ ¼ B j{ ~ 9 ÌÛ Ã ¼\ ¦/ NÄ B »½ É +

Ä â º\ s ß ë ¿ ºá Ô Ð[ jÛ ¼ç \ ß a Aß ¼ [ & O

ñ a ) .

– B jr t ß ¼l & s h á Ô ÐÕ ªA b

ç r É / '0 >t ½ ¨ ³s & # Q 90 > .

– Aß a¼ H# Q> h_ á Ô Ð[ jÛ ¼ü < a| ' cà ¨ ºe .

• ¿ ºá Ô Ð[ jÛ ¼ç \ ß : x l 0 AK " f H¿ ºá Ô Ð[ j Û ¼ç \ ß : x a Aß ¼ ‫כ‬ 9 ¹ . s a Aß ¼ H ª > ½ ¨ ³| & cà ¨ ºe t ë # ß l " f H Ho 7 & ½ h ¨ ³8 & ¤ £ \ " f] H X ô Ç .

– º ¿á Ô Ð[ jÛ ¼ç \ ß H# Q> h_ a Aß ¼ rF > Éà + ½ ºe . • ] j/ N B í _ ß + AI þ

– f ] ¢ X ¸ Hç ] ß : X x

– send(A, msg): B j{ ~ 9 ÌÛ Ã ¼ A Ð msg\ ¦ ² ô ú Ç .

– @ /g A¢ ¸ Hq @ /g A: x

– receive(A, msg): B j{ 9 ~ ÌÛ Ã ¼ A ÐÂ Ò' msg\ ¦ º Ã ô Ç .

– 1 x¢ l ¸ H"

r î & ! h Q( a A – 4 ¤ r : ² ¢ ú ¸ HÅ Ò è ² ú

• Ô á Ð[ jÛ ¼ P1 , P2 , P3 B j{ 9 ~ ÌÛ Ã ¼ A\ ¦/ NÄ B »ô Ç ¦ . P1 s A ÐB jr t \ ¦ ² ú % ` i ¦M :, P2 , P3 ¸¿ º receive` ¦z ´' # Qb G> | c ¨ ? õ H 6 x H~ Ód ½ \ Ø Ô . 0 xô p Ç~ Ód ½ r É 6 §õ £ ° ú .

– ¦&

¢ ñ ¸ H ß ¼l 4.5.2

Ëã _ ã Ë _

4.5.2.1 Ò â Ï

§ é > • f] : X x \ " f Hy á Ô Ð[ jÛ ¼ HÃ º ¢ ¸ H5 x Å _ s 2 §` £ ¦"

Ñ î þ > ] jr # ô Ç .

– j B{ ~ 9 ÌÛ Ã ¼\ ¦ ¸f ¿ ºá Ô Ð[ jÛ ¼ç \ ß ë / ß NÄ B » Éà + ½ ºe ¸2 ¤] jô Çô Ç .

• f ] : X x _ : ¤f £

ç

– ô Ç \ ô Çá Ô Ð[ jÛ ¼ë receive\ ß ¦z ´ ' ½ Éà + º e ¸2 ¤] jô Çô Ç .

– : x ` ¦ ¦ Há Ô Ð[ jÛ ¼ç \ ß 1 xÜ l ¼ Ð a Aß ¼ [ & O

ñ a ) . 7 ¤, £ @ © /~ Ó_ ½ s £ 2ë § ß · ú ¦e Ü ¼ a ) .

– rÛ ¼% s 7 ¿ ºá Ô Ð[ jÛ ¼× æe _ Ð × þ # ë z ß ´' ¸2 ¤ô Ç .

– Aß a¼ H&

S ñ X > ¿ º> h_ á Ô Ð[ jÛ ¼ë ß a ' a ) .

• j B{ ~ 9 ÌÛ Ã ¼ Há Ô Ð[ jÛ ¼ èÄ »½ Éà + º ¸e ¦î r%

ò ] ^ j èÄ »½ Éà + º ¸e . 5


• á Ô Ð[ jÛ ¼ B j{ ~ 9 ÌÛ Ã ¼\ ¦è Ä » H

Ä â º

– Â Ëø £ 5 % ×: 5 x Å Ha Aß ¼ G 0 >4 Re H

â º\ Ä ë @ ß /l K ô Ç . – È Áø £ 5 % ×: 5 x Å @ /l H

Ä â º \ O .

– èÄ » ü <Õ ª _ ‫כ‬ 6 x \ ¦½ ¨ì rô Ç . – èÄ » HÕ ªj B{ ~ 9 ÌÛ Ã ¼ РÒ' à º ë ½ ß Éà + º e ¦, 6 x HÕ ªB j{ 9 ~ ÌÛ Ã ¼ ÐB jr t \ ¦ ² ë ú ½ ß Éà + ºe .

• » Äô Ç6 x| Ó¢ ¾ ¸ HÁ ºô Ç6 x| Ó_ ¾ ! Q( \ ¦ 6 x H ‫כ‬ ¦ ` r´ É ú Ð 1 x! l Q( a As ô Ç .

• î r%

^ ò ] j B j{ ~ 9 ÌÛ Ã ¼\ ¦è Ä »½ É +

Ä â º

4.5.5 ; d: Ì Ry © ¢ ¤‫כ‬ 2000

– B j{ 9 ~ ÌÛ Ã ¼ H: ¤& £

á ñ Ô Ð[ j" f\ a÷ ' &t · § ú H .

• û ¶ ¸Ä ºÝ ¼ 2000 r É × æî r%

¨ ò 8

(Win32, Win16, â MSDOD, OS/2, POSIX)` ¦ ] j/ Nô B Ç . s \ ¦ 0 AK ¨ y 8

_ â á Ô ÐÕ ªÏ õ þ & V ç , \ ß ' ` s Û ¼ ½ i % É` + ¦ H 0 Ar Û ¼% (subsystem)` 7 ¦ 6 xô Ç . s ‫כ‬ r CMU\ É " f] jî ô ß Ç Mach î r%

^ ò ] j 6 x Ç~ ô Ód ½ s .

– á Ô Ð[ jÛ ¼ 6 §õ £ ° É ú r ` ‫כ‬ ¦½ Éà + ºe ¸2 ¤ Õ ª _ ‫כ‬ 9 ‫כ‬ ¹ô ÇB j& m 7 §` £ ¦] j/ NK B ô Ç . • h DÐ î rj B{ ~ 9 ÌÛ Ã ¼_ Ò t$ q

í • B j9 { ~ ÌÛ Ã ¼\ ¦ : xô Ç B jr t _ Ã º õ ú ² • B j{ Ã 9 Ì ~Û ¼_ ] j

• û ¶ ¸Ä ºÝ ¼ 2000_ á Ô Ð[ jÛ ¼ H 0 Ar Û ¼% õ 7 t % i Ô á Ðr $ ñØ ¦(LPC, Local Procedure Call)` ¦s 6 x # : x ô Ç . s M :á Ô Ð[ jÛ ¼ H9 t þ s à Ô, Ar 0 Û ¼% 7 r" É f! Q a ) . LPC HB jr t ² ~ ú Ó ½ _ d á Ô Ð[ jÛ ¼ç : ß x B j& m 7 §s £ .

– s

Ä â ºB j{ ~ 9 ÌÛ Ã ¼\ ¦Ò t$ q

ô í Çá Ô Ð[ jÛ ¼ l r& : Ü h ¼ Ð èÄ » ÷ &9, s á Ô Ð[ jÛ ¼ë s ß s B j{ 9 ~ ÌÛ Ã ¼ РÒ' j Br t \ ¦Ã º ½ Éà + ºe .

4.5.3

– r Û ¼% 7 ñØ ¦` ¦ s6 x # èÄ » ¶õ Ý Ã º ¶ Ý Ç` ô ¦ rá É Ô Ð[ jÛ ¼\ > × ¦Ã ºe .

• LPC H RPC(Remote Procedure Call)ü <Ä » t LPC ß ë H° ú rl É > \ " fz ´' ÷ & Há Ô Ð[ jÛ ¼ç ß : \ x ` ¦½ ÉM + : 6 x a ) .

ÞM Ò × D

• û ¶ ¸Ä ºÝ ¼ 2000 r É 6 §õ £ ° ú r[ É j7 xÀ á Ó_ LPC\ ¦ j/ ] Nô B Ç .

• B jr t ² ` ú ¦½ ¨ ³ & H~ ÓZ ½ O

– 256 s à Ô Ð & h rB É jr t ë _ ß §¨ : 8 í Ô_ à B jr t Ç ©\ ¦ 6 x – 256 s à Ô Ð HB jr t _ §¨ 8 • section Ì o^ (/ NÄ B »B j ¸o )\ ¦ 6 x • íà Ô_ B jr t Ç © Ð H section Ì o^ \ @ /ô Ç í ' ü <B jr t _ ß ¼l ë ß ² ú – callback B j& m 7 § £ 6 x: B jr t ß ¼l ü < © a ' s O \ 6 x½ Éà + ºe Ü ¼9, q 1 xl l d Ü ¼ ÐB jr t ² s ú s À Ò# Q .

– ¡ tÌ C(blocking): f r´ É ú Ð âe Ð (synchÏ ronous) • l 1l x d send: 5 x Å á Ô Ð[ jÛ ¼ H à º B jr t \ ¦Ã º B j{ ~ 9 ÌÛ Ã ¼ Î Ã ~ [ t{ þ M 9 : t @ /l ô Ç . • 1 x l ld receive: º à ½ ÉB + jr t e ` ¦ : M t @ /l ô Ç . – j ¡ tÌ C(nonblocking): f r´ É ú Ðj âe (asynchronous) Ï Ð

• LPC H íà Ô(port) Ì o^ \ ¦s 6 x # á Ô Ð[ jÛ ¼ç ß ` ¦s À Ò ¦Ä »t ô Ç . íà Ô H ~ ª Ó ½ Ó: ¾ x G s , V .

• q1 xl l d send: 5 x Å á Ô Ð[ jÛ ¼ HÁ º ¸ j | Br t \ ¦ 5 x Å ¦ r É \ ` O ¦ô Ç . • q 1 xl l d receive: Ã º HÄ »´ òô ÇB j t r \ ¦ Ã º V B , jr t \ ¦ Ã º Ç ô .

• íà Ô_ 7 xÀ á Ó – íà Ô(connection port): ¸ Há Ô Ð[ jÛ ¼ ] X H½ ÉÃ + ºe Hs 2 §` £ ¦ t H íà Ô – : x íà Ô(communication port): y : x s À s Ò# Q| M 9 :½ É{ + ÷ © & H íà Ô

• # Q ¸½ ËÜ + ¼ Ð 6 x½ Éà + ºe . \ V) 1 xl l d send, q 1 xl l d receive 4.5.4

• á Ô Ð[ jÛ ¼ç : ß x r É 6 §õ £ ° s ú s À Ò# Q .

! a( aË Â S

– þ 9 t s à Ô H 0 Ar Û ¼% _ 7 íà ÔÌ o _ ^ [ ½ t` þ ¦> h~ Óô ½ Ç . – 9 t þ s à Ô H ‫כ‬ ¹' A` õ ¦ ² ô ú Ç . – " f! Q H¿ º> h_ > h 6 x: x íà Ô\ ¦Ò t$ q

í ¦s × æ \ @ /ô Ç ½[ t` þ ¦9 t þ s à Ô\ > ² ô ú Ç . – 9 t þ s à Ôü <" f! Q HK { © íà Ô_ [ ½ t` þ ¦ 6 s x # B jr t ¢ ¸ H callback` ¦ ² ú ¦ x² £ 6 ` ú ¦l ; 2 .

• f] , ç X ] ß : X x ¸¿ º §¨ ÷ 8 & HB jr t He r Ç © \ Ð a ' a ) . • e r Ç ©\ ¦½ ¨ ³ & H~ ÓZ ½ O – È Á£ × % (zero capacity): a Aß ¼ H@ /l HB j r t \ ¦ | º 9 Ã\ O . " f5 x Å Hì Í ø × ¼r à º j Br t \ ¦Ã º ½ ÉM + : t @ / l K ô Ç . 6


client computer

server computer client process

local call

marshal argument

server process

send request

receive request

umarshal arguments

select procedure

execute procedure return

local return

client

unmarshal results

client stub procedure

receive reply

send reply

marshal results

service procedure communication server stub module dispatcher procedure

communication module

<Ă• ÂŞa > 4.7> Âś Ă‹ " ĂŠ ĂĄ Â? Ԗ Ă?r $  ùĂ˜ ÂŚ_ ½ ¨$

Ă­

4.6 4.6.1

z Ăź > T ÂŽ Ă…² š ÂŽ-" e! aS ­ ÂŽy ; Ă° c" e— ÞÞ Ăƒ Ă…

• ĂŠ " Âś \ Â?  e Â? ” H9 t Ăž s ƒ Ă Ă”Â? H# Q‹ ĂĄ " Ԗ Ă?r $ \ ÂŚ] j N B / Â? Ht Ă’ ÂŽ oK Â? ^ ÂŚĂƒ Âşe ” .

} º”

• RPCÂ? H stub procedure\ ÂŚs 6 x  # ÂŒ4 ¤¸ Â&#x; šô Ăş Ç? /Ă‚ Ă’: x Â&#x; ` Â’ ÂŚ 6 x  Â– Ă?Ă‚ Ă’' ¸ u n ĂŻ r . 9 t Ăž s ƒ Ă Ă”_ stub Ԗ ĂĄ Ă?r $ Â? H" Âś ĂŠ \ Â?  Â„ ² ˜ Ăş Â? H

p ' \ ÂŚ RPC\  Â?Â? Ăş ´ H+ AI Ăž – Ă? Ă‹ ¨# Q" f! Q\  Â„ ² ˜K Ăş Ă… ғ ÂŚ, " f! Q\  f~ " Γ Ăƒ r6 É x² ÂŁ š` Ăş ÂŚ9 t Ăž s ƒ Ă Ă” s K ½ Ă‰Ăƒ + Âşe Â? ” H+ A Ăž – I Ă?4 ¤œ Â&#x; " ĂŠK ĂŻ r . Ă„ Âť Ă´ Çl 0 x` p ÂŚ Â? H stub ĂĄ Ԗ Ă? $ r " f! Q\  Â• ¸Â” rF > Ă´ Ç .

• š Âż3 i(socket)“ 1 r: É x Â&#x; Â’ _ = Q` ĂĽ ÂŚ&

_ Ăą Â? H Ăœ ‍כ‏ Ÿ– Ă?" f, W 1Ă Ă”0 >Ă&#x; Âź\ ÂŚ: xK Â&#x; : x Â&#x; Â’ Â? HÂż ºå Ԗ Ă?[ jĂ› ÂźÂ? Hy • ÂŒ ™ èĂ– ` Âż ÂŚĂŤ –[ Ă&#x; t# Ăž Qs ` ‍כ‏ ÂŚs 6 x  # ÂŒ: xÂ’ Â&#x; Ă´ Ç . • ™ èĂ– “ Âż r IP Ă… É ҙ èß <Â&#x; Ă­Ă Ă”  ù\  _ K d Z ” Â? > a ) . • : ¤& ÂŁ

" Ăą fq Ă› Âź\ ÂŚ ] j/ N B Â? H " f! QÂ? H ¸ ˜ ¡ Ăş ˜ Ăş 9 ” Â&#x; Ă­ Ă Ă”   ù(well-known port)– Ă? 9 t Ăž s ƒ Ă Ă”_ ‍כ‏ š' A Ăľ ÂŚl ` ; Â? 2 . \ V) HTTP: 80

• l> ç –_ Ă&#x; Âł ð‰ Âł_ & s • ¸s ĂĄ Ԗ Ă?r $ K K r ĂŻ .

• Ă… ҙ è 166.104.226.74“  ùĂ› Ÿà Ă”_ 9 t Ăž s ƒ Ă Ă” Ă… ҙ è 210.119.189.173“ Ă› R / " f! Q\  > ƒ Œ‍כ‏ ` š' A Ăľ “ ÂŚz ¡Ăœ Ÿ€ 9 t Ăž s ƒ Ă Ă”_  ùĂ› Ÿà Ă”Â? H9 t Ăž s ƒ Ă Ă”\  > Â&#x; Ă­Ă Ă”\ ÂŚ ½ É{ + ÂœK Š ĂŻ r . s Â&#x; Ă­ Ă Ă”_   ùÂ? H 1024˜ Ă? H   ùs . \ V\ ÂŚ [ t# Ăž Q 1625 ` Œ½ É{ + Âœ Š % i “ ÂŚ . Ă• ÂŞ Q€ 9 t Ăž s ƒ à Ôß <" f! Qç –\ Ă&#x;  Âƒ “ r (166.104.226.74:1625) ™ É è Ăľ Âż Ă– (210.119.189.173:80) ™ èĂ– ç Âż –\ Ă&#x;  s Ă€ Ă’# Q” .

• Â? H RPCĂź < Ă„ Âť Ă´ Ç RMI(Remote Method In vocation)` ÂŚ] j/ NĂ´ B Ç . s & “ h r RMIÂ? É HĂŒ o^ Â? ‰t † Ă“ ž Ԗ ĂĄ Ă?Ă• ÂŞA b

` ç ÂŚt " Âś(ĂŒ ĂŠ o^ Â? ‰„ ² ˜ 0 Ăş x)Ă´ p Ç .

• Â? H[ j7 xĂ€ ĂĄ Ă“_ ™ èĂ– ` Âż ÂŚ] j/ NĂ´ B Ç . – connection-oriented (TCP, Transmission Control Protocol) socket: „ or Ă› Âź% ›þ 7 Ă„ Âť Ă´ Ç Ă“d ½ ~ , Ă­ ” H" fĂ„ Âťt – connectionless (UDP, User Datagram Protocol) socket: Ă„ ºŸ r # Ă› Âź% 7 ›þ Ă„ Âť Ă´ Ç~ Ӕ ½ d, Ă­ H " f ˜ Ă? Âœá Š &t ¡ §6 Ăş § ÂŁ – multicast socket: UDP sockets t ĂŤ – Ă&#x; Ă— ĂŚĂƒ Âş Â’ \ ÂŚt Âś " ĂŠĂ´ Ç . 4.6.2

ĂŒ RĂ&#x; ÂŚ Ă„Âł f ÂŽz ÂşS $ [Æ „Ý Ăš s

• x S~ j è ĂŠ — Ă—k $ ÂĄ þ¡ (RPC, Remote Procedure Call)“ r É " Âś ĂŠ \ Â?  e Â? ” HĂĄ Ԗ Ă?r $ \ ÂŚ u t % ĂĄ i Ԗ Ă?r $ \ ÂŚ  ùĂ˜ ÂŚ 1 ws p Ăą  Ă˜ Œ½ ɺ + Ăƒe • ” ¸2 ¤K Â&#x; ĂŻ r . • " Âś ĂŠ ĂĄ Â? Ԗ Ă?r $  ùĂ˜ Œ“ r™ É èĂ– ˜ Âż Ă? Â? H Âœ0 Š AY U6 š_ \ : x Â&#x; Â’ B j& m 7 §s ÂŁ . • " Âś ĂŠ \ Â?  " fĂĄ Ԗ Ă?r $ \ ÂŚĂą  Ă˜ Œ½ Ă‰Ăƒ + Âşe • ” ¸2 ¤ Â&#x; l 0 A K " fÂ? HĂ• ÂŞ ` ‍כ‏ ÂŚ 6 x½  Ă‰Âş + Ăƒe • ” ¸2 ¤1 Â&#x; x2 p ¤K Â&#x; Z ~ Ç Ă´ . 7


c °2003, sangjin@kut.ac.kr

5.1.1

ĂžM Ă’ ÂŽ

• Ă´6 Ç x6 ÂŁ xĂĄ  Ă”– Ă?Ă• ÂŞĂ? ›\ Ăž  " f# ÂŒ Q t { 9 ` ÂŚ1 xr l \  Ăƒ Âş Â?½ Â&#x; ' Ă‰Ăƒ + Âşe ” . y •{ ÂŒ ` 9 ÂŚ% ƒo l 0 AK d ĂĄ ” Ԗ Ă? jĂ› [ Âź\ ÂŚĂ’ t$ q

Ă­ # ÂŒ% ƒo ½ Ă‰Ăƒ + Âşe t ” ĂŤ –å Ă&#x; Ԗ Ă?[ jĂ› Âź_ t$ q Ă’

“ Ă­ rq É 6 xs  Ă&#x; Âź9, " Âś/ ĂŠ NĂ„ B Âť ~ t 1 ¡ § Ăş .

* <* Ă– = ĂĽ i< K: ~ ÂĄq ç { ÂĄĂˆ ‘ 05 A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

• sq 6 x  Œ `Ă— ÂŚs “ ÂŚ " Âś/ ĂŠ NĂ„ B Âť\ ÂŚ~ > 1 l 0 AK • ¸ Â? 9 { a> ) hÂĽ s Æ Ă› ÂźY UĂ— Âźs . Ă„ Âť_ Ă› ” Ÿ½ ¨Â‰ Âł_ &

Ă„ â Âş\  ŸY Ă› UĂ— ŸÒ t$ q

q Ă­ 6 x“  rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ˜ Ă? @ /| ĂŒ 10C Ă„ &

Ăą ¸ • Ă˜ Ă” .

Part II. Process Management

spawn

finished

­ ÂŽ7 _Š ÂŽ

5

ready

5.1

running

4 ~ Âż

• â ÂŤQ cĂž ÂŤ(thread)Â? H ĂĄ Ԗ Ă?[ jĂ› Ÿß < Ă° Ă? t ø – Ă? CPU _  Â•\ ÂŒ ĂŠ O –0 Ă&#x; As . Ă• ÂŞ Q Ă› ÂźY UĂ— ÂźÂ? H{ ĂŹ 9 Ă?ĂĄ ø Ԗ Ă?[ j Ă› Âź(

Âť% ä Ă—è Â’ — Ă—T zâ ÂŤ(heavyweight process))Ăź <² ˜o Ăş Ă— R Âż % Â’è — Ă—T zâ ÂŤ(lightweight process) Ă´ Ç .

blocked

<Ă• ÂŞa > 5.2> Ă› Ă‹ ÂźY UĂ— Âź_ ÂœI Š  o

• ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H ĂĄ Ԗ Ă?Ă• ÂŞĂ? ›\ Ăž  Ăƒ ÂşÂ? ' Â&#x;Ăľ Ă• ÂŞ \ ‍כ‏  Â€ ‍כ‏ 9 šô Ç Âś " ĂŠ` ÂŚ _ > h^ ‰\  " f› ao ' l 0 AĂ´ Ç~ Ă“Z ½ s O t ĂŤ – Ă› Ă&#x; ÂźY UĂ— ÂźÂ? H " Âś_ ĂŠ › ao ' ˜ Ă? Â? H ĂĄ Ԗ Ă?Ă• ÂŞĂ? ›_ Ăž _ z ´' Â?â Â&#x; ĂŹ2 §Ăœ ÂŁ Ÿ– Ă?" f CPU_ z ´Â? ' Â&#x;á &l 0 AK Ă› ÂźH Ă— · &# Q Â? H> h^ ‰s .

5.1.2

ÂŽ7 ­ _Š ÂŽ8 ý— ¤V Ă‹ R

• Âź Ă›Y UĂ— Ÿ• ¸å Ԗ Ă?[ jĂ› Ÿß < Ă° Ă? t ø – Ă?°  Â“ Ăş r É ÂœI Š  o\ ÂŚĂ´ Ç . Ă• ÂŞa > 5.2 ‚ Ă‹ Ă?› Ăƒ ¸.

• Û ŸY U× Ÿ� HÛ ŸY U× Ÿd Z ” > , å Ԗ �Õ ª� ›

Ăž ĂŽ r' , Y Ut Ă› Âź' | ½ 9 Ă‹, Ă› + Ÿ× ˜(† Ăž ĂŠĂƒ < º ùĂ˜ ÂŚÂƒ %o \  Â€ 9 ‍כ‏ šô ÇB j— ¸ o )ĂŤ –` Ă&#x; ÂŚ t 9, % 7 Â˜Ă› Ÿà Ô ÒÏ r, X <s ' Ă‚ Ă’ĂŹ r, Â? r É r% ĂŽ

^ ò ‰] j " œ“ ĂŠ r° É  Â“ Ăş rĂ” É å– Ă?[ jĂ› Âź\  5 qĂ´ Ă… Ç Â? rĂ› É Âź Y UĂ— Ÿß </ NĂ„ B ô Ç .

• Ă” å– Ă?[ jĂ› ÂźÂ? HĂ‚ җ ¸ß < d ĂĄ ” Ԗ Ă?[ jĂ› Âź\ Œ½ ¨Ï r t ĂŤ – Ă&#x;  Â“ Ăş ° rĂĄ É Ԗ Ă?[ jĂ› Âź? /\  Ă› ÂźY UĂ— ÂźÂ? H˜ Ă?: xs Â&#x; ½ ¨Ï r` ÂŚ t ¡ §Â? Ăş H .

• _ ĂĄ Ԗ Ă?[ jĂ› Ÿ \" f #

Â? ĂŽ ' Â&#x; Ăƒ ÂşÂ? ' Â&#x;á &Â? H Ă› ÂźY UĂ— ÂźÂ? H Ă… ҙ è/ Nç B –þ Ă&#x; °  Â“ Ăş r É Âś " ĂŠ` ÂŚ" f– Ă?/ NĂ„ B Âť Â? HĂŹ Ă?€ ø , _ ( É ÂŽ Ă“' \  " f#

Â? ĂŽ ' Â&#x;Ăƒ ÂşÂ? ' Â&#x;á &Â? HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? HĂ“ t Ăź o & B h j— ¸o , n Ă› ÂźĂ&#x; Âźp x 1` ÂŚ/ NĂ„ B ô Ç .

I/O request request complete

time quantum expires

thread A (process 1) thread B (process 1)

• — ¸ÂŽ HĂĄ Ԗ Ă?Ă• ÂŞĂ? ›` Ăž ÂŚ Ă— ĂŚĂ› ÂźY UĂ— Âź\ ÂŚ 6 x  Â• ¸2 ¤ Â&#x; H Ăľ “ ÂŚ # ÂŒ$

0 Ă­ xs p † Ă“ ž Âœá Š &Â? H “ ‍כ‏ r É m .

thread C (process 2)

process created

– % a“ ~ r\ É V) Ă› R /" f! Q(‍כ‏ š' A Ăľ Â? rĂ› É ÂźY UĂ— Âź % ƒo ), R Ă› Ă” / Ăš Ă„ Âş$ (Ă• ÂŞa >Ăľ Ă‹ % 7 Â˜Ă› Ÿà Ă”\ ÂŚ Z • > ¸ Ă› ÂźY UĂ— Âź % ƒo )

blocked

registers

data

files

code

data

files

stack

registers

registers

registers

stack

stack

stack

(a) ĂŠ –{ Ă&#x; Ă› 9 ÂźU YĂ— Âź

ready

running

<Ă• ÂŞa > 5.3> ĂŠ Ă‹ –{ Ă&#x; 9 ĂĄ Ԗ Ă?[ j" fr Ă› Ÿ× ›\ Ăž  " f Ă— ĂŚĂ› ÂźY UĂ— Âź _Ăƒ Âş' Â? Â&#x;

– Âœ r\ É V) ĂŠ –{ Ă&#x; ĂĄ 9 Ԗ Ă?[ j" f¨ Š 8

\ â  " f> Ă­ –× Ă&#x; ĂŚd ” ĂĄ Ԗ Ă?Ă• ÂŞĂ? › Ăž code

time quantum expires

5.1.3

sX ĂŞ X Ăˆ ĂŹ

• ÂŁI Ă•Ă… Âą (responsiveness): ] Ă— ĂŚ Ă› ÂźY UĂ— Âź ĂĄ Ԗ Ă?Ă• ÂŞĂ? › Ăž rĂ• É “ ÂŞ _ ‍כ‏ { Ă‚ 9 Ă’ ^ ÂŚ2 ¤á Â&#x; &# Q• ¸ Qt Ă‚ Ă’ĂŹ r“ r> É qz Ă… 5 ´' Â?| Â&#x; cĂƒ ¨ Âşe ” . • x S Âœ j Ë ‍כ‏ Ă‚(resource sharing): l ‘ r& : Ăœ h Ÿ– Ă? °  Â“ Ăş r É Ԗ ĂĄ Ă?[ jĂ› Âź_ Ă› ÂźY UĂ— ÂźÂ? HB j— ¸o Ăź <Ă• ÂŞÂľ Ăš\ 1  å Ԗ Ă?[ j Âź_ Ă› " Âś` ĂŠ ÂŚ/ NĂ„ B ô Ç . Ă› ÂźY UĂ— ÂźÂ? H°  Â“ Ăş rĂ… É ҙ è/ Nç B – Ă&#x; ÂŚ/ ` NĂ„ B Âť Ă™ Ÿ– Ă?Ă› ÂźY UĂ— Ÿç –: Ă&#x; xÂ’ Â&#x; s 86 xs  .

(b) Ă— ĂŚĂ› ÂźY UĂ— Âź

• R ÂżV  Ă… (economy): ĂĄ ] Ԗ Ă?[ jĂ› Âź B j— ¸o Ăź < " Âś ĂŠ Œ½ ` É{ + Âœ Š € ´ §Â“ Ăş rš É ¸! QK ‰× Âź Âľ Ă?Ă’ 1 tĂ´ q Ç . Ă• ÂŞ Q

<Ă• ÂŞa > 5.1> ĂŠ Ă‹ –{ Ă&#x; Ăľ 9 Ă— ĂŚÂź Ă›Y UĂ— Ÿå Ԗ Ă?[ jĂ› Âź 1


process

thread

user space

k

run-time system

thread table

(a) @ /{ 9 ¸q 4 S

kernel space

kernel

k

process table

k

k

(b) { @ 9 /{ 9 ¸4 q S

k

k

k

(b) @ / ¸4 q S

<Õ ªa > 5.5> Ë × æÛ ¼Y U× ¼ ¸4 q S

(a) 6 x Û ¼Y U× ¼ process

– î% r

^ ò ] j Û ¼Y U× ¼l 0 x` p ¦t " ¶ é t · §Ü ú ¼ s s ‫כ‬ Ä »{ ô 9 Ç~ ÓZ ½ s O . ì Í@ ø / ÐÒ ty q î r%

^ ò ] j

\ â s O Û ¼Y U× ¼\ ¦t ¶ " é½ ÉÃ + º e .

thread

– V \) POSIX_ Pthread, Mach_ C-thread, Solaris_ UI-thread • & Û

â y «Q cÞ «(kernel thread) kernel thread table

– î r%

^ ò ] j f ] t X " ¶ô é Ç .

process table

(b) & V Û , ¼Y U× ¼

– &V s , Û ¼Y U× ¼_ Ò t$ q

, Û í ¼H × ¦a A, ao ' \ ¦{ ô © { Ç .

<Õ ªa > 5.4> Ë 6 x ü <& V Û , ¼Y U× ¼

– ¸ × ¼

s â 9 ‫כ‬ ¹ l M :ë H\ Û ¼Y U× ¼_ Ò t q

õ í $ ao ' 6 x Û ¼Y U× ¼ Ð Ö ¼o . – _ Û ¼Y U× ¼ ^ ¦2 ¤÷ &# Q ¸° ú rá É Ô Ð[ j ¼\ Û e H rÛ É ¼Y U× ¼\ ¦> 5 qz Å ´ ' ½ Éà + ºe .

á Ô Ð[ jÛ ¼? /_ Û ¼Y U× ¼ H " ¶` é ¦/ NÄ B » Ù ¼ ÐÒ t q

q í $ 6 xs $ § 4 9, Û ¼Y U× ¼ç \ ß ë HÐ o ¨ s 8 6 x s .

– V \) ¶ û ¸Ä ºÝ ¼ NT, ¶ û ¸Ä ºÝ ¼ 2000, Solaris 2 H ¸¿ º& V Û , ¼Y U× ¼\ ¦t " ¶ô é Ç .

ä »è « ×T z" Ä © ¿ + Ë£ ` 5.1.4

Þ Ó Ñ ÷ &, Ç­ f 7 _©

5.2

ú Þ­ n 7 _© { ¢¨ |

• Û ¼Y U× ¼ H 6 x / Nç B \ ß ½ ¨ ³½ & ÉÃ + ºe ¦, & V / , N B \ ß ç ½ ¨ ³½ & ÉÃ + ºe . ¢ ¸ô Ç ¥½ D Ë + # ¿ º/ Nç B ß ¸ ¿ º\ " f½ ¨ ³½ & ÉÃ + ºe .

• Ð : xî r%

^ ò ] j H 6 x Û ¼Y U× ¼ü <& V Û , ¼Y U× ¼ ¦ \ ¸¿ º] j/ Nô B Ç .

• £ â «Q cÞ «(user thread)

• &V , r& É V Û , ¼Y U× ¼_ rF > ë ß d 9, & V , r É V & Û , ¼Y U× ¼\ ¦Û ¼H × ¦ # z ´' ô Ç .

– 6 x / Nç B \ ß " fÛ ¼Y U× ¼ s Ú Ô Qo \ ¦: x K ] j/ Nô B Ç . 5.2.1

– s s Ú Ô Qo H& , V_ t " ¶\ é s O Û ¼Y U× ¼ _ Ò t$ q

, Û í ¼H × ¦a A, ao ' \ ¦] j/ Nô B Ç . 7 ¤, & £ , V r É ) a# ' t · § ú H . " f ¸× ¼

s â 9 ‫כ‬ ¹\ # O Q¼ ÛY U× ¼_ Ò t$ q

õ í ao ' \ ¦ Ø Ô> ½ ÉÃ + ºe .

6 ø Ç{ m ¢¨ |

• # Q 6 x Û ¼Y U× ¼\ ¦ _ & V Û , ¼Y U× ¼ ÐB

ô ç i Ç . • © & : Û h ¼Y U× ¼_ ao ' 6 x ¸× ¼\ " fs À Ò# Q Ù t ¼ Ð% o Ø Ô .

– á Ô Ð[ jÛ ¼ ^ & Û h ¼H × ¦a A · ú ¦o 7 § £ ¦ | ` 9 à ºe . Õ ª Q & V , rÛ É ¼Y U× ¼é ß 0 A Ðr ì r½ É` + ¦ t · § ú H .

• ß é& : h _ Û ¼Y U× ¼ ^ ¦2 ¤÷ & ^ á Ô Ð[ jÛ ¼ ^ ¦2 ¤ a ) . ¢ ¸ô Ç × æá Ô Ð[ jÛ ¼\ " f × æÛ ¼Y U ¼ 1 × xr l \ à º' | cà ¨ º\ O .

– & V s , é { ß 9 ¼ ÛY U× ¼9 {M :á Ô Ð[ jÛ ¼_ _ Û ¼Y U× ¼ ^ ¦2 ¤÷ & ^ á Ô Ð[ jÛ ¼ ^ ¦ 2 ¤ a ) . ¢ ¸ô Ç × æá Ô Ð[ j" f_ & © ` h ¦s 6 x Éà + ½ º\ O .

5.2.2

• ^2 ¦ ¤÷ &t · § ú H{ 9 Ø ¦§ (q 4 1 xl l d )` ¦ x 6 s ` ‫כ‬ ¦G F4 ¤½ Éà + ºe .

Ç6 m ø ø Ç{ m ¢¨ |

• y 6 x Û ¼Y U× ¼ H _ & V Û , ¼Y U× ¼ ÐB i

ç a ) . 2


• © & : h _ Û ¼Y U× ¼ ^ ¦2 ¤÷ &# Q ¸ Qt Û ¼Y U × ¼ H> 5 qz Å ´ ' a ) . ¢ ¸ô Ç × æá Ô Ð[ j" f\ " f1 x l r \ à º ' | cà ¨ ºe .

• ¼ ÛY U× ¼2 [ è_ # Q 9¹ §: q ¡ 1 xl l d 2 [ è\ " f HÛ ¼ U× Y ¼\ > ½ É{ + © a ) " ¶s é ¸¿ º 1 xÜ l ¼ ÐK ] j÷ & · t §` ú ¦Ã ºe .

• ß é& : q h 6 xs q . " f Ð: xÛ ¼Y U× ¼_ Ã º\ ¦ ] jô Çô Ç .

5.3.3

• » Ä_ Û ¼\ " f H ñ\ ¦s 6 x # : ¤& £

ñ | s { 9 Qz # ¤6 §` £ ¦á Ô Ð[ jÛ ¼\ > : x Ðô Ç . ñ H èá Ô ÔJ à ?# Q à ÔX à O Ôs .

• \ V) ¶ û ¸Ä ºÝ ¼ NT, ¶ û ¸Ä ºÝ ¼ 2000, OS/2 5.2.3

6 { ¢¨ |

• ñ H1 xl l d ¢ ¸ Hq 1 xl l d Ü ¼ ÐÃ º a ) . 1 x l d l ñê Í ø \ _ K Ò t$ q

í a ) ñ\ ¦´ ú 9, s ñ HÕ ª ` ‫כ‬ ¦Ò t$ q

ô í Çá Ô Ð[ jÛ ¼\ ² ú a ) . 1 q xl l d ñ Hü @Â Ò\ _ K Ò t$ q

í a ) ñ\ ¦´ ú 9, Õ ª _ ‫כ‬ Ò t$ q

í r É Ð: x\ V8 ¤½ £ Éà + º\ O .

• # Q 6 x Û ¼Y U× ¼\ ¦1 x{ l 9 à º¢ ¸ HÕ ªs _ à º _ & V Û , ¼Y U× ¼ ÐB i

ô ç Ç . • & V Û , ¼Y U× ¼_ à º H6 x6 £ xá Ô ÐÕ ªÏ \ þ ¢ ¸ H l > _ : ¤$ £

\ í ] jô Ç| cº ¨ Ãe .

• ñ% o õ &

ñ

• © & : q h 6 xs { @ 9 /{ 9 ¸q 4 S Ð $ § 4 9, @ /{ 9 ¸q 4 Sõ ² o ú Û ¼Y U× ¼ _1 xr l à º' s 0 x p .

– ÿ ·4 1. : ¤& £

ñ | _ µ ÏÒ 1 t\ q _ K ñ Ò t q

í $ a ) .

• \ V) Solaris 2

5.3 5.3.1

– ÿ ·4 2. Ò t$ q

í a ) ñ Há Ô Ð[ jÛ ¼\ > ² ú a ) .

­ 7 _© v X È ì

– · 4 ÿ 3. á Ô Ð[ jÛ ¼ H ñ\ ¦% o ô Ç .

forkÑ ÷ exec S ­ y ð Æû Ú s

• 1 xl l d ñ_ \ V: Ô ¦Z & O B h j ¸o ] H X

• Û ¼Y U× ¼> h¥ ` Æ ¦ 6 x l r forkü > < exec r Û ¼ 7 % ñØ ¦` ¦

K â ô Ç .

– ñµ ÏÒ 1 t_ q " ¶ é ` ¦] j/ Nô B Çá Ô Ð[ jÛ ¼\ > ú ) . ñ ² a

• s \ ¦0 AK Ð: xÄ »_ Û ¼ H¿ º7 xÀ á Ó_ fork r Û ¼% 7 ñØ ¦` ¦] j/ Nô B Ç .

• q 1 xl l d ñ_ \ V: CTRL+C

– ¶ ø B© ¼ 1. á Ô Ð[ jÛ ¼_ _ Û ¼Y U× ¼ fork r Û ¼% 7 ñØ ¦` ¦ á Ô Ð[ jÛ ¼_ ¸ HÛ ¼Y U × ¼ 4 ¤ a ) .

– ñ Ã º' × æ á Ô Ð[ jÛ ¼_ ü @Â Ò& ‫כ‬ h ¹ _ \ K µ ÏÒ 1 tô q Ç

Ä â º • ñ% o l _ 7 xÀ á Ó

– ¶ ø B© ¼ 2. á Ô Ð[ jÛ ¼ _ _ Û ¼Y U× ¼ fork r Û ¼% 7 ñØ ¦` ¦ Õ ªÛ ¼Y U× ¼ë 4 ß ¤ a ) .

– l r : ñ% o l : ¸ H ñ Õ ª ` ‫כ‬ ¦% o Hl r : ñ% o l e . s % o l H& V s , Ã º' ô Ç .

• á Ô Ð[ jÛ ¼_ _ Û ¼Y U× ¼ exec r Û ¼% 7 ñØ ¦ ¦ ` ^ á Ô Ð[ jÛ ¼ D há Ô ÐÕ ªÏ Ü þ ¼ Ð §^ a ) .

– 6 x &

_ ñ ñ% o l : 6 x ñ% l o \ ¦&

_ ñ l r : ñ% o l @ / \ % s o l ñ\ ¦% o ô Ç .

• ¿ º7 xÀ á Ó_ fork × æ# QÖ ¼ ` ‫כ‬ ¦ × þ Ö ¼ H6 x6 £ x á Ô ÐÕ ªÏ \ þ _ K &

ñ a ) . ë ß forkô Ç 6 §\ £ Ð exec\ ¦ ñØ ¦½ É + s ‫כ‬ 7 xÀ á Ó 1_ fork` ¦ 6 x H ‫כ‬ rz É q © s . 5.3.2

Å Ã Þ Æ% iP

• Û ¼Y U× ¼\ " f ñ% o H# Qb G> ? – ç ( ¡ 1. « ñ\ K { © HÛ ¼Y U× ¼\ > ë ß ú ²

} º

– ¡( ç 2. á « Ô Ð[ jÛ ¼_ ¸ HÛ ¼Y U× ¼\ > ² ú

• Û ¼Y U× ¼2 [ è(thread cancellation) Hz ´' × æ Û ¼ Y U× ¼\ ¦y ] © j Ð7 x« á Ñ H ` ‫כ‬ ¦´ ô ú Ç . s M :2 [ è½ ÉÛ + ¼Y U× ¼\ ¦7 x7 á x3 á q³ l ðÛ ¼Y U× ¼(target thread) Ç ô .

– ç ( ¡ 3. á « Ô Ð[ jÛ ¼_ {  9 ÒÛ ¼Y U× ¼\ > ë ß ú ² – ç ( ¡ 4. á « Ô Ð[ jÛ ¼_ ¸ H ñ\ ¦Ã º H ¤& £ :

Û ñ ¼Y U× ¼\ ¦¿ º# Q% o

• Û ¼Y U× ¼2 [ è_ ¿ º t + AI þ

• l 1l x d ñ H~ ÓZ ½ 1s O & ½ h Ë + 9, CTRL+Cü <° ú r É ñ H~ ÓZ ½ 2 & O ½ h Ë + .

– q 1 xl l d 2 [ è: l q 3³ ðÛ ¼Y U× ¼ Ð7 x« á Ñ a ) .

• Ð : x UNIX\ " f HÛ ¼Y U× ¼ Ã º ½ É + ñü <Á ºr É + ½ ñ\ ¦t &

½ ñ Éà + ºe ¸2 ¤ô Ç . { ì 9 Í& ø Ü h ¼ Ð ñ µ ÏÒ 1 t÷ q & Õ ª ñ\ ¦Á ºr t · § ú H' Í P : е Ï| 1

aÛ ) ¼Y U× ¼\ > ² ú a ) .

– t a 2 ) [ è: 3 q³ l ð Û ¼Y U× ¼ H 2 [ è "

§ î

` î ¦ ~ Î Ã ¦ Ðá x 7« Ñ t · § ú ¦Å Òl & Ü h ¼ Ð s 7 x« á Ñ÷ &# Q Ht \ ¦ # & ] h ô X Ç r l (Pthread\ " f Hs r l \ ¦2 [ è& (canh cellation point) ô Ç )\ 7 x« á Ñô Ç .

• Solaris H~ ÓZ ½ 4\ O ¦t " ¶ô é Ç . 3


#include <pthread.h> #include <stdio.h> int sum; /* — ¸ÂŽ HĂ› ÂźY UĂ— Âź / NĂ„ B Âť Â?X H <s ' */ void *runner(void *param); main(int argc, char *argv[]){ pthread t tid; /* Ă› ÂźY UĂ— Âźd Z ” > */ pthread attr t attr; /* Ă› ÂźY UĂ— Âź_ 5 q$ Ă…

*/ í ... /* l ‘ r5 : q$ Å

4 Ă­ Rš ¸l */ pthread attr init(&attr); /* Ă› ÂźY UĂ— ŸÒ t$ q

*/ Ă­ pthread create(&tid,&attr,runner,argv[1]); /* Ă’ t$ q

Ă´ Ă­ ÇÛ ÂźY UĂ— Âź ĂĄ x 7ÂŤ Ă‘| cM ¨ : t @ /l */ pthread join(tid,NULL); ... } void *runner(void *param){

task 1

lightweight process

kernel thread

kernel

CPU

<Ă• ÂŞa > 5.7> _ Ă‹ t " o Ă› Âź2Ă› ÂźY UĂ— Âź • Pthread API_ 6 x_  \ V: Ă• ÂŞa > 5.6 Ă‹ – sĂĄ Ԗ Ă?Ă• ÂŞĂ? ›s Ăž z ´' Â?á Â&#x; &€ Âœ Ă­l \  Â? H _ ÂźY Ă› UĂ— Âź\ ÂŚs 6 x  # ÂŒĂƒ Âş' Â?Â? Â&#x; a ) .

}

– pthread create  ùĂ˜ ÂŚ` ÂŚs 6 x  # ÂŒĂ› ÂźY UĂ— Âź\ ÂŚ t$ q Ă’

í € ¿ º> h_ Û ŸY U× Ÿ #

' ĂŽ Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ Âş' Â? Â&#x; a ) Â? .

<Ă• ÂŞa > 5.6> Pthread API Ă‹ 6 x_  \ V ­ ÂŽ7 _Š ÂŽĂž Ăš s

– pthread join  ùĂ˜ ÂŚ` ÂŚs 6 x  # ÂŒĂ’ t$ q

Ă´ Ă­ ÇÛ ÂźY U Âź_ Ă— 7 xÂŤ ĂĄ Ă‘\ ÂŚl w =Ăƒ n Âşe ” .

• Û ŸY U× ŸÛ Œ(thread pool)“ rå É Ô– �[ jÛ Ÿ Ò t$ q

½ Ă­ Ă‰Ăƒ + Âş Â? ” e HĂ› ÂźY UĂ— Âź_ Ăƒ Âş\ ÂŚh &] X > › ao ' l 0 AK 6 xá  &Â? HB j& m7 §s ÂŁ .

– Âź Ă›Y UĂ— ÂźÂ? H pthread exit  ùĂ˜ ÂŚ` ÂŚs 6 x  # ÂŒ7 x ĂĄ Ă‘Ă´ ÂŤ Ç .

• Ă› ÂźY UĂ— Âź\ Œ€ 9 ‍כ‏ š½ ÉM + : Ă’ t$ q

Ă­ t ¡ §Â“ Ăş ÂŚĂĄ Ԗ Ă?[ j Ă› Âź r  Â•| ÂŒ cM ¨ :h &&

Ă´ Ăą Ă‡Ăƒ Âş_ Ă› ÂźY UĂ— Âź\ ÂŚĂ’ t$ q

Ă­ # ÂŒ Ă› ÂźY UĂ— ŸÛ ÂŚ\  @ /l • ¸2 ¤ô Â&#x; Ç . Ă› ÂźY UĂ— Âź € ‍כ‏ 9 š s € Ă› ÂŚ\  e Â? ” H Ă› ÂźY UĂ— Âź\ Œ ¸$ Ă–

Ă­ o # ÂŒz ´' Â? Â&#x; &9, z á ´Â? ' Â&#x;s = Q ĂĽ € r Ă› ÂźY UĂ— ŸÛ ÂŚ\  " f@ /l Ă´ Ç . ĂŤ –€ Ă&#x; •Û Â? ÂźY UĂ— ŸÛ ÂŚ\  8 s Âœ Š ¸$ Ă–

Ă­ o½ ÉÛ + ÂźY UĂ— Âź Ăœ O \ Ÿ€ % ƒo ‍כ‏ š' A“ Ăľ re É ` ” ÂŚ: M t @ /l > Â? a ) .

5.5

• _ t " o Ă› Âź 2Â? H @ / — ¸4 q` S ÂŚ 6 xĂ´  Ă‡ . • _ ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H LWP Ă› ÂŚ` ÂŚ ” . ĂĄ Ԗ Ă?[ jĂ› Âź y _ • ÂŒ 6 x  Ă› ÂźY UĂ— ÂźÂ? H LWP\ ÂŚ: xK Â&#x; Ăƒ Âş' Â?á Â&#x; &9, y • ÂŒ LWPÂ? H _ & V Ă› , ÂźY UĂ— Ÿß <ƒ › aá ' &# Qe ” .

– ˜ Ă? Ă˜ Ă”> % ƒo ½ Ă‰Ăƒ + Âşe ” . – Ă› ÂźY UĂ— ÂźĂƒ Âş\ ÂŚ] jĂ´ Ç Â? H´ òþ & h “ ~ Ă“Z ½ s O .

• 6 x  Ă› ÂźY UĂ— ÂźÂ? H%

½ ò ¨& Ăœ h Ÿ– Ă? _ LWPĂź <ƒ aá ' › &# Q z ´' Â?| Â&#x; c Ăƒ ¨ Âş e “ ” ÂŚ, Ă• ÂŞX t O ¡ §` Ăş ÂŚ Ăƒ Âş e ” . „ Ăź < °  Â“ Ăş r Ă› É ÂźY UĂ— Âź\ ÂŚ ĂŞ >Ăž ÂŤĂ› S â Ă– ÂŤQ cĂž ÂŤ(bound thread) “ ÂŚ ĂŠ ĂŞ \ ÂŚ ĂŞ >Ăž ÂŤb Cm N âĂ– Ă­ â R ÂŤQ c ÂŤ(unbound thread) Ăž Ă´ Ç .

­ ÂŽ7 _Š ÂŽÂ? œ š Ăž6 Ă“ KT ' [

• Ă› ÂźY UĂ— ÂźÂ? H˜ Ă?: Â&#x; x°  Â“ Ăş rĂĄ É Ԗ Ă?[ jĂ› Âź\  5 qĂ´ Ă… ÇÛ ÂźY UĂ— Ÿß < X <s ' \ ÂŚ/ NĂ„ B ô Ç . • Ă› ÂźY UĂ— Âź Â’ ĂŤ –_ Ă&#x; X <s ' € ‍כ‏ 9 š½ Ă‰Ăƒ + Âşe ” . s X <s ' \ ÂŚĂ› ÂźY UĂ— Ÿ„ 6 xX  <s ' (thread-specific data) 9, @ /Ă‚ Ă’ĂŹ rĂ› ÂźY UĂ— Âź s Ăš Ă” Qo Â? Hs \ ÂŚ t Âś " ĂŠĂ´ Ç .

5.4

Ăš v ø P ­ ÂŽ2­ ÂŽ7 _Š ÂŽ

• " _ t o Ă› Âź 2Â? H 6 x  Ă› ÂźY UĂ— Ÿß <& V Ă› , ÂźY UĂ— Âź s  LWP(LightWeight Process) \ “ ÂŚ Â? HĂ— Ìç –Û Ă&#x; ÂźY U Âź\ Ă— ÂŚ 6 xĂ´  Ă‡ .

• Ă› ÂźY UĂ— ŸÛ ÂŚ_  Âœ& Š h

5.3.5

task 3 user-level thread

... pthread exit(0);

5.3.4

task 2

• l‘ r& : Ăœ h Ÿ– Ă? 6 x  Ă› ÂźY UĂ— ÂźÂ? H “ Ă— Ÿá &t ¡ §Â? Ăş H . • LWP Ă› ÂŚ\  e Â? ” H LWP_ Ăƒ ÂşÂ? H1 x& l Ăœ h Ÿ– Ă? o 9, ¸A š 1 xĂŽ l – Ă&#x; 6 xá  &t ¡ §Â? Ăş H LWPÂ? Hr Ă› Âź% 7 ›\  " f] j Ă´ Ç .

Pthread

• Pthread� H thread Ò t$ q

þ í › ao ' \ Œ0 Aô Ç API\ Œ&

_ Ăą Â? H POSIX Âł Ă°ĂŻ r(IEEE 1003.1c)s .

5.6

• s Âł Ă°ĂŻ r“ r API_ É Â? ' Â&#x;0 AĂŤ –& Ă&#x;

_ Ăą “ ÂŚe Ăœ ” Âź9, s ‍כ‏ _ ½ ¨Â‰ ³“ & rĂŽ É r%

^ ò ‰] j_ Ă˜ Ă” .

Ry Š ĂŒ ¢Â– ¤â€Ť×›â€Ź ÂŽ 2000 ­ ÂŽ7 _Š ÂŽ

• Ăť ˜• Âś ¸Ă„ ÂşĂ? Âź 2000“ r{ É @ 9 /{ 9 Ă— ĂŚĂ› ÂźY UĂ— Ÿ— ¸q 4 S` ÂŚ xĂ´  6 Ç . 4


• ¶ û ¸Ä ºÝ ¼ 2000 r É l r& : Ü h ¼ Ð{ 9 @ /{ 9 ¸4 qs S t ë ß fiber s Ú Ô Qo \ ¦: xK @ / ¸4 q_ S l 0 x p ¸ ] j/ Nô B Ç .

5.7

P ×­ Ô ­ 7 _©

• o ³ qÛ n ¼ Hl r& : Ü h ¼ ÐÛ ¼Y U× ¼\ ¦t ¶ " é t H· § ú H . Õ ª Q Û ¼Y U× ¼ü <Ä » ô Ç+ AI þ _ á Ô Ð[ jÛ ¼\ ¦ t$ q Ò

í # x 6½ Éà + ºe ¸2 ¤ô Ç . • l r fork r > Û ¼% 7 ñØ ¦@ / \ clone r Û ¼% 7 ñØ ¦ ¦ ` 6 x Å Ò è/ Nç B ` ß ¦Â Ò ¸á Ô Ð[ jÛ ¼ü </ NÄ B » Éà + ½ ºe .

5.8

­ 7 _©

• Û ¼Y U× ¼ H l © > \ " f% o Ù ¼ Ð Û ¼Y U× ¼\ ¦ 6 x ¼ ÛY U× ¼¢ ¸ H& V Û , ¼Y U× ¼ Ðì rÀ Ó H s ‫כ‬ Q #§ > . • Û ¼Y U× ¼_ Ò t$ q

í – Thread 9 tA þ Û ¼\ ¦ 5 © q~ Å Î Ã HD h9 tA þ Û ¼\ ¦&

ñ _ # 6 x – z ´] jÛ ¼Y U× ¼_ Ò t$ q

í r É s9 tA þ Û ¼_ start B j è× ¼\ ¦ ñØ ¦½ ÉM + :s À Ò# Q . – start B j è× ¼ ñ Ø ¦÷ & 6 §õ £ ° ú r{ É s 9 à º ' a ) . • h DB j¸ o \ ¦½ É{ + © ¦D hÛ ¼Y U× ¼\ ¦ í l oô Ç . • 9 tA þ Û ¼_ run j B è× ¼\ ¦ ñØ ¦ô Ç . • Û ¼Y U× ¼ H JVM\ _ K & V Û , ¼Y U× ¼ ÐB i

ç a ) . ¶ û ¸Ä ºÝ ¼6 x JVM r{ É @ 9 /{ 9 ¸4 q` S ¦ 6 x 9, _ t " o Û ¼ H @ / ¸4 q` S ¦ 6 xô Ç .

5


c °2003, sangjin@kut.ac.kr

160 140 120 frequency

* <* Ö = å i< K: ~ ¡q ç { ¡È 06 A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

100 80 60 40 20 0

Part II. Process Management

0

8

16

24

32

40

burst duration (millisecond)

<Õ ªa > 6.2> CPU ! Ë QÛ ¼à Ôr ç _ ß ¸³ ð

CPU ­> ú ÚË n  S

6

– ç % ¡ n 1. á · Ô Ð[ jÛ ¼ z ´' × æ I © \ " f@ /l æ × I © Ð ¨ | 8 cM ¨ :(\ V: { 9 Ø ¦§ ‫כ‬ 4 ¹' A) õ – ¡% ç n 2. á · Ô Ð[ jÛ ¼ z ´' × æ I © \ " fï rq a« ¢ Ñ I © Ð ¨ | 8 cM ¨ :(\ V: à ÔX à O Ôµ ÏÒ 1 t) q – ¡% ç n 3. á · Ô Ð[ jÛ ¼ @ /l × æ I © \ " fï rq a« ¢ Ñ I © Ð ¨ | 8 cM ¨ :(\ V: { 9 Ø ¦§ ¢ 4 a« Ñ) – ¡% ç n 4. á · Ô Ð[ jÛ ¼ 7 x« á Ñ| cM ¨ :

M Ä Ø4 ] G È

6.1

• × æá Ô ÐÕ ªA b ç

_ l q 3& h r É Ó ½ z © ´' ½ ÉÃ + ºe H á Ô Ð[ jÛ ¼ e ¸2 ¤ # CPU 6 x´ òÖ ¦` ¦F G@ / o HX <e . 6.1.1

CPU-I/O ! a­ ² ¤M

• j¤ > n (nonpreemptive) â \ «X

·ÿ ä ' b × Ð : s Ï ~ Ód ½ " \ f Há Ô Ð[ jÛ ¼ CPU\ ½ É{ + ÷ © & Õ ªá Ô Ð[ j ¼ 7 Û x« á Ñ÷ & @ /l × æ I © Ð ¨ | 8 cM ¨ : t CPU\ ¦& Ä h »ô Ç . S © 1õ ! S © 4\ ! " fë Û ß ¼H × ¦ As a { # 9 Q q & ~ h Ód ½ s .

• á Ô Ð[ jÛ ¼ Hz ´' ÷ & H1 xî l CPU z ß ´ ' õ { Ø 9 ¦§ 4 @ /l ¿ ºÅ Òl \ ¦ì Í4 ø ¤ô Ç . • > í × ß æd á Ô Ð[ jÛ ¼ H& h rÃ É º_ B Ä º| CPU ! Q Û ¼à Ô\ ¦ t 9, { 9 Ø ¦§ × 4 æd á Ô Ð[ jÛ ¼ H´ § ú rÃ É º _  ª ú r CPU ! É QÛ ¼à Ô\ ¦ . Õ ªa > 6.1 Ë Ð Ã ¸.

• n ¤ > (preemptive) ' \ ×Ð : # Ï Q " ¸| s ë 7 ß ¤÷ á & ³ & z F ´' × æ á Ô Ð[ jÛ ¼_ _ ü < © a\ ' s O Õ ª ‫כ‬ z _ ´ ' ` ¦× æé ß ¦ rá É Ô Ð[ jÛ ¼\ ¦ CPU\ ½ É + ô © { Ç . z ´ ' × æ á Ô Ð[ jÛ ¼\ ¦× æé ß # Q ë t H] j µ ÏÒ 1 t½ q Éà + ºe Ü ¼Ù ¼ Ð & ~ h Ód ½ rs É ` ‫כ‬ ¦@ /% ½ Éà + ºe # Q ô Ç .

• á Ô Ð[ jÛ ¼_ CPU ! QÛ ¼à Ô H á Ô Ð[ jÛ ¼_ : ¤$ £

õ í r Û ¼% 7 ª t ë ß Ð: xÕ ªa > 6.2ü Ë <° ú r É ¸Ã º\ ¦ p · . Ó t ü r : rÛ ¼% 7 s He ` ¦ à ºe t ë @ ß /^ л Ä ô Ç ¸Ã º\ ¦ p · . 7 ¤, £  ª ú r CPU ! É QÛ ¼à Ô_ ¸ ´ § ú ¦, 8 ms s _ © CPU ! QÛ ¼à Ô H _ \ O .

6.1.4 Dispatcher

• CPU $

0 í xs p µ ϲ 1 ½ ú Éà + º2 ¤á Ô Ð[ jÛ ¼ H{ 9 Ø ¦§ × 4 æ á d Ô Ð[ jÛ ¼ ÷ & H

â Ós ¾ Z } . 6.1.2

• ¼ ÛH × ¦ Q × ô þ Çá Ô Ð[ jÛ ¼\ ¦ CPU\ ½ É{ + K © Å Ò H‫כ‬ ¹ è\ ¦g â «A % (dispatcher) ô Ç . • n Û ¼J % _ e Á º

CPU ­ > ú Ú n [

– ë HÐ o ¨ 8 – ¸× ¼ ¨ 8

• CPU Ä »Ê ë I © ÷ & ï rq ¢ a« Ñ Ç ©\ e H á Ô Ð[ jÛ ¼\ ¦ × K þ " fz ´' ô Ç . s × þ r É CPU Û ¼H × ¦ Q(¢ ¸ Hé l ß ¼ ÛH × ¦ Q) ô Ç . 6.1.3

• nÛ ¼J % _ á Ô Ð[ jÛ ¼\ ¦ × æé ß ¦ r É Ô á Ð[ jÛ ¼\ ¦z ´' l t è‫כ‬ ¹÷ & Hr ç ` ß ¦n Û ¼ u J t (dispatch lantency)s ô Ç .

ÅX Ò È­ ì > ú ÚÂ n Ë S

• CPU Û ¼H × ¦a A &

ñ rW É 1 t S © \ ! " f{ # 9 Qè ß .

6.2

> ­ ú ÚÂ n ËM S Ç Ø U

• CPU Û ¼H × ¦a A· ú ¦o 7 §` £ ¦ × ½ þ ÉM + : ¦ 9÷ & H ï l r CPU-bound process short CPU burst

long CPU burst

I/O wait

– CPU £ ¹ ô· (CPU utilization): 0 xô p Ç CPU > 5 qÄ Å »6 xô Ç \ ` O ¦ ¸2 ¤K ô Ç . ë ß # Q & "

K ñ r ç 1 ß xî l > ß 5 q CPU Å Ä »6 xô Ç \ ` O ¦ % Ü i ¼ CPU 6 x´ òÖ ¦ r 100% É a ) .

I/O-bound process time

<Õ ªa > 6.1> > Ë í × ß æd õ { 9 Ø ¦§ × 4 æd á Ô Ð[ jÛ ¼ 1


– % h · (throughput): r ç { ß ¢ © a« Ñ÷ & Há Ô Ð [ jÛ ¼_ à º

6.3.2

SJF ­ > ú ÚË n  S

• SJF(Shortest-Job-First) Û ¼H × ¦a A· ú ¦o 7 § £ r É § CPU ! £ 6 QÛ ¼à Ôr ç s ß Â © ª ú rá É Ô Ð[ jÛ ¼í HÜ ¼ ÐÛ ¼H × ¦a Aô Ç .

– 5 ð » Ék . ë Ñ(turnaround time): 5 _ á Ô Ð[ j Û ¼ ] jr ar ) & \ h " fÕ ªá Ô Ð[ jÛ ¼ 7 x« á Ñ cM ¨ | : t ; 2r ç ß – 7 e k ë Ñ(waiting time): ô 5 Çá Ô Ð[ jÛ ¼ ï r q ¢ a« ÑÇ ©\ " f@ /l ô Ç8 xr ú ç ß

• ß ë á Ô Ð[ jÛ ¼ ° ú r CPU ! É QÛ ¼à Ôr ç ` ß ¦ t FCFS &

Õ ñ ` þ ¦ r É .

– £Õ I ±k ë Ñ(response time): " 5 fq Û ¼\ ¦‫כ‬ ¹' Aô õ Ç Ê ê\ Õ ª" fq Û ¼\ @ /ô Ç' ì Í Í6 ø xs £ ¸l t ; 2r ç ß

• V \) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð . á Ô Ð[ jÛ ¼ P1 P2 P3 P4

• 0 Al ï r r É 6 x a& ' (ì h ͨ ø r 8 ç , 6 ß x² £ r ú ç 1 ß x) p r õ Û ¼% 7 a& ' h (CPU 6 x´ òÖ ¦, % o Ö ¦)Ü ¼ Ð Ð tà ü ºe . • CPU 6 x´ òÖ ¦õ % o Ö ¦ rþ É j@ / o ¦ì ͨ ø r 8 , @ ß ç /l r ç , £ ß x 6² r ú ç ß rþ É j è o H· ú ¦o 7 § £ s s © & © s h .

Aá 0 Ô Ð[ jÛ ¼ ¸¿ º ³F & ï rq ¢ a« ÑÇ ©\ e ¦ &

ñ ( ¸¿ º ¸ Ìr à ç s ß 0 ms) Û ¼H × ¦a A õ H 6 §õ £ ° ú .

• 6 x² £ r ú ç _ ß

Ä â º\ H¨

î ç6 H x² £ r ú ç ` ß ¦þ j è o H ‫כ‬ Ð ¼ # \ ¦þ j è o H s ‫כ‬ 8Ä ºÃ ºô Ç· ú ¦o 7 §s £ ¦Å Ò © H s ¸e .

3 P4

6.3.1

9 P1

16

24

P3

P2

ç î ¨ H@ /l r ç ß r (3 + 16 + 9 + 0)/4 = 7 mss É . ë ß P1 , P2 , P3 , P4 í H" f Ð FCFS · ú ¦o 7 §Ü £ ¼ Ð ¼H Û × ¦a A % i ¨

ç î H@ /l r ç ß r 10.25 mss É .

­ > ú ÚÂ n Ë° S ow P ¨ Ö

6.3

! QÛ ¼à Ôr ç ß 6 ms 8 ms 7 ms 3 ms

FCFS ­ > ú ÚË n  S

• FCFS(First-Come First-Served) Û ¼H × ¦a A · ú ¦ o 7 § £ r É $ ‫כ‬ ¹' Aô õ Çá Ô Ð[ jÛ ¼í HÜ ¼ ÐÛ ¼H × ¦a A Ç ô .

• SJF · ú ¦o 7 § £ r¨ É

ç î H@ /l r ç 8 ß ¤ £ \ " f Hþ j& h \ © Ö ¦ s ‫כ‬ .

• s · ú ¦o 7 § £ rq É & ~ h Ód ½ s .

• SJF · ú ¦o 7 §_ £ © H# Q 9¹ § ¡ rá É Ô Ð[ jÛ ¼_ § CPU ! £ 6 QÛ ¼à Ôr ç ` ß ¦\ V8 ¤ £ H s ‫כ‬ .

• FCFS · ú ¦o 7 § £ r FIFO Ç É ©\ ¦s 6 x # ~ > 1 ½ ¨ ³ & ÉÃ + ½ ºe .

• Ð : x 6 § CPU ! £ QÛ ¼à Ôr ç ß rs É _ CPU ! QÛ ¼ Ô[ à t_ þ U ´s \ ¦t à º¨

ç î H(exponential average) ½ # ¨ô Ç .

• \ V) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð . Ô á Ð[ jÛ ¼ P1 P2 P3

¸ Ìr à ç ß 0 ms 1 ms 2 ms

• t à º¨

ç î H r É 6 §õ £ ° s ú &

_ ñ a ) .

! QÛ ¼à Ôr ç ß 24 ms 3 ms 3 ms

τn+1 = αtn + (1 − α)τn #l " f tn r n É P : CPU ! QÛ ¼à Ôr ç s ß ¦, τn r É V8 \ ¤ô £ Ç n P : CPU ! QÛ ¼à Ô r ç s ß . α H 0õ 1 s _ à ºs 9, × æu \ ¦ &

ô ñ Ç . α = 0.5\ ¦ V © o , 6 xô Ç .

á Ô Ð[ jÛ ¼_ ¸ Ìí à H" f P1 , P2 , P3 s Û ¼H × ¦ a A õ _ Gantt ¸³ ð H 6 §õ £ ° ú . 24 P1

27 P2

• Q # " ¦&

ñ a° ) ‫כ‬¢ ú ¸ H ^ r Û ¼% ¨ 7

ç î H` ¦ τ0 Ð xô 6 Ç .

30 P3

• V \) α = 0.5s ¦ τ0 = 10 ms ¦ &

½ ñ ÉM + :\ V8 ¤ £ ç r õ ß z ´] jr ç ` ß ¦q § 6 §õ £ ° ú .

P1 _ @ /l r ç ß r 0 ms, P2 É H 24−1 = 23 ms, P3 H 27 − 2 = 25 mss Ù ¼ Ш

ç î H@ /l r ç ß r 16 mss É . ë ß ¸ Ìí à H" f P2 , P3 , P1 s s M : Gantt ¸³ ð H 6 §õ £ ° Ü ú ¼9, 3 P2

6 P3

CPU ! QÛ ¼r ç ß V8 \ ¤r £ ç ß

30 P1

10

6 8

4 6

6 6

4 5

13 9

13 11

• & SJF · h ú ¦o 7 §\ £ " fD há Ô Ð[ jÛ ¼ ï rq ¢ a« Ñ ©\ Ç ¸ Ì Ã s á Ô Ð[ jÛ ¼_ 6 § CPU ! £ QÛ ¼à Ô ç r õ ß ³F & à º ' × æ á Ô Ð[ jÛ ¼_ z r CPU ! É Q ¼à Û Ôr ç ` ß ¦q §ô Ç . s M :D há Ô Ð[ jÛ ¼_ 6 § £ ç r s ß Ã º ' × æá Ô Ð[ jÛ ¼_ z rr É ç ß Ð & Ü h ¼ l rá > Ô Ð[ jÛ ¼\ ¦y ] © j Ð7 x« á Ñ ¦D há Ô Ð[ j ¼\ Û ¦½ É{ + ô © Ç .

ç î ¨ H@ /l r ç ß r 2 mss É . • FCFS_ é & ß É h r ñ0 A´ òõ (convoy effect) µ ÏÒ 1 t q Éà + ½ ºe H s ‫כ‬ . ñ0 A´ òõ ê Í ø _ H á Ô Ð[ jÛ ¼ CPU\ ¦ ª н ÉM + : t r É ¸ Há Ô Ð [ jÛ ¼ l o H ³ & ` © ¦´ ô ú Ç . 2


• & SJF · h ú ¦o 7 § £ r É r´ É ú Ð SRTF(ShortestRemaining-Time-First) · ú ¦o 7 §s £ ô Ç .

• º Ä í H0 A H ? /Â Ò‫כ‬ ¹ \ _ K &

(î ñ r%

^ ò ] j Íé ø ó )| ß cà ¨ ºe ¦ü @ Ò‫כ‬ ¹ \ _ K &

( ñ 6 x & t

)| ñ cà ¨ ºe .

• \ V) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð . á Ô Ð[ jÛ ¼ P1 P2 P3 P4

¸ Ìr à ç ß 0 ms 1 ms 2 ms 3 ms

• & Ä h º í H0 A~ Ód ½ \ " f H & SJF · h ú ¦o 7 § £ õ ð Í t ø Ð ¸ Ìô Ã Çá Ô Ð[ jÛ ¼ ³F & Ã º' × æ á Ô Ð[ jÛ ¼ Ð Ä º í H0 A Z }Ü ¼ ³F & á Ô Ð jÛ [ ¼ H× æé ÷ ß & ¦D há Ô Ð[ jÛ ¼ CPU\ ½ É{ + ÷ © & Qz # ´' a ) .

QÛ ! ¼à Ôr ç ß 8 ms 4 ms 9 ms 5 ms

• V \) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð .

Û ¼H × ¦a A õ H 6 §õ £ ° ú . 0 1 P 1

5 P2

10

17

P4

26

P1

P3

ç î ¨ H@ /l r ç ß r É 6 §õ £ ° Ü ú ¼9, ((10 − 1) + (1 − 1) + (17 − 2) + (5 − 3))/4 = 6.5 ms

ç î ¨ Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú . ((17−0)+(5−1)+(26−2)+(10−3))/4 = 13 ms

8 P1

12 P2

17

QÛ ! ¼à Ôr ç ß

Ä º í H0 A

0 ms 1 ms 2 ms 3 ms 4 ms

10 ms 1 ms 2 ms 1 ms 5 ms

3 1 4 4 2

0 1 2

26

P4

¸ Ìr à ç ß

P1 P2 P3 P4 P5

5> h_ á Ô Ð[ jÛ ¼ ° ú rr É ç \ ß ¸ ÌÙ Ã ¡ þ ¦ . ÛH ¼ × ¦a A õ H 6 §õ £ ° ú .

q & ~ h Ód ½ _ SJF · ú ¦o 7 §Ü £ ¼ ÐÛ ¼H × ¦a A % i ¦ `

Ä â º\ Û ¼H × ¦a A õ H 6 §õ £ ° ú . 0

á Ô Ð[ jÛ ¼

P P 1 2

P3

4 P1

9

16

P5

P1

18 19 P3

P 4

ç î ¨ H@ /l r ç ß r É 6 §õ £ ° ú .

ç î ¨ H@ /l r ç ß r É 6 §õ £ ° Ü ú ¼9, (0 + (8 − 1) + (17 − 2) + (12 − 3))/4 = 7.75 ms

(6 + 0 + (16 − 2) + (18 − 3) + 0)/5 = 7 ms

ç î ¨ Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú . • º Ä í H0 A· ú ¦o 7 §_ £ ë H] j& h r% É

½ ò ¨@ /l (indefinite blocking) ¢ ¸ HÏ UÅ ã Òa >(starvation) Ë ³ & s © µ Ï 1 t½ q Ò ÉÃ + ºe H s ‫כ‬ . Ä º í H0 A ± ú rá É Ô Ð[ j ¼ Û H¨

Ò î tz q ´' ÷ &t · §` ú ¦Ã ºe .

((8−0)+(12−1)+(26−2)+(17−3))/4 = 14.25 ms 6.3.3

¤ ÅÅ Ò Ø U ü­ > ú ÚÂ n Ë S

• Ë Á¤ >' n K DÛ ¼H × ¦a A rÄ É º í H0 A Z } rá É Ô Ð[ jÛ ¼ \ > $ CPU\ ¦½ É{ + ô © Ç . Ä º í H0 A ° Ü ú ¼ FCFS &

Õ ñ Ü þ ¼ н É{ + ô © Ç .

• s ` ‫כ‬ ¦ F G4 ¤ l 0 AK aging l Z ` O ¦ 6 xô Ç . aging l Z O r@ É /l Há Ô Ð[ jÛ ¼_ Ä º í H0 A\ ¦ h & & Ü h ¼ Ð7 x r £ & ï r .

• SJF ¸Ä º í H0 A¼ ÛH × ¦a A× æ s . • Ä º í H0 A H Ð x : &

à ñ º° ‫כ‬Ü ú ¼ Ð ? /9, 0\ " f 7 t ü <° ú r É ¦&

ñ a# ) 0 3 A\ ¦ . s M : Ð: x ± ú rÃ É º{ 9 à º ¤ 2Z } rº É Ä í H0 A\ ¦ p · .

6.3.4

• ( Þ P « ×è >(RR, Round-Robin) Û ¼H × ¦a A· ú ¦ 7 o § £ rr É ì r½ Ér + Û ¼% 7 \ " f 6 x H· ú ¦o 7 §s £ .

• \ V) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð . á Ô Ð[ jÛ ¼ P1 P2 P3 P4 P5

QÛ ! ¼à Ôr ç ß 10 ms 1 ms 2 ms 1 ms 5 ms

• s· ú ¦o 7 §\ £ " f Hk ë Ñ 5 ¿´ Ð(time quantum, tiÇ me slice)s ¦ H rr É ç ` ß ¦&

_ ñ # s ç r s ß

õ â | cM ¨ : ³F & á Ô Ð[ jÛ ¼\ ¦× æé ß ¦ 6 §á £ Ô Ð[ jÛ ¼\ ¦z ´' ô Ç .

º Ä í H0 A 3 1 4 5 2

• Ð : xï rq ¢ a« ÑÇ ©\ ¦í H¨ ! 8 Q( Ðë [ ß t# þ Q½ ¨ ³ô & Ç .

5> h_ á Ô Ð[ jÛ ¼ ¸ ¿ º 0 ms\ ¸ ÌÙ Ã ¡ þ ¦ . Û ¼H × ¦a A õ H 6 §õ £ ° ú . 0 1 P 2

6 P5

16 P1

Æ Ø© U z ºÝ Å­ à > ú ÚË n  S

• V \) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð .

18 19 P3

P 4

á Ô Ð[ jÛ ¼ P1 P2 P3

ç î ¨ H@ /l r ç ß r É 6 §õ £ ° ú . (6 + 0 + 16 + 18 + 1)/5 = 8.2 ms 3

! QÛ ¼à Ôr ç ß 24 ms 3 ms 3 ms


0 Aá Ô Ð[ jÛ ¼ ¸¿ ºú ° rr É ç \ ß ¸ ÌÙ Ã ¡ þ ¦r ç ß ¸y s 4 mss ¦ &

ñ Û ¼H × ¦a A õ H 6 §õ £ ° ú . 0

4 P1

7

10

P2 P3

14 P1

18 P1

22 P1

26 P1

time out ready queue CPU

30 P1

auxiliary queue

ç î ¨ H@ /l r ç ß r (6 + 4 + 7)/3 = 5.66 mss É . • \ V) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :Û ¼H × ¦a A \ õ ¦ a¹ ' Ï 1 # Ð . á Ô Ð[ jÛ ¼ P1 P2 P3 P4

¸ Ìr à ç ß 0 ms 1 ms 2 ms 13 ms

QÛ ! ¼à Ôr ç ß 10 ms 2 ms 6 ms 4 ms

I/O 2 queue

<Õ ªa > 6.3> Ë RR Û © ¼H × ¦ Q

Û ¼H × ¦a A õ H 6 §õ £ ° ú . 0

4 6 P1

P 2

10 P3

14 16 P1

P 3

á Ô Ð[ jÛ ¼ P1 P2 P3 P4

20 22 P4

P 1

ç î ¨ H@ /l r ç ß r É 6 §õ £ ° ú . (12 + 3 + 8 + 3)/4 = 6.5 ms

4 6 P1

P 2

10 P3

14 P1

0

3

9

15

17

P P P P P P P P P P P P P P P P P 1 2 3 4 1 2 4 1 2 4 1 4 1 4 1 4 4

18 20 22 P4

! QÛ ¼à Ôr ç ß 6 ms 3 ms 1 ms 7 ms

ç r ß ¸y s 1 ms{ 9 M : H 6 §õ £ ° ú .

ë ß P4 _ ¸ Ìr à ç s ß 9 mss Û ¼H × ¦a A õ H 6 §õ £ ° ú . 0

I/O wait

I/O 1 queue

P P 3 1

M s :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú .

ç î ¨ H@ /l r ç ß r É 6 §õ £ ° ú .

(15 + 9 + 3 + 17)/4 = 11 ms

(12 + 3 + 12 + 1)/4 = 7 ms

ͨ ø ì r 8 ç @ ß / \ &

½ ñ © o aì ) ͨ ø r 8 ç (normalized ß turnaround time)` ¦8 ¤& £

ñ H

Ä â º ¸e . &

½ ñ ©¨ 8 aì ) ͨ ø r 8 ç ß rr É Û ¼% \ 7 Që H ^ r ç õ ß z ´' ç r _ ß q Ö ¦ Ð8 ¤& £

ñ a ) . P1 = 15/6 = 2.5, P2 = 9/3 = 3, P3 = 3/1 = 3, P4 = 17/7 = 2.4s Ù ¼ Ð

ç î ¨ H&

½ ñ © o aì ) ͨ ø r 8 ç ß r 2.725s É .

• RR · ú ¦o 7 § £ rl É r& : Ü h ¼ Ð & ~ h Ód ½ s . • RR · ú ¦o 7 §_ £ $

0 í x p rr É ç ß ¸y \ ß ¼> _ rô > Ç . s ß ¼l B Ä ºß ¼ RR · ú ¦o 7 § £ r FCFS · É ú ¦o 7 §õ £ H s \ O . ì Í@ ø / ÐB Ä º Ü ¼ ë H o Ð ¨ s 8 ´ §s ú µ ÏÒ 1 tô q Ç .

ç r ß ¸y s 2 ms{ 9 M : H 6 §õ £ ° ú .

• RR · ú ¦o 7 §_ £ ë H] j& h r> É í × ß æd á Ô Ð[ jÛ ¼ 9 { Ø ¦§ × 4 æd á Ô Ð[ jÛ ¼Ð ´ § ú rr É ç ` ß ¦½ É{ + ~ © Î Ã > a ) H s ‫כ‬ (/ N& B

ñ t l w 3 Ê). <

0

5 P1

P2

P 3

10 P4

P1

P 2

14 P4

P1

17 P4

P 4

M s :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú .

– > í × ß æd á Ô Ð[ jÛ ¼ H _ r ç ß ¸y ` ¦ 6 xô Ç 6 §\ £ Ð r ï rq ¢ a« ÑÇ ©\ " f@ /l ô Ç . ì Í ø \ { 9 Ø ¦§ × 4 æd á Ô Ð[ jÛ ¼ H _ rç ß ¸ ` ¦ Ð: x 6 x t 3 w l ¦{ 9 Ø ¦§ Ç 4 ©\ " f/ @l > a ) . s @ / l s \ > í × ß æd Ô á Ð[ jÛ ¼ H> 5 q CPU Å r ç ` ß ¦½ É{ + ~ © Î> à a ) .

(14 + 10 + 5 + 17)/4 = 11.5 ms ç r ß ¸y s 3 ms{ 9 M : H 6 §õ £ ° ú . 0

6 7 P1

13

P 3

P2

P4

P1

17 P 4

P4

M s :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú .

– s ë H] j\ ¦K l 0 AK { Ø 9 ¦§ ` 4 ¦¢ a« Ñô Ç á Ô Ð[ jÛ ¼ Hï rq ¢ a« ÑÇ © Ð` l t · § ú ¦Z > ¸_ Ç © Ð` | . ³F & à º' × æ á Ô Ð[ jÛ ¼ _ r ç ¸ ß y s = Q å ï rq ¢ a« ÑÇ © Ð $ s Ç ©\ e Há Ô Ð[ jÛ ¼\ > r ç ß ¸y ` ¦ É{ + ½ K © ï r . Õ ªa > 6.3 Ë Ð Ã ¸.

(13 + 6 + 7 + 17)/4 = 10.75 ms ç r ß ¸y s 4 ms{ 9 M : H 6 §õ £ ° ú . 0

7 8 P1

P2

P 3

14 P4

P1

17 P4

M s :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú .

• ì ͨ ø r 8 ç ß ¸r ç ¸ ß y _ ß ¼l \ _ rô > Ç .

(14 + 7 + 8 + 17)/4 = 11.5 ms

• \ V) 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e ` ¦M :r ç ß ¸y _ 7 x \ £ rì É Í¨ ø r 8 ç ` ß ¦ a¹ ' Ï 1 # Ð .

ç r ß ¸y s 5 ms{ 9 M : H 6 §õ £ ° ú . 4


0

8 9 P1

15

P 3

P2

P 1

P4

17

6.3.6

• 9 {ì Í ø × æY U6 Ç \ ©Û ¼H × ¦a A rÄ É » $

s í b # Q .

s M :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú .

• × æY U6 x \ × ¼Ñ Ç þ ©Û ¼H × ¦a A rá É Ô Ð[ jÛ ¼ Ç © \ ß ç s 1 x½ l Éà + ºe ¸2 ¤K ï r .

(15 + 8 + 9 + 17)/4 = 12.25 ms r ç ß ¸y s 6 ms{ 9 M : H 6 §õ £ ° ú . 0

6 P1

9 10

• sÛ ¼H × ¦a A_ Å Ò3 q³ l ð H CPU ! QÛ ¼à Ôr ç : ß ¤$ £

í s rá É Ô Ð[ jÛ ¼[ t` þ ¦ì ro # Ï UÅ ã Òa > Ë ³ & õ © ñ0 A´ òõ ³ & ` © ¦] j H s ‫כ‬ .

17

P 3

P2

P 4

P4

s M :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú .

• / @ od á Ô Ð[ jÛ ¼ü <{ Ø 9 ¦§ × 4 æd á Ô Ð[ jÛ ¼ H © AÇ 0 ©\ ½ É{ + ÷ © & ¦ CPU × æd á Ô Ð[ jÛ ¼ H 0 AÇ © ½ \ É{ + © a ) .

(6 + 9 + 10 + 17)/4 = 10.5 ms s s r © ç ß ¸y ` ¦7 x £ # ¸ì ͨ ø r 8 ç ß r É t · § ú H .

• × æY U6 x \ × ¼Ñ Ç þ ©\ ¦ &

ñ H

p ' – Ç ©_ > hà º

• 0 A\ V\ " f Hë HÐ o ¨ \ 8 è‫כ‬ ¹÷ & Hr ç ß r É ¦ 9 t · § ú ¤ . ë HÐ o ¨ \ 8 1 ms è‫כ‬ ¹ a ) r ß ç ¸y s 2 ms{ 9 M :ü < 4 ms{ M 9 :ì ͨ ø r 8 ç ` ß ¦> ß í # Ð . $ r ç ¸ ß y s 2 ms{ M 9 : H 6 § £ ° õ ú . 0

7 P1

P2

P 3

14 P4

P 2

P1

19 P4

P1

– y Ç ©_ Û ¼H × ¦a A· ú ¦o 7 § £ – Ô á Ð[ jÛ ¼\ ¦Z } rÄ É º í H0 AÇ © Ð` ¦ 9Å Ò H l r \ ¦ &

ñ H~ ÓZ ½ O – Ô á Ð[ jÛ ¼\ ¦± ú rÄ É º í H0 AÇ © Ð? / 9Å Ò H l r \ ¦ &

ñ H~ ÓZ ½ O

22

P4

P 4

– Ô á Ð[ jÛ ¼ ï rq ¢ a« ÑÇ ©\ [ t# þ Q` ¦M :# Q " ©\ Ç ½ É{ + ½ © Ét + \ ¦ &

ñ H~ ÓZ ½ O

s M :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú . (19 + 14 + 7 + 22)/4 = 15.5 ms

6.4

8 P1

P2

9 P 3

16 P4

P1

19

– &

: á ñ Ô Ð[ jÛ ¼ H1 x{ l 9 .

P4

– ß ë : ¤& £

{ ñ 9 Ø ¦§ 4 u © _ á Ô Ð[ j" f r _ Û ¼% 7 ! QÛ ¼\ ë ß ÷ &# Qe Õ ª © \ u ¦ 6 xK Há Ô Ð[ jÛ ¼ HÕ ªá Ô Ð[ j f\ " ½ É{ + ÷ © &# Q ô Ç .

s M :¨

ç î Hì ͨ ø r 8 ç ß r É 6 §õ £ ° ú . (16 + 8 + 9 + 19)/4 = 13 ms

– yá Ô Ð[ j" f Z > ¸_ ï rq ¢ a« ÑÇ ©\ ¦¿ º ô ÇÇ © Hq # Qe ¦ rÇ É ©\ H´ § ú rá É Ô Ð[ jÛ ¼ @ /l × æ{ 9 à ºe . " f Ð: x r É N: B / x aï ) rq ¢ a« ÑÇ ©\ ¦ 6 xô Ç .

• 9 { ì Í& ø Ü h ¼ Ð CPU ! QÛ ¼à Ôr ç _ ß 80% Hr ç ß ¸ y Ð & # h Q © | Ðf à . 6.3.5

ú Þ³ n z º: g" e­ > ú ÚË n  S

• 7 xá £ Ô Ð[ jÛ ¼\ " fÛ ¼H × ¦a A½ ÉM + : ¦ 9 Ó ½

r ç ß ¸y s 4 ms{ 9 M : H 6 §õ £ ° ú . 0

ú Þ7 n _« Y © s Á­ > ú ÚË n  S

P4

ú Þ7 n _« Á ­ > ú ÚÂ n Ë S

– yá Ô Ð[ j" f Û ¼Û ¼ ÐÇ ©\ " f × þ ¿ º Ô á Ð[ j" f ° ú rá É Ô Ð[ jÛ ¼\ ¦ × þ H1 x p ë _ H] j µ ÏÒ 1 t½ q Éà + ºe . s ` ‫כ‬ ¦K 0 l AK _ á Ô Ð[ j" f HÛ ¼H × ¦a Aë { ß © { ¸2 ¤½ Éà + ºe .

• × æY U 6 \Ç ©Û ¼H × ¦a A\ " f Hï rq ¢ a« ÑÇ ©\ ¦# Q> h_ Ç © Ð ¾ º# Q 6 xô Ç . • á Ô Ð[ jÛ ¼ HÕ ª _ ‫כ‬ : ¤$ £

\ í : ¤& £

Ç ñ ©\ ½ É{ + © a ) .

6.5

• y Ç © H1 q l & h Û ¼H × ¦a A· ú ¦o 7 §` £ ¦ 6 xô Ç .

ÇS m ÷ m­ > ú ÚË n  S

• zr ´ ç r ß Û ¼% 7 × æ\ % 3 ô Çz ´r ç r ß Û ¼% 7 rì É Í ø ¼r × &

K ñ r ç ? ß /\ á Ô Ð[ jÛ ¼_ à º ' ` ¦¢ a« Ñ K ô Ç .

• Ç ©ç \ ß HZ > ¸¼ ÛH × ¦a A· ú ¦o 7 §` £ ¦ 6 xô Ç .

• Ð : xá Ô Ð[ jÛ ¼ H] jØ ¦½ ÉM + := Q? å / Hr ç ` ß ¦ Êa < ] jØ ¦ô Ç . Û ¼H × ¦ Q Hs r ç ? ß /\ s á Ô Ð jÛ [ ¼_ à º' ` ¦¢ a« ѽ Éà + º\ Ü O ¼  Òô Ç .

– ç ( ¡ 1. « 0 © AÄ º í H0 AÇ © H 0 AÄ º í H0 A Ç © Ð ] @ X /& Ä h º í0 H A\ ¦ t ¸2 ¤½ Éà + º e . s

Ä â º\ H 0 AÇ ©\ e Há Ô Ð[ jÛ ¼ H 0 © A\ e H ¸ HÇ © q # Qe ` ¦

Ä â º\ Û ß ë ¼H × ¦a A a ) .

• 9 {ì Í# ø 6 3 x( É Ó' \ " fy \ _ O þ j@ / è‫כ‬ ¹r ç ß ¦\ ` V8 ¤ £ H s ‫כ‬ # Q§ > . " f% 3 ô Çz ´r ç ß Û r ¼% 7 r: É ¤Ã £ º èá Ôà ÔJ ?# Qü <z ´r ç ß \ \ O ´ ú ] > j a: ) ¤Ã £ º × ¼J ?# Q\ ¦ 6 x # ½ ¨ ³ & a ) .

– ç ( ¡ 2. Ç « ©ç \ ß { 9 ñ

&q Ö ¦ Ð CPU r ç ` ß ¦½ É + K © { × ¦Ã ºe . 5


• ¢ a o az ) ´r ç r ß Û ¼% 7 rW É ] = jô Ç& s h Ù ¼ Ðz ´r á ß ç Ô Ð[ jÛ ¼\ > Z } rÄ É º í H0 A\ ¦Å Ò# Qz ´' a ) .

6.7 6.7.1

Ú v ø P ­ 2

• Ä º í H0 AÛ ¼H × ¦a A· ú ¦o 7 §` £ ¦ 6 xô Ç .

• ¢ a o a z ) ´r ç r ß Û ¼ 7\ % " f Û ¼H × ¦ Q H 6 §õ £ ° ú r: É ¤$ £

` í ¦ t ¦e # Q ô Ç .

• º Ä í H0 A\ ¦ z ´r ç , r ß Û ¼% 7 , r ì r½ É, @ + / od W 1 t Ä »+ AÜ þ ¼ Ðì rÀ Óô Ç .

– Ä º í H0 A Û ¼H × ¦a A · ú ¦o 7 §` £ ¦ 6 xK 9, z ´r ç á ß Ô Ð[ jÛ ¼\ > H Z © } rÄ É º í H0 A\ ¦Â Ò# K Å Ò# Q ô Ç .

• Ô á Ð[ jÛ ¼ Hl r& : Ü h ¼ Ðr ì r½ ÉÄ + »+ AÜ þ ¼ Ðì rÀ Ó a ) . r ì r½ ÉÄ + »+ A\ þ @ /ô ÇÛ ¼H × ¦a A· ú ¦o 7 § £ r É æY × U6 x \ × ¼Ñ Ç þ ©\ ¦ 6 x 9, y Ç © rU É ´ _ s r ç ß ¸y ` ¦ 6 xô Ç .

– z ´r ç á ß Ô Ð[ jÛ ¼ H Ä º í H0 A ± ú 4 R" f Hî ß a ) . – n Û ¼J u t s # Q ô Ç .

– º Ä í H0 Aü <r ç ß ¸y r% É i a> ' $

w í ô n Ç . Ä º í H0 A Z }` ¦Ã º2 ¤r ç ß ¸y r É .

• n Û ¼J u t ` ¦þ j è o H~ ÓZ ½ O – r Û ¼% 7 ñ Ø ¦ ¸× æç \ ß × æé r ß . s \ ¦0 A K × æé t ß & (preemption point)` h ¦ 6 xô Ç . 7 ¤, | £ r ¼ Û% 7 ñØ ¦7 xç £ \ ß î ß > × æé ½ ß É + à ºe Ht & ` h ¦t &

ñ # s t & \ h " f H× æ r ß é ~ ´Ã ºe ¸2 ¤ô Ç .

– © ñ 6 xá Ô Ð[ jÛ ¼ HÄ º í H0 A Z } ¦, > × ß í æd á Ô Ð[ jÛ ¼ HÄ º í H0 A ± ú . f " © ñ 6 xá Ô Ð[ jÛ ¼\ > HZ } r6 É x² £ $ ú

í ¦] ` j/ N B 9, > í × ß æd á Ô Ð[ jÛ ¼ HZ } r% É Ö o ¦` ¦] j/ Nô B Ç .

– ± ú rÄ É º í H0 Aá Ô Ð[ jÛ ¼ z ´r ç á ß Ô Ð[ j Û ¼ ‫כ‬ 9 ¹ Ð H ¶ " é` ¦ 6 x ¦e ` ¦Ã º e . s

Ä â ºÄ º í H0 A 5 © qá Å Ô Ð Ðc t(pri+ ority-inheritance protocol)` ¦ s 6 x # ± ú r É Ä º í H0 A ¸Z } rÄ É º í H0 A\ ¦° ú ¸2 ¤ # Ïo 1 À ¢ a« Ñ ¸2 ¤½ Éà + ºe .

6.6

z ³ º: g­ ­ > ú Ú n Ë{ S ¢¨ |

• " _ t o Û ¼ Hr Û ¼% 7 Ä »+ A` þ ¦s 6 x # Û ¼H × ¦ Qü < ú ° r& É V á , Ô Ð[ jÛ ¼\ ¦z ´ ' ô Ç . r Û ¼% Ä 7 »+ A\ þ É{ + ½ © aá ) Ô Ð[ jÛ ¼ Hr ì r½ É~ + Ód ½ ` ¦ 6 x t · § ú ¼9, @ Ü /l I © ÷ & 0 © AÄ º í H0 Aá Ô Ð[ j ¼ Û & ½ h ÉM + : t z ´' a ) .

ow ° P ¨ç Ö Ë g 6.7.2

• Û ¼H × ¦a A· ú ¦o 7 §` £ ¦ þ × l \ · ¡" ú fr Û ¼% _ 7 ‫כ‬ ¹½ ¨ Ó` ½ ¦ì r$ 3 # ô Ç . s \ ¦: xK · ú ¦o 7 §` £ ¦q §½ Él + ï r` ¦&

K ñ ô Ç .

Ry © Ì ¢ ¤‫כ‬ 2000

• & ~ h Ód ½ _ Ä º í H0 AÛ ¼H × ¦a A· ú ¦o 7 §` £ ¦ 6 x Ç ô .

• l ï r_ \ V

• CPU\ ½ É{ + © aÛ ) ¼Y U× ¼ H 6 § £ S © s ! µ ÏÒ 1 t½ q ÉM + : t > 5 qz Å ´' a ) .

– j þ@ /6 x² £ r ú ç s ß 1 í H] j ¸| \ " f CPU 6 x´ òÖ ¦` ¦þ j@ / o H· ú ¦o 7 § £

– Ð Z } rÄ É º í H0 Aá Ô Ð[ jÛ ¼\ _ K & h a )

Ä â º

– ôá Ç Ô Ð[ jÛ ¼_ ì ͨ ø r 8 ç s ß Õ ªá Ô Ð[ jÛ ¼_ ^ z ´ ' r ç \ ß + A& þ Ü h ¼ Ðq Y V ¸2 ¤ % o Ö ¦` ¦F G@ / o H· ú ¦o 7 § £

– @ /l K Hr Û ¼% 7 ñØ ¦` ¦ H

Ä â º – r ç ß ¸y s = Qè å ß

Ä â º

• l ï rs &

K ñ & Ü ¼ # Qì r$ ~ 3 ÓZ ½ ` O ¦s 6 x # Õ ªl ï r\ h © &½ Ëô + Ç· ú ¦o 7 §` £ ¦ × ô þ Ç .

• û ¶ ¸Ä ºÝ ¼ 2000 r8 É x 32Y ú U6 _ \ Ä º í H0 A\ ¦ 6 x Ç ô . s Ä º í H0 AY U6 \ rß É ¼> 9 tA þ Û ¼(1\ f 15)ü " <z ´r ç 9 ß tA þ Û ¼(16\ " f 31) н ¨ì r a ) .

• ì r$ ~ 3 ÓZ ½ _ O 7 xÀ á Ó – &

& ñ h ¸4 q: Å S Ò# Q X <s ' \ ¦ t ¦z ´] j > í ß # q § H~ ÓZ ½ s O . s ~ ÓZ ½ O r> É ß í õ 6 xô ÇX <s ' \ ë & ß 6 h x a ) H H] ë j& s h e .

• yÄ º í H0 AY U 6 \ Ç © e Ü ¼9, ë ß ¸ HÇ © q # Qe Ü ¼ Û ¼H × ¦ Q H “idle thread”` ¦z ´' Ç ô .

– Ç ©e ç

¸4 q: Ã S º Æ& < Ü h ¼ Ðì r$ 3 H~ ÓZ ½ s O . t ë Ã ß º Æ& < Ü h ¼ Ðì r$ 3 l 0 AK " f H# Q &

` ñ ¦ K 9, &

ñ aX ) <s ' ³ & z ´õ o e ` ¦Ã ºe .

• 9 tA þ Û ¼\ 5 qô Å ÇÛ ¼Y U× ¼_ z ´' s r ç ß ¸y _

õ â Ð à ÔX à O Ô÷ & s Û ¼Y U× ¼_ Ä º í H0 A ¦ô \ ÇY U 6 \± ð ú r . ¢ ¸ô Ç@ /l × æs ~ Û ¼Y U× ¼ ï r rq ¢ a« Ñ I © Ð 7 Û ¼H × ¦ Q HÛ ¼Y U× ¼ @ /l ~ | \ Û ¼Y U× ¼_ Ä º í H0 A\ ¦ }# Z ï r . s \ ¦: xK @ / od Û ¼Y U× ¼ HZ } rÄ É º H0 í A Ðz ´' | cà ¨ ºe .

– r Ó tY ý Us : & ©

S ñ ô X Çì r$ ~ 3 ÓZ ½ s O t ë ß ´ § ú rr É ç s ß è‫כ‬ ¹÷ &9, r Ó tY ý Us ' \ ¦[ > O ¦½ ¨ ³ & H s ‫כ‬ ~ t 1 · §` ú ¦Ã ºe . 6


6.7.3

P ×­ Ô

• o ³ qÛ n ¼ H/ N& B

ô ñ Ç & ~ h Ód ½ _ r ì r½ É· + ú ¦o 7 § £ ] õ @ X /& Ä h º í H0 A\ ¦ 6 x Hz ´r ç á ß Ô Ð[ j Û ¼\ ¦0 Aô Ç· ú ¦o 7 §¿ £ º t \ ¦ 6 xô Ç . • o ³ qÛ n ¼\ " f Hz ´r ç Ô ß á Ð[ jÛ ¼ 8 ¸& V , á Ô Ð[ jÛ ¼\ ¦ & ½ h ɺ + Ã\ O . • o ³ qÛ n ¼ Hr ì r½ É` + ¦0 AK Ä º í H0 A\ ¦ t H cre dit l ì Í· ø ú ¦o 7 §` £ ¦ 6 xô Ç . – y á Ô Ð[ jÛ ¼ H : ¤& £

ô ñ Ç Ã º_ Û ¼H × ¦a A credit` ¦ t ¦e . – ´ © § ú rÛ É ¼H × ¦a A credit` ¦ t ¦e Há Ô Ð[ jÛ ¼í HÜ ¼ ÐÛ ¼H × ¦a Aô Ç . – s Q ' X à O Ô 1 µÒ Ï t½ q ÉM + : ³F & z ´ ' × æ á Ô Ð[ jÛ ¼ H _ credit` ¦{ > 9 a ) . Credits 0s ÷ & ³F & á Ô Ð[ jÛ ¼\ ¦× æé ß ¦ 6 §á £ Ô Ð[ jÛ ¼\ ¦z ´ ' ô Ç . – z ´ ' 0 xô p Ç ¸ H á Ô Ð[ jÛ ¼_ credits Â Ò 0s r Û ¼% 7 \ e H ¸ Há Ô Ð[ jÛ ¼\ > credit` ¦ 6 §½ £ ©g :\ Ë F ½ É{ + ô © Ç . credits =

credits + priority 2

7 ¤, á £ Ô Ð[ jÛ ¼ _% i ü <Õ ª _ ‫כ‬ Ä º í H0 A\ ¦ Êa < ¦ 9ô Ç . • o ³ qÛ n ¼ H¿ º> h_ ´ r z ç Û ß ¼H × ¦a A9 tA þ Û ¼\ ¦] j / Nô B Ç . H FCFS ~ Ód ½ s ¦, r É H RR Ód ½ ~ s . s ¿ º~ Ód ½ _ s H FCFS H & ÷ h & t · §Ü ú ¼ RR ~ Ód ½ \ " f Hú ° rÄ É º í H0 A\ ¦ t Há Ô Ð[ jÛ ¼ CPU r ç ` ß ¦/ N& B

ñ > ¾ º# Q 6 x > a ) .

7


c °2003, sangjin@kut.ac.kr

T0 T1 T2 T3 T4 T5

* <* Ă– = ĂĽ i< K: ~ ÂĄq ç { ÂĄĂˆ ‘ 07 A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

register1 = counter; register1 = register1 + 1; register2 = counter; register2 = register2 − 1; counter = register1 ; counter = register2 ;

{register1 = 5} {register1 = 6} {register2 = 5} {register2 = 4} {counter = 6} {counter = 4}

• V \2)  Ăƒ Âş_ ° ‍כ‏s Ăş † Ă“ ½ Âœ° Š  ú Â? HÂż Âş> h_  Ăƒ Âş aĂź < b\ ÂŚ# ÂŒ QĂĄ Ԗ Ă?[ jĂ› Âź / NĂ„ B ô Ç “ ÂŚ &

Ăą . M s : 6 §þ ÂŁ °  Â“ Ăş rÂż É Âş> h_ ĂĄ Ԗ Ă?[ jĂ› Âź e ” “ ÂŚ .

Âł ÂŽz Âş: g­ ÂŽÂŽ ĂžM Ă’ Ă— D

7.1

Ă’Ă­ t q – Ă&#x; tĂ­ q Ă’ – Ă&#x; èq ™ èq ™ tĂ­ q Ă’ – Ă&#x; èq ™

<Ă• ÂŞa > 7.1> “counter++â€?Ăź Ă‹ < “counter−−â€?_ #

' ĂŽ Â?Ăƒ Â&#x; Âş Â? Â&#x; ' Ăľ

Part II. Process Management

7

: : : : : :

9 0Ă&#x; Ă‹ O

– P1 a = a + 1; b = b + 1;

• \ V1) Ă’ tĂ­ q – Ă&#x; ™ èq ĂŤ H] j\  " fĂ’ tĂ­ q – Ă&#x; Ăź <™ èq ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? HB N /Ă„ ÂťB j— ¸o \ ÂŚs 6 x  # ÂŒ/ N: B xÂ? Â&#x; a ) Ăƒ Âş <! Ăź Q( \ ÂŚ/ NĂ„ B ô Ç . ÂŒ #l " fÂ? H

ĂŽ r' \ ÂŚs 6 x  # ÂŒ! Q( _ — ¸ÂŽ H/ Nç B –` Ă&#x; ÂŚ 6 x  Â? HK Ă• ˜` Ăž ÂŚĂ’ ty q • ÂŒ # Œ˜ Ă? .

– P2 b = b * 2; a = a * 2;

– s [ tĂĄ Ăž Ԗ Ă?[ jĂ› ÂźÂ? H1 qw l n & Ăœ h Ÿ– Ă?Ăƒ ÂşÂ? ' Â&#x;á &€ ` ÂŚ Ă˜ Ă”> 1 x l • ÂŒ B N /Ă„  Ăƒ Âş_ ° ‍כ‏s Ăş Ăľ \ Â

† ò % Ă“` ž ÂŚĂ… Ă’Ă™ Ÿ– Ă?#

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă?Ăƒ ÂşÂ? ' Â&#x;á &€ z ´' Â?á Â&#x; & HĂ­ Â? H" f\  ` ÂŚ Ă˜ Ă”> 1 x l • ÂŒ t ¡ §` Ăş ÂŚĂƒ Âş ” e .

• ĂĄ ÂŒ y Ԗ Ă?[ jĂ› Âź 1 qw l n & Ăœ h Ÿ– Ă? Ăƒ Âş' Â?á Â&#x; &€ { › 9 a$ '

“ í r É Ät  � a ) . Õ ª Q #

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă?Ăƒ ÂşÂ? ' Â&#x;á &€ 6 §þ ÂŁ °  ú { s › 9 a$ '

s Ă­ L :| Ăƒ 9 Âşe ” . a = a + 1; b = b * 2; b = b + 1; a = a * 2;

– “ ÂŚ/ LĂĄ ĂĽ Ԗ Ă?Ă• ÂŞA b ç

ƒ # Q_ Ă´ ÇÍ H ÂœÂ“ Š r( É

Ž { 9 Q\  _ K # Œ Q> h_ l > "

§ Î

# ĂŽ Q– Ă? % | i c ¨ Ăƒ Âşe ” . “ ' X Ă O Ă”Â? HĂ´ Çl > "

§ Î

# ĂŽ Q_ "

§ Î

ĂŽ # QĂ… Ă’l = Qè ĂĽ –r Ă&#x; & \ h  " f% ƒo Â? a ) .

V 1Ăľ \ ² ˜o Ăş Ă´ Ǔ ÂŚ/ LĂĄ ĂĽ Ԗ Ă?Ă• ÂŞA b ç

ĂŤ H Âœs Š " Âś ĂŠ & h ĂœÂ– Âź Ă?Ăƒ ÂşÂ? ' Â&#x;á &# Q• ¸" Âś ĂŠ t ¡ §Â? Ăş H Ăľ Âľ Ă?Ă’ 1 t½ q Ă‰Ăƒ + Âş ” e .

– / NĂ„ B ÂťB j— ¸o \  e Â? ” H Ăƒ Âş counter_ ° ‍כ‏s Ăş 5{ 9 M :, Ă’ tĂ­ q – Ă&#x; Ăź <™ èq y •y ÂŒ • “counter++;â€?Ăź ÂŒ < “counter--;â€?\ ÂŚ#

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă?Ăƒ Âş' Â? Â&#x; € Ăľ Â? H 5 á &# Q t ĂŤ –Õ Ă&#x; ÂŞX t O ¡ §` Ăş ÂŚĂƒ Âşe ” .

• ÂŒ # Q ĂĄ Ԗ Ă?[ jĂ› Âź #

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă? Ăƒ Âş' Â?á Â&#x; &# Q Âľ Ă?Ă’ 1 t q Â? H H] ĂŤ j\ ÂŚK Â? H ` ‍כ‏ ÂŚĂĄ Ԗ Ă?[ jĂ› Âź1 xl l o Ă´ Ç .

• “counter++â€?\ ÂŚ 0 Al > # Q– Ă?Âł ð‰ Âł & € 6 §þ ÂŁ °  Ăœ Ăş Âź9,

7.2

register1 = counter; register1 = register1 + 1; counter = register1 ;

Ăˆ4 k Æ Â? ÂŒW Ă„Ăƒ

Ă˜< U g

• Ă? Ă‘N Ă„ ŠÂ… (critical section): ĂĄ ] Ԗ Ă?[ jĂ› Âź_ Â? ĂŻĂ— Âź_ Ă‚ 9 { Ă’ĂŹ rĂœ Ÿ– Ă?" f, Â? rĂĄ É Ԗ Ă?[ jĂ› Ÿß </ N1 B xĂœ l Ÿ– Ă? 6 x  Â? H Ăƒ Âş, _ Â…s ^ ÂŚ,

{ 9 1 x` p ÂŚÂ

â Â? HĂ‚ Ă’ĂŹ rs .

“counter--â€?Â? H 6 §þ ÂŁ °  ú . register2 = counter; register2 = register2 − 1; counter = register2 ;

• ” e> ½ ¨% _ i z ´' Â?“ Â&#x; r É Âœ Š ĂąC & (mutually excluh sive)Ăœ Ÿ– Ă?z ´' Â?á Â&#x; &# Q Ă´ Ç . 7 ¤, Ă´ ÂŁ Çå Ԗ Ă?[ jĂ› Âź e ” ½ > ¨% ` i ÂŚz ´' Â? Â&#x; “ ÂŚe Ăœ ” Ÿ€ Â? rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ? He ” ½ > ¨% \ i  Â” { ½ 9 Ă‰Ăƒ + Âş\ # O Q Ă´ Ç .

#l ÂŒ " f register1 Ăľ register2 Â? H CPU ? / Ă’Y Ă‚ Ut Ă› Âź' s 9, °  Â“ Ăş rY É Ut Ă› Âź' { Ăƒ 9 Âş ” e .

• " fy •å ÂŒ Ԗ Ă?[ jĂ› ÂźÂ? He > ” ½ ¨% \ i  Â” { 9 l „  ) \ ‡ \ ÂŚ~ ĂŽ Ăƒ Ă´ Ç . s ) ‡ \ Œ‍כ‏ š' A Ăľ Â? HÂ? ĂŻ Âź\ Ă— ÂŚĂŤ > ™

Ă„ ŠÂ… (entry section)s ] Ă´ Ç . ) ‡ \ ÂŚ ĂŽ Ăƒ ~ e > ” ½ ¨% ` i ÂŚz ´' Â?Ă´ Â&#x; Ç 6 §\ ÂŁ  Â? H Â? rĂĄ É Ԗ Ă?[ j Âź[ Ă› ts Ăž ” { ½ 9 Ă‰Ăƒ + Âşe • ” ¸2 ¤K Â&#x; Ă… Ă’# Q Ă´ Ç . s ` ‍כ‏ ÂŚ Â? HÂ? ĂŻĂ— Âź\ ÂŚ ¡Ă„ ŠĂ„ ŠÂ… (exit section)s ] Ă´ Ç .

– Âż ºÍ H Âœs Š #

' ĂŽ Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ Âş' Â?á Â&#x; &€ Ă• ÂŞa > 7.1Ăľ Ă‹ °  ú s Ăƒ ÂşÂ? ' Â&#x;| cĂƒ ¨ Âşe ” . • s % ƒ! # 3

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă?Ăƒ Âş' Â?á Â&#x; &Â? H# ÂŒ QĂĄ Ԗ Ă?[ jĂ› Âź / N B : xÂ? Â&#x; aX ) <s ' \ Œ› ¸ Â•½ ÂŒ ÉM + : Ăľ ] X HĂ­ H" f\  _ K &

á Ăą &€ Âż T R Âź( Ă’ Ă—@ ‘ (race condition) ” rF > Ă´ Ç “ ÂŚĂ´ Ç .

• ”{ ½ 9 ¨% , e i > ” ½ ¨% , Ă˜ i Œ½ ¨½ ¨% s i Â? Â? ĂŻĂ— ŸÂ Ă’ r` ĂŹ ÂŚĂł ÑÇ 5 ÚÄ ŠÂ… (remainder section)s ] Ă´ Ç . 1


• e > ” ½ ¨% s i Â&#x; í† ĂŠÂ? < aĂĄ ) Ԗ Ă?[ jĂ› Âź_ { ĂŹ 9 Ă?½ ø ¨Â› ¸

• N Ӕ Âą §h ¤ ¸ 2. Dekker_ ĂŚ ¡ ˜“ Ăş ÂŚo 7 § ÂŁ

do {

– / NĂ„ B  Ăƒ Âş: boolean flag[2];

entry section

– Âœ Ă­l ° ‍כ‏: flag[0]=flag[1]=false; Ăş

critical section

– flag[i] trues € Pi ” { 9 ½ Éï + rq á &% 3 §` ÂŁ 6 ÂŚ p ¡ .

exit section remainder section } while(1);

Ԗ ĂĄ Ă?[ jĂ› Âź Pi _ ½ ¨Â› ¸Â? H 6 §þ ÂŁ °  ú . do {

# ÂŒl " f do while ½ ¨Â› ¸Â– Ă?Âł ð‰ ³ô & Ç “ ‍כ‏ r: É ¤Z ÂŁ Ă´ > Çs Ă„ Âť e Â? ” H “ ‍כ‏ r É m .

flag[i]=true; while(flag[j]);

• ” e> ½ ¨% ĂŤ i H] j\ ÂŚK Â? HB j& m 7 §Â“ ÂŁ r É 6 §[ ÂŁ j t ‍כ‏ š| ` ÂŚĂ˜ ĂŚ7 ¤K ĂĄ Ă´ Ç .

critical section flag[i]=false;

– ( Ă— ‘¥ Ăľ: V  (mutual exclusive): Ă´ Çå Ԗ Ă?[ jĂ› Âź e > ” ½ ¨% \ i  " fz ´Â? ' Â&#x; “ ÂŚe Ăœ ” Ÿ€ # Q‹ ĂĄ " Ă” – Ă?[ jĂ› Ÿ• ¸e > ” ½ ¨% \ i  Â” { 9 ½ Ă‰Ăƒ + Âş\ # O Q Ă´ Ç . – ĂŤ >j š Ă&#x;(progress): e > ” ½ ¨% ` i ÂŚz ´Â? ' Â&#x; “ ÂŚe Â? ” H ĂĄ Ԗ Ă?[ jĂ› Âź \ ` O ÂŚ: M, Y

> > h_ ĂĄ Ԗ Ă?[ jĂ› Âź e ” > ½ ¨% \ i  Â” { 9 “ ÂŚ € s [ t_ Ăž ” { Ă­ 9 H " fÂ? Hs [ t\ Ăž  _ K " fĂŤ – Ă&#x; &

á Ăą &# Q Ă´ Ç . ¢ ¸ Çs Ă´ ‚ Ă— Â˜Ă‰ Ăž r Â“à ºô Ç&

ƒ Ăą l á &# Q" fÂ? HĂŽ –Â? Ă&#x; a ) . – ø 5 N 7 e (bounded waiting): Ă´ Çå Ԗ Ă?[ jĂ› Âź Â’ _ e > ” ½ ¨% \ i  Â” { 9 “ ÂŚ ‍כ‏ š' A` Ăľ ÂŚ ÇÊ Ă´ ĂŞĂ‚ Ă’' s‍כ‏ š' As Ăľ ) ‡6 x|  cM ¨ : t Â? rĂĄ É Ă” – Ă?[ jĂ› Âź Ă• ÂŞ[ t_ Ăž e > ” ½ ¨% \ i  Â” { 9 ½ Ă‰Ăƒ + Âşe ” H Â? rĂƒ Âş ] jĂ´ Çá &# Q Ă´ Ç .

remainder section } while(1); – Š  Âœ ĂąC ] jÂ? HĂŤ –7 Ă&#x; ¤ ĂĄ t ĂŤ – Ă&#x; ” Â? ' Â&#x;‍כ‏ š½ ¨Â› ¸| “ r É ĂŚ7 Ă˜ ¤ ĂĄ t 3 wĂ´ l Ç . : ¤y ÂŁ 6 §þ ÂŁ °  s Ăş z ´' Â?á Â&#x; & 3 % € P0 Ăź < P1 “ r— É ¸¿ Âş%

Âś ò " ĂŠy l o > Â? a ) . T0 : P0 flag[0] = true; T1 : P1 flag[1] = true; – Ă” å– Ă?[ jĂ› Âź e > ” ½ ¨% ? i /\  " f¢ ¸Â? H Â’ _ flag ° ‍`כ‏ Ăş ÂŚ true– Ă?[ & O

Ă´ Ăą Ç 6 §\ ÂŁ  \ Vl u ¡ §> Ăş xÂŤ ĂĄ 7 Ă‘á &€ Â? rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ? H%

" ò Âśy ĂŠ ” { ½ 9 É + Âş\ Ăƒ O . – s¡ ˜“ Ăş ÂŚo 7 §_ ÂŁ ” { ½ 9 ¨% ` i ÂŚ 6 §þ ÂŁ °  s Ăş ¨Â€ Ă‹ # Qb G> Â? | c ¨ ? while(flag[j]); flag[i]=true; s

Ă„ â Âş\  Â? H Âœ Š ĂąC ] j ĂŤ –7 Ă&#x; ¤á ĂĄ &t ¡ §Â? Ăş H .

} º³ ÂŽ² ÂŽ Ăş# aÂą É¿ n <U R s0 ĂŞ É n

7.3 7.3.1

‘ ¤4 8 ý³ ÂŽz Âş: g­ ÂŽĂľ § u ߔ ¢A X 0+ Çw s Âœ

• Âż Âş> h_ ĂĄ Ԗ Ă?[ jĂ› Ÿ× ĂŚ \ ÂŚ P0 “ ÂŚ Â? r É H P1 s Â? . ¢ ¸ô Ç[ " O

_ ĂŽ Âź o # $

` í Œ0 AK Œ Pi \ € � r É � H Pj � a ) .

– s¡ ˜“ Ăş ÂŚo 7 §_ ÂŁ ” { ½ 9 ¨% ` i ÂŚ 6 §þ ÂŁ °  s Ăş ¨Â€ Ă‹ # Qb G> Â? | c ¨ ? flag[i]=true; while(flag[j]){ flag[i]=false; /* delay */; flag[i]=true; } s

Ă„ â Âş\  Â? H 6 §þ ÂŁ °  s Ăş Ăƒ Âş' Â?| Â&#x; cĂƒ ¨ Âşe ” .

• Ă“ N ¹” §h ¤ ¸ 1. Dekker_ ĂŚ ¡ ˜“ Ăş ÂŚo 7 § ÂŁ – / NĂ„ B  Ăƒ Âş: int turn; – Âœ Ă­l ° ‍כ‏: turn=1; /* or 0 */ Ăş – turns is € Pi e > ” t % \ i  Â” { ½ 9 Ă‰Ăƒ + Âşe ” “ ÂŚ, js € Pj ” { 9 ½ Ă‰Ăƒ + Âşe ” . ĂĄ Ԗ Ă?[ jĂ› Âź Pi _ ½ ¨Â› ¸Â? H 6 §þ ÂŁ °  ú . do {

T0 T1 T2 T3 T4 T5 T6 T7

while(turn != i); critical section turn=j; remainder section } while(1); – Š  Âœ ĂąC ] jÂ? HĂŤ –7 Ă&#x; ¤ ĂĄ t ĂŤ –” Ă&#x; ' Â?‍כ‏ Â&#x; š½ ¨Â› ¸| “ r É ĂŚ7 Ă˜ ¤ ĂĄ t 3 wĂ´ l Ç . 7 ¤, % ÂŁ 3 Â? > “ §@ /– Ă?” { 9 Ă™ Ÿ– Ă? Â? rĂĄ É Ԗ Ă?[ jĂ› Âź ” { 9 “ ÂŚ 8 • ¸Ă• ÂŞĂĄ Ԗ Ă?[ jĂ› Âź _ Y V m € à º› ¸| l 9 Ă´ Ç . : ¤y ÂŁ Ă´ Çå Ԗ Ă?[ jĂ› Âź \ Vl u ¡ §> Ăş 7 xÂŤ ĂĄ Ă‘á &€ 7 xÂŤ ĂĄ Ă‘á &Â? H0 Au Ăź < œ› Š a\ ' s O Â? rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ? H%

Âś ò " ĂŠy ” { 9 ½ Ă‰Ăƒ + Âş\ O .

: : : : : : : :

P0 P1 P0 P1 P0 P1 P0 P1

flag[0]=true; flag[1]=true; checks flag[1] checks flag[0] flag[0]=false; flag[1]=false; flag[0]=true; flag[1]=true;

s s ‍כ‏ %

½ ò ¨& Ăœ h Ÿ– Ă?ĂŹ Ă?4 ø ¤| Â&#x; cĂƒ ¨ Âşe ” . Ă• ÂŞ Q ¿å Âş Ԗ Ă?[ jĂ› Âź_ z ´Â? ' Â&#x;5 q• Ă… ¸ › ¸F KĂŤ –# Ă&#x; QF M ¸& •

Ăą Âœ& Š Ăœ h Ÿ– Ă?Ăƒ Âş' Â?| Â&#x; cĂƒ ¨ Âşe l ” M :ĂŤ H\  Â“ §Â‚ ĂŒ Ăƒ ÂœI Š Â? H m . s ‰ Âł & Âœ` Š ÂŚ livelocks Ă´ Ç . 2


• Ă“ N ¹” §h ¤ ¸ 3. Dekker_ ĂŚ ¡ ˜“ Ăş ÂŚo 7 § ÂŁ

– Š  Âœ ĂąC ] j: Âż ºå Ԗ Ă?[ jĂ› Âź — ¸¿ º” { 9 “ ÂŚ 8 • ¸ ” { 9 ½ ¨% _ i Âż º P :ĂŤ H Âœ_ Š z ´' Â? Â&#x; H" Ă­ f\  turn_ ° ‍“כ‏ Ăş ri¢ É ¸Â? HjĂ— ĂŚ _ ‍`כ‏ Ăş ° ÂŚ t > á &Ă™ Ÿ– Ă?Âż ºå Ԗ Ă?[ jĂ› Ÿ× ĂŚ ĂŤ – Ă&#x; while ĂŤ H` ÂŚ: xĂľ Â&#x; ½ Ă‰Ăƒ + Âşe ” . ¢ ¸ô Ç Â? rĂĄ É Ԗ Ă? jĂ› [ ÂźÂ? He > ” ½ ¨% \ i  Â” { 9 Ă´ Çå Ԗ Ă?[ jĂ› Âź _ Â’ flag ° ‍`כ‏ Ăş ÂŚ false– Ă?[ & O

Ăą l „ t e ” ½ > ¨% \ i  Â” { ½ 9 Ă‰Ăƒ + Âş\ O .

– / NĂ„ B  Ăƒ Âş boolean flag[2]; int turn; – Âœ Ă­l ° ‍כ‏ Ăş flag[0]=flag[1]=false; turn=0; /* or 1 */

– ”' Â?Ăľ Â&#x; Ă´ Ç> @ /l : Pi ” { 9 ` ÂŚr • ¸ t ¡ § Ăş Ÿ€ Ăœ flag[i] ° ‍כ‏s Ăş falses Ă™ Ÿ– Ă? Pj Â? He > ” ½ ¨ \ i %  Â” { ½ 9 Ă‰Ăƒ + Âşe ” . Ă‘ t Ăź 1 xr l \  Â” { 9 ÂŚ “ € Âœ Š ĂąC ] j Ă˜ ĂŚ7 ¤á ĂĄ &Ă™ Ÿ– Ă?# QĂ– Âź ĂŤ – Ă&#x; ” { 9 ½ Ă‰Ăƒ + Âşe Ăœ ” Âź9 ” { Â? 9 aĂĄ ) Ԗ Ă?[ j" f > ” e ½ ¨% ` i ÂŚ 4 R š ¸Â€ flag ° ‍`כ‏ Ăş ÂŚ false– Ă? ¨Ă™ Ă‹ Ÿ– Ă? Â? rĂĄ É Ԗ Ă?[ j" fÂ? H ” { 9 ½ Ă‰Ăƒ + Âşe ” . " fĂž j@ / Â? rĂĄ É Ԗ Ă?[ jĂ› Âź Ă´ Ǡ” { 9 Ă´ ÇÊ ĂŞ  Â? \ H” { ½ 9 Ă‰Ăƒ + Âşe ” .

ĂĄ Ԗ Ă?[ jĂ› Âź Pi _ ½ ¨Â› ¸Â? H 6 §þ ÂŁ °  ú . do { flag[i]=true; while(flag[j]) if(turn==j){ flag[i]=false; while(turn==j); flag[i]=true; }

7.3.2 Ăş Þ³ n ÂŽz Âş: g­ ÂŽĂľ § u ߔ ¢A X 0+ Çw s Âœ • s¡ ˜“ Ăş ÂŚo 7 §Â“ ÂŁ r É Â? r´ É ˜– Ăş Ă?] jĂľ & ¡ h ˜“ Ăş ÂŚo 7 §(bakeÂŁ ry algorithm)s Ă´ Ç .

critical section turn=j; flag[i]=false;

• l‘ rĂ’ : ty q •: > ÂŒ \  [ t# Ăž Qš ¸Â? HÂ’ H_ < [ ” t“ Ăž r Ă‰  ù\ ÂŚ ~ ĂŽĂœ Ăƒ Âź9,  ÂœÂą Š Â?“ Ăş r Ă‰  ù\ ÂŚ~ Γ Ăƒ rÂ’ É H_ < Ă­ ” HĂœ Ÿ– Ă? fq " Ă› Âź\ ÂŚ~ ĂŽÂ? Ăƒ H . Ă• ÂŞ X <— ¸ÂŽ HÂ’ H_ < s ” Â? r Ă‰  ù ÂŚ~ \ Ε Ăƒ ¸2 ¤Â˜ Â&#x; Ă? Âœ½ Š Ă‰Ăƒ + Âş\ O . ĂŤ –€ Ă&#x; •¿ Â? º’ H_ < s ” °  Â“ Ăş r É   ù\ ÂŚ~ ĂŽĂœ Ăƒ Ÿ€ s 2 §í ÂŁ HĂœ Ÿ– Ă?" fq Ă› Âź\ ÂŚ~ ĂŽÂ? Ăƒ H .

remainder section } while(1); Ă‘ tĂ— Ăź ĂŚ ĂŤ – Ă&#x; ”{ 9 “ ÂŚ € Â? rĂĄ É Ԗ Ă?[ jĂ› Âź_ flag ° ‍כ‏s Ăş falses Ă™ Ÿ– Ă? ”{ ½ 9 Ă‰Ăƒ + Âşe ” . Âż ºå Ԗ Ă?[ j Ă› Âź — ¸¿ º” { 9 “ ÂŚ € turn ° ‍כ‏s Ăş ” { 9 Â? H ĂĄ Ԗ Ă?[ jĂ› Âź\ ÂŚ &

Â? Ăą a ) . s ¡ ˜“ Ăş ÂŚo 7 §Â“ ÂŁ r[ É j t ‍כ‏ š ½ ¨Â› ¸| ` Œ— ¸¿ ÂşĂ˜ ĂŚ7 ¤ô ĂĄ Ç .

– ¸ —¿ Âş Â? r Ă‰  ù\ ÂŚ~ Ε Ăƒ ¸2 ¤ Â&#x; l 0 AK " fÂ? H ù\  Œ~ ĂŽÂ? Ăƒ H ‍כ‏ ^ ‰ e > ” ½ ¨% s i Â? a ) . – ÂŽ (É Ă“' \  " fĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H— ¸¿ Âş Â? rs É 2 §(ĂĄ ÂŁ Ă” Ă?[ – jĂ› Ÿ  ù)` ÂŚ ” .

• Ă“ N ¹” §h ¤ ¸ 4. Peterson_ ĂŚ ¡ ˜“ Ăş ÂŚo 7 § ÂŁ

• / NĂ„ B  Ăƒ Âş

– / NĂ„ B  Ăƒ Âş

boolean choosing[n]; int num[n];

boolean flag[2]; int turn;

choosing“ r— É ¸¿ Âş false– Ă?Âœ Ă­l oá &9, num“ r— É ¸¿ Âş 0Ăœ Ÿ– Ă?Âœ Ă­l oÂ? a ) .

– Âœ Ă­l ° ‍כ‏ Ăş flag[0]=flag[1]=false; turn=0; /* or 1 */

• Âł Ă°l Z O – (a, b) < (c, d): a < cs a == cs “ ÂŚ b < ds € ‚ Ă?s Ăƒ .

ĂĄ Ԗ Ă?[ jĂ› Âź Pi _ ½ ¨Â› ¸Â? H 6 §þ ÂŁ °  ú . do {

– max(a0 ,a1 ,. . .,an−1 ): ai (i = 0, . . . , n − 1) Ă— ĂŚ  Âœ Š H° ‍כ‏ Ăş

flag[i]=true; turn=j; while(flag[j] && turn==j);

• ĂĄ Ԗ Ă?[ jĂ› Âź Pi _ ½ ¨Â› ¸Â? H 6 §þ ÂŁ °  ú . do {

critical section

choosing[i]=true; num[i]=max(num[0], num[1], . . ., num[n-1])+1; choosing[i]=false; for(j=0; j<n; j++){ while(choosing[j]); while((num[j]!=0)&& ((num[j],j)<(num[i],i))); }

flag[i]=false; remainder section } while(1); e> ” ½ ¨% \ i  Â” { 9 l „ \  Pi Â? H flag[i]\ ÂŚ true– Ă? & O [

Ăą # ÂŒ Â’ s ” { 9 “ ÂŚ † ĂŠ` < ÂŚ ? /“ ÂŚ, Ă• ÂŞ 6 § turn_ ÂŁ ° ‍`כ‏ Ăş ÂŚ j– Ă?[ & O

Ăą # ÂŒ Â? rĂĄ É Ԗ Ă?[ jĂ› Âź ” { 9 “ ÂŚ € s\ ÂŚ ) ‡6 xĂ´  Ç . Pi Â? H flag[j] falses turns i{ 9

Ă„ â Âş\  Í –” Ă&#x; { ½ 9 Ă‰Ăƒ + Âşe ” . 3


× Ìå Ԗ �Õ ªA b

\ ç  H%

† ò Ă“` ž ÂŚĂ… Ă’Ă™ Ÿ– Ă?´ òĂ– ÂŚ& “ h K Ă• ˜“ Ăž r É m .

critical section num[i]=0;

• Ă— ĂŚĂĄ Ԗ Ă?[ j" fr Ă› Âź% 7 ›\  " fÂ? H“ ' X Ă O Ă” Âľ Ă?Ă’ 1 t½ q É + Âş\ Ăƒ • O ¸2 ¤ Â&#x; 8 • ¸# Œ„ y Âż ºå Ԗ Ă?[ j" f\  " fÂż Âş Ԗ ĂĄ Ă?[ jĂ› Âź 1 xr l \  z ´Â? ' Â&#x;| cĂƒ ¨ Âşe # ” Qe > ” ½ ¨% ĂŤ i H j\ ] ÂŚK ½ Ă‰Ăƒ + Âş\ O .

remainder section } while(1); • ¡ ˜“ Ăş ÂŚo 7 §_ ÂŁ &

S ù ‰$ X

Ă­ – Âœ Š ĂąC ] j

• sM :ĂŤ H\  Â“ ' X Ă O Ă”\ ÂŚ% ] 3 j Â? H~ Ă“Z ½ @ O / Â’ @ /Ă‚ Ă’ r_ ĂŹ r Ă› Âź% 7 ›“ rs É ĂŤ H] j\ ÂŚK ½ ÉM + : 6 x½  Ă‰Ăƒ + Âş Â? ” e H: ¤Ăƒ ÂŁ ºô Ç Ă— ÂźJ ?# Q"

§ Î

# Î Q\ Œ] j/ Nô B Ç . s "

ĂŽ

# ĂŽ § QÂ? H" Âś ĂŠ & Ăœ h Ÿ– Ă?(s "

§ Î

# ĂŽ Q\ ÂŚĂƒ Âş' Â? Â&#x; Â? H1 xĂŽ l – Ă&#x;  Â? \ H “ ' X Ă O Ă”á &t ¡ §6 Ăş §) Ă´ ÂŁ Ç0 >Ă— Âź\ ÂŚ ÂŽ “ ÂŚĂƒ Âş

½ Ăą & Ă‰Ăƒ + Âşe • ” ¸2 ¤K Â&#x; Ă… Ă’ Âż Âş0 >Ă— Âź_ ° ‍`כ‏ Ăş Œ“ §¨ Š½ 8 É + Âşe Ăƒ • ” ¸2 ¤K Â&#x; ĂŻ r .

• Pi   ù\ Œ‚ Ă— Â˜Ă´ Ăž ÇÊ ĂŞ\  Pk ‚ Ă— ˜ Ăž i % € (num[i],i)<(num[k],k) $

w Ă­ Ă´ n Ç . " f Pk Â? H Pi e > ” ½ ¨% \ i  4 R š ¸Â€ " f num[i]=0` Œ½ ÉM + : t ” { ½ 9 É + Âş\ Ăƒ O . • q 5 wĂ´ p Çr l \    ù\ ÂŚ~ ĂŽ Ăƒ °  Â“ Ăş r Ă‰  ù ÂŚĂƒ \ ĂŽ ~ 8 • ¸¿ ºå Ԗ Ă?[ jĂ› Âź_ s 2 §s ÂŁ °  ú ÂŚĂƒ ` Âş\ Ăœ O ŸÙ Ÿ– Ă?s Ă— ĂŚ € $ e > ” ¨% ½  i \” { 9 9, Â? r É Â? HĂ• ÂŞĂĄ Ԗ Ă? jĂ› [ Âź e > ” ½ ¨% \ i  4 R ` ÂŚ M : t H” Â? { ½ 9 Ă‰Ăƒ + Âş\ O . • choosing  Ăƒ Âş € ‍כ‏ 9 šô Çs Ă„ Âť: °  Â“ Ăş r Ă‰ Ăą\  Œ~ Γ Ăƒ rÂż É ºå Ԗ Ă?[ jĂ› Âź Ă‘ t Ăź e > ” ½ ¨ \ i %  Â” { 9 Â? H

Ă„ â Âş\ ÂŚ ] j l 0 AK ‍כ‏ 9 € š . \ V\ ÂŚ[ t# Ăž Q°  Â“ Ăş r Ă‰  ù\ ÂŚ~ ĂŽ> Ăƒ &Â? á HÂż ºå Ԗ Ă?[ jĂ› Âź Pi Ăź < Pk Ă— ĂŚ Pi Â? H  ù ÂŚ~ \ ĂŽÂ? Ăƒ H• ¸Ă— ĂŚ\  Ă” å– Ă?[ jĂ› ŸÛ Âź0 Au { 9 Qz # ¤Â“ ÂŒ ÂŚ, Â? rĂ” É å– Ă?[ jĂ› ÂźÂ? H> 5 q” Ă… ' Â?` Â&#x; ÂŚ # ÂŒ for ĂŤ H` ÂŚĂƒ ÂşÂ? ' Â&#x; “ ÂŚe ” . s

Ă„ â Âş while(choosing[j]); ĂŤ Hs \ Ăœ O Ÿ€ Pk Â? He ” ½ > ¨% \ i  à º j ]F \ s O ” { 9 > a ) Â? . Pi r z ´Â? ' Â&#x;á &€ Pk Ăź <  ù  Â“ Ăş ° ÂŚ s2 §s ÂŁ 8 Â•Ăœ ÂŒ ŸÙ Ÿ– Ă?s ĂĄ Ԗ Ă?[ jĂ› Âź ¸Â” • { 9 > Â? a ) .

• TestAndSet "

§ Î

# ĂŽ Q boolean TestAndSet(boolean &target){ boolean rv = target; target = true; return rv; } " s

§ Î

# ĂŽ QÂ? H" Âś ĂŠ & Ăœ h Ÿ– Ă?z ´' Â?á Â&#x; &Ă™ Ÿ– Ă?Âż ºå Ԗ Ă?[ j Ă› s Âź "

§ Î

# ĂŽ Q\ ÂŚ#

' ĂŽ Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ ÂşÂ? ' Â&#x; 8 • ¸(Âż ºå Ă” Ă?[ – j" f\  " f1 xr l \  Ăƒ ÂşÂ? ' Â&#x;á & 8 • ¸) e _ ” Ă­ H" f– Ă? H Ă­ & Ăœ h Ÿ– Ă? Ăƒ ÂşÂ? ' Â&#x;Â? a ) . r Ă› Âź% ›s 7 TestAndSet "

ĂŽ

` ĂŽ § ÂŚ] j/ N B € locks Â? HĂ” ÂŚ(boolean)+ A Þ Ăƒ Âş\ ÂŚ ƒ ‚ “ ÂŚ, s ` ‍כ‏ ÂŚ false– Ă?Âœ Ă­l o # ÂŒ Âœ Š ĂąC ] j ÂŚ \ 6 §þ ÂŁ °  s Ăş ~ > 1 ½ ¨Â‰ ³½ & Ă‰Ăƒ + Âşe ” . do { while(TestAndSet(lock)); critical section lock=false;

– ” Â? ' Â&#x;:   ù\ Œ‚ Ă— ˜ Ăž “ ÂŚe t ” ¡ §Â? Ăş HĂĄ Ԗ Ă?[ jĂ› Âź H num[i]=0s Â? Ă™ Ÿ– Ă? Â? rĂĄ É Ԗ Ă?[ jĂ› Âź_ ” { ` 9 ÂŚ } •t ÂŒ 3 wĂ´ l Ç .

remainder section } while(1);

– Ă´> Ç @ / l: ” { 9 “ ÂŚ Â? HÂż ºå Ԗ Ă?[ jĂ› Âź Pi Ăź < Pk Ă— ĂŚ Pk € $   ù\ ÂŚ~ ĂŽ Ăƒ ” { ` 9 ÂŚ % i # Q• ¸ Pk l “ ÂŚe Â? ” H Pi ˜ Ă? € $ r ” { 9 ` Œ½ ɺ + Ăƒ\ O . 7 ¤, P i Â? ÂŁ HĂž j@ /y •å ÂŒ Ԗ Ă?[ j Ă› Âź y •ô ÂŒ Ç m ” ” { 9 Ă´ ÇÊ ĂŞ\  Â? H ” { 9 ½ Ă‰Ăƒ + Âş ” e .

7.4

• Swap "

§ Î

# Î Q void Swap(boolean &a, boolean &b){ boolean temp = a; a = b; b = temp; } Û r Ÿ% ›s 7 Swap "

§ Î

` Î Œ] j/ N B € locks � HF g

%Ă” i ÂŚ+ A Þ Ăƒ Âş(/ NĂ„ B  Ăƒ Âş)Ăź <ĂĄ Ԗ Ă?[ jĂ› Âź key Ht Â? %  i Ăƒ Âş\ Œ‚ ƒ # ÂŒ Âœ Š ĂąC ] j\ ÂŚ 6 §þ ÂŁ °  ú ½ s ¨Â‰ ³½ & Ă‰Ăƒ + Âşe ” . s M : lock“ r false– É Ă?Âœ Ă­l oĂ´ Ç .

ÂŽ ĂžM Ă’ Ă— D Š ÂŽ Ăş# a

• Ă&#x; ĂŠ{ – 9 ĂĄ Ԗ Ă?[ j" fr Ă› Âź% ›_ 7

Ă„ â Âş/ NĂ„ B ÂťÂ? a ) Ăƒ Âş\ ÂŚÂ

â Â? H1 xĂŽ l –\ Ă&#x;  Â“ ' X Ă O Ă”\ ÂŚÂľ Ă?Ă’ 1 t½ q Ă‰Ăƒ + Âş\ • O ¸2 ¤ Â&#x; 0 € AĂź <°  Â“ Ăş rĂŤ É H] j\ ÂŚĂ? ˜ ~ > 1 K ½ Ă‰Ăƒ + Âşe ” .

do {

• “ ' X Ă O Ă”% ] 3 j~ Ă“Z ½ ` O ÂŚs 6 xĂ´  Ă‡e > ” ½ ¨% ĂŤ i H] j_ K Ă• ˜ Ăž

key=true; while(key==true) Swap(lock,key);

do {

critical section

disable interrupt

lock=false;

critical section

remainder section } while(1);

enable interrupt

ÂŞ Ă• Q TestAndSetĂľ Swap` ÂŚs 6 x  Â? HÂż º¡ ˜“ Ăş ÂŚ o7 §Â“ ÂŁ r— É ¸¿ Âş Âœ Š ĂąC ] jĂŤ Â–Ă˜ Ă&#x; ĂŚ7 ¤½ ĂĄ Éá + rĂ´ Ç> @ /l Â? H

remainder section } while(1); 4


8 x7 ú ¤á å &t ¡ §� ú H . s ¿ º"

§ Î

s ĂŽ z ´Â? ' Â&#x;á &Â? HĂ­ H" f\  ô Çå Ԗ Ă?[ jĂ› ÂźÂ? H%

½ ò ¨& Ăœ h Ÿ– Ă?e > ” ½ ¨% \ i  Â” 9 { ` ÂŚ3 w½ l Ă‰Ăƒ + Âşe ” .

S--; } • signal ƒ Ă­ – Ă&#x;

• TestAndSet` ÂŚs 6 xĂ´  Ă‡e > ” ½ ¨% ĂŤ i H] j_ — ¸ÂŽ H‍כ‏ š ½ ¨ † Ă“` ½ ÂŚĂ˜ ĂŚ7 ¤ ĂĄ Â? H¡ ˜“ Ăş ÂŚo 7 § ÂŁ

signal(S){ S++; }

do { waiting[i]=true; key=true; while(waiting[i] && key) key = TestAndSet(lock); waiting[i]=false;

• j [ Â&#x; Ă­# Q\ ÂŚs 6 xĂ´  Ă‡nĂĄ Ԗ Ă?[ jĂ› Âźe > ” ½ ¨% ĂŤ i H] j  @ \ /Ă´ ÇK Ă• ˜ Ăž

critical section

do {

j=(i+1) % n; while((j != i) && !waiting[j]) j = (j+1) % n; if(j==i) lock=false; else waiting[j]=false;

wait(mutex); critical section signal(mutex) remainder section } while(1);

remainder section } while(1);

¸ÂŽ — HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H mutex Â? H[ j Â&#x; Ă­# Q\ ÂŚ/ NĂ„ B Âť 9, mutexÂ? H 1– Ă?Âœ Ă­l oÂ? a ) .

– Š  Âœ ĂąC ] j: lock“ r false– É Ă?Âœ Ă­l oÂ? a ) . " f TestAndSet` ÂŚj ]{ 9 € $ z ´Â? ' Â&#x;Ă´ Çå Ԗ Ă?[ j Ă› ÂźÂ? H Â’ _ t %  i Ăƒ Âş key ° ‍כ‏s Ăş false á & # Q” { Ă´ 9 Ç . Â? rĂĄ É Ԗ Ă?[ jĂ› Âź[ t“ Ăž r” É { Ă´ 9 Çå Ă” – Ă?[ jĂ› Âź e > ” ½ ¨% i `= ÂŚ Q? ĂĽ /“ ÂŚĂ˜ Œ½ ¨t % \ i  " f lock` ÂŚ false– Ă? waiting[j]\ ÂŚ false– Ă? Â

K â Ă— ÂŚM : t ” { 9 ½ Ă‰Ăƒ + Âş\ Ăœ O ŸÙ Ÿ– Ă? Âœ Š Ăą C ] j Ă˜ ĂŚ7 ¤Â? ĂĄ a ) .

– wait ƒ Ă­ –` Ă&#x; ÂŚ] j{ € 9 $ z ´Â? ' Â&#x; Â? HĂĄ Ԗ Ă?[ jĂ› Âź H mutex ° Â? ‍כ‏s Ăş 1s Ă™ Ÿ– Ă?s ° ‍`כ‏ Ăş ÂŚ 0Ăœ Ÿ– Ă? Ă‹ ¨ ÂŚe “ > ” ½ ¨% \ i  Â” { ½ 9 Ă‰Ăƒ + Âşe ” . s ĂĄ Ԗ Ă?[ j Âź Ă˜ Ă› Œ½ ¨t % \ i  " f mutex ° ‍`כ‏ Ăş ÂŚ 1– Ă? r ¨# Ă‹ QĂ… Ҁ Â? rĂĄ É Ԗ Ă?[ jĂ› Âź ” { ` 9 Œ½ Ă‰Ăƒ + Âşe ” . – s~ Ă“Z ½ • O ¸¡ ÂĄ" Ăş f‘ r TestAndSetĂľ : Swap "

§ Î

ĂŽ Q\ # ÂŚs 6 xĂ´  Ă‡~ Ă“Z ½ Ăľ O Ă° Ă? t ø – Ă?Ă´ Ç> @ /l HĂ˜ Â? ĂŚ7 ¤ ĂĄ t 3 wĂ´ l Ç .

– ” Â? ' Â&#x;: e > ” ½ ¨% ` i ÂŚ= Q ĂĽ pĂĄ ¡ Ԗ Ă?[ jĂ› ÂźÂ? HĂ˜ Œ½ ¨t % \ i  " f Â? rĂĄ É Ԗ Ă?[ jĂ› Âź ” { ½ 9 Ă‰Ăƒ + Âşe • ” ¸2 ¤ Â&#x; lock` ÂŚ false– Ă? waiting[j]\ ÂŚ false– Ă?Â

K â Ă… Ă’Ă™ Ÿ– Ă? Â? rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ? H ² G\ D  Â? H” 9 { ½ Ă‰Ăƒ + Âşe ” .

• Î #'

Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ ÂşÂ? ' Â&#x;á &Â? HÂż Âş> h_ ĂĄ Ԗ Ă?[ jĂ› Âź P1 Ăľ P2 Â? H •y ÂŒ y • S1 Ăľ ÂŒ S2 ĂĄ Ԗ Ă?Ă• ÂŞA b

ĂŤ ç H Âœ` Š ÂŚ t “ ÂŚe ” “ ÂŚ . ¢ ¸ô Ç S1 s z ´' Â?Â? Â&#x; a ) 6 §\ ÂŁ  S2 z ´' Â?á Â&#x; &# Q Ç Ă´ . s 1 xl l oĂŤ H] jÂ? H[ j Â&#x; Ă­# Q\ ÂŚs 6 x  # ÂŒ > 1 ~ K ½ Ă‰Ăƒ + Âşe ” . Âż ºå Ԗ Ă?[ jĂ› ÂźÂ? H 0Ăœ Ÿ– Ă?Âœ Ă­l oÂ? a synch ) Â? H[ j Â&#x; Ă­# Q\ ÂŚ/ NĂ„ B ô Ç .

– Ă´> Ç @ /l : e > ” ½ ¨% ` i ÂŚ= Q ĂĽ pĂĄ ¡ Ԗ Ă?[ jĂ› ÂźÂ? HĂ˜ ÂŚ ½ ¨t % \ i  f " i+1Ă‚ Ă’' i−1 t Ă­ H¨ Ší 8 H" f– Ă? Â? rĂĄ É Ԗ Ă?[ jĂ› Âź_ waiting` Œ› ¸ Ă´ Ç . s M :  Ă? ' P :– Ă? waiting ° ‍כ‏s Ăş true“ ` ‍כ‏ ÂŚ false– Ă? Â

K â ĂŻ r . ¢ ¸ô Ç l o “ ÂŚe Â? ” HĂĄ Ԗ Ă?[ jĂ› Âź \ Ăœ O Ÿ€ lock` ÂŚ false– Ă?Â

K â ĂŻ r . " fĂž j@ / Â? rĂĄ É Ԗ Ă?[ jĂ› Âź Ă´ Ç m ” ” { Ă´ 9 ÇÊ ĂŞ \  Â? He > ” ½ ¨% \ i  Â” { 9 ½ Ă‰Ăƒ + Âşe ” .

– P1 S1 ; signal(synch); – P2 wait(synch); S2 ;

• 1 xl l o Ă— ÂźJ ?# Q ™ èå Ôà Ô? J# Q] X H~ Ă“d ½ _ ” / N B : xÂ? Â&#x; aĂŤ ) H] j& : — h ¸¿ Âş# QĂ– Ÿô Çå Ԗ Ă?[ jĂ› Âź e > ” ½ ¨ % \ i  e Ăœ ” Ÿ€ ” { 9 “ ÂŚ Â? H Â? rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ? H “busy waitingâ€?` ÂŚK Ă´ Ç .

7.5

“ Þ0 Ó É n

7.5.1

7.5.2

: g ƒ Âş# a

Œ” Â? Ă´

• busy waiting` ÂŚ Â? H[ j Â&#x; Ă­# Q\ ÂŚ spinlocks Ă´ Ç . spinlock“ rĂŤ É HĂ? o„ Â? ¨ Šs 8 € ‍כ‏ 9 š\ # O Qš ¸A 1 xĂŽ l – Ă&#x; busy waiting` ÂŚ t ¡ §Â? Ăş H € ´ òþ & “ h ~ Ă“Z ½ s O .

• T z  ï# a(semaphore) SÂ? H&

Ăƒ Ăą º Ăƒ º– Ă?" fÂœ Ă­l o ÂŚ] \ jĂź @ “ ÂŚÂ? HÂż Âş t ƒ Ă­ – waitĂź Ă&#x; < signal` ÂŚ: xK Â&#x; " fĂŤ –] Ă&#x; H X ½ Ă‰Ăƒ + Âşe ” . sÂż ÂşÂƒ Ă­ –“ Ă&#x; r" É Âś ĂŠ & s h . • wait ƒ Ă­ – Ă&#x;

• busy waiting` ÂŚ ] j l 0 AK " fÂ? H wait ƒ Ă­ –` Ă&#x; ÂŚ Âş' Ăƒ Â? Â&#x; % ` i ÂŚM :[ j Â&#x; Ă­# Q° ‍כ‏s Ăş € ÂœĂƒ ÂŞ Âş m € Ă› Âź Ÿ– Ă› Ă?^ ÂŚ2 ¤ Â&#x; • ¸2 ¤K Â&#x; Ă´ Ç .

wait(S){ while(S <= 0); 5


• busy waitings \ Â? O H[ j Â&#x; Ă­# Q½ ¨Â› ¸

• busy waitings \ Â? O Hs ” signal ƒ Ă­ – Ă&#x; void signal(semaphore S){ if(S.L is empty) S.value = 1; else { remove a process P from S.L; wakeup(S.L); } }

typedef struct { int value; struct process *L’; } semaphore; • busy waitings \ Â? O H wait ƒ Ă­ – Ă&#x; void wait(semaphore S){ S.value--; if(S.value < 0){ add this process to S.L; block(); } }

•

ĂŽ rh A[ j Â&#x; Ă­# QÂ? HÂż Âş> h_ s ” [ j Â&#x; Ă­# Q S1 Ăľ S2 \ ÂŚs 6 x  # ÂŒ½ ¨Â‰ ³½ & Ă‰Ăƒ + Âşe ” . s M :Æ Ă’ – Ă?

rh ĂŽ A[ j Â&#x; Ă­# Q_ Âœ Ă­l ° â€Ť×›â€ŹĂœ Ăş Ÿ– Ă?Âœ Ă­l oÂ? a& )

Ăƒ Ăą º º C\ Ăƒ ÂŚ 6 xĂ´  Ă‡ . – wait ƒ Ă­ – Ă&#x; void wait(semaphore S){ wait(S1); C--; if(C < 0){ signal(S1); wait(S2); } signal(S1); }

# ÂŒl " fÇ ŠÂ? H FIFO ~ Ă“d ½ s ” . • busy waitings \ Â? O H signal ƒ Ă­ – Ă&#x; void signal(semaphore S){ S.value++; if(S.value <= 0){ remove a process P from S.L; wakeup(S.L); } }

– signal ƒ Ă­ – Ă&#x; void signal(semaphore S){ wait(S1); C++; if(C <= 0) signal(S2); else signal(S1); }

• busy waitings e Â? ” H[ j Â&#x; Ă­# Q_

Ă„ â Âş\  Â? H[ j Â&#x; Ă­# Q° ‍כ‏s Ăş 6 §Ăƒ ÂŁ Âş á &t ¡ §Â? Ăş H . Ă• ÂŞ Q busy waitings \ Â? O H[ j Â&#x; Ă­# Q_

Ă„ â Âş\  Â? H[ j Â&#x; Ă­# Q° ‍כ‏s Ăş 6 §Ăƒ ÂŁ Âş | cĂƒ ¨ Âşe Ăœ ” Âź9, 6 §Ăƒ ÂŁ Âşs € s “ ‍כ‏ r[ É j Â&#x; Ă­# Q ÂŚl \ o Â? HĂĄ Ԗ Ă?[ jĂ› Âź _Ăƒ Âş\ ÂŚ p ¡ . • [ j Â&#x; Ă­# Q ` ÂŚ Ă˜ Ă”> 1 x l • ÂŒ l 0 AK " fÂ? H waitĂź < signal ƒ Ă­ –“ Ă&#x; rĂŹ É Ă?Ă— ø Âźr ĂŠ " Âś & Ăœ h Ÿ– Ă?Ăƒ Âş' Â?á Â&#x; &# Q Ă´ Ç . s \ ÂŚ0 AK ĂŠ –{ Ă&#x; 9 ĂĄ Ԗ Ă?[ j" fr Ă› Âź% 7 ›\  " fÂ? H“ ' Ă O X Ă”% ] 3 j~ Ă“Z ½ ` O ÂŚ 6 x½  Ă‰Ăƒ + Âşe ” . Ă• ÂŞ Q Ă— ĂŚ ĂĄ Ԗ Ă?[ j" fr Ă› Âź% 7 ›\  " fÂ? Hs ~ Ă“Z ½ s O 0 x p t ¡ § Ăş . " f: ¤Ăƒ ÂŁ ºô Ç Ă— ÂźJ ?# Q"

§ Î

` ĂŽ ÂŚ] j/ N B t ¡ § Ăş Ăœ Ÿ€ 7.2] \ X  ] jr Â? a™ ) èå Ôà ÔJ ?# QK Z ` O ÂŚ 6 x  K Ă´ Ç . 7.5.3

T Ă Ăƒ Ă…: g ƒ Âş# a

• t F K t 6 xĂ´  Ă‡[ j Â&#x; Ă­# QÂ? H | 9 Ăƒ Âşe Â? ” H° ‍_כ‏ Ăş # 0 3 A &

K Ăą 4 Re t ” ¡ §Â“ Ăş r

É ĂŽ rh A[ j Â&#x; Ă­# Qs . • [ j Â&#x; Ă­# Q | 9 Âş Ăƒe Â? ” H° ‍_כ‏ Ăş # 0 3 A 0 ¢ ¸Â? H 1– Ă? ] jĂ´ Çá &# Qe Âź ” ĂœÂ€ l ĂŤ >T z  ï# a Ă´ Ç . • busy waitings \ Â? O Hs ” wait ƒ Ă­ – Ă&#x; void wait(semaphore S){ if(S.value == 1) S.value = 0; else { add this process to S.L; block(); } } 6


• ! Q( _ Ă&#x; Âźl : n

c °2003, sangjin@kut.ac.kr

• mutex [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă?Âœ Ă­l oá & 9, ! Q( ] X H\  @ /Ă´ Ç Âœ Š ĂąC ] j\ ÂŚ] j/ NĂ´ B Ç .

* <* Ă– = ĂĽ i< K: ~ ÂĄq ç { ÂĄĂˆ ‘ 08

• empty [ j Â&#x; Ă­# Q: > Ăƒ Âş[ j Â&#x; Ă­# Q– Ă? nĂœ Ÿ– Ă?Âœ Ă­l o &9, q á # Qe Â? ” H! Q( _ Ăƒ Âş\ ÂŚ p ¡ .

A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

• full [ j Â&#x; Ă­# Q: > Ăƒ Âş[ j Â&#x; Ă­# Q– Ă? 0Ăœ Ÿ– Ă?Âœ Ă­l oá & 9, G 0 >4 Re Â? ” H! Q( _ Ăƒ Âş\ ÂŚ p ¡ .

Part II. Process Management

• mutexÂ? H Âœ Š ĂąC ] j\ ÂŚ 0 AK 6 xá  &% “ 3 ÂŚ, emptyĂź < full“ r1 É xl l o\ ÂŚ0 AK 6 xá  &% 3 . 7.5.2

Âł ÂŽz Âş: g­ ÂŽÂŽ ĂžM Ă’ Ă— D

7 7.5 7.5.1

Ă—M m ø ¸ ÂŽM Ăƒ Ă˜< U g

• ÂŒ # QĂĄ Ԗ Ă?[ jĂ› Âź X <s ' ĂŒ o^ Â? ‰(

{ , / 9 NĂ„ B ÂťB j— ¸o  e \ Â? ” H½ ¨Â› ¸)\ ÂŚ/ NĂ„ B ô Ç . # Q‹ ĂĄ " Ԗ Ă?[ jĂ› Âź[ t“ Ăž rs É o^ Â? ĂŒ ‰_ ? /6 x`  Œ{ “ 9 ÂŚz ¡Â“ ÂŚ, # Q‹ ĂĄ " Ԗ Ă?[ jĂ› Âź[ t“ Ăž rs É o^ Â? ĂŒ ‰_ ? /6 x`  ŒĂŒ tÂ’ q “ ÂŚz ¡ . „ Ăź <°  Â“ Ăş rĂĄ É Ԗ Ă? jĂ› [ Âź\ ÂŚ{ 9 l ĂĄ Ԗ Ă?[ jĂ› Âź(reader) “ ÂŚ, ĂŠ ĂŞ Ăź <°  ú rĂĄ É “ Ԗ Ă?[ jĂ› Âź\ ÂŚĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź(writer) Ă´ Ç .

w ŠÂ? Ă…ÂŽ š ĂžM Ă’ Ă— DĂƒ Ă˜< U g ¢4 X ” ! a( at Â? m ˜ Ă‘ Ạ}R Ăƒ Ă˜< U g

• q Ă’Ă­ t – Ă&#x; Â? H! Q( e Ăœ ” Ÿ€ @ /l # ÂŒ “ ÂŚ, ™ è q Â? H! Q( q # Qe Ăœ ” Ÿ€ @ /l # ÂŒ Ă´ Ç . ¢ ¸ Ç! Ă´ Q( \  @ /Ă´ Ç] X H“ r É Âœ Š ĂąC ] j á &# Q Ă´ Ç .

• º ¿{ l 9 å Ԗ �[ jÛ Ÿ #

' ĂŽ Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ Âş' Â?á Â&#x; &# Q• ¸Ă‚ Ă’&

Ăą “ h & Ăľ Âľ Ă?Ă’ 1 t q t ¡ §Â? Ăş H . Ă• ÂŞ Q _ ĂŚ Âź ĂĄ l Ԗ Ă?[ jĂ› Ÿß < Â? rĂĄ É Ԗ Ă?[ jĂ› Âź #

' ĂŽ Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ Âş' Â? Â&#x; &€ á Ă‚ Ă’&

& Ăą “ h Ăľ Âľ Ă?Ă’ 1 t½ q Ă‰Ăƒ + Âşe ” .

• [ j Â&#x; Ă­# Q\ ÂŚs 6 xĂ´  Ă‡Ă’ tĂ­ q – Ă&#x; è ™q ĂŤ H] j • Ă’ tĂ­ q – Ă&#x; ĂĄ Ԗ Ă?[ jĂ› Âź: Ă• ÂŞa > 7.1 Ă‹

aÂŚ ! > 1. ‡ e ™ Ă‹ à ¤ > n ™ e Ă­ ÂŤe % V K Â

do { ... nextp\  6 § item` ÂŁ ÂŚĂ’ tĂ­ q – Ă&#x; ... wait(empty); wait(mutex); ... nextp\ ÂŚQ !( \  Ă’ Æ ... signal(mutex); signal(full); } while(1);

• s! Q„ \  " f{ l 9 ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? HĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź NĂ„ B / ÂťĂŒ o^ Â? ‰\ ÂŚ] X H “ ÂŚe t ” ¡ §Ăœ Ăş Ÿ€ @ /l t ¡ § Ăş H Â? . • s ! Q„ _ ĂŤ H] j& : ĂŚ h Âźl ĂĄ Ԗ Ă?[ jĂ› Âź_ Ă? UĂ… ĂŁ Ă’a > Ă‹ • ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź: Ă• ÂŞa > 7.3 Ă‹ wait(wsem); ... ĂŚ Âźl Ăƒ ÂşÂ? ' Â&#x; ... signal(wsem);

<Ă• ÂŞa > 7.1> Ă’ Ă‹ tĂ­ q – Ă&#x; ĂĄ Ԗ Ă?[ jĂ› Âź

<Ă• ÂŞa > 7.3> { Ă‹ 9 l Ă„ º‚ ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź • ™ èq ĂĄ Ԗ Ă?[ jĂ› Âź: Ă• ÂŞa > 7.2 Ă‹ • { l 9 ĂĄ Ԗ Ă?[ jĂ› Âź: Ă• ÂŞa > 7.4 Ă‹

do { wait(full); wait(mutex); ... Q( ! \  e Â? ” H item` ÂŚ nextc– Ă?` Â…^ ” ... signal(mutex); signal(empty); ... nextc\ Ϊ èq ... } while(1);

wait(mutex); readcount++; if (readcount == 1) wait(wsem); signal(mutex); ... 9 { l Ăƒ ÂşÂ? ' Â&#x; ... wait(mutex); readcount−−; if (readcount == 0) signal(wsem); signal(mutex);

<Ă• ÂŞa > 7.2> ™ Ă‹ èq ĂĄ Ԗ Ă?[ jĂ› Âź

<Õ ªa > 7.4> { Ë 9 l Ä º‚ { 9 l å Ԗ �[ jÛ Ÿ

1


wait(w); writecount++; if (writecount==1) wait(rsem); signal(w); wait(wsem); ... ĂŚ Âźl Ăƒ ÂşÂ? ' Â&#x; ... signal(wsem); wait(w); writecount−−; if (writecount==0) signal(rsem); signal(w);

wait(rw); wait(rsem); wait(r); readcount++; if (readcount == 1) wait(wsem); signal(r); signal(rsem); signal(rw); ... 9 { l Ăƒ ÂşÂ? ' Â&#x; ... wait(r); readcount−−; if (readcount==0) signal(wsem); signal(r);

<Ă• ÂŞa > 7.5> ĂŚ Ă‹ Âźl Âş Ă 9l { ĂĄ Ԗ Ă?[ jĂ› Âź • wsem [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă?Âœ Ă­l oá & 9, ĂŚ Âźl ] X H\  @ /Ă´ Ç Âœ Š ĂąC ] j\ ÂŚ] j/ NĂ´ B Ç .

<Õ ªa > 7.6> Ì Ë Ÿl Ä º‚ { 9 l å Ԗ �[ jÛ Ÿ

• mutex [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă?Âœ Ă­l oá & 9, readcount  Ăƒ Âş] X H\  @ /Ă´ Ç Âœ Š ĂąC ] j\ ÂŚ] j/ N B Ç Ă´ .

• rw [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă?Âœ Ă­l oá &9, ¸ÂŽ — H{ l 9 ĂĄ Ԗ Ă?[ jĂ› Âź rsem\  @ /l t ¡ §Â• Ăş ¸2 ¤ Â&#x; Ç Ă´ . s “ ‍כ‏ r É t } •Ì ÂŒ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź ¢ aÂŤ Ă‘á &# Q _ { 9 l ĂĄ Ԗ Ă?[ jĂ› Âź r  Â•Â? ÂŒ aĂŠ ) ĂŞ\  r ĂŚ Âźl Ԗ ĂĄ Ă?[ jĂ› Âź ĂŻ rq á &€ l ” r\ >  @ /l “ ÂŚe ~ ” { 9 ĂĄ l Ԗ Ă?[ jĂ› Âź[ t˜ Ăž Ă? ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź\  > Ă„ º‚ Ă­ H0 A ÂŚĂ… \ Ă’l 0 AK € ‍כ‏ 9 š .

• readcount  Ăƒ Âş: &

Ăƒ Ăą º Ăƒ º– Ă? 0Ăœ Ÿ– Ă?Âœ Ă­l oá &9, 9 { l ƒ Ă­ –` Ă&#x; ÂŚĂƒ ÂşÂ? ' Â&#x; “ ÂŚe Â? ” HĂĄ Ԗ Ă?[ jĂ› Âź_ Ăƒ Âş\ ÂŚ p ¡ . • 9 { l ƒ Ă­ –` Ă&#x; ÂŚĂƒ ÂşÂ? ' Â&#x; “ ÂŚe Â? ” HĂĄ Ԗ Ă?[ jĂ› Âź \ ` O ÂŚM : 9 { l ƒ Ă­ –` Ă&#x; ÂŚĂƒ Âş' Â? Â&#x; Â? HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H wsem [ j Â&#x; Ă­ # Q\ ÂŚ ÂŽ # ÂŒĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź ĂŚ Âźl ƒ Ă­ –` Ă&#x; ÂŚĂƒ Âş ' Â? Â&#x; “ ÂŚe Â? ” Ht S ‰ X “ Ă´ Ç . ĂŤ –€ Ă&#x; •\ Â? Ăœ O Ÿ€ ĂŚ Âźl ĂĄ Ԗ Ă? [ jĂ› Âź ĂŚ Âźl ƒ Ă­ –` Ă&#x; ÂŚ t l w 3 • ¸2 ¤ô Â&#x; Ç .

• writecount  Ăƒ Âş: &

Ăƒ Ăą º Ăƒ º– Ă? 0Ăœ Ÿ– Ă?Âœ Ă­l oá &9, Âźl ĂŚ ƒ Ă­ –` Ă&#x; ÂŚĂŻ rq “ ÂŚe Â? ” HĂĄ Ԗ Ă?[ jĂ› Âź_ Ăƒ Âş\ ÂŚ p ¡ . • readcount  Ăƒ Âş: &

Ăƒ Ăą º Ăƒ º– Ă? 0Ăœ Ÿ– Ă?Âœ Ă­l oá &9, l 9 { ƒ Ă­ –` Ă&#x; ÂŚĂƒ Âş' Â? Â&#x; “ ÂŚe Â? ” HĂĄ Ԗ Ă?[ jĂ› Âź_ Ăƒ Âş\ ÂŚ p ¡ .

• 9 { l ƒ Ă­ –` Ă&#x; ÂŚp Âą t } •\ ÂŒ  Ăƒ ÂşÂ? ' Â&#x; Â? HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź ĂŚ Âźl ƒ Ă­ –` Ă&#x; Œ½ Ă‰Ăƒ + Âşe • ” ¸2 ¤ wsem Â&#x; [ j Â&#x; Ă­# Q\ ÂŚ7 x r ÂŁ & ĂŻ r .

• ĂĄ Ԗ Ă?[ jĂ› ŸÇ Š_ ÂœI Š : Âł Ă° 7.1

! aÂŚ > 2. Ă­ ‡ ÂŤe Ă‹ à ¤ > n e ™ ÂŤ Ă­e K %V Â

7.6

• s ! Q„ \  " fĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź ĂŻ rq á &% Ăœ 3 Ÿ€ 8 s ÂœD Š h– Ă?ĂŽ r{ 9 l Ă” å– Ă?[ jĂ› Âź { l 9 ƒ Ă­ –` Ă&#x; ÂŚĂƒ Âş' Â? Â&#x; Ă‰Ăƒ + ½ Âş\ O .

Ç] v ² ÂĄ K Ă´ §8 p ý‹ mÂ? ˜ mĂƒ ˜ Ă˜< U g

• s ! Q„ _ ĂŤ H] j& : h 9l { Ă” å– Ă?[ jĂ› Âź_ Ă? UĂ… ĂŁ Ă’a > Ă‹ • ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź: ÂŞ Ă•a > 7.5 Ă‹ • { 9 l ĂĄ Ԗ Ă?[ jĂ› Âź: Ă• ÂŞa > 7.6 Ă‹ • wsem [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă?Âœ Ă­l oá & 9, ĂŚ Âźl ] X H\  @ /Ă´ Ç Âœ Š ĂąC ] j\ ÂŚ] j/ NĂ´ B Ç . • rsem [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă? Âœ Ă­l oá & 9, ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź ĂŻ rq á &% ` 3 ÂŚM :D h– Ă?ĂŽ r{ l 9 ĂĄ Ԗ Ă?[ jĂ› Âź_ ) ‡6 x`  Œ} •l ÂŒ 0 AK 6 xÂ?  a ) . • w [ j Â&#x; Ă­# Q: s ” j [ Â&#x; Ă­# Q– Ă? 1– Ă? Âœ Ă­l oá &9, writecount  Ăƒ Âş\  @ /Ă´ Ç Âœ Š ĂąC ] j] X H` ÂŚ] j/ NĂ´ B Ç .

<Ă• ÂŞa > 7.7> ^ Ă‹ =† o Æ < [ t_ Ăž ĂŤ –ð Ă&#x; Ă?ĂŤ ø H] j

• r [ j Â&#x; Ă­# Q: s ” [ j Â&#x; Ă­# Q– Ă? 1– Ă? Âœ Ă­l oá &9, readcount  Ăƒ Âş\  @ /Ă´ Ç Âœ Š ĂąC ] j] H X ` ÂŚ] j/ NĂ´ B Ç .

• 1965¸ \  Dijkstra ] jĂŽ – Ă&#x; 2


<Âł Ă° 7.1> ĂŚ Âźl Ă„ º‚ { 9 l ĂŚ Âźl ĂŤ H] j_ ĂĄ Ԗ Ă?[ jĂ› ŸÇ Š[ t_ Ăž ÂœI Š 9 { l ĂĄ Ԗ Ă?[ jĂ› ŸÍ –” Ă&#x; rF >

• wsem=0 ({ l 9 ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) •— ¸ÂŽ HÇ Š empty

ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› ŸÍ –” Ă&#x; rF >

• wsem=0 (ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) • rsem=0 (ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) • wsem Ç Š\  Qt ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź[ t@ Ăž /l

{ 9 l Ăź <ĂŚ Âź lĂĄ Ԗ Ă?[ jĂ› Âź — ¸¿ º” rF > 9 { l ĂĄ Ԗ Ă?[ jĂ› Âź € $ ” { 9

• wsem=0 ({ l 9 ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) • rsem=0 (ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) • wsem Ç Š\  Â— ¸ÂŽ HĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź[ t@ Ăž /l • rsem Ç Š\  ô Ç{ l 9 ĂĄ Ԗ Ă?[ jĂ› Âź @ /l • rw Ç Š\  Qt { l 9 ĂĄ Ԗ Ă?[ jĂ› Âź[ t@ Ăž /l

{ 9 l Ăź <ĂŚ Âź lĂĄ Ԗ Ă?[ jĂ› Âź — ¸¿ º” rF > ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź € $ ” { 9

• wsem=0 (ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) • rsem=0 (ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź\  _ K ) • wsem Ç Š\  Qt ĂŚ Âźl ĂĄ Ԗ Ă?[ jĂ› Âź[ t@ Ăž /l • rsem Ç Š\  ô Ç{ l 9 ĂĄ Ԗ Ă?[ jĂ› Âź @ /l • rw Ç Š\  Qt { l 9 ĂĄ Ԗ Ă?[ jĂ› Âź[ t@ Ăž /l

• Ă• ÂŞs ĂŠ ĂŞ] jĂŽ –Â? Ă&#x; a— ) ¸ÂŽ H1 xl l o¸ •½ ¨Â? Hs ĂŤ H] j\ ÂŚ\ O ´ òĂ– ÂŚ& Ăœ h Ÿ– Ă?K ½ Ă‰Ăƒ + Âşe Â? ” Ht \ ÂŚÂ˜ Ă?e Ăœ ” Ÿ– Ă? + ‹Õ ÂŞ _ ‍כ‏ Ă„ ÂşĂƒ Âş$

` Ă­ ÂŚÂŁ x 7"

ĂŽ % i .

(— I ¸¿ Âş& | Ç ĂŒ` Ăƒ ÂŚ m ĂŤ ” –| Ă&#x; ` 9 ÂŚĂƒ Âşe ” ) Âľ Ă?Ă’ 1 t½ q Ă‰Ăƒ + Âşe ” . • I Aƒ BĂ? l v 1. ĂŒ _ & | Ç ĂŒ` Ăƒ ÂŚ| 9 “ r É 6 §\ ÂŁ  Â? r É \ ÂŚ| 9 ` ÂŚĂƒ Âş\ Ăœ O Ÿ€ | “ 9 r& É | Ç ĂŒ` Ăƒ ÂŚ? / 9Z ~“ Œ ™ ÂŒ l r Â? ;ĂŠ 2 ĂŞ\  r r • ¸ô Ç .

• � ãš

Ă Ăž ž ¡Â˜ ĂŚ +ĂŻ Ă‘Ă´ 5 5 % V K  (dining-philosopher problem): $ " Ă

_ ĂŽ ^ =† o Æ < e ” . s [ t“ Ăž rĂ’ É ty q •\ ÂŒ   Â™ ÂŒ l " Â? 3 H Ăź ‍כ‏ @\  Â? H Ă Âş • ‍כ‏ ¸ t ¡ §Â? Ăş H . ^ = o Æ < † [ t“ Ăž rÂś É " ĂŠ+ A_ Ăž Â…s ^ ÂŚ\  ¡ ÂŚ Ăş e Ăœ ” Âź9, _ Â…s ^ ÂŚĂ— ĂŚ Âœ\ Š €  ¾ Ă‘s 1 e ” . Ă• ÂŞ X <& | Ç ĂŒs Ăƒ $ > Ă hÂľ Ăš\ 1  \ O . C “ ÂŚĂĄ Ԁ ^ =† o Æ < Â? H  Âœ Š s e Â? ” HÂż Âş > h_ & | Ç ĂŒ` Ăƒ ÂŚ| 9 Â? H . ^ =† o Æ < Â? HĂ´ Ç \  _ | Ç & ĂŒĂŤ Ăƒ –| Ă&#x; 9 ` ÂŚĂƒ Âşe Ăœ ” Âź9, \ P | Ă?s Ăƒ | “ 9 ÂŚe Â? ” H | Ç & ĂŒÂ“ Ăƒ r| É 9 ` ÂŚĂƒ Âş\ Ăœ O Âź9, Âż Âş> h_ & | Ç ĂŒ` Ăƒ Œ— ¸ Âż Âş| # 9 Q d ” \ Œ½ Ă‰Ăƒ + Âşe ” . d ” \ ÂŚĂ´ ÇÊ ĂŞ\  Â? H r Âż Âş> h_ & | Ç ĂŒ` Ăƒ Œ— ¸¿ Âş/ ? 9Z ~“ ÂŚĂ’ ty q •\ ÂŒ   Â™ ÂŒ | . Ă• ÂŞa > 7.7 ‚ Ă‹ Ă?› Ăƒ ¸.

– ĂŤ] H j& : livelocks h Âľ Ă?Ă’ 1 t½ q Ă‰Ăƒ + Âşe ” . – K Ăž Ă•: e ˜ _ ” _ r ç –` Ă&#x; ÂŚl Â? ; 2 . (Ethernet Ă“d ½ ~ ) ” • I Aƒ BĂ? l v 2. [ ĂŒ j Â&#x; Ă­# Q\ ÂŚ 8 6 x  # Œ„ ^ ‰þ

` Ăą & ÂŚe > ” ½ ¨% Ăœ i Ÿ– Ă?[ & O

ô ù Ç . Õ ªa > 7.9 Ë do { wait(mutex); wait(chopstick[i]); wait(chopstick[(i+1)%5]); ... ” d ... signal(chopstick[i]); signal(chopstick[(i+1)%5]); signal(mutex); } while(1);

• ĂŠ –í Ă&#x; HK Ă• ˜: Ă• Ăž ÂŞa > 7.8 Ă‹ do { wait(chopstick[i]); wait(chopstick[(i+1)%5]); ... ” d ... signal(chopstick[i]); signal(chopstick[(i+1)%5]); } while(1);

<Ă• ÂŞa > 7.9> ^ Ă‹ =† o Æ < [ t_ Ăž ĂŤ –ð Ă&#x; Ă?ĂŤ ø H] j\  @ /Ă´ ÇK Ă• ˜ 02 Ăž – ĂŤ H] j& : Ă´ h Ç \  ô Ç^ =† o Æ < ĂŤ –d Ă&#x; ” 0 x p

<Ă• ÂŞa > 7.8> ^ Ă‹ =† o Æ < [ t_ Ăž ĂŤ –ð Ă&#x; Ă?ĂŤ ø H] j\  @ /Ă´ ÇÊ –í Ă&#x; HK ˜ Ăž Ă•

• I Aƒ BĂ? l v 3. j ĂŒ [ Â&#x; Ă­# Q\ ÂŚ 8 6 x  # ÂŒ & Ç ĂŒ` Ăƒ | ÂŚ | Â? 9 H Ă‚ Ă’ĂŹ rĂ&#x; ĂŤ e – > ” ½ ¨% Ăœ i Ÿ– Ă? [ & O

ô ù Ç . Õ ª > 7.10 Ë a

– / NÄ B X <s '

– ĂŤ H] j& : “ h §Â‚ ĂŒ Ăƒ ÂœI Š Âľ Ă?Ă’ 1 t½ q Ă‰Ăƒ + Âşe ” .

semaphore chopstick[5];

7.7

s [ j Â&#x; Ă­# Q[ t“ Ăž r— É ¸¿ Âş 1– Ă?Âœ Ă­l o Ç Ă´ . – ĂŤ] H j& : h ÂœĂą Š  C ] jÂ? HĂ˜ ĂŚ7 ¤(s ĂĄ Ă– Š Â? H^ =† o Æ < H# Â?

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă?d ” ½ Ă‰Ăƒ + Âş\ 6 O §)á ÂŁ &t ĂŤ –“ Ă&#x; §Â‚ ĂŒ Ăƒ Âœ Š

Ăˆ4 k Æ W Ă‹W _ Ă„

• j [ Â&#x; Ă­# Q\ ÂŚ 6 x  Â€ Âœ Š ĂąC ] j\ ÂŚ~ > 1 Ă˜ ĂŚ7 ¤r ĂĄ ~ ´ Âşe Ăƒ ” . 3


• s Ăƒ Âş\  @ /Ă´ Ç] H X “ r region ĂŤ É H Âœ` Š ÂŚ? /\  " fĂƒ Âş Â?K Â&#x; ' Ă´ Ç . region ĂŤ H Âœ_ Š + AI Ăž Â? H 6 §þ ÂŁ °  ú .

do { wait(mutex); wait(chopstick[i]); wait(chopstick[(i+1)%5]); signal(mutex); ... ” d ... wait(mutex); signal(chopstick[i]); signal(chopstick[(i+1)%5]); signal(mutex); } while(1);

region v when (B) S; ĂŤ s H Âœ_ Š _ p : B › ¸| s ‚ Ă?s Ăƒ # Q SĂŤ H Âœ` Š ÂŚĂƒ Âş '½ Â? Â&#x; Ă‰Ăƒ + Âşe Ăœ ” Âź9, s p Ă´ Çå Ԗ Ă?[ jĂ› Âź S\ ÂŚĂƒ Âş' Â? Â&#x; ÂŚe “ Ăœ ” Ÿ€ Â? rĂĄ É Ԗ Ă?[ jĂ› ÂźÂ? Hl Â? ; 2 . • 6 §¿ ÂŁ ºÍ H Âœs Š #

' ĂŽ Â?Ăœ Â&#x; Ÿ– Ă?Ăƒ Âş' Â?á Â&#x; &€ region v when (true) S1; region v when (true) S2; ÂŞ Ă• Ăľ Â? H S1` ÂŚĂƒ ÂşÂ? ' Â&#x; “ ÂŚ S2\ ÂŚĂƒ ÂşÂ? ' Â&#x; S2\ ÂŚ Ăƒ' Âş Â? Â&#x; “ ÂŚ S1` ÂŚĂƒ Âş' Â?Ă´ Â&#x; Ç Ăľ Ăź <°  ú . 7 ¤, " ÂŁ Âś ĂŠ & h Ÿ– Ăœ Ă?Ăƒ Âş' Â?Â? Â&#x; a ) .

<Ă• ÂŞa > 7.10> ^ Ă‹ =† o Æ < [ t_ Ăž ĂŤ –ð Ă&#x; Ă?ĂŤ ø H] j\  @ /Ă´ ÇK Ă• ˜ Ăž 03

• ” e> %

% ò ` i ÂŚs 6 xĂ´  Ă‡Ă´ Ç> ! Q( Ă’ tĂ­ q – Ă&#x; ™ èq ĂŤ H j ]

• Ă• ÂŞ Q ĂĄ Ԗ Ă?Ă• ÂŞĂ? ›` Ăž ÂŚz ´Ăƒ º– Ă?¸ ˜3 Ăş w½ l ¨$

Ă­ € • ÂŒ _ & h “ ĂĄ Ԗ Ă?ÂŞ Ă•A Q\  _K ÂŒ • €6 x|  cĂƒ ¨ Âşe ” .

– B /Ä N X <s ' typedef { item pool[n]; int count, in, out; } bufferT; buffer: shared bufferT;

• [ j Â&#x; Ă­# Q\ ÂŚ s 6 xĂ´  Ă‡ { ĂŹ 9 Ă?& ø h “ Âœ Š ĂąC ] j ½ ¨Â› ¸Â? H 6 §þ ÂŁ °  ú . wait(mutex); ... critical section ...

– q Ă’Ă­ t – Ă&#x; ĂĄ Ԗ Ă?[ jĂ› Âź region buffer when (count<n) { pool[in]=nextp; in = (in+1) % n; counter++; }

signal(mutex); • waitĂź < signal_ Ă­ H" f\ ÂŚ Ă‹ ¨Â€ Âœ Š ĂąC ] j Ă˜ ĂŚ7 ¤ ĂĄ &t á ¡ §Â? Ăş H .

– è ™q ĂĄ Ԗ Ă?[ jĂ› Âź region buffer when (count>0) { nextc=pool[out]; out = (out+1) % n; counter--; }

signal(mutex); ... critical section ... wait(mutex); • 6 §þ ÂŁ °  Â“ Ăş r½ É ¨Â› ¸\ ÂŚ 6 x  Â€ “ §Â‚ ĂŒ Ăƒ ÂœI Š Âľ Ă?Ă’ 1 t q Ă‰Ăƒ + ½ Âşe ” .

7.8

wait(mutex);

¢N { ' [

• ¸ —m ' ? /\  Â‚ ƒ Â? a ) Ăƒ ÂşÂ? H— ¸m ' ? /\  &

_ Ăą Â? a ) ĂŠĂƒ < † Âş\ ÂŚ: xK Â&#x; " fĂŤ –] Ă&#x; X H½ Ă‰Ăƒ + Âşe Ăœ ” Âź9, — ¸m ' ? /\ Â

_ Ăą & Â? a† ) ĂŠĂƒ < ÂşÂ? H— ¸m ' ? /\  Â‚ ƒ Â? a ) Ăƒ ºÍ – Ă&#x; 6 x  Ă‰Ăƒ + ½ Âşe ” .

... critical section ... wait(mutex);

• ô Ç \  ô Çå Ԗ Ă?[ jĂ› ŸÍ –s Ă&#x; — ¸m ' ? /Ă‚ ҆ ĂŠĂƒ < Âş\ ÂŚz ´ Â?½ Â&#x; ' Ă‰Ăƒ + Âşe ” .

• s ĂŤ H] j\ ÂŚ] j l 0 AK [ j Â&#x; Ă­# Q˜ Ă? Â? H Âœ Š 0 A> hÂĽ _ Æ 1 xl l o K ¸ •½ ¨\ ÂŚ] j/ NĂ´ B Ç .

• sl 0 xĂŤ p Â–Ăœ Ă&#x; Ÿ– Ă?4 ¤¸ Â&#x; šô Ăş Ç1 xl l oĂŤ H] j\ ÂŚK l  Ă‚ \ Ă’7 ¤ ĂĄ . — ¸m ' ? /\  &

_ Ăą Â? a† ) ĂŠĂƒ < Âş\ ÂŚ 6 x½  Ă‰ + Âş\ Ăƒ ` O ÂŚM :@ /l ½ Ă‰Ăƒ + Âşe • ” ¸2 ¤K Â&#x; Ă… Ă’# Q Ă´ Ç . " f— ¸m ' Â? Hs \ ÂŚ0 AK Æ Ă’ – Ă?› ¸| (condition) { _ 9  Ăƒ Âş\ ÂŚ] j/ NĂ´ B Ç .

• @ /Âł Ă°& h “ Âœ0 Š A> hÂĽ 1 Æ xl l o¸ •½ ¨ – Ă‘ N Ă? Æ Â… Z ](critical region) – ˜ Âżf ' a(monitor)

condition x, y; • ” e> %

% ò • i ¸½ ¨\  " fÂ? H/ NĂ„ B  Ăƒ ÂşÂ? H 6 §þ ÂŁ °  s Ăş ƒ ‚ Ă´ Ç . v: shared T;

• ¸ ›|  Ăƒ ÂşÂ? H 6 §¿ ÂŁ ÂşÂƒ Ă­ –\ Ă&#x;  _ K " fĂŤ –› Ă&#x; ¸ Â•| ÂŒ cĂƒ ¨ Âş ” e . 4


monitor dp { enum {thinking, hungry, eating} state[5]; condition self [5]; void picking(int i) { state[i] = hungry; test(i); if(state[i]!=eating) self [i].wait(); } void putdown(int i) { state[i] = thinking; test((i+4)%5); test((i+1)%5); } void test(int i) { if ((state[(i+4)%5] != eating) && (state[i] == hungry) && (state[(i+1) % 5] != eating)){ state[i] = eating; self [i].signal(); } } void init() { for(int i=0; i<5; i++) state[i]=thinking; } }

x y

<Ă• ÂŞa > 7.11> ¸ Ă‹ ›|  Ăƒ Âş\ ÂŚ ” — ¸m ' – wait ƒ Ă­ – Ă&#x; x.wait(); s ƒ Ă­ –` Ă&#x; ÂŚĂƒ ÂşÂ? ' Â&#x; Â? HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H@ /l > a ) Â? . – signal ƒ Ă­ – Ă&#x; x.signal();

<Ă• ÂŞa > 7.12> — Ă‹ ¸m ' \ ÂŚs 6 xĂ´  Ă‡^ =† o Æ < [ t_ Ăž ĂŤ –ð Ă&#x; Ă?ĂŤ ø H ]\ j  @ /Ă´ ÇK Ă• ˜ Ăž

s ƒ Ă­ –` Ă&#x; ÂŚĂƒ Âş' Â? Â&#x; € @ /l Ă— ĂŚ “ _ ĂĄ Ԗ Ă? [ jĂ› Âź F > hĂ´ Ç . • — ¸m ' \ ÂŚ s 6 xĂ´  Ă‡ “ §Â‚ ĂŒ Ăƒ ÂœI Š \ Â? O H ^ =† o Æ < [ t_ Ăž –ð Ă&#x; ĂŤ Ă?ĂŤ ø H] j\  @ /Ă´ Ç K Ă• ˜: Ă• Ăž ÂŞa > 7.12 Ă‹ – y •^ ÂŒ =† o Æ < Â? H 6 §] ÂŁ X \  d ” \ ÂŚĂ´ Ç . dp.pickup(i); ... ” d ... dp.putdown(i);

– ¸ —m ' ? /Ă‚ Ă’\  Â‚ ƒ Â? ay ) •† ÂŒ ĂŠĂƒ < ÂşÂ? H[ j Â&#x; Ă­# Q Ă?½ – ¨Â‰ Âł & € z ´] j 6 §þ ÂŁ °  ú . wait(mutex); ... ĂŠĂƒ < † Âş_ z ´] j‘ r^ : ‰ ... if (next count>0) signal(next); else signal(mutex);

– › ¸|  Ăƒ Âş self \ ÂŚs 6 x  # ÂŒ Â’ s C “ ÂŚĂĄ Ă”t –& Ă&#x; ĂŤ | Ç ĂŒ` Ăƒ ÂŚ| ` 9 ÂŚĂƒ Âş\ Ăœ O Ÿ€ Ă› ŸÛ Ÿ– Ă?l Â? ; 2 .

– ÂŒ y› • ¸|  Ăƒ Âş x s ” [ j Â&#x; Ă­# Q x semĂľ

Ăƒ Ăą & º Ăƒ Âş x count\ ÂŚÂƒ › aĂ´ ' Ç . s Ă‘ t“ Ăź r— É ¸¿ Âş 0Ăœ Ÿ– Ă?Âœ Ă­l oÂ? a ) . – x.wait x count++; if (next count>0) signal(next); else signal(mutex); wait(x sem); x count--;

• [ j Â&#x; Ă­# Q\ ÂŚ s6 xĂ´  Ă‡¸ —m ' _ ½ ¨Â‰ Âł & – y • — ÂŒ ¸m ' 1– Ă? Âœ Ă­l oÂ? a mutex [ ) j Â&#x; Ă­# Q\ ÂŚÂƒ › aĂ´ ' Ç . — ¸ÂŽ HĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H— ¸m ' ÂŚ \ 6 x  l „ \  wait(mutex)\ ÂŚ 6 xK  9, — ¸ m' _ 6 x`  Œ = Q? ĂĽ /l „ \  signal(mutex)\ ÂŚ 6 xK  ô Ç .

– x.signal if (x count>0) { next count++; signal(x sem); wait(next); next count--; }

– › ¸|  Ăƒ º \@ /Ă´ Ç signal` ÂŚÂ˜ Ă? pĂĄ ¡ Ԗ Ă?[ jĂ› ÂźÂ? H F > hÂ? aĂĄ ) Ԗ Ă?[ jĂ› Âź — ¸m ' 6 x  Œ `¢ aÂŤ Ă‘ ~ Â? r[ É j Â&#x; Ă­# Q\  _ K @ /l ½ ÉM + : t @ /l K Ă´ Ç . ĂŤ –€ Ă&#x; •s Â? X > O t ¡ §Ăœ Ăş Ÿ€ Âż Âş ĂĄ Ԗ Ă?[ jĂ› Âź — ¸m ' ? /\  #

Â? ĂŽ ' Â&#x;Ăœ Ÿ– Ă?” rF > ½ É + Ăƒ Âşe ” . s\ ÂŚ0 AK 0Ăœ Ÿ– Ă?Âœ Ă­l oÂ? a[ ) j Â&#x; Ă­ # Q next\ ÂŚ 6 x  9, next\  @ /l Â? HĂĄ Ԗ Ă? [ jĂ› Âź_ Ăƒ Âş\ ÂŚĂ„ Âťt l 0 AK 0Ăœ Ÿ– Ă?Âœ Ă­l oÂ? a ) Ăƒ Âş\ ÂŚ 6 xĂ´  Ă‡ . next count Â

• ĂĄ Ԗ Ă?[ jĂ› Âź F > há &Â? HĂ­ H" f –  ÂœĂŠ Š –í Ă&#x; HĂ´ Ç~ Ă“Z ½ : FCFS O 5


<Âł Ă° 7.2> — ¸m ' \ ÂŚs 6 xĂ´  Ă‡^ =† o Æ < [ t Ăž_ ĂŤ –ð Ă&#x; Ă?ĂŤ ø H] j_ K Ă• ˜ Ăž state[0]

state[1]

state[4]

sem[0]

cnt[0]

sem[1]

cnt[1]

sem[4]

cnt[4]

mutex

next

n cnt

Ă­l Âœ

thinking

thinking

thinking

0

0

0

0

0

0

1

0

0

P0 pickup r  Â• ÂŒ

hungry

thinking

thinking

0

0

0

0

0

0

0

0

0

P0 pickup ¢ aÂŤ Ă‘

eating

thinking

thinking

0

0

0

0

0

0

1

0

0

P1 pickup r  Â• ÂŒ

eating

hungry

thinking

0

0

0

0

0

0

0

0

0

P1 pickup @ /l

eating

hungry

thinking

0

0

/l @

1

0

0

1

0

0

P4 pickup r  Â• ÂŒ

eating

hungry

hungry

0

0

/l @

1

0

0

0

0

0

P4 pickup @ /l

eating

hungry

hungry

0

0

/l @

1

/l @

1

1

0

0

P0 putdown r  Â• ÂŒ

thinking

hungry

hungry

0

0

/l @

1

/l @

1

0

0

0

P0 putdown @ /l

thinking

hungry

eating

0

0

/l @

1

 Â’ Ăą

1

1

/l @

1

P4 pickup ¢ aÂŤ Ă‘

thinking

hungry

eating

0

0

/l @

1

0

0

0

 Â’ Ăą

0

P0 putdown F > h

thinking

hungry

eating

0

0

 Â’ Ăą

1

0

0

0

/l @

1

P0 putdown @ /l

thinking

eating

eating

0

0

 Â’ Ăą

1

0

0

0

/l @

1

P1 pickup ¢ aÂŤ Ă‘

thinking

eating

eating

0

0

0

0

0

0

0

 Â’ Ăą

0

P0 putdown ¢ aÂŤ Ă‘

thinking

eating

eating

0

0

0

0

0

0

1

0

0

Pi : ^ =† o Æ < i, sem[i]: self[i] sem, cnt[i]: self[i] count, n cnt: next count

º‚ H0 Ă“Z O Ă‚ x  â€“ Ă„ Ă­ A~ ½ : › ¸| Ă’ wait 6

ÂŒl # f tÂ? H ĂŠ ÂŚ x½  + /r –s . " " Âś` 6 ÉÞ j@ ç Ă&#x; # ÂŒ QĂĄ Ԗ Ă?[ jĂ› Âź @ /l Ă— ĂŚ{ 9 M : signals Âľ Ă? 1 t q Ă’ €  Âœ Š •“ ÂŒ rr É ç –_ Ă&#x; ĂĄ Ԗ Ă?[ jĂ› Âź\ Œ€ $ > F hÂ? a ) .

x.wait(c); # ÂŒl " f cÂ? HĂ„ º‚ Ă­ H0 A° ‍כ‏s Ăş .

– ĂŤ H] j& h • ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H ) ‡ \ ÂŚ ~ ĂŽt Ăƒ ¡ §Â“ Ăş ÂŚ " Âś` ĂŠ ÂŚ H X ] ½ Ă‰Ăƒ + Âşe ” . • ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H " Âś` ĂŠ ÂŚ ½ É{ + Âœ ~ Š Γ Ăƒ r É 6 §\ ÂŁ  K ] j t ¡ §` Ăş ÂŚĂƒ Âşe ” . • ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H ½ É{ + Âœ ~ Š ĂŽt Ăƒ • ¸ ¡ §Â“ Ăş r É " Âś\ ĂŠ  @ /Ă´ ÇK ] j\ ÂŚr • ¸½ Ă‰Ăƒ + Âşe ” . • ĂĄ Ԗ Ă?[ jĂ› ÂźÂ? H ½ É{ + Âœ ~ Š Γ Ăƒ r É Âś " ĂŠ` ÂŚ K ] j t ¡ §Â“ Ăş ÂŚ r °  Â“ Ăş r É " Âś_ ĂŠ ½ É{ + Âœ` Š Œ‍כ‏ š' A Ăľ Ă‰Ăƒ + ½ Âşe ” .

monitor R { boolean busy; condition x; void acquire(int time) { if(busy) x.wait(time); busy = true; } void release() { busy = false; x.signal(); } void init() { busy = false; } }

– K Ă• ˜ Ăž • ç ƒ( ÂĄ 1. ÂŤ Âś " ĂŠ 6 xÂ?  ïĂ— Âź\ Œ— ¸m ' ? /Ă‚ Ă’ \  Â&#x; í† ĂŠĂ´ < Ç . — ¸m ' ? /\  " fĂź @Ă‚ Ă’X <s ' \ ÂŚ 6 x  9, Ă› ÂźH Ă— ÂŚa As — ¸m ' \  _ K s Ă€ Ă’# Qt Ă™ Ÿ– Ă? & X h ]Ă´ Ç ~ Ă“Z ½ s O . ” _ • ƒ ÂĄ( ç 2. — ÂŤ ¸ÂŽ HÂ? ĂŻĂ— Âź\ ÂŚ ÂŽ Ă´ Ç .

<Ă• ÂŞa > 7.13> — Ă‹ ¸m ' \ ÂŚs 6 xĂ´  Ă‡ĂŠ –{ Ă&#x; 9 Âś " ʽ É{ + ÂœĂŤ Š H] j \  @ /Ă´ ÇK Ă• ˜ Ăž • › ¸| Ă‚ Ă’ wait\ ÂŚ 6 x  Â? H\ V: Ă• ÂŞa > 7.13 ‚ Ă‹ Ă?› Ăƒ ¸. – y •å ÂŒ Ԗ Ă?[ jĂ› ÂźÂ? H 6 §] ÂŁ X \  " Âś` ĂŠ Œ½ É + Âœ~ Š { ĂŽÂ? Ăƒ H . R.acquire(t); ... Âś " ĂŠ 6 x  ... R.release(); 6


c °2003, sangjin@kut.ac.kr

R1

R3

* <* Ö = å i< K: ~ ¡q ç { ¡È 09 P1

P2

P3

A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

Part II. Process Management

R2 R4

<Õ ªa > 8.1> Ë " ¶½ é É{ + Õ © ªA á Ô

w Y lV c s? ê 0

8 8.1

R1

R3

S ­ y { 𠢨 |

• r Û ¼% 7 ½ ¨$

‫כ‬ í ¹è

P1

P2

P3

– ¶ " é • » Äô Çh >_ ¶ " és rF > 9, s " ¶ é r É

t > Y Ä »+ AÜ þ ¼ Ðì rÀ Ó a ) . ° ú rÄ É »+ A þ _ " ¶s é # Q> he ` ¦Ã ºe . • \ V) Å Òl % 3 u © / Nç B , CPU r ß ç ,

ß { , 9 Ø 9 { ¦§ 4 u ©

R2 R4

– á Ô Ð[ jÛ ¼: # QÔ á Ð[ jÛ ¼ # Q ¶ " é\ @ / K

Ô â tô q Ç .

<Õ ªa > 8.2> Ë § Ì Ã I © e H " ¶½ é É{ + Õ © ªA á Ô

• á Ô Ð[ jÛ ¼ Ä »+ A A_ þ ¶ " é` ¦‫כ‬ ¹' A õ Õ ªÄ »+ A þ _ # Q " " ¶` é ¦½ É{ + © # ¸Õ ª‫כ‬ ¹' A õ rë É 7 ß ¤ á a ) .

8.2 8.2.1

• á Ô Ð[ jÛ ¼ ‫כ‬ ¹' A½ õ Éà + ºe H " ¶_ é à º H] jô Çs Ü O \ ¼ , r Û ¼% 7 \ rF > H " ¶ é Ð ´ § ú rÃ É º_ ¶ " é` ¦‫כ‬ ¹' A½ õ Éà + º\ O . \ V) sr Û ¼% \ 7 á Ô ;' 2 ¿ º> he Ü ¼ á Ô Ð[ jÛ ¼ Hº ¿> hs Ðë ‫כ‬ ß ¹' A õ Éà + ½ ºe .

Y w lV c s? ê 08 ý ¤Ë Ç S Ç~ m ý ¿ ºü Å g

• 6 §W £ 1> h_ ‫כ‬ ¹½ ¨ ¸| s ¸¿ ºØ æ7 ¤÷ á &# Q § Ì Ã I © µ ÏÒ 1 tô q Ç . – (¡ × õ: V : þ j èô Ç Hq / NÄ B »~ Ód ½ Ü ¼ Ð Ä h & »÷ &# Q ô Ç . q / NÄ B »~ Ód ½ _ & Ä h »ê Íô ø Ç \ _ á Ô Ð[ jÛ ¼ë ß ¶ " é` ¦ 6 x½ Éà + º 6 e §` £ ¦´ ô ú Ç .

• á Ô Ð[ jÛ ¼ H ¶ " é` ¦ 6 x l \ ‫כ‬ ¹' A` õ ¦K 9, 6 xs = Q å K ] jK ô Ç . á Ô Ð[ jÛ ¼ H 6 §í £ H" f Ð " ¶` é ¦ s6 xô Ç .

– \ Ë Âÿ ?7 e : á Ô Ð[ jÛ ¼ Hþ j èô Ç _ ¶` é " ¦& Ä h » ¦e ¦, rá É Ô Ð[ jÛ ¼ & Ä h » ¦e H rá É Ô Ð[ jÛ ¼\ ¦l o ¦e # Q ô Ç .

– · 4 ÿ 1. ³ ÀÈ C(request): e Ð‫כ‬ ¹' A` õ ¦) 6 x½ É + Ã º\ Ü O ¼ ¹ ‫'כ‬ Aô õ Çá Ô Ð[ jÛ ¼ Hl 9 ô Ç .

– j¤ > n : & \ Ä h » a ) ¶ " é ry É ] © j ÐK ] j| cà ¨ º\ O ¦, á Ô Ð[ jÛ ¼ " ¶_ é 6 x ¦ `= Q å u ¦ 1 Ü h ÐK j½ + : ª é ¦% ¦ Ï& µ ¼ ] ÉM t HÕ " ¶` ` 3 º\ à # O Q ô Ç .

– · 4 ÿ 2. £ (use) – · 4 ÿ 3. B V (release): S 1 \ qô p Ç " ¶_ é 6 x s = Q å rá É Ô Ð[ jÛ ¼[ ts þ 6 x½ ÉÃ + ºe ¸2 ¤K ] jô Ç .

– K '» É 7 . e : 6 §` £ ¦ ë 7 ß ¤ á H @ /l H á Ô Ð[ jÛ ¼_ | 9 ½ Ë {P0 , P1 , . . . , Pn }s + rF > K ô Ç . P0 H P1 s & Ä h »ô Ç ¶ " é` ¦l o ¦e ¦, P1 r P2 & É Ä h »ô Ç ¶ " é` ¦l o ¦e ¦, Pn r P0 & É Ä h »ô Ç " ¶` é ¦l o ¦e .

• ¶ " é_ ‫כ‬ ¹' Aõ õ K ] j Hr Û ¼% 7 ñØ ¦` ¦s 6 xô Ç . \ V) open, close • ¶ " é\ @ /ô Ç@ /l H[ j í# Q\ ¦s 6 x # ½ ¨ ³ & Éà + ½ ºe . • # Q | " ½ 9 Ë? + /\ e H ¸ Há Ô Ð[ jÛ ¼ @ /l I © s 9, s | ½ 9 Ë? + /\ e Hy á Ô Ð[ jÛ ¼ s | ½ 9 Ë + ? /\ rá É Ô Ð[ jÛ ¼ t ¦e H ¶ " é` ¦l o ¦e Ü ¼ § Ì Ã I © \ e ¦ô Ç .

8.2.2 x ST j »$ Ò ×Ü «8 è « • " ¶½ é É{ + Õ © ªA á Ô_ ½ ¨$

‫כ‬ í ¹ è 1


R1

• ¨ ¬½ Ð( Ç ×@ ¿ Ôm Ç (detection) ' ×ß

: § Ì Ã I © \ V~ Ó ½ ¸ ¢ H rx · ú ¦o 7 §` £ ¦ 6 x t · §Ü ú ¼ § Ì Ã © µ I ÏÒ 1 t½ q Éà + ºe . s

Ä â º § Ì Ã I © \ ¦µ Ï| 1

H· ú ¦o 7 §õ £ § Ì Ã I © РÒ' r Û ¼% ` 7 ¦4 ¤½ ¨ H· ú ¦o 7 §` £ ¦] j/ N B # § Ì Ã I © ë H] j\ ¦K Éà + ½ ºe .

P2

P3 P1

P4

• § Ì Ã I © \ ¦Á ºr ½ É +

Ä â º\ H ² G\ D Hr Û ¼% ` 7 ¦ r F K ô Ç .

R2

<Õ ªa > 8.3> Å Ë Òl He t ë ß § Ì Ã I © \ O H ¶ " é½ É + Õ © { ªA á Ô

8.4

– ¸× ¼

8.4.1

• Ô á Ðj [Û ¼ ¸× ¼: P = {P1 , P2 , . . . , Pn }, ¶Ü é " ¼Ð ³ ðr • ¶ " é ¸× ¼: R = {R1 , R2 , . . . , Rm }, f y + AÜ þ ¼ Ð ³ ðr 9, f y + A ? þ /Â Ò h \ &Ü ¼ а ú rÄ É »+ A_ þ " ¶_ é Û ¼ ¼\ Û ¦ p · .

s ê V Æ9 0< g

• © ñC ] j ¸| ` ¦: xK § Ì Ã I © \ ¦\ V~ Ó ½ H ‫כ‬ r# É Q§ > . # Q " ¶ " é rH É r& : Ü h ¼ Ð/ NÄ B »\ ¦½ Éà + º O \ . 8.4.2

È ì X ¥Ñ ÷6 M

• ô Ç ¶ " é` ¦& Ä h » " f r É " ¶` é ¦@ /l ½ ÉÃ + º\ O ¸2 ¤ H¿ º t ~ ÓZ ½ O

• Pi → Rj : ³ ÀÈ C¤ e >(requesting edge)Ü n ¼ Ð Pi Rj \ ¦‫כ‬ ¹' A õ % 6 i §` £ ¦ p · . • Rj → Pi : T »× Ò $ ¤ >(assignment edge)Ü n ¼ Ð Rj Pi \½ É{ + ÷ © &% 6 3 §` £ ¦ p · .

– z' ´ ÷ &l \ 9 ‫כ‬ ¹ô Ç ¸ H " ¶` é ¦& Ä h » ¸2 ¤ H~ ÓZ ½ O – ô Ç ¶ " é` ¦& Ä h »ô Ç I © \ " f r É ¶ " é` ¦‫כ‬ ¹ A½ õ ' ÉÃ + º\ O ¸2 ¤ H~ ÓZ ½ O

‫כ‬ ¹' A õ É rá Ô Ð[ jÛ ¼ ¸× ¼\ " f ¶ " é ¸× ¼\ ¦ ? / Hf y + A` þ ¦ o v Hì Í ø \ ½ É + © { rá É Ô Ð[ jÛ ¼ ¸× ¼\ " f " ¶ é ¸× ¼\ ¦ ? / Hf y + A? þ / Ò\ e H& õ h a ) .

• ë H] j& h – + ½{ É ~ © Î Ã r É ¶ " é` ¦ ¸A 1 xî l ß 6 x t · §` ú ¦ ºe Ã Ü ¼Ù ¼ Ð " ¶_ é 6 x´ òÖ ¦s ± ú .

• \ V) Õ ªa > 8.1 Ë Ð¸ à . • Å Ò# Q ¶ " é½ É{ + Õ © ªA á Ô\ Å Òl (cycle) \ Ü O ¼ § Ì Ã I © \ O H s ‫כ‬ ¦, e Ü ¼ § Ì Ã I © r > F ½ Éà + ºe . Õ ªa > 8.2ü Ë <ª Õa > 8.3 Ë Ð Ã ¸.

– # Q " ¶s é ‫כ‬ 9 ¹ô Çá Ô Ð[ jÛ ¼ H%

½ ò ¨½ ¨& h ¼ Ü Ðl w =à n ºe .

• ß ë y ¶ " és _ Û ¼ Û ¼ë t ß ¦e Ü ¼ Å Òl H § Ì Ã I © _ ‫כ‬ 9 ¹Ø æì r ¸| s .

8.3

Y w lV c s? ê 0; dU s ê

8.4.3 R ÅX Ò È ì • 6 x½ ÉÃ + ºe H~ ÓZ ½ O

w Y lV c s? ê 0õ §% u iP À ¥U W s0 ê É n

– ç ( ¡ 1. á « Ô Ð[ jÛ ¼ " ¶` é ¦& Ä h » ¦e Ü ¼ " f н É{ + | © cà ¨ º\ O H ¶ " é` ¦‫כ‬ ¹' A õ ªá Õ Ô Ð[ jÛ ¼ & Ä h » ¦e H ¸ H " ¶` é ¦ ] K j H~ ÓZ ½ . O

• § Ì Ã I © \ ¦% o H[ j t ~ ÓZ ½ O – á Ô Ð Ðc t` + ¦ 6 x # § Ì Ã I © p o { 9 # Q t · § ú ¸2 ¤ H~ ÓZ ½ . O

– ç ( ¡ 2. á « Ô Ð[ jÛ ¼ Pi # Q " " ¶ Ri \ é ¦‫כ‬ ¹ A õ ' % ` i ¦M : Ri \ ¦¢ ¸ r É ¶ " é Rj \ ¦l o ¦e Há Ô Ð[ jÛ ¼ Pj & Ä h » ¦e Ü ¼ Ri \ ¦ Pj РÒ' K ] j ¦Õ ª ` ‫כ‬ ¦ Pi \ > ½ É + © { H~ ÓZ ½ O

– § Ì Ã I © \ ¦ ) 6 x t ë Å ß Òl & Ü h ¼ Ð # § Ì Ã I © \ ¦] j H~ ÓZ ½ . O – § Ì Ã I © \ ¦Á ºr H~ ÓZ ½ . \ O V) Ä »_ Û ¼ • ¬ ¨½ Ð× Ç ( @ U d× ' (prevention) ' ×ß

: § Ì Ã I © _ W 1 t 9 ‫כ‬ ¹ ¸| × æô Ç t µ ÏÒ 1 t q t · § ú ¸2 ¤ # \ V~ Óô ½ Ç . s ~ ÓZ ½ O r É " ¶‫כ‬ é ¹' A` õ ¦] jô Ç # § Ì Ã I © \ ¦\ V~ Óô ½ Ç .

8.4.4

Øò U Å ÿ6 & M

• í¨ H @ 8 /l { 9 # Q t · § ú ¸2 ¤ H~ ÓZ ½ : y O " ¶ é \ ñ\ ¦Â Ò# ¦± ú r É ñ_ ¶ " é Ò' ½ É{ + © ¦~ ` Î Ã ¸2 ¤ô Ç .

• ¬ ¨½ Ð× Ç ( @ m ¬q (avoidance) ' ×ß

: î r%

^ ò ] j \ á Ô Ð[ jÛ ¼ # Q " ¶ " é[ t` þ ¦‫כ‬ ¹' A½ õ Ét + · ú ô Ç . î r%

^ ò ] j Hs &

ñ Ð\ ¦s 6 x # á Ô Ð[ j Û ¼ " ¶` é ¦‫כ‬ ¹' A õ % ` i ¦M :s ` ‫כ‬ ¦) 6 x½ Ét + # Â Ò\ ¦ &

ô ñ Ç .

– R = {R1 , R2 , . . . , Rm }s " ¶_ é | ½ 9 Ës + F :R→N ÊÃ < º\ ¦&

_ ñ # y " ¶_ é Ä » 2


AZ þ + > Ð ñ\ ¦½ É{ + ô © Ç . \ V) F (tape drive) = F (disk drive) = F (printer drive) =

R1

1 5 12

P1

P2

R2

– ç ( ¡ 1. á « ÔÐ [ jÛ ¼ Pi Ri " ¶` é ¦& Ä h » ¦ Ü e ¼ s Ô á Ð[ jÛ ¼ H F (Rj ) > F (Ri ) " ¶ éë ‫כ‬ ß ¹' A½ õ ÉÃ + ºe .

<Õ ªa > 8.4> Ë " ¶½ é É{ + Õ © ªA á Ô· ú ¦o 7 §_ £ \ V

– ç ( ¡ 2. á « Ô Ð[ jÛ ¼ Pi Rj ¶ " é` ¦‫כ‬ ¹' A õ l \ s á Ô Ð[ jÛ ¼ H F (Rj ) < F (Ri ) ¸ H ¶ " é Ri \ ¦K ] jK ô Ç .

• £ 7, Pi ¤ H ¶ " é` ¦½ É{ + ~ © Î Ã 6 x Pj ¸¿ º Qè å = ß 6 §\ £ 6 x½ Éà + ºe . • rÛ ¼% s 7 î ß ô Ç I © \ e Ü ¼ § Ì Ã I © µ Ï 1 t q Ò t · § ú H . r Û ¼% 7 s î ß t · § ú r É I © \ Ü e ¼ ì Í× ø ¼r § Ì Ã I © µ ÏÒ 1 t q H ‫כ‬ r É m ë t µ ß ÏÒ 1 t½ q Éà + ºe .

• ~ ÓZ ½ _ O &

S ñ $ X

\ í aô ' Ç7 x" £

( î ¸í H\ _ ô Ç7 x" £

) î – {P0 , P1 , . . . , Pn } r í É H8 ¨ @ /l H á Ô Ð[ j [ t_ þ | ½ 9 Ës + . £ ¤ 7, Pi H Pi+1 s & Ä h » ¦e H Ri \ ¦‫כ‬ ¹' A õ Há Ô Ð[ jÛ ¼s .

• V \) r Û ¼% 7 \ 12> h_ _ s á Ô× ¼ s Ú Ô rF > 9, t0 r ç M ß : 6 §õ £ ° ú rá É Ô Ð[ jÛ ¼ e .

– 7 ¤, Pi+1 £ r Ri \ É ¦ & Ä h » ¦ e Ü ¼9 Ri+1 ` ¦ ‫כ‬ ¹' A õ ¦e . s M : F (Ri ) < F (Ri+1 )s . – Õ ª X < F (R0 ) < F (R1 ) < · · · < F (Rn ) < F (R0 )s Ù ¼ Ð F (R0 ) < F (R0 )s . " f {P0 , P1 , . . . , Pn }s í H¨ @ 8 /l Há Ô Ð [ j[ t_ þ | 9 ½ Ës + H ‫כ‬ r É ¸í Hs .

8.5

P0 P1 P2

³F & Ã º‫כ‬ ¹ 5 2 2

< P1 , P 0 , P 2 > í H" f Hî ß ô Çí H" fs Ù ¼ Ðs r Û% ¼ 7 r É ³F & î ß ô Ç I © \ e . t1 r ç \ ß P2 \ > _ s á Ô 8½ É{ + ÷ © &% 3 ¦ . Õ ª Q Û r ¼% 7 rî É ß t 3 wô l Ç I © a ) . P1 r½ É É{ + © &# ÷ Qz ´ ' | cà ¨ ºe t ë s ß á Ô Ð[ jÛ ¼ = Qè å Ê ß ê\ P0 ü < P2 9 ‫כ‬ ¹ô Çþ j@ /ë ß u‫כ‬ p ¹' A õ § Ì Ã I © a ) .

w Y lV c s? ê 0> HY

• § Ì Ã I © rx ~ ÓZ ½ O r É \ á Ô Ð[ jÛ ¼ ‫כ‬ 9 ¹ Ç ô " ¶_ é &

ñ Ð\ ¦ s6 x # Õ ªá Ô Ð[ jÛ ¼[ ts þ " ¶ é` ¦‫כ‬ ¹' A õ % ` i ¦M : § Ì Ã I © µ ÏÒ 1 t q t · § ú ¸ 2 ¤t ½ É{ + K © Å Ò H~ ÓZ ½ s O . • rx ~ ÓZ ½ \ O " fá Ô Ð[ jÛ ¼ " ¶` é ¦‫כ‬ ¹' A õ 1) ³F & 6 x 0 xô p Ç " ¶, 2) y é á Ô Ð[ jÛ ¼\ > ½ É{ + © a ) ¶ " é, 3) y á Ô Ð[ jÛ ¼_ p A ‫כ‬ ¹' Aõ õ K ] j\ ¦ ¦ 9 # ½ É{ + ¢ © ¸ Ht ` ¦ &

ô ñ Ç . 8.5.1

j@ þ /Ã º‫כ‬ ¹ 10 4 9

8.5.2

Ì R¶ ¦ £R s§ ê 7 0³ ° ow P ¨ Ö

• yÄ »+ A_ þ " ¶ é _ Û ¼ Û ¼ rF > 6 x½ ÉÃ + ºe H· ú ¦o 7 § £

m Å ¹ ¢V X s? ê 0

• l r > ¶ " é½ É{ + Õ © ªA á Ô\ & h Ü ¼ г ðr H³ À C e È æ¤ >(claim edge)` n ¦Æ Ò ô Ç .

• 9 { ì Í& ø Ü h ¼ Ð § Ì Ã I © rx · ú ¦o 7 § £ r ò É Ñ¦ 5 >ø 5 ( × @ (safe state)\ ¦&

_ ñ ¦, á Ô Ð[ jÛ ¼ " ¶` é ¦ ‫כ‬ ¹' A õ r Û ¼% s 7 î ß ô Ç I © ( § Ì Ã I © µ Ï 1 t½ q Ò Éà + º\ O H I © )\ ¦Ä »t Ht ô Ç 6 §\ £ É{ + ½ K © ï r .

– Pi 99K Rj : p A \ Pi Rj \ ¦‫כ‬ ¹' A½ õ Éà + ºe H ` ‫כ‬ ¦ p · . • Pi Rj \ ¦‫כ‬ ¹' A õ ‫כ‬ ¹' A õ Pi 99K Rj ` ¦½ É{ + © Rj → Pi Ð Ë ¨# QÅ Òl \ O Ht # \ O H

Ä â º\ ë ‫כ‬ ß ¹' A` õ ¦) 6 xô Ç . s Å Òl \ ¦ ½ ÉM + : rá É Ô Ð[ jÛ ¼_ ‫כ‬ ¹' A 0 õ x p ¸ Êa < ¦ 9 a ) .

• s \ ¦0 AK y á Ô Ð[ jÛ ¼ Hp o y Ä »+ A_ þ " ¶ é 9 ‫כ‬ ¹ô Çþ j@ /º Ã\ ¦ K Å Ò# Q ô Ç . • r Û ¼% 7 \ ò Ѧ 5 >ø ' 5 " K (safe sequence) rF > Õ ªr Û ¼% 7 rî É ß ¦ô Ç .

8.5.3 Ö R j N ß Ó ± §h ¤ ¸ æ

• & F ³ ½ É{ + í © H" f\ @ /K 6 § £ ¦ `ë 7 ß ¤ á Há Ô Ð[ j Û ¼_ í H" f < P1 , P2 , . . . , Pn >s rF > s í H " f\ ¦î ß ô Çí H" f ô Ç .

• 9 {ì Í& ø h

Ä â º\ 6 x½ ÉÃ + ºe H § Ì Ã I © rx ú · ¦o 7 § £

y Pi \ @ /K Pi _ ‫כ‬ ¹' As õ ³F & 6 x 0 xô p Ç " ¶ é j < i õ Pj & Ä h » ¦e H ¶ " é\ _ K ë 7 ß ¤ á cà ¨ | ºe # Q ô Ç .

• yá Ô Ð[ jÛ ¼ HÒ t$ q

÷ í &l \ y ¶ " é_ Ä »+ A þ ‫כ‬ 9 ¹ô Çþ j@ / Û ¼ Û ¼Ã º\ ¦ K ô Ç . s º à Hr Û ¼% _ 7 ^ ¶ " é_ à º\ ¦ íõ ½ Éà + º\ O . 3


• ĂĄ Ԗ Ă?[ jĂ› Âź " Âś` ĂŠ ÂŚ ‍כ‏ š' A Ăľ € r Ă› Âź% 7 ›s ĂŽ –„ Ă&#x; Ă´ Ç ÂœI Š \ ÂŚĂ„ Âťt Â? Ht ÂŽ Ă´ Ç .

– Ăż ¡4 › 1. ∀j = 1, . . . , m\  @ /K reqi [j] ≤ need[i, j]s € ĂŠ –> Ă&#x; 2– Ă?s 1 x l “ ÂŚ, Ă• ÂŞX t O ¡ § Ăş Ÿ€ Ăœ š ¸Ă€ Ă“s .

• r Ă› Âź% 7 ›\  " fĂ„ Âťt Â? HX <s ' ½ ¨Â› ¸: ns ĂĄ Ԗ Ă?[ j Ă› Âź_ Ăƒ Âşs “ ÂŚ, ms Âś " ĂŠ_ Ă„ Âť+ AĂƒ Ăž Âşs .

– Ăż ¡4 › 2. ∀j = 1, . . . , m\  @ /K reqi [j] ≤ avail[i, j]s € ĂŠ –> Ă&#x; 3Ăœ Ÿ– Ă?s 1 x l “ ÂŚ, Ă• ÂŞX t O §Ăœ Ăş ¡ Ÿ€ @ /l Ă´ Ç .

– 6 x 0  x(avail): U p ´s m“ 7 ˜' – Ă?y • ÂŒ " Âś ĂŠ _ Ă„ Âť+ A Ăž 6 x 0  xĂ´ p Ç Âś " ĂŠ_ Ăƒ Âş\ ÂŚ p ¡ .

– ¡ ›4 Ăż 3. 6 § ÂŁ ÂŚ `e r ” – Ă?> Ă­ – Ă&#x; “ ÂŚ, • ¡ ›4 Ăż 3.1. ∀j = 1, . . . , m\  @ /K

– j Ăž@ /Ăƒ º‍כ‏ š(max): n Ă— m Â? ' Â&#x;§ =– > Ă?y •å ÂŒ Ԗ Ă?[ jĂ› Âź _ y • ÂŒ Âś " ĂŠ\  @ /Ă´ ÇÞ j@ /Ăƒ º‍כ‏ š\ ÂŚ p ¡ .

avail[i, j] := avail[i, j] − reqi [j]

– + ½{ É Âœ(alloc): n Ă— m Â? Š ' Â&#x;§ =– > Ă?y •å ÂŒ Ԗ Ă?[ jĂ› Âź\  > É{ + ½ Âœá Š &# Qe Â? ” Hy • ÂŒ Âś " ĂŠ_ “ Ă› Ÿ‡ Ă› ÂźĂƒ Âş\ ÂŚ p ¡ .

• ¡ ›4 Ăż 3.2. ∀j = 1, . . . , m\  @ /K alloc[i, j] := alloc[i, j] + reqi [j]

– z ™“ ÂŒ rĂƒ É º‍כ‏ š(need): n Ă— m Â? ' Â&#x;§ =– > Ă?y •å ÂŒ Ԗ Ă?[ jĂ› Âź _ y • ÂŒ Âś " ĂŠ\  @ /Ă´ Çz ™“ ÂŒ rĂƒ É º‍כ‏ š\ ÂŚ p ¡ .

• ¡ ›4 Ăż 3.3. ∀j = 1, . . . , m\  @ /K need[i, j] := need[i, j] − reqi [j]

need[i, j] = max[i, j] − alloc[i, j]

s ÂœI Š ĂŽ –„ Ă&#x; Ă´ Ç ÂœI Š “ t ĂŽ –„ Ă&#x; ÂœI Š ÂŽ ¡ ˜“ Ăş ÂŚo 7 §` ÂŁ ÂŚs 6 x  # ÂŒ ÂŽ Ă´ Ç . ĂŽ –„ Ă&#x; ½ € É{ + Âœ Š “ ÂŚ, ĂŽ –„ Ă&#x; t ¡ §Ăœ Ăş Ÿ€ e r ” – Ă?½ É{ + Âœ Š Ç Ă´ ` ‍כ‏ ÂŚ2 [™ èô Ç .

• Âł Ă°l Z : XĂź O < Y ¸ —¿ Âş U ´s n“ 7 ˜' { 9 M : X ≤ Y{ € 9 9 ‍כ‏ šĂ˜ ĂŚĂŹ r› ¸| “ r ∀i = 1, . . . , n, X[i] ≤ É Y [i]s . Ă‘ÂŚ 5 ò >Ă— ‡ ( ‘@ ~ É N Ӕ Âą §h ¤ ¸ ĂŚ

š R Ă– j N Ă&#x; Ӕ Âą §h ¤ ¸Â˜ ĂŚ +U d

• 6 x  Â? HÆ Ă’ _ Â…s ' ½ ¨Â› ¸

• r Ă› Âź% ›_ 7 ½ ¨$

Ă­

– workĂź < fin“ rU É ´s y •y ÂŒ • mĂľ ÂŒ n“ 7 ˜' s .

– ĂĄ Ԗ Ă?[ jĂ› Âź: P0 , . . ., P4 ( $ ĂĄ à Ԗ Ă?[ jĂ› Âź) – " Âś: A : 10, B : 5, C : 7 ([ ĂŠ j t Ă„ Âť+ AĂľ Ăž y • ÂŒ Âť+ Ă„ A_ Ăž “ Ă› Ÿ‡ Ă› ÂźĂƒ Âş)

• ¡ ˜“ Ăş ÂŚo 7 § ÂŁ

• r ç – t0 M Ă&#x; :r Ă› Âź% ›_ 7 ÂœI Š 6 §þ ÂŁ °  ú “ ÂŚ .

– ¡ ›4 Ăż 1. ∀i = 1, . . . , m, work[i] := avail[i]– Ă? Âœ Ă­l o “ ÂŚ, ∀i = 1, . . . , n fin[i] := false– Ă? Âœ Ă­l o Ç Ă´ . – ¡ ›4 Ăż 2. 6 §` ÂŁ ÂŚĂŤ –7 Ă&#x; ¤ ĂĄ Â? H i\ Œš Ă”Â? 1 H .

P0 P1 P2 P3 P4

• fin[i] = false • ∀j = 1, . . . , m, need[i, j] ≤ work[j] s i \ Ăœ O Ÿ€ ĂŠ –> Ă&#x; 4– Ă?s 1 xĂ´ l Ç . – ¡ ›4 Ăż 3. 6 §` ÂŁ ÂŚĂƒ Âş' Â? Â&#x; “ ÂŚ • ¡ ›4 Ăż 3.1. ∀j = 1, . . . , m\  @ /K

A 0 2 3 2 0

alloc B 1 0 0 1 0

C 0 0 2 1 2

A 7 3 9 2 4

max B 5 2 0 2 3

C 3 2 2 2 3

A 3

avail B C 3 2

ÂŞ Ă• Q€ need[i, j]Â? H max[i, j]-avail[j]s Ă™ Ÿ– Ă? 6 § ÂŁ þ°  ú .

work[i] := work[i] + alloc[i, j] • ¡ › Ăż 4 3.2. fin[i] = true –> Ă&#x; ĂŠ 2– Ă?s 1 xĂ´ l Ç .

P0 P1 P2 P3 P4

– ¡ ›4 Ăż 4. ∀i = 1, . . . , n\  @ /K fin[i] = trues r € Ă› Âź% 7 ›“ rĂŽ É –„ Ă&#x; Ă´ Ç ÂœI Š \  e Â? ” H s ‍כ‏ . • s ¡ ˜“ Ăş ÂŚo 7 §Â“ ÂŁ r m Ă— n2 ƒ É Ă­ –s Ă&#x; € 9 ‍כ‏ š .

A 7 1 6 0 4

need B 4 2 0 1 3

C 3 2 0 1 1

• €$ s r Ă› Âź% ›s 7 ĂŽ –„ Ă&#x; Ă´ Ç ÂœI Š “ t ÂŽ # Œ˜ Ă? .

x SÂł j Ă€Ăˆ CĂ“ e N ¹” §h ¤ ¸ ĂŚ • 6 x  Â? HÆ Ă’ Â… _s ' ¨ ½Â› ¸

– work = {3, 3, 2}s Ă™ Ÿ– Ă? P1 Ăľ P3 “ rĂŠ É –> Ă&#x; 2\ ÂŚ –7 Ă&#x; ĂŤ ¤ô ĂĄ Ç .

– reqi : U ´s m“ 7 ˜' – Ă?" fĂĄ Ԗ Ă?[ jĂ› Âź Pi ‍כ‏ š' A Ăľ Â? H Âś " ĂŠ_ Ăƒ Âş\ ÂŚ p ¡ .

– P1 ` Œ€ $ Ăƒ ÂşÂ? ' Â&#x; € work = {5, 3, 2} Â? a ) .

• ¡ ˜“ Ăş ÂŚo 7 § ÂŁ 4


– P3 ¢ ¸ H P4 ` ¦Ã º' ½ ɺ + Ãe .

P5

– P4 ` ¦Ã º ' work = {5, 3, 4} a ) . – P3 µ Ú\ 1 à º ' ½ Éà + º\ O .

R1

R4 R3

– P3 ` ¦Ã º ' work = {7, 4, 5} a ) . – P0 ¢ ¸ H P1 ` ¦Ã º' ½ ɺ + Ãe . – P0 ` ¦Ã º ' work = {7, 5, 5} a ) .

P1

P2

P3

– P1 ` ¦Ã º ' ½ Éà + ºe . – 7 ¤ < P1 , P4 , P3 , P0 , P1 > £ rî É ß ô Çí H" fs Ù ¼ Ðs r Û ¼% 7 r É ³F & î ß ô Ç I © s .

P4 R2

• s M : P1 s reqi = {1, 0, 2}` ¦‫כ‬ ¹' A õ % i ¦ . s ‫כ‬ ¹' A` õ ¦ )6 x½ Éà + ºe Ht # Ð . s ‫כ‬ ¹' A õ r need[1] É Ð & h ¦, avail Ð & Ü h ¼Ù ¼ Ð r e н É{ + © 6 §õ £ ° ú .

P0 P1 P2 P3 P4

A 0 3 3 2 0

alloc B 1 0 0 1 0

C 0 2 2 1 2

A 7 0 6 0 4

need B 4 2 0 1 3

C 3 0 0 1 1

A 2

R5

(a) " ¶½ é É{ + Õ © ªA á Ô P5

avail B C 3 0

P1

P2

P3

P4

(b) @ /l Õ ªA á Ô <Õ ªa > 8.5> Ë " ¶½ é É{ + Õ © ªA á Ôü <Õ ª \ ‫כ‬ @ /6 x÷ £ & H@ / lÕ ªA á Ô

– work = {2, 3, 0}s Ù ¼ Ð P1 µ Ú\ 1 à º ' ½ Éà + º O \ . – P1 ` ¦Ã º ' work = {5, 3, 2} a ) .

– " ¶½ é É{ + Õ © ªA á Ô\ ‫כ‬ ¹' A õ Pi → Ri ü <½ É + © { Ri → Pj rF > @ /6 x÷ £ & H@ /l ªA Õ á Ô\ Pi → Pj \ ¦Æ Ò ô Ç .

– s s Ê ê Hl rõ > ° ú rí É H" f Ðz ´' s 0 x p . " fs ½ É{ + © r) É 6 x a ) .

8.6

• § Ì Ã I © r@ É /l Õ ªA á Ô\ Å Òl e Ht # µ Ï| 1 ô

Ç .

w Y lV c s? ê 0[ pU c

• § Ì Ã I © Ðt à ~ ÓZ ½ s O ê Í ø § Ì Ã I © \ ¦ ) 6 x ¦ Å Òl & Ü h ¼ Ч Ì Ã I © \ ¦1 µ| Ï

# r Û ¼% 7 ` ¦4 ¤½ ¨ H~ ÓZ ½ s O .

8.6.2

• s ~ ÓZ ½ ` O ¦ 6 x l 0 AK " f H § Ì Ã I © \ ¦µ Ï| 1

l 0 AK 9 ‫כ‬ ¹ô Ç&

ñ Ð\ ¦r Û ¼% 7 \ " fÄ »t K Ç ô . ÷ rë ß m § Ì Ã I © ÐÂ Ò' r4 ¤ Hõ

\ ñ & " f r| : h 9 &Ü ¼ Ð Hz < ´s µ ÏÒ 1 tô q Ç . 8.6.1

l c P Ì R8 ¦ ý ¥] ùT k # b [ß Å­ Ã Å­ ¹ z º V Ëc R Ü Rß Ë O ¤

• É ' r · ú ¦o 7 §õ £ Ä » ô Ç 6 §õ £ ° ú rX É <s ' ¨ ½ ¸\ ¦s 6 xô Ç . – 6 x 0 x(avail): U p ´s m 7 ' Ðy " ¶ é Ä _ »+ A þ 6 x 0 xô p Ç ¶ " é_ Ã º\ ¦ p · .

P l c Ì R8 ¦ ý ¥] ù k mÇ ø mß Ã Å­ Å­ ¹ z º V Ëc R R Ü Ë O ß ¤

– + ½{ É (alloc): n × m ' © § = > Ðy á Ô Ð[ jÛ ¼\ > É{ + ½ ÷ © &# Qe Hy ¶ " és Û ¼ Û ¼_ Ã º\ ¦ p · .

• y ¶ " é_ Ä »+ A þ é { ß 9 Û ¼ Û ¼ Ðë ¨ ß ½$

í a )

Ä â º\ H ¶ " é½ É{ + Õ © ªA á Ô\ ¦s 6 x # §Ã Ì © I \ ¦µ Ï| 1 ½

ÉÃ + ºe .

– req: n × m ' § = > Ðy á Ô Ð[ jÛ ¼ y " ¶_ é »+ Ä A þ ‫כ‬ ¹' A õ ¦e H ¶ " é_ Ã º\ ¦ p · .

• ¶ " é ½ É{ + Õ © ªA á Ô\ ¦ $ 7 e Ü «8 è «(wait-for graph) Ð

ô â Ç .

â H~ ÓZ ½ O r É 6 §õ £ ° ú .

– workü < fin rU É ´s y y mõ n 7 ' s . • Ðt à · ú ¦o 7 § £

– Pi → Pj _ _ p : Pi H Pj & Ä h » ¦e H ¶ " é` ¦l ; 2 .

– ÿ ·4 1. ∀i = 1, . . . , m\ @ /K work[i] := avail[i] Ð íl o ¦, ∀i = 1, . . . , n\ @ /K alloc[i] 0s m (7 ¤, ∀j = 1, . . . , m\ £

– ¶ " é½ É{ + Õ © ªA á Ô\ e Há Ô Ð[ jÛ ¼ë ` ß ¦s 6 x # @ /l Õ ªA á Ô\ ¦ $

ô í Ç . 5


@ /K alloc[i, j] 6= 0) fin[i] := false Ð íl o ¦, Õ ªX t O · §Ü ú ¼ fin[i] := true Ð íl o Ç ô .

• sM : P2 ¶ " éÄ »+ A C` þ ¦‫כ‬ ¹' A õ # ô Ç Û ¼ Û ¼ ¦½ \ É{ + ~ © Î Ã 6 §õ £ ° s ú I ©

÷ â &% 3 ¦ .

– · 4 ÿ 2. 6 §` £ ¦ë 7 ß ¤ á H i\ ¦¹ Ô 1 H . • fin[i] = false • ∀j = 1, . . . , m\ @ /K

P0 P1 P2 P3 P4

req[i, j] ≤ work[j] s i \ Ü O ¼ é > ß 4 Ðs 1 xô l Ç . – · 4 ÿ 3. 6 §` £ ¦Ã º' ¦

• · ÿ 4 3.2. fin[i] = true

A 0 2 0 1 0

req B C 0 0 0 2 0 1 0 0 0 2

A 0

avail B C 0 0

– " f P0 ë é ß > ß 2\ ¦ë 7 ß ¤ô á Ç . – P0 \ ¦ $ à º ' work = {0, 1, 0}s a ) .

> ß é 2 Ðs 1 xô l Ç . – · 4 ÿ 4. fin[i] = false i = 1, . . . , ns rF > r Û ¼% 7 r É § Ì Ã I © \ e .

– ss Ê ê\ Hz ´' ½ ÉÃ + ºe Há Ô Ð[ jÛ ¼ \ O . – " f P1 , P2 , P3 , P4 r É § Ì Ã I © \ e .

¬ ¨½ Ð× Ç ( @ ¿ Ôm Ç N Ó ± §h ¤ ¸ æ +U d • r Û ¼% 7 _ ½ ¨$

í

8.6.3 [ pU c ° ow P ¨8 Ö ý Þ Ó

– á Ô Ð[ jÛ ¼: P0 , . . ., P4 ( $ á Á Ô Ð[ jÛ ¼)

• Ðt à · ú ¦o 7 §_ £ 6 x ¸\ ¦ &

ñ H‫כ‬ ¹ è

– ¶ " é: A : 7, B : 2, C : 6 ([ j t Ä »+ Aõ þ y Ä »+ A_ þ Û ¼ Û ¼Ã º)

– Ü+ |

1. 8 § Ì Ã I © µ ÏÒ 1 t q H ¸ § Ì Ã I © Å Òµ ÏÒ 1 t q Ðt à · ú ¦o 7 § £ ¦ ` Å Òz ´' K ô Ç .

• r ç t0 M ß :r Û ¼% 7 _ I © 6 §õ £ ° ú ¦ .

A 0 2 3 2 0

C 0 0 3 1 2

– work = {0, 0, 0}s ¦, ¸ H i\ @ /K fin[i] = falses .

work[i] := work[i] + alloc[i, j]

P0 P1 P2 P3 P4

alloc B 1 0 0 1 0

• s r Û ¼% s 7 § Ì Ã I © t # Ð .

• · 4 ÿ 3.1. ∀j = 1, . . . , m,

alloc B 1 0 0 1 0

A 0 2 3 2 0

C 0 0 3 1 2

req A B C 0 0 0 2 0 2 0 0 0 1 0 0 0 0 2

– Ü+ |

2. 8 § Ì Ã I © µ ÏÒ 1 t q % ` i ¦M :%

ò Ó` ¾ ¦ Î Ã ~ Há Ô Ð[ jÛ ¼_ à º § Ì Ã I © \ ¦ ¸A 1 xî l ~ ß Óu ½ § Ì Ã I © \ í Ê÷ < & Há Ô Ð[ jÛ ¼_ à º H7 x ô £ Ç .

avail A B C 0 0 0

• § Ì Ã I © Há Ô Ð[ jÛ ¼ н É{ + ~ © Î` à ¦Ã º\ O H " ¶` é ¦‫כ‬ ¹' A õ % ` i ¦M :µ ÏÒ 1 tô q Ç . • G Fé & ß h

Ä â º H н É{ + | © cà ¨ º\ O H " ¶` é ¦‫כ‬ ¹ A½ õ ' ÉM + : Ðt à · ú ¦o 7 §` £ ¦Ã º ' ½ Éà + ºe . s > O X § Ì Ã I © \ í Ê÷ < & H ¸ Há Ô Ð[ jÛ ¼ ¦· \ à ú ºe ` ¦÷ rë ß m § Ì Ã I © \ ¦{ 9 Ü ¼ á Ô Ð[ jÛ ¼\ ¦· à ú ºe . (´ s ú ¸í H& e h ) Õ ª Q s ÓZ ½ ~ O rq É 6 xM :ë H\ ³z & ´í

$s \ Ü O ¼9 \ V~ Ó\ ½ î r~ ÓZ ½ s O .

• s r Û ¼% 7 s § Ì Ã I © t # Ð . – work = {0, 0, 0}s ¦, ¸ H i\ @ /K fin[i] = falses . – " f P0 õ P2 é > ß 2\ ¦ë 7 ß ¤ô á Ç . – P2 \ ¦ $ º Ã' work = {3, 0, 3}s a ) .

• " ¶_ é Ä »+ As þ ´ §Ü ú ¼ _ ‫כ‬ ¹' As õ # QÅ Òl ¦ë \ [ ß tà þ ºe .

– P0 , P1 , P3 , P4 ` ¦Ã º ' ½ Éà + ºe .

• 9 {ì Í& ø Ü h ¼ Ð Ðt à · ú ¦o 7 §z £ ´ ' ¸\ ¦ô Çr ç ß ô \ Ç &

ñ ¸ Ð× ¦ . ¢ ¸ H CPU 6 x´ òÖ ¦s 40% s Ðb # Q

Ä â º\ z ´ ' ô Ç .

– P3 ` ¦Ã º ' work = {5, 1, 4} a ) . – P0 , P1 , P4 ` ¦Ã º' ½ Éà + ºe . – P4 ` ¦Ã º ' work = {5, 1, 6}s a ) . – P0 ¢ ¸ H P1 ` ¦Ã º' ½ ɺ + Ãe .

8.6.4

– P1 ` ¦Ã º ' work = {7, 1, 6}s a ) .

Y w lV c s? ê 0z º ¼' [8 ý> H ×

• § Ì Ã I © \ ¦µ Ï| 1

r Û ¼% 7 î r%

ò \ > : x Ð Ã # º1 xÜ l ¼ Ð% o H~ ÓZ ½ s O e ¦, r Û ¼% s 7 xÜ l 1 ¼ Ð4 ¤½ ¨ H~ ÓZ ½ s O e .

– P0 ` ¦Ã º ' ½ Éà + ºe . – 7 ¤ < P2 , P3 , P4 , P1 , P0 > £ rî É ß ô Çí H" fs Ù ¼ Ðs r Û ¼% 7 r É § Ì Ã I © m .

• § Ì Ã I © ÐÂ Ò' r4 ¤ H¿ º t ~ ÓZ ½ O 6


– í¨ H @ 8 /l Há Ô Ð[ jÛ ¼\ ¦7 x« á Ñ – § Ã Ì I © \ í Ê÷ < &# Q e H á Ô Ð[ jÛ ¼\ " f s _ © ¶ " é` ¦y ] © j ÐK ] j H~ ÓZ ½ O 8.6.5

³ z º: g­ Þz Ò »

• ¿ º t ~ ÓZ ½ O – ç ( ¡ 1. « § Ì Ã I © \ í Ê < a ) ¸ Há Ô Ð[ jÛ ¼ ¦7 \ x« á Ñ: § Ì Ã I © H ÐK ÷ &t ë q ß 6 x s ´ §s ú è‫כ‬ ¹ a ) . – ¡( ç 2. í « H¨ @ 8 /l Há Ô Ð[ jÛ ¼× æ \ ¦ 7 x« á Ñ: q 6 xÉ r & t h ë ß Ð § Ì Ã I © K &t ÷ · §` ú ¦Ã ºe # Qá Ô Ð[ jÛ ¼\ ¦Æ Ò Ð7 x« á Ñ K H

Ä â º µ ÏÒ 1 t½ q ÉÃ + ºe . • á Ô Ð[ jÛ ¼7 x« á Ñ_ ë H] j& h – \ × O æç \ ß y ] © j7 x« á Ñ { F 9 g$

ë í H] j ÏÒ 1 µ t½ q ÉÃ + ºe . \ V)

{ Ì 9 t q × æ\ 7 x« á Ñ – \ × O æç \ ß y ] © j7 x« á Ñ × ¼J ?# Q\ ¦ í l oK Å Ò# Q H

Ä â º µ ÏÒ 1 t½ q ÉÃ + ºe . \ V) á Ô ;' 2 • 0 A\ " f~ ÓZ ½ 2\ O ¦ 6 x # Q á " Ô Ð[ jÛ ¼\ ¦7 x« á Ñ Ét + ½ &

K ñ ô Ç . s &

\ ñ %

ò Ó` ¾ ¦Å Ò H‫כ‬ ¹ è H 6 §õ £ ° ú . – á Ô Ð[ jÛ ¼_ Ä º í H0 A – á Ô Ð[ jÛ ¼_ z ´ ' r ç , z ß rr É ç ß – á Ô Ð[ jÛ ¼ & Ä h » ¦e H " ¶_ é à ºü <Ä » A( þ + & h l / 'î r ¶ " é` ¦ t ¦e Há Ô Ð [ jÛ ¼\ ¦7 x« á Ñ H s ‫כ‬ Ä »o .) – á Ô Ð[ jÛ ¼ 9 ‫כ‬ ¹ H ¶ " é_ à º – § Ì Ã I © \ ¦K l 0 AK 7 x« á ÑK H á Ô Ð[ jÛ ¼_ à º – á Ô Ð[ jÛ ¼_ 7 xÀ á Ó(r Û ¼ 7, % © ñ 6 x1 x) p 8.6.6

Ì R8 ¦ ýP s< ê gA 0< g

• ¶ " é_ y ] © jK ] j~ ÓZ ½ ` O ¦ 6 x½ ÉM + : ¦ 9÷ & H‫כ‬ ¹ è – BÒ t q × : # þ Q " ¶ " é` ¦# Q á " Ô Ð[ jÛ ¼ Ð Â Ò' K ] j½ Ét + &

K ñ ô Ç . q 6 x` ¦> í ß ÉM + ½ : ¦ 9÷ & H‫כ‬ ¹ è Há Ô Ð[ jÛ ¼\ ¦7 x« á ѽ É + M :ü <Ä » . – 4 ¤) (rollback): # Q á " Ô Ð[ jÛ ¼ РÒ' " ¶ é ¦y ` ] © jK ] j Õ ªá Ô Ð[ jÛ ¼ H r &

ñ © à º ' | cà ¨ ºe ¸2 ¤s á Ô Ð[ jÛ ¼\ ¦î ß ô Ç © I Ð4 ¤) r & ô Ç . é © í ß Hô Ç~ ÓZ ½ O r É % 6 §Â £ Ò' r z ´' H s ‫כ‬ . ì Í@ ø / Ð s © & © h ‫כ‬ r É ‫כ‬ 9 ¹ô Çë ß uë p ÷ ß &[ to H s ‫כ‬ . të s ß

Ä â º\ Hr Û ¼% s 7 ´ § ú r É

ñ & Ð\ ¦Ä »t K ô Ç . – Ï UÅ ã Òa >: ° Ë ú rá É Ô Ð[ jÛ ¼ РÒ' > 5 q Å " ¶` é ¦ K ] j s á Ô Ð[ jÛ ¼ H%

½ ò ¨& Ü h ¼ Ðz ´' &t ÷ 3 w½ l Éà + ºe . s ³ & s © µ ÏÒ 1 t q t · § ú ¸2 ¤K ô Ç . Ð : x BÒ t q Ð × | þ cà ¨ º e H rà º\ ¦] jô Çô Ç .

7


c °2003, sangjin@kut.ac.kr

• z' ´ r ç ß ` ç

\ " f Ho 7 & Å h Ò èü < Ó to ü & h Ò Å èç \ ß B i ç

rÅ É Òl % 3 u © - ao ' u © (MMU, Memory-Management Unit) H × ¼J ?# Q\ K _ s À Ò# Q .

* <* Ö = å i< K: ~ ¡q ç { ¡È 10

• ß çé ô ß Ç \ V) F C u Y Ut Û ¼' (relocation register) 6 x

A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

– FC u Y Ut Û ¼' H r´ É ú Ðl $ Y Ut Û ¼ (base register) ' 9, s Y Ut Û ¼' \ e H° ‫כ‬s ú bs ¦ CPU Ò t$ q

ô í Ç Ho 7 & Å h Ò è as Å Òl % 3 u © \ > Ha+b° ‫כ‬s ú Å Ò è&

ñ Ð Ð ² ú a ) .

Part III. Storage Management

– MSDOS HW 1> h_ l $ Y Ut Û ¼' \ ¦ 6 x i % .

¤M W ÄX ì sV ê å ËP ¾

9 9.1 9.1.1

9.1.3

9 0ß Ë O

• í Ól ½ \ Há Ô ÐÕ ªÏ s þ z ´ ' ÷ &l 0 AK " f H ^ Ô á ÐÕ ªÏ s þ ¸¿ º Å Òl % 3 u © \ & F h ÷ &# Q Ù ¡ þ .

¤} º ß ÅÁ Ã Ë S

• á Ô ÐÕ ªÏ ` þ ¦ $

½ í ÉM + :, Ô á ÐÕ ªA Q Hl ñÒ Å è ¦ \ 6 xô Ç . 7 ¤, £ à º\ ¦ ¦s à ºs £ 2 § ¦: ` xK Å Ò è\ ¦] X Hô Ç .

– ë] H j& : á h Ô Ð[ jÛ ¼_ ß ¼l Ó to ü & Å h Òl % 3 u © ß ¼l \ _ K ] jô Ç a ) .

• á Ô ÐÕ ªÏ þ rz É ´ ' ÷ &l \ s l ñÅ Ò è\ ¦z ´ ] jÅ Ò è Ð `

K ç Å Ò# Q ô Ç .

• â \ = \ (dynamic loading): À Ò; 2s ñØ ¦| cM ¨ : Òl Å % 3 u © \ & F h H~ ÓZ ½ O

• Å Ò è\ ¦ `

ç H rl

– ¸ HÀ Ò; 2 rF É C u 0 x p ï× ¼+ AI þ Ðn Û ¼ ¼\ ß Ä »t a ) .

– (

{ 9 rç : ( ß

{ 9 Q á Ô Ð[ jÛ ¼ # Qn \ & F h | ct ¨ · ú ¦e Ü ¼ (

{ 9 ½ ÉM + :Å Ò è ¦ \ ` ç

½ ÉÃ + ºe .

– main á Ô ÐÕ ªÏ s þ $ & F h ÷ &9, z ´ ' ¸× æ \ r À É Ò ;` 2 ¦ ñØ ¦K s À Ò ;s 2 ³F & Å Òl % 3 u © \ e Ht ¦\ Ü O ¼ F C u 0 x p & F h l (relocatable linking loader)\ ¦s 6 x # À Ò; 2` ¦Å Òl % 3 u © & \ F h ô Ç .

– & F h r ç : ( ß

{ ½ 9 ÉM + :á Ô Ð[ jÛ ¼ # Qn \ & F h | ct ¨ ¸Ø Ô (

{ 9 Q H= : n æ óÞ «(relocatable code)\ ¦Ò t$ q

ô í Ç . z ´] j ` ç

r& É F h ½ ÉM + : t t a ) . F C u 0 x p ï× ¼ê Íl ø ï r0 Au Å Ò è\ ¦ 6 x H ï× ¼ ¦´ \ ô ú Ç .

– ç + ¡

: 8 6 x t · § ú HÀ Ò ;( 2 ¸À Ó% o À Ò; 2) rÅ É Òl % 3 u © \ & F h ÷ &t · § ú H .

– z ´ ' r ç : z ß ´ ' ¸× æ\ á Ô Ð[ jÛ ¼_ & F h 0 A u º 1 Ãe Ü ¼ ` ç

rz É ´ ' | cM ¨ :s À Ò# Q . ³F & H@ /Â Òì rs ~ ÓZ ½ ` O ¦ 6 xô Ç . 9.1.2

ÞX Ò ÄX ì Ä< ì 0

9.1.4

ÞX Ò Ä ì Å+ ì ÇÊ s Ý « ¥ T ¬ [P

• a Ç ¥ \ >Ú o

(static linking): á r Ô ÐÕ ªA b ç

# Q\ " f j/ ] N B H s Ú Ô Qo \ ¦á Ô ÐÕ ªÏ õ þ ½ Ë + # x 6 H~ Ód ½

ØP X À VS. ö ÚP n X Ä ì ¤} º « m

– ÿ ·+

: 8 ¸ Há Ô ÐÕ ªÏ þ r É s Ú Ô Qo _ 4 ¤ r` : ¦ t ¦e . " fn Û ¼ß ¼/ Nç B õ ß Å Ò % l 3 u © / Nç B s ß ¸¿ ºz q © a ) .

• CPU\ _ K Ò tí q

$÷ & HÅ Ò è H Ð: x Ho 7 & Å h Ò è ¦, Å Òl % 3 u © ] X > ÷ & HÅ Ò è(MAR \ & F h ÷ & HÅ Ò è) HÓ to ü & Å h Ò è ô Ç .

• â ¥ \ >Ú o

(dynamic linking): r s Ú Ô Qo ü <_ s z ´' r ç ß t l ÷ & H~ Ód ½

• (

{ 9 r ç ß ` ç

s & F h r ç ß `

\ ç " f H Ho 7 & Å h Ò èü <ü t Óo & Ò h Å è ° ú .

– l 1& x h _

Ä â ºy á Ô ÐÕ ªÏ \ þ stub í Ê÷ < &9, s stub H Å Òl % 3 u © \ / NÄ B »÷ & ¦ e H s Ú Ô Qo À Ò ;\ 2 " fá Ô ÐÕ ªÏ s þ 9 ¹ ‫כ‬ HÀ Ò; 2` ¦¹ Ô 1 Å Ò H& h r É _ ª ï× ¼s .

• z ´ ' r ç ß ` ç

_

Ä â º\ H Ho 7 & Å h Ò èü <Ó t ü o & Å h Ò è Ø Ô9, s

Ä â º\ Ho 7 & Å h Ò è\ ¦ Å © Ò è(virtual address) ô Ç . • á Ô ÐÕ ªÏ \ þ _ K Ð Ã ¸| cà ¨ ºe H ¸ H Ho 7 & Å h Ò è\ ¦ Ho 7 & Å h Ò è/ Nç B (logical address space)s ß Ç ô . ¸ H Ho 7 & Å h Ò è\ @ /6 x÷ £ & H ¸ HÓ to ü & h Å Ò è\ ¦Ó to ü & Å h Ò è/ Nç B s ß ô Ç .

– Q # À " Ò ;` 2 ¦% 6 § £ ñØ ¦½ ÉM + :ë stub ß ‫כ‬ 9 ¹ 9, Õ ªÀ Ò ;` 2 ¦ r ñØ ¦ Å Ò è&

ñ Ð\ ¦ 6 s x # Ð ñØ ¦ô Ç . 1


– ¡+ ç

8

9.3

• s Ú Ô Qo Ì t q s 6 xs . • # Q ! Q _ s Ú Ô Qo \ ¦ 6 x½ É Ã + º e . s

Ä â º\ yá Ô ÐÕ ªÏ þ r É _ Q ! &

ñ Ð\ ¦ s 6 x # & ] h ô X Ç s Ú Ô Qo \ ¦ 6 x > a ) . • n Û ¼ß ¼ / Nç B õ ß Å Òl % 3 u © / Nç B ` ß ¦ ] X ½ Éà + ºe .

• Ò Ål % 3 u © H Ð: x¿ º%

% ò Ü i ¼ Ðì r½ É + a ) . ô Ç%

ò i % rî É r%

^ ò ] j 6 x 9, r% É

% ò i r É 6 x Ô á Ð[ jÛ ¼ 6 xô Ç . Ð: xî r%

^ ò ] j H 0 AÅ Ò è\ 0 Au ô Ç . • 5 q& Å / h Nç B ½ ß É{ + \ © " fy 6 x á Ô Ð[ jÛ ¼ H q Å 5 aé ) { ß % 9

% ò ` i ¦½ É{ + ~ © Î Ã H .

• 1 x& l h r É rÅ É Ò è/ Nç B ` ß ¦] X HK Ù ¼ Ð r% î

^ ò ] jt é "s ¶ ‫כ‬ 9 ¹ . 9.1.5

9.3.1

• ä

ȋ

(overlay) rá É Ô Ð[ jÛ ¼_ ß ¼l á Ô Ð[ jÛ ¼\ > ½ É{ + © a/ ) Nç B ß Ð 9 tà þ ºe ¸2 ¤K ï r . l r : ty q Ò r É ³F & 9 ‫כ‬ ¹ô Ç"

§ î

# î Q[ tõ þ X <s ' ë Å ß Òl % 3 u © \ Ä » t H s ‫כ‬ .

• s\ ¦0 AK l $ Y Ut Û ¼' ü <ô Ç> Y Ut Û ¼' (limit register)\ ¦ 6 xô Ç . • l$ Y Ut Û ¼' _ ° ‫כ‬s ú bs ¦ô Ç> Y Ut Û ¼' _ ° ‫כ‬ ú ls s Ho 7 & Å h Ò è a_ 0 xô p Ç# 0 3 A Hb≤a≤ b + ls . CPU\ _ K Ò t$ q

í a ) ¸ H Ho 7 & Å h Ò è H 6 x÷ &l \ # 0 3 A? /\ e Ht ô Ç .

• \ V) ¿ ºé > ß # Q! l r^ ¦ Q(2-pass assembler)ê Í# ø Q! r^ l ¦ o Ð $

í aá ) Ô ÐÕ ªÏ ` þ ¦¿ ºé > ß Ð ¾ º# Q % i H# Q! l r^ ¦ Q\ ¦´ ô ú Ç . s# Q! r^ l ¦ Q_ ½ ¨$

‫כ‬ í ¹ è H 6 §õ £ ° ú .

9.3.2 70 KB 80 KB 20 KB 30 KB

¤M W ÄX ì sV ê ¶ £R s ê

• MFT (Multiprogramming with Fixed number of Tasks) ~ ÓZ ½ O – Ò Ål % 3 u © \ ¦ ¦&

ñ aß ) ¼l _ %

% ò Ü i ¼ Ðì r É + ½ # y %

% ò ` i ¦ _ á Ô Ð[ jÛ ¼\ > ½ É + ô © { Ç .

l ñ _ s ^ ¦õ / N: B x À Ò; 2 r Pass 1õ É Pass 2\ " f ¸¿ º 9 ‫כ‬ ¹ . ¸ H½ ¨$

‫כ‬ í ¹ è\ ¦ ¸¿ º& F h 200 KB 9 ‫כ‬ ¹ . t ë × ß æ^ ?` o ¦ 6 x Pass 1` ¦z ´ ' ½ ÉM + :\ H 120 KBë ß ‫כ‬ 9 ¹ ¦, Pass 2\ ¦z ´ ' ½ ÉM + : \ H 130 KBë ß 9 ‫כ‬ ¹ .

– s

Ä â º × æá Ô ÐÕ ªA b

_ ç &

ñ ¸ Hì r½ É% +

ò _ i % Ã º\ _ K &

ñ a ) . – î% r

^ ò ] j H # Q % "

% ò s i 6 x 0 xô p Çt \ ¦ »t Ä l 0 AK _ s ^ ¦` ¦ 6 xô Ç .

• ×^ æ ? o rî É r%

^ ò ] jt " ¶s é 9 ‫כ‬ ¹\ t O ë á ß Ô ÐÕ ªA Q H× æ^ ?` o ¦ ¦ 9 # á Ô ÐÕ ªÏ ` þ ¦ $

K í Ù ¼ Ð ³F & H 6 x t ú § · H~ ÓZ ½ s O .

9.2

¤M W ÄX ì sV ê | º Æ

• î% r

^ ò ] j\ ¦ 6 x á Ô Ð[ jÛ ¼ ÐÂ Ò' Ð ñK 9, 6 x á Ô Ð[ jÛ ¼\ ¦ r É 6 x á Ô Ð[ jÛ ¼ Ð Ò' Â Ð ñK ô Ç .

Þ² n ú É v

Pass 1 Pass 2 l ñ_ s ^ ¦ / N: B xÀ Ò; 2

Å ì ×X Ò Ä ì « m¶ £R s ê

– s~ ÓZ ½ ` O ¦ MFT 9 IBM\ " f í Ól ½ \ 6 xô Ç~ Ód ½ s . Õ ª Q ³F & s ~ ÓZ ½ O r É x÷ 6 &t · § ú ¦e . • MVT (Multiprogramming with Variable number of Tasks) ~ ÓZ ½ O

­ ÏË t S

• á Ô Ð[ jÛ ¼ Hz ´' ¸ × æ\ { 9 r & Ü h ¼ ÐÅ Òl % 3 u © \ " fn Û ¼ß ¼ Ð` Ê ê\ × æ\ r Å Òl % 3 u © \ & F h ÷ &# Qz ´ ' ` ¦F > h½ Éà + ºe . s õ &

ñ ¦â ` « J b (swapping)s ô Ç .

– î% r

^ ò ] j H ³F & 6 x÷ & ¦e H/ Nç B õ ß x÷ 6 &t · § ú H/ Nç B ` ß ¦_ s ^ ¦\ Ä »t ô Ç . – %6 §\ £ Hî r%

^ ò ] j & F h ÷ &# Qe H/ Nç B ß ¦] ` jü @ ¦ H ¸¿ º 6 xs 0 x p 9, 6 x 0 xô p Ç%

% ò ` i ¦f Ë(hole)s . ô Ç .

• Û ¼ i ‫כ‬ ç

s Ä º í H0 A\ _ K µ ÏÒ 1 t÷ q & roll out, roll ins H6 x# Q\ ¦ 6 xô Ç .

– Ô á Ð[ jÛ ¼ ¸ Ì Ã Õ ªá Ô Ð[ jÛ ¼\ ¦Ã º6 x Éà + ½ ºe Hß ¼l _ f Ë` . ¦¹ Ô 1 ½ É{ + ô © Ç .

• (

{ 9 r ç ß ` ç

¢ ¸ H& F h r ç ß ` ç

` ¦ 6 x H

Ä â º\ HÛ ¼ ‫כ‬ Ö ©(swap out)÷ &% 3 Û ¼ ‫כ‬ (swap in) ÷ &% ` 3 ¦M :° ú rÓ É to ü & Å h Ò è Ð& h F ÷ &# Q ô Ç . t ë z ß ´' r ç ß `

_ ç

Ä â º \ H r0 É Au Ð& F h | cà ¨ ºe .

– Ô á Ð[ jÛ ¼ z ´' ÷ &l 0 AK ¸ Ì Ã { § 9 4 ©(ï Ç rq ¢ a« ÑÇ ©)\ ½ É{ + © a ) . – ¼ ÛH × ¦a A · ú ¦o 7 §\ £ á Ô Ð[ jÛ ¼\ > Òl Å % 3 u © \ ¦½ É{ + © 9, 8s ½ © É{ + ½ © É/ + N B s ß ç \ Ü O ¼ á Ô Ð[ jÛ ¼ H@ /l > a ) .

• Û ¼ i ‫כ‬ ç

` ¦ l 0 AK " f H Ð ¸l % 3 u © ‫כ‬ 9 ¹ 9, Ð: x r É nÛ ¼ß ¼\ ¦ ¸6 Ö xô Ç .

– Q # Å " Ò# Q r ç \ ß Å Òl % 3 u © \ ¦' ¹ a Ï 1 f Ë[ . t þ rÅ É Òl % 3 u © ì Í\ ø 5 gf ­# QR 4 e .

• & F ³ H Ð: x + A þ a+ ) AI þ _ Û ¼ i ‫כ‬

ë ç ` ß ¦ 6 xô Ç . 2


0 OS

OS

400

400

logical address

P1

H1

CPU

800

p

d

f

1000 P3 1400

d physical address

P3

physical memory

1800

H2

H1 P4 2600 H3 3000

(a) 1 x& l l h % 3 u © ½ É{ + ë © H] j

page table

2200

2200

P4 H2

2800 3000

(b) ü @Â Òé ¼ ß # o

<Õ ªa > 9.2> ` Ë s f ç

× ¼J ?# Q

<Õ ªa > 9.1> MVT · Ë ú ¦o 7 § £ • MVT\ " f# Q á " Ô Ð[ jÛ ¼\ > l % 3 u © / Nç B ` ß ¦ É{ + ½ ô © ÇÊ ê\ Å Ò rf É Ës . z Ü ¼ s ‫כ‬ r É ³F & É{ + ½ ~ © Î Ã Há Ô Ð[ jÛ ¼\ > ½ É{ + © a ) Ü ‫כ‬ ¼ Ðç Å ß Ò ¦ Ë . f ÐÄ »t t · § ú H . s ‫כ‬ rf É Ë\ . aô ' Ç&

ñ Ð\ ¦ »t Ä Hq 6 x` ¦× ¦s l 0 A Ês < . s ü <° ú rz É © \ q ¦? / Òé ¼ ß # o(internal fragmentation) ô Ç . Ô á Ð[ jÛ ¼\ > ½ É{ + ÷ © &% t 3 ë ß 6 x÷ &t · § ú H/ Nç B ß ¦´ ` ô ú Ç .

• 1 x& l l h % 3 u © ½ É{ + ë © H] j: # Qf Ës . e ` ¦M :# Q f " Ë\ . á Ô Ð[ jÛ ¼\ ¦½ É{ + ½ © É + ‫כ‬ t \ ¦ &

ñ H H] ë j – i ¦ ï T \ Ò ¼(first-fit): Ø æì ry H ' Í P : е Ï 1 ô

| Çf Ë\ . ½ É{ + ô © Ç . Ò o r% É 6 §Â £ Ò' r Éà + ½ ºe ¦, s Ò o7 x« á Ñ0 Au  Ò' r Éà + ½ ºe .

• Ð : x½ É{ + © a% )

% ò s i N> hs 0.5N > h_ %

% ò s i ¼ ß é # oM :ë H\ z q © a ) .

– i ¦ \ T \ Ò ¼(best-fit): á Ô Ð[ jÛ ¼\ ¦Ã º6 x½ Éà + º e H © rf É Ë\ . ½ É{ + ô © Ç . f Ës . &

§ ñ =÷ > & # Qe t · §Ü ú ¼ ¸ Hf Ë` . ¦ K ô Ç .

9.4

_T @ Ë Ç S

• `s f

l ç Z \ O " f Há Ô Ð[ jÛ ¼\ > 5 q Å a/ ) Nç B ` ß ¦ É{ + ½ K © Å Òt · § ú ¸ a ) .

– i ¦» Ð Ç T \ ¼(worst-fit) Ò H © f Ë\ . ½ É{ + ô © Ç . s ~ ÓZ ½ ` O ¦ 6 x z Hf Ë_ . ß ¼l © ß ¼ . f "þ j& & h ½ h Ë + Ð Hs ` ‫כ‬ ¦ r ¸6 Ö x½ ÉS + Ò X ¦s Z } .

• ³F & V © o , 6 x÷ & ¦e Hl Z s O . • í Ól ½ ` s f

l ç Z O r É & Ü h ¼ Ð × ¼J ?# Q н ¨ ³ & % i . Õ ª Q þ j H\ Hî r%

^ ò ] jü < × ¼J ? Q\ # ¦x ] 9 X > ar ' & ½ ¨ ³ô & Ç .

• \ V) Õ ªa > 9.1_ Ë (a)\ " fß ¼l 300 KB á Ô Ð[ j Û ¼ ï rq ÷ & þ j íh &½ Ë +

Ä â º\ H H1\ ½ É{ + © & ÷ ¦, þ j& & h h ½ Ë +

Ä â º\ H H3\ ½ É{ + ÷ © &9, þ j & ½ h Ë +

Ä â º\ H H2\ ½ É{ + © a ) .

9.4.1

• r Ó tY ý Us õ þ j í& ½ h Ëõ + þ j& & h ½ h Ës + / Nç B ß 6 x´ òÖ ¦s ½ É{ + © rç 8 ß ¤ £ \ " fþ j & ½ h Ë + Ð HÄ ºÃ º 9, þ j í& ½ h Ë + rþ É j& & h ½ h Ë + Ð ½ É{ + © r ç 8 ß ¤ £ \ f "Ä ºÃ º .

Ä M Ø4 ] G È

• ü Óo t & l h % 3 u © H ¦&

ñ a ß ) ¼l _ è «Q cÑ (fraÏ me)Ü ¼ Ð è H . • 7 o H & Å h Ò è/ Nç B ß ¸á ÔY Ue õ ° ú rß É ¼l _ Z cl (page) m Ð è H .

• 0 A[ j· ú ¦o 7 §_ £ ë H] j& : ü h @Â Òé ¼ ß # o(external fragmentation) µ ÏÒ 1 t½ q ÉÃ + ºe .

• Ô á Ð[ jÛ ¼ z ´ ' | cM ¨ :Õ ª _ ‫כ‬ ` s t H 6 x xô p 0 Ç# Q á " ÔY Ue \ ¸½ É{ + | © cà ¨ ºe .

• @ ü Òé ¼ ß # o: ¸ Hf Ë` . ¦½ Ë + á Ô Ð[ jÛ ¼\ ¦Ã º6 x Éà + ½ ºe Ü ¼ 5 q/ Å Nç B s ß m l M :ë H\ á Ô Ð[ j Û ¼\ ¦½ É{ + ½ © Éà + º\ O H

Ä â º\ ¦´ ô ú Ç .

• × ¼J ?# Qt " ¶: Õ é ªa > 9.2 Ë Ð Ã ¸. – CPU Ò t$ q

í HÅ Ò è: ` s t ñ(p)ü <` t s ¸á Ô! (d), ¿ Ó º 9 × ¼ н ¨$

í a ) .

• \ V) Õ ªa > 9.1_ Ë (b)\ " f¼ ßl 500 KB á Ô Ð[ j Û ¼ ï rq ÷ & H1õ H2\ ¦½ Ë5 + g 600 KB / N B s ß ç t ë ß 5 q/ Å Nç B s ß m l M :ë H\ ½ É{ + | © cà ¨ º O \ . 7 ¤, 8 £ x 600 KB_ ú ü @ Òé ¼ ß # o e .

– `s t ñ H` s t _ s ^ ¦` ¦ Ð Ã ¸ H o Ò Ü ¼ Ð ¸6 Ö x÷ &9, s \ ¦: xK s ` s t É{ + ½ ÷ © &# Qe Há ÔY Ue ` ¦· Ã ú ºe . • V \) ` s t _ ß ¼l H4 s à Ôs ¦, Å Òl % 3 u © ß _ ¼l H 32 s à Ôs .

• @ ü Òé ¼ ß # o\ ¦K H~ ÓZ ½ \ O H compactions H~ ÓZ ½ s O e . s ‫כ‬ r½ É É{ + ÷ © &# Qe Há Ô Ð[ j Û ¼_ & F h 0 Au \ ¦F C u # _ Hf Ë` . ¦% 3 H~ ÓZ ½ s O .

– Ò Ål % 3 u © _ á ÔY Ue à º: 32/4 = 8(0  Ò' 7 t ) 3


– á Ô Ð[ jÛ ¼_ ` s t _ s ^ ¦s 6 §õ £ ° ú ¦ &

ñ s ` t ñ 0 1 2 3

9.4.2

© ú# aU Ì R ¦

• ` s t _ s ^ ¦_ × ¼J ?# Q½ ¨ ³~ & ÓZ ½ O

ÔY á Ue ñ 1 4 3 7

– 6 xY Ut Û ¼' | ½ 9 Ë` + ¦ 6 x H~ ÓZ ½ : ` O s _ t s ^ ¦s r É

Ä â º\ ë ß 6 x½ ÉÃ + ºe 6 § £ – Ò Ål % 3 u © _ : ¤& £

% ñ

% ò \ i ` s t _ s ^ ¦ ¦$ ` © ¦, s ` ‫כ‬ ¦ o v HÅ Ò èë Y ß Ut ¼' Û \ $ ô © Ç . s Y Ut Û ¼' \ ¦ PTBR(Pa ge-Table Base Register)s ô Ç .

s á Ô Ð[ jÛ ¼_ `s t 0 rá É ÔY Ue 1\ ½ É{ + © &# ÷ Qe ¦, ` s t 1 rá É ÔY Ue 4\ ½ É{ + ÷ © &# Q e .

• ë] H j& : Å h Òl % 3 u © \ ¦ ] H X l 0 AK Ó ½ ¿ © º _ ] X Hs ‫כ‬ 9 ¹ Ù ¼ Ð] X H 5 q Å ¸ Ö ¼o .

• ` s f ç

` ¦ 6 x ü @ Òé ¼ ß # o Hµ ÏÒ 1 t q t · § ú H . t ë / ß ? Òé ¼ ß # o Hµ ÏÒ 1 t½ q Éà + ºe . á Ô Ð[ jÛ ¼_ t } ` s t Há ÔY Ue ß ¼l Ð ¦Ã ` ºe . þ j _

Ä â ºô Çá ÔY Ue _ @ / Òì rs q © z | cà ¨ ºe .

– 6 xH r \ ¦ 6 x H~ ÓZ ½ O • s H r \ ¦ Translation Look-aside Buf fer (TLB) 9, Ð: xH r ü < ð Í ø t Ð aB ' i ç

(associative mapping) ~ Ó ½ ` d ¦ 6 xô Ç . • TLB Hß ¼l ] jô Ç& s h 9, q 6 xs q . • " f TLB\ H` s t _ s ^ ¦\ { Â 9 Ò t ß ë ¦e Ü ¼9, H r % ! 3 $ TLB ¦ \ Ò oô Ç 6 §\ £ ¹ Ô 1 ¦ H` s t

ñ & Ð \ Ü O ¼ Å Òl % 3 u © \ e H ` s t _ s ^ ¦` ¦ Ð Ã ¸ô Ç . • TLB\ e H# Q & "

ñ Ð[ t þ r] É j | cà ¨ º O \ ¸2 ¤ô Ç . s ` ‫כ‬ ¦ wired down ÷ &% 3 ¦ 9, Ð: x& V õ , aº ' a` ) s t

ñ & Ð H TLB\ " f] j ÷ &t · § ú H . • # Q TLB ½ " ¨ ³[ & t þ r ASID(Address-SpaÉ ce IDentifier)\ ¦` s t &

ñ Ðü < Êa < $ ½ © É Ã + º e ¸2 ¤ K ï r . ASID H á Ô Ð [ jÛ ¼ç _ ß Å Òl % 3 u © Ð ñ% ½ i É` + ¦K Å Ò9, # Qá Ô Ð[ jÛ ¼_ ` s t &

ñ Ð TLB\ Êa < $ | © cà ¨ ºe ¸2 ¤K ï r .

• 9 { ì Í& ø Ü h ¼ Ðá Ô Ð[ jÛ ¼ á ÔY Ue _ ì Íß ø ¼l &

ñ ¸_ ? / Òé ¼ ß # o µ ÏÒ 1 tô q Ç . • ? / Òé ¼ ß # o\ ¦× ¦s l 0 AK ` s t _ ß ¼l \ ¦× ¦ 9 { à ºe t ë s ß X > O Ä »t K H` s t _ s ^ ¦s & . • ¸Z t± þ ú r 4 KB ¢ É ¸ H 8 KB_ ` s t ß ¼l \ ¦ 6 x Ç ô . • # Q î " r%

^ ò ] j H × æ `s t ß ¼l \ ¦] j/ Nô B Ç . • ` s t _ s ^ ¦_ ô Ç Ó3 ½ q l r É Ð: x4 s à Ôs . s

Ä â º8 x 232 Ô ú áY Ue ` ¦t ¶ " é½ Éà + ºe . s M : á ÔY Ue _ ß ¼l 4 KBs ú x 8 244 = 16 TB_ Ó t ü o & Å h Ò è/ Nç B ` ß ¦ 6 x½ ɺ + Ãe . • ` s f ç

\ " f Å Òl % 3 u © \ @ /ô Ç 6 x a& ' õ h z ´] jÓ to ü & Å h Òl % 3 u © Ø Ô . 6 x á Ô Ð Õ ªÏ þ rÅ É Òl 3 % u © \ ¦ _ á Ô ÐÕ ªÏ ë þ & ß F h ÷ & # Qe H _ 5 q& Å / h Nç B Ü ß ¼ Ðç Å ß Òô Ç . Õ ª Q z ´] j Ð 6 x á Ô ÐÕ ªÏ þ r` É s t é 0 ß A Ð * '# Qf ­# Q4 Re . s s HÅ Ò è % i × ¼J ?# Q F G4 ¤K Å Ò9, 6 x Hs z ´` ¦· ú ‫כ‬ 9 ¹ \ O .

9.4.3

º | Æ

• `s f

l ç Z ` O ¦ 6 x H ¨ 8

\ â " f Å Òl % 3 u © Ð ñ H Ð ñq à Ô\ ¦s 6 xô Ç . • Ð ñq à Ô H` s t _ s ^ ¦\ Ä »t a ) . • y` s t ô Çq à Ô\ ¦s 6 x # ` s t { 9 -æ l ¼l ¢ ¸ H{ 9 l - 6 x t \ ¦ è qà ­ ºe .

• î% r

^ ò ] j HÅ Ò l% 3 u © \ ¦ ao ' Ù ¼ н É{ + _ © [ jô Ç? /6 x ¦ `· ú ¦e # Q ô Ç . s \ ¦0 AK á ÔY Ue _ s ^ ¦` ¦Ä » tô Ç .

– ¸ HÅ Òl % 3 u © Ð Ã ¸ H` s t _ s ^ ¦` ¦ Ð Ã ¸ Ù ¼ Ðs M : Ð ñq à Ô\ ¦s 6 x # { 9 - l 6 x` s t \ @ /ô Çæ ¼l r ¸\ ¦} ` ¦Ã º e .

• á ÔY Ue _ s ^ ¦\ Hz ´] já ÔY Ue _ Ó ½ s rF > 9, á ÔY Ue _ ½ É{ + # © Â Ò, ½ É{ + ÷ © &# Qe ` ¦

Ä â º\ H# Q á " Ô Ð[ jÛ ¼ _Y

> P :` s t ½ É + ÷ © { &# Qe H t\ ¦Ä »t ô Ç .

• 9 {ì Í& ø Ü h ¼ Ð` s t _ s ^ ¦_ y Ó ½ Ä »´ òq Ô · à ­# ¡ Qe . s q à Ô [ & O

÷ ñ &# Qe Ü ¼ s Ó ½ K \ { © H` s t Há Ô Ð[ jÛ ¼_ Ho 7 Å Ò è/ N B \ ß ç í ÊH < d` ¦ p · .

• î% r

^ ò ] j H¢ ¸ô Çy á Ô Ð[ jÛ ¼ ` s t _ s ¦` ^ ¦Ä »t ô Ç . s` s t _ s ^ ¦ r É Ð: x PCB ? / \ Ä »t ÷ &9, ë HÐ o ¨ ` 8 ¦½ ÉM + : 9 ‫כ‬ ¹ . " f` s f ç

rë É HÐ o ¨ \ 8 è‫כ‬ ¹÷ & Hr ç ` ß ¦7 x £ r .

– » Ä´ òq à Ô @ / \ PTLR(Page Table Length Register)\ ¦ 6 x # ` s t _ s ^ ¦_ ß ¼l ¦ \ ? / H

Ä â º ¸e . 4


p1

p2

logical address p d

d

p1

memory

r

hash function

d

p2 outer page table

d

q

s

p

r

page of page table

hash table

<Õ ªa > 9.3> ¿ Ë ºé > ß `s f

¨ ç ½ ¸\ " fÅ Ò èK $ 3

<Õ ªa > 9.4> K Ë r a` ) s t _ s ^ ¦ 9.4.4

@ _T U ? _T ÷ §8 u ý º

logical address pid p d

9.4.4.1 N ¥ Ä © ¿Z cl b • & @ ³ / ( É Ó' r Û ¼ 7 % r B É Ä º H Ho 7 Å Ò è / N B (232 \ ß ç " f 264 )` ¦] j/ Nô B Ç . ô Ç` s t _ ß ¼l 4 KB(212 )s 32 q à Ô( É Ó' _

Ä â º` s t _ s ^ ¦ r 220 É Ós ½ ‫כ‬ 9 ¹ 9, y Ós ½ 4 s à Ôs 4 MB 9 ‫כ‬ ¹ . " f` s t _ s ^ ¦` ¦ 5 q Å & Å h Ò è/ Nç B \ ß $ © H ‫כ‬ rj É µ[ Ë t þ .

memory

search

i pid

i

d

p

page table

<Õ ªa > 9.5> % Ë ` i s t _ s ^ ¦

• > 8 x½ £ ¨ ¸` s f

s ç ê Í` ø s t _ s ^ ¦ ¸` s f

` ç ¦ H` s f

l ç Z s O .

– 6 §‫כ‬ £ ¹ è\ ¦ o v H í '

• s l Z \ O " f Ho 7 Ò Å è H 6 §õ £ ° s ú ½ ¨$

í a ) .

• Å Ò èK $ ~ 3 ÓZ ½ O page number p1 p2 10 10

page offset d 12

– Ò Å è\ e H ` © s t ñ\ ¦K r # { K © HK r _ s ^ ¦_ 0 Au \ ¦> í ô ß Ç . – ª Õ0 Au \ e H o Û ¼à Ô\ ¦ Ò o # ` t s á ÔY Ue ° ‫`כ‬ ú ¦% 3 H .

# l " f p1 r' É Y Í U 6 \` s t _ s ^ ¦\ @ /ô ÇÒ o s 9, p2 H¿ º P :Y U6 ` \ s t _ s ^ ¦@ /ô Ç o Ò s ¦, d Hz ´] j` s t ? /_ ¸á Ô ! Ós . s M :Å Ò è Ð Ã ¸ Hª Õa > 9.3õ Ë ° s ú s À Ò# Q . s ~ Ód ½ ` ¦ forward-mapped ` s t _ s ^ ¦s ô Ç .

• ß é> U · r É é > ß ` s f

~ ç Ód ½ Ð HÅ Ò è\ ¦ Ð Ã ¸ HX < è‫כ‬ ¹÷ & Hr ç s ß ¨

ç î H& Ü h ¼ Ð& h . 9.4.4.3 Z ] cl m Y cl ¡ ·

• 64 q Ô à Ho 7 Å Ò è/ Nç B ` ß ¦j ]/ N B Hr Û ¼% \ 7 " f H¿ ºé > ß ` s f

~ ç Ód ½ Ü ¼ Ð HÂ Ò7 ¤ á .

• tF K t _ ` s f

l ç Z O ry É á Ô Ð[ jÛ ¼ Z > ¸_ ` s t _ s ^ ¦` ¦ 6 x % i . s ` s t _ ^ s ¦ rá É Ô Ð[ jÛ ¼ 6 x Hy ` s t \ @ /ô Ç Ó(1 MB_ ½ á Ô Ð[ jÛ ¼s ¦, 4 KB_ ` s t \ ¦ 6 x 28 > h)Ü ¼ н ¨$

÷ í &# Qe ` s t 6 x# Òü  < © a\ ' s O ^ Å Ò è/ Nç B \ ß @ /ô Ç Ó(32 q ½ ÔÅ à Ò ès 232 > h)Ü ¼ н ¨$

÷ í &# Qe . Õ ª Q ~ s ÓZ ½ O rB É Ä º H/ Nç B ` ß ¦ ‫כ‬ 9 ¹ Ðô Ç .

– ¿ ºé > ß ` s f

~ ç Ód ½ ` ¦s 6 x p1 r 42 q É à Ô 9 ‫כ‬ ¹ . " f' Y Í U 6 \` s t _ s ¦ ^ r 242 > É h_ Ós ½ ‫כ‬ 9 ¹ . 7 ¤, 4 TB £ 9 ‫כ‬ ¹ . – Õ ª QÙ ¼ Ð é > ß ` s f

~ ç Ód ½ ` ¦ 6 xK t ë é ß > ß U ·` ¦Ã º2 ¤Å Ò è\ ¦ и à H X <´ § ú rr É ç s ß è‫כ‬ ¹ a ) .

• s \ ‫כ‬ @ /ô ÇK Õ Ü þ ¼ Ð% ` i s t _ s ^ ¦l Z O ¦ ` 6 x½ ÉÃ + ºe .

9.4.4.2 B k Û SZ Ö cl m Y cl ¡ ·

• i %` s t _ s ^ ¦ rÅ É Òl % 3 u © _ y á ÔY Ue \ /ô @ Ç Óë ½ ` ß ¦ t ¦e . s Ó\ ½ Hs á ÔY Ue $ \ ÷ © &# Qe H Å © Ò èü <s ` ‫כ‬ ¦ 6 x H Ô á Ð[ jÛ ¼_ d Z > н ¨$

÷ í &# Qe .

• B k Y cl ¡ ·(hash table)_ y Ó ½ r° É ú r0 É Au Ð K r ÷ & H` s t ñ_ o Û ¼à Ô Ð½ ¨$

í a ) . o Û ¼à Ô_ y ‫כ‬ ¹ è H 6 §õ £ ° ú r[ É j t 9 × ¼ н ¨$

í a ) .

• Å Ò èK $ ~ 3 ÓZ ½ O

– ` © s t ñ

– y Å © Ò è H[ j> h_ 9 × ¼(á Ô Ð[ jÛ ¼d Z > , ` s t ñ, ¸á Ô! ) Ó Ð½ ¨$

÷ í &# Qe .

– ` s t á ÔY Ue _ ° ‫כ‬ ú 5


s symbol table

limit

base memory

main

s

d

segment table

func1

yes

< stack

+

no trap; addressing error

logical address space

<Õ ªa > 9.7> [ Ë jÕ ª _ s × ¼J ?# Q

<Õ ªa > 9.6> Ë 6 x a& ' _ h á Ô ÐÕ ªÏ þ • j [Õ ª _ s rs É 6 x a& ' ` h ¦t " ¶K é Å Ò H Òl Å % 3 u © ao ' l Z s O .

– á Ô Ð[ jÛ ¼d Z > ü <` s t ñ\ ¦s 6 x # ` s t _ s ^ ¦` ¦ Ò oô Ç . { u 9 H ‫כ‬ ¦µ ` Ï| 1

Õ ª Ó_ ½ 0 Au á ÔY Ue _ 0 Au a ) .

9.4.5

• j [Õ ª _ s \ " f Ho 7 Å Ò è/ Nç B ß r[ É jÕ ª à Ô_ ½ 9 | ËÜ + ¼ н ¨$

÷ í &9, y [ jÕ ª à Ô Hs 2 §õ £ U ´s ¦ \ .

– ë] H j& : ` h s t _ s ^ ¦` ¦ Ò o Hq 6 xs ´ § ú . s ` ‫כ‬ ¦F G4 ¤ l 0 AK K r _ s ^ ¦` ¦ ¸6 Ö x½ ÉÃ + ºe .

• 6 x H [ jÕ ª à Ô s 2 §õ £ ¸á Ô! ` Ó ¦ s 6 x # Ò Å è\ ¦t &

ô ñ Ç .

« ¥@ _T U

• (

{ 9 Q 6 x á Ô ÐÕ ªÏ ` þ ¦ % ½ i ÉM + : 1 x l Ü h & ¼ Ð[ jÕ ª à Ô\ ¦½ ¨$

K í ï r .

• ` s f ç

l Z _ O ¢ ¸ r É & © h r/ É N: B x ï× ¼_ / NÄ B » 0 x$ p

s í .

9.5.2

• \ V) r ¼ Û% 7 \ 40"

_ î 6 x 6 x× æs ¦, s [ t þ ¸¿ º 150 KB_ ï× ¼ü < 50 KB_ X <s ' / Nç B ß s 9 ‫כ‬ ¹ô Çë H" f¼ | # 9 l \ ¦ 6 x ¦e . Õ ª Q 8,000 KB / Nç B s ß ‫כ‬ 9 ¹ . Õ ª Q ë ß s ï× ¼ F { 0 9 x p ï× ¼s 150 KB_ ï× ¼Â Òì r r É ¸ H 6 x / NÄ B »½ Éà + ºe . " f8 x 2150 ú KB 9 ‫כ‬ ¹ .

• [ jÕ ª à ÔÅ Ò èü <Ó to ü & Å h Ò èç \ ß B i

ç – [ jÕ ª à Ô_ s ^ ¦` ¦ 6 xô Ç . – s_ s ^ ¦_ y Ó ½ r[ É jÕ ª à Ô_ l $ ü <ô Ç > н ¨$

÷ í &# Qe . [ jÕ ª à Ô_ l $ \ H jÕ [ ª à Ô_ Ó to ü & r h Å Ò è l 2 ¤÷ &# Q Ü e ¼9, ô Ç> \ H[ jÕ ª ß ¼_ U ´s l 2 ¤ &# ÷ Qe .

– F { 9 ï× ¼ H ^ Ã º&

s ñ 0 x p t ú · § ô Ç . 7 ¤, Û £ ¼Û ¼ ÐÃ º ' ÷ & H1 xî l \ ß â

&t ÷ · § ú ô Ç .

9.5.3

– ï× ¼\ ¦/ NÄ B » l 0 AK " f Hì Í× ø ¼r F { 9 s 0 xK p ô Ç .

9.5.1

º | ÆÑ ÷ « ¥

• j [Õ ª à Ô H Ho 7 & ½ h ¨$

é í 0 ß A 1 xr l \ Ó to ü & h ¨$ ½

é í 0 ß As . " f{ 9 ì Í& ø Ü h ¼ Ð[ jÕ ª à Ô H Ô á ÐÕ ªÏ _ þ _ p & Ü h ¼ Ð&

_ ñ a{ ) 9 Â Òì rs . " f Ð ñ6 x ¸\ ¦&

_ ñ l ~ 1 .

• % ` i s t

{ 9 ` ¦ 6 x ï× ¼\ ¦/ NÄ B » l # Q§ > . % ` i s t

{ 9 ~ Ód ½ \ " f H> hZ á > Ô Ð[ j Û ¼_ ` s t _ s ^ ¦` ¦Ä »t t · §Ü ú ¼Ù ¼ Ð ¸ H á Ô Ð[ jÛ ¼ _ H é { ß 9 Ho 7 Å Ò è/ Nç B ` ß ¦ 6 x > a ) . " f¿ ºá Ô Ð[ jÛ ¼ ` s t \ ¦/ N B Ä » l 0 AK " f HÕ ª` s t \ @ /K ° ú r É Å © Ò è\ ¦ 6 xK Ù ¼ ÐB N /Ä » ~ t 1 · § ú .

9.5

© ú# a

– j [Õ ª à Ô Hß ¼> X <s ' Â Òì rõ "

§ î

# î QÂ Ò rÜ ì ¼ н ¨ì r| cà ¨ ºe Ü ¼9, "

§ î

# î QÂ Òì r r{ É 9 - l 6 x¢ ¸ Hz ´' - 6 xÜ ¼ Ðt &

ñ # Ð ñ ÉÃ + ½ ºe . – `s f

l ç Z \ O " f / L å a ) õ ‫כ‬ ° ú r É Ð ñq Ô\ à ¦y [ jÕ ª à Ôü < a ' # [ jÕ ª à Ô\ ¦ ] h & X > Ð ñ½ ÉÃ + ºe .

: g§ ¹ Å? _T Å Ó

– C\ ` P ¦ _ [ jÕ ª à Ô Ð ao ' 1 x l ¼ Ü ÐC \ P

> â \ ¦ ½ ÉÃ + ºe .

M Ä ØU ] s0 ê É n

• Ð: x 6 x [ þ t rÅ É Òl % 3 u © \ ¦ 5 q& Å h + A/ þ N B Ü ß ç ¼ ÐÒ ty q t · § ú ¦, Ð : xÅ Òl % 3 u © \ ¦í H" f \ O H ô ª Çß ¼l _ [ jÕ ª à Ô_ | 9 ½ ËÜ + ¼ ÐÒ t q y ô Ç . Õ ªa > 9.6 Ë Ð Ã ¸.

• j [Õ ª à Ô H` s t ü < ð Í t ø Ð ï× ¼ü <X <s ' / _ NÄ B » 0 x p . ¢ ¸ô Çs / NÄ B » H[ jÕ ª à Ôé ß A 0 Ðs À Ò# Q| à 9 ºe . 6


logical address selector

• 7 o H Å Ò è H × þ (16 q à Ô)ü < ¸á Ô! (32 q Ó à Ô) Ü © ¼ н ¨$

÷ í &# Qe Ü ¼9, × þ H 6 §õ £ ° ú r É j> [ h_ × 9 ¼ н ¨$

÷ í &# Qe .

offset

– [ jÕ ª à Ô ñ s(13 q à Ô)

descriptor

– ½ ¨ì r g(1 q à Ô): LDTü < GDT\ ¦½ ¨ì r

+ page frame

descriptor table page directory base register

linear address directory page

page directory

offset

– Ð ñ aº ' q à Ô p(2 q à Ô) • 80386 r 6> É h_ [ jÕ ª à ÔY Ut Û ¼' \ ¦] j/ Nô B Ç . " fô Ç \ 6> h_ [ jÕ ª à Ô\ ¦ Ð Ã ¸½ Éà + ºe .

physical address

page table

• 80386 r 6> É h_ 8 s à Ôß ¼l _ Y Ut Û ¼' н ¨$

í aH ) r \ ¦ 6 xô Ç . s H r H LDT ¢ ¸ H GDT_ Ó` ½ ¦H r ô Ç . • 80386 r¿ É ºé > ß ` s f

~ ç Ód ½ ` ¦ 6 xô Ç . <Õ ªa > 9.8> 80386 Å Ë Ò èK $ 3 – ë] H j& : { h ì 9 Í& ø Ü h ¼ Ð ï× ¼[ jÕ ª à Ô H ^ Ð Ã ¸(\ V, ¸|  Òì rl )\ ¦ í Ê < ¦e . s Å Ò è H [ jÕ ª à Ôü < ¸á Ô ! ÓÜ ¼ Ð ½ ¨$

÷ í &Ù ¼ Ð ¸ Há Ô Ð[ jÛ ¼ H/ NÄ B » H[ jÕ ª à Ô\ @ /K " f H ° ú r s É 2 §( £ ñ)\ ¦ 6 xK ô Ç . – K Õ : [ þ jÕ ª à Ô/ ?\ " f Hç ] ß Å X Ò è( ³F & Å Ò è\ " f ¸á Ô ! Ó) ~ Ód ½ ` ¦ 6 xô Ç . 9.5.4

m Å× D

• ` s f ç

l Z O r É ¦&

ñ aß ) ¼l _ ` s t \ ¦ 6 x Ù ¼ Ðü @Â Òé ¼ ß # o µ ÏÒ 1 t q t · §t ú ë [ ß jÕ ª à Ô H U ´s s Ù ¼ Ðü @Â Òé ¼ ß # o µ ÏÒ 1 t½ q ÉÃ + ºe .

9.6 9.6.1

@ _T Ç ËÊ S Ý: g§ ¹ Å? _T Å8 Ó ý+ Ƕ s ¥ Ã ß Å± 80386

• y á Ô Ð[ jÛ ¼ Hþ j@ / 16 K> h_ [ jÕ ª à Ô\ ¦ | 9 à ºe . • y [ jÕ ª à Ô Hþ j@ / 4 GB | cà ¨ ºe . s [ jÕ ª à Ô H` s f

ç a ) . • ` s t _ ß ¼l H 4 KBs . • ôá Ç Ô Ð[ jÛ ¼_ Ho 7 Å Ò è/ Nç B ß rß É ¼> ¿ º%

% ò Ü i ¼ Ðì r½ É + a ) . – å ** 1. á 9 Ô Ð[ jÛ ¼ 1 q& l & h Ü h ¼ Ð 6 x H [ jÕ ª à Ô[ t: þ þ j@ / 8 K> h_ [ jÕ ª à Ô – å ** 2. 9 rá É Ô Ð[ jÛ ¼ü </ NÄ B » H[ jÕ ª à Ô[ t: þ þ j@ / 8 K> h_ [ jÕ ª à Ô • ò %%

1\ i aô ' Ç&

ñ Ð H LDT (Local Descriptor Ta ble)\ Ä »t ÷ &9, %

% ò 2\ i aô ' Ç &

ñ Ð H GDT (Global Descriptor Table)\ Ä »t a ) . s X <s ^ ¦ _ y Ó ½ r8 É s à Ôs 9, : ¤& £

[ ñ jÕ ª à Ô_ l $ <ô ü Ç> \ aô ' Ç&

ñ Ð l 2 ¤ a ) . 7


c °2003, sangjin@kut.ac.kr

10.2.1

Ä M Ø4 ] G È

• Ô á Ð[ jÛ ¼ Û ¼ ‫כ‬ | cM ¨ :` s $ H# Q ` " s t t` þ [ ¦ 6 x½ Ét + Æ Ò8 ¤ô £ Ç 6 §\ £ Õ ª` s t [ të þ Û ß ¼ ‫כ‬ ô Ç .

* <* Ö = å i< K: ~ ¡q ç { ¡È 11 A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

• s\ ¦0 AK Å Òl % 3 u © \ e H` s t ü <n Û ¼ß ¼ e \ H` s t \ ¦½ ¨ì r½ Éà + ºe # Q ô Ç . s ½ ¨ r ì r É Ð: xÄ »´ òq à Ô\ ¦s 6 xô Ç .

Part III. Storage Management

– » Ä´ òq à Ô 1s s ` s t HÅ Òl % 3 u © & \ F h ÷ &# Qe H` s t e ` ¦_ p ô Ç .

10 10.1

– » Ä´ òq à Ô 0s s ` s t Hn Û ¼ß ¼\ e á Ô Ð[ jÛ ¼_ Å © Ò è/ Nç B \ ß í Ê÷ < & · t § ú H` s t e ` ¦_ p ô Ç .

V sM ê W ÄX ì sV ê

• Ô á Ð[ jÛ ¼ Å Òl % 3 u © \ & F h ÷ &# Q e t · § ú H s ` t \ ¦] H X 6 §õ £ ° ú r] É X \ Õ ª s ` t \ ¦Å Òl % 3 u © \ & F h ô Ç .

0ß 9 Ë O

• l © % 3 u © _ 1 x p C ©

â

– ÿ ·4 1. ] H X H` s t \ @ /K ` s t _ ^ s ¦` ¦ Ð Ã ¸ Ä »´ òq à Ô ³F & 0s Ù ¼ Ð cl Z m Ú

Á r ç þ é h(page fault trap)` 5 ¦µ ÏÒ 1 tô q Ç .

– á Ô ÐÕ ªÏ ` þ ¦z ´ ' H1 xî l 7 ß x7 á xá á Ô ÐÕ ªÏ þ ^ \ ¦ ¸¿ º 6 x t · § ú H . • ¸ Ó À\ ¦ % o H À Ò; 2 r É ¸À Ó µ ÏÒ 1 t q t · §Ü ú ¼ 6 x÷ &t · § ú H . • á ÔÐ Õ ªÏ \ þ " f 6 x÷ & HC \ , P o ¼à Û Ô, _ s ^ ¦õ ° ú r½ É ¨ ¸ H{ ì 9 Í& ø Ü h ¼ Ðz ´] j Ð 6 x÷ & H/ Nç B ß Ð ´ § ú r/ É N B ` ß ç ¦½ É{ + © # 6 xô Ç . • á Ô ÐÕ ªÏ _ þ { 9 Â Ò l 0 xõ p : ¤f £

ç r É _ 6 x÷ &t ú § · H

Ä â º ´ § ú .

– ÿ ·4 2. à Ôê s Á µ ÏÒ 1 t q á Ô Ð[ jÛ ¼_ PCB ¦ \ # Ð Ã ¸_ Ä »´ ò$

` í ¦ ô Ç . 7 ¤, £ Û n ¼ß ¼\ e HJ s t \ @ /ô Ç Ð Ã ¸ t á Ô Ð[ jÛ ¼_ Å © Ò è/ Nç B ` ß ¦# # Á Qè ß Ð Ã ¸ \ t ¦ ô Ç . ë ß Ê ê s á Ô Ð[ jÛ ¼ H x« á 7 Ñ a ) . – · 4 ÿ 3. á ÔY Ue ` ¦¹ Ô 1 H .

– á Ô ÐÕ ªÏ ` þ ¦z ´ ' ½ É: + Mô Çí Hç \ ß á Ô ÐÕ ªÏ þ ^ \ ¦ 9 ‫כ‬ ¹ Ð t · § ú H .

– ÿ ·4 4. n Û ¼ß ¼{ Ø 9 ¦§ ` 4 ¦s 6 x # ` s t ¦á \ ÔY Ue \ & F h ô Ç .

• á Ô ÐÕ ªÏ _ þ {  9 Òë Å ß Òl % 3 u © \ e # Q ¸z ´' s 0 x p ¸2 ¤ 3 %` ¦º Ãe H & © h

– ÿ ·4 5. n Û ¼ß ¼{ Ø 9 ¦§ s 4 7 x« á Ñ÷ & á Ô Ð[ j ¼_ Û ? / Ò_ s ^ ¦õ ` s t _ s ^ ¦` ¦Ã º&

ñ Ç ô .

– á Ô ÐÕ ªÏ þ r É 8s Ó © to ü & Å h Òl % 3 u © ß ¼ l \ ] jô Ç` ¦~ Ît à · § ú H .

– ÿ ·4 6. ` s t Êà < Ôê ` Á ¦µ ÏÒ 1 tr q "

§ î

î Q\ # ¦ r à º' ô Ç .

– y á Ô ÐÕ ªÏ s þ h & r/ É Nç B ` ß ¦ t Ù ¼ Ð1 x l r \ # Qá Ô ÐÕ ªÏ ` þ ¦Å Òl % 3 u © \ & F h Éà + ½ ºe .

• K 'Ê Á³ ÀÄ ©Z cl b : á Ô Ð[ jÛ ¼ % 6 §z £ ´ ' | cM ¨ :Å Ò % l 3 u © \ ) ` s t \ O H I © Ðr H~ Ód ½ .

– á Ô ÐÕ ªÏ ` þ ¦& F h HX < o H{ 9 Ø ¦§ q 4 6 x ¦ `× ¦{ 9 à ºe .

– íl \ H` s t Ês < Å Òµ ÏÒ 1 tô q Ç .

• l © % 3 u © H³ ÀÄ ©c Zl (demand paging) l b ` O Z ¦s 6 x # ½ ¨ ³ô & Ç . sM :[ jÕ ª _ s õ ½ Ë + # x 6½ ÉÃ + ºe .

10.2

• ô" Ç

§ î

# î Q\ ¦z ´' ô Ç õ Ð# Q` s t Ês < ÏÒ 1 µ t½ q ÉÃ + ºe . t ë ß Ð Ã ¸_ t % $ i

(locality of í reference) " ¶o é M :ë H\ s

Ä â º HF Gy × ¼Ó t ü . • ‫כ‬ ¹½ ¨` s f

` ç ¦0 Aô Ç × ¼J ?# Qt " ¶ é

¿ ~ @ _T Ç Ë S

– `s f

_ ç s ^ ¦\ @ /ô Çt ¶ " é: TLB, Ä »´ òq Ô, à Ð ñq à Ô

• ‫כ‬ ¹½ ¨` s f ç

rÛ É ¼ i ‫כ‬ ç

õ ` s f

` ç ¦ ½ Ë + # 6 xô Ç .

– Ð ¸l % 3 u © : n Û ¼ß ¼_ { 9  Òì r` ¦Û ¼ / ‫כ‬ N B Ü ß ç ¼ Ð 6 xô Ç .

• ‫כ‬ ¹½ ¨ ` s f

\ ç " f H á Ô Ð[ jÛ ¼ ^ \ ¦ Û ¼ ‫כ‬ t · § ú ¦, m ¥ >â o « ( J x(lazy swapper)\ ¦ 6 xô Ç . s Û ¼ ( ‫כ‬ H` s t 9‫כ‬ ¹+ ½ É

Ä â º\ ë Å ß Òl % 3 u © \ & F h ô Ç . ` s f ç

\ " f HÛ ¼ ( ‫כ‬ H6 x# Q@ / \ Z cl $ (pager) H6 x# Q\ ¦ 6 xô Ç .

• `s f

\ ç " f H` s t Ês < µ ÏÒ 1 t q Õ ª` s \ t ¦ n Û ¼ß ¼\ " f Å Òl % 3 u © Ð ` l ¦ ` s t Ê` < ¦{ Ü 9 ¼ "

§ î

# î Q\ ¦ r z ´' K ô Ç . 1


– 9 { ì Í& ø h

Ä â º\ H` s t Ê` < ¦{ Ü 9 ¼

§ î "

# î Q\ ¦ r z ´' H ‫כ‬ rH É ë H] j ÷ & t · § ú H .

10.3

z ³ º: g­ t V Ë R

10.3.1

Copy-on-Write

• Ô á ÐÕ ªÏ ` þ ¦% 6 §z £ ´' n Û ¼ß ¼\ e Hz ´' p s t \ ¦s 6 x # á Ô Ð[ jÛ ¼\ ¦Ò t$ q

ô í Ç .

– ô" Ç

§ î

# î Q # Q0 Au _ ? /6 x` ¦

â H

Ä â º\ Hç é ß ß t · § ú . : ¤y £ ô Ç"

§ î

# î Q ¿ º> hs _ © r` É s t \ ¦] X H H

Ä â º \ H"

§ î

# î Q\ ¦ç é ß y ß r z ´ ' ½ Éà + º\ ` O ¦ à ºe . s \ ‫כ‬ @ /ô Ç¿ º t K Õ s þ e .

• z' ´ × æ á Ô Ð[ jÛ ¼ fork() "

§ î

` î ¦ 6 x # á d Ô Ð[ jÛ ¼\ ¦Ò t$ q

í n Û ¼ß ¼{ Ø 9 ¦§ s 4 ‫כ‬ 9 ¹ O \ . fork()\ _ ô Ç d á Ô Ð[ jÛ ¼_ Ò t$ q

\ í @ / " K f H 6 §õ £ ° ú r~ É ÓZ ½ Ü O ¼ Ð$

0 í x` p ¦ Ó ¾ r © ~ ´ ºe à .

• ç ( ¡ 1. " «

§ î

# î QÃ º ' \ ‫כ‬ 9 ¹ô Ç ¸ H` t s \ ¦ p o # s [ t` þ ¦ Å Òl % 3 u © \ & F h ô Ç 6 §\ £ "

§ î

# î Q\ ¦ Ã º' Ç ô .

– Ð : x d á Ô Ð[ jÛ ¼ H Ð exec() r Û ¼% 7 ñØ ¦ H

Ä â º ´ § ú . s

Ä â º\ Â Ò ¸á Ô Ð[ jÛ ¼_ Å Ò è/ Nç B ` ß ¦4 ¤ H ‫כ‬ rz É q © s . – s M : copy-on-write l Z ` O ¦ 6 x½ Éà + ºe . íl \ d õ Â Ò ¸á Ô Ð[ jÛ ¼ H` s t \ ¦ ¸¿ º/ NÄ B »ô Ç . ô Çá Ô Ð[ jÛ ¼ ` s t _ ? / x` 6 ¦

â Õ ªM :4 ¤ s À Ò# Q . " f

â H` s t ë 4 ß ¤ ÷ & ¦ Qt H ¸¿ º/ NÄ B » a ) .

• ç ( ¡ 2. e « r Y Ut Û ¼' ` ¦s 6 x # { 9 & r ¼ h Ü Ð õ H0 Au [ t_ þ l r° > ‫`כ‬ ú ¦ Ð aô ' Ç . `s t Ês < µ ÏÒ 1 t q l r > ‫`כ‬ ú ° ¦4 ¤" ¶ô é Ç 6 §\ £ r "

§ î

# î Q\ ¦Ã º ô ' Ç . 10.2.2

~ ¿ @ _T Ë Ç S8 ýV Ë R « Ö 10.3.2

• ‫כ‬ ¹½ ¨` s f

\ ç " f¨

ç î H] X H rç ß

W M ÄX ì sV ê - V s

ê Ç ø m

• nÛ ¼ß ¼\ e H

{ ` 9 ¦] H X ½ ÉM + : n Û ¼ß ¼{ 9 ¦§ Ø s 4 ‫כ‬ 9 ¹ . s

{ 9 \ ` O ¦ Ø Ô> l AK 0

{ 9 ` ¦% 6 §] £ H X ½ ÉM + :\ H` s t ß ¼l ë ß u_ p X <s ' l © % 3 u © Ð& F h ÷ & ¦, Õ ª §Â £ 6 Ò' HÅ Òl % 3 u © ] X H` ¦: xK

{ ` 9 ¦] X H > a ) . s ~ Ód ½ ` ¦l % 3 u © -

© { l 9 s O Z ô Ç .

(1 − p) × ma + p × pft # l " f p(0 ≤ p ≤ 1) H` s t Ês < { 9 # Q± S ú X ¦s Ò ¦, ma H Å Òl % 3 u © ] H X r ç s ß 9, pft H ` s t Ê` < ¦% o HX <è ‫כ‬ ¹÷ & Hr ç s ß . Ð: x ma H 10\ " f 200 ns &

ñ ¸ è‫כ‬ ¹ a ) . • ` s t Ê` < ¦% o Hõ &

ñ rß É ¼> 6 §[ £ j t ‫כ‬ ¹ è н ¨$

í a ) .

10.4

_T @ U w = k

• 10 ` s t ß ¼l _ á Ô Ð[ jÛ ¼ z ´] j5` s t ë ß 6 x ‫כ‬ ¹½ ¨` s f

l ç Z O rn É Û ¼ß ¼{ Ø 9 ¦§ ` 4 ¦ ¦{ × Ã 9 ºe ¦, × æá Ô ÐÕ ªA b ç

_ &

ñ ¸\ ¦Z }{ Ã 9 º e .

– ` s t Ê < ' X à O Ô_ % o : µs é 0 ß As . – n Û ¼ß ¼\ e H` s t \ ¦Å Òl % 3 u © Ð& h F : n Û ¼ß ¼{ Ø 9 ¦§ \ 4 è‫כ‬ ¹÷ & Hr ç ß rÅ É Òl % 3 u © ] H X r ç \ ß q K @ © /& Ü h ¼ ÐB Ä º ß ¼ . @ /| Ì 25 ms & Ä

ñ ¸ è‫כ‬ ¹ a ) .

• rÛ ¼% _ 7 Å Òl % 3 u © 40 á ÔY Ue Ü ¼ н ¨$

÷ í &# Q Ü e ¼ s ü <° ú rá É Ô Ð[ jÛ ¼\ ¦ 8> h\ ¦#

î ' Ü ¼ ÐÃ º ½ ' ÉÃ + ºe .

– ×é æ ß aá ) Ô Ð[ jÛ ¼ _F > h: n Û ¼ß ¼{ 9 Ø ¦§ M 4 : H\ ë s á Ô Ð[ jÛ ¼ H@ /l Ç © Ð` . s M : CPU H rá É Ô Ð[ jÛ ¼\ ¦@ / Û ¼H × ¦ # z ´' ô Ç . Õ ª QÙ ¼ Ðz ´] j ] jF > h| ct ¨ H\ V8 ¤ £ l j µ[ Ë t þ .

• × æá Ô ÐÕ ªA b

_ ç &

ñ ¸\ ¦Z }s á ÔY Ue / Nç B ß Â s Ò7 ¤½ á Éà + ºe . ¢ ¸ô ÇÅ Òl % 3 u © _ ¸ Há Ô Ue Y ` ¦ 6 x á Ô Ð[ jÛ ¼\ > ½ É{ + K © × ¦Ã º\ O . • `s t Ês < µ ÏÒ 1 t q % ` i ¦M :` s t \ ¦Ã º6 x½ É + ÔY á Ue s \ Ü O ¼ î r%

^ ò ] j H 6 §× £ æô Ç t ~ Ó ½ ` O Z ¦ × þ # s \ ¦K K ô Ç .

@ /l Ç ©\ l ; 2r ç ` ß ¦] jü @ ` s t Ê < ¦% ` o H ^ rç ß rn É Û ¼ß ¼{ Ø 9 ¦§ \ 4 q Y V Ç ô . " f` s t ÊÒ < ¦s 0.1%ë ÷ ß &# Q ¸` s t Ês < \ ` O ¦M :\ q K 250 C &

ñ ¸Ö ¼ 9 ¦^ ¦Ã ºe .

– Ô á Ð[ jÛ ¼7 x« á Ñ: ` s f ç

r É 6 x \ > È Ò"

î > ] j/ N÷ B &# Q Ù ¼ Ðs ‫כ‬ r É × 0 þ x p Ç~ ô ÓZ ½ s O m . – á Ô Ð[ jÛ ¼Û ¼ ‫כ‬ Ö ©: á Ô Ð[ jÛ ¼_ ¸ H` s \ t ¦n Û ¼ß ¼ ÐÛ ¼ ‫כ‬ Ö © # × æá Ô ÐÕ ª b A

_ ç &

ñ ¸\ ¦× ¦ . M : Ð H 9 ‫כ‬ ¹ô Ç~ ÓZ ½ O s . – Z cl m ¬ ¨W (page replacement): & F h ÷ &# Q e Hl r` > s t \ ¦D h` s t Ð §^ ô Ç .

• Û ¼ / ‫כ‬ Nç B \ ß @ /ô Ç{ 9 Ø ¦§ 4 rn É Û ¼ß ¼? /\ r/ É N B Ü ß ç ¼ РÒ' _ { 9 Ø ¦§ 4 Ð @ © /& Ü h ¼ Ð Ø Ô . " fá Ô ÐÕ ªÏ ` þ ¦z ´' ½ ÉM + :á Ô ÐÕ ªÏ ` þ ¦ ¸¿ º Û ¼ / ‫כ‬ Nç B Ü ß ¼ Ð` | 6 §\ £ Û ¼ / ‫כ‬ Nç B \ ß " f` s ç f

s { 9 # Q ¸2 ¤ $

0 í x` p ¦ Ó ¾ r © ~ ´Ã ºe . 2


10.4.1

M Ä ØU ] s0 ê É n

• ` s t Ês < µ ÏÒ 1 t½ q ÉM + :` s t §^ ] X

7

0

1

2

7

7

7

0

0 1

– · 4 ÿ 1. n Û ¼ß ¼\ " f` s t _ 0 Au \ ¦¹ Ô 1 H . – · 4 ÿ 2. á ÔY Ue ` ¦¹ Ô 1 H .

3

0

4

2

3

0

2

2

2

4

4

4

0

3

3

3

2

2

1

1

0

0

0

3

3

2

1

2

0

0

2

1

3

3

0

1

7

0

1

0

7

7

7

1

1

0

0

2

2

2

1

<Õ ªa > 10.1> FIFO ` Ë s t §^ · ú ¦o 7 §_ £ \ V

• eÜ ¼ , l \ `s t \ ¦& F h ô Ç . • \ ¼ O Ü , `s t §^ · ú ¦o 7 §` £ ¦s 6 x # B Ò tá q ÔY Ue ` ¦ × ô þ Ç . Õ ª 6 § £ BÒ t á q ÔY Ue \ e H ` s t \ ¦ n Û ¼ß ¼ æ \ ¼ ¦, á ÔY Ue \ D h` s t \ ¦& F h ô Ç .

• s © K l ~ 1 ¦, ½ ¨ ³ & l / 'î r~ ÓZ ½ s O . • © ¸A \ [ t# þ Q r` : s t íl oÀ Ò ;Ü 2 ¼ Ð% 6 §\ £ ë ß 6 x÷ & ¦ 8s © 6 x÷ &t · § ú H ‫כ‬ Ã 9 { ºe t ë ß íl \ íl o a ) Å Ò 6 x a ) Ã º e H` s t { Ã 9 ºe .

– · 4 ÿ 3. ` s t _s ^ ¦õ á ÔY Ue _ s ^ ¦` ¦

ô â Ç .

• Belady_ ¸í H: á ÔY Ue à º 7 x £ ` s t ʵ < ÏÒ 1 tà q º Hy èK &

ñ s © . Õ ª Q FIFO Ód ½ ~ \ " f H7 x £ H

Ä â º ¸e .

– · 4 ÿ 4. á Ô Ð[ jÛ ¼\ ¦F > hô Ç . • á ÔY Ue s \ Ü O ¼ Ó ½ ¿ © º _ n Û ¼ß ¼{ Ø 9 ¦§ 4 s ‫כ‬ 9 ¹ . n Û ¼ß ¼{ Ø 9 ¦§ 4 r£ É >¿ o j R ç Ã(modify bit, dirty bit)\ ¦s 6 x # × ¦{ 9 à ºe . s ‫כ‬ r É × ¼J ?# Q& Ü h ¼Ð ½ ¨ ³÷ & &9,

s â \ O H` s t BÒ t q Ð × ÷ þ & s` s t \ ¦n Û ¼ß ¼\ j t þ 9 ‫כ‬ ¹ \ O . é , n ß Û ¼ß ¼\ s ` s t _ 4 ¤ rs : Ü O \ ¼

# â  Òü < © a\ ' s O n Û ¼ß ¼\ + ô Ç . ¢ ¸ô Çz ´ ' 6 x` s t HÁ º ¸| n Û ¼ß ¼ Ð r ` U ´ 9 ‫כ‬ ¹ \ O .

OPT @ _T U w = k° ow P ¨ Ö

10.4.3

• OPT (OPTimal) • © ¸A 1 xî l ß 6 x÷ &t · §` ú ¦` s t BÒ t q Ð × þ a ) . • \ V) ` s t á ÔY Ue à º=3

• ] j/ N÷ B &# Q H¿ º t ú · ¦o 7 § £ – è «Q cÑ T Ï »× Ò $ N Ó ± §h ¤ ¸(frame-allocation alæ gorithm): ô Çá Ô Ð[ jÛ ¼\ > ½ É{ + ½ © Éá + ÔY Ue _ Ã º\ ¦ &

ñ H· ú ¦o 7 § £

7

0

1

2

7

7

7

2

2

2

2

2

7

0

0

0

0

4

0

0

0

1

1

3

3

3

1

1

– Z cl m ¬ ¨W N Ó ± §h ¤ ¸(page-replacement alæ gorithm): á ÔY Ue s \ ` O ¦M : BÒ t q \ ¦ þ × H· ú ¦o 7 § £

0

3

0

4

2

3

0

3

2

1

2

0

1

7

0

1

<Õ ªa > 10.2> OPT ` Ë s t §^ · ú ¦o 7 §_ £ \ V

• l r& : Ü h ¼ Ð ± © ú r` É s t ÊÒ < ¦` ¦] j/ N B H` s t §^ · ú ¦o 7 §` £ ¦ 6 xK ô Ç .

• ` s t ÊÃ < º\ ¦s s × © ¦{ Ã 9 º\ O . • ë H] j& : p h A _ Ð Ã ¸\ ¦\ V8 ¤ £ l # Q§ > .

• · ú ¦o 7 §` £ ¦¨

½ î ÉM + :{ 9 º _ Å Òl % 3 u © Ð Ã ¸ \ @ /K ` s t Êà < º\ ¦> í ß # q §ô Ç . { 9 _ º Å Òl % 3 u © Ð Ã ¸\ ¦½ Ô Ç ¿% K á

(reference ~ string)s ô Ç .

LRU @ _T U w = k° ow P ¨ Ö

10.4.4

• LRU (Least-Recently Used)

• Ð Ã ¸ë H \ _ P \ V

• © ¸A \ Ð Ã ¸ô Ç` s t BÒ t q Ð × þ a ) .

7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

• \ V) ` s t á ÔY Ue à º=3

# l " f: ¤& £

à ñ º Hà Р¸ a ) `s t ñs . • ` s t Êà < º\ ¦> í ß l 0 AK " f Há Ô Ð[ jÛ ¼ \ > ½ É{ + © aá ) ÔY Ue à º\ ¦· ú ô Ç . á ÔY Ue à º ´ §` ú ¦Ã º2 ¤ ʵ < ÏÒ 1 tà q º H& # h Q . 10.4.2

0

7

0

1

2

7

7

7

2

0

0

0

1

1

0

3

0

4

2

3

0

3

2

1

2

0

1

7

2

4

4

4

0

1

1

1

0

0

0

3

3

3

0

0

3

3

2

2

2

2

2

7

0

FIFO @ _T U w = k° ow P ¨ Ö <Õ ªa > 10.3> LRU ` Ë s t §^ · ú ¦o 7 §_ £ \ V

• FIFO (First-In-First-Out) • © ¸A \ [ t# þ Q r` : s t BÒ t q Ð × þ a ) .

• V © o , 6 x÷ & Hl Z s O .

• \ V) ` s t á ÔY Ue à º=3

• LRU ½ ¨ ³~ & ÓZ ½ O 3

1


î r' : y ` s t _ s ^ ¦_ Ó ½ _ 9 × ¼\ ¦Æ Ò # t } Ü ¼ Ð] H X ar ) ç ß ¦ ` p · . Ð: x r É Ho 7 9 t! þ s 3

î r' ¦ \ 6 xô Ç . s ~ ÓZ ½ O r É §^ 9 ‫כ‬ ¹½ ÉM + : _ s ^ ¦ ^ \ ¦ Ò oK 9, ` s t ] H X | c: ¨ M ` s t _ s ^ ¦` ¦Ì t q K ô Ç .

• em ¬ ·ø £ 5 > U HÌ ÁÐ M Ó N ± §h ¤ ¸: s æ · ú ¦o 7 § £ r] É X H% i \ ¦Ä »t Hq à Ô\ ¦ ¸ 6 x t · § ú ¦ Ð Ã ¸q à Ôë ß 6 xô Ç . r´ É ú Ð9 t! þ · 3 ú ¦o §s £ 7 ô Ç . – %6 §\ £ ` s t \ ¦] H X Ð Ã ¸q à Ô 1s & ÷ ¦, Å Òl s ` ‫כ‬ ¦ r 0Ü ¼ Ð Ë ¨# Q r ï .

– Û ¼× : ` þ s t ñ н ¨$

í aÛ ) ¼× ` þ ¦s 6 xô Ç . Û ¼× d þ v\ H þ © jH \ ] H X ô Ç` s t \ ¦Ä »t ¦, Û ¼× þ { \ H §^ ½ É` + s t \ ¦Ä »t ô Ç . s \ ¦0 AK " f HÛ ¼× × þ æç \ ß e H` s t \ ¦¼ Û× d þ vÜ ¼ Ð` Ù ¼ Ð s × æ o Û ¼à Ô\ ¦s 6 x # ½ ¨ ³ô & Ç . s > O X Ì t q q 6 xs

î r' Ð 8´ §s ú è‫כ‬ ¹÷ &t ë ß Ò o½ É + ‫כ‬ 9 ¹ \ O . Ð Ã ¸. Õ ª > 10.4 Ë a 4

7

0

7

1

0

1

2

1

2

7

2

1

2

7

1

0

1

1

2

1

2

– s· ú ¦o 7 § £ rí É H¨ ! 8 Q( \ ¦s 6 x # ½ ¨ ³ & Éà + ½ ºe . – § ^ ½ É` + s t Hí H¨ ! 8 Q( \ " fq à Ô° ‫כ‬s ú 0 s ‫כ‬ × þ a ) . s M :¹ Ô` 1 ¦M : t q à Ô ‫כ‬s ú ° 1 ‫כ‬ r 0Ü É ¼ Ð õ H . – h D` s t Hí H¨ ! 8 Q( \ §^ ÷ & H` s t Au 0 \ ¶ { ú ô 9 Ç . – í¨ H ! 8 Q( \ e H ¸ H` s t _ q à Ô° ‫כ‬s ú 1s s · ú ¦o 7 § £ r FIFOü É <° ú .

0

0

0

0

0

2

0

2

1

1

0

1

• OPTü < LRU\ " f H Belady_ ¸í H ³ & s © µ ÏÒ 1 t q t · § ú H .

1

7

0

7

• × ¼J ?# Qt ¶ " és ì Í× ø ¼r 9 ‫כ‬ ¹ . èá Ôà ÔJ ?# Q Ð_ s ^ ¦_ Ì t q ` ¦ Å Òl % 3 u © ] X H ´ § ú rr É ç s ß è‫כ‬ ¹ a ) .

0

3

1

4

1

5

1

5

4

0

7

7

1

0

0

0

0

1

7

7

0

0

7

7

7

7

7

0

4

4

4

4

4

4

4

4

4

4

<Õ ªa > 10.4> Û Ë ¼× ` þ ¦ s6 xô Ç LRU ½ ¨ ³ &

10.4.5

R ¿ <± É LRU @ n _T U w = k° ow P ¨ Ö

(a) Ò o

• LRU\ ¦] j/ N B l 0 Aô ÇØ æì rô Ç × ¼J ?# Qt " ¶s é O \ H

Ä â º\ 6 x H lZ s O .

(b) Ò oÊ ê

<Õ ªa > 10.5> 9 Ë t! þ · 3 ú ¦o 7 § £

• @ / Òì r_ ( É Ó' H½ Ô Ç ¿j ç Ã(reference bit)\ ¦] j / Nô B Ç . # Q ` " s t Ð Ã ¸÷ & 1 xÜ l ¼ ÐK { © ` s t _ s ^ ¦` ¦Ì t q # ï r . s ` ‫כ‬ ¦s 6 x <H X Ç` t · ¦o §` £ j/ # LRUü ] ô s §^ ú 7 ¦] N B Éà + ½ ºe .

• * È ×Û S< Ö ³ Ó 7 N ± §h ¤ ¸: s æ · ú ¦o 7 § £ r É Ð Ã ¸q à Ô < ü

q â à Ô\ ¦ Êa < 6 xô Ç .

• Í Ù ½ Ô Ç ¿j ç ÃÓ ± N §h ¤ ¸: y æ ` s t Ð Ã ¸q à Ôü @\ Æ Ò Ð8q à Ô\ ¦s 6 x ¦, s ` ‫כ‬ ¦Å Òl & Ü h ¼ Ð ¸ rA É á ¤ Ho 7 s 1 x` l ¦ # , t è 8Å ß Òl 1 x l y ß î ` s t _ ] H X #  Ò\ ¦Ä »t H~ ÓZ ½ s O . \ V\ ¦[ t# þ Q] H X % i q à Ô[ t_ þ ° ‫כ‬s ú 0000 0000s 8Å Òl 1 xî l ô ß Ç ¸] X Hs î ß a` ) s t \ ¦ ? /9, ì Í@ ø / Ðs ° ‫כ‬s ú 1111 1111s t è 8Å ß Òl 1 xî l > ß 5 q] Å H X s ÷ &% 3 H ` ‫כ‬ ¦ p · . ¢ ¸ô Ç ° ‫כ‬s ú 1100 0100 ` s t H 0111 0111 ` s t Ð 8þ j H\ ] X H÷ &% 6 3 §` £ ¦ p · .

• ( o© Û ¼ 1. (0,0): þ j H\ 6 x÷ &t ¸· § ú ¦

â ¸÷ &t · § ú r` É s t • ( o© Û ¼ 2. (0,1): þ j H\ 6 x÷ &t ¸· § ú ¤ t ë ß

÷ â &# Qe H` s t , §^ \ ¦ n Û ¼ß ¼\ + ô Ç . • ( o© Û ¼ 3. (1,0): þ j H\ 6 x÷ &% t 3 ë ß

÷ â &t · § ú r` É s t • ( o© Û ¼ 4. (1,1): þ j H\ 6 x÷ &% 3 ¦

â a` ) s t

– s· ú ¦o 7 § £ r` É s t \ ¦W 1> h_ 9 tA þ Û ¼ Ð rÀ ì Óô Ç .

– ± ú rì É rÀ Ó\ 5 qô Å Ç` s t \ ¦ $ §^ ô Ç .

• X ]H % i \ ¦Ä »t Hq à Ô_ à º H ½ ª Éà + ºe . F Gé & ß h

º â Äs à º\ ¦ 0 t × ¦{ à 9 ºe .

– Ò or ç s ß U ´# Q . 4


10.4.6

4 ¤M m@ _T U w = k° ow P ¨ Ö

10.5.1

• Ð Ã ¸ a ) rà º\ ¦l ì Í ø Hú · ¦o 7 §s £ .

• Ô á Ð[ jÛ ¼ ‫כ‬ 9 ¹ô Çþ j èô Ç_ á ÔY Ue à ºs ` © ¦ á y Ô Ð[ jÛ ¼\ > ½ É{ + K © Å Ò# Q ô Ç .

• LFU(Least-Frequently-Used) ` s t §^ · ú ¦o 7 §: £ Ð Ã ¸ & © h r É `s t \ ¦ §^ ô Ç .

• j þ$ á ÔY Ue à º H "

§ î

# î Q | ½ 9 Ë ½ + ¨ ¸(instruction set architecture)\ _ K &

_ ñ a ) . _ "

§ î

# î Q Ð Ã ¸ 0 xô p Ç ¸ H` s t \ ¦Ã º6 x½ Éà + ºe ` ¦ë ß u_ p á ÔY Ue rþ É j èô Ç] j/ N÷ B &# Q ô Ç .

– ë H] j& h • í l \ ´ §s ú 6 x÷ &% t 3 ë ß 8s © x÷ 6 & t · § ú r ` É s t H > 5 q Å §^ ÷ &t § ú · H . • % 6 §Ü £ ¼ Ð §^ ÷ &# Q [ t# þ Q r ` : s t H Ð §^ | cº ¨ Ãe .

• £ 7, " ¤

§ î

# î Q 0 Au ô Ç` s t ü <Õ ª"

§ î

# î Q Ð Ã ¸ H` s t H1 xr l \ à º6 x½ Éà + ºe # Q ô Ç . s ‫כ‬ r` É s t Ês < µ ÏÒ 1 t q Õ ª` s t \ ¦Å Òl 3 % u © \ & F h ô Ç 6 §\ £ "

§ î

# î Q\ ¦ r z ´' K l M :ë Hs . ¢ ¸ô Çç ] ß Å X Ò èt &

ñ ¸× ¼\ ¦ x 6 ` s t 0 ¸ Ó ½ ½ © É{ + ÷ © &# Qe # Q ô Ç .

– Í ' P :ë H] j& h rÅ É Òl & Ü h ¼ Ð rà º\ ¦y è r & F G4 ¤½ Éà + ºe . • MFU(Most-Frequently-Used) ` s t §^ · ú ¦o 7 §: £ Ð Ã ¸ ´ © § ú r` É s t \ ¦ §^ ô Ç . Ð Ã ¸ & h r É { ‫כ‬ à 9 º2 ¤þ j H\ [ t# þ Q r : Ü ‫כ‬ ¼ Ðç Å ß Ò H ÓZ ½ ~ s O .

10.5.2

• Ô áY Ue _ Ã º: n (î r%

^ ò ] jü < á ÔY Ue Û ¦\ ½ É{ + © aá ) ÔY Ue [ t þ r] É jü @ô Çà º) • C ! T »$ Ò ×(equal allocation) Ó N ± §h ¤ ¸: y æ á Ô Ð[ j ¼\ Û > n/m > h_ á ÔY Ue ` ¦½ É{ + © H~ ÓZ ½ O

@ _T U ! a( a ˰ S ow P ¨ Ö

• ` s t §^ · ú ¦o 7 §õ £ Êa < 6 x÷ & H# Ql s O Z e .

• jQ d T »× Ò $ (proportional allocation) Ó N ± §h ¤ ¸: y æ Ô á Ð[ jÛ ¼_ ß ¼l \ q Y V # ½ É{ + © H~ ÓZ ½ O

• á ÔY Ue Û ¦_ Ä »t

– si : á Ô Ð[ jÛ ¼ Pi _ ß ¼l P – S = si

– r Û ¼% 7 r É Ð: x ¦&

ñ aà ) º_ á ÔY Ue ` ¦ Ó ½ Ä © »t ô Ç .

– yá Ô Ð[ jÛ ¼ Pi \ > si /S × n > h_ á ÔY Ue ¦½ ` É{ + ô © Ç . # l " f n rz É rá É ÔY Ue à ºs .

– ` s t Ês < µ ÏÒ 1 t q §^ · ú ¦o 7 §\ £ BÒ t q \ ¦ × ô þ Ç . – D h` s t \ ¦ BÒ t q á ÔY Ue \ & F h t ¦Ä º á ÔY Ue Û ¦\ 5 qô Å Çá ÔY Ue \ F ô Ç . s ‫כ‬ r É `s t ʵ < ÏÒ 1 ts q Ê ê Ø Ô> Ô á Ð[ jÛ ¼ \F ¦ à º' l 0 Aô Ç s .

· § ú h & Ð ‫כ‬

– ü Ó t ry : á Ô Ð[ jÛ ¼\ > þ j$ á ÔY Ue à º ½ É + ÷ © { & ¸2 ¤ ¸] K X ô Ç . – V \) 62 > h_ á ÔY Ue s z e ` ¦M : 10 ` s ü t < 127 ` s t н ¨$

í a¿ ) º> h_ á Ô Ð[ j ¼ e Û Ü ¼ y y \ 4ü < 57 > h_ á ÔY Ue ` ¦ É{ + ½ K © ï r .

– BÒ t q á ÔY Ue s nÛ ¼ß ¼\ æ ¼# t s á Ô Y Ue ` ¦ á ÔY Ue Û ¦\ Æ Ò ô Ç .

• º ¿½ É{ + · © ú ¦o 7 § £ ¸¿ º × æá Ô ÐÕ ªA b ç

_ &

ñ ¸ \ y á Ô Ð[ jÛ ¼\ > ½ É{ + ÷ © & Há ÔY Ue _ Ã º H ô Ç .

– ¢ ¸ô Ç á ÔY Ue Û ¦\ 5 qô Å Çy á ÔY Ue \ # Q " ` s t & F h ÷ &# Qe Ht \ ¦Ä »t ` s t §^ M :s ` ‫כ‬ ¦ ¸6 Ö x½ Éà + ºe .

• Á ˤ >' n K De ð 5 N Ó ± §h ¤ ¸: y æ á Ô Ð[ jÛ ¼_ Ä º í H A\ 0 q Y V # ½ É{ + © H~ ÓZ ½ Ü O ¼ Ð, Ä º í H0 A } Z rá É Ô Ð[ jÛ ¼ H Ð ´ § ú rá É ÔY Ue ` ¦½ É{ + K © Å Ò Q # Ø Ô> à º' | cà ¨ ºe ¸2 ¤K ï r .

` â s t 3 q2 l ¤Ä »t –

â a` ) s t _3 q2 l ¤` ¦Ä »t ¦, ` s f

ç u © Ä »Ê ë I © s

` â s t \ ¦ × þ # n Û ¼ß ¼\ æ ¼ ¦,

q â à Ô\ ¦F [ O

ô ñ & Ç .

10.5.3

– s ~ ÓZ ½ ` O ¦ 6 x §^ ½ É` + s t Ó ½ ©

÷ â &t · § ú rL É : M F ô` Ç s t { S 9 Ò X ¦` ¦Z } # ï r .

10.5

£R ¶ s° ê ow P ¨ Ö

• á Ô Ð[ jÛ ¼_ Ã º: m

• ¿ º~ ÓZ ½ O ¸¿ º _ 6 x÷ &t ú § · H . 10.4.7

$ : [³ 7 _Æ È k ¤

ÑW Ë ° ÄÊ

ÝU W Ķ

£R s ê

• × æá Ô Ð[ jÛ ¼ rF > ½ ÉM + :` s t §^ · ú ¦o §_ £ 7 ì rÀ Ó – Ù ¬ ] ¨W Ó N ± §h ¤ ¸(global replacement alæ gorithm): rá É Ô Ð[ jÛ ¼_ ` s t BÒ t q Ð × | þ cà ¨ ºe H· ú ¦o 7 § £

7 ³ _Æ k Èý 8¶ £R s ê

• î% r

^ ò ] j 9 ‫כ‬ ¹ô Çë ß u` p ¦] jü @ô Ç Qt á ÔY U e r É ¸¿ º 6 x á Ô Ð[ jÛ ¼ \> ½ É{ + © a ) . s × æ 9 { Â Ò H Ó ½ © á ÔY Ue s ÷ & ¸2 ¤Ä »t ½ Éà + ºe .

– m ¬ ] ¨W Ó N ± §h ¤ ¸(local replacement algoæ rithm): _ ` s t ë ß BÒ t q Ð × | þ c ¨ ºe à H· ú ¦o 7 § £ 5


F% g i §^ HÄ º í H0 A Z } rá É Ô Ð[ jÛ ¼\ > rá É Ô Ð[ jÛ ¼\ ¦ BÒ t q " f½ É{ + © aá ) ÔY Ue à º\ ¦ Z t þ 9× ¦Ã ºe .

2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 4 4 3 4 3 4 4 4 1 3 2 3 4

WS(t1)={1,2,5,6,7}

F% g i §^ _ ë H] j Há Ô Ð[ jÛ ¼ _ ` s t ÊÒ < ¦` ¦] j# Q½ ÉÃ + º\ O H s ‫כ‬ . 7 ¤, á £ Ô Ð[ j Û ¼_ $

0 í xs p ü @Â Ò S © \ ! ½ ÉÃ + ºe .

7 ­ _Ë Å S

• \ | O ½ 9 Ë + ¸4 q_ S ½ ¨ ³ & – î% r

^ ò ] j Hy á Ô Ð[ jÛ ¼_ \ | O ½ 9 Ë` + ¦y r # y á Ô Ð[ jÛ ¼_ ³F & \ | O 9 ½ Ë` + ¦Ã º x½ 6 Éà + ºe HØ æì rô Çà º_ á ÔY Ue ` ¦y á Ô Ð jÛ [ ¼\ > ½ É{ + K © ï r .

• á Ô Ð[ jÛ ¼\ ½ É{ + © aá ) ÔY Ue à º ‫כ‬ 9 ¹ô Çþ j è_ á ÔY Ue à ºs Ð? / 9 ¼ ÛY Ud

s ç µ ÏÒ 1 tô q Ç .

– h Dá Ô Ð[ jÛ ¼\ ¦Ã º6 x½ Éë + ß p u_ á ÔY Ue s rF > D há Ô Ð[ jÛ ¼\ ¦z ´' K Å Ò9, ì Í@ ø / Ðy á Ô Ð[ jÛ ¼_ \ | O 9 ½ Ëß + ¼l _ 8 x½ ú Ës + 6 x 0 xô p Çá ÔY Ue à º\ ¦ íõ _ Ô á Ð[ jÛ ¼\ ¦{ r 9 × æé ô ß Ç .

­ 7 _Ë Å S8 ýÌ Rß ¦ Å Ã

• × æá Ô ÐÕ ªA b

_ ç &

ñ ¸ ± Ü ú ¼ CPU 6 x´ ò ¦s Ö b # Q . s \ ¦F G4 ¤ l 0 AK á Ô Ð[ jÛ ¼_ Ã º\ ¦Z to þ 6 x´ òÖ ¦ r7 É x ô £ Ç . Õ ª Q # QÖ ¼

ñ & ¸\ ¦ Ü Å ¼ Û ¼Y Ud

µ ç ÏÒ 1 t q # ¸y 9 6 x´ ò ¦s Ö b # Q . s

Ä â º\ H r × æá Ô ÐÕ ªA ç b

_ &

ñ ¸\ ¦× ¦# ô Ç .

– s~ ÓZ ½ _ O © H# Q 9¹ § ¡ ry É á Ô Ð[ jÛ ¼_ \ | O 9 ½ Ë` + ¦Ä »t H s ‫כ‬ . Ð Ã ¸% i \ ¦ 6 s x # Ä »t ½ Éà + ºe . 10.6.3

• t % i §^ · ú ¦o 7 §` £ ¦ 6 x Û ¼Y Ud

_ ç ´ òõ ¦× \ ¦{ 9 à ºe . s ‫כ‬ r É _ á Ô Ð[ jÛ ¼_ Û ¼ Y Ud ç

s rá É Ô Ð[ jÛ ¼ \> %

ò Ó` ¾ ¦Å Òt · §l ú M : Hs ë . Õ ª Q Û ¼Y Ud ç

s µ ÏÒ 1 tô q Çá Ô Ð[ jÛ ¼ H@ / Â Òì r_ r ç ` ß ¦` s f

ç u © _ Ç ©\ " f Ð? /> ÷ & Ù ¼ Ð rá É Ô Ð[ jÛ ¼ ¸l o Hr ç s ß U ´# Q .

_T @ U + Ç] s ¤Ý K à Åy ¢

• `s t Ê < ¸\ ½ É{ + ÷ © & Há ÔY Ue à º\ ¦ ¸] X H~ ÓZ ½ s O . • `s t ÊÒ < ¦_ ô © Çõ ô Ç` ¦&

_ ñ # , á Ô Ð jÛ [ ¼_ ÊÒ < ¦s ô © Ç Ð Z }Ü ¼ á ÔY Ue ` ¦Æ Ò Ð½ É{ + K © Å Ò ¦, ì Í@ ø / Ð ô Ç Ð ± Ü ú ¼ á ÔY U ` e ¦] j ô Ç .

• Û ¼Y Ud ç

\ ¦\ V~ Ó ½ l 0 AK " f Há Ô Ð[ jÛ ¼\ > ‫כ‬ 9 ¹ Çë ô ß p u_ á ÔY Ue ` ¦½ É{ + K © Å Ò# Q ô Ç . Õ ª Q á Ô Ð[ jÛ ¼ 9 ‫כ‬ ¹ô Çá ÔY Ue _ à º\ ¦· l ú ~ t 1 · § ú .

• `s t ÊÒ < ¦s ô © Ç` ¦ % Å t 3 ë ß 8s ½ © É{ + © × K ¦ á ÔY Ue s \ Ü O ¼ á Ô Ð[ jÛ ¼\ ¦{ 9 r × æé ß K ô Ç .

• m Å ] ] ¿D f(locality model): s ¸4 q\ S _ á Ô Ð[ jÛ ¼ Hz ´ ' ÷ & H1 xî l ô ß Çt % \ i " f rt É % Ü i ¼ Ðs 1 xô l Ç . # l " ft % s i ê Í ø ³F & ¸1 Ö x& l h Ü ¼ Ð 6 x ¦e H `s t þ t [_ | ½ 9 Ë` + ¦´ ô ú Ç . ³F & á Ô Ð[ jÛ ¼_ t % ` i ¦Ã º6 x½ Éà + ºe Hë ß u_ p á ÔY Ue ` ¦ ½ É{ + K © Å Ò Û ¼Y Ud ç

r µ É ÏÒ 1 t q t · § ú H . 10.6.2

t2

• \ | O 9 ½ Ë + ¸4 q_ S &

S ñ $ X

í r ∆_ É × \ þ _ K

ñ & a ) . Ü ¼ ³F & _ t % ` i ¦Ø æì ry ? /t w l 3 9, ß ¼ rt É % õ i × æ^ ?| o cà ¨ ºe .

• > 5 q Å # ` s t Ês < µ ÏÒ 1 t q H ³ & ` © ¦â «Q c b (thrashing)s ô Ç . z ´ ' H r ç ß Ð ` s t Ê` < ¦% o Hr ç s ß 8´ § ú t s ³ & s © µ ÏÒ 1 t q % i ¦ô Ç .

10.6.1

WS(t2)={3,4}

<Õ ªa > 10.6> Ë \ | O ½ 9 Ë + ¸4 q S

• ³F & H@ /Â Òì rF g%

§ i ^ ú · ¦o 7 §` £ ¦ 6 xô Ç .

10.6

t1

10.7

Ry © Ì ¢ ¤ NT

• û ¶ ¸Ä º NT H‫כ‬ ¹½ ¨` s f

õ ç 9 t þ QÛ ¼' a A(clustering)` ¦s 6 x # l © % 3 u © \ ¦½ ¨ ³ô & Ç . • þ 9 t QÛ ¼' a A r É Ê < a ` ) s t ÷ rë ß m Å Ò s ` t t Êa < & F h ô Ç . • Ô á Ð[ jÛ ¼ r ÷ & \ | O ½ 9 Ëþ + j$ ü <þ j@ /\ ¦ É{ + ½ ô © Ç .

X l° c Éù n ɶ m ¥¢ {¨ |

• \ | O 9 ½ Ë + ¸4 q(working-set model) S rt É % $ i

í

\ ñ & l ì Íô ø Ç ¸4 qs S .

• \ | O ½ 9 Ëþ + j$ ê Íá ø Ô Ð[ jÛ ¼\ > Ó ½ © Ð K © Å Ò Há ÔY Ue _ Ã º\ ¦´ ô ú Ç .

• s ¸q 4 S\ " f H ∆ г ðl ÷ & H \ | O 9 ½ Ë + Ó` ½ ¦&

ñ _ ô Ç .

• \ | O 9 ½ Ëþ + j@ /ê ÍÕ ø ªá Ô Ð[ jÛ ¼\ > ½ É{ + ½ © Éà + ºe Hþ j@ /á ÔY Ue à º\ ¦´ ô ú Ç .

• \ | O 9 ½ Ës + ê Í ø þ © jH \ Ð Ã ¸ô Ç∆` s t _ 9 | ½ Ë` + ¦´ ô ú Ç .

• l © % 3 u © ao ' H á ÔY Ue _ 3 q2 l ¤` ¦Ä » ô t Ç . ¢ ¸ô Ç á ÔY Ue à º Ø æì ry e Ht # Ò\  ¦· l ú 0 AK e > ° ‫(כ‬threshold)` ú ¦ 6 xô Ç .

• \ V) ∆ = 10 6


• \ | O ½ 9 Ëþ + j@ /s _ á ÔY Ue s ½ É{ + © aá ) Ô Ð[ j Û ¼\ > ` s t Ês < µ ÏÒ 1 t q á ÔY Ue 3 q2 l ¤ \ " f _ á ÔY Ue ` ¦ á Ô Ð[ jÛ ¼\ > ½ É{ + K © ï r .

• `s t ÊÒ < ¦ r` É s t 9 tà þ º2 ¤± ú . ` s t Ês < ± ` ú ¦Ã º2 ¤` s t Ê` < ¦% o H ¸! Q × K ¼ & # h Q . • H` s t \ ¦ 6 x H s ‫כ‬ Æ Ò[ j .

• z r É á ÔY Ue _ à º e > ° ‫כ‬s ú Ð? / 9 1 x l \ | O ½ 9 Ë + ¸] (automatic working-set trimX ming) l Z ` O ¦s 6 xô Ç . s l Z O rá É Ô Ð[ jÛ ¼\ > É{ + ½ © aá ) ÔY Ue à º\ ¦ # \ | O ½ 9 Ëþ + j$ s Ü © ¼ н É{ + © aá ) ÔY Ue ` ¦ rà ºô Ç .

10.8

 ¥w \ \

10.8.1

Å@ Ò _T Ç Ë S

10.8.3

TLB ä È ì ü

• TLB_ & × h æÒ ¦(hit ratio) r ` É s t _ s ^ ¦ @ / TLB\ \ " f Å © Ò è % s i s À Ò# Qt Hq Ö ¦ ¦´ ` ô ú Ç . TLB_ & × h æÒ ¦ r TLB_ É ÓÃ ½ º\ ¦7 x £ v r Z } t t ë q ß 6 xs q .

• íà H º‫כ‬ ¹½ ¨` s f ç

_ ë H] j& h r É íl \ ´ § ú r` É s t Ês < µ ÏÒ 1 tô q Ç H s ‫כ‬ .

• TLB # 0 3 A(reach)ê Í TLB\ ø ¦: xK ] X H 0 xô p ÇÅ Ò % l 3 u © / Nç B ` ß ¦´ ú 9, TLB_ Óà ½ º\ ` s t ¼l ß \ ¦Y Lô Ç° ‫כ‬s ú . TLB_ Óà ½ º ´ §` ú ¦Ã º2 ¤# 3 A V 0 # , Q .

• ¢ ¸ô ÇÛ ¼ ‫כ‬ Ö © aá ) Ô Ð[ jÛ ¼\ ¦ r z ´' ½ ÉM + :\ ¸° ú r É ³ & s © µ ÏÒ 1 tô q Ç .

• j þ èô Çá Ô Ð[ jÛ ¼_ \ | O 9 ½ Ë + r TLB\ É $ ÷ © & Qe # # Q ô Ç .

• n ¤Z > cl b (prepaging) r É íl \ Z } r` É s t Ê < ¦` Ò ¦× ¦s l 0 Aô Ç~ ÓZ ½ s O .

• ½ Ã Ó º\ ¦

â t · § ú ¸` s t ß ¼l \ ¦Z to þ TLB # 0 3 A HV # , Q . Õ ª Q ? / Òé ¼ ß # o 7 x £ ½ Éà + ºe . " fá Ô Ð[ jÛ ¼ r` É s t ¼l ß \ ¦ 6 x½ Éà + ºe ¸2 ¤K Å Ò Hr Û ¼% 7 ¸e . ª Õ Q ô ª Ç` s t ß ¼l \ ¦] j/ N B Å Ò è s i % 4 ¤¸ K ú .

• \ | O 9 ½ Ë + ¸q 4 S` ¦ 6 x½ É +

Ä â º\ HÛ ¼ ‫כ‬ Ö ©½ É + M : \ | O 9 ½ Ë + ¸q 4 S\ í Ê < a` ) s t 3 q2 l ¤` ¦ Ð a ' % i ¦Õ ªá Ô Ð[ jÛ ¼ Û ¼ ‫כ‬ | cM ¨ :s ` s t ¦ \ ¸¿ º& F h ô Ç 6 §\ £ Ô á Ð[ jÛ ¼\ ¦F > hô Ç . • ` s f ç

_ q 6 xs s [ t\ þ @ /ô Ç` s t Ê` < ¦ % o Hq 6 x Ð & # h Q ´ òõ e . `s ç f

` ¦: xK & F h a` ) s t [ ts þ 6 x÷ &t · §Ü ú ¼ ´ òõ \ O .

10.8.4

• ¹ ‫½כ‬ ¨` s f

ç r É 6 x \ > È Ò"

î > ] j/ N÷ B &t ë ß 6 x s z ´` ¦· ú ¦s ` ‫כ‬ ¦á Ô ÐÕ ªA b

\ ç 6 h & x Ð ´ òÖ ¦& h á Ô ÐÕ ªÏ ` þ ¦ $

½ í ÉÃ + º e .

• s> h_ ` s t \ ¦ ` s f

ç % ` i ¦M :s × æαq Ö ¦ ß ë 6 x÷ &% 3 ¦ . Õ ª Q s×α ` s t Ê < ¦% ` o Hq 6 x Ð s × (1 − α) ` s t \ ¦ ` s f ç

Hq 6 xs h &# Q ´ òõ e . 10.8.2

z ³ º§ q 8 ý º

• V \) ` s t ß ¼l 128 0 >× ¼{ 9 M : 6 §õ £ ° ú rá É Ô ÐÕ ªÏ s þ e ¦ . int A[128][128], i, j; for(j=0; j < 128; j++) for(i=0; i<128; i++) A[i][j]=0;

@ _T U 8 ý± M

• l rr > Û ¼% 7 _ ` s t ß ¼l H

½ â ÉÃ + º\ O . t ë D ß hr Û ¼% 7 ` ¦[ > O ½ ÉM + :\ H` s t ß ¼l \ ¦ &

K ñ ô Ç .

\ C P r É ' × æd Ü ¼ Ð$ ÷ © &l M :ë H\ s ü <° s ú 128 × 128 = 16, 384 _ ` s t Ês < µ Ï 1 tô q Ò Ç . s ` ‫כ‬ ¦ 6 §õ £ ° s ú

â

• ` s t ß ¼l 9 tà þ º2 ¤` s t _ s ^ ¦_ ¼ ßl H . s 8 ¤ £ \ " f H `s t ß ¼l 9 tº þ Ã2 ¤ ~ % a .

for(i=0; i < 128; i++) for(j=0; j < 128; j++) A[i][j]=0;

• ` s t ß ¼l 9 tà þ º2 ¤ t } ` s t \ rF > H? / Òé ¼ ß # o ¼ ß .

Ç ô ' ` ¦% o ô Ç 6 §\ £ ` s t Ês < µ ÏÒ 1 t q Ù ¼ 8 Ð x 128 ú _ ` s t Êë < µ ß ÏÒ 1 tô q Ç . s % ! 3 Ô á ÐÕ ªA Q ` s f ç

` ¦ d ¦á Ô ÐÕ ªÏ ` þ ¦

í $ Ð ´ òÖ ¦& Ü h ¼ Ðá Ô ÐÕ ªA b ç

` ¦½ Éà + ºe .

• 9 { Ø ¦§ r 4 ç ` ß ¦þ j è o l 0 AK " f H` s t ß ¼ l 9 tà þ º2 ¤a ~ % . & h r É ` ª ¦` l ´ § ú r É ` ª ¦ l ` Ñ t ü ° ú r] É X Hr ç s ß è‫כ‬ ¹÷ &9, 5 x Å r ç ß r] É H X r ç ß Ð @ © /& Ü h ¼ Ð& h rr É ç s ß .

• `s f

\ ç " f´ òÖ ¦& Ü h ¼ Ð 6 x½ ÉÃ + ºe HX <s ' ¨ ½ ¸ e ¦, Õ ªX t O · § ú r½ É ¨ ¸ e . \ V\ ¦[ t þ QÛ # ¼× þ r É Ó ½ Û © ¼× d þ v` ¦s 6 x # ¸ Ù ¼ Ð s ` f

\ ç ´ òÖ ¦& h ½ ¨ ¸s . ì Í ø \ K / '_ s ¦ ^ r] É H X 0 Au V o , ( 4 Re Ü ¼Ù ¼ ÐÕ ªX t O · § ú .

• 9 { Ø ¦§ _ 4 ^ ß ¼l H` s t ß ¼l ` ¦Ã º2 ¤ ~ % a . s ‫כ‬ r ` É s t ß ¼l ` ¦ à º2 ¤ t % $ i

í s Ó ¾ ÷ © &# QÔ ¦ 9 ‫כ‬ ¹ô Ç s ‫כ‬ Å Òl % 3 u © \ & F h cS ¨ | Ò X ¦s ± ú t l : Më Hs . 7


• (

{ 9 Q ¸ `s f

` ç ¦ ¦ 9 # ï× ¼\ ¦½ ¨$

í Ð ´ òÖ ¦& h á Ô ÐÕ ªÏ ` þ ¦ë [ ß tà þ ºe . \ V\ ¦[ t þ # Q Êa < Å Ò 6 x÷ & HÀ Ò; 2 r É _ ` s t \ í Ê < ` st Êà < º\ ¦× ¦{ à 9 ºe . 10.8.5

@ _T U X p c ? £

• ‫כ‬ ¹½ ¨` s f

` ç ¦ 6 x½ É: + M# Q ` " s t [ t þ r É §^ cà ¨ | º\ O ¸2 ¤K H

Ä â º e . • \ V) { 9 Ø ¦§ ‫כ‬ 4 ¹' Aô õ Çá Ô Ð[ jÛ ¼ { 9 Ø ¦§ ½ 4 É? + /6 x` ¦ ! Q( \ ` l ¦{ 9 Ø ¦§ / 4 @l Ç © Ðs 1 x l % ` i ¦M : g%

F i §^ · ú ¦o 7 §` £ ¦ 6 x Ç © Ðs 1 xô l Çá Ô Ð[ jÛ ¼_ ! Q( ` s t \ ¦ §^ ½ ÉÃ + ºe . s

Ä â º

Ý í % æô ü ÇX <s ' 9Ø { ¦§ | 4 cà ¨ ºe . • K Õ þ – 9 { Ø ¦§ 4 r É Ó ½ r © Û ¼% 7 \ > ½ É{ + © aÅ ) Òl % 3 u © %

% ò \ i " fs À Ò# Qt ¸2 ¤ô Ç . Æ Ò 4 ¤ 9 ‫כ‬ ¹ H s ‫כ‬ s K Õ _ þ ë H] j& h s . – ` s t F Kl Z : y O á ÔY Ue ¼ Ô; Ç j ³ ç Ã(lock bit)\ ¦ a ' # §^ _ BÒ t q Ð | þ × cà ¨ º\ O ¸2 ¤ H~ ÓZ ½ s O . • 9 { Ø ¦§ \ 4 6 x| c! ¨ Q( î r%

^ ò ] j& V \ , > ½ É + © { a` ) s t H F K qà Ô\ ¦[ & O

ñ # §^ | cà ¨ º O \ ¸2 ¤ô Ç . • F Kl Z O rÅ É Ò_ e > 6 xK ô Ç . 6 x ` s t \ ¦ F K 6 §\ £ r Û ¦t · §Ü ú ¼ 6 x½ Éà + º e Há ÔY Ue à º × ¦# Q[ t> þ H .

8


c °2003, sangjin@kut.ac.kr

{ ? 9 /_ 0 Au

â –

{ 9 ] j:

{ 9 \ > ½ É{ + ÷ © &% ~ 3 / Nç B ` ß ¦ r º Ã ¦, n 7 Ðo \ " f

{ 9 õ aº ' a& )

ñ Ð ¦ \ ] jô Ç .

* <* Ö = å i< K: ~ ¡q ç { ¡È 12 A. Silberschatz, P.B. Galvin, G. Gagne Operating System Concepts, Sixth Edition, John Wiley & Sons, 2003.

{ ] 9 é X :

ß { 9 ? /_ ? /6 xë ß ] jô Ç . 7 ¤, £ {

\ 9 > ½ É{ + © a/ ) Nç B ` ß ¦ rà º ¦

{ 9 a ' º a& )

ñ Ð× æß ¼l ë 0Ü ß ¼ Ð õ H .

Part III. Storage Management

• sü @\ ¸

{ = 9 Q\ å ' ,

{ s 9 2 § £

,

â { 9 ¤ 4 1 x` p ¦] j/ Nô B Ç .

11 11.1

• B n 7 Ðo \ ¦ Ò o H q 6 x` ¦ × ¦s l 0 A

K { { 9 l 9 æ ¼l \ ¦ l \

{ ` 9 ¦\ P ¸ ¤ô 2 Ç . î r%

^ ò ] j H\ ; P 2

{ _ 9 s ^ ¦(open-file table)` ¦Ä »t 9,

{ ` 9 ¦{ ` ¦M : t n 7 Ðo Ò o` ¦ r t · § ú ¦

{ ` 9 ¦ ¸ ½ ÉÃ + ºe ¸2 ¤ ï K r .

ø

ÇS m ­ y ß ð Ã Å' [@ _T ­ Ç

ø m4 G È

• Ä ºo H&

ñ Ð\ ¦ ô ª Ç$ B © ^ (n Û ¼ß ¼, F gn

Û ¼ ß ¼, _ s á Ô1 x)\ p $ ô © Ç . î r%

^ ò ] j H ô ª Ç $ B © ^ \ @ /ô Çç H{ 9 ô Ç Ho 7 & Â h Ó\ ¦] j/ Nô B Ç . s s ‫כ‬

(file)s .

{ \ 9 l P :

{ 9 s 2 §` £ ¦Å Ò n 7 Ðo \ ¦ Ò o \ # ; P 2

{ 9 _ s ^ ¦\

{ _ 9 n 7 Ðo Ó` ½ ¦4 ¤ ô Ç .

{ 9 ` ¦\ M P :] H X ¸× ¼(Ò t$ q

, { í 9 l , { 9 -æ l ¼l 1 x)\ p ¦t &

½ ñ Éà + ºe . Ð: x\ l P r Û ¼% 7 ñØ ¦ rs É _ s ^ ¦\ @ /ô Ç í ' \ ¦ì ͨ ø K 8 ï r .

{ 9 r$ É _ © þ j èé 0 ß As . Ä ºo H

{ ü 9 @\ r~ É ÓZ ½ Ü O ¼ ÐX <s ' \ ¦ $ ½ © ÉÃ + º\ O .

• × æ 6 x ¨ 8

_ â

Ä â º\ H¿ ºé > ß _ s ^ ¦` ¦ 6 xô Ç .

{ 9 rÕ É ª _ ‫כ‬ » Ä+ A\ þ : ¤& £

½ ñ ¨ ¸\ ¦t .

11.2

– « è ×T zâ «ß

Y ~ cl ¡ ·: y á Ô Ð[ jÛ ¼_ PCB\ »t Ä ÷ &9, s á Ô Ð[ jÛ ¼

{ 9 [ t` þ ¦ ao ' Ç ô .

{ 9 í ' ,

{ 9 ] X H ¸× ¼1 xs p s s _ ^ ¦\ Ä »t a ) .

Ç

ø m ×V Ò Ë R

{ 9 õ aº ' a5 ) q$ Å

í – s 2 §: £ 6 x \ _ K d | cà ¨ ºe H+ AI þ Ð Ä »t ÷ & HÄ »{ 9 ô Ç ‫כ‬

– kâ «` g¦ >W Y cl ¡ ·: á Ô Ð[ jÛ ¼ü <1 qw l & n h

ñ & Ð[ ts þ Ä »t a ) . n Û ¼ß ¼? /_

{ 9 _ 0 A , ] u H X ± ú ,

{ 9 ß ¼l 1 xs p s _ s ^ ¦\ »t Ä a ) . ¢ ¸ô Ç\ P ;> 2 à º(open count)\ ¦Ä » t # s

{ ` 9 ¦ á Ô Ð[ jÛ ¼_ à º\ ¦Ä »t Ç ô .

– dZ > :

{ 9 r Û ¼% 7 ? /\ " fy

{ ` 9 ¦½ ¨ì r l 0 Aô Çd Z > – Ä »+ A þ – 0 Au : $ © aB ) ^ \

{ s 9 $ © a0 ) Au – ß ¼l 11.2.2

– Ð ñ: ] H X ] j# Q&

ñ Ð

{ _ 9 Ä »+ A þ rS É X © \ ¦s 6 x # d Z ô > Ç . ë t ß Ð: xî r%

^ ò ] j H{ 9  Ò_ S X © ( Ð: xz ´' , Û 7 % ¼à Ô, s &

ñ ¸ë ½ ß ¨ì r)ë d ß Z > 9, Qt H 6 x \ > ë ß ¸¹ §s ¡ ÷ & H½ ¨ì r % ½ i É` + ¦ô Ç .

– r ç õ ß ± ú , 6 x &

ñ Ð •

{ 9 õ aº ' as ) &

ñ Ð[ t þ rn É 7 Ðo ½ ¨ ¸+ A þ I Ð Ð ¸$ © u © \ Ä »t a ) . • + A& þ Ü h ¼ Ðn 7 Ðo Ó ½ r

É { s 9 2 §õ £ Õ ª _ ‫כ‬ Ä »{ 9 ô Çd Z > н ¨$

÷ í &9, s d Z > H r5 É q Å

[ í $ ts þ e H0 Au \ ¦ o v H í ' % ½ i É` + ¦ô Ç . 11.2.1

ø

Ç m ¥] ù k

• j þ H\ H

{ Ä 9 »+ Aõ þ aº ' á Ô ÐÕ ªÏ ` þ ¦ a '

# { 9 × þ 1 xÜ l ¼ Ð aº ' á Ô ÐÕ ªÏ s þ z ´ ÷ ' & ¸2 ¤ô Ç . Ð Ã ¦. ë H" f× æd vs. á Ô ÐÕ ªÏ × þ æd

Ç ø m Å ì m

{ 9 õ aº ' a ) í ß

11.3

{ 9 Ò t$ q

: / í Nç B ` ß ¦ ½ É{ + K © ¦,

{ õ 9 aº ' a& )

ñ Ð\ ¦n 7 Ðo \ Æ Ò K ô Ç .

q O ð ºP º

• nÛ ¼ß ¼ H

p ¤ >(partition)Ü ¼ Ðì r½ É + a ) . n Û ¼ ¼ ß H Ð: xþ j èô Ç _

w ` ¦ . # Q " Û r ¼% 7 r# É Qn Û ¼ß ¼\ ¦ _

w Ü ¼ Ð x½ 6 ÉÃ + ºe ¸2 ¤K ï r .

{ 9 æ ¼l –

{ 9 { 9 l 1


• y

w r$ É ÷ © &# Qe H

{ õ 9 $ © a

) { 9 [ t\ þ aô ' Ç&

ñ Рн ¨$

í a ) .

{ \ 9 aô ' Ç&

ñ Ð H u © n 7 Ðo ¢ ¸ H^ ¦µ §_ ¢ s ^ ¦\ Ä »t a ) . © u n 7 Ðo H Ð: xn 7 Ðo 9, $ ÷ © &# Q e H

{ 9 n 7 Ðo \ _ Ós ½ rF > ô Ç .

FILE FCB

FCB

FILE

FILE FCB

• n 7 Ðo ü < aº ' a ) í ß directory

{ 9 Ò o: : ¤& £

ñ { 9 \ K { © Hn 7 Ðo Ó` ½ ¦ Ò oô Ç . Ð: x

{ s 9 2 §s £ : ¤& £

J ñ ¦{ ` u 9 H ¸ H

{ 9 [ t` þ ¦¹ Ô` 1 ¦Ã ºe ¸2 ¤ K ï r .

(a) × ¼a Aß ¼

{ 9 Ò t$ q

í

– ç ( ¡ 1. « 0 An 7 Ðo e Ü ¼ Â Òô Ç . V) MSDOS \ – ç ( ¡ 2. « ] j"

§ î

\ î ` v ` ¦× ¦Ã ºe ¸2 ¤ # 0 An 7 Ðo e # Q ¸n 7 Ðo \ ¦ j½ ] Éà + ºe ¸2 ¤K ï r . \ V) UNIX

– n 7 Ðo \ P –

{ 9 F "

" î

î –

{ 9 r Û ¼% í 7 H r(traverse):

{ r 9 Û ¼% 7 ? / \ e H ¸ Hn 7 Ðo \ ¦~ Óë ½ H H ` ‫כ‬ ¦´ ú Ç ô .

11.3.4

• s~ Ód ½ rn É 7 Ðo

{ 9 _ / NÄ B »\ ¦~ > 1 K ï r . • ½ ¨ ³~ & ÓZ ½ O

• t ¶ " é l / © 'î r~ ÓZ ½ s O .

– Aß a¼(link) 6 x: a Aß ¼ H

{ 9 ¢ ¸ H n 7 Ð \ o @ /ô Ç í ' s . Ä »_ Û ¼ H l ñ a A ¼(symbolic link)ü ß < × ¼a Aß ¼(hard link), ¿ º xÀ á 7 Ó\ ¦] j/ Nô B Ç .

• ë] H j& : ô h Çn 7 Ðo ? /\ e H ¸ H

{ _ 9 s 2 § £ r1 É q: l ¤K £ Ù ¼ Ð

{ 9 s 2 §Â £ Ò# \ ] j ` ¦~ Î Ã H .

{ × 9 æ4 ¤: { 9 a$ '

` í ¦Ä »t H s ‫כ‬ # Q§ > .

¤ m4 Oq ð ºP

• ¿ ºé > ß Â Ò' H

â Ð(path) > h¥ s Æ 1 x p ô © Ç .

• ë] H j& : à h Ôo ½ ¨ ¸ Ð HÄ » ô Ç~ ÓZ ½ s O t ë ß §õ £ 6 ° ú rë É H] j& s h e .

• Ò o

â Ð(search path):

{ s 9 2 §s £ Å Ò# Q& ` ¦M : s

{ 9 ` ¦ Ò o l 0 AK Ò o Hn 7 Ðo _ 3 q2 l ¤` ¦´ ô ú Ç . 11.3.3

Å R Øò U ÿ§ & 7 0³ O q ð ºP

• q í H¨ Õ 8 ªA á Ôê ÍÅ ø Òl \ O HÕ ªA á Ô\ ¦´ ô ú Ç .

mÇ ø m m4 O q ð ºP

• ¸ H

{ 9 s _ n 7 Ðo \ í Ê÷ < & H½ ¨ ¸ ¦´ \ ô ú Ç .

11.3.2

(b) l ña Aß ¼

<Õ ªa > 11.1> Ä Ë »_ Û ¼\ " fa Aß ¼_ 7 xÀ á Ó

{ 9 ] j

11.3.1

directory

– ô

Ç { 9 r# É Q

â Ð\ ¦ | Ã 9 ºe . f

" { 9 r Û ¼% 7 ` ¦í H r½ ÉM + :ô ǽ ¨ ¸\ ¦# Q ~ Óë ½ H½ Éà + ºe .

² P º8 ý Oq ð ºP

{ _ 9 ] j: a Aß ¼÷ &# Qe H

{ ` 9 ¦ ] j½ É +

Ä â ºs a Aß ¼ 8s _ © p e H/ M` B ¦ o t v 3 w l > a ) .

{ 9 \ @ /ô Ça Aß ¼3 q2 l ¤` ¦ »t Ä t · §Ü ú ¼ s a Aß ¼[ t` þ ¦¹ Ô 1 ] j H ‫כ‬ r´ É § ú rq É 6 xs è‫כ‬ ¹ a ) . Ð: x

{ s 9 ] j÷ &# Q ¸a Aß ¼ HÕ ª@ / п º9, ë s ß a A ¼\ ß ¦ × æ\ 6 x

â ¦\ ¦× ¦Ã ºe ¸2 ¤ ¦î ô ß Ç . ¢ ¸ r~ É ÓZ ½ O r É Ð Ã ¸> à º\ ¦Ä »t # s > à º 0s ÷ &# Q ë ß ] j½ Éà + ºe ¸2 ¤ô Ç .

• à Ôo ½ ¨ ¸_ n 7 Ðo \ " fy n 7 Ðo H 0 A n 7 Ðo \ ¦ | à 9 ºe Ü ¼9, à Ôo _ þ j 0 © An 7 Ðo \ ¦Ç Ùç Ãg ø c ` ×h ô Ç . • & F ³ n 7 Ðo (current directory): ³F & 6 x 0 Au ô Çn 7 Ðo Ð

{ s 9 2 §` £ ¦Å Ò s n 7 Ð o \ ¦ $ Ò oô Ç . ³F & n 7 Ðo ü < rn É 7 Ðo \ e H

{ 9 ` ¦] X H l 0 AK " f HÕ ªn 7 Ðo Ðs 1 x` l ¦

{ 9 _

â Ð\ ¦Å Ò# Q ô Ç .

• l ña Aß ¼ü < × ¼a Aß ¼_ s & h

• X ]@ /

â Ð(absolute path): à Ôo _ À Òà ÔÂ Ò' _

â Ð. \ V) C:\windows\system32

– l ña Aß ¼ H

{ ¢ 9 ¸ Hn 7 Ðo \ @ /ô Ç í ' Ð" f, l ñ a Aß ¼_ ] j H

{ 9 \ %

ò Ó` ¾ ¦ Å Òt · § ú H . ì Í@ ø / Ð

{ 9 s ] j÷ & l ñ a Aß ¼ H _ p \ O H í ' (dangling pointer) a ) .

• © @ /

â Ð(relative path): ³F & n 7 Ðo ÐÂ Ò' _

â Ð. \ V) ..\work • à Ôo ½ ¨ ¸\ f "n 7 Ðo ] j 2


– × ¼a Aß ¼ H

{ \ 9 @ /K " fë 0 ß x p ¦, ° ú rn É 7 Ðo Ó` ½ ¦ o v H í ' s 9, ô Ç

{ 9 r Û ¼ 7? % /\ " fë 0 ß x p . × ¼a Aß ¼ ¦ \ ] j Ð Ã ¸> à ºë ß y èô Ç . 11.3.5

11.5

º | Æ

• ü Óo t & h H < õ © Ô ¦Z & O ] h X HÜ ¼ ÐÂ Ò'

{ ` 9 ¦ Ð ñK ô Ç . • ü Óo t & h H < © rÑ É \ þ ` O ¦: xK s À Ò# Qt 9 ÔZ ¦ & O h X ] H r] É H X ] j# Q(access control)\ ¦: xK s À ÒQ # .

ø Ç m m§ 7 0³ Oq ð ºP

• q í H¨ Õ 8 ªA á Ô½ ¨ ¸_ ë H] j HÅ Òl \ O ¸2 ¤ Ð © H s ‫כ‬ .

11.5.1

É¿ n ± < R ¥] ù k

• q í H¨ Õ 8 ªA á Ô_ & © h r

É { 9 r Û ¼% í 7 H r ~ 1 H s ‫כ‬ .

{ \ 9 @ /ô Ç Ð ñ H] H X Ä »+ A` þ ¦] jô Ç # ] j# Q Ç ô .

• { 9 ì ÍÕ ø ªA á Ô½ ¨ ¸\ " f HÅ Òl rF > ½ ÉÃ + ºe .

• ] X H_ Ä »+ A þ – { l 9

• { 9 ì ÍÕ ø ªA á Ô½ ¨ ¸_ ë H] j& h

– æ ¼l

{ 9 r Û ¼% 7 í H r_ # Q 9¹ § ¡

– z ´'

{ 9 ] j_ # Q 9¹ §: ¡ Ð Ã ¸ > à º\ ¦ 6 x½ É + à ºe t ë ß Ð Ã ¸> à º 0s _ \ ¸Ô ¦½ ¨ ¦ 8s _ © p \ O Ha Aß ¼ rF > ½ Éà + º e . s

Ä â º\ H Å Òl & Ü h ¼ Ð æ ¼Y Ul à º 9 | (garbage collection)` ¦K t ë s ß _ ‫כ‬ q 6 xs ß ¼Ù ¼ Ð s l Z ` O ¦ 6 x H

Ä â º H× ¼Ó t ü .

– ' :

{ = 9 Q\ å ? /6 xÆ Ò – ] j –

{ & 9

ñ Ð\ | P Ð Ã 2 s § £

, 4 â ¤ , ¼ | # 1 9 x p r É 0 Aà ºï r_ l r] : X Ä H »+ A\ þ ] j# Q a ) . \ V\ ¦[ t# þ Q{ l 9 ¶ô Ý Çs e H 6 x H

{ ` 9 ¦4 ¤ ½ ÉÃ + ºe .

• z ´] j{ 9 ì ÍÕ ø ªA á Ôn 7 Ðo ½ ¨ ¸\ ¦ 6 x # ¸ Å Òl H Ð: xÁ ºr ô Ç . 7 ¤, £ 6 x Õ e þ s 9, í H r+ É ½M :\ Ha Aß ¼ Hº Ár a ) .

11.4

11.5.2

É¿ n ± << R g# a

• X ] H] j# Q H Ð: x 6 x d Z > \ ¦H Ð] X H 6 ) x# Â Ò\ ¦ &

ô ñ Ç .

Ç

ø mS ­ y ð Æ ØÊ U Ë S

• y

{ 9 ] H X ] j# Q3 q2 l ¤(access control list)\ ¦ »t Ä 9, 6 x ] X H‫כ‬ ¹' A õ s 3 q2 l ¤` ¦ Ð # ] X H) 6 x# Â Ò\ ¦ &

ô ñ Ç .

{ 9 r É ¸ l \ \ # P Q ¸ ½ ÉÃ + ºe . • s ü < ð Í t ø Ð

{ 9 r Û ¼% ` 7 ¦ 6 x l 0 AK " f H $ î rà Ô÷ &# Q ô Ç .

• X ] H] j# Q3 q2 l ¤\ y 6 x Z ] > H X ¶ Ýô Ç` ¦Ä »t H ‫כ‬ r É ³z & ´$

s í \ O . Ð: x 6 x \ ¦ 6 §õ £ s ú ° ì rÀ Ó ¦, ì rÀ Ó\ @ /ô Ç] X H ¶ô Ý Çë Ä ß »t ô Ç .

• î rà Ô] X – î% r

^ ò ] j H u © _ s2 §õ £

{ ½ 9 ¨ ¸? /\ î rà Ô½ É0 + Au \ ¦Ã Î ~ Õ ª0 Au \ î rà Ôô Ç .

– èÄ » (owner):

{ ` 9 ¦Ò t$ q

ô í Ç 6 x – Õ ªÒ ¨(group): èÄ » 5 qô Å ÇÕ ªÒ ¨

– Ð: x î rà Ô½ É0 + Au H n 7 Ðo a ) .

– 9 {ì Í(universe): r ø Û ¼% 7 \ 1 x2 p ¤ a ) ¸ H 6 x

– î% r

^ ò ] j H

{ 9 r Û ¼% 7 ` ¦ î rà Ô l \ u © \ ¦ 7 x £ # Ä »´ òô Ç

{ r 9 Û ¼% s 7 u © \ í Ê÷ < &# Qe Ht ô Ç . s H u © _ n 7 Ðo

{ s 9 ‫כ‬ ¹½ ¨÷ & H+ AI þ ¦° \ Æ ú Ò ¦e Ht \ ¦ > a ) .

12 12.1

• l 0 x_ p "

S î $ X

` í ¦ Ð © l 0 AK r Û ¼% 7 r É î r à Ô\ @ /ô ÇY

t > ] j ` ¦y ‫כ‬ © ¹½ ÉÃ + ºe .

Ç ø mS ­ y ð ô ø

ÇS m ­ y ð º

• n Û ¼ß ¼_ : ¤f £

ç – F æ ¼l 0 x p .

– \ V1)

{ 9 ` ¦í Ê < ¦e Hn 7 Ðo H rà î Ô0 Au Ð 6 x½ Éà + º\ O .

– f ] ] X X H` ¦] j/ Nô B Ç .

– \ V2)

{ 9 r Û ¼ 7 % r É ¸f ô Ç ë ß î rà Ô÷ & ¸2 ¤] jô ǽ Éà + ºe .

• n Û ¼ß ¼{ Ø 9 ¦§ 4 r É Ð: x^ ¦2 ¤é 0 ß A Ðs À Ò# Q . •

{ r 9 Û ¼% [ 7 > O Ô t& q h

• ¶ û ¸Ä ºr Û ¼% 7 rÂ É Òh AM :r Û ¼% ` 7 ¦ Ò o # ¸ H

{ 9 r Û ¼% 7 ` ¦ 1 xÜ l ¼ Ð î rà Ôô Ç .

– { ì 9 Í ø 6 x \ > # Qb G> Ð# × ¦ ‫כ‬ ? 3


– 7 o H &

h { 9 r Û ¼% 7 ` ¦Ó to ü & h Ð ¸$ © © u \ # Qb G> $ ½ © É + ‫כ‬ ?

– j þ H\ ] X H an ) 7 Ðo ½ ¨ ¸: n 7 Ðo \ /ô @ Ç èá Ôà ÔJ ?# QH r

{ 9 r Û ¼% 7 r É Ð: x# Qé > ß Ð½ ¨$

÷ í &# Qe .

– rÛ ¼% 7 ^

{ _ 9 s ^ ¦(SWOFT, Sys tem-Wide Open-File Table):

{ _ 9 FCB 4 _ ¤ r` : ¦Ä »t H_ s ^ ¦

– · 4 ÿ 1. u © ½ ¨1 xl l (device driver)ü < ' X O à Ô% o l : u © ½ ¨1 xl l H % l i Ð" f 0 © A à ºï r_ "

§ î

` î ¦ × ¼J ?# Q] j# Ql s K H"

§ î

# î Q Ð Ë ¨# Q × ¼J ?# Q] j# Ql \ ² K ú Å Ò H% ½ i É` + ¦ô Ç .

– Ô á Ð[ jÛ ¼ Z >

{ _ 9 s ^ ¦(PPOFT, Per Process Open-File Table): r Û ¼% 7 ^

_ 9 { s ^ ¦_ Ó` ½ ¦ o v H í ' \ ¦Ä »t H_ s ^ ¦

– · 4 ÿ 2. l r

: { 9 r Û ¼% 7 : { 9 ì Í" ø

§ î

` î ¦ © u ½ ¨1 xl l \ ² ô ú Ç . { 9 ì Í" ø

§ î

\ î H^ ¦2 ¤ 9 { l ü <^ ¦2 ¤¼ æl e Ü ¼9, ^ ¦2 ¤0 Au H Ð : x u © ñ, z ´ ; 2 8 ñ, à ÔÏ þ ñ, ! o' l ñ н ¨$

í a ) .

{ Ò 9 t$ q

í – h D FCB\ ¦½ É{ + © ¦K { n © 7 Ðo \ ¦Å Òl 3 % u © РÒ' { 9 # QÌ t q ô Ç 6 §s £ n 7 Ð \ o ¦n Û ¼ß ¼\ r H .

– · 4 ÿ 3.

{ 9 ¸f ¸Ñ t: B ý j X <s ' \ ¦ a ' o ô Ç . B j X <s ' \ H

{ _ 9 ? /6 x ¦ `] j @ô ü Ç

{ r 9 Û ¼ 7½ % ¨ ¸\ @ /ô Ç ¸ H&

ñ Ð\ ¦ Ä »t ô Ç .

{ 9 ½ ¨ ¸ H Ð: x

{ 9 ] j# Q^ ¦ 2 ¤(FCB, File Control Block) é 0 ß A Ð ao ' a ) . FCB\ H

{ _ 9 èÄ » ¶, ] Ý X H] j# Q,

9 { _ 0 Au 1 x` p ¦Ä »t a ) .

– n 7 Ðo \ ¦

{ õ 9 1 x{ l 9 > 2 [/ L å Hr ¼% Û (\ 7 V: Ä »_ Û ¼)s e ¦, Z > ¸_ r Û ¼% 7 ñ ¦` Ø ¦ 6 x Hr Û ¼% (\ 7 V: ¶ û ¸Ä º) ¸e . •

{ \ 9 l P –

{ s 9 2 §` £ ¦s 6 x # n 7 Ðo \ ¦ Ò o

# { 9 \ K { © H Ó` ½ ¦ ¹ Ô 1 Õ ª

{ _ 9 FCB\ ¦ SWOFT\ 4 ¤ ô Ç . SWOFT H y {

9 Õ ª ` ‫כ‬ ¦ á Ô Ð[ jÛ ¼_ à º\ ¦ / ? H\ l P > à º(open count)` ¦Ä »t ô Ç . Õ ª 6 § PPOFT\ £ D h Ó` ½ ¦Æ Ò ô Ç . s Ó\ ½ H SWOFT\ Ä »t ÷ & ¦e H FCB\ @ /ô Ç í ü ' <

{ 9 í ' 1 xs p Ä »t a ) .

• @ /Â Òì r_ î r%

^ ò ] j H s _ ©

{ r 9 Û ¼ 7 % ` ¦ t ¶ " éô Ç . ¶ û ¸Ä º r Û ¼% 7 r FAT, FAT32, É NTFS

{ r 9 Û ¼% 7 ` ¦t " ¶ é 9, Ä »_ Û ¼r Û ¼% 7 r É UFS(Unix File System)` ¦t " ¶ô é Ç .

12.2

Ç

ø mS ­ y ð ô

12.2.1

4 ~ ¿

– P \l r Û ¼% 7 ñØ ¦ r PPOFT\ É D h\ v> Æ Ò ô Ç Ó\ ½ @ /ô Ç í ' \ ¦ ì ͨ ø 8 # Å Ò9, ª s Õ Ê ê

{ 9 ¸ r s É í ' \ ¦ s 6 xô Ç . PPOFT_ Ó` ½ ¦Ä »_ Û ¼\ " f H

{ [ 9 " O

î (file descriptor) ¦, ¶ û ¸Ä º\ " f H

9 { [ ½ t(file handle)s þ ô Ç .

{ 9 r Û ¼% 7 ` ¦½ ¨ ³ & l 0 AK î r%

^ ò ] j Hn Û ¼ ß ¼ü <B j ¸o \ # Q &

ñ Ð\ ¦» Ät ô Ç . • n Û ¼ß ¼\ Ä »t ÷ & H&

ñ Ð

{ { 9 l

– É Ùç ÃV # a¡ · ´(boot control block):

w Ü ¼ ÐÂ Ò' î r%

^ ò ] j\ ¦Â Òh A l 0 AK ‫כ‬ 9 ¹ Ç& ô

ñ Ð\ ¦# l \ Ä »t ô Ç . + A& þ Ü h ¼ ÐÂ Ò à Ô] j# Q^ ¦2 ¤ r

É w _ ' Í P :^ ¦2 ¤\ $ ÷ © &# Qe . ¸ H

w e ` ¦ ‫כ‬ 9 ¹ H O \ .

– PPOFT_ K { © Ó` ½ ¦ ] jô Ç . – SWOFT_ \ l P > Ã º\ ¦ y èô Ç . –

{ ` 9 ¦ ¸ Há Ô Ð[ jÛ ¼

{ 9 { Ü ¼ Ì t q a

) { ñ 9

& Ð\ ¦n Û ¼ß ¼\ æ ¼ ¦ SWOFT_ Ó` ½ ¦] j ô Ç .

p ¤ >V # a¡ · ´(partition control block):

w _ ß ¼l (^ ¦2 ¤Ã º), ^ ¦2 ¤_ ß ¼l , ^ ¦ 2 ¤Ã º, ^ ¦2 ¤ í ' , FCB à º, FCB í ' 1 xõ p ° ú r

É w _ &

ñ Ð\ ¦Ä »t H^ ¦ 2 ¤s .

12.2.2

X

ÅÊ Ó Ý Æ ØÊ U Ë S

• y

w r

É { r 9 Û ¼% 7 ` ¦ í ʽ < É Ã + º ¸ e ¦ (“cooked”), í Ê < t · §` ú ¦ (“raw”) à º ¸e .

– n 7 Ðo ½ ¨ ¸

• é "r ¶ n Û ¼ß ¼(raw disk)\ ¦Õ ª@ / Ð 6 x H

Ä â º ¸e .

– FCB: NTFS\

Ä â º\ H

w ] j# Q ^2 ¦ ¤ ? /\ $ ÷ © &t ë Ð ß : x r

É ] j# Q^ ¦ 2 ¤ Z õ > ¸ Ð$ © a ) .

– \ V1) Ä »_ Û ¼_ Û ¼ / ‫כ‬ Nç B ß – V \2) # Q X " <s ' Z s Û ¼ H ^ & h + Ad þ ¦ ` 6 x l 0 AK ¶ " ér n Û ¼ß ¼\ ¦ 6 x H

Ä â º e .

• FCB\ ¦ UFS\ " f H inode ô Ç . • Å Òl % 3 u © \ Ä »t ÷ & H&

ñ Ð –

w _ s ^ ¦: î rà Ô ay )

w \ @ /ô Ç

ñ & Ð\ ¦Ä »t H_ s ^ ¦

• Ò Âà Ô&

ñ Ð\ ¦Z > ¸

w \ $ © H

Ä â º ¸e . 4


• Ð: x Òh A½ ÉM + :\ H

{ r 9 Û ¼% 7 u © ½ ¨1 xl l z ´ ' ÷ &l I © s Ù ¼ Ð ^ + Ad þ ` ¦ 6 xô Ç .

– Ò Ål % 3 u © ao ' ü < ð Í t ø Ðü @Â Òé ¼ ß # o µ ÏÒ 1 t½ q ÉÃ + ºe .

• × æ Â Òh A` ¦ l 0 AK " f H Â Òà Ô

w \ # Q

{ 9 r Û ¼% 7 ` ¦ s K H Â Òà Ô & F h l (boot loader) e # Q ô Ç .

{ ` 9 ¦Ò t$ q

½ í ÉM + :\ H

{ _ 9 ß ¼l \ ¦· Ã ú º O \ H

Ä â º ´ § ú . • \ V8 ¤` £ ¦ # þ j& & h ½ h Ë~ + Ód ½ ` ¦ 6 x / Nç B s ß Â Ò7 ¤½ á Éà + ºe . s % ! \ 3 V8 ¤ £ &# ÷ QS X Ð a/ ) Nç B s ß Â Ò7 ¤ á Ð H / Nç B Ü ß ¼ Ðs 1 x½ l Éà + ºe t ë r ß ç s ß ´ § ú s è ¸ a ) . •

{ 9 4 ¤ % ! ß 3 ¼l \ ¦ &

S ñ X > \ V8 ¤ £ ÉÃ + ½ ºe # Q ¸

{ 9 _ ß ¼l r ç s ß

â H õ d\ ½ ÉÃ + ºe . s ` ‫כ‬ ¦@ /q K z ´] jß ¼l Ð ´ § ú r/ É Nç B ` ß ¦p o S X ÐK Å Ò ? /Â Ò é ¼ ß # o ë H] j µ ÏÒ 1 t½ q É + Ã ºe . • s ë H] j\ ¦F G4 ¤ l Y

/ > Nç B ` ß ¦ o Û ¼à Ô + AI þ Ð Ä »t # / Nç B ` ß ¦ ½ É{ + © K × ¦Ã ºe .

• î% r

^ ò ] j& V ` , ¦ í Ê < HÀ Òà Ô

w rr É Û ¼ 7 % s  Òh A| cM ¨ : 1 xÜ l ¼ Ð î rà Ô÷ &9, r

É w rÂ É Òh AM : 1 xÜ l ¼ Ð î rà Ô÷ & × æ\ à º 1 xÜ l ¼ Ð î rÔ à a ) . • î% r

^ ò ] j HÅ Òl % 3 u © \ î rà Ô_ s ^ ¦` ¦Ä »t Ç ô .

12.3

q O ð ºP ô

12.3.1

Å] Ò ùP k ­ ²

• é © í ß Hô Ç~ ÓZ ½ O r É

{ s 9 2 §õ £ X <s ' ^ ¦2 ¤\ @ /ô Ç í ' н ¨$

í a ) + Ao þ Û ¼à Ô\ ¦Ä »t H s ‫כ‬ .

• & © h –

{ ] 9 X Hr ç s ß Ø Ô .

• + Ao þ Û ¼à Ô\ " f: ¤& £

ñ

{ 9 ` ¦¹ Ôl 1 0 AK " f H A þ + Ò os 9 ‫כ‬ ¹ . ¢ ¸ô Ç

{ 9 ` ¦Ò t$ q

½ í ÉM + :\ H + A þ Ò o` ¦ # ° ú rs É 2 §_ £

{ s 9 \ O Ht # ô Ç . s s ‫כ‬ + Ao þ Û ¼à Ô_ © Hé ß & s h .

{ \ 9 @ /ô Çf ] ] X X Hõ í H Ò o` ¦ ¸¿ º " t ¶ô é Ç . – n 7 Ðo Ó\ ½ Hr 0 Au ü <ß ¼l ë Ä ß »t Ç ô .

• n 7 Ðo Ó` ½ ¦F 6 x l 0 AK ] j a ) Ó ½ r É I © ÐÄ »t ½ Éà + ºe . ¢ ¸ô Ç Ò oq 6 x` ¦× ¦s l 0 AK " f H t } Ó` ½ ¦ Ó\ ½ ` U ´Ã ºe . ¢ ¸ H o Û ¼à Ô+ AI þ л Ät ½ Éà + ºe .

12.4.2

Å+ ì Ƕ s £R s ê

{ ` 9 ¦n Û ¼ß ¼^ ¦2 ¤_ o Û ¼à Ô+ AI þ н É{ + © 9, n 7 Ðo Ó\ ½ H' Í P :^ ¦2 ¤õ t } ^ ¦ ¤\ 2 @ /ô Ç í ' ë Ä ß »t ô Ç . y ^ ¦2 ¤? /\ H §^ £ 6 ¦2 ¤` ¦ o v H í ' \ ¦Ä »t ô Ç .

• + Ao þ Û ¼à Ô_ é & ß ` h ¦G F4 ¤ l 0 AK 6 x a ) Ó ½ r É èá Ôà ÔJ ?# Q& Ü h ¼ Ð Hr ô Ç . • ñ &§

= > ao ) Û ¼à Ô\ ¦Ä »t s Ò o` ¦½ Éà + ºe t ë & ß

§ ñ =` > ¦Ä »t Hq 6 xs Æ Ò Ð è‫כ‬ ¹ a ) . ë ,

ß { 9 3 q2 l ¤` ¦&

§ ñ = > a+ ) AI þ ÐØ ¦§ ½ 4 ÉM + : HZ > ¸_ &

§ ñ =õ > &

s ñ 9‫כ‬ ¹\ O .

• & © h – @ ü Òé ¼ ß # o µ ÏÒ 1 t q t · § ú H . ? / Òé ¼ ß # o Hµ ÏÒ 1 t½ q Éà + ºe t ë Á ß ºr ½ Éà + ºe . –

{ _ 9 Ò t$ q

õ í ] j ~ 1 .

12.3.2

A 0S ? _T ÷ § u

– s~ Ód ½ r

É { 9 _ ß ¼l o\ @ /K ~ > 1 @ / ½ % ÉÃ + ºe .

• K r _ s ^ ¦` ¦s 6 x # n 7 Ðo \ ¦½ ¨ ³½ & Éà + º e .

• é & ß h

• Ò or ç s ß Ø Ô9, ¶ { ú õ 9 ] j ¸6 xs . K ß ë r Ø æ[ të H] j\ ¦K K ô Ç .

12.4

£R ¶ s êU s0 ê É n

12.4.1

Å ì ׶ Ò £R s ê

{ \ 9 @ /ô Çí H Ò oë t ß ¶ " éô Ç . f ] ] X X H r É o Û ¼à Ô\ ¹ Ô 1 H~ ÓZ ½ µ O Ú 1 \ \ O . – ú ´ § r/ É Nç B s ß í ' ° ‫`כ‬ ú ¦$ © l 0 AK x 6 a ) . s ` ‫כ‬ ¦F G4 ¤ l 0 AK ^ ¦2 ¤[ t` þ ¦Ó ü Q9 # t þ QÛ ¼' é 0 ß A н É{ + ½ © Éà + ºe . 9 t þ QÛ ¼ ~ ' ÓZ ½ O rq É 2 ¤? / Òé ¼ ß # oë H] j µ ÏÒ 1 t q ë t ß ³F & V o , 6 x÷ & ¦e .

• s ~ Ód ½ \ " f Hy

{ ` 9 ¦ 5 q Å a/ ) Nç B \ ß ½ É{ + ô © Ç . 1 x& l Å h Òl % 3 u © ao ' ë H] jü <Ä » .

– ø @$

í ¸b # Q . í ' ° ‫כ‬s ú ë ß H < ÷ © &# Q ¸

{ 9 ^ H < © a ) . s ` ‫כ‬ ¦F G ¤ 4 l 0 AK s × æ o Û ¼à Ô ÐÄ »t ½ Éà + º t e ë s ß

Ä â º\ H í ' \ ¦$ © l 0 A Ç ô ¸! QK × ¼ 8& .

• / Nç B ` ß ¦¹ Ôl 1 0 AK f Ë[ . t` þ ¦» Ät K 9, Å Òl % 3 u © ao ' ü < ð Í t ø Ðþ j í& ½ h Ë, þ + j& & h ½ h Ë, + j þ & ½ h Ë~ + ÓZ ½ ` O ¦ ¸¿ º 6 x½ Éà + ºe . • é & ß h 5


• \ V) FAT

<³ ð 12.1> n Û ¼ß ¼½ É{ + ~ © ÓZ ½ _ O $

0 í xq p §: ] X H5 q Å ¸ 5 q½ Å É{ + © ½ É{ + Ò © o ½ É{ + © H í ºÃ Ä º Ð: x Ð: x ] f X ºÃ Ä º∗ ? § £ ºÃ Ä º

– MSDOS\ " f 6 xô Ç ½ É{ + ~ © ÓZ ½ O – n Û ¼ß ¼_ { 9  Òì r\ ^ ¦2 ¤\ @ /ô Ç_ s ^ ¦` ¦ Ä »t ô Ç . nÛ ¼ß ¼_ ^ ¦2 ¤ s _ s ^ ¦\ Ç ô Ós ½ Ä »t ÷ &9, ^ ¦2 ¤ ñ\ _ K Ò o a ) .

*:

{ 9 ^ 5 q/ Å Nç B \ ß $ ÷ © &# Qe ` ¦

Ä â º

– n 7 Ðo Ó\ ½ H

{ _ 9 ' Í P :^ ¦2 ¤ ñ ¦Ä \ »t ô Ç . s ^ ¦2 ¤ ñ\ K { © H_ s ¦_ ^ Ó\ ½ H

{ _ 9 6 §^ £ ¦2 ¤ ñ\ ¦Ä »t Ç ô .

{ 9 _ t } ^ ¦2 ¤\ K { © H_ s ¦_ ^ Ó\ ½ H

{ _ 9 = Q` å ¦ ? / H: ¤Ã £ ºô Ç ° ‫כ‬s ú Ä »t a ) .

{ j 9 P :^ ¦2 ¤` ¦{ l 9 0 AK { 9 H^ ¦2 ¤_ Ã º – 5 q½ Å É{ + : 1 © – ½ É{ + : j − 1 © – Ò o ½ É{ + : i + 1, # © l " f i Hj^ ¦2 ¤` ¦{ l 9 AK 0 { 9 HÒ o ^ ¦2 ¤_ Ã º

– 6 x÷ &t · § ú H^ ¦2 ¤\ K { © H_ s ^ ¦ Ó ½ _ ° ‫ כ‬ ú r 0s É . ^ ¦2 ¤_ ½ É{ + © r_ É s ^ ¦\ " f ° ‫כ‬s ú 0 Ó` ½ ¦¹ Ô 1 ½ É{ + K © ï r .

• + ½{ É ~ © ÓZ ½ _ O é © & ß ` h ¦ ¸¿ º ¸6 Ö x l 0 AK # Q ÓZ ½ ~ ` O ¦ Êa < 6 x H

Ä â º e .

– Ð r É Ò o` ¦0 AK FAT` ¦H r # Ç ô . 12.4.3

– V \) r

É { \ 9 @ /K " f H 5 q½ Å É{ + ~ © ÓZ ½ ` O ¦ 6 x ¦

{ 9 s & t Ò o ½ É{ + ~ © ÓZ ½ Ü O ¼ Ð ¨ ô 8 Ç .

ß t à Ŷ £R s ê

• Ò o ½ É{ + © rn É Û ¼ß ¼_ ô Ç^ ¦2 ¤\

{ 9 _ Qt ¦2 ^ ¤\ @ /ô Ç í ' \ ¦Ä »t H~ ÓZ ½ s O . s ^ ¦ 2 ¤` ¦a cê Ë >¡ · ´s ô Ç . • Ò o ½ É{ + ~ © ÓZ ½ O r

É { 9 \ @ /ô Çf ] ] X H X ` ¦6 xs > K ï r .

Å Ã Ý « må ËP ¾

12.5.1

² R s ' ð [

• qà Ô 7 ' (bit vector) ~ ÓZ ½ \ O " f H y ^ ¦2 ¤ 1q à Ô\ ¦ 6 x # ^ ¦2 ¤_ ½ É{ + # © Â Ò\ ¦ p · . ¦2 ^ ¤s I © s s ° ‫כ‬s ú 1s ¦, ½ É{ + ÷ © &# Qe ¼ Ü 0s .

• © & : Ò h o ½ É{ + ~ © ÓZ ½ O r É ½ É{ + ~ © ÓZ ½ _ O & © ` h ¦ ¸¿ º t ¦e Ü ¼9, # l \ Æ Ò Ð rf É ] ] X X H ` ¦t ¶ " éô Ç .

• © & : ' h Í P : ^ ¦2 ¤` ¦¹ Ôl 1 é í ß H 9 ´ òÖ ¦ s h & . s ‫כ‬ rô É Ç0 >× ¼? /\ " fq à Ô_ ° ‫כ‬s ú 1 0 Í ' Au \ ¦¹ Ô 1 Å Ò Hl > "

§ î

# î Q Ð: x] j/ N÷ B & M l :ë Hs .

• ß é& : Ò h o ^ ¦2 ¤Ä »t \ ¦0 Aô Ç/ Nç B ß ¸! QK × ¼ r > F ô Ç . • Ò o ^ ¦2 ¤_ ß ¼l – ~ Ód ½ : % 6 §\ £ Hn Û ¼ß ¼_ ô Ç^ ¦2 ¤ë Ò ß o ^ ¦2 ¤Ü ¼ н É{ + ô © Ç . ë ß s s © ‫כ‬ 9 ¹ o Û ¼à Ô+ AI þ ÐÒ o ^ ¦2 ¤` ¦Ä »t ô Ç .

• qà Ô7 ' ~ ÓZ ½ O rs É 7 ' \ ¦ ¸¿ ºÅ Òl % 3 u © \ »t Ä ½ É +

Ä â º\ ë ´ ß òÖ ¦& Ü h ¼ Ð 6 x½ ÉÃ + ºe . 12.5.2

– é > ß Ò o ~ Ód ½ : é > ß _ Ò o ^ ¦2 ¤` ¦Ä » t H~ Ód ½ s .

Å+ ì ÇP s ­ ²

• ^ ¦2 ¤` ¦ o Û ¼à Ô+ AI þ ÐÄ »t ¦, ' Í ¦2 ^ ¤\ @ /ô Ç í ' \ ¦î r%

^ ò ] j Å Òl % 3 u © \ »t Ä H~ Ód ½ s .

– ½ Ë~ + Ód ½ : Ò o ^ ¦2 ¤_ 15> h&

ñ ¸_ í ' \ ¦ inode\ Ä »t H~ Ód ½ Ü ¼ Ð, s × æ@ /  Òì r Ó ½ rf É ] Ò X o ` ¦Ä »t ¦, Qt Ó ½ r É é > ß Ò o ~ Ód ½ ` ¦ 6 x H~ Ód ½ s . s _ ‫כ‬ & © h r É rß É ¼l _

{ 9 rZ É > ¸_ o Ò ^ ¦2 ¤s 9 ‫כ‬ ¹\ O . 12.4.4

12.5

• ^ ¦2 ¤3 q2 l ¤\ @ /ô Çí H r ´ òÖ ¦& s h t 3 w l 9, Ò# Å Q ß ¼l _ / Nç B ` ß ¦¹ Ôl 1 # Q§ > . • s~ Ód ½ r É Ó ½ © ' ^ Í ¦2 ¤` ¦½ É{ + \ © 6 x H FATõ ° ú r½ É É{ + ~ © Ód ½ \ " fë ß 6 x½ Éà + ºe .

Ë R V « Ö

• n Û ¼ß ¼/ Nç B ½ ß É{ + ~ © ÓZ ½ _ O $

0 í x p r$ É / © Nç B ´ ß òÖ ¦ ] õ H X 5 q Å ¸¿ º t £ ¤ 8 \ " f ¦ 9 a ) .

12.5.3

õ § ÜË s S

• n> h_ ^ ¦2 ¤Å Ò è\ ¦' Í ^ ¦2 ¤\ $ © ¦, n h× > æ t } Å Ò è HÕ ª 6 § n − 1> £ h_ ^ ¦2 ¤ Ò Å è\ ¦ í Ê < ¦e H^ ¦2 ¤` ¦ o v ¸2 ¤Ä »t H~ Ód ½ s .

• X ]H 5 q Å ¸ 8 ¤ £ \ " f ½ É© + { ~ ÓZ ½ ` O ¦ q § 5 q ½ Å É{ + s © Ä © ºÃ º . Õ ª Q

{ 9 _ o ¦@ \ /% l # Q§ > ¦, n Û ¼ß ¼/ Nç B ½ ß É{ + s © # Q§ > . ³ ð 12.1 Ð Ã ¸ 6


12.5.4

Æ ØË U Ê S

14.2.2

• SSTF(Shortest-Seek-Time-First) · ú ¦o 7 § £ r É ÐÒ Ã o ç r s ß © r É Â ‫כ‬ Ò' $ % o H~ Ód ½ s .

• 5 q½ Å É{ + \ © " f 6 x½ Éà + ºe H~ ÓZ ½ Ü O ¼ Ð" f, ^ ¦ 2 ¤` ¦ o Û ¼à Ô Ð» Ät l Ð H / Nç B ` ß ¦ o Û ¼à Ô ÐÄ »t ô Ç . s M : / Nç B ß ' Í ¦2 ^ ¤Å Ò èü <8 x^ ú ¦2 ¤º Ã\ ¦Ä »t ô Ç .

• \ V) Û ¼H × ¦a A õ 65, 67, 37, 14, 98, 122, 124, 183

£ 7 % ×$ * ×Ä © ¿

14 14.1

^ ¹ §f ¡ e : 236

â g «æ «Ä © ¿

• Ï UÅ ã Òa > Ë ³ & s © µ ÏÒ 1 t½ q ÉÃ + ºe . • SSTF · ú ¦o 7 § £ rþ É j& h r É m .

• n Û ¼ß ¼ H Ho 7 & Ü h ¼ ÐB Ä ºH { 9 " ¶^ é ¦2 ¤_ C P \ Ðç Å ß Ò÷ &9, s ^ ¦! 3 r É 5 x_ Å þ j èé 0 ß As . ¦2 ^ ¤_ ß ¼l H Ð: x 512 KBs .

37, 14, 65, 67, 98, 122, 124, 183 ^ ¹ §f ¡ e : 208

• s ^ ¦2 ¤[ t þ rn É Û ¼ß ¼_ o l' ! Ð © a ) . Õ ª Q ¦| Ô Ó! ¾ o' l _ rF > 0 x$ p

õ í à ÔÏ { þ ! © l o' _ à º \ ¦Ã ºe Ü ¼Ù ¼ Ð Ho 7 & í h H" f\ ¦Ó to ü & í h H" f Ð © H ‫כ‬ s~ t 1 ú § · .

14.2

SSTF ­ > ú ÚË n  S

14.2.3

SCAN ­ > ú ÚË n  S

• ¼ Û p· ± ú ¦o 7 § £ rô É ÇA ¤= á Q\ å " f rA É ¤= á QÜ å ¼ Ðs x l 1 " f% o ô Ç 6 §~ £ Ó ½ Ó` ¾ ¦ Ë ¨# Q% o H Ód ½ ~ s . r´ É ú ÐÓ qo s Z s ' · ú ¦o 7 §s £ Ç ô .

â g «æ «â «X

·ÿ ä b

• n Û ¼ß ¼_ ] X Hr ç \ ß © H%

ò Ó` ¾ ¦Å Ò H ‫כ‬ r É ÐÒ Ã or ç (seek time)s ß .

• V \) 0Ü ¼ ÐK × ¼ ¹ §f ¡ s ¦e ` ¦M :Û ¼H × ¦a A õ 37, 14, 0, 65, 67, 98, 122, 124, 183

• n Û ¼ß ¼{ Ø 9 ¦§ ‫כ‬ 4 ¹' A õ r É 6 §õ £ ° ú r& É

ñ Ð\ ¦t &

ñ . Ç ô

^ ¹ §f ¡ e : 236 • å =\ Q 0 >| 9 Ã º2 ¤D h\ v> ¸ Ì Ã H‫כ‬ ¹' A` õ ¦ Ð% o K Å Òt 3 wô l Ç . " f= Q\ å 0 >& ` ¦ :Ç M ©\ " f@ /l ¦e H‫כ‬ ¹' A õ r@ É /Â Òì rì Í@ ø /A ¤ á QÂ å = Òì r\ e ` ¦ s ‫כ‬ . s " ¶o é \ ¦s 6 xô Ç s ‫כ‬ C-SCANs .

– í _ ß Ä »+ A: { þ 9 § ¢ 4 ¸ HØ ¦§ 4 – n Û ¼ß ¼? /_ 0 Au ¢ ¸ HÅ Ò è – Å Òl % 3 u © ? /_ 0 Au – 5 x½ Å É + s à Ô_ à º

• V \) 199Ü ¼ ÐK × ¼ ¹ §f ¡ s ¦e ` ¦M : C-SCAN ú · ¦o 7 §_ £ Û ¼H × ¦a A õ

• n Û ¼ß ¼× ¼ s Ú Ôü <] j# Ql ¸¿ º 6 x 0 x p { 9 Ø ¦§ ‫כ‬ 4 ¹' A õ r7 É ¤r £ % o | cà ¨ ºe . Õ ª Q Ñ t× ü æ\ r É ` ‫כ‬ ¦" fq Û ¼ ¦e Ü ¼ ‫כ‬ ¹ A õ ' rÇ É ©\ " f@ /l # ô Ç .

65, 67, 98, 122, 124, 183, 199, 0, 14, 37 ^ ¹ §f ¡ e : 382 • z] ´ j½ ¨ ³\ & " f H 0¢ ¸ H 199 t s 1 x l t · § ú H . s X > O H ` ‫כ‬ ¦ LOOK Û ¼H × ¦a A· ú ¦o 7 § £ s ô Ç .

• \ V) n Û ¼ß ¼K × ¼_ ³F & 0 Au 53 à ÔÏ s þ ¦, n Û ¼ß ¼_ 8 xà ú ÔÏ Ã þ º 200s ¦ 9, n Û ¼ß ¼Ç © \ e H‫כ‬ ¹' A_ õ Ò Å è 6 §õ £ ° ú ¦ .

• V \) 199Ü ¼ ÐK × ¼ ¹ §f ¡ s ¦e ` ¦M : C-LOOK ú · ¦o 7 §_ £ Û ¼H × ¦a A õ

98, 183, 37, 122, 14, 124, 65, 67

65, 67, 98, 122, 124, 183, 14, 37 14.2.1

FCFS ­ > ú ÚË n  S

^ ¹ §f ¡ e : 322

• é © í ß Hô Ç~ ÓZ ½ s O t ë K ß × ¼¹ §f ¡ e ` ¦þ j& h o t · §l ú M :ë H\ $

0 í xs p i ¦Ã ºe .

14.3

­ O ± å ËP ¾

• \ V) Û ¼H × ¦a A õ

14.3.1

­ O ± º Ê » Ë S

• ü Óo t & h íÐ h A: n Û ¼ß ¼\ ¦n Û ¼ß ¼] j# Ql { 9 ¦ tà þ j ºe ¸2 ¤! l o' é 0 ß A Ð ¾ º H \ ` O ¦´ ô ú Ç . r´ É ú Ð$ / L å íÐ h A(low-level formatting)s Ç ô . Ð: xÓ to ü & Ü h ¼ Ð íÐ a ) I © Ð/ N B \ © " f

98, 183, 37, 122, 14, 124, 65, 67 ^ ¹ §f ¡ e : 640 7


Ø ¦ a ) . ! l o' H Ð: xK 8, X <s ' %

% ò (512 i s à Ô), à ÔY U{ 9 Q н ¨$

í a ) . K 8ü <à ÔY U{ 9 Q\ H! o' l ñ, ¸À Ó&

& ñ

ñ ï× ¼1 x` p ¦l 2 ¤ l 0 A K 6 x a ) . • 7 o H & h íÐ h A:

w ` ¦ë ß HÊ ê\ íl

{ r 9 Û ¼% 7 ` ¦& F h Hõ &

` ñ ¦´ ô ú Ç . 14.3.2

¼² ÷ § u ×

• (É Ó' _ " ¶` é ¦ v  Òà ÔÛ ¼à Ôê á Á Ô ÐÕ ªÏ þ r É r Û ¼% 7 _ ¸ H½ ¨$

‫כ‬ í ¹ è\ ¦ íl o ¦, n Û ¼ß ¼ \ " fî r%

^ ò ] j& V ` , ¦Å Òl % 3 u © \ & F h ô Ç 6 §& £ V ` , ¦z ´' ô Ç . •  Òà ÔÛ ¼à Ôê á Á Ô ÐÕ ªÏ þ r ROM\ É & F h ÷ &# Qe . s _ ‫כ‬ & © É h r 6 §õ £ ° ú . – % 6 §Â £ Òh A÷ &% ` 3 ¦: M0 Au ¦&

÷ ñ &# Qe # Q z ´ ' l ~ 1 . – ROM r{ É l 9 6 xl % 3 u © s Ù ¼ Ð s Q Û ¼\ y % ÷ i &t · § ú H . Õ ª Q ROM\ & F h  Òà ÔÛ ¼à Ôê á Á Ô ÐÕ ªÏ þ ¦ `

â l # Q§ > . s ë H] j M :ë H\  Òà ÔÛ ¼ à Ôê á Á Ô ÐÕ ªÏ _ þ {  9 Òë ROM\ ß & F h ¦, Q t Hn Û ¼ß ¼\ Ä »t ô Ç . ROM\ e Há Ô ÐÕ ªÏ þ _ % ½ i É + rs É á Ô ÐÕ ªÏ ` þ ¦Å Òl % 3 u © \ & F h # z ´ ' H s ‫כ‬ . •  Òà ÔÛ ¼à Ôê á Á Ô ÐÕ ªÏ s þ & F h ÷ &# Q e H n Û ¼ß ¼ ¦2 ^ ¤` ¦Â Òà Ô^ ¦2 ¤s 9,  Òà Ô^ ¦2 ¤s e Hn Û ¼ß ¼\ ¦À Òà Ôn Û ¼ß ¼¸ ¢ H rÛ ¼% n 7 Û ¼ß ¼ ô Ç . 14.3.3

ÚS s ÷ s÷ ë § u ×

• MS-DOS\

Ä â º\ H FAT _ s ^ ¦\ Ô ¦| Ó^ ¾ ¦2 ¤` ¦ l 2 ¤ # 6 x t · § ú ¸2 ¤ô Ç . 6 x ¸× æ\ Ô ¦ Ó^ ¾ | ¦2 ¤` ¦µ Ï| 1

: ¤Ã £ ºô Çá Ô ÐÕ ªÏ ` þ ¦Ã º' # s ` ‫כ‬ ¦Ô ¦| Ó^ ¾ ¦2 ¤` ¦l 2 ¤ô Ç 6 §\ £ r 6 x K ô Ç . • SCSIü <° ú r É Ð 4 ¤¸ ô ú Çn Û ¼ß ¼ H# ì r! o' l \ ¦ Ä »t # 1 xÜ l ¼ Ð §^ # 6 xô Ç . 7 ¤, Ô £ ¦| Ó ¾ l ! o' \ ¦µ Ï| 1

Õ ª z ´` ¦l 2 ¤ ¦, s ! o' l ü < # ì r! l o' \ ¦ aK ' Z ~ H . Õ ª 6 §Â £ Ò' s l ! o' \ ¦] H X 1 xÜ l ¼ Ð aô ' Ç# ì r! o' l \ ¦ 6 xô Ç . • # ì r! o' l Y o O b # Q4 Re Ü ¼ n Û ¼ß ¼Û ¼H × ¦ A· a ú ¦o 7 §_ £ r% É

ò Ó` ¾ ¦p ; 2 . " f! o' l l ` l (sector slipping) l Z ` O ¦ 6 xô Ç . à ÔÏ þ # ì r! o' l \ ¦¿ º# QÔ ¦| Ó! ¾ o' l s Ê ê_ ¸ H! o' l ¦Õ \ ª _ ‫כ‬ 6 §! £ o' l Ð ÷ © & ¸2 ¤ 6 xô Ç .

8


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.