๐Ÿ“‘ ๊ฐœ์ธ ํ™œ๋™ ๋ชจ์Œ์ง‘ ๐Ÿ“‘/๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป `25 - `26 ๋™๊ณ„ ๋ชจ๊ฐ์ฝ” ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[`25 - `26 ๋™๊ณ„ ๋ชจ๊ฐ์ฝ”] "่ฌ€๊ฐ์ฝ”" 4ํšŒ์ฐจ ๊ฐœ์ธ ๋ฆฌ๋ทฐ

lrycro_ 2026. 1. 29. 18:01

[ # 4ํšŒ์ฐจ ์ •๋ณด ]

  • 2026๋…„ 1์›” 29์ผ 15:00 - 18:00
  • Discord ์˜์ƒ ํ†ตํ™”๋กœ ์˜จ๋ผ์ธ ์Šคํ„ฐ๋”” ํšŒ์˜ ์ง„ํ–‰

[ # 4ํšŒ์ฐจ ๊ฐœ์ธ ๋ชฉํ‘œ ]

4๊ณผ๋ชฉ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ ํ•™์Šต


[ # 4ํšŒ์ฐจ ๊ฐœ์ธ ํ™œ๋™ ๋‚ด์šฉ ]

4๊ณผ๋ชฉ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ ํ•™์Šต

4๊ณผ๋ชฉ์—์„œ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ๋ฌธ์ œ ํ’€์ด ์œ„์ฃผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.

 

1. ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

[ ์˜ค๋‹ต ์ •๋ฆฌ ]

1. ๋‹ค์Œ C์–ธ์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ, ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”? (25๋…„ 2์›”, 22๋…„ 3์›”) 

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[]) {
    int arr[2][3] = { 1, 2, 3, 4, 5, 6 };
    int (*p)[3] = NULL;
    p = arr;
    printf("%d , ", *(p[0] + 1) + *(p[1] + 2));
    printf("%d", *(*(p + 1) + 0) + *(*(p + 1) + 1));
    return 0;
}

 

โ‘  7, 5    โ‘ก 8, 5    โ‘ข 8, 9    โ‘ฃ 7, 9

๋”๋ณด๊ธฐ

์ •๋‹ต: 3๋ฒˆ

์˜ค๋‹ต ์‚ฌ์œ : 2์ฐจ์› ๋ฐฐ์—ด ๊ฐœ๋… ๋ถ€์กฑ

 

2. ๋‹ค์Œ Python ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ, ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”? (25๋…„ 2์›”, 22๋…„ 3์›”) 

a = ["๋Œ€", "ํ•œ", "๋ฏผ", "๊ตญ"]
for i in a:
    print(i)
โ‘ 
๋Œ€ํ•œ๋ฏผ๊ตญ
โ‘ก
๋Œ€
ํ•œ
๋ฏผ
๊ตญ
โ‘ข
๋Œ€
โ‘ฃ
๋Œ€๋Œ€๋Œ€๋Œ€
๋”๋ณด๊ธฐ

์ •๋‹ต: 2๋ฒˆ

์˜ค๋‹ต ์‚ฌ์œ : ์ถœ๋ ฅ ๋ฐฉ์‹์ด ์ž๋™ ์ค„๋ฐ”๊ฟˆ์ด๋ผ๋Š” ์ ์„ ํ—ท๊ฐˆ๋ ธ์Œ 

 

2. ๊ฐ์ฒด์ง€ํ–ฅ

 

  • ์บก์Аํ™”: ์ •๋ณด ์€๋‹‰
  • ์ƒ์†: ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ
  • ๋‹คํ˜•์„ฑ: ๋™์ผ ์ธํ„ฐํŽ˜์ด์Šค, ๋‹ค์–‘ํ•œ ๊ตฌํ˜„
  • ์ถ”์ƒํ™”: ํ•ต์‹ฌ ๊ธฐ๋Šฅ ํ‘œํ˜„

+ ์˜ค๋ฒ„๋กœ๋”ฉ vs ์˜ค๋ฒ„๋ผ์ด๋”ฉ

 

 

3. ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ

- Fetch: ๋ฐ˜์ž… ์ „๋žต์€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ๋ณด๊ด€์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ธ์ œ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ ์ ์žฌํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ „๋žต์ด๋‹ค.

- Placement: ๋ฐฐ์น˜ ์ „๋žต์€ ์ƒˆ๋กœ ๋ฐ˜์ž…๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ์–ด๋””์— ์œ„์น˜์‹œํ‚ฌ ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ „๋žต์œผ๋กœ, First Fit, Best Fit, Worst Fit์ด ์žˆ๋‹ค.

- Replacement: ๊ต์ฒด ์ „๋žต์€ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ๋ชจ๋“  ์˜์—ญ์ด ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ธ ์ƒํƒœ์—์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ๋ฐฐ์น˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ์ด๋ฏธ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์˜์—ญ ์ค‘์—์„œ ์–ด๋А ์˜์—ญ์„ ๊ต์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ „๋žต์ด๋‹ค.

 

4. ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

1. OPT (Optimal replacement, ์ตœ์  ๊ต์ฒด)

  • ์•ž์œผ๋กœ ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ์‚ฌ์šฉ๋  ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
  • ์ด๋ก ์ ์œผ๋กœ ํŽ˜์ด์ง€ ๋ถ€์žฌ๊ฐ€ ๊ฐ€์žฅ ์ ์Œ
  • ๋ฏธ๋ž˜ ์ฐธ์กฐ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋ฏ€๋กœ ์‹ค์ œ ๊ตฌํ˜„์€ ๋ถˆ๊ฐ€๋Šฅ
    → ์„ฑ๋Šฅ ๋น„๊ต ๊ธฐ์ค€์šฉ

2. FIFO (First In First Out)

  • ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
  • ๊ตฌํ˜„์ด ๋‹จ์ˆœ (ํ ์‚ฌ์šฉ)
  • ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
  • Belady์˜ ์ด์ƒ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

3. LRU (Least Recently Used)

  • ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
  • ์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ ๋ฐ˜์˜
  • ๊ตฌํ˜„ ๋น„์šฉ์ด ๋น„๊ต์  ํผ

4. LFU (Least Frequently Used)

  • ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
  • ๋นˆ๋„ ๊ธฐ์ค€ ํŒ๋‹จ
  • ๊ณผ๊ฑฐ ์‚ฌ์šฉ ์ด๋ ฅ์ด ๊ณ„์† ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Œ

5. NUR (Not Used Recently)

  • ์ตœ๊ทผ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
  • ์ฐธ์กฐ ๋น„ํŠธ(R), ์ˆ˜์ • ๋น„ํŠธ(M) ์‚ฌ์šฉ
  • (0,0) → (0,1) → (1,0) → (1,1) ์ˆœ์œผ๋กœ ๊ต์ฒด ์šฐ์„ ์ˆœ์œ„

6. SCR (Second Chance Replacement)

  • FIFO ๊ฐœ์„  ๋ฐฉ์‹
  • ์ฐธ์กฐ ๋น„ํŠธ๊ฐ€ 1์ด๋ฉด ํ•œ ๋ฒˆ ๋” ๊ธฐํšŒ ๋ถ€์—ฌ
  • 0์ด๋ฉด ๊ต์ฒด
  • ์ˆœํ™˜ ํ ๊ตฌ์กฐ ์‚ฌ์šฉ

LFU์™€ NUR์€ ๋น„์Šทํ•ด๋ณด์ด์ง€๋งŒ LFU๋Š” ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์ผ๋Š”๊ฐ€(๋นˆ๋„), NUR์€ ์ตœ๊ทผ์— ์ผ๋Š”๊ฐ€(์ตœ๊ทผ์„ฑ)์ด ํŒ๋‹จ ๊ธฐ์ค€์ด๋ผ๋Š” ์ ์ด ํ•ต์‹ฌ์ด๋‹ค.