FrontEnd
Javascript
Diary
ML
CS
Django
Algorithm
AWS
Co-Work
HTML
CSS
Python
React
ReactNative

OS

(12)

Disk Management & Scheduling

Disk ๊ตฌ์กฐ ๋””์Šคํฌ์˜ ์™ธ๋ถ€์—์„œ ๋ณด๋Š” ๋””์Šคํฌ์˜ ๋‹จ์œ„ ์ •๋ณด ์ €์žฅ ๊ณต๊ฐ„๋“ค ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ 1์ฐจ์› ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰ (์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ์ตœ์†Œ๋‹จ์œ„) logical block์ด ๋ฌผ๋ฆฌ์ ์ธ disk์— ๋งคํ•‘๋œ ์œ„์น˜ sector 0์€ ์ตœ์™ธ๊ณฝ ์‹ค๋ฆฐ๋”์˜ ์ฒซ ํŠธ๋ž™์— ์žˆ๋Š” ์ฒซ๋ฒˆ์งธ ์„นํ„ฐ์ด๋‹ค. (0๋ฒˆ sector๋Š” ๋ถ€ํŒ…๊ณผ ๊ด€๋ จ๋˜์–ด์žˆ๋‹ค.) ๋””์Šคํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ตœ์†Œ๋‹จ์œ„๋Š” sector sectโ€ฆ

File System

File System A named collection of related information ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ํœ˜๋ฐœ์„ฑ์˜ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ ์šด์˜์ฒด์ œ๋Š” ๋‹ค์–‘ํ•œ ์ €์žฅ์žฅ์น˜๋ฅผ file์ด๋ผ๋Š” ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ, operation : , , ,(lseek, ์ ‘๊ทผํ•˜๋Š” ์œ„์น˜๋ฅผ ์ˆ˜์ •), , , File attribute : (File์˜ metadata) ํŒŒโ€ฆ

Virtual Memory

Demand paging (์‹ค์ œ๋กœ ๋Œ€๋ถ€๋ถ„์€ ์‹œ์Šคํ…œ์€ paging๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.) ์‹ค์ œ๋กœ ํ•„์š”ํ•  ๋•Œ page๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ I/O์–‘์˜ ๊ฐ์†Œ(์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ ๋‹ค, ๋Œ€๋‹ค์ˆ˜๊ฐ€ ๋ฐฉ์–ด์ ์ธ ์ฝ”๋“œ์ด๊ธฐ๋•Œ๋ฌธ์—) Mem ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ ๋น ๋ฅธ ์‘๋‹ต์‹œ๊ฐ„ ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์ˆ˜์šฉ Valid/ Invalid bit ์‚ฌ์šฉ Invalid => ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฃผ์†Œ์˜์—ญ์ธ ๊ฒฝ์šฐ, Paโ€ฆ

Memory Management

