Post

Interview_memory/ paging/ swapping

โœ…

Dynamic Relocation ๐Ÿ†š Dynamic Loading ๐Ÿ†š Dynamic Linking

  • Dynamic Relocation: runtime์— logical address์—์„œ physical address๋กœ address binding์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ
  • Dynamic Loading: ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ํ†ต์งธ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— load๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹น์žฅ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ load๋˜๋Š” ๊ฒƒ
  • Dynamic Linking: ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ link๋˜์–ด ์‹คํ–‰ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ, ๋ฏธ๋ฆฌ link๋˜์–ด ์žˆ์ง€ ์•Š๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ๊ทธ ๋•Œ link๋˜๋Š” ๊ฒƒ. stub๋ผ๋Š” ์ฝ”๋“œ๊ฐ€ ์ด๋ฏธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๋™์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ค‘๋ณต ์ ์žฌ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

Dynamic Loading ๐Ÿ†š Overlays

  • Dynamic Loading: ํ”„๋กœ๊ทธ๋žจ์ด ์ชผ๊ฐœ์ ธ์„œ ํ˜„์žฌ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ
  • Overlays: Dynamic Loading๊ณผ ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ํ˜„์žฌ ์‹คํ–‰์— ํ•„์š”ํ•œ ํ”„๋กœ์„ธ์Šค ๋ถ€๋ถ„๋งŒ ์˜ฌ๋ผ๊ฐ„๋‹ค๋Š” ์ ์—์„œ ๋น„์Šทํ•˜๋‚˜, ๋ชฉ์ ์ด ๋‹ค๋ฅด๋‹ค. ๊ณผ๊ฑฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ์ž‘์•„ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์กฐ์ฐจ ์˜ฌ๋ฆด ์ˆ˜๊ฐ€ ์—†์„ ๋•Œ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ˆ˜๋™์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ชผ๊ฐœ์–ด ํ˜„์žฌ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณค ํ•˜์˜€์Œ. ํ˜„๋Œ€์—๋Š” ์“ฐ์ด์ง€ ์•Š์Œ.

โœ… Linking์ด๋ž€?

  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ์ฝ”๋“œ๋ฅผ linkํ•ด ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •
  • Static Linking: ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ž‘์„ฑํ•œ ์ฝ”๋“œ + ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ ๋ชจ๋‘ ํ•ฉ์ณ์„œ ์‹คํ–‰ํŒŒ์ผ ์ƒ์„ฑ
  • ๐Ÿ‘Ž๐Ÿป ๋™์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ๋ฒˆ ์ ์žฌ, ๋น„ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ
  • Dynamic Linking: link๋ฅผ execution time๊นŒ์ง€ ๋ฏธ๋ฃจ๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๊ทธ์ œ์„œ์•ผ link
  • stub์ด๋ผ๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด ๋ฉ”๋ชจ๋ฆฌ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์ ์žฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ, ์—†์œผ๋ฉด ๋ถˆ๋Ÿฌ์˜ด.
  • ๐Ÿ‘๐Ÿป ๋™์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ ๋ฒˆ๋งŒ ์ ์žฌ

โœ… ์ ˆ๋Œ€ ์ฃผ์†Œ ์ง€์ •๊ณผ ์ƒ๋Œ€์ฃผ์†Œ ์ง€์ •์˜ ์ฐจ์ด์ ์€ ๋ญ˜๊นŒ์š”?

  • ์ ˆ๋Œ€ ์ฃผ์†Œ ์ง€์ •: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์‹ค์ œ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•
  • ๋‚ฎ์€ ์ฃผ์†Œ์— OS๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ณ , ์œ„์—๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ ์žฌ๋จ

  • ์ƒ๋Œ€์ฃผ์†Œ ์ง€์ •: ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…์ž์ ์œผ๋กœ ๊ฐ€์ง€๋Š” logical address๋ฅผ ํ• ๋‹นํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•
  • ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…์ž์ ์œผ๋กœ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— 0์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘

โœ… ๋ฉ”๋ชจ๋ฆฌ ๋ถ„ํ• ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • ๋ฉ”๋ชจ๋ฆฌ ๋ถ„ํ• ์€
  • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š” multiprogrammingํ™˜๊ฒฝ์—์„œ
  • ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ

  • continuous allocation: fixed-size partition allocation, variable-size partition allocation
  • non-continuous allocation: paging, segmentation, paged-segmentation

โœ… Dynamic storage allocation problem (๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ ๊ธฐ๋ฒ• ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ „๋žต)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • in variable size partition allocation
  • where to allocate memory in different sized partitions

  • First fit: ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ์‚ดํŽด๋ณด๋‹ค ์ ์žฌ๋  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ์žˆ์œผ๋ฉด ์ฆ‰์‹œ load
  • Best fit: ๊ฐ€์šฉ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์‚ดํŽด๋ณด๊ณ  ์‚ฌ์ด์ฆˆ์— ์ œ์ผ ์œ ์‚ฌํ•œ ๊ณต๊ฐ„์— load
  • ๐Ÿ‘๐Ÿป ์ œ์ผ ์œ ์‚ฌํ•œ ๊ณต๊ฐ„ ์‚ฌ์ด์ฆˆ
  • ๐Ÿ‘Ž๐Ÿป ์‹œ๊ฐ„ ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ๐Ÿ‘Ž๐Ÿป ์ž‘์€ hole๋“ค์ด ๋งŽ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ

  • Worst fit: ๊ฐ€์šฉ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์‚ดํŽด๋ณด๊ณ  ์ œ์ผ ํฐ ๊ณต๊ฐ„์— load
  • ๐Ÿ‘Ž๐Ÿป ์ž‘์€ hole๋“ค์ด ๋งŽ์ด ์ƒ๊ฒจ ๋‚˜์ค‘์— ํฐ ์‚ฌ์ด์ฆˆ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™”์„ ๋•Œ ๊ณต๊ฐ„ ์—†์Œ

โœ… ์™ธ๋ถ€ ๋‹จํŽธํ™”์™€ ๋‚ด๋ถ€ ๋‹จํŽธํ™”์˜ ์ฐจ์ด๊ฐ€ ๋ญ”๊ฐ€์š”?

  • external fragmentation: ์ƒˆ๋กœ ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์„œ ์ฒ˜์Œ ๋น„์–ด์žˆ๋Š” hole์— ๋“ค์–ด๊ฐ€์ง€ ๋ชปํ•˜๊ณ , ๋‹ค์Œ ์‚ฌ์ด์ฆˆ์˜ hole์— ๋“ค์–ด๊ฐ
  • ์ฒ˜์Œ ๋น„์–ด์žˆ๋Š” hole์€ ๋น„์–ด์žˆ๊ฒŒ ๋จ
  • internal fragmentation: ์ƒˆ๋กœ ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์„œ hole์ด ์ชผ๊ฐœ์ง

โœ… external fragmentation์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ 

  • frame์˜ ํฌ๊ธฐ๊ฐ€ ๊ท ์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ
  • segmentation

โœ… ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜์ธ colaescing(ํ†ตํ•ฉ)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • external fragmentation์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ,
  • ์ธ์ ‘ํ•œ ๋‘ hole์„ ํ•ฉ์ณ ํฐ hole์„ ๋งŒ๋“ฌ
  • ๊ทธ๋ž˜์„œ ํฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•จ

โœ… ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜์ธ compaction(์••์ถ•)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • colaescing๋ฅผ ํ–ˆ๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด๊ฐ€์ง€ ๋ชปํ•  ๋•Œ
  • ๋ชจ๋“  hole์„ ํ•œ์ชฝ์œผ๋กœ ๋ชฐ๊ณ , ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ˜๋Œ€์ชฝ์œผ๋กœ ๋ชจ์•„
  • ์•„์ฃผ ํฐ ํ•˜๋‚˜์˜ ์„ ๋งŒ๋“ฌ
  • ๐Ÿ‘Ž๐Ÿป ๊ฑฐ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋ฐ”๊พธ์–ด์•ผ ํ•˜๊ธฐ ๋–„๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ ๋น„์šฉ์ด ํฌ๋‹ค

โœ… ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜์ธ ๋ฒ„๋”” ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • fixed-size partition allocation์˜ ๋‚ด๋ถ€ ๋‹จํŽธํ™”, variable-size partition allocation์˜ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•
  • buddy๋ผ๋Š” ๋ธ”๋ก๋“ค์„ 2์˜ ์ œ๊ณฑ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค, ํ•ฉ์ณค๋‹ค ํ•˜๋ฉด์„œ ์ œ์ผ ๋น„์Šทํ•œ ํฌ๊ธฐ์˜ ๋ธ”๋ก์— ํ”„๋กœ์„ธ์Šค ํ• ๋‹น
  • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‹ค ์“ฐ์ด๊ณ  ํ•ด์ œ๋˜๋ฉด ๊ณต๊ฐ„ ํ•ฉ์น˜๊ธฐ ๊ฐ€๋Šฅ

โœ… ๊ฐ€์ƒ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ(์‹ค์ฃผ์†Œ)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • logical address: ํ”„๋กœ๊ทธ๋žจ์ด ๋…์ž์ ์œผ๋กœ ๊ฐ€์ง€๋Š” virtual memory์˜ ์ฃผ์†Œ
  • physical address: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ load๋œ ์ฃผ์†Œ

โœ… ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ(์‹ค์ฃผ์†Œ)๋กœ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜ํ• ๊นŒ์š”?

  • address binding์ด๋ผ๊ณ  ํ•จ
  • MMU๋ผ๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋‹ด๋‹น
  • MMU๋Š” base register(relocation register), limit register์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • limit register์„ ํ†ตํ•ด address binding์š”์ฒญ์ด ๋‚ด ์ฃผ์†Œ๊ณต๊ฐ„ ๋‚ด์— ์žˆ๋Š” ์š”์ฒญ์ธ์ง€ ํ™•์ธ
  • ์ ํ•ฉํ•œ ์š”์ฒญ์ด๋ฉด base register(relocation register)์— logical address๋ฅผ ๋”ํ•ด์„œ physical address๋ฅผ ๊ตฌํ•œ๋‹ค.

โœ… Types of address binding?

  • address binding ์‹œ์ ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„
  • compile time: absolute code
  • load time
  • runtime(execution time): swapping, dynamic relocation, compaction

โœ… address binding์€ ๋ˆ„๊ฐ€ ๋‹ด๋‹นํ•˜๋‚˜์š”?

  • ํ•˜๋“œ์›จ์–ด MMU
  • ์šด์˜์ฒด์ œ๋Š” address binding์— ๊ด€์—ฌํ•˜์ง€ ์•Š์Œ

โœ… MMU์˜ ๊ธฐ๋Šฅ๊ณผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” register์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

  • Memory Management Unit
  • address binding์„ ๋‹ด๋‹นํ•˜๋Š” ํ•˜๋“œ์›จ์–ด
  • base register(relocation register): physical memory์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜
  • limit register: ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ

โœ… ์™œ MMU๋Š” limit register๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ• ๊นŒ?

  • ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜๋ชป๋œ address binding ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒฝ์šฐ
  • (์ž์‹ ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์„ ๋„˜์–ด์„  address binding ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒฝ์šฐ)
  • (๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์˜ ์ฃผ์†Œ๊ณต๊ฐ„๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ)
  • ์š”์ฒญ์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ

โœ… CPU๊ฐ€ ๋ฐ”๋ผ๋ณด๊ณ  ์‹คํ–‰ํ•˜๋Š” ์ฃผ์†Œ๋Š” ์–ด๋–ค ์ฃผ์†Œ์ผ๊นŒ์š”?

  • logical address
  • CPU๋Š” compile๋œ ๊ธฐ๊ณ„์–ด๋ฅผ ์‹คํ–‰
  • ๊ทธ๋ฆฌ๊ณ  compileํ•˜๋ฉด logical address๋ฅผ ์ƒ์„ฑ

โœ… Swapping์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ์ค‘๊ธฐ scheduler์ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰ ์ฐจ๋ฉด Multi Programming Degree๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ backing store/swap area๋กœ ์ซ’์•„๋ƒ„
  • ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ์ „์ฒด๋ฅผ ๋””์Šคํฌ์˜ ์Šค์™‘ ์˜์—ญ์— ์ผ์‹œ์ ์œผ๋กœ ๋‚ด๋ ค๋†“์Œ
  • ๐Ÿ‘๐Ÿป ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜ ์กฐ์ ˆ

โœ… Swapping์˜ ๊ณผ์ •์„ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

    1. ์ค‘๊ธฐ scheduler์ด ์ซ’์•„๋‚ผ ํ”„๋กœ์„ธ์Šค ์„ ์ •
    1. ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํ†ต์งธ๋กœ backing store/swap area๋กœ ์ซ’์•„๋ƒ„

โœ… Swapping์˜ ์žฅ๋‹จ์ ์„ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ๐Ÿ‘๐Ÿป ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜ ์กฐ์ ˆ
  • ๐Ÿ‘๐Ÿป ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋” ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ดˆ๊ณผ ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Œ
  • ๐Ÿ‘Ž๐Ÿป backing store/swap area๋Š” DISK๊ณต๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์— I/O๊ฐ€ ๋Š๋ฆฌ๋‹ค

โœ… ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜์ธ ํŽ˜์ด์ง•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • noncontinuousํ•˜๊ฒŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ™์€ ํฌ๊ธฐ์˜ page์— ์ ์žฌ
  • ๋…ผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ผ ํฌ๊ธฐ์˜ page frame์œผ๋กœ ๋‚˜๋ˆ„๊ณ 
  • page table๋กœ address translation

  • ๐Ÿ‘๐Ÿป external fragmentation๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
  • ๐Ÿ‘Ž๐Ÿป internal fragmentation๋ฐœ์ƒ
  • ๐Ÿ‘Ž๐Ÿป ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 2๋ฒˆ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค
    • address translation์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์˜ page table์ ‘๊ทผ
    • ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
    • ๐Ÿ’Š ์†๋„ ํ–ฅ์ƒ ์œ„ํ•ด TLB

โœ… ์™œ page table์€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋‚˜์š”?

  • page table์€ ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•˜๊ณ ,
  • 32bitํ™˜๊ฒฝ์—์„œ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค

โœ… page table์—๋Š” ๋ฌด์—‡์ด ์ €์žฅ๋˜์–ด ์žˆ๋‚˜์š”?

  • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์™€
  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ช‡ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„์— ํŽ˜์ด์ง€๊ฐ€ ๋“ค์–ด์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด

  • PTBR: base register, ๋ฉ”๋ชจ๋ฆฌ ๋‚ด page table์œ„์น˜
  • PTLR: length register, page table์˜ ํฌ๊ธฐ

โœ… page table์˜ ๊ธธ์ด๋Š” ์™œ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ• ๊นŒ์š”?

  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์˜ ์ฃผ์†Œ๊ณต๊ฐ„๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๋‚ด page table์„ ๋„˜์–ด์„œ๋Š” ์š”์ฒญํ•˜๋ฉด โžก๏ธ TRAP

โœ… ํŽ˜์ด์ง•์—์„œ๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ(์‹ค์ฃผ์†Œ)๋กœ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜ํ• ๊นŒ์š”?

  • page table์‚ฌ์šฉ
  • logical address์€ p, d๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๊ณ 

    • p: page ๋ฒˆํ˜ธ
    • d: page๋‚ด์—์„œ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€ offset
  • page table์—์„œ p๋ฅผ ์ฐพ์•„ f๋ฅผ ์–ป๊ณ 
  • f: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํŽ˜์ด์ง€ ์‹œ์ž‘ ์œ„์น˜
  • f์— ๋ฅผ ๋”ํ•ด์„œ physical memory address๋ฅผ ์–ป๋Š”๋‹ค

โœ… TLB์˜ ๋ชฉ์ ์€?

  • ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์—์„œ address translation์œ„ํ•ด page table์„ ์ ‘๊ทผํ•˜๋Š”๋ฐ ์‹œ๊ฐ„ ๊ฑธ๋ฆผ
  • ๋”ฐ๋ผ์„œ ์ผ์ข…์˜ cache์ธ TLB์— ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์†๋„ ํ–ฅ์ƒ

  • TLB์—๋Š” p: page number, f: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํŽ˜์ด์ง€ ์‹œ์ž‘ ์œ„์น˜๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Œ
  • ๐Ÿ‘Ž๐Ÿป cache์ด๊ธฐ ๋•Œ๋ฌธ์— context switching์ผ์–ด๋‚˜ ํ”„๋กœ์„ธ์Šค ๋ฐ”๋€Œ๋ฉด ๋‹ค ๋ฐ”๊พธ์–ด์•ผ ํ•จ
  • ๐Ÿ‘Ž๐Ÿป cache์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์ฃผ์†Œ ์ €์žฅ์€ ๋ถˆ๊ฐ€, index์—†์–ด์„œ ๋‹ค ์ฐพ์•„๋ด์•ผ ํ•จ
  • ๐Ÿ’Š associative register ์‚ฌ์šฉ: parallel search

  • TLB hit์ผ ์ˆ˜๋ก address translation time ํšจ์œจ์ 

โœ… Two level page table๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • page table์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๊ณ , ์‹ฌ์ง€์–ด page table์ด ๋‹ค ์“ฐ์ด๋Š” ๊ฒƒ๋„ ์•„๋‹˜
  • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด page table์„ page๋กœ ๋งŒ๋“ ๋‹ค
  • ๋‘ ๊ฐœ์˜ page table์„ ๋‘๊ณ  outer page table, inner page table
  • ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” null๊ฐ’์œผ๋กœ ์„ค์ •

  • ๐Ÿ‘๐Ÿป ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํšจ์œจ์„ฑ
  • ๐Ÿ‘Ž๐Ÿป ์ฃผ์†Œ๋ณ€ํ™˜๊นŒ์ง€ ํฌํ•จํ•ด ๋ฉ”๋ชจ๋ฆฌ 3๋ฒˆ ์ ‘๊ทผํ•ด์•ผ

โœ… page table์˜ valid, invalid bit์ด๋ž€?

  • valid: ํ˜„์žฌ ์š”์ฒญํ•˜๋Š” page๊ฐ€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋‹ค
  • invalid bit: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋‹ค OR ํ”„๋กœ์Šค๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋‹ค

โœ… Inverted page table์ด๋ž€?

  • ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์— ๋Œ€ํ•ด page table์„ ๋งŒ๋“ค์–ด์„œ
  • system-wideํ•˜๊ฒŒ page table์ด ํ•˜๋‚˜๋งŒ ์กด์žฌ

โœ… Shared Pages๋ž€?

  • ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” code๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ ๋ฒˆ๋งŒ ์ ์žฌ
  • ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
    • 1๏ธโƒฃ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋„ ๊ฐ™์•„์•ผ ํ•œ๋‹ค
    • 2๏ธโƒฃ read-only๋งŒ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค

โœ… ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜์ธ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„ํ• ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š”๋ฐ, ์˜๋ฏธ ๋‹จ์œ„์ธ segment๋กœ ๋ถ„ํ• 
  • code, data, stack
  • segment์˜ ํฌ๊ธฐ๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ค

  • logical address = s + d
    • s: segment ๋ฒˆํ˜ธ
    • d: segment๋‚ด์—์„œ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€
  • segment table์—๋Š” limit, base์ €์žฅ

    • limit: segment์˜ ๊ธธ์ด
    • base: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ segment์‹œ์ž‘ ์œ„์น˜
  • ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ: base + d

  • STBR: base register
  • STLR: length register

  • segment table์—์„œ๋Š” ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋‘ ๊ฐ€์ง€ ํ™•์ธ
  • 1๏ธโƒฃ d๊ฐ€ limit์„ ๋„˜์–ด์„œ์ง€ ์•Š๋Š”์ง€
  • 2๏ธโƒฃ s๊ฐ€ ๋ณด๋‹ค ์ž‘์€์ง€

  • ๐Ÿ‘๐Ÿป ์˜๋ฏธ ๋‹จ์œ„๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜๋ˆ„๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง•๋ณด๋‹ค Sharing, Protection(read-write)์ธก๋ฉด์—์„œ ๊ด€๋ฆฌ ํšจ์œจ
  • ๐Ÿ‘Ž๐Ÿป allocation ๋ฌธ์ œ(first-fit, best-fit, worst-fit)
  • ๐Ÿ‘Ž๐Ÿป external fragmentation ๋ฌธ์ œ ๋ฐœ์ƒ

โœ… Paged Segmentation์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

  • ํ”„๋กœ์„ธ์Šค๋ฅผ segment๋กœ ๋‚˜๋ˆ„๊ณ  ์ด segment๋ฅผ page๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ
  • segment table, page table๋ชจ๋‘ ํ•„์š”

  • ๐Ÿ‘๐Ÿป Sharing, Protection(read-write)์ธก๋ฉด์—์„œ ๊ด€๋ฆฌ ํšจ์œจ
  • ๐Ÿ‘๐Ÿป Allocation, external fragmentation ๋ฌธ์ œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ

โœ… virtual memory์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ ๋…์ž์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„
  • ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๊ฐ€์ƒ ์ฃผ์†Œ ํ• ๋‹น
  • 0์—์„œ ์‹œ์ž‘
  • virtual memory์ค‘ ์ผ๋ถ€๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ, ์ผ๋ถ€๋Š” ๋””์Šคํฌ swap area์— ์ ์žฌ

  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์žฅ ๊ณต๊ฐ„์œผ๋กœ swap area์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๐Ÿ‘๐Ÿป ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ์ œ์•ฝ ๊ทน๋ณต

โœ… Demand Paging์ด๋ž€?

  • demand๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ํŽ˜์ด์ง€๋ฅผ paging, ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ฒ ๋‹ค

โœ… page replacement์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • page fault๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋นˆ frame์— ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜จ ๊ฐ’์„ ์ €์žฅํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ
  • ๋นˆ frame์ด ์—†์„ ๋•Œ
  • ๊ธฐ์กด frame์„ ์ซ’์•„๋‚ด์–ด ๋นˆ ๊ณต๊ฐ„ ๋งˆ๋ จ

โœ… page fault๋ž€?

  • CPU๊ฐ€ ์ฐธ์กฐํ•˜๋ ค๋Š” page๊ฐ€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ์ง€ ์•Š์€ ์ƒํ™ฉ
  • ๋””์Šคํฌ์—์„œ ๊ฐ’์„ ์ฝ์–ด์™€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋นˆ frame์— ์ €์žฅํ•ด์•ผ ํ•จ

