# [OS] Process์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.
Study Repository

[OS] Process์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

by rlaehddnd0422

ํ”„๋กœ์„ธ์Šค์™€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฐจ์ด

ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

 

.exe ๋‚˜ .dmg์™€ ๊ฐ™์€ ํŒŒ์ผ -> ํ”„๋กœ๊ทธ๋žจ ( ์ •์ ์ธ ์ƒํƒœ )
์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ -> ํ”„๋กœ์„ธ์Šค ( ๋™์ ์ธ ์ƒํƒœ ) 

  • ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์ฃผ์–ด์•ผ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
ํ”„๋กœ์„ธ์Šค ํ”„๋กœ๊ทธ๋žจ
์‹คํ–‰๋˜์–ด ์ž‘์—…์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ๊ฐ€ ์ปดํŒŒ์ผ ๊ณผ์ •์„ ๊ฑฐ์ณ ์‹คํ–‰ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํŒŒ์ผ
ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ ํŒŒ์ผ์ด ์ €์žฅ์žฅ์น˜์— ์กด์žฌํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์˜ฌ๋ผ๊ฐ€ ์žˆ์ง€ ์•Š์€ ์ƒํƒœ
   

 

 

ํ”„๋กœ์„ธ์Šค์™€ ํ”„๋กœ๊ทธ๋žจ

 

๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋Š” ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ์š”.

 

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์ฐจ์ด

์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์˜ ํ๋ฆ„์„ ์ง€์นญํ•ฉ๋‹ˆ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค ์Šค๋ ˆ๋“œ
OS๋กœ๋ถ€ํ„ฐ ์ž์›์„ ํ• ๋‹น๋ฐ›์€ ์ž‘์—…์˜ ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ๊ทธ๋žจ์ด ์ ์žฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ. ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜๋Š” ์‹คํ–‰ ํ๋ฆ„์˜ ๋‹จ์œ„
๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” IPC๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ. ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์™€ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ”„๋กœ์„ธ์Šค๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฆ„.
๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๋…๋ฆฝ์ ์ด๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค๊ณ  ํ•ด์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ์ฃผ์ง„ ์•Š์Œ. ํ•œ ์Šค๋ ˆ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋™์ผ ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Œ.
์ƒ์„ฑ๊ณผ ์ข…๋ฃŒ์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”. ์ƒ์„ฑ๊ณผ ์ข…๋ฃŒ์— ๋น„๊ต์  ์ ์€ ์‹œ๊ฐ„์ด ์†Œ์š”

 

์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์—์„œ ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ์˜ ์ผ๋ จ์˜ ์ž‘์—…๋“ค์„ ์ง„ํ–‰ํ•˜๋Š” ๋‹จ์œ„๋กœ, ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ, ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋‹ค๋ฉด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ

 

ํ”„๋กœ๊ทธ๋žจ์˜ ์ปดํŒŒ์ผ ๊ณผ์ •

ํ”„๋กœ๊ทธ๋žจ์˜ ์ปดํŒŒ์ผ ๊ณผ์ •

1. ์ „์ฒ˜๋ฆฌ๊ธฐ ( Preprocessor )

  • ์†Œ์Šค์ฝ”๋“œ์˜ ์ฃผ์„ ์ œ๊ฑฐ, ํ—ค๋”ํŒŒ์ผ ๋ณ‘ํ•ฉ. ๋งคํฌ๋กœ ์น˜ํ™˜ํ•˜์—ฌ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋Š” *.i ํŒŒ์ผ์„ ์ƒ์„ฑ

 

2. ์ปดํŒŒ์ผ๋Ÿฌ ( Compiler )

  • ์ „์ฒ˜๋ฆฌ๊ธฐ์—์„œ ๋งŒ๋“ค์–ด์ง„ *.i ํŒŒ์ผ์˜ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™” ํ•˜๋Š” ์ž‘์—…์„ ํ•˜์—ฌ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ๋ณ€ํ™˜ํ•œ *.s file ์„ ์ƒ์„ฑ

 

3. ์–ด์…ˆ๋ธ”๋Ÿฌ ( Assembler )

  • ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ์ž‘์„ฑ๋œ *.s file์„  *.o ๋ชฉ์  ํŒŒ์ผ์„ ์ƒ์„ฑ

 

4. ๋ง์ปค

  • ๋ชฉ์  ํŒŒ์ผ์„ ํ†ตํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” *.exe, *.out ํ™•์žฅ์ž์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑ

 

ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ 

ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

 

์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์–ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค์— ์ ์ ˆํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉด ์Šคํƒ ์˜์—ญ, ํž™ ์˜์—ญ, ๋ฐ์ดํ„ฐ ์˜์—ญ(BSS/Data Segment), ์ฝ”๋“œ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

 

  • ์Šคํƒ ์˜์—ญ : ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ํ•จ์ˆ˜๊ฐ€ ์ €์žฅ. ์ปดํŒŒ์ผ ์‹œ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •์ง€๋งŒ, ํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋Ÿฐํƒ€์ž„ ์‹œ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋จ. (๋™์ )
    • ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜์— ์˜ํ•ด ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์–ด๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ, ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ๋‚ด์˜ ๋ณ€์ˆ˜ ์ง‘ํ•ฉ์ด ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Œ.
  • ํž™ ์˜์—ญ : ๋™์  ํ• ๋‹นํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ์œผ๋กœ ๋Ÿฐํƒ€์ž„ ์‹œ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ • (๋™์ )
    • malloc(), free() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ• ๋‹นํ•˜๊ณ  ํ•ด์ œํ•˜๋ฉฐ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋™์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ (ex : Cpp์˜ vector, Java์˜ Collection)๊ฐ€ ์ด ํž™ ์˜์—ญ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์˜์—ญ : ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ์‚ฌ์šฉ๋˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ ์˜์—ญ์œผ๋กœ BSS Segment์™€ Data Segment๋กœ ๊ตฌ๋ถ„. (์ •์ )
    • BSS Segment : 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๊ฑฐ๋‚˜ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ ์ „์—ญ ๋ณ€์ˆ˜, static, const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ
    • Data Segment : 0์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ์ „์—ญ ๋ณ€์ˆ˜, static, const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ
  • ์ฝ”๋“œ ์˜์—ญ : ์†Œ์Šค์ฝ”๋“œ๊ฐ€ CPU๊ฐ€ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์˜์—ญ. (์ •์ )

 

์Šค๋ ˆ๋“œ๋Š” ํž™ ์˜์—ญ, ๋ฐ์ดํ„ฐ ์˜์—ญ, ์ฝ”๋“œ ์˜์—ญ์„ ๊ณต์œ ํ•œ๋‹ค!

ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

 

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

 

PCB (Process Control Block)

  • ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์œผ๋กœ ์ปค๋„ ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๊ณ ์œ ์˜ PCB๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด PCB๊ฐ€ ์ œ๊ฑฐ๋จ.
[์ปค๋„ ์Šคํƒ]
- ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์Šคํƒ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„๊ณผ ์ปค๋„ ๊ณต๊ฐ„์œผ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ์‚ฌ์šฉ์ž ์Šคํƒ - ์ปค๋„ ์Šคํƒ์œผ๋กœ ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ.
- ์ปค๋„ ์Šคํƒ : ์ปค๋„ ๋ชจ๋“œ์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
- ์‚ฌ์šฉ์ž ์Šคํƒ : ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

PCB์˜ ๊ตฌ์กฐ 

  • ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ : ๋Œ€๊ธฐ์ค‘, ์‹คํ–‰ ์ค‘ ๋“ฑ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ
  • ํ”„๋กœ์„ธ์Šค ๋ฒˆํ˜ธ : ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ๊ณ ์œ  ์‹๋ณ„ ๋ฒˆํ˜ธ (Process ID, PID)
  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ : ์ด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•˜์—ฌ ์‹คํ–‰๋  ๋‹ค์Œ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ. (Program Counter, PC)
  • ๋ ˆ์ง€์Šคํ„ฐ ๊ด€๋ จ ์ •๋ณด
  • ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ •๋ณด : ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ์ •๋ณด
  • ์—ด๋ฆฐ ํŒŒ์ผ ์ •๋ณด : ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก

 

Context Switching

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์€ CPU๊ฐ€ ํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด PCB๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ ๋ณต์›์‹œํ‚ค๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์œผ๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์‹คํ–‰ํ•˜์—ฌ CPU ํ™œ์šฉ๋ฅ ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜, ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋ฐœ์ƒ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

  1. ํ”„๋กœ์„ธ์Šค 1์ด ์‹คํ–‰ ์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ -> ํ”„๋กœ์„ธ์Šค 1์˜ ์ƒํƒœ๋ฅผ PCB์— ์ €์žฅ.
  2. CPU๊ฐ€ ๋†€์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค 2์˜ ์ƒํƒœ๋ฅผ PCB๋กœ๋ถ€ํ„ฐ ๋ถˆ๋Ÿฌ์™€ CPU์— ๋กœ๋”ฉ.
  3. ์ธํ„ฐ๋ŸฝํŠธ ์ข…๋ฃŒ -> ํ”„๋กœ์„ธ์Šค 1์„ ๋‹ค์‹œ CPU์— ์˜ฌ๋ ค์•ผ ํ•จ.
  4. ํ”„๋กœ์„ธ์Šค 1์„ CPU์— ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ PCB์— ํ”„๋กœ์„ธ์Šค 2์˜ ์ƒํƒœ ์ €์žฅ.
  5. ํ”„๋กœ์„ธ์Šค 1๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด PCB๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฅผ ๋ถˆ๋Ÿฌ์˜ด.
  6. ํ”„๋กœ์„ธ์Šค 1์„ CPU์— ๋กœ๋”ฉ

 

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋น„์šฉ

