View

[OS] ๊ธฐ์ˆ  ๋ฉด์ ‘ ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ

์ฑ…์ฝ๋Š” ๊ฐ์ž 2022. 8. 30. 21:46
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ์šด์˜์ฒด์ œ๋ž€ ?

์šด์˜ ์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ปดํ“จํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ†ต์‹ ํ•˜๊ณ  ์ž‘๋™ํ•˜๋„๋กํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

๐Ÿ’ก์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ๋ชฉ์ ์€?

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

๐Ÿ’ก ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ž€?

ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•˜๋ฉฐ, ์™„๋ฒฝํžˆ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(Code, Data, Heap, Stack)์„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ตœ์†Œ 1๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ(๋ฉ”์ธ ์“ฐ๋ ˆ๋“œ)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์“ฐ๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ Stack๋งŒ ๋”ฐ๋กœ ํ• ๋‹น ๋ฐ›๊ณ , ๊ทธ ์ด์™ธ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(Code, Data, Heap)์˜์—ญ์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ฆ‰์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์“ฐ๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์— ์กด์žฌํ•˜๋ฉฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜์—ฌ ์‹คํ–‰๋œ๋‹ค.

๐Ÿ’ก ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก์˜ ์—ญํ• ์€?

ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ”„๋กœ์„ธ์Šค ์š”์†Œ๋“ค์˜ ์ž๋ฃŒ๊ตฌ์กฐ

  • ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž(Process ID)
  • ํ”„๋กœ์„ธ์Šค ์ƒํƒœ(Process State) ๋“ฑ..

๐Ÿ’ก ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ํŠน์ง•

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฃฝ์–ด๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๊ณ  ๊ณ„์† ์‹คํ–‰๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋ณด๋‹ค ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๊ณผ CPU ์‹œ๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

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

๐Ÿ’ก ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”?

๐Ÿ’ก ์ž๋ฐ” ์Šค๋ ˆ๋“œ๋ž€?

๐Ÿ’ก ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ๋™์‹œ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ ์„ค๋ช…

๐Ÿ’ก ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ

๋™๊ธฐ๋Š” ์ˆœ์ฐจ์ , ์ง๋ ฌ์ ์œผ๋กœ ํ…Œ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ ,๋น„๋™๊ธฐ๋Š” ๋ณ‘๋ ฌ์ ์œผ๋กœ ํ…Œ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

๐Ÿ’ก ๋ธ”๋Ÿญํ‚น๊ณผ ๋…ผ๋ธ”๋Ÿญํ‚น

  • ๋ธ”๋กœํ‚น
    ์€ A ํ•จ์ˆ˜๊ฐ€ B ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ์ œ์–ด๊ถŒ์„ A๊ฐ€ ํ˜ธ์ถœํ•œ B ํ•จ์ˆ˜์— ๋„˜๊ฒจ์ค€๋‹ค.
  • ๋…ผ๋ธ”๋กœํ‚น์€ Aํ•จ์ˆ˜๊ฐ€ Bํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด๋„ ์ œ์–ด๊ถŒ์€ ๊ทธ๋Œ€๋กœ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋‹ค.

๐Ÿ’ก ์ปจํƒ์ŠคํŠธ ์Šค์œ„์นญ์ด๋ž€?

๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค ํ™˜๊ฒฝ์—์„œ CPU๊ฐ€ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋‹ค ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ๋•Œ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ ๋“ฑ์— ์ €์žฅํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผํ•  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋กœ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค

์ด๋•Œ ์ปจํƒ์ŠคํŠธ๋“ค์„ ์ €์žฅํ•˜๊ณ  ์ž‡๋Š” ๊ฒƒ๋“ค์„ ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก PCB๋ผ๊ณ  ํ•œ๋‹ค.

  • PCB๋Š” ๋‹ค์Œ์˜ ์ •๋ณด๋“ค์„ ์ €์žฅํ•œ๋‹ค.
  1. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ : ์ƒ์„ฑ, ์ค€๋น„, ์ˆ˜ํ–‰, ๋Œ€๊ธฐ, ์ค‘์ง€
  2. ํ”„๋กœ์Šค๋žจ ์นด์šดํ„ฐ
  3. ๋ ˆ์‹œ์Šคํ„ฐ
  4. ํ”„๋กœ์„ธ์Šค ๋ฒˆํ˜ธ
  • ์Šค์œ„์นญ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ
  1. I/O interrupt
  2. CPU ์‚ฌ์šฉ์‹œ๊ฐ„ ๋งŒ๋ฃŒ
  3. ์ž์‹ ํ”„๋กœ์„ธ์Šค Fork
  4. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆด ๋•Œ
  • ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ, ๊ณต์œ (๋ฐ์ดํ„ฐ) ์˜์—ญ์ด ๋งŽ์Œ → ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋น ๋ฆ„
  • ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ, ๊ณต์œ  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ → ์ƒˆ๋กœ์šด ์บ์‹œ ์ •๋ณด๋ฅผ ์Œ“์•„์•ผํ•˜๋Š”๋ฐ ๋ถ€๋‹ด๋˜๋Š” ์š”์†Œ

๐Ÿ’ก ์ธํ„ฐ๋ŸฝํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์ธํ„ฐ๋ŸฝํŠธ๋ž€ CPU๊ฐ€ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘์— ๊ธ‰ํ•˜๊ฒŒ ๋‹ค๋ฅธ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

CPU์— ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๊ฑธ๋ฆฌ๋ฉด CPU๋Š” ํ˜„์žฌ ์ˆ˜ํ–‰ํ•˜๋˜ ์ž‘์—…์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ ํ›„ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(ISR)์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ๋งˆ์น˜๋ฉด ์ด์ „์— ์ˆ˜ํ–‰ํ•˜๋˜ ์ž‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ๋Š” ํฌ๊ฒŒ ๋‘๊ฐœ๋กœ ๋‚˜๋‰œ๋‹ค.

1) ์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ : ์ž…์ถœ๋ ฅ ์žฅ์น˜, ํƒ€์ด๋ฐ ์žฅ์น˜, ์ „์› ๋“ฑ์˜ ์™ธ๋ถ€์ ์ธ ์š”์ธ์— ์˜ํ•ด์„œ ๋ฐœ์ƒ

2) ๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ : ์ž˜๋ชป๋œ ๋ช…๋ น์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ

๐Ÿ’ก ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š”?

์„ ์ ํ˜• ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ Running ์ค‘์— ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ์ค‘๋‹จ๋˜๊ฒŒ ๋œ๋‹ค.

→ ์ด์œ ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•จ์ธ๋ฐ, ์ด๋•Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์Šค์Šค๋กœ ์ค‘๋‹จํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๊ฐ•์ œ๋กœ ์ค‘๋‹จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ธํ„ฐ๋ŸฝํŠธ์ด๋‹ค.

๐Ÿ’ก์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ณผ์ •์€?

Untitled

๐Ÿ’ก ์‹œ์Šคํ…œ์ฝœ์ด๋ž€?

์šด์˜์ฒด์ œ์˜ ์ปค๋„์ด ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•ด, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ปค๋„์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

ํ•ด๋‹น ๊ธฐ๋Šฅ์œผ๋กœ๋Š” ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ, ๊ด€๋ฆฌ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ํŒŒ์ผ ๊ด€๋ฆฌ ๋“ฑ์ด ์žˆ๋‹ค.

๐Ÿ’ก ๊ต์ฐฉ์ƒํƒœ๋ž€?

