νλ‘μΈμ€ μ€μΌμ€λ§
λ€μ€ νλ‘κ·Έλλ°(Multi - Programming)
β μ¬λ¬ κ°μ νλ‘μΈμ€κ° μμ€ν
λ΄μ μ‘΄μ¬
β μ€μΌμ€λ§(Scheduling): μμμ ν λΉν νλ‘μΈμ€ μ ν
β μμ κ΄λ¦¬
- μκ°λΆν (time sharing)κ΄λ¦¬
- νλμ μμμ μ¬λ¬ μ€λ λλ€μ΄ λ²κ°μ κ°λ©° μ¬μ©
- νλ‘μΈμ€ μ€μΌμ€λ§(Process Sheduling)
- 곡κ°λΆν (space sharing)κ΄λ¦¬
- νλμ μμμ λΆν νμ¬ λμμ μ¬μ©
- ex: λ©λͺ¨λ¦¬
μ€μΌμ€λ§μ λͺ©μ
β μμ€ν μ μ±λ₯(Performance) ν₯μ
β μμ€ν μ±λ₯ μ§ν(idx)
- μλ΅μκ° (response time)
- μμ μμ²(submission)μΌλ‘λΆν° μλ΅μ λ°μ λκΉμ§μ μκ°
- interactive system, real-time system
- μμ
μ²λ¦¬λ(throughput)
- λ¨μ μκ° λμ μλ£λ μμ μ μ
- batch system
- μμ νμ©λ(resource utilization)
- μ£Όμ΄μ§ μκ° λμ μμμ΄ νμ©λ μκ°
β λͺ©μ μ λ§λ μ§ν κ³ λ €νμ¬ μ€μΌμ€λ§ κΈ°λ² μ ν
μμ€ν μ±λ₯ μ§νλ€
β νκ· μλ΅ μκ°(mean response time)
β μ²λ¦¬λ(throughput)
β μμ νμ©λ(resource utilization)
β 곡νμ±(fairness)
β μ€ν λκΈ° λ°©μ§
β μμΈ‘ κ°λ₯μ±(predictability)
...
λκΈ°μκ°, μλ΅μκ°, λ°νμκ°
μ€μΌμ€λ§ κΈ°μ€ (Criteria)
β μ€μΌμ€λ§ κΈ°λ²μ΄ κ³ λ €νλ νλͺ©λ€
β νλ‘μΈμ€μ νΉμ±
- I/O-bounded or compute-bounded
β μμ€ν νΉμ±
- Batch system or interactive system
β νλ‘μΈμ€μ κΈ΄κΈμ± (urgency)
β νλ‘μΈμ€ μ°μ μμ(priority)
β νλ‘μΈμ€ μ΄ μ€ν μκ°(total service time)
CPU burst vs I/O burst
β νλ‘μΈμ€ μν = CPU μ¬μ© + I/O λκΈ°
β CPU burst: CPU μ¬μ©μκ°
β I/O burst: I/O λκΈ°μκ°
β Burst timeμ μ€μΌμ€λ§μ μ€μν κΈ°μ€ μ€ νλ
μ€μΌμ€λ§μ λ¨κ³ (Level)
β λ°μνλ λΉλ λ° ν λΉ μμμ λ°λ₯Έ ꡬλΆ
β Long-term scheduling
- Job scheduling
β Mid-term scheduling
- Memory allocation
β Short-term scheduling
- Process scheduling
Long-term Scheduling
β Job scheduling
- μμ€ν μ μ μΆ ν (kernerlμ λ±λ‘ ν ) μμ (Job) κ²°μ
β λ€μ€ νλ‘κ·Έλλ°μ μ λ(degree) μ‘°μ
- μμ€ν λ΄μ νλ‘μΈμ€μ μ μ‘°μ
β I/O boundedμ compted-bounded νλ‘μΈμ€λ€μ μ μμ΄μ μ ν
- μμ μ ν¨μ¨μ±
β μλΆν μμ€ν μμλ λͺ¨λ μμ μ μμ€ν μ λ±λ‘
- Long term scheduling λΆνμ (μ€μλ ↓)
Mid-term Scheduling
β λ©λͺ¨λ¦¬ ν λΉ κ²°μ (memory allocation)
- Intermediate-level scheduling
- Swapping (swap-in / swap-out)
Short-term Scheduling
β Process scheduling
- νλ‘μΈμλ₯Ό ν λΉν νλ‘μΈμ€ κ²°μ
β κ°μ₯ λΉλ²νκ² λ°μ
- λ§€μ° λΉ¨λΌμΌνλ€
κ·Έλ¦ΌμΌλ‘ 보λ μ€μΌμ€λ§μ λ¨κ³
μ€μΌμ€λ§ μ μ± (Policy)
β μ μ (Preemptive) vs λΉμ μ (Non-Preemptive)
β μ°μ μμ(Priority)
Preemptive/Non-preemptive scheduling
β Non-preemptive schduling
- ν λΉ λ°μ μμμ μ€μ€λ‘ λ°λ©ν λκΉμ§ μ¬μ©
- ex) system call, I/O
- μ₯μ : context switch overheadκ° μ μ
- λ¨μ : μ¦μ μ°μ μμ μμ , νκ· μλ΅μκ° μ¦κ°
β Preemptive scheduling
- νμμ μν΄ μμμ λΊ΄μκΈΈ μ μμ
- ex) ν λΉ μκ° μ’ λ£, μ°μ μμκ° λμ νλ‘μΈμ€ λ±μ₯
- μ₯μ : μλ΅μ± μ¦κ° (Time-shraing, real-time systemμ μ ν©)
- λ¨μ : context switch overheadκ° νΌ
Priority
β νλ‘μΈμ€μ μ€μλ
β static priority(μ μ μ°μ μμ)
- νλ‘μΈμ€ μμ± μ κ²°μ λ priority μ μ§
- ꡬνμ΄ μ½κ³ , overheadκ° μ μ
- μμ€ν νκ²½ λ³νμ λν λμ μ΄λ €μ
β dynamic priority(λμ μ°μ μμ)
- νλ‘μΈμ€ μν λ³νμ λ°λΌ priority λ³κ²½
- ꡬνμ΄ λ³΅μ‘, priority μ¬κ³μ° overheadκ° νΌ
- μμ€ν νκ²½ λ³νμ μ μ°ν λμ κ°λ₯
'β Group_Study > Operating System' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[3μ£Όμ°¨] Process Synchronization and Mutual Exclusion (0) | 2022.12.16 |
---|---|
[2μ£Όμ°¨] Scheduling Algorithms (0) | 2022.12.14 |
[2μ£Όμ°¨] Thread Management (0) | 2022.12.12 |
[1μ£Όμ°¨] Process Management: Interrupt, Context Switching (0) | 2022.12.07 |
[1μ£Όμ°¨] Process Management (1) | 2022.12.06 |
λκΈ