ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æŠèŠ
ããã«ã¡ã¯ãHabrïŒ ç§ã®èãã§ã¯ãOSTEPãšããèå³æ·±ãæç®ã®äžé£ã®ç¿»èš³èšäºã«æ³šç®ããããšæããŸãã ãã®èšäºã§ã¯ãunixã«äŒŒããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åäœãã€ãŸããããã»ã¹ãããŸããŸãªã¹ã±ãžã¥ãŒã©ãã¡ã¢ãªãããã³çŸä»£ã®OSãæ§æããä»ã®åæ§ã®ã³ã³ããŒãã³ãã®åäœã«ã€ããŠè©³ãã説æããŸãã ããã§èŠãããšãã§ãããã¹ãŠã®è³æã®ãªãªãžãã«ã 翻蚳ã¯å°éçã§ã¯ãªãïŒéåžžã«èªç±ã«ïŒè¡ãããŸããããäžè¬çãªæå³ãä¿æããããšæããŸãã
ãã®ããŒãã®å®éšå®€ã®ä»äºã¯ããã§èŠã€ããããšãã§ããŸãïŒ
- ãªãªãžãã«ïŒ pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- ãªãªãžãã«ïŒ github.com/remzi-arpacidusseau/ostep-code
- ç§ã®å人çãªé©å¿ïŒ github.com/bykvaadm/OS/tree/master/ostep
- ããŒã3ïŒã¹ã±ãžã¥ãŒã©ãŒã®æŠèŠ
ãã®ä»ã®éšåïŒ
- ããŒã1ïŒã¯ããã«
- ããŒã2ïŒæœè±¡åïŒããã»ã¹
- ããŒã3ïŒããã»ã¹APIã®æŠèŠ
- ããŒã4ïŒã¹ã±ãžã¥ãŒã©ãŒã®æŠèŠ
- ããŒã5ïŒMLFQã¹ã±ãžã¥ãŒã©ãŒ
ãããŠãããªãã¯é»å ±ã§ç§ã®ãã£ã³ãã«ãèŠãããšãã§ããŸã=ïŒ
OSããŠãŒã¶ãŒã«æäŸããæãåºæ¬çãªæœè±¡åã«ã€ããŠèããŠã¿ãŸããããããã»ã¹ã ããã»ã¹ã®å®çŸ©ã¯éåžžã«ç°¡åã§ã-ããã¯äœæ¥ããã°ã©ã ã§ãã ããã°ã©ã èªäœã¯ãã£ã¹ã¯äžã«ããçåœã®ãªããã®ã§ã-ããã¯åœä»€ã®ã»ããã§ãããããããèµ·åãåŸ ã£ãŠããäœããã®éçããŒã¿ã§ãã ãããã®ãã€ããåãåã£ãŠèµ·åããããã°ã©ã ãæçšãªãã®ã«å€æããã®ã¯OSã§ãã
ã»ãšãã©ã®å ŽåããŠãŒã¶ãŒã¯äžåºŠã«è€æ°ã®ããã°ã©ã ãå®è¡ãããã§ããããšãã°ãã©ãããããã§ãã©ãŠã¶ãŒãã²ãŒã ãã¡ãã£ã¢ãã¬ãŒã€ãŒãããã¹ããšãã£ã¿ãŒãªã©ãå®è¡ã§ããŸãã å®éãå žåçãªã·ã¹ãã ã¯æ°åããæ°çŸã®ããã»ã¹ãåæã«å®è¡ã§ããŸãã ãã®äºå®ã«ãããã·ã¹ãã ã䜿ãããããªããŸããCPUã空ããŠãããã©ãããå¿é ããå¿ èŠã¯ãªããããã°ã©ã ãå®è¡ããã ãã§ãã
ããã«ããåé¡ãçºçããŸããè€æ°ã®CPUã®é¯èŠãã©ã®ããã«æäŸããã®ã§ããããã ç©çCPUã1ã€ãããªãå Žåã§ããOSã¯ã©ã®ããã«ããŠã»ãŒç¡ééã®CPUã®é¯èŠãäœãåºããŸããïŒ
OSã¯ãCPUä»®æ³åãéããŠãã®é¯èŠãäœãåºããŸãã 1ã€ã®ããã»ã¹ãéå§ããŠããåæ¢ããå¥ã®ããã»ã¹ãéå§ãããªã©ããŠãOSã¯ä»®æ³CPUãå€æ°ãããšããå¹»æ³ããµããŒãã§ããŸãããå®éã«ã¯1ã€ä»¥äžã®ç©çããã»ããµã«ãªããŸãã ãã®ææ³ã¯ã CPUã¿ã€ã ã·ã§ã¢ãªã³ã°ãšåŒã°ããŸã ã ãã®ææ³ã«ããããŠãŒã¶ãŒã¯å¿ èŠãªæ°ã®åæããã»ã¹ãå®è¡ã§ããŸãã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã®ã³ã¹ãã¯ããã©ãŒãã³ã¹ã§ããCPUãè€æ°ã®ããã»ã¹ã§å ±æãããå Žåãåããã»ã¹ã®åŠçé床ãäœäžããããã§ãã
CPUä»®æ³åãå®è£ ããããã«ããããŠç¹ã«ãããããŸãè¡ãããã«ãOSã¯äœã¬ãã«ãšé«ã¬ãã«ã®äž¡æ¹ã®ãµããŒããå¿ èŠãšããŸãã äœã¬ãã«ã®ãµããŒãã¯ã¡ã«ããºã ãšåŒã°ããŸã -ãããã¯ãæ©èœã®å¿ èŠãªéšåãå®è£ ããäœã¬ãã«ã®ã¡ãœãããŸãã¯ãããã³ã«ã§ãã ãã®ãããªæ©èœã®äŸãšããŠã¯ãã³ã³ããã¹ãåãæ¿ãããããŸããããã«ãããOSã1ã€ã®ããã°ã©ã ãåæ¢ããããã»ããµãŒäžã§å¥ã®ããã°ã©ã ãå®è¡ã§ããŸãã ãã®æåå²ã¯ãææ°ã®ãã¹ãŠã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«å®è£ ãããŠããŸãã
ãããã®ã¡ã«ããºã ã®æäžéšã«ã¯ããããªã·ãŒãã®åœ¢åŒã§OSã«çµã¿èŸŒãŸããããžãã¯ããããŸãã ããªã·ãŒã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ããç¹å®ã®ææ決å®ã¢ã«ãŽãªãºã ã§ãã ããšãã°ããã®ãããªæ¿æ²»å®¶ã¯ãæåã«ïŒã³ãã³ãã®ãªã¹ãããïŒå®è¡ããããã°ã©ã ã決å®ããŸãã ãããã£ãŠãããšãã°ã ã¹ã±ãžã¥ãŒãªã³ã°ããªã·ãŒãšåŒã°ããããªã·ãŒã¯ãã®åé¡ã解決ãããœãªã¥ãŒã·ã§ã³ãéžæãããšãã«ã次ã®ãããªããŒã¿ã«ãã£ãŠå°ãããŸãïŒèµ·åå±¥æŽïŒæåŸã®æ°åéã§æãé·ãå®è¡ãããŠããããã°ã©ã ïŒããã®ããã»ã¹ãå®è¡ããè² è·ã®çš®é¡ïŒèµ·åãããããã°ã©ã ã®çš®é¡ïŒ ïŒãããã©ãŒãã³ã¹ã¡ããªãã¯ïŒã·ã¹ãã ã察話åã®çžäºäœçšãŸãã¯åž¯åå¹ ã«å¯ŸããŠæé©åãããŠãããã©ããïŒãªã©ã
æœè±¡åïŒããã»ã¹
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠå®è¡ãããå®è¡äžã®ããã°ã©ã ã®æœè±¡åã¯ã ããã»ã¹ãšåŒã°ãããã®ã§ãã åã«è¿°ã¹ãããã«ãããã»ã¹ã¯ç¬éçãªæéã§ã®åãªãäœæ¥ããã°ã©ã ã§ãã ã·ã¹ãã ã®ããŸããŸãªãªãœãŒã¹ããèŠçŽæ å ±ãååŸã§ãããã®ããã°ã©ã ã察åŠããããã°ã©ã ããŸãã¯å®è¡äžã«åœ±é¿ãäžããããã°ã©ã ã
ããã»ã¹ã®ã³ã³ããŒãã³ããç解ããã«ã¯ãã·ã¹ãã ã®ç¶æ ãç解ããå¿ èŠããããŸããããã°ã©ã ãæäœäžã«èªã¿åããŸãã¯å€æŽã§ããããšã§ãã ãã€ã§ããã·ã¹ãã ã®ã©ã®èŠçŽ ãããã°ã©ã ã®å®è¡ã«éèŠã§ããããç解ããå¿ èŠããããŸãã
ããã»ã¹ã«å«ãŸããã·ã¹ãã ã®ç¶æ ã®æãããªèŠçŽ ã®1ã€ã¯ã¡ã¢ãªã§ãã åœä»€ã¯ã¡ã¢ãªå ã«ãããŸãã ããã°ã©ã ãèªã¿æžãããããŒã¿ãã¡ã¢ãªå ã«ãããŸãã ãããã£ãŠãããã»ã¹ãã¢ãã¬ã¹æå®ã§ããã¡ã¢ãªïŒããããã¢ãã¬ã¹ç©ºéïŒã¯ããã»ã¹ã®äžéšã§ãã
ã¬ãžã¹ã¿ãã·ã¹ãã ç¶æ ã®äžéšã§ãã å€ãã®åœä»€ã¯ãã¬ãžã¹ã¿ã®æå³ãå€æŽãããããã®æå³ãèªã¿åãããšãç®çãšããŠãããããã¬ãžã¹ã¿ãããã»ã¹ã®éèŠãªéšåã«ãªããŸãã
ãã·ã³ã®ç¶æ ãããã€ãã®ç¹å¥ãªã¬ãžã¹ã¿ãã圢æãããããšã«æ³šæããŠãã ããã ããšãã°ã IP-åœä»€ãã€ã³ã¿ãŒ -ããã°ã©ã ãçŸåšå®è¡ããŠããåœä»€ãžã®ãã€ã³ã¿ãŒã ãŸãã ã¹ã¿ãã¯ãã€ã³ã¿ãŒãšãé¢é£ãããã¬ãŒã ãã€ã³ã¿ãŒããããŸã ããããã¯ãé¢æ°ãã©ã¡ãŒã¿ãŒãããŒã«ã«å€æ°ããªã¿ãŒã³ã¢ãã¬ã¹ã®å¶åŸ¡ã«äœ¿çšãããŸãã
æåŸã«ãããã°ã©ã ã¯ãã°ãã°ROMïŒèªã¿åãå°çšã¡ã¢ãªïŒã«ã¢ã¯ã»ã¹ããŸãã ãI / OãïŒå ¥åºåïŒã«é¢ãããã®ãããªæ å ±ã«ã¯ãããã»ã¹ã«ãã£ãŠçŸåšéãããŠãããã¡ã€ã«ã®ãªã¹ããå«ãŸããŠããå¿ èŠããããŸãã
ããã»ã¹API
ããã»ã¹ã®ç解ãæ·±ããããã«ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã€ã³ã¿ãŒãã§ã€ã¹ã«å«ããå¿ èŠã®ããã·ã¹ãã ã³ãŒã«ã®äŸã調ã¹ãŠã¿ãŸãããã ããããã®åœ¢åŒã®ãããã®APIã¯ãã©ã®OSã§ã䜿çšã§ããŸãã
â äœæ ïŒOSã«ã¯ãæ°ããããã»ã¹ãäœæã§ããã¡ãœãããå«ãŸããŠããå¿ èŠããããŸãã 端æ«ã«ã³ãã³ããå ¥åããããã¢ã€ã³ã³ãããã«ã¯ãªãã¯ããŠã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšãOSã«ã¢ããŒã«ãéä¿¡ãããæ°ããããã»ã¹ãäœæããŠããæå®ãããããã°ã©ã ãèµ·åããŸãã
â åé€ ïŒããã»ã¹ãäœæããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãã§ããããOSã¯ããã»ã¹ã匷å¶çã«åé€ããæ©èœãæäŸããå¿ èŠããããŸãã ã»ãšãã©ã®ããã°ã©ã ã¯ãå®è¡æã«èªç¶ã«èµ·åããã³å®äºããŸãã ãã以å€ã®å ŽåããŠãŒã¶ãŒã¯ãããã匷å¶çµäºã§ããããã«ããããããããã»ã¹ãåæ¢ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯èŠéãããŸããã
â åŸ æ© ïŒããã»ã¹ãå®äºãããŸã§åŸ æ©ããããšã圹ç«ã€å ŽåããããŸãããã®ãããåŸ æ©ããæ©èœãæäŸããã€ã³ã¿ãŒãã§ã€ã¹ãããã€ãæäŸãããŠããŸãã
â ãã®ä»ã®å¶åŸ¡ ïŒããã»ã¹ã®åŒ·å¶çµäºãšåŸ æ©ã«å ããŠãä»ã®ããŸããŸãªå¶åŸ¡æ¹æ³ããããŸãã ããšãã°ãã»ãšãã©ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ã¯ãããã»ã¹ãããªãŒãºïŒäžå®æéå®è¡ãåæ¢ïŒããŠããåéïŒå®è¡ãç¶ç¶ïŒããæ©èœããããŸãã
â ã¹ããŒã¿ã¹ ïŒããã»ã¹ã®ã¹ããŒã¿ã¹ã«é¢ããæ å ±ãååŸããããã®ããŸããŸãªã€ã³ã¿ãŒãã§ã€ã¹ããããŸããããšãã°ãæäœã®ç¶ç¶æéãçŸåšã®ç¶æ ãªã©ã§ãã
ããã»ã¹äœæïŒè©³çŽ°
èå³æ·±ãããšã®1ã€ã¯ãããã°ã©ã ãããã»ã¹ã«æ£ç¢ºã«å€æããæ¹æ³ã§ãã ç¹ã«ãOSãããã°ã©ã ãéžæããŠå®è¡ããæ¹æ³ã ããã»ã¹ã¯ã©ã®ãããæ£ç¢ºã«äœæãããŸããã
ãŸããOSã¯ããã°ã©ã ã³ãŒããšéçããŒã¿ãã¡ã¢ãªã«ïŒããã»ã¹ã®ã¢ãã¬ã¹ç©ºéã§ïŒããŒãããå¿ èŠããããŸãã ããã°ã©ã ã¯éåžžããã£ã¹ã¯äžãŸãã¯äœããã®å®è¡å¯èœåœ¢åŒã®ãœãªããã¹ããŒããã©ã€ãã«ãããŸãã ãããã£ãŠãããã°ã©ã ãšéçããŒã¿ãã¡ã¢ãªã«ããŒãããããã»ã¹ã§ã¯ãOSããããã®ãã€ãããã£ã¹ã¯ããèªã¿åããã¡ã¢ãªã®ã©ããã«é 眮ããå¿ èŠããããŸãã
åæã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ãããŠã³ããŒãããã»ã¹ãç±å¿ã«å®è¡ãããŠããŸãããã€ãŸããããã°ã©ã ãéå§ããåã«ã³ãŒããå®å šã«ã¡ã¢ãªã«ããŒããããŠããŸããã ææ°ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãããé 延çã«å®è¡ããŸããã€ãŸããããã°ã©ã ã®å®è¡äžã«å¿ èŠãªå Žåã«ã®ã¿ã³ãŒããããŒã¿ãããŒãããŸãã
ã³ãŒããšéçããŒã¿ãOSã®ã¡ã¢ãªã«èªã¿èŸŒãŸããåŸãããã»ã¹ãéå§ããåã«ããã«ããã€ãã®ããšãè¡ãå¿ èŠããããŸãã äžå®éã®ã¡ã¢ãªãã¹ã¿ãã¯ã«å²ãåœãŠãå¿ èŠããããŸãã ããã°ã©ã ã¯ãããŒã«ã«å€æ°ãé¢æ°ãã©ã¡ãŒã¿ãŒãããã³æ»ãã¢ãã¬ã¹ã«ã¹ã¿ãã¯ã䜿çšããŸã ã OSã¯ãã®ã¡ã¢ãªãå²ãåœãŠãããã»ã¹ã«å²ãåœãŠãŸãã ã¹ã¿ãã¯ã«ã¯ããã€ãã®åŒæ°ãå²ãåœãŠãããšãã§ããŸããå ·äœçã«ã¯ãããšãã°ãargcããã³argvé åãªã©ã®mainïŒïŒé¢æ°ã®ãã©ã¡ãŒã¿ãŒãåããŸãã
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãããã°ã©ã ã®ããŒãã«äžå®éã®ã¡ã¢ãªãå²ãåœãŠãããšããããŸãã ããŒãã¯ãæ瀺çã«èŠæ±ãããåçã«å²ãåœãŠãããããŒã¿ã®ããã«ããã°ã©ã ã«ãã£ãŠäœ¿çšãããŸã ã ããã°ã©ã ã¯mallocïŒïŒé¢æ°ãåŒã³åºããŠãã®ã¹ããŒã¹ãèŠæ±ãã freeïŒïŒé¢æ°ãåŒã³åºããŠæ瀺çã«ã¯ãªã¢ããŸãã ããŒãã¯ããªã³ã¯ã·ãŒããããã·ã¥ããŒãã«ãããªãŒãªã©ã®ããŒã¿æ§é ã«å¿ èŠã§ãã æåã¯å°éã®ã¡ã¢ãªãããŒãã«å²ãåœãŠãããŸãããããã°ã©ã ã®ããã»ã¹äžã«ãããŒãã¯ã©ã€ãã©ãªAPIåŒã³åºãmallocïŒïŒãä»ããŠããå€ãã®ã¡ã¢ãªãèŠæ±ã§ããŸãã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ããããã®èª²é¡ã«å¯ŸåŠããããã«ããå€ãã®ã¡ã¢ãªãå²ãåœãŠãããã»ã¹ã«é¢äžããŠããŸãã
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãåæåã¿ã¹ã¯ãç¹ã«I / Oã«é¢é£ããã¿ã¹ã¯ãå®è¡ããŸãã ããšãã°ãUNIXã·ã¹ãã ã§ã¯ãæšæºå ¥åãåºåãããã³ãšã©ãŒãããŒçšã«ãåããã»ã¹ã«ããã©ã«ãã§3ã€ã®ãªãŒãã³ãã¡ã€ã«èšè¿°åããããŸãã ãããã®èšè¿°åã«ãããããã°ã©ã ã¯ç«¯æ«ããã®å ¥åãèªã¿åããç»é¢ã«æ å ±ã衚瀺ã§ããŸãã
ãããã£ãŠãã³ãŒããšéçããŒã¿ãã¡ã¢ãªã«ããŒãããã¹ã¿ãã¯ãäœæããŠåæåããI / Oã¿ã¹ã¯ã®å®è¡ã«é¢é£ããä»ã®äœæ¥ãå®è¡ããããšã§ãOSã¯ããã»ã¹ã®ãµã€ããæºåããŸãã æåŸã«ãæåŸã®ã¿ã¹ã¯ãæ®ããŸããã¡ã€ã³ïŒïŒé¢æ°ãšåŒã°ãããšã³ããªãã€ã³ããä»ããŠããã°ã©ã ãå®è¡ããŸãã mainïŒïŒé¢æ°ã«é²ããšãOSã¯CPUå¶åŸ¡ãæ°ããäœæãããããã»ã¹ã«è»¢éãããããããã°ã©ã ã®å®è¡ãéå§ãããŸãã
ããã»ã¹ç¶æ
ããã»ã¹ãäœã§ãããããããŠãããã©ã®ããã«äœæãããã®ããããçšåºŠç解ããã®ã§ãããã»ã¹ã®ç¶æ ããªã¹ãããŸãã æãåçŽãªåœ¢åŒã§ã¯ãããã»ã¹ã¯æ¬¡ã®ããããã®ç¶æ ã«ãªããŸãã
â å®è¡äž ã å®è¡ç¶æ ã§ã¯ãããã»ã¹ã¯ããã»ããµã§å®è¡ãããŸãã ããã¯ãåœä»€ãå®è¡ãããŠããããšãæå³ããŸãã
â æºåå®äº ã æºåå®äºç¶æ ã§ã¯ãããã»ã¹ãéå§ããæºåãã§ããŠããŸãããäœããã®çç±ã§ãOSã¯ç¹å®ã®æç¹ã§ãããå®è¡ããŸããã
â ãããã¯æžã¿ ã ããã¯ãããç¶æ ã§ã¯ãããã»ã¹ã¯ãã€ãã³ããçºçãããŸã§å®è¡æºåãã§ããªããªãããã€ãã®æäœãå®è¡ããŸãã äžè¬çãªäŸã®1ã€ã¯ãããã»ã¹ãIOæäœãéå§ãããšãããã¯ãããä»ã®ããã»ã¹ãããã»ããµã䜿çšã§ããããã«ãªãããšã§ãã
ãããã®ç¶æ ã¯ãã°ã©ãã®åœ¢ã§æ³åã§ããŸãã å³ãããããããã«ãããã»ã¹ã®ç¶æ ã¯OSã®è£éã§å®è¡äžãšæºåå®äºã®éã§ç°ãªãå ŽåããããŸãã ããã»ã¹ã®ç¶æ ãREADYããRUNNINGã«å€ãããšãããã¯ããã»ã¹ãã¹ã±ãžã¥ãŒã«ãããããšãæå³ããŸãã å察æ¹å-ã¬ã€ã¢ãŠãããåé€ã ããšãã°ãIOæäœãéå§ãããªã©ãããã»ã¹ããããã¯ãããç¬éãOSã¯ãIOã®å®äºãªã©ã®ã€ãã³ããçºçãããŸã§ãã®ç¶æ ãç¶æããŸãã ãã®æç¹ã§ãOSã決å®ããå ŽåãREADYç¶æ ã«é·ç§»ããå Žåã«ãã£ãŠã¯å³åº§ã«RUNNINGç¶æ ã«é·ç§»ããŸãã
2ã€ã®ããã»ã¹ããããã®ç¶æ ãã©ã®ããã«ééãããã®äŸãèŠãŠã¿ãŸãããã ãŸããäž¡æ¹ã®ããã»ã¹ãå®è¡ãããŠããããããããCPUã®ã¿ã䜿çšããŠããããšãæ³åããŠãã ããã ãã®å Žåããããã®ç¶æ ã¯æ¬¡ã®ããã«ãªããŸãã
次ã®äŸã§ã¯ãäžå®æéã®æäœåŸã®æåã®ããã»ã¹ãIOãèŠæ±ããBLOCKEDç¶æ ã«ãªããä»ã®ããã»ã¹ã«éå§ã®æ©äŒãäžããŸãïŒå³1.4ïŒã OSã¯ãããã»ã¹0ãCPUã䜿çšããªãããšãèªèããããã»ã¹1ãéå§ããŸããããã»ã¹1ã®å®è¡äžã«IOãçµäºããããã»ã¹0ã®ã¹ããŒã¿ã¹ãREADYã«å€ãããŸãã æåŸã«ãããã»ã¹1ãå®äºãããã®æåŸã«ãããã»ã¹0ããã®äœæ¥ãéå§ãå®è¡ãçµäºããŸãã
ããŒã¿æ§é
OSèªäœã¯ããã°ã©ã ã§ãããä»ã®ããã°ã©ã ãšåæ§ã«ãããŸããŸãªé¢é£æ å ±ã远跡ããéèŠãªããŒã¿æ§é ãæã£ãŠããŸãã OSã®åããã»ã¹ã®ã¹ããŒã¿ã¹ã远跡ããããã«ãREADYç¶æ ã®ãã¹ãŠã®ããã»ã¹ã®ç¹å®ã®ããã»ã¹ãªã¹ããšãçŸåšå®è¡äžã®ããã»ã¹ã远跡ããããã®ããã€ãã®è¿œå æ å ±ããµããŒããããŸãã ãŸããOSã¯ããã»ã¹ã远跡ããã³ãããã¯ããå¿ èŠããããŸãã IOã®å®äºåŸãOSã¯ç®çã®ããã»ã¹ãèµ·åããèµ·åã®æºåãæŽã£ãç¶æ ã«ããå¿ èŠããããŸãã
ãã®ãããããšãã°ãOSã¯ããã»ããµã¬ãžã¹ã¿ã®ç¶æ ãä¿åããå¿ èŠããããŸãã ããã»ã¹ãåæ¢ããæç¹ã§ãã¬ãžã¹ã¿ã®ç¶æ ã¯ããã»ã¹ã®ã¢ãã¬ã¹ç©ºéã«ä¿åããããã®ç¶ç¶æã«ãã¬ãžã¹ã¿ã®å€ã埩å ããŠããã»ã¹ãç¶è¡ããããšãã§ããŸãã
æºåå®äºããããã¯ãå®è¡äžã®ç¶æ ã«å ããŠãä»ã®ããã€ãã®ç¶æ ããããŸãã äœææã«ãããã»ã¹ãINITç¶æ ã«ãªãããšããããŸãã æåŸã«ãããã»ã¹ã¯æ¢ã«å®äºããŠãããããã®æ å ±ããŸã ã¯ãªã¢ãããŠããªãå ŽåãFINALç¶æ ã«ããããšãã§ããŸãã UNIXã·ã¹ãã ã§ã¯ããã®ç¶æ ã¯ãŸã³ãããã»ã¹ãšåŒã°ããŸã ã ãã®ç¶æ ã¯ã芪ããã»ã¹ãåã®æ»ãã³ãŒããç¥ãããå Žåã«åœ¹ç«ã¡ãŸããããšãã°ãéåžž0ã¯æ£åžžçµäºã瀺ãã1ã¯ãšã©ãŒã瀺ããŸãããããã°ã©ããŒã¯è¿œå ã®åºåã³ãŒããäœæããŠããŸããŸãªåé¡ãéç¥ã§ããŸãã å®äºãããšã芪ããã»ã¹ã¯waitïŒïŒãªã©ã®æåŸã®ã·ã¹ãã ã³ãŒã«ãè¡ããåå«ããã»ã¹ãå®äºããã®ãåŸ ã¡ãå®äºããããã»ã¹ã«é¢é£ããããŒã¿ãã¯ãªã¢ã§ããããšãOSã«éç¥ããŸãã
è¬çŸ©ã®ãã€ã³ãïŒ
â ããã»ã¹ -OSã§å®è¡äžã®ããã°ã©ã ã®äž»èŠãªæœè±¡åã ãã€ã§ããããã»ã¹ã¯ãã®ç¶æ ã«ãã£ãŠèšè¿°ã§ããŸãïŒãã®ã¢ãã¬ã¹ç©ºéã®ã¡ã¢ãªã®å 容ãåœä»€ãã€ã³ã¿ãšã¹ã¿ãã¯ãã€ã³ã¿ãå«ãããã»ããµã¬ãžã¹ã¿ã®å 容ãIOã«ã€ããŠã®æ å ±ãããšãã°ãèªã¿åããŸãã¯æžã蟌ã¿ããããªãŒãã³ãã¡ã€ã«ã
â ããã»ã¹APIã¯ãããã°ã©ã ãããã»ã¹ã«é¢ããŠè¡ãããšãã§ããåŒã³åºãã§æ§æãããŸãã éåžžããããã¯äœæãåé€ããŸãã¯ä»ã®åŒã³åºãã§ãã
âããã»ã¹ã¯ãå®è¡äžãæºåå®äºããããã¯ãªã©ãå€ãã®ç¶æ ã®ããããã«ãããŸãã èšç»ãèšç»ããã®é€å€ããŸãã¯æåŸ ãªã©ã®ããŸããŸãªã€ãã³ãã«ãããããã»ã¹ã®ç¶æ ãçžäºã«å€æã§ããŸãã
â ããã»ã¹ãªã¹ãã«ã¯ãã·ã¹ãã å ã®ãã¹ãŠã®ããã»ã¹ã«é¢ããæ å ±ãå«ãŸããŠããŸãã ãã®äžã®åãšã³ããªã¯ããã»ã¹å¶åŸ¡ãããã¯ãšåŒã°ããå®éã«ã¯ç¹å®ã®ããã»ã¹ã«é¢ãããã¹ãŠã®å¿ èŠãªæ å ±ãå«ãæ§é ã§ãã