Pintos lab4 file systems review

์กฐ์„ฑํ˜„ยท2021๋…„ 3์›” 9์ผ

OS

๋ชฉ๋ก ๋ณด๊ธฐ
9/9

๐Ÿ“• File System

์œ ์ €๋Š” ํŒŒ์ผ์ด๋ฆ„๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์•Œ๋ฉด ํŒŒ์ผ์„ ์—ด๊ณ , ์“ฐ๊ณ , ์ €์žฅํ•˜๋Š” ๋ฐ ๋ฐ‘๋‹จ์˜ ์ผ๋“ค์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ์ปดํ“จํ„ฐ๋ฅผ ์“ด๋‹ค. OS๋Š” ์ด๋ฅผ ์œ„ํ•ด file system์„ ํ†ตํ•ด disk๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์‚ฐ์ด ๋๋‚œ ๋ฐ์ดํ„ฐ๋“ค์„ disk์— ์˜ฎ๊ฒจ์ฃผ๊ณ  ์ž‘์—…ํ•  ๋‚ด์šฉ์„ ๋ถˆ๋Ÿฌ์™€ ์คŒ์œผ๋กœ์จ, memory hierarchy์„ ์ตœ์ ํ™”ํ•ด ์ปดํ“จํŒ… ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ๋˜ํ•œ ๋ณ€๊ฒฝ๋œ ๋‚ด์—ญ๋“ค์„ ์ €์žฅํ•ด ์ปดํ“จํ„ฐ๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  ๋ถ€ํŒ…๋œ ์ดํ›„์— ์ด์ „ ์ž‘์—…๋“ค์ด ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธ๋˜๊ฒŒ๋” ํ•œ๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ง€๊ธˆ๊นŒ์ง€ ๋žฉ ์ค‘์— ๊ฐ€์žฅ ์–ด๋ ค์› ๋‹ค... ๊ทธ ์ „์—๋Š” ํ…œํ”Œ๋ฆฟ๋„ ์ž˜ ๋˜์–ด ์žˆ์—ˆ๊ณ , ์ ์–ด๋„ ์ด ๋ถ„์„ ๊ณ ์ณ๋ผ๋ผ๋Š” ์ •๋„์˜ ์„ค๋ช…๋“ค์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ ์ฃผ๋Š” ๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„๊นŒ์ง€ ๊ณต๋ถ€๊ฐ€ ๋˜์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•˜๊ณ  git book์— ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ํ˜€์žˆ์—ˆ๋‹ค. OS๋งˆ๋‹ค ๊ฐœ๋…์€ ๊ฐ™์œผ๋‚˜ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ •์ฑ…์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— Pintos์—์„œ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•„์š”ํ•˜๋Š”๋ฐ ํŒŒ์•…์ด ํ•„์š”ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋‚ด๋ณด๋ฉด์„œ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ๋‹ค. ํ•จ์ˆ˜๋งˆ๋‹ค ์ผ์ผํžˆ pritnf ์ฐ๊ณ  test์ผ€์ด์Šค ๋Œ๋ ค๊ฐ€๋ฉด์„œ ํ๋ฆ„์„ ๋ณด๊ณ  ํ„ฐ์ง€๋Š” ๋ถ€๋ถ„์—์„œ ์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ์ง€ ํŒŒ์•…ํ–ˆ๋‹ค.

๐Ÿ‘‰ Indexed and Extensible Files

์ด์ „ Pintos๋Š” freemap์ด๋ผ๋Š” bitmap์„ ํ†ตํ•ด์„œ disk๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. Bitmap์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜์ง€๋งŒ disk์˜ ํฌ๊ธฐ ์ปค์กŒ์„ ๋•Œ bitmap์˜ ํฌ๊ธฐ ๋˜ํ•œ ์ปค์ ธ์•ผํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด๋ฅผ FAT๋ฅผ ์‚ฌ์šฉํ•ด ๋Œ€์ฒดํ•˜๊ณ , FAT table์„ ์ €์žฅํ•˜๋Š” sector๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด ๋†“์Œ์œผ๋กœ์จ ์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์กŒ๋‹ค ์ผœ์ ธ๋„ ์ด์ „ disk ์‚ฌ์šฉ์ •๋ณด๋“ค์„ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. ๊ตฌํ˜„ ๋’ค์— disk์˜ sector๋Š” ๋‹ค์Œ ๋ชจ์–‘์ด ๋œ๋‹ค.

๋ถ€ํŒ…, ์ข…๋ฃŒ์‹œ FAT๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ฝ”๋“œ๋Š” ์ด๋ฏธ ๊ตฌํ˜„์ด ๋˜์žˆ์œผ๋‹ˆ, ์ด์— ๋งž์ถฐ์„œ FAT๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  sector์™€ cluster๋ฅผ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ์ƒˆ๋กœ์šด cluster๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ด๋ฅผ FAT table์—์„œ linked ์‹œ์ผœ์„œ, sector๊ฐ€ ๋–จ์–ด์ ธ ์žˆ์–ด๋„ ์—ฐ์†์ ์ธ ํŒŒ์ผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ €๊ฐ€ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ์ˆœ์„œ๋Š” file->inode->inode_disk->start sector->cluster->fat->next cluster-> next sector .... ๊ฐ€ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋„๋ก inode.c์˜ free map ๋ถ€๋ถ„๋“ค์„ ๋ชจ๋‘ ์ˆ˜์ •ํ•œ๋‹ค.

ํŒŒ์ผ์€ inode๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํŒŒ์ผ์„ openํ•˜๋ฉด inode on memory๊ฐ€ memory์— ์˜ฌ๋ผ๊ฐ„๋‹ค. inode on disk๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ disk์— ์ €์žฅํ•˜๋Š” ๋…€์„์ด๋‹ค. inode on memory๋Š” ํŒŒ์ผ์„ ์—ด๋•Œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ, inode on disk๋Š” ํ•˜๋‚˜๋‹ค ํŒŒ์ผ์— ๋ญ”๊ฐ€ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚œ๋‹ค๋ฉด inode on disk์— disk write ํ•ด์ค€๋‹ค. inode on disk์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์‹œ์ž‘ sector๋ฅผ ์ €์žฅํ•ด ๋†“๋Š”๋ฐ ์ด๋ฅผ ํ†ตํ•ด FAT์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , extensibleํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ด์ „ pintos๋Š” file length๊ฐ€ staticํ•˜์˜€๋Š”๋ฐ, ์ด๋ฅผ dynamicํ•˜๋„๋ก ์ˆ˜์ •ํ–ˆ๋‹ค. write length(size+offset)์ด ํŒŒ์ผ์ด inode length ๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ํŒŒ์ผ length๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ํ•„์š”ํ•˜๋‹ค๋ฉด ์ถ”๊ฐ€์ ์ธ sector๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค.

์ด์ „ pintos๋Š” root directory์— ๋ชจ๋“  ํŒŒ์ผ์„ ์ €์žฅ๋˜๊ฒŒ๋” ๋˜์žˆ๋‹ค. ๋˜ํ•œ '/a/b'๋ผ๋Š” ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด์™€๋„ ๊ฒฝ๋กœ๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ณ  ํ•˜๋‚˜์˜ filename์œผ๋กœ ์ธ์‹ํ•œ๋‹ค. dir, dir entry๋Š” ์ด๋ฏธ ๊ตฌํ˜„์ด ๋˜์žˆ๋‹ค. dir์€ file ๊ตฌ์กฐ์ฒด์™€ ๊ฐ™๋‹ค, ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋Š” ๋…€์„์ด๊ณ , dir_entry๋Š” file์˜ data๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. dir๋ฅผ ์—ด๋ฉด dir entry๋ฅผ ํ†ตํ•ด ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์˜ ํŒŒ์ผ์ด๋‚˜ directory๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. thread๋งˆ๋‹ค cwd๋ฅผ ๊ตฌํ˜„ํ•ด์„œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์™€ ์ƒ๋Œ€๊ฒฝ๋กœ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.

๋จผ์ € ์ฃผ์–ด์ง„ ์ž…๋ ฅ์„ parseํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค. strtok ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ '/'๋‹จ์œ„๋กœ ๋Š์–ด์„œ dir ์—ด๊ณ  dir entry๋ฅผ ๊ฒ€์ƒ‰ํ•ด ๋‹ค์Œ dir๋ฅผ ์ฐพ๋Š”๋‹ค ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋งˆ์ง€๋ง‰์— ์ž‘์—…ํ•ด์•ผ ํ•  working dir์™€ ๋งˆ์ง€๋ง‰ filename์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ create, open, remove์—์„œ subdirectories๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. '..'์™€ '.' ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ์˜ˆ์™ธ ์ผ€์ด์Šค๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ ธ๋‹ค. ์‚ฌ์šฉ๋œ inode๋ฅผ ๋ชจ๋‘ ๋ง๋”ํžˆ ๋‹ซ์•„์ค˜์•ผ inode remove๋„ ๋™์ž‘ํ•˜๊ณ  disk์—๋„ ์ž˜ ์ €์žฅ๋œ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ซ๋Š”๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋ชจํ–ˆ๋‹ค...

soft link๋Š” ๊ณ ๋ฏผ ๋์— ์ƒˆ๋กœ์šด file,director ๊ฐ™์€ ์ƒˆ๋กœ์šด element๋กœ ๋ฐ›์•„๋“œ๋ฆฌ๋Š”๊ฒŒ ํŽธํ–ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์˜ค๋กœ์ง€ ํŒŒ์ผ ๊ฒฝ๋กœ๋งŒ์ด data๋กœ ์ €์žฅ ๋˜์–ด ์žˆ์–ด์„œ ์ ‘๊ทผ์‹œ ๋”ฐ๋กœ parsingํ•ด์„œ inode๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋ฐ˜ํ™˜์‹œํ‚ค๋„๋ก ์ „์ฒด์ ์ธ ์‹œ์Šคํ…œ์—์„œ ์†์„ ๋ดค๋‹ค... ๋•๋ถ„์— ํŒŒ์ผ ์ ‘๊ทผํ•  ๋•Œ ๋งˆ๋‹ค is_link() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ณ ... 4byte์˜ ์ฃผ์†Œ๋ฅผ ์œ„ํ•ด ํ•œ sector๋ฅผ ํ• ๋‹นํ•˜๊ณ .. ๋งค์šฐ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋А๊ปด์ง€์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์งœ์ง€ ์•Š์œผ๋ฉด test case๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์—†์—ˆ๋‹ค....

๐Ÿ‘‰ Buffer Cache

์šด์˜์ง„์˜ ๋ฐฐ๋ ค๋กœ ๊ตฌํ˜„์—์„œ ์ œ์™ธํ•ด์ฃผ์…จ๋‹ค!! ์‹ค์ œ๋กœ๋Š” test case๋„ ์—†๊ณ  ์„ฑ๋Šฅํ–ฅ์ƒ์— ๊ด€ํ•œ ๋ถ€๋ถ„์ด๋ผ... ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•„๋„ ๋ฌด๋ฐฉํ•˜์ง€๋งŒ, ์•„๋งˆ memory hierarchy๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๊ฒ ์ง€....
ํ˜น์‹œ ๋‚˜์ค‘์—๋ผ๋„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ ์–ด๋†“์•˜๋˜ ๋ฉ”๋ชจ๋ฅผ ์ ์–ด๋‘”๋‹ค....
1. ๋ฒ„ํผ๋Š” 64 sectors๋ฅผ ํ• ๋‹น, mapping memory๋Š” list๋กœ
2. clock ์•Œ๊ณ ๋ฆฌ์ฆ˜, next fit
3. ์ •๊ธฐ์ ์œผ๋กœ swap out ํ•„์š”. eviction ์•Œ๊ณ ๋ฆฌ์ฆ˜
4. inode read,write์˜ buffer ๋ถ€๋ถ„์„ buffer cache๋กœ ๊ต์ฒด
5. IO๋ฅผ ์œ„ํ•œ dedicated thread ๊ตฌํ˜„...(์ž˜๋ชจ๋ฅด๊ฒ ๋‹ค...)
6. using VM type(file cache) -> using mmap area..

