Professional Documents
Culture Documents
五分钟学大数据 操作系统篇
五分钟学大数据 操作系统篇
ᬰᑕٌ݊ਫሿ
ᬰᑕጱਧԎં
ᬰᑕ
ᬰᑕฎᩒრ᧣ଶړᯈጱच֖҅ܔᕚᑕฎCPU᧣ଶړᯈጱच̶֖ܔ
ᬰᑕ׀ӷᐿᡦګғᡦ॒ቘᡦٖਂ̶
ᕚᑕԏᳵݢզوՁᡦٖਂ҅֕ฎྯӞӻ᮷ํݱᛔጱᡦ॒ቘ̶
ݢզ᧣አfork()ᬰᤈᕚᑕጱ॔҅ګᘒڠୌӞӻෛጱᬰᑕ̶᧣አfork()ጱᬰᑕԅᬰᑕ҅ෛԾኞጱᬰᑕ
ԅৼᬰᑕ̶
ٖ໐᭗ᬦӞӻԅӞӻᬰᑕຽᦩ꧊ᘏPIDຽᦩྯӞӻᬰᑕ҅PIDฎӞӻහ҅ਫᴬӤฎӞӻintᔄ̶ࣳ
ᬰᑕԏᳵਂࣁӞӻกดጱᖀಥىᔮ̶ಅํጱᬰᑕ᮷ฎPIDԅ1ጱinitᬰᑕጱݸդ̶
ᬰᑕൈᬿᒧԏᳵํӞӻݻᆿᬰᑕጱᰒ҅ৼᬰᑕጱ᱾ᤒ̶
ᬰᑕڠୌ
linuxڠୌᬰᑕጱӷӻڍහғfork()exec()̶Ḓضforkڍහ᭗ᬦ೩ᨬ୮ڹᬰᑕڠୌӞӻৼᬰᑕ̶ᆿᬰ
ᑕӨৼᬰᑕጱڦ܄ՐՐࣁԭPID̵PPIDᩒრ̵ᕹᦇᰁ̶
execڍහᨮᨱݢݐಗᤈկਖ਼ٌ࣎ࣈفᑮᳵᬩᤈ̶
forkڍහֵአٟ೩ᨬᶭਫሿٟ҅೩ᨬฎӞᐿവ᬴ኜᛗع೩ᨬහഝጱದ̶ٖ໐ଚӧ॔ګᬯӻᮎӻ
ᬰᑕࣈ࣎ᑮᳵ҅ᘒฎᦏᆿᬰᑕৼᬰᑕوՁݶӞӻ೩ᨬ̶Ԟ੪ฎوݝՁٟ҅ف೩ᨬ̶
forkਫᴬᲀ॔ګᆿᬰᑕጱᶭᤒզ݊ᕳৼᬰᑕړᯈࠔӞጱᬰᑕൈᬿᒧ̶
forkڍහᬬࢧ꧊:
ᨮහғইຎڊᲙ҅ڞfork()ᬬࢧ-1,ྌဌํڠୌෛጱᬰᑕ̶๋ڡጱᬰᑕՖᆐᬩᤈ̶
̴̴ ᵭғࣁৼᬰᑕӾ҅fork()ᬬࢧ0
̴̴ ྋහғࣁᆿᬰᑕӾ҅fork()ᬬࢧྋጱৼᬰᑕጱPID
forkڍහ᧣አӞེܩᬬࢧӷེҔݻᆿᬰᑕᬬࢧৼᬰᑕጱID҅ৼݻᬰᑕӾᬬࢧ0҅
̴̴ᬯฎࢩԅᆿᬰᑕݢᚆਂࣁஉग़ᬦৼᬰᑕ҅ಅզᶳ᭗ᬦᬯӻᬬࢧጱৼᬰᑕID᪙᪵ৼᬰᑕ҅
̴̴ᘒৼᬰᑕํݝӞӻᆿᬰᑕ҅՜ጱIDݢզ᭗ᬦgetppidݐ̶
ᬰᑕጱᇫாഘ
ӣᇫாཛྷࣳ
ᬰᑕᛗํ3ᐿᇫாғ
1.ᬩᤈாғᬰᑕܛአ॒ቘᬩᤈጱᇫா̶
2.੪ᖃᇫாғᬰᑕٍ॓ᬩᤈᇫா҅ᒵஇᔮᕹړᯈ॒ቘզٌᬩᤈጱᇫா̶
3.ᒵஇாғԞฎᴥलா፻፦ா҅Ԟฎࣁᒵஇӻᇫாਠ౮ጱᇫா̶
ᬰᑕᇫா۸
ᬰᑕᇫா۸ጱܻࢩ:
1.ᬩᤈா—>੪ᖃா:ᬩᤈᬰᑕᒵஇֵአᐿᩒრԪկݎኞ̶
2.ᒵஇா——>੪ᖃா:ಅᵱᩒრکჿ᪃̶
3.ᬩᤈா———>੪ᖃா:ᬩᤈᳵᇆکԧ҅ᘏๅṛսضᕆጱᬰᑕ̶
4.੪ᖃா———>ᬩᤈாғCPUᑮᳳ҅ᭌೠӞӻ੪ᖃᬰᑕ̶
Բᇫாཛྷࣳ
ෛीӷӻᇫாғෛୌாᕣྊா̶
ෛୌாғᬰᑕᤩڠୌጱᇫா҅ᬰᑕ๚ᬰف੪ᖃᴚڠ҅ڜୌᬰᑕᵱᥝӷྍғ1҅ԅෛᬰᑕړᯈಅᵱ
ᩒრ҅ୌᒈᤒጱᓕቘ௳מҔᆐᦡݸᗝྌᬰᑕԅ੪ᖃா҅ᒵஇᤩ᧣ଶಗᤈ̶
ᕣྊாғᬰᑕਠ౮ձک҅ۓᬡྋଉᕮᅩ̶
Ӡᇫாཛྷࣳ
ᇫா۸ٍ֛ܻࢩғ
ᬰᑕጱൈᬿᕟ౮
ᬰᑕฉ؟
ᬰᑕጱᇫாࣁӧෙݎኞݒ۸҅ڰᬰᑕጱٌٖ݊ᇫாᵞݳᑍԅᬰᑕฉ̶؟Ԇᥝ۱ތզӥᥝᔰғ
1.ᬰᑕഴࣘګ
ਂؙᬰᑕຽப̵௳מሿ࣋௳מഴ௳מګ
2.ᬰᑕᑕଧࣘ
ᤩಗᤈጱᑕଧ̶
3.ᬰᑕ໐ஞ
ਂכӾෙ҈ଉሿ̶࣋
4.ᬰᑕහഝࣘ
ਂכᐺํහഝ̶
ࣁ֢ᔮᕹӾ҅ᬰᑕᇔቘᦶ᷌ඪ೮ᬰᑕᬩᤈጱሾहݳ౮ԅᬰᑕӤӥ̶ᬰᑕӤӥํӣӻ᮱ړᕟ
౮ғ
1.አಁӤӥ
ኧྋ̵හഝ̵وՁਂ̵܄ؙአಁᕟ౮҅ܛአᬰᑕጱᡦࣈ࣎ᑮᳵ̶
2.ੀਂӤӥ
եᦇහ̵ᰒ̵ഴګੀਂᒵᕟ౮̶
3.ᔮᕹӤӥ
ኧᬰᑕഴ̵ࣘګԆਂᓕቘ̵௳מ໐ஞᕟ౮̶
ᕚᑕٌ݊ਫሿ
فग़ᕚᑕጱۖ
ԅԧٺᑕଧଚݎಗᤈಅ՞ڊጱᑮᲀ҅ฎጱଚێݎଶๅᕡ̵ଚݎๅঅ̶
ᕚᑕጱᕟ౮
ᕚᑕᬰᑕӾᚆड़ଚݎಗᤈጱਫ֛҅ฎᬰᑕጱᕟ౮᮱҅ړԞฎ॒ቘ᧣ଶړᯈጱच̶֖ܔ
ᬰᑕጱᕟ౮᮱ړғ
1.ᕚᑕጱࠔӞຽᦩᒧզ݊ᕚᑕᇫா௳מ
2.ԅᬩᤈಅਂכጱᕚᑕӤӥҔݢզᕚᑕऩᑍᬰᑕӾӞӻᇿᒈጱᑕଧᦇහ̶
3.໐ஞ҅ࣁ໐ஞாૡ֢݇ਂכහ҅ࣁڍහ᧣አጱᬬࢧࣈ࣎
4.አԭਂනᕚᑕੴ᮱ݒᰁአಁጱᐺํਂ̶܄ؙ
ᕚᑕጱᇫா
ᬩᤈ̵੪ᖃᒵஇᇫா҅ဌํ೯᩸ᇫா̶
ग़ᕚᑕጱսᅩฎғṛᔮᕹᚆٍ֛҅ᤒሿࣁள᭛ᕚᑕڔഘ҅ᜓԆਂᑮᳵ҅ٺᓕቘᲀҔ᭗מฃ
ԭਫሿҔଚݎᑕଶṛ̶
ᕚᑕጱਫሿ
ग़ᕚᑕጱਫሿړԅӣᔄғአಁᕆᕚᑕ̵ٖ໐ᕆᕚᑕႰݳොୗ̶
ٖ໐ᕆᕚᑕ
ᕚᑕጱᓕቘጱૡ֢ኧٖ໐ਠ౮ٖ҅໐ԅٌڠୌᬰᑕӞӻचᕚᑕ̶
սᅩғݶ᧣ଶݶӞᬰᑕӾጱग़ӻᕚᑕଚݎಗᤈҔᬩᤈ᭛ଶள҅ಗᤈපሲṛ̶
ᗌᅩғཛྷୗڔഘᔮᕹᲀय̶़
አಁᕆᕚᑕ
ᕚᑕጱᓕቘฎଫአᑕଧਠ౮̶
սᅩғᕚᑕڔഘ෫ᶳֵአٖ໐ᇙොୗ̶
ᗌᅩғӞӻአಁᕚᑕጱᴥल᩸ෆӻᬰᑕጱᕟल̶
Ⴐݳୗᕚᑕ
ܨඪ೮አಁᕆᕚᑕ҅ํඪ೮ٖ໐ᕆᕚᑕ̶
॒ቘ᧣ଶ
॒ቘ᧣ଶጱ੶ེ
1.ṛᕆ᧣ଶ
֢ӱ᧣ଶ̵ᳩᑕ᧣ଶ҅ࣁग़᭲ಢ॒ቘ֢ᔮᕹӾ҅ᬌفᔮᕹጱӞಢ֢ӱӾೲᆙᶼਧጱ᧣ଶᒽኼᭌ
ᝑଗጱ֢ӱᬰفԆਂ҅ԅٌړᯈಅᵱጱᩒრ҅ଚڠୌ֢௶ጱፘଫአಁᬰᑕݸਠ౮ۖސᴤྦྷጱṛᕆ᧣
ଶձ̶ۓ
2.Ӿᕆ᧣ଶ
ଘᤍ᧣ଶ̵Ӿᑕ᧣ଶ҅໑ഝᨼਂᩒრ٬ਧԆਂӾಅᚆᕑጱᬰᑕහᰁ҅ଚ໑ഝᬰᑕጱ୮ڹᇫா٬ਧ
ᬀۗਂؙጱԆਂӾጱᬰᑕጱغഘ̶
3.֗ᕆ᧣ଶ
ᬰᑕ᧣ଶ̵ᕚᑕ᧣ଶ̵Ꭸᑕ᧣ଶ̶Ԇᥝጱۑᚆฎ໑ഝᐿܻڞ٬ਧ੪ᖃᴚڜӾጱᮎԶᬰᑕ҈ٖ໐ᕆᕚ
ᑕ឴॒ቘ҅ଚਖ਼॒ቘᦏڊᕳਙֵአ̶
॒ቘ᧣ଶᓒဩ
֗ᕆ᧣ଶጱ๋ڡᬰᑕ̶
֗ᕆ᧣ଶጱचᔄࣳ
ہ५ୗᓒဩ
ᶋہ५ୗ
֗ᕆ᧣ଶᓒဩ
ضض๐(ۓFCFS)
ᶋہ५ୗ᧣ଶᓒဩ҅ฃԭਫሿ҅֕පሲӧṛ̶
๋Ꭸ֢ӱսضᓒဩ(SJF)
ᶋہ५ୗ᧣ଶᓒဩ҅ฃԭਫሿ҅֕ಗᤈපሲӧṛ̶
սضᕆ᧣ଶᓒဩ
໑ഝᕚᑕጱսضᕆᬩᤈ̶
᧣ଶᓒဩ
Ԟฎᳵᇆ᧣ଶ̶
CFSلଘ᧣ଶᓒဩ
LinuxጱCFS᧣ଶଚဌํፗളړᯈᳵᇆکᬰᑕ҅ਙฎਖ਼॒ቘጱֵአྲړښᕳᬰᑕ̶ᬯզ҅ᬰ
ᑕಅ឴ݐጱ॒ቘᳵٌਫฎᔮᕹᨮੂڔፘىጱ̶ᬯӻྲֺᬰӞྍᬮտතکᬰᑕnice꧊ጱߥ҅
nice꧊֢ԅ᯿ਖ਼᧣ෆᬰᑕಅֵአጱ॒ቘᳵྲٍ҅ํๅṛnice꧊(ๅ֗սض)ጱᬰᑕਖ਼ᤩᩙԨ֗
᯿҅ᘒӹ०Ӟ᮱ړጱ॒ቘֵአྲ҅ᘒٍํๅੜnice꧊(ๅṛսضᕆ)ጱᬰᑕڞտᤩᩙԨṛ᯿҅
ᘒಶܛๅग़ጱ॒ቘֵአྲ̶
ٖ໐ྍݶՕᕨ
ԁኴ܄ᒋԩկ
ԁኴ܄੪ฎᦢᳯ֢وՁහഝጱդᎱྦྷ̶
عଚݎᒋԩկᑍԅ̶ྍݶ
ᓕᑕ:ړවࣁݱӻᬰᑕӾጱԁኴ܄ᵞӾ᩸ᓕቘ҅ଚوՁᩒრአහഝᕮುࣈᤒᬡڊ҅ኧԭԁ
ኴ܄ฎᦢᳯوՁᩒრጱդᎱྦྷ҅ୌᒈӞӻᑃԡᬰᤈᓕቘ̶ᬯӻᑃԡ੪ฎᓕᑕ̶
Linuxྍݶګ
1.ܻৼ֢
ܻৼ֢ࣁಗᤈጱᬦᑕӾӧտᤩෙ҅զᴠྊᓌܔጱᒋԩկݎኞ҅Ꮯכ֢ᕮຎጱྋᏟ҅॔ጱ
ᲁګᚆड़ࣁܻৼ֢ጱचᏐӤୌ̶
2.ٖ໐ݩמᰁ
ࣁLinuxӾֵአᒵஇᴚڜਫሿٖ໐ݩמᰁ̶
3.ᒵஇᴚڜ
ଚݎᬰᑕྍݶ҅ݝᥝᒵஇկӧჿ᪃҅੪ᶳ೯᩸҅නفፘଫጱᒵஇᴚ̶ڜ
4.ىӾෙ
ىӾෙฎٖ໐ாಗᤈጱᑕଧ֢ԅӞӻԁኴ܄כಷጱӞᐿಋྦྷ҅ԆᥝכಷӾෙ॒ቘᑕଧԞᥝᦢᳯጱ
හഝᕮ̶
5.ᛔᲁ
ᛔᲁฎ๋ᓌܔጱӞᐿᲁܻ҅ᲁጱݐ꧊ฎ0ᤒᐏᩒრݢአ҅ᲁጱݐ꧊ฎ1ᤒᐏᩒრےᲁ̶
ےᲁ
Linuxᛔਫሿپᐿӧݶጱᲁݱ҅ګᐿᲁԏᳵጱڦ܄:୮ᲁ૪ᕪᤩٌ՜ᕚᑕ೮ํ҅ӞԶᲁᤩԩአᓌ
ܔጱಗᤈᒵஇ҅ᘒݚӞԶᲁտֵ୮ڹձۓ፻፦ፗکᲁݢአԅྊ̶
᭜౮ଚݎಗᤈጱܻࢩ
Ӿෙ:ӾෙپԒݢզࣁձ֜ݎྍڰኞ҅Ԟ੪ݢᚆᵋෙ୮ڹྋࣁಗᤈጱդᎱ̶
Ӿෙtasklet:ٖ໐ᚆࣁձ֜ࠏڰᯯ᧣ଶӾෙtasklet,ෙ୮ڹྋࣁಗᤈጱդᎱ.
ٖ໐ಶܛ:ࢩԅٖ໐ٍํಶܛ҅ಅզٖ໐ጱձݢۓᚆᤩٌ՜ձۓಶ̶ܛ
፻፦݊አಁᑮᳵጱྍݶ:ࣁٖ໐ጱᬰᑕݢᚆᵋ፦҅ᬯ੪տࠏᯯ᧣ଶᑕଧ҅ᘒᛘ᧣ଶӞӻෛጱአಁᬰ
ᑕಗᤈ̶
ᑍग़॒ቘ:ӷӻग़ӻ॒ቘݢզݶಗᤈդᎱ̶
ࣁӾෙ॒ቘᑕଧӾᚆعଚᦢݎᳯጱਞقդᎱᑍ֢ԅӾෙਞقᎱ҅ࣁᑍग़॒ቘጱӾᚆعଚݎ
ᦢᳯጱਞقդᎱᑍԅSMPਞقդᎱ҅ࣁٖ໐ಶܛᚆعଚᦢݎᳯጱਞقդᎱᑍԏԅಶܛਞقդᎱ̶
ԧᥴᵱᥝכಷՋԍ
य़ग़හٖ໐හഝᕮᵱᥝےᲁѺ
ᕳහഝےᲁᘒӧฎᕳդᎱےᲁ
ྒᲁ
ྒᲁԾኞጱկ:
1.կ
2.ܛአᒵஇկ
3.ӧہݢ५
4.ሾᒵஇ
ᴠྊྒᲁጱᒽኼ
ᶼᴠྒᲁ̵ྒعᲁ̵༄ၥྒᲁ̵ᥴᴻྒᲁ
ᬰᑕ᭗מ
ᬰᑕԏᳵፘԻഘ௳מጱૡ֢ᑍԅᬰᑕ᭗מ
ᬰᑕ᭗מጱොୗ:
1.ݩמ᭗מګ
2.ᓕ᭲᭗מ᭗מګ
3.ၾ௳փ᭓᭗מګ
4.ݩמᰁ᭗מګ
5.وՁٖਂ᭗מګ
ݩמ᭗מګ
ݩמฎӞᐿӾෙ҅ฎփ᭓Ꭸၾ௳ጱᓌܔ᭗מ҅ګ᭗ᬦݎᭆਧݩמ᭗ᎣᬰᑕӻྍԪկݎ
ኞ҅զᬼֵᬰᑕಗᤈ॒ݩמቘᑕଧ̶
ᓕ᭲᭗מګ
ᓕ᭲ฎᬳᖅٟᬰᑕጱӞӻᇙྛጱկ҅ೲᆙFCFSොୗփ᭓හഝ҅Ԟᚆֵᬰᑕྍݶಗᤈ̶ᓕ᭲ฎݻܔ
ጱ҅ݎᭆᬰᑕᥤᓕ᭲ԅᬌڊկ҅զਁᒧၞጱ୵ୗਖ਼හഝݎᭆکᓕ᭲҅ളݑᬰᑕᥤᓕ᭲ԅᬌفկ҅
ᓕ᭲ളݑහഝ҅ಅզᑍԏԅᓕ᭲᭗̶מ
ᓕ᭲ጱਫᨶฎӞӻوՁկ҅ڥܨአᬀۗਂؙᬰᤈහഝ᭗̶מ
وՁٖਂ᭗מګ
وՁٖਂฎࣁԆӾᬗӞӻلአਂ̵܄ؙᥝ᭗מጱᬰᑕᛔ૩ጱᡦࣈ࣎ᑮᳵฉوکՁٖਂ
̶܄
ၾ௳փ᭓᭗מګ
ԅԧਫሿྍ᭗҅מᶳአᳵള᭗מොୗ҅ᬰᑕԏᳵݎኞᘏളݑၾ௳᭗ᬦӞӻوՁጱහഝᕮ
——מᓟᬰᤈ҅ၾ௳ᤩݢቘᥴ౮מկ҅ྯӞӻמᓟ᮷ํӞӻࠔӞຽᦩᒧ̶
Linuxྍݶګ᭗מګ
Linuxٖ໐ྍݶګ
1.ܻৼ֢
ܻৼ֢ࣁᦤכಗᤈᬦᑕӾӧᤩෙ҅զᴠྊᓌܔጱᒋԩկጱݎኞ҅զᏟכ֢ጱྋᏟ҅॔ጱ
ᲁݢګզࣁܻৼ֢ጱचᏐӤୌ̶Linuxٖ໐ਧԎӷᔄܻৼ֢ :
ܻৼෆ֢ࣳ
ܻৼ֖ࢶ֢:ᰒᰒݒᰁಅਧጱձӞࣘԆਂ܄ऒጱ֖ଧڜᬰᤈ̶֢
2.ٖ໐ݩמᰁ
ࣁLinux֢ᔮᕹӾ҅ԞֵአᒵஇᴚڜӾਫሿٖ໐ֵአጱݩמᰁ̶ګ
3.ᒵஇᴚڜ
Linuxٖ໐ݩמᰁአᶋୗᒵஇਫሿ҅୮ᬰᑕӾಗᤈDOWN֢ᘒᒵஇ҅ਖ਼නفᒵஇݩמᰁᴚ
ڜҔԪਫӤଚݎᬰᑕྍݶ҅ݝᥝᒵஇկӧჿ᪃҅੪ᶳ೯᩸҅නفፘଫጱᒵஇᴚ̶ڜᒵஇᴚڜ
Ԟฎԁኴᩒრٌ҅ᬰᤈץදଫےᲁ҅զعᒋԩկ̶
4.ىӾෙ
ىӾෙฎٖ໐ாಗᤈጱᑕଧྦྷ֢ԅӞӻԁኴ܄כಷጱӞᐿಋྦྷ҅ԆᥝכಷӾෙ॒ቘᑕଧԞᥝᦢᳯ
ጱහഝᕮ̶
5.ᛔᲁ
ᛔᲁฎ๋ᓌܔጱӞᐿᲁܻ҅ᲁጱݐ꧊ԅ0ᤒᐏᩒრݢአ҅ᲁጱݐ꧊ԅ1ᤒᐏᩒრےᲁ̶ᛔᲁஉ؟
ԫݩמزᰁ҅֕ࣁٍ֛ਫሿᬮฎํڦ܄ጱ̶ᝑӞӻᩒრکᛔᲁጱכಷ҅ݚӞӻᦶࢶݐྌᩒრጱ
ٖ໐ֺᑕਖ਼כಷᒵஇ҅ፗکᩒრᥴᲁ̶
IPCګ
ࣁLinuxᔮᕹӾ҅ݩמᰁ̵ၾ௳ᴚوڜՁٖਂᩒრᑍԅIPC(ᬰᑕᳵ᭗)מᩒრ҅አԭᬰᑕᳵ᭗̶מ
Linux׀ᕳአಁጱIPCᩒრฎ᭗ᬦᔮᕹ᧣አਫሿጱ҅ਙժԅᬰᑕ׀ӣᐿ๐ۓ:
1.ԅݩמᰁᬰᑕಅᥝᦢᳯԁኴᩒრᬰᤈכಷ
2.አၾ௳ᴚࣁڜᬰᑕԏᳵզྍොୗݎᭆളතၾ௳
3.ᶼኸوՁٖਂྦྷզ׀ᬰᑕԏᳵԻഘوՁහഝ
IPCᓕ᭲ԏᳵጱ ڦ܄ฎ҅ਙ꧋ᦜݶӞӻӤጱᦜग़ᬰᑕᬰᤈ᭗҅מᘒӧฎᴴԭӷӻᬰᑕ҅Ӭᓕ᭲
ํӞӻᴴ҅ګӷӻᬰᑕᶳฎፘىጱ҅՜ժᶳํݶوጱᐙضᬰᑕ̶
ਂؙᓕቘ
ԆਂᑮᳵӞᛱړԅӷ᮱ړ:Ӟ᮱ړฎᔮᕹ҅܄አԭਂන֢ᔮᕹጱٖ໐ᑕଧහഝᕮᒵ҅ݚӞ᮱ړฎ
አಁ҅܄አԭਂනଫአᑕଧහഝ̶
ਂؙᓕቘ۱ތӞӥۑᚆ:
1.ړᯈӨ݄ᯈ
2.ುฉ
3.ᵍᐶӨوՁ
4.ਂؙӨಘ꧌
ਂؙ
ੀਂ̵ṛ᭛ᖨਂ̵Ԇਂ̵ؙᏺፏ̵ᏺଃ҅ೲᬯӻᶲଧ᭛ଶ᩼᩼֗҅ᮎӻԞ᩼᩼֗
ڥአṛ᭛ᖨਂਂනԆਂӾᕪଉᦢᳯጱ҅௳מզṛᑕଧಗᤈ᭛ଶ̶
ࣈ࣎ഘӨਂכؙಷ
ᖫᦲ:რᑕଧ᭗ᬦᖫᦲᑕଧᖫᑕଧጱ॒ቘ឴ፓຽդᎱ̶
᱾ള:ग़ӻཛྷࣘᬳള౮ԅӞӻਠෆጱݢ᯿ਧ֖ᑕଧ҅ᵱᥝᥴຉٖ᮱क़᮱ᒧݩᤒ҅ᒧݷݩጱአ
۸ԅහ꧊አ҅ᥝਖ਼ၿ݊࣎ࣈਁݷጱᑕଧݗفᅩහഝአᅩഘԅහ꧊ࣈ̶࣎
ᤰف:ࣁᤰӞӻےդᎱཛྷࣘԏؙਂ҅ڹᓕቘᑕଧտړᯈӞࣘਫᴬԆਂ܄ᕳᬰᑕ҅ᤰفᑕଧ໑ഝ
ਧጱԆਂ܄Ḓࣈེ࣎҅ٚץද᧣ෆᤩᤰཛྷࣘӾጱ᭦ᬋࣈ࣎҅ਖ਼᭦ᬋࣈ࣎ᕬਧԅᇔቘࣈֵ࣎҅ԏ౮
ԅݢಗᤈԫᬰګդᎱ̶
ᇔቘԆਂؙྌᮎӻᕹӞጱचࣈࣈ࣎তᶲଧᖫྊጱਂزܔؙᑍԏԅᇔቘࣈ࣎ᕷࣈ࣎҅ᇔቘࣈ
࣎ጱ֛౮ᇔቘࣈ࣎ᑮᳵ̶
᭦ᬋࣈ࣎۸ԅᇔቘࣈ࣎ጱຎᯪ歪ᑍԏԅࣈ࣎᯿ਧ̵֖ࣈ࣎ฉࣈ࣎ഘํզӥӷᐿොୗ̶
ᶉாࣈ࣎᯿ਧ֖
ኧᤰفᑕଧਫሿᤰդᎱཛྷࣘጱےࣈ࣎ഘ҅ਙᤰړفᯈᕳᬰᑕጱԆਂਧ܄ऒٌ҅Ӿጱಅํ
᭦ᬋࣈ࣎ץද౮ԅԆਂࣈ࣎҅ᑍᶉா᯿ਧ̶֖
ۖாࣈ࣎᯿ਧ֖
ኧᤰفᑕଧਫሿᤰդᎱཛྷࣘጱے҅ਙᤰړفᯈᕳᬰᑕጱԆਂਧ܄ऒ҅֕ᬳളᑕଧ॒ቘᬦጱ
ଫአᑕଧጱ᭦ᬋࣈ࣎ڞӧ؉ձ֜ץද҅ᑕଧԆਂ᩸তࣈ࣎ᤩᗝفᏝկӫአੀਂ---᯿ਧ֖ੀਂ̶
ᬳᖅਂؙᑮᳵᓕቘ
ࢴਧړᯈᓕቘ
ࢴਧؙਂ܄ړᓕቘጱचమ:Ԇਂᑮᳵᤩړ౮හᰁࢴਧӧݒጱ܄ړݱ҅܄ړጱय़ੜӧᒵ҅ྯӻݝ܄ړ
ᤰفӞӻ֢ӱ҅ᝑग़ӻ܄ړӾ᮷ᤰํ֢ӱ҅ڞ੪ݢզଚݎಗᤈ҅ᬯ੪ฎඪ೮ग़کᑕଧᦡᦇጱ๋ᓌܔጱ
ਂؙᓕቘದ̶
ݒݢጱؙਂ܄ړᓕቘ
ؙਂ܄ړݒݢᓕቘ݈ᑍԅۖாړԲཛྷୗ҅ೲᆙ֢ӱጱय़ེॿړښ֕҅܄ړړښጱᳵ̵य़ੜ̵֖ᗝ
᮷ฎۖா̶ᔮᕹ֢ӱᤰفԆਂ҅໑ഝٌ᩸ᵱᥝጱԆਂᰁ᷐ັ፡ฎ݈ވ᪃ड़ጱᑮᳵ҅ᝑํ҅ڞᵱ
ᥝೲᵱړᯈӞӻړ܄ړᯈᕳ֢ӱҔᝑ෫҅ڞե֢ӱᒵஇԆਂᩒრ̶
ړ܄ړݒݢᯈᓒဩ:
1.๋սᭇଫړᯈᓒဩ
ᶲଧັತ๚ړᯈ܄ᤒ᱾ᤒ҅ፗکತکᒫӞӻჿ᪃ᳩଶᥝጱᑮᳳԅྊ҅҅܄ړྌۆړӞ᮱ړړᯈᕳ
֢ӱ҅ݚӞ᮱ړՖԅᑮᳳྌ̶܄ᴨۢᬯӞړᯈᓒဩ҅๚ړᯈ܄ᤒ᱾ᤒጱᑮᳳ܄᭗ଉೲࣈ࣎ੜک
य़ഭଧ̶
2.ӥེᭇଫړᯈᓒဩ
ฎ๚ړᯈ܄ጱӤེಚൈᕮ॒ᶲଧັತړᯈ܄ᤒ᱾ᤒ҅ፗکತکᒫӞӻᚆड़ჿ᪃ᳩଶᥝጱᑮ
ᳳ܄ԅྊ҅ۆړᬯӻ๚ړᯈ҅܄Ӟ᮱ړړᯈᕳ֢ӱ҅ݚӞ᮱ړՖԅᑮᳳ̶܄
3.๋սᭇଫړᯈᓒဩ
ಚᶎᬯӻෆӻ๚ړᯈ܄ᤒ᱾ᤒ҅ᑮᳳ܄ӾᭌӞӻᚆჿ᪃አಁᬰᑕᥝጱ๋ੜ܄ړᬰᑕړᯈ̶
4.๋ࣕᭇଫړᯈᓒဩ
ಚᶎෆӻ๚ړᯈ܄ᤒ᱾ᤒ҅ฎᭌӞӻ๋य़ጱᑮᳳۆړᕳ֢ӱֵአٌ҅ํดᐏֵۃӥጱᑮᳳ܄ӧ
ᛗᬦੜ҅ӾੜࣳᩳԞํ̶ڥ
5.ள᭛ᭇଫړᯈᓒဩ
ԅᮎԶᕪଉአکጱᳩଶጱᑮᳳ܄ᇿᒈᦡᒈܔᇿጱᑮᳳ܄᱾ᤒ̶
ړᶭਂؙᓕቘ
አړᶭਂؙᓕቘ꧋ᦜᑕଧਂනکᝑଗӧፘᮝጱᑮᳳࣘӾ҅عݢܨᴻᑏۖݢํ֢҅ۖ௳מ꧌ڥړአԆ
ਂᑮᳵ҅ၾᴻۖா܄ړᓒဩӾጱ"Ꮶᇆ"ᳯ᷌҅ᘒṛԆਂᑮᳵጱڥአሲ̶
1.ᶭᶎ
ᬰᑕ᭦ᬋࣈ࣎ᑮᳵړ౮य़ੜፘᒵጱྯ҅܄ӻ܄౮ԅᶭᶎᘏᶭ҅ᶭݩ0তӞེᖫݩ
2.ᶭ
Ԟᑍԅᶭ҅Ԇਂᇔቘࣈ࣎ړᯈय़ੜፘᒵጱٌ҅܄य़ੜӨᶭᶎय़ੜፘᒵ҅ྯӻ܄ฎӞӻᇔቘࣘᶭ
҅ளݩ0তׁེᖫݩ
3.᭦ᬋࣈ࣎
ړᶭਂؙጱ᭦ᬋࣈ࣎ኧӷ᮱ړᕟ౮:ᶭݩᶭٖ֖ᑏ
ᶭݩpᶭٖ֖ᑏd҅ضᶭᤒच࣎ੀਂತکᶭᶎचࣈ࣎҅ࣁአᶭݩp֢ԅᔱັᶭᤒ
ؙਂྦྷړᓕቘ
ਂྦྷړᓕቘጱفԆᥝฎჿ᪃አಁᖫᑕֵአӤጱᥝٌ҅՜ਂؙᓕቘದᵙզჿ᪃ᬯԶᥝ̶
ړྦྷړᶭጱྲ
ྦྷړฎ௳מጱ᭦ᬋ֖ܔኧრᑕଧጱ᭦ᬋᕮ݊ތԎಅ٬ਧ҅ฎአಁّݢ҅ྦྷᳩኧአಁ໑ഝᥝᏟ
ਧ҅ྦྷ᩸তࣈ࣎ݢԆਂࣈ࣎ত̶ࣁྦྷړොୗӾ҅რᑕଧᕪ᱾ളᤰᯈݸՖכ೮ԫᖌᕮ҅فፓጱ
ฎჿ᪃አಁཛྷࣘ۸ᑕଧጱᵱ̶
ړᶭฎ௳מጱᇔቘ֖ܔӨრᑕଧጱ᭦ᬋᕮړᯈ҅ฎአಁӧݢᥠጱ҅ᶭᳩኧᔮᕹᏟਧ҅ᶭᶎݝᚆԞ
ଃӥጱෆහ࣎ࣈত̶
ᶭᶎᗝഘᓒဩ
ᶭᶎᗝഘғࣁࣈ࣎ฉᬦᑕӾ҅ᝑࣁᶭᶎӾݎሿಅᥝᦢᳯጱᶭᶎӧࣁٖਂӾ҅ڞԾኞᗌᶭӾෙ(page
fault)̶୮ݎኞᗌᶭӾෙ֢ᔮᕹᶳࣁٖਂᭌೠӞӻᶭᶎਖ਼ٌᑏ҅ਂٖڊզԅܨਖ਼᧣فጱᶭᶎᦏ
ڊᑮᳵ̶
OPTғ๋๊֯ഘᓒဩҁoptional replacement҂̶๊ഘӥེᦢᳯ᪗୮ڹᳵ๋ᳩጱᶭ̶optᓒဩᵱᥝ
Ꭳ֢᭲ᔮᕹਖ਼ጱԪկ҅ดᆐӧݢᚆਫሿ֢҅ݝԅӞᐿᤍᰁٌ՜ᓒဩጱຽ̶ٵ
LRU:๋ᬪֵ๋አ(Least Recently Used).๊ഘӤֵེአ᪗ᐶ୮๋ڹᬱጱᶭ̶໑ഝੴ᮱ܻቘғ๊ഘ๋
ᬪ๋ӧݢᚆ ᦢᳯکጱᶭ̶ᚆ๋ളᬪOPT҅֕ᵙզਫሿ̶ݢզᖌಷӞӻىԭᦢᳯᶭጱᘏᕳྯӻᶭ
Ⴒᦢݸ๋ےᳯጱᳵຽᓋ҅֕ᲀ᮷உय̶़
ଉᥠᶎᦶ᷌
ҁӞ҂᧗ڦړᓌ᧔ܔӞ᧔ᬰᑕᕚᑕզ݊ਙժጱ̶ڦ܄
1.ᬰᑕฎٍํӞਧۑᚆጱᑕଧىԭӻහഝᵞݳӤጱӞེᬩᤈၚۖ҅ᬰᑕฎᔮᕹᬰᤈᩒრ᧣ଶړᯈ
ጱӞӻᇿᒈ̶֖ܔ
2.ᕚᑕฎᬰᑕጱਫ֛҅ฎCPU᧣ଶړၝጱच֖҅ܔਙฎྲᬰᑕๅੜጱᚆᇿᒈᬩᤈጱच̶֖ܔ
3.Ӟӻᬰᑕݢզํग़ӻᕚᑕ҅ग़ӻᕚᑕԞݢզଚݎಗᤈ
ҁԫ҂ᕚᑕྍݶጱොୗํߺԶҘ
ᰁғአํݝ҅ګํጱᕚᑕํᦢᳯولᩒრጱᴴ̶ࢩԅํݝ
Ӟӻ҅ಅզݢզولᦤכᩒრӧտᤩग़ӻᕚᑕݶᦢᳯ̶
ݩמᰁғਙ꧋ᦜݶӞڰग़ӻᕚᑕᦢᳯݶӞᩒრ҅֕ฎᵱᥝഴݶګӞᦢڰᳯྌᩒრጱ๋य़ᕚᑕහ
ᰁ̶
Ԫկҁݩמ҂ғ᭗ᬦ᭗Ꭳ֢ጱොୗכ೮ग़ᕚᑕ҅ྍݶᬮݢզොጱਫሿग़ᕚᑕսضᕆጱྲ
̶֢
ҁӣ҂ᬰᑕጱ᭗מොୗํߺԶҘ
Ԇᥝړԅғᓕ̵᭲ᔮᕹIPCҁ۱ೡၾ௳ᴚݩמ̵ڜᰁ̵وՁਂؙ҂̵SOCKET
ᓕ᭲Ԇᥝړԅғฦ᭗ᓕ᭲PIPE ̵ၞᓕ᭲ҁs_pipe҂̵ݷᓕ᭲ҁname_pipe҂
ᓕ᭲ฎӞᐿૡጱ᭗מොୗ҅හഝݝᚆܔᶱၞۖ҅ଚӬݝᚆࣁٍํՅᖭىᔮጱᬰᑕᳵၞۖ҅ᬰᑕጱ
Յᖭىᔮ᭗ଉฎᆿৼᬰᑕ
ݷᓕ᭲Ԟฎૡጱ᭗מොୗ҅ਙ꧋ᦜ෫Յᖭىᔮጱᬰᑕᳵᬰᤈ᭗מ
ݩמᰁฎӞӻᦇහ҅አഴګग़ӻᬰᑕᩒრጱᦢᳯ҅ਙ᭗ଉ֢ԅӞᐿᲁ̶ګ
ၾ௳ᴚڜฎၾ௳ጱ᱾ᤒ҅ਂනࣁٖ໐Ӿଚኧၾ௳ᴚڜຽᦩᒧຽᦩ̶
ݩמฎӞᐿྲ॔ጱ᭗מොୗ҅አԭ᭗ᎣളතᬰᑕӻԪկ૪ᕪݎኞ̶
وՁٖਂ੪ฎฉӞྦྷᚆᤩٌਙᬰᑕᦢᳯጱٖਂ҅ᬯྦྷوՁٖਂኧӞӻᬰᑕڠୌ҅֕ฎग़ӻᬰᑕݢզ
ᦢᳯ̶
ҁࢥ҂Ջԍฎᖨ٫܄ფڊҘํՋԍܧਸ਼ҘٌܻࢩฎՋԍҘ
ᖨ٫܄ფڊฎ୮ᦇᓒݻᖨ٫܄ऴ꧌හഝ᩻ڊԧᖨ٫܄ጱᰁ҅ფڊጱහഝᥟፍࣁݳဩහഝ
Ӥ̶
ܧਸ਼ํզӥӷᅩғ
ᑕଧૄმ҅ᛘᕷ᷐๐ۓ
᪡ଚӬಗᤈӞྦྷ௶դᎱ
᭜౮ᖨ٫܄ფڊጱԆᥝܻࢩฎᑕଧӾဌํ՚ᕡ༄ັአಁᬌ̶ف
ҁԲ҂ՋԍฎྒᲁҘྒᲁԾኞጱկҘ
ࣁӷӻᘏग़ӻଚݎᬰᑕӾ҅ইຎྯӻᬰᑕ೮ํᐿᩒრᘒ݈ᒵஇٌਙᬰᑕ᯽නਙਙժሿࣁכ೮፳
ጱᩒრ҅ࣁ๚දݒᬯᐿᇫாԏڹ᮷ӧᚆڹݻവᬰ҅ᑍᬯӞᕟᬰᑕԾኞԧྒᲁ̶᭗חጱᦖ੪ฎӷӻग़
ӻᬰᑕ෫ᴴ๗ጱᴥल̵ፘᒵஇጱӞᐿᇫா̶
ྒᲁԾኞጱࢥӻկҁํ Ӟӻկӧ౮ᒈ҅ڞӧտԾኞྒᲁ҂
կғӞӻᩒრӞེݝᚆᤩӞӻᬰᑕֵአ
᧗Өכ೮կғӞӻᬰᑕࢩ᧗ᩒრᘒᴥल҅૪឴ᩒრכ೮ӧන
ӧہ५կғᬰᑕ឴ጱᩒრ҅ࣁ๚ਠֵقአਠԏ҅ڹӧᚆ୩ᤈہ५
ሾᒵஇկғᝑଗᬰᑕԏᳵ୵౮Ӟᐿ१ੲፘളጱሾ୵ᒵஇᩒრىᔮ
ҁم҂ᬰᑕํߺپᐿᇫாҘ
੪ᖃᇫாғᬰᑕ૪឴ᴻ॒ቘզक़ጱಅᵱᩒრ҅ᒵஇړᯈ॒ቘᩒრ
ᬩᤈᇫாғܛአ॒ቘᩒრᬩᤈ॒҅ԭྌᇫாጱᬰᑕහੜԭᒵԭCPUහ
ᴥलᇫாғ ᬰᑕᒵஇᐿկ҅ࣁկჿ᪃ԏڹ෫ဩಗᤈ
ҁӠ҂ړᶭํྦྷړՋԍڦ܄Ҙ
ྦྷฎ௳מጱ᭦ᬋ֖҅ܔਙฎ໑ഝአಁጱᵱᥝړښጱ҅ࢩྌྦྷአಁฎݢᥠጱ Ҕᶭฎ௳מጱᇔቘܔ
֖҅ฎԅԧᓕቘԆਂጱොᘒړښጱ҅አಁฎ᭐กጱ̶
ྦྷጱय़ੜӧࢴਧ҅ํਙಅਠ౮ጱۑᚆ٬ਧҔᶭय़य़ੜࢴਧ҅ኧᔮᕹ٬ਧ
ྦྷݻአಁ׀ԫᖌࣈ࣎ᑮᳵҔᶭݻአಁ׀ጱฎӞᖌࣈ࣎ᑮᳵ
ྦྷฎ௳מጱ᭦ᬋ֖҅ܔԭਂכؙಷ௳מጱوՁ҅ᶭጱכಷوՁکݑᴴ̶ګ
ҁك҂ ֢ᔮᕹӾᬰᑕ᧣ଶᒽኼํߺپᐿҘ
FCFS(ضض๐҅)ۓսضᕆ҅ᳵᇆ҅ग़ᕆݍḇ
ҁԜ҂᧔Ӟ᧔ᬰᑕپߺํྍݶᐿ̶ګ
ܻৼ̵֢ݩמᰁ̵ګᛔᲁᓕᑕ̵տړ̵ݳୗᔮᕹ
ҁ܈҂᧔Ӟ᧔ྒᲁጱ॒ቘचᒽኼଉአොဩ̶
ᥴ٬ྒᲁጱचොဩইӥғ
ᶼᴠྒᲁ̵ྒعᲁ̵༄ၥྒᲁ̵ᥴᴻྒᲁ
ᥴ٬ࢥग़ጱଉአᒽኼইӥғ
Ồềᒽኼ̵ᶼᴠᒽኼ̵عᒽኼ̵༄ၥӨᥴᴻྒᲁ
ҁ܈Ӟ҂دᬰᑕب੬ᬰᑕ
دᬰᑕғӞӻᆿᬰᑕᭅ҅ڊᘒਙጱӞӻग़ӻৼᬰᑕᬮࣁᬩᤈ҅ᮎԍᮎԶৼᬰᑕਖ਼౮ԅدᬰᑕ̶
دᬰᑕਖ਼ᤩinitᬰᑕ(ᬰᑕݩԅ1)ಅතِ҅ଚኧinitᬰᑕਙժਠ౮ᇫாතᵞૡ̶֢
ب੬ᬰᑕғӞӻᬰᑕֵአforkڠୌৼᬰᑕ҅ইຎৼᬰᑕᭅ҅ڊᘒᆿᬰᑕଚဌํ᧣አwaitwaitpid឴
ৼݐᬰᑕጱᇫா҅௳מᮎԍৼᬰᑕጱᬰᑕൈᬿᒧՖᆐࣁਂכᔮᕹӾ̶ᬯᐿᬰᑕᑍԏԅྒبᬰᑕ̶
ҁ܈ԫ҂forkڍහጱᬬࢧ꧊
forkڍහᬬࢧ꧊:
ᨮහғইຎڊᲙ҅ڞfork()ᬬࢧ-1,ྌဌํڠୌෛጱᬰᑕ̶๋ڡጱᬰᑕՖᆐᬩᤈ̶
̴̴ ᵭғࣁৼᬰᑕӾ҅fork()ᬬࢧ0
̴̴ ྋහғࣁᆿᬰᑕӾ҅fork()ᬬࢧྋጱৼᬰᑕጱPID
forkڍහ᧣አӞེܩᬬࢧӷེҔݻᆿᬰᑕᬬࢧৼᬰᑕጱID҅ৼݻᬰᑕӾᬬࢧ0҅
̴̴ᬯฎࢩԅᆿᬰᑕݢᚆਂࣁஉग़ᬦৼᬰᑕ҅ಅզᶳ᭗ᬦᬯӻᬬࢧጱৼᬰᑕID᪙᪵ৼᬰᑕ҅
̴̴ᘒৼᬰᑕํݝӞӻᆿᬰᑕ҅՜ጱIDݢզ᭗ᬦgetppidݐ̶
ҁ܈ӣ҂ӾෙᏝӾෙ
ӾෙᏝӾෙጱڦ܄Ҙ
ᨶӤᦖ҅ӾෙฎӞᐿኪ҅ݩמ୮ᦡ॓ํᐿԪկݎኞ҅ਙ੪տԾኞӾෙ҅᭗ᬦᕚኪݩמ
ݎᭆᕳӾෙഴ̶ګইຎӾෙጱᕚฎᄶၚጱ҅Ӿෙഴګ੪ኪݎݩמᭆᕳ॒ቘጱӻᇙਧᚕ̶
॒ቘԭฎᒈܨ؊ྊᛔ૩ྋࣁ؉ጱԪ҅᪡کӾෙ॒ቘᑕଧጱݗفᅩ҅ᬰᤈӾෙ॒ቘ̶
(1) ᏝӾෙ
ኧӨᔮᕹፘᬳጱक़ᦡ(ྲইᗑ̵ܜᏝፏ)ᛔۖԾኞጱ̶Ԇᥝฎአ᭗Ꭳ֢ᔮᕹᔮᕹक़ᦡᇫாጱݒ۸̶
ྲই୮ᗑܜතکහഝ۱ጱ҅ײ੪տڊݎӞӻӾෙ̶౯ժ᭗ଉಅ᧔ጱӾෙጱฎᏝӾෙ(hardirq)̶
(2) Ӿෙ
ԅԧჿ᪃ਫᔮᕹጱᥝ҅Ӿෙ॒ቘଫᧆฎ᩼ள᩼অ̶linuxԅԧਫሿᬯӻᇙᅩ҅୮Ӿෙݎኞጱ҅ײ
ᏝӾෙ॒ቘᮎԶᎨᳵ੪ݢզਠ౮ጱૡ֢҅ᘒਖ਼ᮎԶ॒ቘԪկྲᳩጱૡ֢҅නکӾෙԏݸਠ౮҅
Ԟ੪ฎӾෙ(softirq)ਠ౮̶