Previous chapter
Main Question : How to develop Scheduling
μ€μΌμ€λ§ μ μ±
μ μκ°νκΈ° μν κΈ°λ³Έμ μΈ νλ μμν¬λ₯Ό μ΄λ»κ² λ§λ€μ΄μΌ νλκ°? μ΄λ€ κ²λ€μ κ°μ ν΄μΌνλκ°? μ΄λ€ κΈ°μ€μΌλ‘ μ μ±
μ νκ°ν΄μΌνλκ°? μ΄κΈ°μλ μ΄λ€ κΈ°λ²λ€μ΄ μ¬μ©λμλκ°?
Workload Assumptions
νλ‘μΈμ€κ° λμνλ μΌλ ¨μ νμλ₯Ό μν¬λ‘λ(workload)λΌ νλ€.
β’
μ μ ν μν¬λ‘λμ μ μ μ μ€μΌμ€λ§ μ μ±
κ°λ°μ λ§€μ° μ€μν λΆλΆμ΄λ€.
μ°λ¦¬λ μμ€ν
μμ μ€νμ€μΈ νλ‘μΈμ€λ μμ
(job)μ λν΄ λ€μκ³Ό κ°μ κ°μ μ νλ€.
1.
λͺ¨λ μμ
μ κ°μ μκ° λμ μ€νλλ€.
2.
λͺ¨λ μμ
μ λμμ λμ°©νλ€.
3.
μμ
μ μΌλ¨ μμνλ©΄ μ΅μ’
μ μΌλ‘ μ’
λ£λ λκΉμ§ μ€νλλ€.β
4.
λͺ¨λ μμ
μ CPUλ§ μ¬μ©νλ€.(μ¦, μ
μΆλ ₯μ μλ€.)
5.
κ° μμ
μ μ€ν μκ°μ μ¬μ μ μλ €μ Έ μλ€.
Scheduling Metrics
μν¬λ‘λμ λν κ°μ μ΄μΈμ μ€μΌμ€λ§ μ μ±
μ νκ°λ₯Ό μν΄ μ€μΌμ€λ§ νκ° νλͺ©(scheduling metric)μ κ²°μ ν΄μΌνλ€.
turnaround time : λ°νμκ°
μμ
μ΄ μ§νλ μκ°μ λ°νμκ°(turnaround time)μ΄λΌ νλ€. μμ
μ΄ μλ£λ μκ°μμ μμ
μ΄ λμ°©ν μκ°μ λΊ μκ°μ΄λ€.
λͺ¨λ μμ
μ λμμ λμ°©νλ€κ³ κ°μ νμΌλ―λ‘, μ΄λΌκ³ μκ°ν μ μμ κ²μ΄λ€.
First In First Out(FIFO)
κ°μ₯ κΈ°λ³Έμ μΈ μκ³ λ¦¬μ¦μ΄λ€. FIFOλ μ₯μ μ΄ λ§λ€.
β’
λ¨μνλ€.
β’
ꡬννκΈ° μ½λ€.
β’
μ°λ¦¬μ κ°μ νμμλ λ§€μ° μ λμνλ€.
Examples
λ
Έλμμ΄ A, νλμμ΄ B, μ΄λ‘μμ΄ C μμ
μ΄λ€.
β’
μμ
A,B,Cκ° λμμ λμ°©νλ€.
β¦
μ¦, λͺ¨λ μμ
μ κ° 0μ΄λ€.
β’
μ΄λ κ°λ°μ μ°¨λ‘ ascendingνκ² λμ°©νλ€κ³ νμ μ΄ λ΄μ κ²½μ° μμ κ°μ΄ μ€μΌμ₯΄λ§ λ κ²μ΄λ€.
μ΄ λ νκ· λ°νμκ°(Average Turnaround Time)λ λ€μκ³Ό κ°μ΄ ꡬν μ μμ κ²μ΄λ€.
μ¦, (10+20+30)/3 = 20μ΄λ€.
κ΅μ₯ν ν©λ¦¬μ μΈ μ μ±
κ°μ§λ§, μ΄μ 5κ°μ κ°μ μ€ νλμ κ°μ μ ν΄κΈν κ²μ΄λ€.
μ΄μ λΆν° κ° μμ
μ μμ
μκ°μΈ λͺ¨λ κ°μ μκ° λμ μ€νλμ§ μλλ€.
μ΄λ λ€μκ³Ό κ°μ λ¬Έμ μ μ΄ λ°μν κ²μ΄λ€.
μ΄μ Aμ μμ
μκ°μ΄ 100μ΄λ‘ λμλ€. μ΄ μνμμ νκ· λ°νμκ°μ 110μ΄λ‘ λμ΄λκ² λλ€.
μ΄ νμμ convey effect(νΈμ‘ ν¨κ³Ό)λΌκ³ λΆλ₯Έλ€.
νΈμμ μμ μλ£μ νλλ₯Ό μ¬λλ° μμ¬λμ΄ μΉ΄νΈμ κ°λ 물건μ μ£κ³ κ³μ°λλ₯Ό λ
μ°¨μ§νλ κ².
Shortest Job First(SFJ)
μ¬μ€ 1λ² κ°μ μ΄ λ°μ΄μ΄ λ¬λλΌλ μκ°λ³΄λ€ κ°λ¨νκ² ATTλ₯Ό μ€μΌ μ μλ λ°©λ²μ΄ μλ€.
μμ
μκ°μ΄ μμ Bμ Cλ₯Ό μ°μ μ μΌλ‘ μ€μΌμ₯΄λ¬μ λ°°μΉνλ κ²μ΄λ€.
μμ
μκ°μ΄ κ°μ₯ μ μ μ€μΌμ₯΄λΆν° λ¨Όμ λ°°μΉνλ κ²μ μ΅λ¨ μμ
μ°μ (Shortest Job First)μ΄λΌκ³ νλ€.
μ΄μ μ€νμκ°μ΄ κ°μ₯ κΈ΄ Aκ° κ³μ°λλ₯Ό κ°μ₯ λμ€μ μ°¨μ§νκΈ° λλ¬Έμ Bμ Cκ° μ€λ«λμ κΈ°λ€λ €μΌ νλ μ νμν©μ΄ μ€μ§ μλλ€! λ§μΈ!
μ΄λμ νκ· λ°νμκ°μ ꡬνλ©΄ λ€μκ³Ό κ°λ€.
μ΄μ λ¬Έμ κ° μμ΄λ³΄μΈλ€. κ·ΈλΌ λ€μ κ°μ μ ν΄κΈνμ.
μ΄μ λͺ¨λ μμ
μ λμμ λμ°©νμ§ μμΌλ©° μμμ μκ°μ λμ°©ν μ μλ€.
λ°λλ‘ μ΄μΌκΈ°νλ€λ©΄, SJFλ λͺ¨λ μμ
μ΄ λμμ λμ°©ν λ μ΅μ μ μκ³ λ¦¬μ¦μ΄ λ μ μλ€λ κ²μ΄λ€.
T=0μΈ μμ μμ Aλ§ λμ°©νλ€κ³ κ°μ νμ. A μ΄μΈμ λ€λ₯Έ νλ‘μΈμ€κ° μκΈ° λλ¬Έμ Aλ₯Ό λ°°μ νλ€.
κ·Έλ¬λ T=10μΈ μμ μμ Bμ Cκ° λ€μ΄μ€κ² λλ€λ©΄ Aκ° λͺ¨λ λλ λκΉμ§ Bμ Cλ νμΌμμ΄ κΈ°λ€λ¦¬κ² λλ€. μ¦, ATTλ₯Ό λ€μ ꡬνλ©΄ λ€μκ³Ό κ°λ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ μμ΄λ¬λνκ²λ κ°μ 3μ μνν΄μΌ νλ€.
Preemptive : μ μ
β’
μ μ μ€μΌμ€λ¬ : λ€λ₯Έ νλ‘μΈμ€λ₯Ό μ€νμν€κΈ° μν΄ νμνλ€λ©΄ νμ¬ νλ‘μΈμ€μ μ€νμ μ€λ¨νλ€.
β’
λΉμ μ μ€μΌμ€λ¬(ex : SJF) : κ° μμ
μ΄ μ’
λ£λ λκΉμ§ κ³μ μ€νλλ€.
Shortest Time-to-Completion First(STCF)
μ΄μ κ° μμ
μ μμ
μ μ€ννλ λμ€μ μ€μ§λ μ μλ€.
μ¦, Bλ Cκ° λμ°©νμ λ μ€μΌμ€λ¬λ νλμΌμ μ€μ§νκ³ λ€λ₯Έ μμ
μΌλ‘ μ€μμΉκ° κ°λ₯νλ€.
SJFλ λΉμ μ ν μ€μΌμ€λ¬μ΄κΈ° λλ¬Έμ μ€νμ€μΈ μμ
μ μ€μ§νκ³ λ€λ₯Έ μμ
μ μ€ννμ§ λͺ»νλ€.
νμ¬ μ€νμ€μΈ μμ
κ³Ό μλ‘μ΄ μμ
μ μμ¬ μ€νμκ°μ λΉκ΅ν΄ μμ¬μκ°μ΄ κ°μ₯ μμ μμ
μ μ€μΌμ€νλ λ°©μμ μ΅λ¨ μμ¬μκ° μ°μ (Shortest Time-to-Completion First)λΌ νλ€.
μ΄μ T=10μΈ μμ μμ Bμ Cκ° λ€μ΄μμ λ μ€μΌμ₯΄λ¬λ μμ¬μκ°μ΄ μμ μμλλ‘ μ¬λ°°μΉλ₯Ό νκ² λλ€. μ΄λμ ATTλ λ€μκ³Ό κ°λ€.
New Evaluation Model : Response Time
STCFλ λ€μκ³Ό κ°μ 쑰건μμ λ§€μ° νλ₯ν μ μ±
μ΄λ€.
β’
μμ
μ κΈΈμ΄λ₯Ό 미리 μκ³ μλ€.
β’
μμ
μ΄ μ€μ§ CPUλ§ μ¬μ©νλ€.
β’
νκ° κΈ°μ€μ΄ λ°νμκ°μ΄λ€.
κ·Έλ¬λ μλΆν μ»΄ν¨ν°κ° λ±μ₯νλ©΄μ μ¬μ©μκ° ν°λ―Έλμμ μμ€ν
μκ² μνΈμμ©μ μνν νκΈ° μν μ±λ₯μ μꡬνκ² λμλ€.
λ°λΌμ μλ΅μκ°(response time)μ΄λΌλ μλ‘μ΄ νκ° κΈ°μ€μ΄ νμ΄λκ² λλ€.
μμ
μ΄ λμ°©νλ μμ λΆν° μ²μμΌλ‘ μ€μΌμ€ λ λκΉμ§μ μκ°μ κΈ°μ€μΌλ‘ μΈ‘μ νλ€.
A = 0, B = 0, C = 10μ΄ λ κ²μ΄λ€.
STCFλ μ΄λ° κ΄μ μμ μλ΅μκ°μ΄ 짧λ€κ³ ν μ μλ€. λ°λΌμ μλ΅μκ°μ μ΅μννλ μ€μΌμ€λ¬λ₯Ό λ§λ€μ΄μΌ νλ€.
Round-Robin(RR)
μΌμ μκ° μ€νν ν μ€ν νμ λ€μ μμ
μΌλ‘ μ ννλ λ°©μμ λΌμ΄λ λ‘λΉ(RR)μ΄λΌ νλ€.
μ΄λ λ¨μ μκ°μ νμ μ¬λΌμ΄μ€(time slice) λλ μ€μΌμ₯΄λ§ νν
(scheduling quantum)μ΄λΌ λΆλ₯Έλ€.
β’
νμμ¬λΌμ΄μ€μ κΈΈμ΄λ νμ΄λ¨Έ μΈν°λ½νΈ μ£ΌκΈ°μ λ°°μμ¬μΌ νλ€. νμ΄λ¨Έκ° nκΈΈμ΄λ§λ€ μΈν°λ½νΈλ₯Ό λ°μμν¨λ€λ©΄ νμμ¬λΌμ΄μ€μ κΈΈμ΄λ knμ΄ λμ΄μΌ νλ€.
νμμ¬λΌμ΄μ€μ κΈΈμ΄λ RRμκ² λ§€μ° μ€μνλ€.
νμμ¬λΌμ΄μ€κ° 짧μ μλ‘, μλ΅μκ°μ κΈ°μ€μΌλ‘λ RRμ μ±λ₯μ΄ μ’μμ§λ€.
κ·Έλ¬λ νμμ¬λΌμ΄μ€κ° λ무 짧μΌλ©΄ Context Switchingμ λΉμ©μ΄ λ 컀μ§κ² λ¨μ μ μνλΌ.
Response time VS Turnaround Time
RRμ κ°μ 곡μ ν μ μ±
λͺ¨λ νλ‘μΈμ€μκ² CPU λΆλ°°νλ μ μ±
μ λ°νμκ°κ³Ό κ°μ νκ° κΈ°μ€μμλ μ±λ₯μ΄ λμλ€.
λ°λλ‘ κ³΅μ μ±μ΄ λ μ€μνλ€λ©΄ μλ΅μκ°μ μ€μ΄λ€μ§λ§ λ°νμκ°μ λλΉ μ§λ€.
Incorporating I/O
μ΄μ κ°μ 4λ₯Ό ν΄κΈν λκ° μλ€.
λͺ¨λ νλ‘κ·Έλ¨μ μ
μΆλ ₯ μμ
μ μννλ€.
νμ¬ μ€νμ€μΈ νλ‘μΈμ€κ° μ
μΆλ ₯ μμ
μ μμ²ν κ²½μ° μ€μΌμ€λ¬λ λ€μμ μ΄λ€ μμ
μ μ€νν μ§ κ²°μ ν΄μΌνλ€.
νμ¬ μ€νμ€μΈ μμ
μ μ
μΆλ ₯μ΄ μλ£λ λκΉμ§ CPUλ₯Ό μ¬μ©νμ§ μκΈ° λλ¬Έμ΄λ€.
Next chapter