๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸง Operating System

[OS / ์šด์˜์ฒด์ œ] Monolithic Structure, Layered Approach, Microkernels, Modules, Android, Virtual Machine

by UKHYUN22 2022. 3. 17.
728x90

kernel์˜ structure๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 
Monolithic Structure
๋ชจ๋“  ๊ธฐ๋Šฅ์ด ํ•˜๋‚˜์˜ ๋ฉ์–ด๋ฆฌ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ตฌ์กฐ. ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์žฅ์ ์€ ์†๋„์ด๋‹ค. ๋ชจ๋ธ๊ฐ„์˜ Interface overhead๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค.
1973๋…„ Original UNIX๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค. Linux๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๊ณ  ์žˆ๋‹ค.


Monolithic Structure


๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ์—ญํ™”๊ฐ€ ๋˜์–ด์ž‡์ง€๋งŒ ํ•œ ๋ชจ๋“ˆ ์•ˆ์— ๋‹ค ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค,


Layered Approach
๊ตฌ์กฐํ™” ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜. Computer System์„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹. ๊ฐ€์žฅ ๊ฐ€์šด๋ฐ์— Hardware๊ฐ€ ์žˆ๊ณ  Layer1์—๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ๋“ค์ด ๊ตฌํ˜„๋˜์–ด์žˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ layer2๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์† ์ง„ํ–‰์ด ๋œ๋‹ค. ๋ชจ๋“  layer๋Š” ์ž๊ธฐ๋ณด๋‹ค ๋ฐ‘์˜ ์ชฝ Layer์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ ์—ญ์€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค. 


Layered Approach
๋””๋ฒ„๊น… ํ•˜๋Š” ๋ฐ์— ๊ต‰์žฅํžˆ ํŽธ๋ฆฌํ•˜๋‹ค. N ๋ฒˆ์งธ Layer์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ๊ณณ์—๋งŒ ์ง‘์ค‘ํ•˜๋ฉด ์ฐพ๊ธฐ ์‰ฌ์šธ ์ˆ˜ ์žˆ๋‹ค. ์ž์‹  ๋ณด๋‹ค Low level์ด๊ฑฐ๋‚˜
high level layer๋ฅผ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์ „ํ˜€ ์—†๋‹ค. 


Layered Approach
๋‘ ๊ฐ€์ง€์˜ ๋ชจ๋“ˆ์ด ์žˆ์„ ๋•Œ ์–ด๋Š ๋ชจ๋“ˆ์„ ์•„๋ž˜์— ๋‘˜์ง€ ์œ„์— ๋‘˜ ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค. Backing Store์˜ ๊ธฐ๋Šฅ์„ Memory manager๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ ๋ชจ๋“ˆ ๊ฐ„์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ํž˜๋“  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Backing Store driver์™€ CPU scheduler๊ฐ€ ์žˆ๋‹ค.


Layered Approach
ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๋‹ค๋Š” ๊ฒƒ. ์œ„์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉ์„ ํ•˜๋ฉด call์ด ๊ณ„์† ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ Performance์˜ ์†์‹ค์ด ์ด๋ฃจ์–ด์ง„๋‹ค. Layer๋ฅผ ํผ์งํผ์ง ํ•˜๊ฒŒ ์ž˜๋ผ์„œ ๋ฐ˜๋ณต๋˜๋Š” call์„ ์ค„์ด๋ฉด ์ข‹์„ ๊ฒƒ์ด๋ผ๋Š” ์˜๊ฒฌ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌ๋ฉด Layer์˜ ์žฅ์ ์ด ์—†์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.


Microkernels
์šด์˜ ์ฒด์ œ์—์„œ kernel์€ ์ •๋ถ€์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, kernel์€ ์ž‘์„ ์ˆ˜๋ก ์ข‹๋‹ค๋Š” ๊ฒƒ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. kernel์€ kernel mode์—์„œ ๋™์ž‘์„ ํ•˜๋Š”๋ฐ ๋”ฐ๋ผ์„œ kernel mode์— Bug์ธ ์ฝ”๋“œ๊ฐ€ ๋Œ์•„๊ฐ€๋ฉด System ์ „์ฒด๊ฐ€ ํ”ผํ•ด๋ฅผ ๋ฐ›๊ฒŒ ๋œ๋‹ค. ์ •๋ง ํ•ต์‹ฌ์ ์ด๊ณ  Preveledge๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ฉฐ ๋‹ค user mode๋กœ ๋ณด๋‚ด์ž๋Š” ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ User mode์— ์œ„์น˜ํ•ด๋†“๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. Application์ด Request๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด์ž.
Message Passing Mechanism์„ ํ†ตํ•ด์„œ kernel์ด Message๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์›๋ž˜ Applicationํ•œํ…Œ ๋Œ๋ ค๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Server๋„ ๋ฌผ๋ก  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ user mode์ด๊ณ  kernel ์€ ์ „๋‹ฌ์ž ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰, Communication ์ด ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Interprocess Communication์€ Kernel mode์•ˆ์— ๋“ค์–ด์™€์•ผ ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ธ ๊ฒƒ์ด๋‹ค.


Microkernels
ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์€ ๋ฌด์—‡์ด ์žˆ๋Š”๊ฐ€. management์™€ communication ๊ธฐ๋Šฅ์ด ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ๋œ๋‹ค. System call์ด ๋ณดํ†ต Message passing์— ์˜ํ•ด์„œ ์ด๋ฃจ์–ด์ง„๋‹ค. Microkernel์˜ ๊ฐ€์žฅ ํฐ ๋‹จ์ ์œผ๋กœ Performance ์ €ํ•˜๋ฅผ ๋ฝ‘์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. MicroKernel ์†์— ์žˆ๋Š” message passing์„ ๋น ๋ฅธ ์†๋„๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„์„ ํ•˜๊ณ  ์žˆ๋Š” ์ค‘์ด๋‹ค.


Microkernel
Portingํ•˜๊ธฐ ์ข‹๊ณ , ํ™•์žฅํ•˜๊ธฐ ํŽธํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. usermode ์— Process๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Kernel์„ ๊ณ ์น˜์ง€ ์•Š์•„๋„ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. System์—์„œ System์œผ๋กœ ์ด๋™ํ•  ๋•Œ Porting์ด ํŽธํ•ด์ง„๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„œ๋น„์Šค๋ฅผ User level์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ ์ „์ฒด์˜ ์˜ํ–ฅ์„ ์ ๊ฒŒ ๋ฐ›์•„ ์•ˆ์ „ํ•˜๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค. ๋‹จ์ ์œผ๋กœ๋Š” Performance decrease ๊ฐ€ ๋œ๋‹ค๋Š” ์ ์ด๋‹ค. 


Modules
LKM, Monolity kernel์˜ ์œ ์—ฐ์„ฑ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. Monolity kernel์˜ ๋‹จ์  ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ™•์žฅ์„ฑ์ด๋‹ค. ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ตฌ์กฐ๊ฐ€ Loadable kernel module ์ธ ๊ฒƒ์ด๋‹ค. Microkernel๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ Loadable kernel ๋ชจ๋“œ๋Š” ๋ชจ๋‘๋‹ค kernel mode์—์„œ ๋Œ์•„๊ฐ„๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ์ง์ ‘ Preveledge Instruction์„ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ณ  ์‰ฌ์šด Interface๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋น ๋ฅธ ์†๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์œ ์—ฐ์„ฑ์„ ๋ณด๊ฐ•ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค. OS๊ฐ€ Bootingํ•˜๊ณ  ์žˆ๋Š” ๋™์•ˆ์—๋„ ์„ค์น˜๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ๋‹ค, ์ด๋Ÿฐ kernel์„ ์ด์šฉํ•˜๋Š” ๊ณณ์€ Device Driver ๋ถ€๋ถ„์ด๋‹ค. LKM์œผ๋กœ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์จ ํ˜„์žฌ ์žˆ๋Š” Device์— Driver๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Shutdown ํ•˜์ง€ ์•Š๊ณ ๋„ ์„ค์น˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋Œ์•„๊ฐ€๋Š” kernel ์†์— Dynamic ํ•˜๊ฒŒ ๋ถ™์„ ์ˆ˜ ๋„ ์žˆ๋‹ค.


Modules
core ์„œ๋น„์Šค๋ฅผ ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด์„œ dynamicํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. Layered Structure์™€๋Š” ๋‹ฌ๋ฆฌ ์กฐ๊ธˆ ๋” Flexibleํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Micro Kernel์€ user level์—์„œ ๋Œ์•„๊ฐ€์ง€๋งŒ UKL์˜ ๊ฒฝ์šฐ kernel mode์—์„œ ๋Œ์•„๊ฐ„๋‹ค. 


Hybrid System
์—ฌ๋Ÿฌ๊ฐ€์ง€ Structure์˜ ์žฅ์ ์„ ๋ชจ์•„์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Linux์™€ Solaris๋Š” Mono์˜ ๋น ๋ฅธ ๊ฒƒ์„ ์žฅ์ ์„ ํ™œ์šฉํ•˜๊ณ  Modular๋ฅผ ํ†ตํ•ด ํ™•์žฅ์„ฑ์„ ์ทจํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ณตํ•ฉ์ ์ธ ๋ชจ๋“ˆ์ด ๋“ฑ์žฅํ•˜๊ณ  ์žˆ๋‹ค,


MacOS, iOS
MacOS๋Š” ๋ฐ”๋‹ฅ์— OS๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. Darwin์ด๋ผ๋Š” kernel ํ™˜๊ฒฝ์ด ์žˆ๋‹ค. ๊ทธ ์œ„์— core framework๋Š” Quicktime ๋™์˜์ƒ ํ”Œ๋ ˆ์ด์–ด๋‚˜ OpenGL Graphics Library๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์žˆ๋‹ค. application์˜ ๊ฒฝ์šฐ Swift ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ Cocoa, Cocoa Touch๋ฅผ ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค,.


macOS, iOS
kenel์˜ ๋ฐ”๋‹ฅ์—๋Š” Mach Kernel์ด ์žˆ๊ณ  ๊ทธ ์œ„์— BSD Unix์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. 


Android
๊ฐ€์žฅ ์•„๋ž˜ Hardware๊ฐ€ ์žˆ๊ณ , Linux ์˜ kernel๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์œ„์— Bionic layer๊ฐ€ ์žˆ๋‹ค. ์ด๋Š” unix์˜ glibc๋ฅผ ์ €์žฅํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š” Library์˜ ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ C์˜ function์„ ์ œ๊ณตํ•˜๋Š” layer๊ฐ€ Bionic layer์ด๋‹ค. HAL, HardWare Abstraction Layer Device๋งˆ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Hardware๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€์˜ Hardware๋ฅผ Abstraction์„ ํ†ตํ•ด์„œ ํ•˜๋‚˜์˜ ํ†ต์ผ๋œ Interface๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.


Virtual Machine
ํ˜„์žฌ host ์œ„์— ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์™ธ๋ถ€์™€ ๋ถ„๋ฆฌ๋œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 


Virtual Machines
์ผ๋ฐ˜์ ์ธ OS๋Š” ์™ผ์ชฝ๊ณผ ๊ฐ™๋‹ค. Hardware๊ณผ kernel ๊ทธ ์œ„์— Process(user mode)๊ฐ€ ์กด์žฌํ•œ๋‹ค. Virtual์˜ ๊ฒฝ์šฐ ์˜ค๋ฅธ์ชฝ ์‚ฌ์ง„์ฒ˜๋Ÿผ VM์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. VM์ด ๊ฐ๊ฐ์˜ Virtual์„ ๋งŒ๋“ค์–ด๋‚ด๊ฒŒ ๋œ๋‹ค. ๊ฐ๊ฐ Hardware ์˜ kernel์ด ๋Œ์•„๊ฐ„๋‹ค. 


