UNIST 2019 2νκΈ° Operating System κ³Όλͺ©μμ ꡬννμλ PintOS νλ‘μ νΈμ λλ€.
Soogeun Park κ³Ό κ΅λ΄ Gitlab μ μ₯μμμ 곡λμμ μ μ§ννμκ³ νλ‘μ νΈ 1μμ 3κΉμ§ μμ μ μλ£νμμ΅λλ€.
μ ν¬μκ²λ 첫 C νλ‘μ νΈμ¬μ μ΄μμ μΈ μ½λ ꡬνμ μλμ§λ§ κ°λ 보면μ λ΄μ©μ μκΈ°μν€κ³ μ μ λ‘λνκ² λμκ³
νΉμ μμ μ€μ κ³Όμ λ‘ νν μ€ νλ‘μ νΈλ₯Ό νκ³ μλ€λ©΄, μ½λκ° μλ λ©λ΄μΌ λ²μλ§ μ°Έκ³ νμκΈΈ λ°λλλ€.
μ£Όμ μ©μ΄λ€μ νκ΅μ΄λ‘ λ²μνλ©΄ μ΄μν΄μ§λ κ²½μ°κ° λ§μμ κΌ μμ΄ μλ¬Έλ κ°μ΄ μ½μΌμλ κ²μ μΆμ²λ립λλ€.
μλλ νλ‘μ νΈμ λν κ°μμ Stanford μλ¬Έ λ§ν¬μ λλ€.
- timerλ₯Ό νμ©νμ¬ thread scheduling ꡬννκΈ°
- highest priority scheduling κΈ°λ² μ¬μ©
- user input argumentsλ₯Ό kernel stackμ μκΈ°
- system call handler ꡬννκΈ°
- user memoryμ μ κ·Όνμ¬ system call numberλ₯Ό μμλ΄κ³ , μ΄μ λ§λ system call νΈμΆνκΈ°
- supplemental page table, frame table λ§λ€κΈ°
- νμ¬μ PintOSλ₯Ό demanding paging (lazy loading) λ°©μμΌλ‘ μμ νκΈ°
- page fault handler ꡬννκΈ°
- memory-mapped file ꡬννκΈ°
- swapping,
stack-growthꡬννκΈ°
https://web.stanford.edu/~ouster/cgi-bin/cs140-spring18/pintos/pintos.html