Computer Science/Operating System

์Šค์ผ€์ค„๋ง? ํ•˜๋‚˜์˜ ๊ด€๋ฆฌ์ž๋กœ ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์—ฌ๋Ÿฌ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ cpu์™€ ์‹œ์Šคํ…œ ์ž์›์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์ •ํ•  ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•จ - ๊ณ ์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง (๊ฐ€์žฅ ํฐ ํ‹€์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ์Šค์ผ€์ค„๋ง) ์–ด๋–ค ์ž‘์—…์š”์ฒญ์ด ์˜ค๋ฉด ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์‹œ์Šคํ…œ์˜ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์ž‘์—…์„ ์Šน์ธํ• ์ง€, ๊ฑฐ๋ถ€ํ• ์ง€ ๊ฒฐ์ •ํ•จ(์Šน์ธ ์Šค์ผ€์ค„๋ง ์ด๋ผ๊ณ ๋„ ํ•จ) - ์ค‘๊ฐ„์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง ์ „์ฒด ์‹œ์Šคํ…œ์˜ ํ™œ์„ฑํ™”๋œ ํ”„๋กœ์„ธ์Šค ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ๊ณผ๋ถ€ํ™”๋ฅผ ๋ง‰์Œ - ์ €์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋ณด๋‚ผ์ง€ ๋“ฑ์„ ๊ฒฐ์ •ํ•จ ์•„์ฃผ ์งง์€ ์‹œ๊ฐ„์— ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ๊ธฐ ์Šค์ผ€์ค„๋ง์ด๋ผ๊ณ ๋„ ํ•จ ์Šค์ผ€์ค„๋ง์˜ ๋ชฉ์  ๊ทผ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฐ ์Šค์ผ€์ค„๋ง์„ ์™œ ํ• ๊นŒ? ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณตํ‰ํ•˜๊ฒŒ ์ž‘์—…ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ์—„์ฒญ๋‚˜๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๋งŒ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ์งง..
1. CPU์˜ ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค - CPU๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ์žฅ์น˜์ด๋ฉฐ ํ•ต์‹ฌ ์š”์†Œ๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์‚ฐ์ˆ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์žฅ์น˜, ์ œ์–ด์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ด๊ฒƒ๋“ค์ด ํ˜‘์—…ํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. 1) ์‚ฐ์ˆ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์žฅ์น˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•˜๋Š” ์žฅ์น˜๋กœ ๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ๊ณผ ๊ฐ™์€ ์‚ฐ์ˆ ์—ฐ์‚ฐ, AND, OR๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ 2) ์ œ์–ด์žฅ์น˜ ์ž‘์—…์„ ์ง€์‹œํ•˜๋Š” ๋ถ€๋ถ„ 3) ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ๋ณด๊ด€ํ•˜๋Š” ๊ณณ -> ์™œ? ์ž„์‹œ๋กœ ๋ณด๊ด€ํ•ด์•ผ ํ• ๊นŒ? -> ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ CPU๋กœ ๊ฐ€์ ธ์™€ ์ž„์‹œ๋กœ ๋ณด๊ด€ํ•ด์•ผ ํ•จ (์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ CPU๋กœ ๊ฐ€์ ธ์™€์„œ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ณ„์‚ฐํ•  ๋•Œ ๋‘˜ ๊ณณ์ด๋ผ๊ณ  ์ƒ๊ฐ!) 2. ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์„ ์„ค๋ช…ํ•˜์‹œ์˜ค CPU, ๋ฉ”๋ชจ๋ฆฌ, ์ž…์ถœ๋ ฅ์žฅ์น˜, ์ €์žฅ์žฅ์น˜๊ฐ€ ๋ฒ„์Šค๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ..
Code (์ฝ”๋“œ์˜์—ญ) ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ๊ธฐ๊ณ„์–ด(0101โ€ฆ)๋กœ ๋ณ€ํ™˜๋˜์–ด ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ๊ณต๊ฐ„ ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ • (์ฝ”๋“œ์˜์—ญ์˜ ํฌ๊ธฐ, ์ฝ”๋“œ๊ฐ€ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜) Read-Only๋กœ ์ค‘๊ฐ„ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ ํ…์ŠคํŠธ ์˜์—ญ์ด๋ผ๊ณ ๋„ ํ•จ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘ํ•˜๊ณ  ์ข…๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ์•„์žˆ์Œ CPU๋Š” ์ฝ”๋“œ ์˜์—ญ์— ์ €์žฅ๋œ ๋ช…๋ น์–ด๋ฅผํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ๊ฐ€์„œ ์ฒ˜๋ฆฌํ•จ Data (๋ฐ์ดํ„ฐ ์˜์—ญ) ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ง€์›Œ์ง€์ง€ ์•Š์„ ๋ฐ์ดํ„ฐ ์ €์žฅ (์ „์—ญ๋ณ€์ˆ˜, static๋ณ€์ˆ˜ ๋“ฑ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ณต๊ฐ„) ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ • ์ฝ”๋“œ์˜์—ญ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘ํ•˜๊ณ  ์ข…๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ์•„์žˆ์Œ Heap (ํž™ ์˜์—ญ) ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ํž™์ด ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋จ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์˜์—ญ์„ ์ฐพ์•„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹(๋™์ ํ• ๋‹น)์ด..
์œ ๋‹‰์Šค์˜ ๊ตฌ์กฐ 1. ์ปค๋„ (kernel) : ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋ถ€๋ถ„ ์ž‘์€ ์˜๋ฏธ์˜ ์šด์˜์ฒด์ œ๋ผ๊ณ ๋„ ํ•จ. 2. ์‹œ์Šคํ…œ ํ˜ธ์ถœ(system call) : ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ์šด์˜์ฒด์ œ์—๊ฒŒ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ด ๋‹ฌ๋ผ๋Š” ํ•˜๋‚˜์˜ ์ˆ˜๋‹จ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. 3. ์‰˜ (shell) : ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ๋‹ค๋ฆฌ์—ญํ•  ๋ช…๋ น์„ ๋ฐ›์•„ ํ•ด์„ํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค. ์‰˜์˜ ์ข…๋ฅ˜ 1.Bourne shell : ์ตœ์ดˆ์˜ ์…ธ, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์‰˜์ด๋‹ค. 2. Bourne-again shell : ๋ฆฌ๋ˆ…์Šค์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์‰˜๋กœ C์‰˜๊ณผ ์ฝ˜ ์‰˜์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ๋‹ค. 3. C shell : C์–ธ์–ด ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. 4. Korn shell : ๋ณธ ์‰˜์„ ํ™•์žฅํ•œ ์‰˜๋กœ ๋ณธ ์‰˜์˜ ๋ช…๋ น์–ด๋ฅผ ๋ชจ๋‘ ์ธ์‹ํ•˜๋ฉฐ ์œ ๋‹‰์Šค..
๋ฆด๋ฆฌ๐Ÿฐ
'Computer Science/Operating System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก