ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

Operating System

์šด์˜์ฒด์ œ๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค. ๋˜ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์Šคํ…œ ์ž์›์— ์ ‘๊ทผํ•˜๊ณ ์ž ํ•  ๋•Œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•œ๋‹ค.

 

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

ํ”„๋กœ์„ธ์Šค : ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์žˆ์œผ๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•œ๋‹ค.

์Šค๋ ˆ๋“œ : ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ณต์œ ํ•˜๋ฉฐ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์ž‘์—… ๋‹จ์œ„์ด๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์œผ๋ฉดCode, Data, Heap, Stack์œผ๋กœ ๊ตฌ๋ถ„ ๋œ๋‹ค.

  • Code : ํ•จ์ˆ˜, ์ œ์–ด๋ฌธ, ์ƒ์ˆ˜ ๋“ฑ์„ ํ• ๋‹นํ•˜๋Š” ์˜์—ญ.

  • Data : Global Variable, Static Variable, Array๊ฐ€ ํ• ๋‹น๋˜๋Š” ์˜์—ญ.

  • Heap : ๋™์  ํ• ๋‹น๋œ ๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋˜๋Š” ์˜์—ญ.

  • Stack : Local Variable, Parameter, Retrun value์™€ ๊ฐ™์€ ์ž„์‹œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ด ํ• ๋‹น๋จ

์ด์™€ ๋‹ฌ๋ฆฌ ์Šค๋ ˆ๋“œ๋Š” Stack๋งŒ ํ• ๋‹น๋ฐ›๊ณ , ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ ํ•œ๋‹ค.


 

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๋ฐฉ์‹์€ ์ฐจ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค : ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ `IPC(Inter Process Communication)`๋ฅผ ํ†ตํ•ด, ์ž‘์—… ๊ณผ์ •์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ : ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

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

ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ `PCB(Process Control Block)`์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ ์ค‘์ธ CPU๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ˜„์žฌ PCB์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ , ๋‹ค์Œ์— ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ `Context Switching`์ด ํ•„์š”ํ•˜๋‹ค.

 

์ด์™€ ๋‹ฌ๋ฆฌ ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ Stack์„ ์ œ์™ธํ•œ ํ”„๋กœ์„ธ์Šค์˜ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์ ‘๊ทผ์„ ํ•˜๊ธฐ ์œ„ํ•ด PCB ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ผ๋ จ์˜ ๊ณผ์ •(Context Switching)์ด ํ•„์š” ์—†๋‹ค.

 

๋”ฐ๋ผ์„œ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ ๊ณต์œ  ์ž์›์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‹ค์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” `Race Condition`์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž„๊ณ„ ๊ตฌ์—ญ(Critical Section)์„ ์ง€์ •ํ•˜์—ฌ, ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

IPC

์•ž์„œ ๋‹ค๋ฃฌ ๋‚ด์šฉ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ํ”„๋กœ์„ธ์Šค๋Š” ์Šค๋ ˆ๋“œ์™€ ๋‹ฌ๋ฆฌ ์ƒํ˜ธ ๋…๋ฆฝ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ†ต์‹  ๊ณผ์ •์ด ํ•„์š”ํ•˜๋ฉฐ, ์ด๋ฅผ `IPC(Inter Process Communication)`๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

  • Anonymous pipe

    • ๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ด€๊ณ„์ฒ˜๋Ÿผ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ช…ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ์“ฐ๊ธฐ, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฐ˜์ด์ค‘ ํ†ต์‹ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

    • ๋งŒ์•ฝ ๋‘ ํ”„๋กœ์„ธ์Šค ๋ชจ๋‘ ์ฝ๊ธฐ/์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ ค๋ฉด 2๊ฐœ์˜ ํŒŒ์ดํ”„๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

  • Named pipe

    • Anonymous piple์™€ ๋‹ฌ๋ฆฌ, ๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ด€๊ณ„๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ํ†ต์‹ ์„ ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ ๋‚˜๋จธ์ง€๋Š” ๋™์ผํ•˜๋‹ค.

  • Message Queue

    • ์ž…์ถœ๋ ฅ ๋ฐฉ์‹์€ pipe์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋ผ๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

  • Shared Memory

    • ์•ž์˜ ๋ฐฉ์‹๋“ค๊ณผ ๊ฐ™์ด, ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ํ”„๋กœ์„ธ์Šค ๋ณ„ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ง€์ •ํ•˜์—ฌ, ํ•ด๋‹น ์˜์—ญ์„ ์•ก์„ธ์Šคํ•จ์œผ๋กœ์จ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

    • ์Šค๋ ˆ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Critical Section์— ๋Œ€ํ•œ ์˜ˆ์™ธ๋“ค์„ ์ฒ˜๋ฆฌํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

  • Memory map

    • ๊ณต์œ ํ•˜ ๊ณ ์ž๋Š” ๋งค์ฒด๊ฐ€ ํŒŒ์ผ์ผ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • Socket

    • ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„๊ฐ€ ์†Œ์ผ“์„ ํ†ตํ•ด์„œ ํ†ต์‹ ํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

    • ์›๊ฒฉ์—์„œ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

DeadLock

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ๋˜๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ(Shared memory)์™€ ๊ฐ™์ด ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์žˆ์–ด, ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ๋“œ๋ฝ์€ ํŠน์ • ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด, ๋ชจ๋‘ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์–ด ์ž‘์—…์ด ์ง„ํ–‰๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์„ ๋งํ•œ๋‹ค.

 

  • Mutual exclusion

    • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ๊ณต์œ  ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Hold and Wait

    • ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์ž์›์„ ์ ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉด์„œ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋˜์–ด ์žˆ๋Š” ์ž์›์„ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค.

  • Non-Preemptive

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

  • Circular wait

    • ํ”„๋กœ์„ธ์Šค๋“ค ์ค‘์—์„œ ์ˆœํ™˜ ํ˜•ํƒœ๋กœ ์ž์›์„ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

์œ„์˜ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค๋ฉด, ํ”„๋กœ์„ธ์Šค๋“ค์€ ๋ฐ๋“œ๋ฝ์— ๋น ์ง€๊ฒŒ ๋œ๋‹ค. ๋ฐ๋“œ๋ฝ์„ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ๋Š” Prevention, Avoidance, Detection, Recovery์™€ ๊ฐ™์€ ๋ฐฉ์‹์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Prevention

    • ๋ฐ๋“œ๋ฝ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” 4๊ฐ€์ง€์˜ ์กฐ๊ฑด์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

      • ๋ชจ๋“  ์กฐ๊ฑด์„ ๋ถ€์ •ํ•จ์œผ๋กœ์จ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Avoidance

    • ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์ด๋ฅผ ํšŒํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

    • Banker's Algorithm

      • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์› ํ• ๋‹น์„ ์š”๊ตฌํ•  ๋•Œ, ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์•ˆ์ „์ƒํƒœ์ธ์ง€ ํ™•์ธํ•œ ํ›„ ์ž์›์„ ํ• ๋‹นํ•œ๋‹ค.

      • ์•ˆ์ „์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ์•ˆ์ „ ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜์˜€๋‹ค๊ฐ€ ์ž์›์„ ํ• ๋‹นํ•˜์—ฌ ๋ฐ๋“œ๋ฝ์„ ํšŒํ”ผํ•œ๋‹ค.

  • Detection

    • ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํƒ์ง€ํ•œ๋‹ค.

    • ์ž์› ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด, ํƒ์ง€ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ๋‹ค.

  • Recovery

    • ๋ฐ๋“œ๋ฝ์„ ๋ฐœ์ƒ์‹œํ‚จ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜, ํ• ๋‹น๋œ ์ž์›์„ ์„ ์ ํ•˜์—ฌ ๋ณต๊ตฌ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

    • ๋ฐ๋“œ๋ฝ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜, ๋ฐ๋“œ๋ฝ์ด ํ•ด์†Œ๋  ๋•Œ๊นŒ์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

    • ์ž์› ์„ ์ ์„ ํ†ตํ•œ ๋ณต๊ตฌ ๋ฐฉ๋ฒ•์€ ๊ณต์œ  ์ž์›์„ ์„ ์ ํ•˜์—ฌ, ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์žฌํ• ๋‹นํ•œ๋‹ค.


CPU Scheduling

 ํŠน์ • ํ”„๋กœ์„ธ์Šค์—๋งŒ CPU๊ฐ€ ํ• ๋‹น๋˜์ง€ ์•Š๊ณ , ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ CPU๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค. ์ ์ ˆํ•œ CPU ์Šค์ผ€์ค„๋ง์€ ์Šค์ผ€์ค„๋ง์„ ์ž‘์—…์„ ์œ„ํ•œ CPU ์‚ฌ์šฉ๋ฅ ์„ ์ค„์—ฌ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” CPU ์‚ฌ์šฉ๋ฅ ์„ ๋Š˜์ด๊ณ  ๊ธฐ์•„ ํ˜„์ƒ์„ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ, CPU ์Šค์ผ€์ค„๋ง์˜ ํšจ์œจ์„ฑ์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” `Response Time`: ์ž‘์—…์ด ์‹คํ–‰๋˜๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„., `Turnaround Time`: ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋Š”๋ฐ ๊นŒ์ง€, ์‹คํ–‰ ์‹œ๊ฐ„, ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ํ•ฉ์‚ฐํ•œ ์‹œ๊ฐ„. ์„ ํ†ตํ•ด ํŒ๋‹จํ•œ๋‹ค.

 

Preemptive / Non-preemptive

 CPU ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ํ•„์š”์— ๋”ฐ๋ผ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ๋ฐ•ํƒˆํ•˜๋Š” ์„ ์ (Preemptive) ๋ฐฉ์‹์ด๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ํŠน์ • ํ”„๋กœ๋ ˆ์Šค๊ฐ€ ์ž์ฒด์ ์œผ๋กœ CPU ์ž์›์„ ๋ฐ˜๋‚ฉํ•˜์—ฌ์•ผ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์„ ์ (Non-preemptive) ๋ฐฉ์‹์ด๋‹ค.

 

Preemptive Scheduling

  • FCFS(First Come First Served)

    • ํ์— ๋„์ฐฉํ•œ ์ˆœ์„œ๋Œ€๋กœ CPU๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ์•ž์˜ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ž‘์—…์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ๊ธธ๋‹ค๋ฉด, ๋’ค์˜ ์ž‘์—…๋“ค์˜ ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค.

  • SJF (Shortest Job First)

    • ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ์ž‘์—…๋ถ€ํ„ฐ ์šฐ์„ ์ ์œผ๋กœ CPU๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

    • FSFS ๋ณด๋‹ค๋Š” ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ์งง์ง€๋งŒ, ํ˜„์‹ค์ ์œผ๋กœ ํ•ด๋‹น ๋ฐฉ์‹์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

      • ์–ด๋–ค ์ž‘์—…์ด ์งง๊ฒŒ ๋๋‚ ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

         

Non-preemptive Scheduling

  • Priority

    • ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ, ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ฒƒ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋Š” Starvation์— ๋น ์งˆ ์ˆ˜ ์žˆ๋‹ค.

      • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Wating์ด ๊ธธ์–ด์ง€๋ฉด, ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” Aging์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • RR (Round Robin)

    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•œ ์ž‘์—…์‹œ๊ฐ„(Time Slice)์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ํ• ๋‹น ์‹œ๊ฐ„์ด ํฌ๋ฉด FCFS์™€ ๊ฐ™์œผ๋ฉฐ, ํ• ๋‹น ์‹œ๊ฐ„์ด ์งง๋‹ค๋ฉด ๋นˆ๋ฒˆํ•œ Context Switching์ด ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

  • Multi-level Queue

    • ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‹ค๋ฅธ ํ์— ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ํ๋“ค์€ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ Time Slice๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์„์ˆ˜๋ก ํ• ๋‹น๋˜๋Š” Time Slice์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค.


 

Paging

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”(์™ธ๋ถ€ ๋‹จํŽธํ™”)๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ๋ฐ˜๋ณต๋  ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์šฉ์˜ ํšจ์œจ์„ฑ์„ ์ €ํ•ดํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ , ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž‘์€ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ  ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์— ํ• ๋‹นํ•จ์œผ๋กœ์จ, ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์„ ํŽ˜์ด์ง•(Paging)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

Address Translation

ํ”„๋กœ์„ธ์Šค๋Š” Physical memory์—์„œ๋Š” ๋ถ„๋ฆฌ๋œ ๊ณต๊ฐ„์— ํ• ๋‹น๋˜์ง€๋งŒ, CPU๋Š” ์—ฐ์†๋œ ๊ณต๊ฐ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋Š” MMU(Memory Management Unit)์„ ํ†ตํ•ด ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋‚˜๋ˆ„์—ˆ๊ธฐ์— ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 ์ฆ‰ ํ”„๋กœ์„ธ์Šค๋Š” ์—ฐ์†๋œ ๋…ผ๋ฆฌ ์ฃผ์†Œ(Logical Address)๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ๋ถ„๋ฆฌ๋œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ(Physical Address)๋ฅผ ๊ฐ€์ง€๋ฉฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ, Memory์— ์ ‘๊ทผํ•œ๋‹ค.

 

Page Table

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” CPU์— ์ƒ์ฃผ(์ปดํ“จํ„ฐ ๋ถ€ํŒ… ํ›„ ๊ณ„์†ํ•ด์„œ ์œ ์ง€ํ•จ.) ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. CPU์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•  ๊ฒฝ์šฐ ๋น ๋ฅธ ์†๋„๋กœ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•œ์ •๋œ CPU ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ธํ•ด ์ด์™€ ๊ฐ™์€ ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ด์™€ ๋‹ฌ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•  ๊ฒฝ์šฐ, CPU์™€ ๋‹ฌ๋ฆฌ ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํ˜„์žฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•œ๋‹ค.

 

TLB

CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์— `TLB(Translation Look-aside Buffer)`๋ฅผ ๋‘์–ด, ๋ฉ”๋ชจ๋ฆฌ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•˜๋”๋ผ๋„ ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค. `EMAT(Effective Memory Access Time)`์„ ๊ณ„์‚ฐํ•˜์—ฌ TLB์˜ ํšจ์œจ์„ฑ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

Segmentation

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


 

Virtual memory

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

 

Page Fault

ํ”„๋กœ์„ธ์Šค์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜์˜€์„ ๋•Œ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ invalid ์ƒํƒœ(๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์ง€ ์•Š์€ ์ƒํƒœ)๋ผ๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋ถˆ๋Ÿฌ๋“ค์ด๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ์ด์™€ ๊ฐ™์ด ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ invalid์ธ ๊ฒฝ์šฐ๋ฅผ Page Fault๋ผ๊ณ  ํ•œ๋‹ค.

 

Page Fault๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋™์ž‘ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ valid-bit๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

  2. valid-bit๊ฐ€ 0์ด๋ผ๋ฉด trap์„ ํ†ตํ•ด ์ปค๋„๋กœ ์ง„์ž…ํ•œ๋‹ค.

  3. ์ปค๋„์€ ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด์กฐ ์ €์žฅ์žฅ์น˜์—์„œ ํƒ์ƒ‰ํ•œ๋‹ค.

  4. ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

  5. ํ• ๋‹น๋œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ๊ฐฑ์‹ ํ•œ๋‹ค.

  6. Page Fault๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

     

Page Replacement

ํ˜„์žฌ ํ• ๋‹น๋œ ํŽ˜์ด์ง€ ์ค‘์— victim page(๊ต์ฒดํ•  ๋Œ€์ƒ)์„ ์„ ์ •ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • FIFO

    • ๊ฐ€์žฅ ๋จผ์ € ํ• ๋‹น๋œ ํŽ˜์ด์ง€๋ฅผ ํ• ๋‹น ํ•ด์ œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ์ดˆ๊ธฐํ™” ๊ณผ์ •์˜ ์ฝ”๋“œ๋Š” ๋” ์ด์ƒ ๋ถˆํ•„์š”ํ•  ๊ฒƒ์ด๋ผ๋Š” ์•„์ด๋””์–ด์—์„œ ์„ค๊ณ„๋˜์—ˆ๋‹ค.

    • ๋‹จ์ˆœํžˆ ํ• ๋‹น๋œ ์ˆœ์„œ์— ๋”ฐ๋ผ victim์œผ๋กœ ์„ ์ •ํ•˜๊ฒŒ ๋˜๋ฉด ์˜คํžˆ๋ ค ํŽ˜์ด์ง€ ๊ต์ฒด๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•œ๋‹ค.

    • Belady's Anomaly

      • ํŽ˜์ด์ง€๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋Š˜๋ ธ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , FIFO๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•  ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ page fault ๋นˆ๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ํ˜„์ƒ์„ ๋งํ•œ๋‹ค.

  • OPT

    • ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด ๋Œ€์ƒ์œผ๋กœ ์„ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ํ–ฅํ›„์— ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ์— ์‹ค์ œ๋กœ๋Š” ๊ตฌํ˜„์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์ด๋‹ค.

  • LRU (Least Recently Used)

    • ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๋ฉด, ํ–ฅํ›„์—๋„ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์ตœ๊ทผ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด ๋Œ€์ƒ์œผ๋กœ ์„ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ๊ต์ฒด ๋ฐฉ์‹ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.


 

Disk Scheduling

  • FCFS (First-Come First-Served)

    • ๊ฐ€์žฅ ๋จผ์ € ์š”์ฒญ๋œ ์ž‘์—…์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹.

  • SSTF (Shortest Seek Time First)

    • ์š”์ฒญ๋œ ์ž‘์—… ์ค‘ ํ—ค๋“œ์˜ ์›€์ง์ž„์ด ๊ฐ€์žฅ ์งง๊ฒŒ ์›€์ง์ด๋Š” ์ž‘์—…๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

  • SCAN

    • ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์ฒ˜๋Ÿผ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰์„ ํ•˜๊ณ , ๋‹ค์‹œ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰์„ ํ•˜๋Š” ๋ฐฉ์‹

  • C-SCAN

    • SCAN ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์ฆ‰์‹œ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋ฐ˜๋Œ€๋กœ ์˜ฎ๊ฒจ์„œ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹

  • C-LOOK

    • 0๋ฒˆ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋”๋ผ๋„, ํƒ์ƒ‰์„ ์ง€์†ํ•˜๋Š” Scan์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ๋ฐฉ์‹

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€