ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

ํ”„๋กœ์„ธ์Šค

๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ์‹คํ–‰์ค‘์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ (program in execution)์„ ๋งํ•œ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ €์žฅ์žฅ์น˜์— ์ €์žฅ๋˜์–ด ์•„๋ฌด์ผ๋„ ํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ์ด๋‹ค.
ํ”„๋กœ์„ธ์Šค๋ฅผ job, task ๋“ฑ์œผ๋กœ ๋งํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค ์ƒํƒœ

Figure 1. Process state transition diagram

  • New : ์ €์žฅ์žฅ์น˜๋กœ ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•œ ๊ฒฝ์šฐ์ด๋‹ค.

  • Ready : New ์ƒํƒœ์—์„œ ์ดˆ๊ธฐํ™” ๊ณผ์ • ํ›„ ์‹คํ–‰ํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๊ฑฐ๋‚˜, Running ์ƒํƒœ์—์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์ด๋‹ค.

  • Running : ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์— ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค๋กœ ์„ ํƒ๋œ ๊ฒฝ์šฐ Running ์ƒํƒœ๋กœ ๋ฐ”๋€Œ์–ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • Wating : I/O์™€ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ง€์—ฐ์‹œ๊ฐ„์ด ํฌ๋ฏ€๋กœ ์ด์™€ ๊ฐ™์€ ๊ฒฝ์šฐ Waiting ์ƒํƒœ ํ›„ ๋‹ค์‹œ Ready๋กœ ๊ฐ„๋‹ค.

  • Terminated : ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.

 

PCB (Process Control Block)

Figure 2. PCB

ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ์ •๋ณด์™€ ๊ฐ™์ด ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ฅผ PCB๋ผ๊ณ  ํ•˜๋ฉฐ, TCB(Task Control Block)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. PCB๋Š” ๊ทธ๋ฆผ 2์™€ ๊ฐ™์ด ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ, ํ”„๋กœ์„ธ์Šค ๋ฒˆํ˜ธ(PID), PC, registers, MMU ๋“ฑ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

 

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹จ์ผ ํ”„๋กœ์„ธ์„œ(CPU) ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. (์‹ค์ œ๋กœ ๋™์‹œ์— ์ฒ˜๋ฆฌ๋˜์ง€๋Š” ์•Š์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋Š๋ผ๊ธฐ์—” ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.) ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋…๋“ค์„ ๊ฐ„๋žตํžˆ ์†Œ๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

Degree of multiprograming

ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

I/O bound process VS CPU bound porcess

ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ํŠน์„ฑ์— ๋”ฐ๋ผ I/O bound์™€ CPU bound ํ”„๋กœ์„ธ์Šค๋กœ ๋‚˜๋‰œ๋‹ค.

I/O bound Process์˜ ๊ฒฝ์šฐ ์ž…์ถœ๋ ฅ(I/O) ์ž‘์—…์ด ์šฐ์„ธํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•˜๋ฉฐ, CPU bound process์˜ ๊ฒฝ์šฐ CPU ์ž‘์—…์ด ์šฐ์„ธํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•œ๋‹ค.

 

Medium-term Scheduelr

ํ•ด๋‹น ์Šค์ผ€์ค„๋Ÿฌ๋Š” short-term ๋ณด๋‹ค๋Š” ๋ฐœ์ƒ ๋นˆ๋„๊ฐ€ ๋‚ฎ์ง€๋งŒ, long-term ๋ณด๋‹ค๋Š” ๋ฐœ์ƒ ๋นˆ๋„๊ฐ€ ๋†’์€ ์Šค์ผ€์ค„๋Ÿฌ์ด๋‹ค.

์ด ์Šค์ผ€์ค„๋Ÿฌ์˜ ์—ญํ• ์€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ˆœํšŒํ•˜์—ฌ, ์ €์žฅ์žฅ์น˜๋กœ ์˜ฎ๊ธธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐพ์•„ ์˜ฎ๊ธด๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ณผ์ •์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ์žฅ๊ธฐ๊ฐ„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•ด๋‹น ๊ณผ์ •์„ Swap out์ด๋ผ๊ณ  ํ•œ๋‹ค. Swap out๋œ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•˜์—ฌ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ Swap in์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด์™€ ๊ฐ™์ด ์ €์žฅ์žฅ์น˜๋ฅผ ํ†ตํ•ด ๋ถ€์กฑํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Swapping ๊ณผ์ •์„ ์‹คํ–‰ํ•œ๋‹ค.

 

Context Switching

CPU Scheduelr๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์— ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„ ํƒ๋˜๋ฉด ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๊ณผ์ •์„ ์ €์žฅํ•˜๊ณ , ๋‹ค์Œ์— ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค€๋น„ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ Context Switching์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€