๊ต์ฐฉ ์ƒํƒœ๋ž€ ์ž์›์„ ์†Œ์œ ํ•œ ์Šค๋ ˆ๋“œ ์‚ฌ์ด์—์„œ, ๊ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ์†Œ์œ ํ•œ ์ž์›์„ ์š”์ฒญํ•˜์—ฌ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฌดํ•œ์ • ๋Œ€๊ธฐํ•˜๋Š” ํ˜„์ƒ์„ ๋งํ•œ๋‹ค.๊ต์ฐฉ์ƒํƒœ์˜ 4๊ฐ€์ง€ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๊ต์ฐฉ์ƒํƒœ 4๊ฐ€์ง€ ์กฐ๊ฑด

์ƒํ˜ธ๋ฐฐ์ œ : ๋งค ์ˆœ๊ฐ„ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ž์›์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

์ ์œ ๋Œ€๊ธฐ : ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋œ ์ž์›์„ ๊ฐ€์ง„ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ž์› ๊ธฐ๋‹ค๋ฆผ

๋น„์„ ์  : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์ž์›์˜ ์‚ฌ์šฉ์„ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ทธ ์ž์›์„ ๋บ์„ ์ˆ˜ ์—†์Œ

์ˆœํ™˜๋Œ€๊ธฐ : ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์ˆœํ™˜์ ์œผ๋กœ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ž์›์„ ๊ฐ–๊ณ  ์žˆ์Œ

→ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ž์›์„ ๊ฐ–๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋‹ˆ๊นŒ ์ง„ํ–‰๋˜์ง€ ์•Š์Œ

  • ๋ฐ๋“œ๋ฝ์„ ๋ง‰๋Š” ๋ฐฉ๋ฒ•
  1. ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์˜ˆ๋ฐฉ(prevention) ํ•˜๊ธฐ
  2. ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •ํ•˜๋ฉด์„œ๋„ ์ ์ ˆํ•˜๊ฒŒ ํšŒํ”ผ(avoidance) ํ•˜๊ธฐ
  3. ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ ๋ฐ๋“œ๋ฝ์„ ํƒ์ง€(detection)ํ•˜์—ฌ, ๋ฐ๋“œ๋ฝ์—์„œ ํšŒ๋ณตํ•˜๊ธฐ

๐Ÿ’ก ๊ฒฝ์Ÿ์ƒํƒœ๋ž€?

๊ณต์œ ์ž์›์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ํ•ด์น ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค

๊ฒฝ์Ÿ ์ƒํƒœ๋„ ๊ต์ฐฉ ์ƒํƒœ์˜ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

  • ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ
  1. ์ปค๋„๋ชจ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜์—ฌ ์ž‘์—…์„ ํ•˜๋˜ ๋„์ค‘ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. → ์ปค๋„๋ชจ๋“œ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ disable ์‹œ์ผœ๋†“์œผ๋ฉด ๋จ

๐Ÿ’ก ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง

CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ทธ์— ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์ผ์„ ์˜๋ฏธ ํ•œ๋‹ค

์ด๋Ÿฌํ•œ ์Šค์ผ€์ค„๋ง์€ ํฌ๊ฒŒ ์žฅ๊ธฐ, ์ค‘๊ธฐ, ๋‹จ๊ธฐ ์„ธ ๊ผญ์ง€๋กœ ๋‚˜๋ˆˆ๋‹ค

  1. ์žฅ๊ธฐ ์Šค์ผ€์ค„๋ง
  2. ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ด์„œ Ready Queue์— ๋ณด๋‚ด๋Š” ์ž‘์—…์„ ๋œปํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ปค๋„์— ๋“ฑ๋กํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•˜๋Š” ์ž‘์—…์ด๋‹ค
  3. ์ค‘๊ธฐ ์Šค์ผ€์ค„๋ง
  4. ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›์„ ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—… (์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ๊ณผ๋ถ€ํ•˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ •์ง€์‹œํ‚ค๋ฉด์„œ ๊ด€๋ฆฌํ•จ )
  5. ๋‹จ๊ธฐ ์Šค์ผ€์ค„๋ง
  6. ์–ธ์ œ cpu๋ฅผ ํ• ๋‹นํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—….

๐Ÿ’ก ์Šค์ผ€์ค„๋ง ๋ฐœ์ƒ ์‹œ์ 

  1. running → waiting : ๋ณดํ†ต I/O ์š”์ฒญ์ด ์ผ์–ด๋‚˜๊ฑฐ๋‚˜ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ ๋Œ€๊ธฐ ํ•  ๋•Œ → ๋น„์„ ์ ํ˜•
  2. running→ ready : ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒ๋์„ ๋•Œ → ์„ ์ ํ˜•
  3. waiting → ready: I/O๊ฐ€ ์™„๋ฃŒ ๋˜์—ˆ์„ ๋•Œ → ์„ ์ ํ˜•
  4. running → terminate: ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„์ „ํžˆ ์ข…๋ฃŒ ๋˜์—ˆ์„ ๋•Œ → ๋น„์„ ์ ํ˜•

๐Ÿ’ก์„ ์ ํ˜•๊ณผ ๋น„์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง์˜ ์ฐจ์ด์ 

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

๐Ÿ’ก ์„ธ๋งˆํฌ์–ด์™€ ๋ฎคํ…์Šค(์ƒํ˜ธ๋ฐฐ์ œ)์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ 

: ์ƒํ˜ธ๋ฐฐ์ œ ์กฐ๊ฑด์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ธ ๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด

์ž„๊ณ„๊ตฌ์—ญ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ๋ง‰๊ธฐ ์œ„ํ•ด Locking ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•œ๋ฐ

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

๐Ÿ’ก ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋ž€?

๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋Š”, ๋ฉ”๋ชจ๋ฆฌ(RAM)์˜ ๊ณต๊ฐ„์ด ์—ฌ๋Ÿฌ ์ž‘์€ ๊ณต๊ฐ„์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ”๋žŒ์— ์ „์ฒด๋กœ ๋ดค์„ ๋•Œ ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ• ๋‹น์„ ๋ชปํ•˜๋Š” ์ƒํƒœ

๐Ÿ’ก ์™ธ๋ถ€ ๋‹จํŽธํ™”์™€ ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋Š” ๋ฌด์—‡์ธ๊ฐ€

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

๐Ÿ’ก ํŽ˜์ด์ง•์ด๋ž€?

์™ธ๋ถ€ ๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ

ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํŽ˜์ด์ง€(page)๋ž€ ๋‹จ์œ„์˜ ๊ณ ์ •๋œ ์‚ฌ์ด์ฆˆ๋กœ ๋‚˜๋ˆ„์–ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ์—ฐ์†์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹ → ๋™์ ํ• ๋‹น์˜ ํ˜•ํƒœ

๐Ÿ’ก ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์ด๋ž€?

๋‚ด๋ถ€ ๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์„œ๋กœ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ์„ธ๊ทธ๋ฉ˜ํŠธ(Segment)๋ฅผ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•

→ ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š๊ณ  ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— hole์ด ๋ฐœ์ƒํ•ด์„œ ์™ธ๋ถ€ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒ → ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„

๐Ÿ’ก ์บ์‹œ๋ž€?

์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ, ๊ฐ’์„ ๋ฏธ๋ฆฌ ๊ฐ–๋‹ค๋†“๋Š” ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ. CPU์—์„œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋””์Šคํฌ ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š”๋ฐ์— cost๊ฐ€ ์ปค์„œ cpu ๋ฐ”๋กœ ์˜†์— ๋”ฑ ๋‹ฌ๋ผ๋ถ™์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— cpu์—์„œ ์ ‘๊ทผ ์ฝ”์ŠคํŠธ๊ฐ€ ๋งค์šฐ ์ ์–ด์„œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ์ข‹์Œ. ํ•˜

๋ฐ˜์‘ํ˜•
Share Link
reply
๋ฐ˜์‘ํ˜•
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31