Memory Management ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ด๋‹ค. ๋…ผ๋ฆฌ์  ์ฃผ์†Œ(virtual address) : ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ์ฃผ์†Œ๊ณต๊ฐ„, 0๋ฒˆ์ง€ ๋ถ€ํ„ฐ ์‹œ์ž‘ **cpu๊ฐ€ ๋ณด๋Š” ์ฃผ์†Œ๋Š” logical address์ž„** ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ : ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜ Symbolic Address(ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ž…์žฅ์—์„œ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ โ€ฆ

Deadlock

Deadlock ๊ต์ฐฉ์ƒํ™ฉ, ์ผ๋ จ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ block๋œ ์ƒํ™ฉ ์ž์› ํ•˜๋“œ์›จ์–ด, ์†Œํ”„ํŠธ์›จ์–ด ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ๊ฐœ๋… I/O device, CPU cycle, Memspace, semaphore ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ์ ˆ์ฐจ : request allocate, use Release deadlock ๋ฐœ์ƒ ์กฐ๊ฑด : ์ƒํ˜ธ๋ฐฐ์ œ, ๋งค ์ˆœ๊ฐ„โ€ฆ

Process Management

ํ”„๋กœ์„ธ์Šค synchronization ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ˆœ์„œ Data๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๊ณ  ์—ฐ์‚ฐํ•  data๋ฅผ ์ฝ์–ด์˜ค๊ณ  ์—ฐ์‚ฐ์„ ํ•˜๊ณ  ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ Storage box ๋ฅผ ๋‘๊ฐœ์˜ ExecutionBox๊ฐ€ ๊ณต์œ ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?? => ์ฆ‰ Race Condition์ƒํƒœ์ด๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? => ์ด๋Ÿฐ๋ถ€๋ถ„์„ ์กฐ์œจํ•ด์•ผํ•  ํ•„์š”์„ฑ์ด์žˆ๋‹ค. Stoโ€ฆ

CPU-Scheduling

CPU Scheduling (CPU์Šค์ผ€์ค„๋ง) CPU burst CPU๊ฐ€ ํ•ด์•ผํ•  ์ผ์„ ํ•˜๋Š” ๋‹จ๊ณ„ I/O burst IO ํ”„๋กœ๊ทธ๋žจ์ด ํ•ด์•ผํ• ์ผ์„ ํ•˜๋Š” ๋‹จ๊ณ„ ์ด๋Ÿฌํ•œ burst๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌ๋™๋œ๋‹ค. cpu->cpu->cpu->io : ์‚ฌ์šฉ์ž์™€ interactiveํ•œ ํ”„๋กœ๊ทธ๋žจ cpu->io->cpu->io : ํ–‰๋ ฌ์˜ ์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ (์œ„์˜ ๋‘ ์˜ˆ์‹œโ€ฆ

Process Management

Process Management ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ: ๋ถ€๋ชจํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ(1:n) ==> ํŠธ๋ฆฌํ˜•ํƒœ,๊ณ„์ธต๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ด๋–„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ์€ ๋ณต์ œ๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ์ฃผ์†Œ๊ณต๊ฐ„(code, stack, data)๊ณผ ์‹ฌ์ง€์–ด PC(Program counter)๊นŒ์ง€ ๋ณต์ œํ•œ๋‹ค. ์ž์›์˜ ๊ณต์œ  ๋ถ€๋ชจ ์ž์‹ ๋ชจ๋“ ์ž์› ๊ณต์œ  ์ผ๋ถ€ ๊ณต์œ  ์ „ํ˜€ ๊ณต์œ  X โ€ฆ

Process - (2)

Thread ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์— CPU์ˆ˜ํ–‰๋‹จ์œ„๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š”๊ฒƒ ํ”„๋กœ์„ธ์Šค๋Š” ๋งŒ๋“ค์–ด์งˆ๋•Œ ๋กœ ๊ตฌ์„ฑ๋œ ์ฃผ์†Œ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์ง€๊ณ  PCB๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ๋™์ผํ•œ ์ผ์„ ํ•˜๊ณ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์žˆ์œผ๋ฉด ์ฃผ์†Œ๊ณต๊ฐ„์„ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ 1๊ฐœ๋งŒ ์ƒ์„ฑํ•˜๊ณ  PCB๋‚ด๋ถ€์— PC(์™€ ๊ฐ™์€ CPU์ˆ˜ํ–‰๊ณผ ๊ด€๋ จ ์ •๋ณด)๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋‘๊ณ  ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰, ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์•„๋†“๊ธฐ์œ„ํ•œ sโ€ฆ

Process - (1)

ํ”„๋กœ์„ธ์Šค : ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ context : ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ(ํŠน์ • ์‹œ์ ์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์–ผ๋งˆ๋‚˜ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€) ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์˜ ํ๋ฆ„: ex) ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ฃผ์†Œ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๋Š”๋ฐ program counter๊ฐ€ code ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๊ณ , ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ์ฝ์–ด์™€ ์ด๋ฅผ register์— ๋“ฑ๋กํ•˜๊ณ  ALU๋ฅผ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ๋‹ค. context๋Š” ํฌ๊ฒŒ 2โ€ฆ

OS-System_Structure2

CPU์™€ Memory CPU + Memory ==> Host์˜์—ญ CPU๋Š” ๋งค์ˆœ๊ฐ„์ˆœ๊ฐ„ Memory์—์„œ ๊ธฐ๊ณ„์–ด๋ฅผ ์ฝ์–ด์„œ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ฒŒ CPU์— register์— ์žˆ๋Š” PC(Program Counter)์ด๋‹ค. Memory์— ์˜ฌ๋ผ๊ฐ„ ๊ธฐ๊ณ„์–ด๋Š” instruction์ธ๋ฐ, instruction ์‹คํ–‰๋„์ค‘ ์ค‘๊ฐ„์— interrupt๊ฐ€ ์š”์ฒญ๋˜๋ฉด ์ œ์–ด๊ถŒ์€ CPU๋กœโ€ฆ

OS-System_Structure

kocw OS ๊ฐ•์˜(์ดํ™”์—ฌ๋Œ€ ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜)๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒŒ์‹œ๊ธ€ โœ ์‹œ์Šคํ…œ์„ ํฌ๊ฒŒ CPU, Memory, I/O device ๊ด€์ ์—์„œ ๋ด๋ณด์ž CPU ๋Š” ํ•ด์•ผํ•  ์ผ์„ Memory์— ์˜ฌ๋ ค๋†“๊ณ  ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ CPU๋ž‘ ๊ฐ€๊นŒ์šด registers, memory, I/O device ๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค Mode bit 1์€ ์‚ฌ์šฉ์ž๋ชจ๋“œ, 0์€ ์ปค๋„โ€ฆ