Virtual Machine
๊ฐ Machine ๋ณ„๋กœ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ฐฉ๊ฐํ•˜๊ณ  ๋Œ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค. HOST CPU๊ฐ€ ํ•˜๋‚˜์˜ virtual์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. scheduling์˜ time machine์— ์˜ํ•ด์„œ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋“ฏํ•œ ์ฐฉ๊ฐ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. VM์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” Host์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ์˜ ์˜ํ–ฅ์„ ์ž˜ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ Disk์˜ ๊ฒฝ์šฐ ์ œํ•œ์„ ๋ฐ›๋Š”๋‹ค. Virtual Machine์€ Host๋ณด๋‹ค ๋””์Šคํฌ๊ฐ€ ์ž‘์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. Virtual Disk๋Š” Host์—์„œ ํŒŒ์ผ ํ•˜๋‚˜์— ํ•ด๋‹นํ•˜๊ฒŒ ๋œ๋‹ค. ๋งŽ์€ ๊ฒฝ์šฐ Virtual Disk๋Š” ์‚ฌ์ด์ฆˆ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ Host์™€ ๋™์ผํ•œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.


Virtual Machine
Host HardWare์™€ ๋˜‘๊ฐ™์€ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. Dual Mode operation์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. kernel์—์„œ๋งŒ preveledge๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด์™€ ๊ฐ™์ด Virtual๋„ user์™€ kernel mode ๋‘˜ ๋‹ค ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค ํ•˜์ง€๋งŒ Virtual์ด user mode ์ƒ์— ์กด์žฌํ•œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. Virtual์˜ kernel์ด user mode์— ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 


Virtual Machine
์žฅ์ , ์™ธ๋ถ€์™€ ์ฐจ๋‹จ๋œ ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•œ ํ™˜๊ฒฝ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. OS๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ์— ๊ต‰์žฅํžˆ ์ข‹์€ Tool์ด๋‹ค. 


Virtual Machine
Disk์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค๋Š” ๊ฒƒ์ด๊ณ  ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ๊ฒƒ.


Storage Management
OS๊ฐ€ ์ผ์ข…์˜ Abstract๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ ํ•˜๋‚˜์˜ ๋””์Šคํฌ ๊ตฌ์กฐ๋ฅผ ํฌ์žฅํ•ด์„œ file Interface๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ์ด OS์ด๋‹ค,
File์„ ์šฐ๋ฆฌ๊ฐ€ ์ €์žฅํ•œ๋‹ค๋ฉด ์‹ค์ œ๋กœ Physicalํ•œ Disk์— ์ €์žฅํ•ด์ฃผ๋Š” ๊ฒƒ์ด OS์˜ ์—ญํ• ์ด๋‹ค

Device Driver
์–ด๋–ค Device๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ทธ Device์˜ Interface๋ฅผ ์ •์˜ํ•ด์ฃผ๋Š” Software๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ๊ฒƒ์ด Driver์ด๋‹ค. Device Controller์™€์˜ ๊ตฌ๋ถ„์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
Controller์˜ ๊ฒฝ์šฐ Hardware Component์™€ Bus์˜ ๊ด€๊ณ„์ด๊ณ  Device Driver๋Š” Software์˜ ๊ด€๊ณ„์— ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”๊ฐ€
Device Driver๋Š” Software ์ ์œผ๋กœ ํ†ต์ผํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. File access์™€ ๋™์ผํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. 

Storage Management
File System์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

Cashing
Cashing์€ ์†๋„ ์ฐจ์ด๊ฐ€ ํฐ ๋‘ ๊ณต๊ฐ„์„ ์—ฐ๊ฒฐํ•  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ์ˆ ์ด๋‹ค. Main Memory๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ cache์— ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•ด๋†“๊ณ 
๋ฐ˜๋ณตํ•ด์„œ ์ ‘๊ทผ์„ ํ•  ๋•Œ cache์— ์žˆ๋Š” ์ •๋ณด๋งŒ ๊ฐ€์ง€๊ณ  ์‚ฌ์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.