728x90

๐Ÿ™‰์ธํ„ฐ๋ŸฝํŠธ๋ž€?

  • CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ์••์ถœ๋ ฅ ํ•˜๋“œ์›จ์–ด ๋“ฑ์˜ ์žฅ์น˜๋‚˜ ๋˜๋Š” ์˜ˆ์™ธ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ์— CPU์— ์•Œ๋ ค์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.
  • ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ์™€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋กœ ๋‚˜๋‰œ๋‹ค.

 

  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋กœ, CPU๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๊ฐ€ CPU์— ์–ด๋–ค ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜ CPU ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ฃผ๋กœ ์ „์› ์ด์ƒ, ๊ธฐ๊ณ„ ๋ฌธ์ œ,ํ‚ค๋ณด๋“œ๋“ฑ IO ๊ด€๋ จ ์ด๋ฒคํŠธ ๋“ฑ์ด ์žˆ๋‹ค.

 

  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด(์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์Šค์Šค๋กœ ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์„ ์„ธํŒ…ํ•œ๋‹ค.(์ข…๋ฅ˜: ์˜ˆ์™ธ ์ƒํ™ฉ,System Call)
  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ์˜ ์˜ˆ๋กœ๋Š” ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ๋ช…๋ น ๋˜๋Š” ๊ณต๊ฐ„์— ์ ‘๊ทผ์„ ํ•˜๊ฑฐ๋‚˜, ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ Overflow/Underflow๊ฐ€ ๋ฐœ์ƒ ํ•  ๋•Œ ๋“ฑ์ด ์žˆ๋‹ค.
  • ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ผ์ข…์˜ ์ด๋ฒคํŠธ๋กœ ๋ถˆ๋ฆฐ๋‹ค. ์ด๋ฒคํŠธ์— ๋งž๊ฒŒ ์šด์˜์ฒด์ œ๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค.

 

๐Ÿ™ˆ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

  1. ์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ ๊ตฌํ˜„

  • ํ”„๋กœ์„ธ์Šค running์ค‘์— ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ค‘๋‹จ ์‹œํ‚ค๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•ด, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์„ ์ค‘๋‹จ ์‹œํ‚จ๋‹ค.
  • ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จ ์‹œํ‚ฌ๋ ค๋ฉด, ์Šค์ผ€์ฅด๋Ÿฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰์ด ๋˜์„œ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ ์‹œ์ผœ์•ผํ•œ๋‹ค

2. I/O Device์™€์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

  • ์ €์žฅ๋งค์ฒด์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์™„๋ฃŒ์‹œ, ํ”„๋กœ์„ธ์Šค๋ฅผ ๊นจ์›Œ์•ผ ํ•œ๋‹ค.(Block state -> Ready state)

3. ์˜ˆ์™ธ ์ƒํ™ฉ ํ•ธ๋“ค๋ง 

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

๐Ÿ™‰์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ์˜ˆ

1.CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ์ž…์ถœ๋ ฅ ํ•˜๋“œ์›จ์–ด ๋“ฑ์˜ ์žฅ์น˜ ์ด์Šˆ ๋ฐœ์ƒ

  • ํŒŒ์ผ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚ฌ๋‹ค๋Š” ๊ฒƒ์„ ์šด์˜์ฒด์ œ์— ์•Œ๋ ค์ค€๋‹ค.
  • ์šด์˜์ฒด์ œ๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ Block State์—์„œ ์‹คํ–‰ ๋Œ€๊ธฐ(ready) ์ƒํƒœ๋กœ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

2.๋˜๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒ

  • 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ณ„์‚ฐ์ด ๋ฐœ์ƒํ•ด์„œ, ์˜ˆ์™ธ ๋ฐœ์ƒ์„ ์šด์˜์ฒด์ œ์— ์•Œ๋ ค์ค€๋‹ค.
  • ์šด์˜์ฒด์ œ๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์ค‘์ง€/์—๋Ÿฌ ํ‘œ์‹œ๋ฅผ ํ•œ๋‹ค.

 

728x90

'Dev > ComputerScience' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CS]์Šค๋ ˆ๋“œ(Thread)๋ž€?  (0) 2021.06.15
[CS]Context Switching(์ปจํƒ์ŠคํŠธ ์Šค์œ„์นญ)  (0) 2021.06.13