โœ… page fault๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

  • temporal locality: ์ตœ๊ทผ ์ฐธ์กฐ๋œ page๋Š” ๋˜ ์ฐธ์กฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค
  • Locality of reference: ์ฐธ์กฐ๋˜๋Š” page์— ์ผ์ข…์˜ ์˜ˆ์ƒ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค

  • ์ด๋Ÿฐ๊ฒƒ๋“ค์„ ๊ณ ๋ คํ•ด ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ replaceํ• ์ง€ ์ž˜ ์ƒ๊ฐํ•ด์•ผํ•จ
  • FIFO, LFU, LRU, clock algorithm `

โœ… ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ FIFO์— ๋Œ€ํ•ด ์„ค๋ช… ํ•ด์ฃผ์„ธ์š”.

  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์žฅ ๋จผ์ € ์˜ฌ๋ผ์˜จ page๋ฅผ replace

โœ… ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ LRU์— ๋Œ€ํ•ด ์„ค๋ช… ํ•ด์ฃผ์„ธ์š”.

  • ์ฐธ์กฐ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ page๋ฅผ replace
  • temporal locality๋ฐ˜์˜
  • linked list๋กœ ๊ตฌํ˜„, O(1)

โœ… ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ LFU์— ๋Œ€ํ•ด ์„ค๋ช… ํ•ด์ฃผ์„ธ์š”.

  • ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ page๋ฅผ replace
  • heap์œผ๋กœ ๊ตฌํ˜„, O(logN)

  • In-cache LFU: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์ฐธ์กฐ ํšŸ์ˆ˜ count
  • Perfect LFU: page์˜ ๊ณผ๊ฑฐ ์ด ์ฐธ์กฐํšŸ์ˆ˜ count

โœ… ์™œ paging system์—์„œ๋Š” LRU, LFU๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ๊ฐ€?

  • OS๋Š” page fault๊ฐ€ ๋‚  ๋•Œ๋งŒ ๊ด€์—ฌ, ์ฐธ์กฐ ํšŸ์ˆ˜/์ฐธ์กฐ ์‹œ๊ฐ„ ์•Œ ์ˆ˜ ์žˆ์Œ
  • address translation์—๋Š” MMU ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋‹ด๋‹น, OS๋Š” ๋ชจ๋ฆ„
  • ๋”ฐ๋ผ์„œ page fault๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด OS๋Š” ์ฐธ์กฐ ํšŸ์ˆ˜/์ฐธ์กฐ ์‹œ๊ฐ„ ์•Œ ์ˆ˜ ์—†์Œ
  • ๋”ฐ๋ผ์„œ OS๋Š” ์ •ํ™•ํ•œ ์ฐธ์กฐ ํšŸ์ˆ˜/์ฐธ์กฐ ์‹œ๊ฐ„์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— LRU, LFU๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ

โœ… ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ clock ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • Second Chance algorithm(์‹œ๊ณ„ ๋ฐ”๋Š˜์ด ๋‹ค์‹œ ์˜ฌ๋™์•ˆ ์ฐธ์กฐ๋˜์–ด์•ผ ํ•จ)
  • Not Recently Used
  • LRU๋ฅผ ๊ทผ์‚ฌ์‹œํ‚จ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํŠน์ • ์‹œ๊ฐ„๋™์•ˆ ์ฐธ์กฐ๋˜์ง€ ์•Š์€ page๋ฅผ replace
  • page๋ฅผ ์›ํ˜•์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ณ 
  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐธ์กฐ๋˜๋ฉด ์ฐธ์กฐ ๋น„ํŠธ 1
  • OS๋ฐ”๋Š˜์€ ์ฐธ์กฐ๋น„ํŠธ๊ฐ€ 1์ด๋ฉด 0์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์ง€๋‚˜๊ฐ€๊ณ 
  • ์ฐธ์กฐ๋น„ํŠธ๊ฐ€ 0์ด๋ฉด replace
  • OS๋ฐ”๋Š˜์ด ํ•œ ๋ฐ”ํ€ด ๋„๋Š” ๋™์•ˆ ์ฐธ์กฐ๋˜์ง€ ์•Š์€ page๋ฅผ replace

โœ… clock ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ์„  ๋ฐฉ๋ฒ•?

  • reference bit(access bit)์™ธ์—๋„
  • modified bit(dirty bit)์„ ๋‘์–ด ์ƒˆ๋กœ ๋ฐ”๋€ ๊ฐ’์€ ์ €์žฅํ•˜๊ณ  replace

โœ… Page Frame Allocation์ด๋ž€? ํ•„์š”์„ฑ์€?

  • ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ frame์„ ํ• ๋‹น
  • ํ”„๋กœ์„ธ์Šค ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ frame์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ

  • equal allocation
  • priority allocation
  • proportional allocation: ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ์— ๋”ฐ๋ผ frame์„ ๋‹ค๋ฅด๊ฒŒ ํ• ๋‹น

โœ… Two types of replacement methods in allocation?

  • Global Replacement: ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ frame ๋นผ์•—์„ ์ˆ˜ ์žˆ์Œ
  • Local Replacement: ๊ฐ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ผ์ • frame์„ ํ• ๋‹น, ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์—์„œ ๊ฒฝ์Ÿ

โœ… Thrashing์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œ frame์˜ ์ˆ˜๋ฅผ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•ด
  • memory์— ๋„ˆ๋ฌด ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ฌ๋ผ๊ฐ€
  • pafe fault๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์ด ๋ฐœ์ƒํ•˜์—ฌ
  • cpu utilization์ด ๊ฐ์†Œํ•˜๋Š” ๊ฒƒ

  • cpu utilization์ด ๋‚ฎ์œผ๋ฉด, OS๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๋” ๋งŽ์ด ์ ์žฌ
  • ํ”„๋กœ์„ธ์Šค๋Š” ์ˆ˜ํ–‰์„ ์œ„ํ•ด ์ผ์ • ์ˆ˜ ์ด์ƒ์˜ ์ด frame์ด ํ•„์š”ํ•œ๋ฐ
  • ๋ฉ”๋ชจ๋ฆฌ์— ๋„ˆ๋ฌด ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์–ด frame์„ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•จ
  • page fault๊ณ„์† ๋ฐœ์ƒ
  • cpu utilization ๊ฐ์†Œ

โœ… ์›Œํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • Thrashing์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์š”ํ•œ ์ตœ์†Œ frame์„ working set์œผ๋กœ ๋งŒ๋“ค๊ณ 
  • ์ด working set์ด ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ๋˜๋Š” ๊ฒƒ์€ ๋ณด์žฅํ•ด์ค€๋‹ค
  • working set์ด ํ•œ๊บผ๋ฒˆ์— ์˜ฌ๋ผ๊ฐˆ ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด ์•„์˜ˆ ์ ์žฌํ•˜์ง€ ์•Š์Œ
  • working set window๋Š” ๊ฐ€๋ณ€์ 

โœ… ํŽ˜์ด์ง€ ๋ถ€์žฌ ๋นˆ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • page fault rate์— ์ƒํ•œ๊ฐ’, ํ•˜ํ•œ๊ฐ’์„ ๋‘๊ณ 
  • ์ƒํ•œ๊ฐ’์„ ๋„˜์–ด์„œ๋ฉด frame์„ ๋” ๋งŽ์ด ํ• ๋‹น
  • ํ•˜ํ•œ๊ฐ’๋ณด๋‹ค ๋–จ์–ด์ง€๋ฉด frame์„ ๋นผ์•—์Œ

์ ˆ๋Œ€ ์ฃผ์†Œ ์ง€์ •๊ณผ ์ƒ๋Œ€์ฃผ์†Œ ์ง€์ •์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ์š” ์ ˆ๋Œ€์ฃผ์†Œ์ง€์ •์€ ์ฃผ๋กœ ์–ด๋””์—์„œ ์‚ฌ์šฉ๋ ๊นŒ์š”? ์ƒ๋Œ€์ฃผ์†Œ๊ฐ€ ์ ˆ๋Œ€์ฃผ์†Œ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ณผ์ •? Address binding. Mum ๋ผ๋Š” ํ•˜๋“œ์›จ์–ด. 2๊ฐ€์ง€์˜ ๋ ˆ์ง€์Šคํ„ฐ. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋””์—์„œ ์‹œ์ž‘ํ•˜๋Š”์ง€ base ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ–๊ณ ์žˆ๊ณ . Limit ๊ฐ’์„ ๊ฐ–๊ณ ์žˆ์Œ. ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์— p์™€ d ๊ฐ’์„ ๊ฐ–๊ณ ์žˆ๋Š”๋ฐ, P ๋Š” ํŽ˜์ด์ง€๋ฒˆํ˜ธ, d ๋Š” ํŽ˜์ด์ง€์—์„œ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ์žˆ๋Š”์ง€์˜ offset. ๋ฒ„๋”” ์‹œ์Šคํ…œ ๊ณ ์ •๋ถ„ํ• ๊ณผ ๋ณ€๋™๋ถ„ํ• ๋ฐฉ์‹์„ ๋ณด์™„ํ•˜๊ธฐ์œ„ํ•ด ๋‚˜์™”์Œ. ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„์„ 2^n ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋ฒ„๋””๋ผ๊ณ  ๋ถ€๋ฅด๊ณ ์žˆ์Œ. ์žฅ์ ์€ ์™ธ๋ถ€๋‹จํŽธํ™”, ๋‚ด๋ถ€๋‹จํŽธํ™”๋ฅผ ์ค„์ผ์ˆ˜์žˆ๋‹ค. ๋‚ด๋ถ€๋‹จํŽธํ™”๋Š” ์–ด๋–จ๋•Œ ๋ฐœ์ƒํ•˜๋‚˜์š”? -> ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋นˆ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€๋ คํ• ๋•Œ, ์ด ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋” ์ปค์„œ ์กฐ๊ฐ์ด ์ชผ๊ฐœ์งˆ๋•Œ ๋‚จ์€๊ณต๊ฐ„. ์™ธ๋ถ€๋‹จํŽธํ™”๋Š” ์–ด๋–จ๋•Œ ๋ฐœ์ƒํ•˜๋‚˜์š”? -> ์™ธ๋ถ€๋‹จํŽธํ™”๋Š” ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋‹ค๊ฐ€ ๋‚˜๊ฐ”์„๋•Œ ๋น„์–ด์žˆ๋Š”๊ณณ์— ๋“ค์–ด๊ฐ€๋ คํ–ˆ๋Š”๋ฐ, ๊ฑฐ๊ธฐ๋ณด๋‹ค ์ž‘์•„์„œ ๋” ํฐ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€์•ผํ• ๋•Œ ํŽ˜์ด์ง•๊ณผ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” ํŽ˜์ด์ง•์€ page ๋ผ๋Š” ๋™์ผํฌ๊ธฐ์˜ ๋ถ„ํ• ์กฐ๊ฐ. ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์€ ์–ด๋–ค ์˜๋ฏธ๋‹จ์œ„์ธ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆ„๋Š”๊ฒƒ. ํฌ๊ธฐ๊ฐ€ ๋™์ผํ•˜์ง€์•Š๋‹ค ๋ผ๋Š” ํŠน์ง•. ์–ด๋–ค ์˜๋ฏธ๋‹จ์œ„๋ผ๋Š”๊ฒƒ์€? ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ ๋“ฑ, ํ•„์š”์—์˜ํžˆ ํ•จ์ˆ˜๊ฐ€๋ ์ˆ˜๋„์žˆ๊ณ , ๊ณต๊ฐ„์ „์ฒด๊ฐ€ ๋ ์ˆ˜๋„์žˆ๋‹ค. ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์™ธ๋ถ€๋‹จํŽธํ™”๋Š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ์ˆ˜์žˆ์„๊นŒ์š”? ํ†ตํ•ฉ์ด๋‚˜ ์••์ถ•์˜ ๊ฐœ๋…์ฐจ์ด? ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋ ค๊ณ ํ• ๋•Œ ์ธ์ ‘ํ•œ ํ™€์„ ํ•ฉ์ณ์„œ ๋” ํฐ ํ™€์„ ํ•ฉ์น˜๋Š”๊ฒƒ. ๋” ํฌ๊ธฐ๊ฐ€ ํฐ๊ฒƒ๋„ ์ ์žฌ๋ ์ˆ˜์žˆ์Œ. Compaction ์••์ถ•์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋ ค๊ณ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™€๋ณด๋‹ค ์ปค์„œ ๋” ํฐ ํ™€์ด ํ•„์š”ํ• ๋–„ ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ์ชฝ์œผ๋กœ๋Š” ๋ชจ๋“ ํ™€๋กœ ๋ชฐ๊ณ , ๋‹ค๋ฅธํ™€๋กœ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชฐ์•„์„œ ํฐ ํ™€์„ ๋งŒ๋“œ๋Š”๊ฒƒ. ์ž๋ฐ”์˜ gc ๋Š” ์–ด๋–ป๊ฒŒ๋™์ž‘ํ•˜๋Š”๊ฐ€? Gc ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ•œ๋ฒˆ์”ฉ ์‚ฌ์šฉ๋˜์ง€์•Š๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ˆ˜์ž‘์—…ํ• ํ•„์š”์—†์ด, ํ•œ๋ฒˆ์”ฉ ์ •๋ฆฌํ•ด์ค€๋‹ค. ํ•œ๋ฒˆ์”ฉ ์ฒญ์†Œํ•˜๋Š”๊ฒƒ๊ณผ ๋ถ€๋ถ„์ ์œผ๋กœ ์ •๋ฆฌํ•จ

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์‹ค์ œ๋ก  ์กด์žฌํ•˜์ง„์•Š์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ์ด ๋…์ž์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๊ณต๊ฐ„. ์žฅ์ ์€ ๋ฌผ๋ฆฌ์ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด์„œ์„œ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ• ์ˆ˜์žˆ๋‹ค. ๋ผ๋Š” ์žฅ์ ์ด์žˆ๋‹ค. ๋‹จ์ ์€ ์–ด๋–ค๊ฒŒ์žˆ์„๊นŒ์š”? Process ๊ฐ€ ์‹คํ–‰๋์„๋•Œ ์ž๊ธฐ๋งŒ์˜์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์•ผํ•˜๊ธฐ๋•Œ๋ฌธ์— ๊ณผ์ •์ด ์ถ”๊ฐ€๋˜๊ธฐ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด์ง€์•Š๋‹ค. ํŽ˜์ด์ง€์™€ ํ”„๋ ˆ์ž„์˜ ๊ฐœ๋…์ฐจ์ด๋ฅผ ์•Œ๊ณ ์žˆ๋‚˜์š”? ํŽ˜์ด์ง€๋Š” ๋…ผ๋ฆฌ์ ์ฃผ์†Œ๋ฅผ ์ชผ๊ฐ ๊ฒƒ. ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๋ถ„ํ• ํ•ด๋†“์€๊ฒƒ์„ ํ”„๋ ˆ์ž„์ด๋ผ๊ณ ํ•จ. ํŽ˜์ด์ง•๊ณผ ํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์•„์„œ 1:1 ๋งคํ•‘ํ•จ. ํŽ˜์ด์ง€ ๊ต์ฒด๋ž€ Page ๊ต์ฒด๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ค๋ฆฌ๋ ค๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰์ฐจ์„œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ซ’์•„๋‚ด๊ณ , ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋Š”๊ฒƒ. ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์–ด๋–ค๊ฒƒ๋“ค์ด ์žˆ์„๊นŒ์š”? Opt ?? Fifo, LRU, LFU, clock ์•Œ๊ณ ๋ฆฌ์ฆ˜ LRU LFU ๋Š” ์–ด๋–ป๊ฒŒ ์ฐจ์ด๊ฐ€์žˆ๋‚˜์š”? LRU ๊ฐ€์žฅ ์˜ค๋ž˜์ „์— ์ฐธ์กฐ๋œ๊ฒƒ. LFU ๋Š” ?? LRU ๋Š” linked list, LFU ๋Š” ์–ด๋–ค๊ฑธ๋กœ heap ์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. LRU ์™€ clock ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ฐจ์ด๋„ ๋ง์”€ํ•ด์ฃผ์„ธ์š” ๊ฐ€์žฅ ์˜ค๋ž˜์ „์— ์ฐธ์กฐ๋œ ํŽ˜์ด์ง€, clock ์€ ์ตœ๊ทผ์— ์ฐธ์กฐ๋˜์ง€์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š”๊ฒƒ.

์“ฐ๋ ˆ์‹ฑ์ด๋ž€? CPU ์‚ฌ์šฉ์œจ์ด ๋‚ฎ์œผ๋ฉด, os ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†๋‹ค ๋ผ๊ณ  ์ƒ๊ฐํ•จ. ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์˜ฌ๋ฆฌ๊ฒŒ๋จ ์“ฐ๋ ˆ์‹ฑ์€ ์–ด๋–ป๊ฒŒ ๋ฐฉ์ง€ํ• ์ˆ˜์žˆ๋‚˜์š”? Work set ๋ฐฉ์‹ -> ๋กœ์ปฌ๋ฆฌํ‹ฐ. ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•œ๋ฒˆ์— ์ฐธ์กฐํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์ง‘ํ•ฉ. Worksheet window ๋ผ๋Š”๊ฒƒ. ์ด ์œˆ๋„์šฐ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š”๊ฒƒ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ์‹. ๊ณต๊ฐ„์ด ํ™•๋ณด๋˜์ง€์•Š์œผ๋ฉด work set ์„ ์˜ฌ๋ฆฌ์ง€์•Š์Œ. ๊ณ„์†ํ•ด์„œ ๊ณต๊ฐ„์ด ํ™•๋ณด๋˜์ง€์•Š์œผ๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ์˜์›ํžˆ ์‹คํ–‰์•ˆ๋˜๋‚˜์š”? Os ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ์ˆ˜์žˆ์„๊นŒ์š”? Page fault trace ๋ฐฉ์‹ -> ํŽ˜์ด์ง€ ๋ถ€์žฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ•˜ํ•œ์„ ๊ณผ ์ƒํ•œ์„ ์„ ์ •ํ•จ. ํŽ˜์ด์ง€ํด๋“œ๊ฐ€ ์ƒํ•œ์„ ์„ ๋„˜์œผ๋ฉด ํ”„๋ ˆ์ž„์„ ํ• ๋‹นํ•ด์ฃผ๊ณ , ํ•˜ํ•œ์„ ์„ ๋„˜์œผ๋ฉด ํ”„๋ ˆ์ž„์„ ๋บ๋Š”๋‹ค Swapping ์˜ ๊ฐœ๋…๊ณผ ์žฅ๋‹จ์  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰์ฐผ์„๋•Œ ์Šค์™‘์˜์—ญ์œผ๋กœ ์ซ’์•„๋‚ด๋Š”๊ฒƒ. ์ค‘๊ธฐ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋‹ด๋‹นํ•จ. ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•ด์„œ ์ž˜ ์ซ’์•„๋‚ด์•ผํ•จ. ์Šค์™€ํ•‘์„ ํ–ˆ์„๋•Œ ์žฅ์ ์€ ๋ฌผ๋ฆฌ์ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋„˜์–ด์„œ ํ• ๋‹นํ• ์ˆ˜์žˆ๊ณ , ๋‹จ์ ์œผ๋กœ๋Š” swap out ์ด ๋์„๋•Œ, Swap in ํ•ด์•ผํ•˜๋Š” ๊ด€๋ฆฌํฌ์ธํŠธ๊ฐ€ ์ƒ๊น€. ์Šค์™‘์˜์—ญ์ด๋ž€๊ฑด ์–ด๋–ค ์˜์—ญ์„๋งํ•˜๋‚˜์š”? ๋ฐฑ์—…๊ณต๊ฐ„?? ๋””์Šคํฌ์— ์žˆ๋Š”๊ณต๊ฐ„์„ ๋งํ•œ๋‹ค. ๋””์Šคํฌ์— ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๋•Œ ํ™œ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์–ด๋–ค๊ฒŒ ์žˆ์„๊นŒ์š”?

์ด๋ ฅ์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ฐ๋˜, ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ์ž์„ธํ•˜๊ฒŒ ์ ์ž (์ด๋ ฅ์„œ๋Š” ๋ณดํ†ต ์ธ์‚ฌํŒ€์—์„œ ๋ณด๋Š”๊ฒฝ์šฐ๊ฐ€๋งŽ์Œ) ์†Œ๊ทœ๋ชจ ํšŒ์‚ฌ์—๋Š” ์ด๋ ฅ์„œ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ž์„ธํ•˜๊ฒŒ ์“ฐ ์ง„ํ–‰ํ–ˆ๋–ค ํ”„๋กœ์ ํŠธ์˜ ์‹œ;์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ทธ๋ฆด์ˆ˜์žˆ์„์ •๋„๋กœ ๊ณต๋ถ€ํ•ด์•ผํ•˜๊ณ  ์•„ํ‚คํ…์ฒ˜๋งˆ๋‹ค ๊ฐ ํŠน์ง•์„ ์ž˜ ์•Œ์•„๋‘์…”์•ผํ•จ (route53, ec2, alb, rds ์ด๋Ÿฐ ๊ฐ component ๋“ค ์ž˜. ใ…—ใ…‡๋ถ€ํ•ด์•ผํ•˜๊ณ ) ํ˜„์žฌ ์•„ํ‚คํ…์ฒ˜์˜ ๋ฌธ์ œ์ ์ด๋‚˜, ๊ฐœ์„ ํ• ์  JPA ๋ฅผ ์“ฐ์…จ์œผ๋‹ˆ๊นŒ, JPA ์˜ ํŠน์ง•์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ๊ณต๋ถ€ + ๋‹ค๋ฅธ ORM ๊ณผ์˜ ์ฐจ์ด์  ์‹ค๋ฌด์—์„œ๋Š” join ์€ ์ž˜ ํ•˜์ง€์•Š๊ณ  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธ์–ด์™€์„œ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ํ…Œ์ด๋ธ”์„ ์—ญ์ •๊ทœํ™” ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์—ฌ๋Ÿฌํ…Œ์ด๋ธ”์„ join ํ•ด์„œ ๊ฐ€์ ธ์˜ค๋ฉด ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ์ˆ˜์žˆ์„๊ฑฐใ…ใ…Œ์€๋ฐ, ์ด๋Ÿฐ๊ฑด ์–ด๋–ป๊ฒŒ ๋Œ€๋น„ํ•˜๊ณ  ์ฒ˜๋ฆฌํ–ˆ๋Š”์ง€

ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ํ•ด๊ฒฐํ•˜๊ณ ์žํ–ˆ๋˜ ๋ฌธ์ œ์™€ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€,MVP ๋Š” ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์ ๊ธฐ. ๊ตฌํ˜„ํ•œ ํ”„๋กœ์ ํŠธ์˜ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ๊ณต๋ถ€ํ•˜๊ธฐ

This post is licensed under CC BY 4.0 by the author.