๐Ÿ‘Š CS/์šด์˜์ฒด์ œ

Ready ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ๋ˆ„๊ตฌ์—๊ฒŒ CPU๋ฅผ ํ• ๋‹นํ• ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ์ •์ฑ… Batch ์‹œ์Šคํ…œ์ด๋ƒ - TimeSharing ์‹œ์Šคํ…œ์ด๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„ Context Switching Overhead๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค. user mode => kernel mode ๋ชจ๋“œ ์Šค์œ„์นญ ํ˜„์žฌ์˜ ์ƒํƒœ์ •๋ณด ์ €์žฅ ์ฃผ์†Œ๊ณต๊ฐ„ (memory map) ์ •๋ณด ์ €์žฅ ๋‹ค์Œ์— ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค ์„ ํƒ (์Šค์ผ€์ฅด๋ง) PCB์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ฆฌ๋กœ๋”ฉ ๋“ฑ, ๊ฝค ๋งŽ์€ ์ผ์ด context switch ์‚ฌ์ด์— ์ผ์–ด๋‚œ๋‹ค!! Process Behavior CPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด์— ๋”ฐ๋ผ a) Compute Bound : CPU ์—ฐ์‚ฐ์˜ ๋น„์ค‘์ด ๋†’์€ ํ”„๋กœ์„ธ์Šค b) I/O Bound : I/O ์—ฐ์‚ฐ์˜ ๋น„์ค‘์ด ๋†’์€ ํ”„๋กœ์„ธ์Šค CPU์˜ ์„ฑ๋Šฅ์— ๋”ฐ๋ผ ์ƒ๋Œ€์ ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค..
์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ๋œ ๋ฐ์ดํ„ฐ๋“ค์— ๋™์‹œ์— ์ ‘๊ทผํ•˜๋ ค ํ•  ๋•Œ, ๊ทธ ์‹คํ–‰๋“ค์„ ์ œ์–ดํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…๋“ค์ด ๋ฌธ์ œ๊ฐ€ ์—†๊ฒŒ๋” ๋งž์ถฐ์ฃผ๋Š” ๊ฑธ Synchronization ์ด๋ผ๊ณ  ํ•œ๋‹ค. Race Condition ๋˜‘๊ฐ™์€ ์ˆ˜ํ–‰์„ ํ•˜๋Š”๋ฐ ๋งค๋ฒˆ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ (ํƒ€์ด๋ฐ์— ๋”ฐ๋ผ์„œ) ์ดˆ๋ก์ƒ‰ ๋ฆฌํ„ด๋œ ๋‹ค์Œ์— ๋นจ๊ฐ„์ƒ‰ ์‹คํ–‰๋œ ๊ฑฐ put_balance์— ๊ฐ’ ๋„ฃ๊ธฐ ์ „์— Context Switch๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ดˆ๋ก์ƒ‰์€ 9000์›, ๋นจ๊ฐ„์ƒ‰์€ 8000์› ๋ฆฌํ„ด. ๋นจ๊ฐ„์ƒ‰ ๋ฆฌํ„ด(8000)ํ•œ ๋‹ค์Œ์— ๋‹ค์‹œ ์ดˆ๋ก์ƒ‰ ํ’‹ ๋ฐธ๋Ÿฐ์Šค๋กœ ๋Œ์•„๊ฐ€์„œ ์ดˆ๋ก์ƒ‰ ๋ฆฌํ„ด(9000). ์ด ์‚ผ์ฒœ์› ๋นผ๊ฐ„๊ฑด๋ฐ ๊ฒฐ๊ณผ์ ์œผ๋ก  1000์›๋งŒ ์—†์–ด์ง. ๊ฐœ๊ฟ€? -> ์ด๊ฒŒ race condition Critical Regions ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ ์ค‘ ๊ณต์œ ๋œ ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ๋ถ€๋ถ„ ..
Parallal Program ํ•˜๋‚˜์˜ Job์„ ์—ฌ๋Ÿฌ CPU์—์„œ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ์ž‘์—…์„ ํฌํฌํ•ด๊ฐ€์„œ ์ฒ˜๋ฆฌํ•ด์„œ ์ฃผ๋Š” ๊ฒƒ PCB, PT๋“ค์„ ์ƒ์„ฑํ•ด์•ผ๋˜๊ณ , OS ๊ตฌ์กฐ๋„ ๋งŒ๋“ค์–ด์•ผํ•˜๊ณ  ํ•ด์„œ ๋น„ํšจ์œจ์ ์ด๋‹ค (๊ณต๊ฐ„, ์‹œ๊ฐ„) ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋” ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ํ”„๋กœ์„ธ์Šค๋“ค๋ผ๋ฆฌ ๋น„์Šทํ•œ ๊ฒƒ Address Space (Code, data) Privilege (ํŠน๊ถŒ?) ๋ฆฌ์†Œ์Šค (ํŒŒ์ผ, ์†Œ์ผ“ ๋“ฑ) ๋‹ค๋ฅธ ๊ฒƒ - ์ด๋ ‡๊ฒŒ ๋„ค๊ฐœ! Registers, PC, SP, Process State ์Šค๋ ˆ๋“œ : ๊ฐ™์€ ๊ฒƒ์€ ๊ณต์œ ํ•˜๊ณ , ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐ€์ ธ๊ฐ€์ž Thread ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ๋Œ์•„๊ฐ„๋‹ค ์“ฐ๋ ˆ๋“œ๋“ค์€ ๊ฐ™์€ ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์“ฐ๋ ˆ๋“œ๊ฐ„ ์ •๋ณด ๊ตํ™˜์ด ๊ฐ„๋‹จํ•˜๋‹ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š”๊ฒƒ ๋ณด๋‹ค ๊ฐ€๋ณ๋‹ค. ์‹œ๊ฐ„. ๋ฉ”๋ชจ๋ฆฌ..
Program Execution์˜ ๊ธฐ๋ณธ ๋‹จ์œ„. Multiprogramming : ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ๊ฐœ Multiprocessing: ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ. ํ•˜๋‚˜์˜ job์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ˜•ํƒœ Pseudoparallelism : ์‹ค์ œ๋กœ ๋ณ‘ํ–‰ ํ”„๋กœ์„ธ์Šค์ธ๊ฑด ์•„๋‹ˆ์ง€๋งŒ, ์‚ฌ๋žŒ์ด ๋ณผ๋•Œ๋Š” ๊ทธ๋Ÿฐ ๊ฒƒ ์ฒ˜๋Ÿผ ๋Š๊ปด์ง. ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋Œ์•„๊ฐ€๋ฉด์„œ ์ฒ˜๋ฆฌ๋จ์œผ๋กœ์„œ ๋™์‹œ์— ์ฒ˜๋ฆฌ๋˜๋Š”๊ฒƒ ์ฒ˜๋Ÿผ. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฒƒ : ์ฃผ์†Œ ๊ณต๊ฐ„, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ฝ”๋“œ, ์Šคํƒ-์Šคํƒํฌ์ธํ„ฐ, PC, ๋ ˆ์ง€์Šคํ„ฐ(์˜ ์ƒํƒœ), OS์—๊ฒŒ ์š”์ฒญํ•ด์„œ ์–ป์€ ๋ฆฌ์†Œ์Šค - ๋“ฑ์„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ–๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. Process in OS ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์œ ๋‹ˆํฌํ•œ PID๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. OS์—๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Process Table (PT)๊ฐ€ ์žˆ์Œ. Process Control B..
What does an operating system do? ํ•˜๋“œ์›จ์–ด์˜ ์ถ”์ƒํ™”๋œ ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ณต. ์Œฉ H/W๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ์Œ ์†Œํ”„ํŠธ์›จ์–ด์ ์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ด์คŒ. ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ( = CPU, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„์–ด ์“ธ์ˆ˜ ์žˆ๋„๋ก OS์—์„œ ๊ด€๋ฆฌํ•ด์ค€๋‹ค) CPU PipeLining A susperscalar CPU : ๋™์‹œ์— ์—ฌ๋Ÿฌ instruction์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ Kernel mode : CPU์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  instruction ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ. ๋ชจ๋“  H/W feature (Device)์— access ๊ฐ€๋Šฅ. User mode : ๋ชจ๋“  instruction์ด ์•„๋‹Œ ์ œํ•œ๋œ ๋ช…๋ น์–ด๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. Device access์—๋„ ์ œํ•œ. I/O Devices I/O Acce..
ํ•œ๊ทœ์ง„
'๐Ÿ‘Š CS/์šด์˜์ฒด์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก