๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Personal_Study/CS

CS ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ - ์šด์˜์ฒด์ œ 1

by ํฌ์ŠคํŠธ์‰์ดํฌ 2023. 3. 2.

์šด์˜์ฒด์ œ

1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด

2. Deadlock (๋ฐ๋“œ๋ฝ)

3. ์„ธ๋งˆํฌ์–ด & ๋ฎคํ…์Šค

4. Context Switching

5. Proccess Scheduling

1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด

ํ”„๋กœ์„ธ์Šค (Process)

โœ” ์‹คํ–‰์„ ์œ„ํ•ด ์‹œ์Šคํ…œ ์ปค๋„์— ๋“ฑ๋ก๋œ ์ž‘์—…

  • ์ปค๋„์— ๋“ฑ๋ก๋˜๊ณ  ์ปค๋„์˜ ๊ด€๋ฆฌ ํ•˜์— ์žˆ๋Š” ์ž‘์—…
  • ๊ฐ์ข… ์ž์›๋“ค์„ ์š”์ฒญํ•˜๊ณ  ํ• ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ฒด
  • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๋ธ”๋ก (PCB)์„ ํ• ๋‹น ๋ฐ›์€ ๊ฐœ์ฒด
  • ๋Šฅ๋™์ ์ธ ๊ฐœ์ฒด(active entity): ์‹คํ–‰ ์ค‘์— ๊ฐ์ข… ์ž์›์„ ์š”๊ตฌ, ํ• ๋‹น, ๋ฐ˜๋‚ฉํ•˜๋ฉฐ ์ง„ํ–‰

โœ” ์ž์›์„ ํ• ๋‹น ๋ฐ›๊ณ , ๋ชฉํ‘œ๋ฅผ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ œ์–ด ํ•œ๋‹ค

โœ” PCB (Process Control Block)

  • ์ปค๋„ ๊ณต๊ฐ„ ๋‚ด์— ์กด์žฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„

ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ (state)

์Šค๋ ˆ๋“œ (Thread)

โœ” ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๋‹จ์œ„

  • ํ”„๋กœ์„ธ์Šค์˜ ์ œ์–ด ๋ถ€๋ถ„๋งŒ ๋ถ„๋ฆฌํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น ๋ฐ›์€ ์ž์›์„ ์ œ์–ดํ•œ๋‹ค

โœ” ๊ฐ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ์ž์‹ ์˜ ์ž‘์—… ์˜์—ญ(Stack)์„ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค

โœ” ์ž์›(Resource) ๊ณต์œ 

  • ํšจ์œจ์„ฑ / ๊ฒฝ์ œ์„ฑ ์ฆ๊ฐ€ (context switching x)

ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ

โœ” ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ ์ปค๋„์— ๋“ฑ๋ก ๋ผ ์ž์›์„ ํ• ๋‹น ๋ฐ›์€ ์ž‘์—…์ด๋ฉฐ, ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰๋‹จ์œ„๋กœ ํ• ๋‹น ๋ฐ›์€ ์ž์›์€ ์ œ์–ดํ•œ๋‹ค.

โœ” ๊ฐ๊ฐ ์ž์›์„ ํ• ๋‹น ๋ฐ›๋Š” ํ”„๋กœ์„ธ์Šค์™€ ๋‹ฌ๋ฆฌ ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์€ ๊ณต์œ ํ•˜๊ณ , ์ž์‹ ๋งŒ์˜ ์ž‘์—… ์˜์–ต์ธ stack์„ ํ• ๋‹น ๋ฐ›์•„์„œ ์ง€์—ญ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค

โœ” ๋˜ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๊ต์ฒด ์‹œ context switching์ด ๋ฐœ์ƒํ•ด overhead๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ˜๋ฉด, ์Šค๋ ˆ๋“œ๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋“ฑ์„ ํ†ตํ•ด ํ•ด๋‹น overhead๋ฅผ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.(์Šค๋ ˆ๋“œ ์ž์ฒด๋„ ์ปค๋„ ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ context switching ์กด์žฌ)

2. Deadlock (๋ฐ๋“œ๋ฝ)

Deadlock์˜ ๊ฐœ๋…

โœ” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒฝ์šฐ

โœ” P1์€ P2๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” R1์„, P2๋Š” P1์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” R2๋ฅผ ์š”์ฒญํ•˜๊ณ  ์žˆ๋‹ค -> ์„œ๋กœ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์œผ๋ฏ€๋กœ deadlock!

starvation vs deadlock

โœ” starvation -> ready state

โœ” deadlock -> asleep state

โœ” starvation์€ '์šด์ด ์—†์–ด์„œ' ํ”„๋กœ์„ธ์„œ๋ฅผ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•œ ์ƒํƒœ์ผ ๋ฟ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค!!

Deadlock ๋ฐœ์ƒ์˜ ์กฐ๊ฑด

โœ” ์ž์›์˜ ํŠน์„ฑ

  • Exclusive use of resources
  • Non - preemptible resources

โœ” ํ”„๋กœ์„ธ์Šค์˜ ํŠน์„ฑ

  • Hold and Wait(Partial allocation)
    • ์ž์›์„ ํ•˜๋‚˜ holdํ•˜๊ณ  ๋‹ค๋ฅธ ์ž์› ์š”์ฒญ
  • Circular wait

Deadlock Prevention

โœ” 4๊ฐ€์ง€ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜ ์ œ๊ฑฐ -> ๋น„ํ˜„์‹ค์ !

Deadlock Avoidance

โœ” ์‹œ์Šคํ…œ์„ ํ•ญ์ƒ safe state(๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ)๋กœ ์œ ์ง€

  • Dijkstra's Algorithm(Banker's algorithm)
    • ํ•œ ์ข…๋ฅ˜์˜ ์ž์›
  • Habermann's Algorithm
    • ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ž์›

Deadlock Detection & Recovery

โœ” Deadlock ๋ฐœ์ƒ ๋ฐฉ์ง€ x

โœ” ๋ฐœ์ƒ ํ™•์ธ ํ›„ ํšŒ๋ณต

โœ” Detection: Graph Reduction

  • RAG(Resource Allocation Graph)

โœ” Recovery

  • Process Tremination
  • Resource Preemption

3. ์„ธ๋งˆํฌ์–ด & ๋ฎคํ…์Šค

Critical Section

โœ” shared data (๊ณต์œ  ๋ฐ์ดํ„ฐ) or Critical data

  • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ

โœ” Critical section (์ž„๊ณ„ ์˜์—ญ)

  • ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ ์˜์—ญ (code segment)

โœ” ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ณต์œ  ๋ฐ์ดํ„ฐ์— ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค -> ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒŒ Mutex(๋ฎคํ…์Šค) / Semaphore(์„ธ๋งˆํฌ์–ด)

Mutex (Mutual Exclusion)

โœ” ์ž„๊ณ„๊ตฌ์—ญ์„ ๊ฐ€์ง„ ์Šค๋ ˆ๋“œ๋“ค์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ณ  ๊ฐ๊ฐ ๋‹จ๋…์œผ๋กœ ์‹คํ–‰(์ƒํ˜ธ๋ฐฐ์ œ Mutual Exclution)๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ 

โœ” Dekker's Algorithm

  • flag / turn ํ™œ์šฉ

โœ” Petersen's Algorithm

  • Dekker's algorithm์˜ ๊ฐ„๋‹จํ•œ ๋ฒ„์ „

โœ” Spinlock

  • Busy waiting ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๋ฉด์„œ ์ž„๊ณ„์˜์—ญ ์ง„์ž… ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๊ฒ€์‚ฌ

Semaphore

โœ” ํ”„๋กœ์„ธ์Šค n๊ฐœ์˜ ์ƒํ˜ธ๋ฐฐ์ œ ๋ฌธ์ œ (counting semaphore)

โœ” Signaling ๋ฐฉ์‹

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž„๊ณ„์˜์—ญ์„ ๋น ์ ธ ๋‚˜์˜ค๋ฉด์„œ ready queue์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ wake up

Mutex vs Semaphore

โœ” ์„ธ๋งˆํฌ์–ด๋Š” ๋ฎคํ…์Šค(์ƒํ˜ธ๋ฐฐ์ œ)๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋‹จ์œ„์˜ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜

โœ” ์„ธ๋งˆํฌ์–ด๊ฐ€ ๋ฎคํ…์Šค๊ฐ€ ๊ตฌ๋ถ„๋˜๋Š” ์ ์€ ๋™๊ธฐํ™” ๋Œ€์ƒ์˜ ๊ฐœ์ˆ˜, lock/signaling ๋ฐฉ์‹์˜ ์ฐจ์ด

4. Context Switching

โœ” ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ context๋ฅผ ์ €์žฅํ•˜๊ณ , ์•ž์œผ๋กœ ์‹คํ–‰ ํ•  ํ”„๋กœ์„ธ์Šค์˜ context๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ์ผ

  • ์ปค๋„์˜ ๊ฐœ์ž…

โœ” Context: ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์˜ ์ง‘ํ•ฉ

โœ” Context saving: ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ Register context๋ฅผ memory์— ์ €์žฅํ•˜๋Š” ์ž‘์—…

โœ” Context restoring: Register context๋ฅผ ํ”„๋กœ์„ธ์Šค๋กœ ๋ณต๊ตฌํ•˜๋Š” ์ž‘์—…

Context switching overhead

โœ” Context switching์— ์†Œ์š”๋˜๋Š” ๋น„์šฉ

  • OS๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค
  • OS์˜ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ์ค€๋‹ค

โœ” ๋ถˆํ•„์š”ํ•œ context switching์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ค‘์š”!

5. Proccess Scheduling

โœ” ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(์‹œ์Šคํ…œ ๋‚ด์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌ) ํ™˜๊ฒฝ์—์„œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ž์›์„ ํ• ๋‹นํ•  ๊ฒƒ์ธ๊ฐ€!

โœ” ์‘๋‹ต์‹œ๊ฐ„, ์ž‘์—… ์ฒ˜๋ฆฌ๋Ÿ‰, ์ž‘์—… ํ™œ์šฉ๋„ ํ–ฅ์ƒ ๋ชฉ์ 

โœ” Preemptive Scheduling (์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง)

  • ํƒ€์˜์— ์˜ํ•ด ์ž์›์„ ๋นผ์•—๊ธธ ์ˆ˜ ์žˆ์Œ

โœ” Non - Preemptive Scheduling (๋น„์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง)

  • ํ• ๋‹น ๋ฐ›์€ ์ž์›์„ ์Šค์Šค๋กœ ๋ฐ˜๋‚ฉํ•  ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉ

FCFS (First Come First Service)

โœ” Non-preemptive scheduling

โœ” ์Šค์ผ€์ค„๋ง ๊ธฐ์ค€

  • ๋„์ฐฉ์‹œ๊ฐ„ (ready queue ๊ธฐ์ค€)
  • ๋จผ์ € ๋„์ฐฉํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌ

โœ” ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (high resource utilization): scheduling overhead๊ฐ€ ์ ์Œ

โœ” ๋‹จ์ 

  • Convouy effect: ํ•˜๋‚˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ธด ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ธด ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ๊ฐ–๊ฒŒ ๋˜๋Š” ํ˜„์ƒ(๋Œ€๊ธฐ์‹œ๊ฐ„ >> ์‹คํ–‰์‹œ๊ฐ„)
  • ๊ธด ํ‰๊ท  ์‘๋‹ต์‹œ๊ฐ„(response time)

RR (Round -Robin)

โœ” Preemptive scheduling

โœ” ์Šค์ผ€์ค„๋ง ๊ธฐ์ค€

  • ๋„์ฐฉ์‹œ๊ฐ„ (ready queue ๊ธฐ์ค€)
  • ๋จผ์ € ๋„์ฐฉํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌ

โœ” ์ž์› ์‚ฌ์šฉ ์ œํ•œ ์‹œ๊ฐ„(time quantum)

  • ํ”„๋กœ์„ธ์Šค๋Š” ํ• ๋‹น๋œ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ž์› ๋ฐ˜๋‚ฉ (time-runout)
  • ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ์ž์› ๋…์  ๋ฐฉ์ง€
  • context switch overhead๊ฐ€ ํฌ๋‹ค

โœ” Time quantum์ด ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ๊ฒฐ์ •ํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ

  • very large(infinite) -> FCFS
  • very small -> process sharing
    • ์ฒด๊ฐ ํ”„๋กœ์„ธ์„œ ์†๋„ = ์‹ค์ œ ํ”„๋กœ์„ธ์„œ ์„ฑ๋Šฅ์˜ 1/n
    • high context switch overhead

SPN (Shortest-Process-Next)

โœ” Non-preemptive scheduling

โœ” ์Šค์ผ€์ค„๋ง ๊ธฐ์ค€

  • ์‹คํ–‰์‹œ๊ฐ„ (burst time)
  • busrt time์ด ๊ฐ€์žฅ ์ž‘์€ ํ”„๋กœ์„ธ์Šค ๋จผ์ € ์ฒ˜๋ฆฌ
  • SJF(Shortest Job First) scheduling

โœ” ์žฅ์ 

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

โœ” ๋‹จ์ 

  • Starvation(๋ฌดํ•œ ๋Œ€๊ธฐ)
    • BT๊ฐ€ ๊ธด ํ”„๋กœ์„ธ์Šค๋Š” ์ž์›์„ ํ• ๋‹น ๋ฐ›์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ
    • Aging ๋“ฑ์œผ๋กœ ํ•ด๊ฒฐ (HRRN)
  • ์‹คํ–‰์‹œ๊ฐ„ ์˜ˆ์ธก ๋ถˆ๊ฐ€

SRTN (Shortest Remaining Time Next)

โœ” Preemptive scheduling

โœ” SPN์˜ ๋ณ€ํ˜•

  • ์ž”์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋” ์ ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ready ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ์„ ์ 

โœ” SPN์˜ ์žฅ์  ๊ทน๋Œ€ํ™”

โœ” ๊ตฌํ˜„ ๋ฐ ์‚ฌ์šฉ์ด ๋น„ํ˜„์‹ค์  (์‹คํ–‰ ์‹œ๊ฐ„ ์˜ˆ์ธก ๋ฐ ์ƒํƒœ ์ถ”์ )

HRRN (High-Response-Ratio-Next)

โœ” SPN์˜ ๋ณ€ํ˜•

  • SPN + Aging concepts, Non-preemptive

โœ” Aging

  • ํ”„๋กœ์„ธ์Šค ๋Œ€๊ธฐ ์‹œ๊ฐ„(WT)๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๊ธฐํšŒ ์ œ๊ณต

โœ” ์Šค์ผ€์ค„๋ง ๊ธฐ์ค€

  • Response ratio๊ฐ€ ๋†’์€ ํ”„๋กœ์„ธ์Šค ์šฐ์„ 

โœ” Response ratio = (WT + BT) / BT

  • SPN์˜ ์žฅ์  + Starvation ๋ฐฉ์ง€
  • ์‹คํ–‰ ์‹œ๊ฐ„ ์˜ˆ์ธก ๊ธฐ๋ฒ• ํ•„์š” (overhead)

MLQ (Multi Level Queue)

โœ” ์ž‘์—…(or ์šฐ์„ ์ˆœ์œ„)๋ณ„ ๋ณ„๋„์˜ ready queue๋ฅผ ๊ฐ€์ง

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

โœ” queue ์‚ฌ์ด์—๋Š” ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฐ˜์˜ ์Šค์ผ€์ค„๋ง ์‚ฌ์šฉ

MFQ (Multi-level Feedback Queue)

โœ” ํ”„๋กœ์„ธ์Šค์˜ queue๊ฐ„ ์ด๋™์ด ํ—ˆ์šฉ๋œ MLQ

โœ” Feedback์„ ํ†ตํ•ด ์šฐ์„ ์ˆœ์œ„ ์กฐ์ •

  • ํ˜„์žฌ๊นŒ์ง€์˜ ํ”„๋กœ์„ธ์„œ ์‚ฌ์šฉ ์ •๋ณด(ํŒจํ„ด)์„ ํ™œ์šฉ

โœ” ๋ณ€ํ˜•

  • ๊ฐ ์ค€๋น„ ํ๋งˆ๋‹ค ์‹œ๊ฐ„ ํ• ๋‹น๋Ÿ‰ ๋‹ค๋ฅด๊ฒŒ ๋ฐฐ์ •
  • ์ž…์ถœ๋ ฅ ์œ„์ฃผ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ƒ์œ„ ๋‹จ๊ณ„ ํ๋กœ ์ด๋™, ์šฐ์„ ์ˆœ์œ„ ๋†’์ž„
  • ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์ง€์ •๋œ ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•œ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ƒ์œ„ํ๋กœ ์ด๋™
    • ์—์ด์ง•(Aging) ๊ธฐ๋ฒ•

๋Œ“๊ธ€