๐Ÿ‘‰ Synchronization

์ด๋ฏธ ์ „ lab๋“ค์„ ํ†ตํ•ด synch ์ž˜ ์„ค๊ณ„๋˜์žˆ์–ด์„œ ํฐ ์–ด๋ ค์›€ ์—†์ด ํ†ต๊ณผ ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค. inode๋ฅผ ํ†ตํ•ด thread๋งˆ๋‹ค ํŒŒ์ผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ด ๋ถ€๋ถ„์€ ๋ฌ๊ณ ... ๋‹ค๋งŒ file write ์‹œ์— extensed ๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๋ชจ๋“  thread๊ฐ€ ์ˆ˜์ • ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ ํ˜€์žˆ์—ˆ์ง€๋งŒ, file write์— ๋Œ€ํ•œ filesys lock๋ฅผ ๋ง‰์•„๋†“๊ณ ๋„ test case๋ฅผ ๋ชจ๋‘ ํ†ต๊ณผํ•˜์—ฌ ์ผ๋‹จ ๋„˜์–ด๊ฐ”๋‹ค...

๐Ÿ‘‰ Pintos๋ฅผ ๋งˆ์น˜๋ฉฐ...

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

๋˜ ํ•˜๋‚˜ ์„ฑ์žฅํ•œ ์ ์€ ์ง‘์ค‘๋ ฅ์ด๋‹ค. ํ›„๋ฐ˜์œผ๋กœ ๊ฐˆ ์ˆ˜๋ก ์ฝ”๋”ฉ์— ๋ชฐ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง์„ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ €๋… ๋ผ๋‹ˆ ๋•Œ ์ฝ”๋”ฉ์ด ํ•œ์ฐฝ ์ž˜ ๋˜๋ฉด ์–ผ๋ฅธ ๋๋‚ด๊ณ  ๋จน์–ด์•ผ๊ฒ ๋‹ค ํ•ด๋†“๊ณ  ์ •์‹ ์ฐจ๋ ค๋ณด๋ฉด 10์‹œ ๋ฐ˜์ด์—ˆ๋‹ค...

์•„๋ฌดํŠผ Pintos๋ฅผ ํ†ตํ•ด ์ปดํ“จํ„ฐ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋ฐ‘๋‹จ์— ๋ฌด์Šจ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์ถ”์ƒํ™”๋ผ๋Š” ๊ฐœ๋…์„ ํ†ตํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ ๋™์•ˆ ๋ฉ€๋ฆฌํ–ˆ๋˜ ์ „๊ณต์ฑ…์„ ๋งŽ์ด ์ฝ์–ด์•ผ ๋˜๊ฒ ๋‹ค๋ผ๋Š” ์ƒ๊ฐ๋„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์•ž์œผ๋กœ ๊ฐœ๋ฐœ์ž๋กœ ์‚ด๋ฉด์„œ ์–ด๋–ป๊ฒŒ OS์ง€์‹์ด ์‚ฌ์šฉ๋ ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ ์–ด๋„ "๋ชจ๋ฅด๋ฉด ์ฑ…๋ณด๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ฝ”๋“œ๋ณด๊ณ  ๋ฐฐ์šด๋‹ค!"๋ผ๋Š” ๋งˆ์ธ๋“œ ์ •๋„๋Š” ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

Good bye Pintos!

profile
Jazzing๐Ÿ‘จโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€