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

๋ฌธ๋งฅ ๊ตํ™˜์ด๋ž€?

๋ฌธ๋งฅ ๊ตํ™˜์€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด, ์ด์ „์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ(๋ฌธ๋งฅ)์„ ๋ณด๊ด€ํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ์ ์žฌํ•˜๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋•Œ ํ•œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ์€ ๊ทธ ํ”„๋กœ์„ธ์Šค์˜ ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก(PCB)์— ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

PCB(Process Control Block)๋ž€?

์šด์˜์ฒด์ œ๊ฐ€ ์‹œ์Šคํ…œ ๋‚ด์˜ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์œ ์ง€ํ•˜๋Š” ์ •๋ณด๋“ค์„ ๋‹ด๋Š” ์ปค๋„ ๋‚ด ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ปค๋„ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ data ์˜์—ญ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

PCB

PCB์— ์ €์žฅ๋˜๋Š” ๋‚ด์šฉ๋“ค

  • Process ์ƒํƒœ : CPU๋ฅผ ํ• ๋‹นํ•ด๋„ ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •
  • PC๊ฐ’ : ๋‹ค์Œ์— ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฅดํ‚ด
  • CPU Register : CPU ์—ฐ์‚ฐ์„ ์œ„ํ•ด ํ˜„ ์‹œ์ ์— ๋ ˆ์ง€์Šคํ„ฐ์— ์–ด๋–ค ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋ƒ„
  • CPU ์Šค์ผ€์ค„๋ง ์ •๋ณด
  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด
  • ์ž์› ์‚ฌ์šฉ ์ •๋ณด
  • ์ž…์ถœ๋ ฅ ์ƒํƒœ ์ •๋ณด 

์ด๋Ÿฌํ•œ Context์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•ด CPU๋ฅผ ์„ ์ ํ•˜๊ณ  ์žˆ๋˜ ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ์„ธ์Šค ๋ฌธ๋งฅ์„ PCB์— ์ €์žฅํ•˜๊ฒŒ ๋˜๊ณ , ์ƒˆ๋กญ๊ฒŒ CPU๋ฅผ ํ• ๋‹น๋ฐ›์„ ํ”„๋กœ์„ธ์Šค๋Š” PCB๋กœ๋ถ€ํ„ฐ ์˜ˆ์ „์— ์ €์žฅํ–ˆ๋˜ ์ž์‹ ์˜ ๋ฌธ๋งฅ์„ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด๋กœ ๋ณต์›ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

 

๋ฌธ๋งฅ ๊ตํ™˜์˜ ์‹œ์ 

๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น

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

์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ

  • ์ธํ„ฐ๋ŸฝํŠธ๋ž€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ CPU์—๊ฒŒ ์•Œ๋ ค ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ
  • ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋ฌธ๋งฅ ๊ตํ™˜์ด ์ผ์–ด๋‚จ
  • I/O request : ์ž…์ถœ๋ ฅ ์š”์ฒญ
  • time slice expried : CPU ์‚ฌ์šฉ์‹œ๊ฐ„ ๋งŒ๋ฃŒ
  • fork a child : ์ž์‹ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ
  • wait for an interrupt : ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋Œ€๊ธฐ

์‚ฌ์šฉ์ž ๋ฐ ์ปค๋„ ๋ชจ๋“œ ์ „ํ™˜

  • ์šด์˜ ์ฒด์ œ์—์„œ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์™€ ์ปค๋„ ๋ชจ๋“œ ์‚ฌ์ด์˜ ์ „ํ™˜์ด ํ•„์š”ํ•  ๋•Œ ํ•„์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ ๋ฌธ๋งฅ ๊ตํ™˜์ด ๋ฐœ์ƒ

 

๋ฌธ๋งฅ ๊ตํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •

Operating System Concepts

  1. ์š”์ฒญ ๋ฐœ์ƒ : ์ธํ„ฐ๋ŸฝํŠธ ๋˜๋Š” ํŠธ๋žฉ์— ์˜ํ•œ ์š”์ฒญ์ด ๋ฐœ์ƒ (ํŠธ๋žฉ์€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ)
  2. PCB์— ์ €์žฅ : ์šด์˜์ฒด์ œ๋Š” ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค(P0)์˜ ์ •๋ณด๋ฅผ PCB์— ์ €์žฅ
  3. CPU ํ• ๋‹น :  ์šด์˜์ฒด์ œ๋Š” ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค(P1)์˜ ์ •๋ณด๋ฅผ PCB์—์„œ ๊ฐ€์ ธ์™€ CPU๋ฅผ ํ• ๋‹น

 

 

[์ฐธ๊ณ ]

https://ko.wikipedia.org/wiki/%EB%AC%B8%EB%A7%A5_%EA%B5%90%ED%99%98

 

๋ฌธ๋งฅ ๊ตํ™˜ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

 

ko.wikipedia.org

https://velog.io/@adam2/2020-01-08-2301-%EC%9E%91%EC%84%B1%EB%90%A8-huk55f3cic

 

[os๊ธฐ์ดˆ] ๋ฌธ๋งฅ๊ตํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •๊ณผ PCB

PCB(Process Control Block) ์šด์˜์ฒด์ œ๊ฐ€ ์‹œ์Šคํ…œ ๋‚ด์˜ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์œ ์ง€ํ•˜๋Š” ์ •๋ณด๋“ค์„ ๋‹ด๋Š” ์ปค๋„ ๋‚ด ์ž๋ฃŒ๊ตฌ์กฐ. ์ปค๋„ ์ฃผ์†Œ๊ณต๊ฐ„์˜ data ์˜์—ญ์— ์กด์žฌํ•œ๋‹ค. image.png PCB์— ์ €์žฅ๋˜

velog.io

https://yoongrammer.tistory.com/53

 

๋ฌธ๋งฅ ๊ตํ™˜ (Context switch) ์•Œ์•„๋ณด๊ธฐ

๋ฌธ๋งฅ ๊ตํ™˜ (Context switch) ์•Œ์•„๋ณด๊ธฐ ๋ฌธ๋งฅ(context) ์€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ๋งฅ ๊ตํ™˜(context switch) ์€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ

yoongrammer.tistory.com

https://spurdev.tistory.com/13

 

[์šด์˜์ฒด์ œ] Context Switch(๋ฌธ๋งฅ ๊ตํ™˜)์ด๋ž€?

Context Switch(๋ฌธ๋งฅ ๊ตํ™˜)? CPU๊ฐ€ ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ์ง€๊ธˆ๊นŒ์ง€์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ƒˆ ํ”„๋กœ์„ธ์Šค์˜ ์ €์žฅ๋œ ์ƒํƒœ๋ฅผ ๋‹ค์‹œ ์ ์žฌํ•˜๋Š” ์ž‘์—…์„ Context Switch(

spurdev.tistory.com