1. ์œ ํœด์‹œ๊ฐ„์˜ ๋ฐœ์ƒ 

  • ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ํ•  ๋•Œ ๋งˆ๋‹ค ์œ ํœด์‹œ๊ฐ„( CPU๊ฐ€ ์ผ์„ ํ•˜์ง€ ์•Š๊ณ  ์‰ฌ๋Š” ์‹œ๊ฐ„ )์ด ์ƒ๊ฒจ CPU์˜ ๊ฐ€์šฉ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒ.

 

2. ์บ์‹œ ๋ฏธ์Šค

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ทธ๋Œ€๋กœ ์žˆ์œผ๋ฉด ์ž˜๋ชป๋œ ์ฃผ์†Œ๋ณ€ํ™˜์ด ์ƒ๊ฒจ TLB ๊ณ„์ธต์—์„œ ์ฃผ์†Œ๋ณ€ํ™˜์„ ์œ„ํ•ด ๊ธฐ์กด์˜ ์ฃผ์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์บ์‹œ ํด๋ฆฌ์–ด ๊ณผ์ •์ด ์ผ์–ด๋‚˜, ์บ์‹œ๋ฏธ์Šค๊ฐ€ ๋ฐœ์ƒ. 

 

3. ์˜ค๋ฒ„ํ—ค๋“œ

  • PCB๋ฅผ ์ €์žฅํ•˜๊ณ , ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋น„์šฉ
  • ์Šค์ผ€์ค„๋ง์— ๋Œ€ํ•œ ๋น„์šฉ
- ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ/์‹œ๊ฐ„ < ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜ ๋น„์šฉ/์‹œ๊ฐ„ 
>> ์•„๋ฌด๋ž˜๋„ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ๋Š” ์Šคํƒ์˜์—ญ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋‘ ๊ฐ™์€ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๋‹ค๋ณด๋‹ˆ, ํ”„๋กœ์„ธ์Šค์— ๋น„ํ•ด ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ๊ณผ ์‹œ๊ฐ„์ด ์ ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

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

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ณ€๊ฒฝ๋˜๋Š” ๊ณ ์œ  ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. PCB์— ์ €์žฅ๋˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ 5๊ฐ€์ง€์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

  • ์ƒ์„ฑ (NEW) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋œ ์ƒํƒœ๋กœ PCB๋งŒ ํ• ๋‹น๋œ ์ƒํƒœ. fork(), exec()์™€ ๊ฐ™์€ ํ˜ธ์ถœ์„ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ๋งŒ ํ•œ ์ƒํƒœ. 
  • ์ค€๋น„ (READY) : ์‹คํ–‰์„ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ๋กœ, ์ค€๋น„ ํ์— ๋“ค์–ด๊ฐ€์„œ ๋Œ€๊ธฐํ•˜๋ฉด์„œ CPU ์Šค์ผ€์ค„๋Ÿฌ๋กœ๋ถ€ํ„ฐ CPU ์†Œ์œ ๊ถŒ์ด ๋„˜์–ด์˜ค๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ.
  • ์‹คํ–‰ (RUNNING) : CPU ์†Œ์œ ๊ถŒ๊ณผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›์•„, ๋ช…๋ น์–ด๋“ค์„ ์ˆ˜ํ–‰์ค‘์ธ ์ƒํƒœ.
  • ๋Œ€๊ธฐ (WAITING) : ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ๋„์ค‘ (์ž…์ถœ๋ ฅ๊ณผ ๊ฐ™์€) ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ž ์‹œ ์ค‘๋‹จ๋œ ์ƒํƒœ
  • ์ข…๋ฃŒ (EXIT) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰์„ ์™„๋ฃŒํ•˜๊ณ  ์ข…๋ฃŒ๋œ ์ƒํƒœ๋กœ, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐ๋˜๋ฉฐ, CPU ์†Œ์œ ๊ถŒ์„ ์žƒ์€ ์ƒํƒœ.

 

 

<์ฐธ๊ณ  ์ž๋ฃŒ>

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ‍์™„์ „ํžˆ ์ •๋ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ ๊ฐœ๋…

ํ•œ๋ˆˆ์— ์ดํ•ดํ•˜๋Š” ํ”„๋กœ์„ธ์Šค & ์Šค๋ ˆ๋“œ ๊ฐœ๋… ์ „๊ณต ์ง€์‹ ์—†์ด ์ปดํ“จํ„ฐ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•˜๋Š”๋ฐ๋Š” ๋ฌธ์ œ ์—†์–ด ์™”์ง€๋งŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์‚ฌ๋žŒ์œผ๋กœ์„œ ์ปดํ“จํ„ฐ ์‹คํ–‰ ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ๋”ฐ์ ธ๋ณด๊ฒŒ ๋ ๋•Œ, ์•„

inpa.tistory.com

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Study Repository

rlaehddnd0422

ํ™œ๋™ํ•˜๊ธฐ