ααΆαααααΆαα’αααΈααααααααααααα·ααααα·ααΆα
α αα α! αααα»αα
ααααΆαααααΆαααα
α·ααααα»αααΆααααααα’αααααΌααααααΈααα’ααααα-ααΆαααααααααα’αααααα·αααααα½αα±ααα
αΆααα’αΆαααααααα½ααα
αααα»ααααα·ααααααααα»α - OSTEP α αααααΆααααααα·ααΆααααΆαααΆααααΈααααα
α’αααΈααΆαααΆαααααααααααααααααα·ααααα·ααΆαααΌα
ααΌααΈα αααααΊααααΎααΆαααΆαα½αααααΎαααΆα αααααα·ααΈαααααααααααααα α’αααα
αα
αΆα αα·ααααΆαααΆαα»ααααααααααΆααααααααααααααααΎαααΆααααααααααααα·ααααα·ααΆαααααΎαα α’αααα’αΆα
ααΎαααΎαααΎααααααααΆααααΆααα’αααα
ααΈααα
ααΆαααΆααααααΈααα·αααααααΎαααααΆααααααα’αΆα ααααΆααα ααΈαααα
ααΎα ααΎα ααΆαααααααααα½αααααΆαααααα½ααααααααα»α
αααααααααααααα
αααααααΈ 1: ααΆαααααΆα αααααααΈ 2α α’ααΌααΈα ααααΎαααΆα αααααααΈ 3α ααΆαααααΆαα’αααΈααααΎαααΆα API αααααααΈ 4α ααΆαααααΆαα’αααΈα’ααααααα αααΆααα·ααΆα αααααααΈ 5α αααααα·ααΈαααααααα MLFQ
α’αααααα’αΆα
αα·αα·αααααΎαααΆααααααααααα»ααα
ααΆαααααΎαααααΆαα αα½αααα·ααααααα α»ααααα·α
αα
αααα»αααΆαααααααααα ααΎαααΉααα·ααΆαα’αααΈαααα αΆααααΆαα’αα·αααααααα·ααΈααΆαααααααααααΈααααΆααααα»ααα½αα
αααααΆααααααααΌαααΆαααα α
ααΆ αα½αααα·ααααααα α»ααααα·α (MLFQ) α αααααα·ααΈαααααααα MLFQ ααααΌαααΆααα·αααααΆααΆααΎαααααΌααα
ααααΆα 1962 ααα Fernando J. CorbatΓ³ αα
αααα»ααααααααααα½ααααααΆααααααααΆ
ααααααααα
ααααααααααααααΆαααααααΌαααααΆ (CTSS) α ααΆαααΆαααΆααααα (αα½αααΆααααΆαααΆααα
αααααααα
Multics) ααααΌαααΆααααααΆααααΆαααααααααΆαααααααΆααααΆααααααΆαα Turing α α’ααααααα
ααααααΆαααΊ
ααααΎα±αααααααΎαα‘αΎαααΆαααααααααΆαα αα·αααα½αααΆαααΌαααΆααααα’αΆα
ααααΌαααΆαααααΎααα½α
α αΎααα
αααα»α
ααααααααααααΎααα½αα
ααα½αα
αααα½ααααααααΆα MLFQ ααααΆααΆααααααααΆααααα αΆαααα½ααααΈααααΆααΆααΌαααααΆαα
ααα½α 2 α
ααααΌαααΆααααΆααΆααααααΎαααααα·αααααΆααααααααΆααααΆααααααΌα αααααΌα
αααααΎαααΆααα·ααΆααααΆαα
αααα»αααΆααααααααα»α ααΆααααΌαααΆαααααΎα±αααααααΎαααααα·ααΈααΆαααααααααΆαα
αΆααααααΎααα
ααΎααα½αα
αααΎααααα»α
αα·α
αα
ααΆαααααΈαα αααααΆαααΆαααΆααααα OS αα·αααΉαααΆααααΎαααΆαααΆααααΆαααα½αααΉαααααΎαααΆαααααααααα»ααααΆαααααα α αΎαααΏαααα
α
ααααααΉαα
αΆαααΆα
ααααααΆααααααα·ααααα·ααΆααααααα½ααααααααΆα SJF, STCF α ααΈααΈα, MLFQ αααα»αααααΆααΆα
ααααΎα±ααααααααααααααΎααααααααΆααα’αααααααΎααααΆαα (α§ααΆα ααααααααΆααα’ααααααα’αααα»α αα·α
αααααΉαααΎαα’αααααααααα
αΆαα±αααα·α
αα
ααΆααααα
αα) α αΎαααΌα
ααααααΆααααααααααααααΆ
ααΆαααααΎαααα ααΆα’αα»αα αααα½ααααααααΆαααΌα
ααΆ RR ααααΎα’αααααααααΆααααΎααααααααΎαα‘αΎα ααα»ααααααααΆαααααα»αα
ααα₯αααα·ααα’αΆααααααα
ααΎαααααΆαααααααααΆαα·ααα»αα ααΌα
αααααααα αΆααααααΎα: αααααα
ααΆ
αααααα·ααΈαααααααααααααΉααααααααΆααααααΌαααΆαααααααΎαααααα·αααΉαααΈα’αααΈααΆααα’ααα
ααααααΆαα·ααααααΎαααΆαααΆααΌαα
? ααΎα’ααααααα
αααΆααα·ααΆαα’αΆα
αααααΈαααααααααα·α
αα
ααΆααααααααααΆ?
ααΎααΆααΎαααααΎαααΆααα½αααΆ α αΎαααααΎααΆααααααα
α
α·αααααααΎαααααΆαααΆαααααααααΎα?
ααααΉαααΆααααααα αΆα αααααααα
ααααααΆααααααααΆααα·α
αα
ααααα·αααΆαα
ααααααΉαααα’α₯αααα
αα?
αααααα
ααΆαααααα·ααΈαααααααααααααΆααααααααααααααΆααααΎααα
αααααΆαααα·α
αα
ααΆαα’αααααααα αα·ααααα»ααααααΆαα½αααααΆαααααΆααααααααααααααΆααααΆααααααΌαααααα·αααΉααααα½α
α
ααααααΉαα’αααΈαααααααΆα’αα»ααααααΆαααΆα?
α αααΆαα ααΎααααααΈααααΉαααα·ααΆααααα»αα
αα½α MLFQ ααΊααΆα§ααΆα αααααααα’ααααααααααααααααααΈ
ααααΉαααα·ααΆαααα’ααΈαααΆα ααΎααααΈααααααααΆαα’ααΆααα αα·ααΈααΆαααααααααααααααΆααΆααΉαααΆαα
ααΆαααααΎααα
αααα»α OS (αα·αααΆααΆααΆα
αααΎαααααααα·ααααΆααΆααααααα»αααααΌααα αα½αααΆααααΆααΆ
ααΆαααααΆαααααααααααΉα αα·ααααα½ααααααααΆαααααΆαααααααΆαα)α ααααΎααααααΆαααααααααααααΆ
ααααΌαααΆαααααα‘αΎααα
αααααααα·α
αα
ααΆαααΆαααααΆααααΆαα’αΆαααααα·αα·ααΆ α αΎαααΌα
ααααα’αΆα
ααααααααΆαααΆαα
αααααΆαααΆαααΆααααα α’ααααα½αααααααααααααΆαα½ααα
αα
αααααααα αααααααΆαααααααααΆαααΊααΆααααα½αααΆααα
α’αΆα
βααΉαβααααΆαβαα
βααΆβααΆαβαα·αβααααΉαααααΌα αα·αβααΆαβα±ααβααααααααβααααΎβααΆαβαααααα
βα
α·αααβα’αΆαααααβααΆα
ααΉαααααΆαα
ααααααΉαααΆαααααααα
MLFQ: α αααΆααααΆααΌαααααΆα
ααΌααααα‘ααααΎαα
αααΆααααΆααΌαααααΆααααααα½ααααααααΆα MLFQ α α αΎααααααΈααΆααΆαα’αα»αααααααααα½ααααααααΆααααα
ααΆααα·ααΈααΆαααααααΆααΌαααααΆααα½αα
ααα½αααΊααααααααααΆα
αα
αααα»αααΆαα’αα»αααααααααΎαααΉααα·αα·αααααΎα MLFQ ααΉαααΆααα½αα
ααα½α
αα½αααΆα
ααααα‘αα αααααΈαα½ααααΉαααΆαα’αΆαα·ααΆααααααααααΆα ααααααααααααΆ
αα·α
αα
ααΆααααααααααα½α
ααΆααααα
αααααΆααααΆαααααα·ααααα·ααΊαα
αααα»ααα½ααα½αα MLFQ ααααΎα’αΆαα·ααΆα
ααΎααααΈαααααα
ααΆααΎαα·α
αα
ααΆαααΆαααααααΌαααααΎαααΆααααααΆααααΆαααααα·ααααα· α§. ααΆααα·α
αα
ααΆαα½ααααααααΆα
α’αΆαα·ααΆα (αα·α
αα
ααΆαααΈαα½ααααααΆαα’αΆαα·ααΆαααααααααα»α) ααΉαααααΌαααΆαααΆααα±ααααααΎαααΆααα»αα
αα½αα
ααΆααΆααα·αααΆαα α’αΆα
ααΆααα·α
αα
ααΆαα
αααΎαααΆααα½ααα
αααα»ααα½ααααααΆααααααα±αα ααΌα
αααα
ααΌα
αααααα½αααααΉαααΆαα’αΆαα·ααΆαααΌα
ααααΆα αααα»αααααΈαααααααααΆαααΉαααααΌαααΆαααααΎ
RR ααΎααααΈααααααααααααΎαααΆααααα»αα
αααααα·α
αα
ααΆαααΆαααααα
ααΌα
ααααααΎαααααααααα½αααΆααΌαααααΆαα
ααα½αααΈααααααΆαα MLFQ:
- α αααΆααααΈ 1α ααααα·αααΎα’αΆαα·ααΆα(A) > α’αΆαα·ααΆα(B) αα·α αα ααΆα A ααΉαααααΌαα αΆααααααΎα (B ααΉααα·αααΆα)
- α αααΆααααΈ 2α ααααα·αααΎα’αΆαα·ααΆα(A) = α’αΆαα·ααΆα(B), A&B ααααΌαααΆαα αΆααααααΎααααααααΎ RR
αααααα’ααααΎα
ααα»α
ααΆαααΎ ααΆαα»ααααΆααααααα»αααΆααααα
ααααααΆα MLFQ
ααΊααΆα’αΆαα·ααΆαα αααα½αα±ααααΆααααααα’αΆαα·ααΆαααααα
ααΈαα½αα
ααΆααα·α
αα
MLFQ ααααΆααααααΌαα’αΆαα·ααΆαααααααΆα’αΆαααααααΎα₯αα·ααΆαααααααΆαααααααα
α§ααΆα ααα ααααα·αααΎαα·α
αα
ααΆααα½ααααα»ααααααΆαααΆααα
CPU α₯αααααα αααααααααα
αΆαααΆααααα
αΌαααααΆαα
α»α
α
MLFQ ααΉααααααΆα’αΆαα·ααΆαααααΎαααΆαααααα ααααααααααΆαααα
ααααΎαααΆαα’αααααααααα½αααααααΎαααΆαα ααααα·αααΎαα
ααΎαααα»ααααα·α, ααΆααα·α
αα
ααΊα₯αααααααα·α
ααααΎααααΆαα CPU αααΆαααααΆαααααα»αααααααααΌα MLFQ ααΉααααααααΆα
α’αΆαα·ααΆααα½αα ααΌα
αααα MLFQ ααΉααα·ααααΆααΈα₯αα·ααΆααααααααΎαααΆαααααααααααα½ααααααα»αααααΎαααΆα
αα·αααααΎα’αΆαααααα·αα·ααΆα
α
αΌαααΎαααΌαα§ααΆα αααα’αααΈα’αααΈααααα½αα’αΆα
ααΎααα
ααΌα
αα
α
ααα»α
ααΆαα½αα
αααααααΆ α αΎααααααΆααααα’αααααα½αααΆαα’αααΈαα½αααΌα
αααα
αα
αααα»ααααααααΆαααααα ααααΎαααΆα 2 A αα·α B αααα·ααα
αααα»ααα½αα’αΆαα·ααΆαααααααααα»αα ααααΎαααΆα
C ααΊααΆααααααααΆαα½ααα
αααααΆα α αΎαααααΎαααΆα D ααΊαα
α
α»ααααα
αααααα½αα αααβααΎβααΆαβααΆαβααΎαβα‘αΎαβααΆαβααΎ
ααααα
ααΆαααΆααα·αααααΆαααααα½ααααααααΆα MLFQ α’αααααααααααααΉαααααα·ααααα·ααΆααα·α
αα
ααααΆαα½αααΉαααααα·αααααααααα»αα
α’αΆαα·ααΆαααααα
ααΆα RR α αΎααα·α
αα
ααΆα C, D ααΉααααααααΎαααΆαα
ααΆααααααΆ ααΌααααα·αα·ααααααΉααα·ααααααααΌαααΆαααααααααααααααα MLFQ ααααΎαααΆααααααα
ααΆααΆααΆαααααΆαααααα»αααΆααααα
αααΆααα’αααΈαααααααααΌαααΆαααααΆααααααΌαααΆααααααααΆα
ααΆαααα»αααα 1: ααααααααΆααααααΌαα’αΆαα·ααΆα
αα
α
ααα»α
αααα’αααααααΌααααααα
α
α·αααααΆααΎ MLFQ ααΉαααααΆααααααΌαααααα·αα’αΆαα·ααΆααααΆαααΌα
ααααα
ααΆααα·α
αα
(α αΎαααΌα
ααααααΈααΆααααΆααα·α
αα
αα
αααα»ααα½α) αα
ααααααααΆααααΎαααΆαααΆααααααααααΈαα·αααααααΆα αααααΆαα
αααααΊα
αΆαααΆα
αααΎααααΈα
αα
αΆαααα αΌαααΆαααΆαα α
ααα½αααΆααααΆαα
αα·α
αα
ααΆαα’ααααααααααΆαα½αααΉααααααααααααααΈ (α αΎαααΌα
ααααααΆαα
ααααααΆαααΉαααΆαα
αααΈααΈααΌ) αα·ααα·α
αα
ααΆαααΌαα’αααααααΆα
αααΎααααααααΎαααΈααΈααΌααααααααααααΆααααΎααΆααααααα½ααα ααααααααα
αααααααΆααααΎααααα·αααααΆαααααααΆαααα·α
αα
ααΆαααααααααα α αΎααα·ααΈαααα’αααα’αΆα
ααΆαααααααΎαααααΌα
α’αα»αααααααα½ααααααααΆα MLFQ ααΆαα½αααΉαα
αααΆααααΌα
ααΆααααααα
- α αααΆααααΈ 3: αα αααααααα·α αα ααΆααα½αα αΌααα αααα»ααααααααα ααΆααααΌαααΆαααΆαααααα»ααα½ααααααΆαααααα·αααααααααα»αα
- α’αΆαα·ααΆαα
- α αααΆααααΈ 4aα ααααα·αααΎαα·α αα ααΆααα½αααααΎαα·αααΌαααααααΆααΆααααΌααααααΆααααα αααα ααΆ αααααΆα
- α’αΆαα·ααΆαααααΌαααΆαααΆαααααααα
- Rule4b: ααααα·αααΎ Task αα½αα αα CPU αα»αααααααααααΆααααααΆαα»αααααα αααααΆααΉαα αα
- αα ααααΆαα’αΆαα·ααΆαααααα
α§ααΆα αααααΈ 1: αα·α αα ααΆααααα½ααααααααΎαααΆαααΌα
ααΌα
αααα’αΆα
ααΎαααΎααα
αααα»αα§ααΆα αααααα ααΆααα·α
αα
α
αΌααααααααΌαααΆααααααααΆαα½αααΉαααααα·αααααααααα»αα
α’αΆαα·ααΆαα αααααΆααααΈαααα’α½α
αααααααΆ 10ms ααααΎαααΆαααααΌαααΆααααααΆααααΆα’αΆαα·ααΆα
α’ααααααα
ααααααΆαα αααααΆααβααΈβαααα’α½α
βααΎαβααααα αα·α
αα
ααΆαβααααΌαβααΆαβαααααΆααβααΆβα
α»αααααα
α’αΆαα·ααΆαααΆααααα»ααα
αααα»ααααααααα αααααΆαα
ααααα
α§ααΆα αααααΈ 2α αααααααα·α
αα
ααΆαααααΈαα½αα
α₯α‘αΌααααααΌαααΎαα§ααΆα αααα’αααΈααααααα MLFQ ααΉαααααΆααΆαα
αΌααα
αα·α SJF α αα
αααα»ααααα
α§ααΆα ααα αα·α
αα
ααΆαααΈαα α αααααΆαα·α
αα
ααΆαααααΌαα’αααααα₯αααααα
ααΆαααΆααααΆαα CPU αα·α B αααααΆαα·α
αα
ααΆαα’ααααααααααααΈα α§αααΆ
ααΆ A ααΆαααααΎααΆαα’αααα½ααααααα αΎα ααααααααααα·α
αα
ααΆα B αααααα
ααααΆα ααααααααα αΆαααΈααααααααααααΆααΈαααΌα αα·α
αα
ααΆα A ααΌα
ααΆαα·α
αα
ααΆαααΆαα½α
ααΆαααααΎααααΆαααααΈααΈααΌααΊαα
ααΆαααααααααα»αα αα·α
αα
ααΆα B ααΉαααααααα
ααα T=100 α αΎαααΉα
ααααΌαααΆαααΆαααααα»ααα½αα’αΆαα·ααΆαααααααααα»αα α
αΆααααΆααααΈαααααααα·ααααα·ααΆαααααααΆααΊααααΈ
ααΆααΉααααα
αααα»ααααααΆαααααα½αα
α»ααααααα
ααΈα§ααΆα ααααααααααα
ααααΆαααααααα½ααααααααΆααα½αααααααΌαααΆαααα: αααααΆααααα½ααααααααΆααα·αααΆα
ααΉαβααΆβαα·α
αα
ααΆαβαα½αβαααβα¬βααααΈβααα ααΆβααααΌαβααβαααααβααΆβαα·α
αα
ααΆαβαααα
ααααΈ αα·ααααααα’αΆαα·ααΆαααααααααα»αα ααααα·αααΎααααα·αααΆαα·α
αα
ααΆαααααΈααααααα
ααΆααΉαααααΌααααα
αααααΆαααΆαααα αα ααΎαα·αααΌα
αααααα ααααα·αααΎααΆααΆαα·α
αα
ααΆαααααα ααΆααΉαααααΎαααΆαααΊαα
α’αΆαα·ααΆαα
α»αααααα α αΎαααΉααααα αΆαααΆααΆααα·αααΆαα·α
αα
ααΆααααααααααΆαααααα·αααΆα
ααΆαααΆαααΆαααααΎαααα
α§ααΆα αααααΈ 3α α α»α I/O αα·α?
α₯α‘αΌαααΌαααΎαα§ααΆα ααα I/O α ααΌα
ααΆαα
αααααα»αα
αααΆααααΈα€ α.
ααααα·αααΎααααΎαααΆααα½ααααα
αα processor ααααα·αααααΎαααααααΆ processor ααααααΆααΆααα’ααααα
αααααΆααααααΆαα
αααααα·ααααα»αααααα·αα’αΆαα·ααΆαααααα αααααααααα
αααΆαααααααΊααΆααααααΆααα
- ααααα·αααΎααΆαααΆαα’ααααααααα’αα»ααααααααα·ααααα·ααΆα I/O α
αααΎα α§ααΆα ααα αααα
αΆα
ααΈααααΆααα
α»α
α’αααααααΎααααΆαα α¬ααΆαα
α»α
ααααα»α αα·α
αα
ααΆαααααααααΉαααααΎα±αααα½αααααΆαααααΎαααΆα
αα»αααααααα’α½α
αααααΆααααα
ααα ααΎααα·αα
αααααααα’αΆαα·ααΆααααα·α
αα
ααΆααααααααα
α αΎαααΌα
ααααααΆααΉααα
ααααα
α§ααΆα αααααααααα αΆαααΈααααααααααα½ααααααααΆαααΉαααααΎαααΆαααΆαα½αααααΎαααΆααααααα - ααΆαααΆαα’αααααααα B αααααααΌαααΆααα CPU αααααΆαα 1ms αα»ααααααααα·ααααα·
ααααΎαααΆα I/O αα·α Job A ααααΎαααΆαααΌα αααα
αααΆααααααΆααα’αααααα»αααΆαααααΎααααΆαα CPU α
MLFQ αααααΆααααΎαααΆα B ααΆα’αΆαα·ααΆαααααααααα»α αααααααΆαα
αααααα
αααα
αα CPU α ααααα·αααΎ B ααΊααΆαα·α
αα
ααΆαα’αααααααα ααααααα½ααααααααΆαααΆααααααα
ααααα
ααααα’αααααΊααΎααααΈααααΎαααΆααα·α
αα
ααΆαα’αααααααααααΆαααΆαααα ααα
αααα αΆααΆαα½ααααα½ααααααααΆα MLFQ αα αα α»αααααα
αα
αααα»αα§ααΆα αααααΈαα»α ααΎαααΆααααααΎαααααααΌαααααΆααα MLFQ α α αΎαααΆα αΆααααΌα
ααΆααΆαα
ααααΎααΆαααΆαααααααΆααΆαααα’ αα·ααααααααααα ααααααα
αααααααααΆαααΈααΈααΌαααααααΎααΆααααΆα
αα·α
αα
ααΆαααα αα·αα’αα»ααααΆαα±αααα·α
αα
ααΆαααααΈ α¬ααα·ααΆααααααα
ααααΎααΆαααΎ I/O αααΆααα ααα ααΆα’αα»αα αα·ααΈααΆααααααααααΆαα
αααΎαα
αααα αΆαααααααααα
ααααΌα, αααα αΆααααΆαα’ααααααΆα: ααααα·αααΎααααααααααΆαα’ααααααααα
αααΎαα
αα·α
αα
ααΆα αααααΆαααααα½αααααΉαααααΎααααΆαααααααααΆααααΎαααΆαααΆααα’αα α αΎαααΌα
αααααα·αααααααα½ααααααΆααααααααααΌααααααα
ααΆααα·α
αα
ααΉααα·αα’αΆα
ααααΌαααΆαα’αα»αααα (αα½ααααααα»αα’ααααααΆα) α
ααΈααΈαα’αααααααΎααααΆααααααΆαααα’αΆα
ααααααααααα·ααΈαααααα½αααααΌα
αααα
ααααααα’αααααααααααα ααΆααααααααααααΊααααΎα’αααΈαα½αααΎααααΈααααα
αααααα·ααΈαααααααααααααα±ααααααΎαααΆαααΌααααααααΆ CPU ααΆααααα
αααΎαα αααα½ααααααααΆααααα
αααααΆααα·αααααΆααΆαααΎααΊαα·αααΆααΆααααααααα
ααααααΆαααΆααααα αΆαααααααααααΆαααα αα»αααααααα’α½α
αααααααΆααααΌαααΆαα’αα»αααα
ααΆααααα
αα α’αααααααΌαα’αα»ααααααααα·ααααα·ααΆα I/O (α
ααααα―αααΆααα½αα
ααα½α αα·αααΆα―αααΆαα’αααΈαα)
ααΌα
ααααα αΎα ααΎααααΈααΈααΌα α’αΆαααααα·αα·ααΆααααααααΉαα’αα»ααααΆαα±ααα’ααααα
αααα
αα½ααααα½αααΆ α αΎααααααααααα½αααΆαααΆααααααααααααααΆαααΈααΈααΌα ααααα·αααΎβα’αααβααααΎ
αααααΊααααΉαααααΌα (α§ααΆα ααα ααααα·ααααα· 99% αααααααααΆαααα’α½α
αα»αααααααα
αααααΈααΈααΌ)
ααΆααα·α
αα
ααααααα’αΆα
ααααΆα
ααα»ααα½αααααΆαα
ααΆα
α»αααααα αααααα·ααΈαα½αα’αΆα
ααααΆααααααΌαα₯αα·ααΆααααααααΆααΆααααααααΆα αα·α
αα
ααΆαααΆααααα
αααααααΎ CPU α’αΆα
ααααΆαααΆα’ααααααααα αα
αααα»αα§ααΆα αααααααααΎαααΊααααααααααΆ
ααΆααα·α
αα
ααΉααα·αααα½αααΆαααΆαααααΆααΆαααααα½αααααααΉαααα½αααΆαααΈα’αααααααααααααΌα
α’αααααααααααα
ααααΆααααααα
(ααΎα) αα·α
αα
ααΆαα’ααααααααα
αααα½ααααααΆαααααααα·αααα ααΎααΆαααΆααααα αΆαα’αααΈααΎα’αααααααααααα’αΆα
ααααΌαααΆαα’αα»αααααα
αααα»ααα·ααααααααααΎα?
ααΆαααα»αααα 2: αααααΎαα’αΆαα·ααΆα
α
αΌαααΎαααααΆααΆαααααΆααααααΌαα
αααΆαα αα·αααΎαααΆααΎααΎαα’αΆα
αααααΆααααα αΆααΆαα½α
ααΆαααα’αΆα αΆαα ααΎβααΎαβα’αΆα
βααααΎβα’αααΈβααΆαβααΎααααΈβααΆααΆβααΆβααΆααααααα
αα·α
αα
ααΆα CPU ααΉαααα½αααΆααααααααΆαααααα½ααα (αααααΈααΆαα·αααΌαααααα) α
ααΆαααααααααΆαααααΆαααααα½αα
αααααααα αΆ α’αααα’αΆα
ααααΆαααΆαααααΆαα
αααααΎαα’αΆαα·ααΆααααα·α
αα
ααΆαααΆααα’αααα
αααα»αααααααααα ααΆααα·ααΈααΆα
αααΎαα
ααΎααααΈαααααα
ααΆαααΌαα
ααα»α
ααα α
αΌαααΎαααααΆααΆαα’αα»ααααα’αααΈαααααΆααααααΆα§ααΆα αααα αααααα
ααΆαααα·α
αα
ααΆαααΆααα’ααααααΌαααΆααααααα’αΆαα·ααΆαααααααααα»αααααΆαα ααΌα
ααααα
αααΆααααααΈα
- αα·ααΆα α€α αααααΆααααΈααα‘α»ααααααΆααααΆαα S ααΌαααααΆααααΈαα·α αα ααΆαααΆααα’αααα αααα»ααααααααααα αα½αααααααααα»αα
α
αααΆααααααΈααααααΎααααααααΆααααα αΆααΈααααα»αααααααα½αα ααΈαα½αααααΎαααΆα
ααααΌαβααΆαβααΆααΆβααΆβαα·αβα’ααβααααΆαα ααΆαααΆαβαααβααΆαβα’αΆαα·ααΆαβαααααβαααα»αβααΉαβααααΌαβαααα
αα
αααααααΆαααΈααΈααΌααααα
ααΆααααα½ααααααααΆα RR α αΎαααΌα
ααααααααΎαααΆαααΆααα’ααααΉαααα½αααΆα
αααααααΆαααΈααΈααΌα ααΈααΈαααααα·αααΎααααΎαααΆααα½αα
ααα½ααααααααΆααααααΎααΈαα»α
ααΆααααα½αααααΆαααα»ααααααααααααΆαααΆα’αααααααα ααΆααΉααα
αααααα·ααααα»ααα½αααΆαα½αααΉαααααα·αααααααααα»αα
α’αΆαα·ααΆααααααΆααααΈααα½αααΆαααΆαααΎαα‘αΎααα½ααααααα»αα’αΆαα·ααΆααααααααααααα»αα
ααΌααααα‘ααααΎαα§ααΆα ααααα½αα αα
αααα»αααααΆααΈαααΌααα ααΌααα·α
αΆαααΆααααΎαααΆααα½ααααααααΎ
αααΈααΈααΌ αα·αα’ααααααααααΈα ααααΎαααΆαααααΈα αα
ααΆαααααααααα»αααΌα αα½αααααααα αΆαα’αΆαααααα·αα·ααΆαααααααΆαααΆαααααααααααΆαααΆα’αΆαα·ααΆα α αΎαααΌα
αααααα·α
αα
ααΆααααααααΎαααΆαααΌαα
αΆααααααΎααααααααααΆα αααααΆααααΈαα·α
αα
ααΆαα’ααααααααααΈααααααααααααααα αα
αααα»αααΌαααΆααα
ααΆαααααΆα ααΆαααΎαα‘αΎαα’αΆαα·ααΆαααααΌαααΆαα’αα»αααααααααΆαα 50ms α αΎαααΌα
ααααααααΎαααΆαααΆααα’ααααααΌαααΆαααΆααΆααΆααΉαααα½αααΆααααααααΆαααΈααΈααΌ α αΎαααΉαααααΌαααΆαααΆααα±ααααααΎαααΆαααΆαααααΆααα 50ms αα
αααα»αααααΈαααααααΌαααΆαααααΆα§ααΆα ααααα½α; ααΆααα·αα
ααα½ααααααΊαααααααΆαααααα·α
α
ααΆααααααα ααΆααααααααααααααΆααΎαα‘αΎαααΆαααΆαααααα S ααΆαα±αα
αααα½αα‘αΌααΈααα ααΎαααααα’αααΈααααα½αααααα? αα½ααααα»αα
αααααα·αααα·αα
αα·ααααααααααααα John Ousterhout ααΆαα α
ααα·ααΆααααααααα
αααα»αααααααααααΆ voo-doo
α₯αααααα α
αΆααααΆααααΈαα½αααααΆααα·ααΈααααααΆαααΆαααααααααααα
αααααΆααααααΉαααααΌαα
ααΆαααΆαααα·αααααα α αΎαααΆα’αα»αα S ααΆααααα·ααααα’αΌαααααααα ααααα·αααΎα’ααααααααααααααααααα
αα·α
αα
ααΆααα - ααΌαααΉαα
αΆααααααΎαα’ααααααΆαα α αΎαααααα·αααΎα’αααααααααααααααΆααααα
αα·α
αα
ααΆαα’ααααααααααΉααα·αααα½αααΆααααααααΆ CPU ααααΉαααααΌαα
ααΆαααα»ααααααΈ 3: αααααααααΆαααααααααΎα
α₯α‘αΌαβααΎαβααΆαβαααα αΆβαα½αβαααβααααΌαβαααααααΆαα ααααΎβαααα
βαα·αβαα
α’αα»ααααΆαα±αααααααα·ααΈααααααααααααΆααααααΎαααααααααα? ααα»ααααααααααΌαααααΈααααααα
ααααααααααΆααααααΊ
α
αααΆαα 4a, 4b αααα’αα»ααααΆαα±ααααΆαααΆααααααΆα’αΆαα·ααΆα ααααΎα±ααααααΎαααΆαααααΎαααΆαα‘αΎααα·α
αα»αααααααααααΆααααααα»ααααααα ααΎααααΎααΌα
ααααα
ααΎααααΈαααααααΆαααΆαα½αααα?
αααααααααΆααααα»αααααΈαααα’αΆα
ααααΌαααΆαα
αΆαααα»αααΆααΆαααααααααΆαααααααααΎαα‘αΎααααααααααΆαααΈααΈααΌαα
ααΎααΈαα½αα
ααααα·α MLFQ α αααα½αα±ααααΆαααααα
αααααααΆααααααααα·ααΈααΆαααααΎ
processor αααααΆαααααααααααααΆααααα
ααααΆαα½αααααααΌαααΆααααα
αααα»αααααΈαα·ααααααΆαα»αα αααααΆααααΈ
ααααΎαααΆαααΆαααααΎα’ααααααααααααααααΆ ααΆαα½αααααααΌαααΆααααααΆααααααααα
αααααΆαα
ααααα·αα’αΆαα·ααΆαα α₯α‘αΌααααααΆαα·αααΆααααα αΆααΆααΎααααΎαααΆαααΉαααααΎαααααααΆααααααΆαααΆαααΌα
ααααα
αααααα
ααααΆα₯αααααααα
ααΎαα½αααααΆα α¬ααΆα
ααα½αααααΆαα α
ααΌαααααα ααΌα
αααα
α
αααΆααααΈ 4 αα½αααααααΌαααΆααααααα‘αΎααα·αααΌαααααααααΌα
ααΆααααααα
- αα·ααΆα α€α αααααΆααααΈαα·α αα ααΆααα½αααΆαααααΎαααααααΆαααααΆααααα ααααααααΆαα αααα»ααα½ααα αα α»αααααα (αα·αααΆααΆααΎααααΈααΈααΌααα»ααααΆααααα) α’αΆαα·ααΆααααα·α αα ααΆααααααααΌαααΆααααααΆα (ααΆααααΆααααΈα α»αααααα)α
αααααΎαα§ααΆα αααα
Β»
αα½αααααααα αΆαααΈα’αααΈαααααΉαααΎαα‘αΎα ααααα·αααΎα’αααααααΆααΆαααααααααααα’ααααααα
αααΆααα·ααΆα ααΌα
ααΆ
ααααα·αααΎααΆαα
ααΆαα½αα
αααΆαααα»α 4a ααα 4b αααααααα
ααΆααααααααΉαααααΌαααΆαααα½αα ααΈαααΆαααααΈα
αααα½αααΊααΆαααααααα
ααΆαααααΆαα αα»ααααααΆαααΆα ααααΎαααΆαααΆαα½αα’αΆα
α α
αα
I/O αα»αααααααα
αα αα·α
ααΌα
ααααααααααααα CPU αααααΆααααΈααΎαααΆαααΆαααΆα ααααα·ααα·αααΈα’αΆαααααα·αα·ααΆ
I/O ααΆααααΉααα
ααα
α»ααααα»ααα½α α αΎαααΌα
ααααααΉααα·αα’αΆα
αα·αααααααααααααΆαααα
ααΆααααΆααααααΆα CPU α
ααΆααααααα’ MLFQ αα·ααααα αΆααααααααα
ααΆαα½αααΉαααΆαααααΎα±αααααααΎαα‘αΎαααΆαααΎαααα αΆααααΈααΎαα‘αΎα: αα½αααα
αααα
αααα½α - αααααααααααΆααα·ααΆααααααα? ααΆαααααα ααΎααΆαα½αααααΆααααααααα»ααααΆα
αα½α? ααΎααα ααααα’α½α
αααααα·ααΈαα½αααΆαααα αααα»αααΆαααα»ααα½α? αααα
α’αΆαα·ααΆααααααα·ααΈαα½αααααααΌαααΆααααααΎαααΆααΉαααΆαα ααΎααααΈαααααΆαααΆαα’ααααααΆα αα·α
αααα
αααα»αααααΈααΆαααααΆααααααΌαα₯αα·ααΆαααααααα·ααΈ? αα·αααΆαα
ααααΎαααΆααααα
αααααααα½αααΆαααααααα
α
αααΎα αα·αααΆαααααΆααα·αααααααΆαα½αααΉαααααα»α αα·αααΆαααααααα
ααΆααααααααααΆαααααααααΆαα
α’ααααααα
ααααααΆαα’αΆα
ααΆαα±ααααΆααα»αααααΆαααααααα
α·αααα
ααΆα§ααΆα ααα ααΆαα’αα»αααα MLFQ ααΆαα
αααΎαα’αα»ααααΆαα±ααα’ααααααααααΆααα»αααααΆ
α
αααααααααααααΆαααα½αααααααααααΆα ααΆααααααΆαα½αα’αΆαα·ααΆααααααα
α
ααααααααααααΈααααΌαααΆαα
ααααααααααααΆα αα½αααΆαααααααΆαααΆααα·α
αα
α’αααααααα
ααΆαααααΆααααααΌααααΆααααααΆααααααααααΎαααααΆαα α αΎααα½ααααα 10 α¬αα·α
ααΆααααα
ms αααα»ααα
αα·α αα½ααααααΆαα’αΆαα·ααΆαααΆαααΆααα·α
αα
ααΆααααααααΎαααΆαααΌααααααααΎ
αααΈααΈααΌα α αΎααααα»αααααΈααα α
ααααααααααααΌαααααα’ (100ms)α
αααα»αα§ααΆα ααααααααΆααα·α
αα
ααΆαα
ααα½α 2 αααααααΎαααΆααααα»ααα½αα’αΆαα·ααΆαααααα 20
ms αααα
ααααΆ 10ms windows α 40ms αα
αααα»ααα½ααααααΆα (αααα’α½α
20ms) αα·ααα
αααα»αα’αΆαα·ααΆαααΆα
αααα’α½α
αααααααΆαα½αααΆαααααΆαααΆ 40ms ααααα·α
αα
ααΆαααΆααααα
ααααΆαααΆααααααα½αααα
ααΆαα’αα»αααα Solaris OS αα MLFQ ααΊααΆααααΆαααααααααα·ααΈααααααααααααΆα
αααααααα
α’ααααααα
ααααααΆαααΉααααααααΌααααα»αααααΆααΆααααααααααααΆααα·αααααΆααααΌα
αααααΆαα½ααα
α’αΆαα·ααΆαααααααΎαααΆαααααΆααααααΌαααααα½αααΈαα·αααααααΆ α’αααΈααααα½αααΆαααα α
αα·αααΌαααααΆααααα
αα αα·αααΉαααΆααααα»ααααΆαααα’αααααααΌαααΆαααΎααααΈαααααΎαα’αΆαα·ααΆαααΆαααΆαα α’αααααααααααα
ααααααααα’αΆα
ααααΎα’ααααααααααΆαα½αααΆααΆαααα αα·αααααΎα±αααααααα·ααΈααααααααααΆαα₯αα·ααΆαα
αα»αααααΆα ααΆαααααΆαααΎα ααΆααΆααααααΆα 60 αα½αααΆαα½αααΉαααΆαααΎαα‘αΎαααααα·α
ααααα
ααα ααααα’α½α
ααΈ 20ms (α’αΆαα·ααΆαααααα) αα
ααΆα
αααΎααα ms (α’αΆαα·ααΆαααΆα) αα·α
αααααααΆαα½αααΉαααΆααααα»ααααα·α
αα
ααΆαααΆααα’αααααααααα»ααα½ααα·ααΆααΈα
α’ααααααα
ααααααΆα MLFQ αααααααααα·αααααΎααΆααΆα α¬ααΆααααΆααααΆαα½αα‘αΎαα
α
αααΆαααααααααΌαααΆααα·αααααΆαα
αααα»αααΆαααααααααα αααα»ααα
αα·α αα½αααααααΆα’αΆαα·ααΆααααααααΎ
ααΌαααααααα·ααα·ααααΆα α§ααΆα ααα αααααα·ααΈαααααααα FreeBSD ααααΎααΌααααααααααΆαα
ααααΆα’αΆαα·ααΆααα
αα
α»αααααααααα·α
αα
ααΆααααααα’ααααΎαααααααααααααΎαααΆα
αααΈααΈααΌαααααααΎα ααΎαααΈααα ααΆαααααΎααααΆαα CPU ααα
α»αααΆααααααααΆ α αΎαααΌα
αααααααα
ααΌα
αααα ααΆααααααΎαα’αΆαα·ααΆαααΎαα‘αΎααα»αααΈααΆααα·αααααΆααΆαααΎα ααΆβααΆβααΆααα·α
α α
ααΆ decay algorithmsα α
αΆααααΆααααΈαααα 7.1, FreeBSD ααΆαααααΎαααααα·ααΈαααααααα ULE α
ααΈαααα»α αααααα·ααΈααααααααααΆα
αααΎαααΆααα»αααΆαααααααααα α§ααΆα ααααααα
α’αααααααααααααααα»ααα»αααααα·αααααααααα»ααααααΆααααααα·ααααα·ααΆαααααααααααααααα·ααααα·ααΆαα αΎαααΌα
αααα
ααΌα
αααα ααααΆαααααΎαααΆαααααα’αααααααΎα’αΆα
ααα½αααΆαα’αΆαα·ααΆαααααααααα»ααα
αααα»α
ααααααααα αααααααααα½αα
ααα½αα’αα»ααααΆαα±ααα’ααααααααααααΌααααΆαααΎααααΈαα½α
α’ααααααα
ααααααΆαα’αΆα
αααααα’αΆαα·ααΆαααΆαααααΉαααααΌαα α§ααΆα ααααααααααΎααΆααααααααΆ ααβαααααβααα’αΆα
α’αααα’αΆα
αααααΎα α¬αααααα’αΆαα·ααΆααααα·α
αα
ααΆααα½α α αΎαααΌα
αααααααααΎα α¬
ααΆαααααααα±ααΆααααααααααα·ααΈαααα»αααΆαααααΎααααΆαααααααααΆαααΈααΈααΌα
MLFQ: αααααα
ααΎαααΆααααααΆα’αααΈαα·ααΈααΆαααααααααΎαααααΆααα½αα α
ααΆ MLFQ α αααααβααααβααΆαα
αα»αααααααα
αααα»ααααααΆαααααααααα·ααααα·ααΆα - ααΆααΆααα½αααΆα
αααΎααα·αααααΎααα·αααααα’
ααΎααααΈαααααα’αΆαα·ααΆαααΆαααΆαα
ααααααα
α»ααααααααα
αααΆααααΉαααΆαααΌα
ααΆααααααα
- αα·ααΆα α€α ααααα·αααΎα’αΆαα·ααΆα(A) > α’αΆαα·ααΆα(B) αα·α αα ααΆα A ααΉαααααΌαα αΆααααααΎα (B ααΉααα·α)
- αα·ααΆα α€α ααααα·αααΎ priority(A) = Priority(B), A&B ααααΌαααΆαα αΆααααααΎααααααααΎ RR
- αα·ααΆα α€α αα αααααααα·α αα ααΆααα½αα αΌααα αααα»ααααααααα ααΆααααΌαααΆαααΆαααααα»ααα½αα’αΆαα·ααΆαααααααααα»αα
- αα·ααΆα α€α αααααΆααααΈαα·α αα ααΆααα½αααΆαααααΎαααααααΆαααααΆααααα ααααααααΆαα αααα»ααα½ααα αα α»αααααα (αα·αααΆααΆααΎααααΈααΈααΌααα»ααααΆααααα) α’αΆαα·ααΆααααα·α αα ααΆααααααααΌαααΆααααααΆα (ααΆααααΆααααΈα α»αααααα)α
- αα·ααΆα α€α αααααΆααααΈααα‘α»ααααααΆααααΆαα S ααΌαααααΆααααΈαα·α αα ααΆαααΆααα’αααα αααα»ααααααααααα αα½αααααααααα»αα
MLFQ ααΊαα½αα±ααα
αΆααα’αΆαααααααααααΆααα ααα»ααααΆαααααα - αααα½αα±ααααΆαααΆαααΆαα
ααααααΉαα’αααΈ
ααααααΆαα·αααα·α
αα
ααΆαααΆαα»α αααα½ααααααααΆααα·ααααΆααΈα₯αα·ααΆααα’ααΈαααΆαααααΆααα·α
αα
αα·ααααα»α
α’αΆαα·ααΆαααΆαα ααΌα
ααααα αΎα ααΆααααααΆααΆαα’αααα»αααΎαα
α’αΈααΈααααα»αααααααα½α ααΎααααΈαααααα
ααΆαααΌαααα·αααΆααααααΆαααα·α
αα
ααΆαααΌα
α (SJF, STCF) αα·αααΎααααΈααααΎαααΆααααααααααααααα
ααΆαααΆααααα»ααααΈααΈααΌα ααΌα
ααααααααααααααΆα
αααΎααα½αααΆαα BSD αα·ααα·ααααααααααα»αααααα½ααα
Solaris, Windows, Mac ααααΎαααααααα½αα
ααα½ααααααα½ααααααααΆαααΆα’ααααααααααα
MLFQ ααΆααΌαααααΆαα
ααααΆααααααααα
manpages.debian.org/stretch/manpages/sched.7.en.html en.wikipedia.org/wiki/Scheduling_ (αα»αααααΌααα)pages.lip6.fr/Julia.Lawall/atc18-bouron.pdf www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf chebykin.org/freebsd-process-scheduling
ααααα: www.habr.com