๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸง Operating System

[OS / ์šด์˜์ฒด์ œ] Process State, Ready / Running State, Process Control Block, Process Scheduling

by UKHYUN22 2022. 3. 21.
728x90

Interrupt Hanlder๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ˆœ๊ฐ„ kernel mode๋กœ ์ „ํ™˜๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

size์˜ ํƒ€์ž…์€ long ์œผ๋กœ ๋ฐ”๊ฟ€ ๊ฒƒ

 

Processses

์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค. ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋„ ํฌํ•จ๋œ๋‹ค. ์ฝ”๋“œ๋“ค์€ Instruction๋“ค์˜ Sequence๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ค‘๊ฐ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์ด ์กด์žฌํ•˜๋Š” ๋ฐ ๊ทธ๊ฒƒ๋“ค๋„ ํ”„๋กœ์„ธ์Šค์— ํฌํ•จ๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋˜ ๋ž˜์ง€์Šคํ„ฐ๋ฅผ ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. Instruction Resgister๋กœ Instruction์„ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค. ํ•„์š”ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ž˜์ง€์Šคํ„ฐ๋กœ ๊ฐ€์ ธ์™€์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ํ•˜๋“œ์›จ์–ด์˜ ์ž…์žฅ์—์„œ ๋ณด๋ฉด ๋ฆฌ์†Œ์Šค์— ํ•ด๋‹นํ•˜์ง€๋งŒ ๋ž˜์ง€์Šคํ„ฐ์˜ ๊ฐ’๋“ค์€ ํ”„๋กœ์„ธ์Šค์— ํ•ด๋‹นํ•œ๋‹ค.

 

Process State

์ฒ˜์Œ Process๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ์ƒํƒœ๋ฅผ New State๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. New๋ผ๋Š” ๊ฒƒ์€ ํ˜„์žฌ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋ฏธ์™„์„ฑ์ด ๋‹จ๊ณ„๋ฅผ New State๋ผ๊ณ  ํ•œ๋‹ค. ์ผ๋‹จ ์™„์„ฑ์ด ๋˜๋ฉด Ready Queue๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค. Ready State์™€ Running state๊ฐ€ ์žˆ๋‹ค. Ready Queue ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด Scheduler์ด๋‹ค. Running state์˜ ๊ฒฝ์šฐ Timer๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค. ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ฐ€๋ฉด Interrupt๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ๋Š” Interrupt handler๊ฐ€ Scheduler๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค. 

 running ์ƒํƒœ์—์„œ IO๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. IO๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€๋Š” ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ๊ทธ ์ƒํƒœ๋ฅผ waiting state๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. wait System call์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค. waiting state๋Š” CPU๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Ready state๋Š” ์‹คํ–‰ํ•  ์ค€๋น„๊ฐ€ ๋‹ค ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์ด๊ณ  Waiting state๋Š” CPU Time์ด ์ฃผ์–ด์ ธ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ์ฐจ์ด์ ์ด๋‹ค. 

 exit์„ ํ•˜๋ฉด terminated๊ฐ€ ๋˜๋Š”๋ฐ ์™œ terminated ์ƒํƒœ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ผ๊นŒ?? ์ด๋Š” ์ž‘์—…ํ•œ ๊ฒฐ๊ณผ๋ฌผ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ž๊ธฐ ํ• ์ผ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚จํ•œํ…Œ ์ฃผ์ง€ ์•Š์€ ์ƒํƒœ์ด๋‹ค. CPU Time์€ ๋” ์ด์ƒ ํ• ๋‹นํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฃฝ์—ˆ์ง€๋งŒ ์œ ์–ธ์žฅ์ด ์ „๋‹ฌ๋˜์ง€ ์•Š์€ ์ƒํƒœ(๋น„์œ ) 

 

Ready / Running State

running๋˜๋Š” ๊ฒƒ์€ ์ง„์งœ CPU์—์„œ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๋‚˜๋จธ์ง€ N-1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค. Ready Queue๋ผ๋Š” ๊ณณ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค. ๊ทธ๋“ค์„ Ready State๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

 

 

Process Control Block

PCB์—๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๋‹ค ์ €์žฅ๋œ๋‹ค. CPU Register์˜ ๊ฐ’๋“ค์ด (Value)๋“ค์ด ์กด์žฌํ•œ๋‹ค. 

 

Process Scheduling

์ด ๋ฆฌ์†Œ์Šค๋ฅผ ํ”„๋กœ์„ธ์Šคํ•œํ…Œ ๋ฐฐ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. Scheduling์˜ ๋ณธ์งˆ์€ ์„ ํƒํ•˜๋Š” ์—ญํ• ์ด๋‹ค. ๋Œ€์ƒ์ด ๋˜๋Š” ์ž์›์ด CPU์ผ ๋•Œ Process Scheduling ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด๊ฒƒ์ด ์ถ”๊ตฌํ•˜๋Š” ๋ฐ”๋Š” ์ฒซ์งธ๋กœ CPU๊ฐ€ ์‰ฌ์ง€ ์•Š๊ณ  ํšจ์œจ์„ ์ตœ๋Œ€ํ•œ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ ์‚ฌ์šฉ์ž๋“ค์ด ๊ฐ์ž ์ž๊ธฐ ํ”„๋กœ๊ทธ๋žจ๊ณผ Interact ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. Time sharing, switching์„ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค .