Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
{Lecture}/OS

[OS] Chapter 2: Operating-System Structures

by wonee1 2023. 10. 9.
728x90

 

 Operating System Services

 

๐Ÿ“Œ์šด์˜์ฒด์ œ ์„œ๋น„์Šค 

1. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค
2. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
3. ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ 
4. ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘
5. ํ†ต์‹ 
6. ์˜ค๋ฅ˜ ํƒ์ง€
7. ์ž์› ํ• ๋‹น 
8. ํšŒ๊ณ„
9. ๋ณดํ˜ธ, ๋ณด์•ˆ 

 

 

ํ†ต์‹  (์ถ”๊ฐ€์ ์œผ๋กœ)  

 

ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ , ์ด๋Ÿฌํ•œ ํ†ต์‹ ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค

1. ๋™์ผํ•œ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚œ๋‹ค

2. ์ปดํ“จํ„ฐ ๋„ค์ดํŠธ์›Œํฌ์— ์˜ํ•ด ํ•จ๊ป˜ ๋ฌถ์—ฌ ์žˆ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์‹œ์Šคํ…œ ์ƒ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚œ๋‹ค

 

ํ†ต์‹ ์€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ˜„๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ๊ธฐ๋ฒ•์— ์˜ํ•ด์„œ ๊ตฌํ˜„๋  ์ˆ˜๋„ ์žˆ๋‹ค 

(๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ๊ธฐ๋ฒ•์˜ ๊ฒฝ์šฐ ์ •๋ณด์˜ ํŒจํ‚ท๋“ค์ด ์šด์˜์ฒด์ œ์— ์˜ํ•ด ํ”„๋กœ์„ธ์Šค๋“ค ์‚ฌ์ด๋ฅผ ์ด๋™ํ•œ๋‹ค) 

 

 

 

์šด์˜์ฒด์ œ ์„œ๋น„์Šค ๊ฐœ๊ด€

 

 

 

 

์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต 

 

์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค (User Interface) 

  • Command-Line Interface (CLI)
  • Graphical User Interface (GUI)

 OS ์„œ๋น„์Šค๋Š” ์‹œ์Šคํ…œ ์ž์ฒด์˜ ํšจ์œจ์ ์ธ ์šด์˜์„ ์œ„ํ•ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค

 

 

OS User Interface - CLI

 

CLI๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๋ช…๋ น ์ž…๋ ฅ ๊ฐ€๋Šฅ 

  • ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ช…๋ น์„ ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•œ๋‹ค

CLI ๊ตฌํ˜„

๋•Œ๋•Œ๋กœ ์ปค๋„์— ๋ช…๋ น์ด ๋‚ด์žฅ๋˜์–ด์žˆ๋‹ค

  • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด CLI ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค

 ๋•Œ๋กœ๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค

  •   ๋‹ค์–‘ํ•œ CLI( shell ์ด๋ผ๊ณ  ํ•จ)
  •   CLI๊ฐ€ ๋ช…๋ น์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•จ
  • ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ CLI๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ

  

* ์ƒˆ๋กœ์šด ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด ์šด์˜์ฒด์ œ๋กœ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค (CLI์—์„œ ๋ช…๋ น์–ด ์ถ”๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ)

OS User Interface - GUI

 

์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค

 

  •  Xerox Palo Alto Research Center์—์„œ ๋ฐœ๋ช…
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ ๋ฐ ๋ชจ๋‹ˆํ„ฐ
  • ์•„์ด์ฝ˜์€ ํŒŒ์ผ, ํ”„๋กœ๊ทธ๋žจ, ๋””๋ ‰ํ† ๋ฆฌ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค
  • ๊ฐœ์ฒด ์œ„์˜ ๋‹ค์–‘ํ•œ ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์€ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ํ•œ๋‹ค

 

OS User Interface – CLI & GUI

 

์˜ค๋Š˜๋‚  ๋งŽ์€ ์‹œ์Šคํ…œ์— CLI์™€ GUI ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋‹ค.

  • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์œˆ๋„์šฐ -> CLI cmd๊ฐ€ ์žˆ๋Š” GUI
  • Apple Mac OS X ->  UNIX์™€ Aqua GUI๊ฐ€ ์žˆ๋‹ค
  • ์œ ๋‹‰์Šค์™€ ๋ฆฌ๋ˆ…์Šค์—๋Š” ์„ ํƒ์  GUI๊ฐ€ ์žˆ๋Š” CLI๊ฐ€ ์žˆ๋‹ค  ->  KDE, ๊ทธ๋†ˆ ๋ฐ์Šคํฌํƒ‘ ๋“ฑ

๐Ÿ“Œ์ธํ„ฐํŽ˜์ด์Šค: ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์‹œ์Šคํ…œ์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ , ์ปค๋„์— ์‚ฌ์šฉ์ž์˜ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๊ณ  ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ•  

 

OS Programming Interface - System Calls

 

 

๐Ÿ’กSystem calls (์ค‘์š”) 

 

  • ์šด์˜์ฒด์ œ๊ฐ€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ
  • ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค 
  • ์šด์˜์ฒด์ œ์™€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค 
  • ๋Œ€๋ถ€๋ถ„ high-level ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์— ์ ‘๊ทผํ•œ๋‹ค. (์‹œ์Šคํ…œ ์ฝœ์„ ์ง์ ‘์ ์œผ๋กœ ํ•˜๊ธฐ ๋ณด๋‹ค) 
  • ๋ชจ๋“  ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ System call๋ฅผ ๊ผญ ์‚ฌ์šฉํ•œ๋‹ค

 

 

API(Application Programming  Interface) 

  • ๊ฐ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜์–ด์•ผ ํ•  ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์„ ํฌํ•จํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์„ ๋ช…์‹œํ•œ๋‹ค   
  • ํ•˜๋“œ์›จ์–ด๋‚˜ ์šด์˜์ฒด์ œ์™€ ๊ด€๊ณ„์—†์ด ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์„œ๋น„์Šค ๋ฐ ๊ธฐ๋Šฅ ์ œ๊ณต-> ์†Œ์Šค์˜ ํ˜ธํ™˜์„ฑ ์ œ๊ณต
  • Win32, POSIX API, JAVA API ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ API 3๊ฐ€์ง€ 
  •  ์†Œํ”„ํŠธ์›จ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋กœ ํ†ต์‹ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ, ํŠน์ง• ๋ฐ ๊ธฐ๋Šฅ์„ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ผ๋ จ์˜ ๊ทœ์น™ ๋˜๋Š” ํ”„๋กœํ† ์ฝœ

๋Œ€๋ถ€๋ถ„์˜ ์‘์šฉ ๊ฐœ๋ฐœ์ž๋“ค์€ API์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•œ๋‹ค  

 

 

๋Œ€๋ถ€๋ถ„์˜ POSIX์™€ Wind32 API๋Š” UNIX, Linux ๋ฐ Windows ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ณ ์œ ์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ ์œ ์‚ฌ 

 

 

 

System Call Implementation

 

์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ ์ฝœ์€ ์ˆซ์ž์™€ ์—ฐ๊ฒฐ๋œ๋‹ค

  • ์‹œ์Šคํ…œ ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ˆซ์ž์— ๋”ฐ๋ผ ์ธ๋ฑ์Šค ๋œ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์šด์˜ ์ฒด์ œ ์ปค๋„์—์„œ ์˜๋„ํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ˜ธ์ถœํ•˜๊ณ , ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ์ƒํƒœ์™€ ๊ธฐํƒ€ ๋ฐ˜ํ™˜ ๊ฐ’๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Open() ์‹œ์Šคํ…œ ์ฝœ ์ฒ˜๋ฆฌ

 

ํ˜ธ์ถœ์ž๋Š” ์‹œ์Šคํ…œ ์ฝœ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š” ์ง€์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค 

  • ๋‹จ์ง€ API๋ฅผ ์ค€์ˆ˜ํ•˜๊ณ  ์‹œ์Šคํ…œ ์ฝœ์˜ ๊ฒฐ๊ณผ๋กœ OS๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.

 

ํ‘œ์ค€ C ๋ผ์ด๋ธ”๋Ÿฌ๋ฆฌ ์˜ˆ์‹œ

 

ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งŽ์€ ๋ฒ„์ „์˜ UNIX์™€ linux๋ฅผ ์œ„ํ•œ ์‹œ์Šคํ…œ ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค 

 

  • C ํ”„๋กœ๊ทธ๋žจ์—์„œ printf() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์ด printf() ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์ธ write() ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•œ๋‹ค

-> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์ฝœ์„ ํ•จ

 

 

 

๐Ÿ“Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ API ์ฐจ์ด์  

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 
ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๋ฆฌ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ

API 
API๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค
์„œ๋กœ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์ด ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •์˜๋œ ๊ทœ์น™๊ณผ ํ”„๋กœํ† ์ฝœ 

 

 

Types of System Calls 

 

 

์‹œ์Šคํ…œ ์ฝœ ์œ ํ˜• 

 

ํ”„๋กœ๊ทธ๋žจ์—์„œ ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค

์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ์‹œ์Šคํ…œ ๋“ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค 

 

 

ํ”„๋กœ์„ธ์Šค ์ œ์–ด (Process Control) 

  • ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๋ฐ ์ข…๋ฃŒ 
  • ๋๋‚ด๊ธฐ (end), ์ค‘์ง€(abort) 
  • ์ ์žฌ(load), ์‹คํ–‰(execute) 
  • ํ”„๋กœ์„ธ์Šค ์†์„ฑ ํš๋“, ์„ค์ • 
  • ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ๋ฐ˜๋‚ฉ
  • ์ด๋ฒคํŠธ ๋Œ€๊ธฐ ๋ฐ ์‹ ํ˜ธ ์ „๋‹ฌ
๐Ÿ“Œํ”„๋กœ์„ธ์Šค๋ž€?

   ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ( ์‹œ์Šคํ…œ ๋‚ด ์ž‘์—… ๋‹จ์œ„)
   ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ž์›( cpu,๋ฉ”๋ชจ๋ฆฌ,I/O์žฅ์น˜, ํŒŒ์ผ ๋“ฑ )๋“ค์„ ํ•„์š”๋กœ ํ•จ ์“ฐ๋‹ค๊ฐ€ ์šด์˜์ฒด์ œ๋กœ ๋ฐ˜๋‚ฉ 
   ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ์‹œ ๋ฆฌ์†Œ์Šค ํ•ด์ œ 

 

 

 

ํŒŒ์ผ ๊ด€๋ฆฌ

  • ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ
  • ํŒŒ์ผ ์—ด๊ธฐ, ๋‹ซ๊ธฐ, ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์œ„์น˜ ๋ณ€๊ฒฝ 
  • ํŒŒ์ผ ์†์„ฑ ํš๋“ ๋ฐ ์„ค์ •

์žฅ์น˜ ๊ด€๋ฆฌ 

  • ์žฅ์น˜ ์š”์ฒญ ๋ฐ ๋ฐฉ์ถœ 
  • ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์œ„์น˜ ๋ณ€๊ฒฝ
  • ์žฅ์น˜ ์†์„ฑ ํš๋“ ๋ฐ ์„ค์ •
  • ์žฅ์น˜์˜ ๋…ผ๋ฆฌ์  ๋ถ€์ฐฉ ๋˜๋Š” ๋ถ„๋ฆฌ 

์ •๋ณด ์œ ์ง€ ๊ด€๋ฆฌ

  •  ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์„ค์ •๊ณผ ํš๋“ 
  • ์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ ์„ค์ •๊ณผ ํš๋“ 
  • ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ , ์žฅ์น˜ ์†์„ฑ์˜ ํš๋“ ๋ฐ ์„ค์ • 

ํ†ต์‹ 

  • ํ†ต์‹  ์—ฐ๊ฒฐ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ
  • ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฐ ์ˆ˜์‹ 
  • ์ƒํƒœ ์ •๋ณด ์ „๋‹ฌ
  • ์›๊ฒฉ ์žฅ์น˜์˜ ๋ถ€์ฐฉ ๋ฐ ๋ถ„๋ฆฌ 

ํ†ต์‹  ๋ชจ๋ธ์—” ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ๊ณผ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‘๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ๋ชจ๋ธ์ด ์žˆ๋‹ค 

 

๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ๋ชจ๋ธ์—์„œ๋Š” ํ†ต์‹ ํ•˜๋Š” ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค 

ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง€๊ธฐ ์ „์— ์—ฐ๊ฒฐ์ด ๋ฐ˜๋“œ์‹œ ์—ด๋ ค์•ผํ•œ๋‹ค 

read message์™€ write message ์‹œ์Šคํ…œ ์ฝœ์— ์˜ํ•ด ๋ฉ”์„ธ์ง€๋ฅผ ๊ตํ™˜ํ•œ๋‹ค

 

๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์—์„  ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์†Œ์œ ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ƒ์„ฑํ•˜๊ณ  ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค 

ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ด๋Ÿฌํ•œ ๊ณต์œ  ์˜์—ญ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์”€์œผ๋กœ์จ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค 

 

 

 

System Programs

 

์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์ด๋ž€?

 ์šด์˜ ์ฒด์ œ(OS)์—์„œ ์ œ๊ณต๋˜๋ฉฐ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํŽธ๋ฆฌํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค

 

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

 

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์œ ์šฉํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›Œ๋“œ ํ”„๋กœ์„ธ์„œ, ์ด๋ฏธ์ง€ ๋ทฐ์–ด, MP3 ํ”Œ๋ ˆ์ด์–ด, ๊ฒŒ์ž„ ๋“ฑ์ด ์žˆ๋‹ค

 

 

 

* ์ผ๋ถ€ ์šด์˜ ์ฒด์ œ์—์„œ๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(Registry)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ์ฃผ๋กœ Windows ์šด์˜ ์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์‹œ์Šคํ…œ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„ค์ • ์ •๋ณด, ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ ๋ฐ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค

 

 

 

Operating System Design & Implementation

 

์šด์˜์ฒด์ œ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ 

๋ชฉํ‘œ๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค

 

์‚ฌ์šฉ์ž ๋ชฉํ‘œ

  • ์‚ฌ์šฉ์ž ๋ชฉํ‘œ๋Š” ์šด์˜ ์ฒด์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๋ฉฐ, ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๊ณ , ์•ˆ์ „ํ•˜๋ฉฐ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ

์‹œ์Šคํ…œ ๋ชฉํ‘œ 

  • ์‹œ์Šคํ…œ ๋ชฉํ‘œ๋Š” ์šด์˜ ์ฒด์ œ๊ฐ€ ์„ค๊ณ„, ๊ตฌํ˜„ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ณ , ์œ ์—ฐํ•˜๋ฉฐ, ์‹ ๋ขฐ์„ฑ ์žˆ์œผ๋ฉฐ, ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉฐ, ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ

 

 

ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฏ€๋กœ ํ•˜๋“œ์›จ์–ด์˜ ์˜ํ•ญ์„ ๋งŽ์ด ๋ฐ›๋Š”๋‹ค.

  •   ์šด์˜ ์ฒด์ œ(OS)๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ํ•˜๋“œ์›จ์–ด ํŠน์„ฑ ๋ฐ ์‹œ์Šคํ…œ ์œ ํ˜•(์ผ๊ด„ ์ฒ˜๋ฆฌ, ์‹œ๋ถ„ํ• , ์‹ค์‹œ๊ฐ„, ๋‹จ์ผ ์‚ฌ์šฉ์ž, ๋‹ค์ค‘ ์‚ฌ์šฉ    ์ž)์— ๋”ฐ๋ผ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค
  •   ํ•˜๋“œ์›จ์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”๊ฐ€์— ๋”ฐ๋ผ์„œ ์šด์˜์ฒด์ œ ์„ค๊ณ„๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.๋”ฐ๋ผ์„œ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ณ ๋ คํ•ด์„œ OS ์„ค๊ณ„๋ฅผ ํ•ด์•ผํ•œ๋‹ค. 
  •   ํ•˜๋“œ์›จ์–ด์—์„œ ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์‹ ๋ขฐ๋„๊ฐ€ ๋†’์•„์•ผ ํ•จ

 

๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ๋ฐ ํ•ด๊ฒฐ์ฑ…

  •   ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค

 

์ •์ฑ…(policy)๊ณผ ๋ฉ”์ปค๋‹ˆ์ฆ˜(mechanism)์˜ ๋ถ„๋ฆฌ ์ค‘์š”

  • ์ •์ฑ… (Policy): ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ๊ฐ€?
  • ๋ฉ”์ปค๋‹ˆ์ฆ˜ (Mechanism): ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€?
  • ์ •์ฑ…์€ ์žฅ์†Œ๋‚˜ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ  : ์ •์ฑ…์€ ํŠน์ • ์žฅ์†Œ๋‚˜ ์‹œ์ ์—์„œ ๋‹ค๋ฅธ ์ •์ฑ…์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ๋˜๋Š” ํ™˜๊ฒฝ ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์ •์ฑ…์ด ๋‹ค๋ฅด๊ฒŒ ์„ค์ •๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค
  • ๋‚˜์ค‘์— ์ •์ฑ… ๊ฒฐ์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ตœ๋Œ€ํ•œ์˜ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•จ: ์ •์ฑ…๊ณผ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ •์ฑ… ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์‰ฝ๊ฒŒ ์ •์ฑ…์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ์„ ์ตœ๋Œ€ํ•œ ์œ ์—ฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์ •์ฑ… ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ๋ณต์žก์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค

์ „ํ†ต์ ์œผ๋กœ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด๋กœ ์ž‘์„ฑ-> ํ˜„์žฌ๋Š” ๊ณ ๊ธ‰ ์–ธ์–ด๋กœ ์ž‘์„ฑ(C๋‚˜ C++๊ฐ™์€)

 

๊ณ ๊ธ‰ ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ 

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

 

๊ณ ๊ธ‰ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์–ป๋Š” ๋‹จ์ 

  • ์†๋„ ์ €ํ•˜
  • ์ €์žฅ ๊ณต๊ฐ„ ์š”๊ตฌ๋Ÿ‰ ์ฆ๊ฐ€

 

Operating System Structure

 

์šด์˜์ฒด์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• 

 

๋‹จ์ˆœ ๊ตฌ์กฐ

  • MS-DOS
  • UNIX

๊ณ„์ธต ๊ตฌ์กฐ

 

๋งˆ์ดํฌ๋กœ์ปค๋„ ์ ‘๊ทผ ๋ฐฉ์‹ 

 

๋ชจ๋“ˆ ์ ‘๊ทผ ๋ฐฉ์‹

 

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ ๋ฐฉ์‹ 

 

 

Simple Structure : MS-DOS
  • ๊ฐ€์žฅ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋„๋ก ์ž‘์„ฑ๋จ
  • ๋ชจ๋“ˆ๋กœ ๋ถ„ํ• ๋˜์ง€ ์•Š์Œ
  • MS-DOS๋Š” ์ผ๋ถ€ ๊ตฌ์กฐ๊ฐ€ ์žˆ์ง€๋งŒ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ธฐ๋Šฅ ์ˆ˜์ค€์€ ์ž˜ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์ง€ ์•Š์Œ
  • Intel 8088์€ ๋“€์–ผ ๋ชจ๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋”ฐ๋ผ์„œ ํ•˜๋“œ์›จ์–ด ๋ณดํ˜ธ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Œ (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋“ค์ด ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—)

 

 

Resident system program : ๋žจ ์ƒ์ฃผ ํ”„๋กœ๊ทธ๋žจ 

 

 ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋žจ(๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ)์— ์˜ฌ๋ผ๊ฐ€์•ผํ•จ , ์‹คํ–‰์ด ๋๋‚˜๋ฉด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋‚ด๋ ค์˜ค๋Š” ๊ฒƒ 

๋žจ ์ƒ์ฃผ ํ”„๋กœ๊ทธ๋žจ์€ ์‹คํ–‰์ด ๋๋‚˜๋„ ๊ณ„์† ๋žจ์— ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ 

 

๋žจ ์ƒ์ฃผ ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋ฏธ ๋‚ด๋ ค์™€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์„ ๋ฐ”๋กœ ์‹œํ‚ฌ ์ˆ˜ ๊ฐ€ ์žˆ๋‹ค( ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋“œํ•˜๋Š” ์‹œ๊ฐ„์ด ํ•„์š”์—†์Œ)

๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ a๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋‹ค๊ฐ€ ๋žจ ์ƒ์ฃผ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ด 

ํ”„๋กœ๊ทธ๋žจ ์นด์šดํŠธ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฐ”๋กœ ๋žจ ์ƒ์ฃผ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ 

 

๋กฌ๋ฐ”์ด์–ด์Šค์— ๋ฆฌ๋ˆ…์Šค๋‚˜ ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ๊ฐ€ ์˜ฌ๋ผ๊ฐ€์„œ ์‚ฌ์šฉ๋จ 

ms dos๋Š” ์šด์˜์ฒด์ œ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ง์ ‘ ๋กฌ๋ฐ”์ด์–ด์Šค๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ์„ค๊ณ„๋จ 

 

 

 

 

single-tasking(๋‹จ์ผ ์ž‘์—…)

 

์ด ์šด์˜ ์ฒด์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค

 

  • ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ , ์ปค๋„์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋ฎ์–ด์“ด๋‹ค
  • ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ, ๋ช…๋ น ํ•ด์„๊ธฐ๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋œ๋‹ค

 

Simple Structure : UNIX

 

์œ ๋‹‰์Šค๋กœ ๋„˜์–ด์˜ค๋ฉด์„œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น ์‚ฌ์šฉ

์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ปค๋„์„ ๊ตฌ๋ณ„

 

UNIX ์šด์˜ ์ฒด์ œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

  •  ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ
  •  ์ปค๋„ 

์ปค๋„

  •   ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ธํ„ฐํŽ˜์ด์Šค ์•„๋ž˜๋ถ€ํ„ฐ ๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด ์œ„๊นŒ์ง€๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  •    ํŒŒ์ผ ์‹œ์Šคํ…œ, CPU ์Šค์ผ€์ค„๋ง, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐ ๊ธฐํƒ€ ์šด์˜ ์ฒด์ œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

-> ์ปค๋„์€ ํ•˜๋‚˜์˜ ๋ ˆ๋ฒจ์—์„œ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค (monolithic ๊ตฌ์กฐ)

 

์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด ์‚ฌ์šฉ์ž์˜ ์„ ํƒํ•œ ์…ธ(shell)์„ ํ˜ธ์ถœ

Multitasking (๋‹ค์ค‘ ์ž‘์—…) -> ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ณ  cpu๊ฐ€ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ์‹คํ–‰ํ•œ๋‹ค

  • ์…ธ์ด fork() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ
  • ํ”„๋กœ๊ทธ๋žจ์„ ํ”„๋กœ์„ธ์Šค๋กœ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด exec() ์‹คํ–‰
  • ์…ธ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ๋ช…๋ น์„ ๊ณ„์† ์‹คํ–‰

 

Layered Approach

 

์šด์˜ ์ฒด์ œ๋Š” ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค

  •  ๊ฐ ๊ณ„์ธต์€ ํ•˜์œ„ ๊ณ„์ธต ์œ„์— ๊ตฌ์ถ•๋œ๋‹ค.
  • ๊ฐ€์žฅ ํ•˜์œ„ ๊ณ„์ธต (๊ณ„์ธต 0)์€ ํ•˜๋“œ์›จ์–ด
  • ๊ฐ€์žฅ ๋†’์€ ๊ณ„์ธต (๊ณ„์ธต N)์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค

๋ชจ๋“ˆ์„ฑ์„ ํ†ตํ•ด ๊ฐ ๊ณ„์ธต์€ ํ•˜์œ„ ๊ณ„์ธต์˜ ํ•จ์ˆ˜ (์ž‘์—…) ๋ฐ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

 

๋ ˆ๋ฒจ 1->2->3์ด ๋  ์ˆ˜๋ก ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ™•์žฅํ•œ๋‹ค.

๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ์ž˜ ์ชผ๊ฐœ์„œ ๋ ˆ์ด์–ด๋กœ ๋‚˜๋ˆˆ ๋‹ค์Œ ์ ์ง„์ ์œผ๋กœ ๊ตฌํ˜„

->์šด์˜์ฒด์ œ๊ฐ€ ์ ์  ๋ณต์žกํ•ด์ง€๋ฉด์„œ ๊ณ„์ธต์„ ๋‚˜๋ˆ„๊ธฐ ํž˜๋“ค์–ด์ง 

 

 

Microkernel Approach

 

 ํ•„์ˆ˜๊ฐ€ ์•„๋‹Œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ปค๋„์—์„œ ์ œ๊ฑฐํ•˜๊ณ  ์‹œ์Šคํ…œ ๋ฐ ์‚ฌ์šฉ์ž ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.

  • ๋” ์ž‘์€ ์ปค๋„์„ ์œ„ํ•ด ์ปค๋„์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์šด์˜ ์ฒด์ œ๊ฐ€ ๊ฐ€์ ธ์•ผ ๋˜๋Š” ๋น„์šฉ์œผ๋กœ์„œ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•œ๋‹ค๋“ ์ง€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋””๋ฐ”์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋“ ์ง€ ์ด๋Ÿฐ๊ฒƒ๋„ ํฌํ•จ์ด ๋์—ˆ๋Š”๋ฐ ์ด๊ฒƒ๋“ค์„ ์œ ์ € ๋ ˆ๋ฒจ๋กœ ๋นผ๋ฒ„๋ฆผ.

๋งˆ์ดํฌ๋กœ์ปค๋„์€ ์ตœ์†Œํ•œ์˜ ํ”„๋กœ์„ธ์Šค ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ํ†ต์‹  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • ํ†ต์‹ ์€ ์‚ฌ์šฉ์ž ๋ชจ๋“ˆ ๊ฐ„์— ๋งˆ์ดํฌ๋กœ์ปค๋„์„ ํ†ตํ•œ ๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ์„ ํ†ตํ•ด ์ด๋ฃจ์ง„๋‹ค.
  • MACH๋Š” ๋งˆ์ดํฌ๋กœ์ปค๋„์˜ ์˜ˆ์‹œ

 

 

 

 

์žฅ์  

 

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

 

 

๋‹จ์  

 

  • ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์ปค๋„ ๊ณต๊ฐ„์œผ๋กœ์˜ ํ†ต์‹  ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ

 

Modular Approach (๋งˆ์ดํฌ๋กœ์ปค๋„๊ณผ ์ž˜ ๊ตฌ๋ถ„ํ•  ๊ฒƒ)

 

๋ฆฌ๋ˆ…์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ 

 

๋Œ€๋ถ€๋ถ„์˜ ํ˜„๋Œ€ ์šด์˜ ์ฒด์ œ๋Š” ๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ์ปค๋„ ๋ชจ๋“ˆ(loadable kernel modules)์„ ๊ตฌํ˜„ํ•œ๋‹ค.

  • ์ปค๋„์—๋Š” ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Œ
  • ์ถ”๊ฐ€ ์„œ๋น„์Šค๋Š” ๋ชจ๋“ˆ์„ ํ†ตํ•ด ์ œ๊ณต๋จ

๊ฐ ๋ชจ๋“ˆ์€ ํ•„์š”ํ•  ๋•Œ ์ปค๋„ ๋‚ด์—์„œ ๋กœ๋“œ ๊ฐ€๋Šฅ

  • ๋ชจ๋“ˆ์˜ dynamic load ๋™์  ๋กœ๋“œ (๋Ÿฐํƒ€์ž„์— ๋กœ๋“œ) ๋ฐ ๋งํฌ
  • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฌ์›€

*์‹คํ–‰ํ•˜๊ธฐ ์ „ ๋กœ๋“œ static load 

 

๋ชจ๋“ˆ์€ ๋…๋ฆฝ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹ˆ๋‹ค

๋ชจ๋“ˆ(ํ•จ์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ)๋“ค์„ ํ•„์š”์— ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ์˜ฌ๋ฆฌ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ (์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅ)

 

๋งˆ์ดํฌ๋กœ์ปค๋„๊ณผ ์œ ์‚ฌํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง€์ง€๋งŒ

  • ๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด ๋” ํšจ์œจ์ 
  • ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ง€์› ๊ฐ€๋Šฅ
  • ๋‹ค์–‘ํ•œ ์žฅ์น˜ ์ง€์› ๊ฐ€๋Šฅ

๋งˆ์ดํฌ๋กœ์ปค๋„๊ณผ ๋น„์Šทํ•œ ๋ชจ๋“ˆํ™”์™€ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉด์„œ๋„, ๋ชจ๋“ˆ ๊ฐ„์˜ ํšจ์œจ์ ์ธ ์ง์ ‘ ํ˜ธ์ถœ ๋ฐ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ์žฅ์น˜ ์ง€์›์„ ํ†ตํ•ด ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค

 

๐Ÿ’ก ๋ชจ๋“ˆ๋Ÿฌ๋Š” ๋‹ค ์ปค๋„๋ ˆ๋ฒจ์—์„œ ๋Œ์•„๊ฐ„๋‹ค ์œ ์ € ๋ ˆ๋ฒจ์ด ์•„๋‹ˆ๋‹ค 

 

๋ชจ๋“ˆ๋“ค์„ ํ•„์š”์— ๋”ฐ๋ผ์„œ ์—†์•จ ์ˆ˜๋„ ์žˆ๋‹ค

 

ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์œ„์— ์˜ฌ๋ผ๊ฐ€์•ผํ•œ๋‹ค. ๋ถ€ํŒ…ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๋ชจ๋“ˆ๋Ÿฌ์— ํ•ด๋‹น๋˜๋Š” ๋ถ€๋ถ„์ด ์˜ฌ๋ผ์˜ค๊ฒ ์ง€๋งŒ ๋‚˜๋จธ์ง€ ๋ชจ๋“ˆ๋“ค์ด ์žˆ๋‹ค. ๊ทธ ๋ชจ๋“ˆ๋“ค์€ ๋ถ€ํŒ…ํ•  ๋•Œ ํ•„์š”์— ๋”ฐ๋ผ์„œ ์˜ฌ๋ฆด ์ˆ˜๋„ ์žˆ๊ณ  ์•ˆ ์˜ฌ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค. 

 

๋ชจ๋“ˆ๋“ค์„ ๋ถ€ํŒ…ํ•˜๋Š” ๊ณผ์ • ์ค‘์— ํ˜น์€ ์‹คํ–‰ ์ค‘์— ์–ด๋–ค ๋ชจ๋“ˆ๋“ค์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํ˜น์€ ๊ธฐ์กด์— ์ด๋ฏธ ์‹คํ–‰๋˜๊ณ  ์žˆ๋˜ ๋ชจ๋“œ๋“ค์„ ๋บ„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

Hybrid Approach

 

ํ˜„๋Œ€ ์šด์˜ ์ฒด์ œ๋Š” ๋‹จ์ผํ•œ ๋ชจ๋ธ๋กœ๋งŒ ์„ค๋ช…๋˜๊ธฐ ์–ด๋ ต๋‹ค

 

์‹ค์ œ๋กœ ๋งŽ์€ ์šด์˜ ์ฒด์ œ๊ฐ€ ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์„ค๊ณ„ ์›์น™์„ ํ˜ผํ•ฉํ•˜์—ฌ ๊ตฌํ˜„๋œ๋‹ค

 

  • Linux ๋ฐ Solaris ์ปค๋„์€ ๋‹จ์ผ ์ปค๋„ ๋ฐ ๋ชจ๋“ˆํ™” ์ ‘๊ทผ๋ฒ• ์‚ฌ์šฉ
  • Windows๋Š” ๋ชจ๋…ธ๋ฆฌ์‹ ์ปค๋„ ๋ฐ ๋งˆ์ดํฌ๋กœ์ปค๋„ ์ ‘๊ทผ๋ฒ• ์‚ฌ์šฉ 

 

๋” ๋งŽ์€ ์˜ˆ์‹œ

 

  • ๋ฐ์Šคํฌํ†ฑ PC์šฉ Mac OS, ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค์šฉ iOS, ๊ทธ๋ฆฌ๊ณ  ์•ˆ๋“œ๋กœ์ด๋“œ ์šด์˜ ์ฒด์ œ
728x90

'{Lecture} > OS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[OS] Chapter 6 : Process Synchronization  (1) 2023.10.28
[OS] Chapter 5: CPU Scheduling  (0) 2023.10.18
[OS] Chapter 4: Multithreaded Programming  (0) 2023.10.14
[OS] Chapter 3: Processes  (0) 2023.10.13
[OS]chapter 1: Introduction  (2) 2023.10.08