๐ก System ์ ์์์ Process/Thread ์๊ฒ ์ด๋ป๊ฒ ํ ๋นํ ๊ฒ์ธ๊ฐ?
- Assign system resource (CPU, I/O device, etc) to processes/threads to meet system objectives (response time, turnaround time; ํ๋ก์ธ์ค ์์๋ถํฐ ๋๊น์ง ์ด ์๊ฐ , throughput; ์๊ฐ๋น ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์ค ์, or fairness..)
- In practice, these goals often conflict
โ๏ธ CPU Scheduler
โ๏ธ Dispatcher
โ๏ธ CPU ์ค์ผ์ค๋ง์ด ํ์ํ ๊ฒฝ์ฐ๋ ํ๋ก์ธ์ค์๊ฒ ๋ค์๊ณผ ๊ฐ์ ์ํ ๋ณํ๊ฐ ์๋ ๊ฒฝ์ฐ๋ค
1. Running ๐ Blocked (ex: I/O ์์ฒญํ๋ System Call)
2. Running ๐ Ready (ex: ํ ๋น์๊ฐ๋ง๋ฃ๋ก timer interrupt)
3. Blocked ๐ Ready (ex: I/O ์๋ฃํ ์ธํฐ๋ฝํธ)
4. Terminate
โ๏ธ Scheduling Criteria (Performance Index, ์ฑ๋ฅ ์ฒ๋)
(or Job scheduler)
โ๏ธ ์์ ํ๋ก์ธ์ค ์ค ์ด๋ค ๊ฒ๋ค์ ready queue ๋ก ๋ณด๋ผ์ง ๊ฒฐ์
โ๏ธ ํ๋ก์ธ์ค์ memory(๋ฐ ๊ฐ์ข
์์)์ ์ฃผ๋ ๋ฌธ์
โ๏ธ degree of Multiprogramming ์ ์ ์ด
โ๏ธ time sharing system ์๋ ๋ณดํต ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ์๋ค (๋ฌด์กฐ๊ฑด ready)
(or CPU scheduler)
โ๏ธ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ๋ค์๋ฒ์ runnning ์ํฌ์ง ๊ฒฐ์
โ๏ธ ํ๋ก์ธ์ค์ CPU๋ฅผ ์ฃผ๋ ๋ฌธ์
โ๏ธ ์ถฉ๋ถํ ๋นจ๋ผ์ผ ํจ (millisecond ๋จ์)
(or Swapper)
โ๏ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๋ฌด ๋ถ์กฑํ ๋, ์ฌ์ ๊ณต๊ฐ ๋ง๋ จ์ ์ํด ํ๋ก์ธ์ค๋ฅผ ํต์งธ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ๋์คํฌ๋ก ์ซ์๋
โ๏ธ ํ๋ก์ธ์ค์๊ฒ์ memory๋ฅผ ๋บ๋ ๋ฌธ์
โ๏ธ degree of Multiprogramming ์ ์ ์ด
Three types of processor scheduling
โ๏ธ Long-term scheduling (admission scheduler) : ์์คํ ์ ์ ์ฅ์ ํ๋ฝํ ๊ฒ์ด๋
โ๏ธ Mid-term scheduling (swapper) : ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ ์ซ์๋ผ ๊ฒ์ด๋
โ๏ธ Short-term scheduling (dispatcher) : CPU์ ํ ๋น
Decide which of the ready, in-memory processes to be executed by the processor following a clock interrupt, IO interrupt, or OS call
Execute most frequently
The main objective of short-term scheduling is to allocate processor time to optimize system behaviour
--
โ๏ธ Disk Cache ๋์คํฌ ์นํฐ์ ์นดํผ๋ณธ์ ๊ฐ์ง๊ณ ์๊ณ , ๋์คํฌ access ์์ด ์ ๊ณตํ๋ ๋ฐฉ๋ฒ
โ๏ธ When an I/O request is made for a particular sector, a check is made to determine if the sector is in the disk cache
โ๏ธ LRU; Least Recently Used
โ๏ธ LFU; Least Frequently Used
[KUOCW] ์ต๋ฆฐ ๊ต์๋์ ์ด์์ฒด์ ๊ฐ์๋ฅผ ์๊ฐํ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ๐