CS

[OS] ์šด์˜์ฒด์ œ(Operating System)๋ž€?

meeeeejin 2021. 10. 16. 22:55

 

์šด์˜์ฒด์ œ๋ž€?

๐Ÿ’ก ์šด์˜์ฒด์ œ๋ž€?

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

์ถœ์ฒ˜ : <Operating System Concepts> 9th ed. A. Silberschatz

 

 

 

๐Ÿ’ก ์šด์˜์ฒด์ œ์™€ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ ์šฉ์–ด

  • ํ”„๋กœ๊ทธ๋žจ(Program)
    : ์ปดํ“จํ„ฐ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ์ผ๋ จ์˜ ๋ช…๋ น์–ด ๋ชจ์Œ
  • ํ”„๋กœ์„ธ์Šค(Process)
    : ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ถ”์ƒํ™”
  • ์ฃผ์†Œ ๊ณต๊ฐ„(Address Space)
    : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์„œ๋กœ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์€ ์นจ๋ฒ”ํ•  ์ˆ˜ ์—†์Œ(Protection Domain)
  • ํŒŒ์ผ(File)
    : ํ”„๋กœ์„ธ์Šค์—์„œ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” persistent storage
  • ํฌํŠธ(Port)
    : ์ปดํ“จํ„ฐ ๊ฐ„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” communication endpoint๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ์„ž์ด์ง€ ์•Š๊ฒŒ ํ•ด ์คŒ

 

 

 

๐Ÿ’ก ์œ ์ € ๋ชจ๋“œ vs ์ปค๋„ ๋ชจ๋“œ

์šด์˜์ฒด์ œ๋Š” ์œ ์ € ๋ชจ๋“œ(user mode)์™€ ์ปค๋„ ๋ชจ๋“œ(kernel mode)๋กœ ๋‚˜๋‰˜์–ด์„œ ๋™์ž‘ํ•œ๋‹ค. ์œ ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์šด์˜์ฒด์ œ์˜ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์„œ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ๋‚˜๋‰œ๋‹ค. ์œ ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปค๋„ ๋ชจ๋“œ์—์„œ๋งŒ ์ œ๊ณต๋˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ์œ ์ € ๋ชจ๋“œ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹œ์Šคํ…œ ์ฝœ(system call)์„ ํ•ด์„œ ํŠธ๋žฉ(trap)์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ์ดํ›„ ์ปค๋„ ๋ชจ๋“œ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์œ ์ € ๋ชจ๋“œ๋กœ ์‹คํ–‰ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

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

 

 

โœ”์‹œ์Šคํ…œ ์ฝœ(System Call)

์šด์˜์ฒด์ œ์˜ ์ปค๋„์ด ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค

 

 

 

๐Ÿ’ก ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

โœ” ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ(Multi-processing)

  • 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ
  • parallel system, multi-core system์ด๋ผ๊ณ ๋„ ํ•จ
  • ๋Œ€์นญ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ(Symmetric Multiprocessing, SMP)
    : ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์„œ๊ฐ€ ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ, ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์„œ๋Š” SMP๋ฅผ ์‚ฌ์šฉ

์ถœ์ฒ˜: https://velog.io/@chy0428/OS-๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ-๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ

 

์ด๋ฐ–์—๋„ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ, ํด๋Ÿฌ์Šคํ„ฐ ์‹œ์Šคํ…œ(๊ณต๋™์˜ ๋ชฉ์กฑ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ž‘์—… ์ˆ˜ํ–‰), ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ(ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•œ OS ๋ฐ SW๊ฐ€ HW์— ํƒ‘์žฌ๋œ ํ˜•ํƒœ์˜ ์‹œ์Šคํ…œ, ex ์Šค๋งˆํŠธํฐ), ๋ฆฌ์–ผํƒ€์ž„ ์‹œ์Šคํ…œ ๋“ฑ์ด ์žˆ๋‹ค. 

 

 

 

๐Ÿ’ก ์šด์˜์ฒด์ œ ๊ตฌ์กฐ

โœ” ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ(Multi-programming)

ํ•˜๋‚˜์˜ ์ž‘์—… ์ง„ํ–‰ ์ค‘์— I/O ์ž‘์—… ๋“ฑ์ด ๋ฐœ์ƒํ•˜์—ฌ CPU๊ฐ€ idle์ด ๋˜๋ฉด, ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹œ์ž‘ํ•ด์„œ CPU์˜ ํšจ์œจ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋™์‹œ์— ์˜ฌ๋ผ์™€์•ผ ํ•œ๋‹ค. ์ฆ‰, ๋‹ค๋ฅด๊ฒŒ ๋งํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ํ•œ๋‹ค. 

์ถœ์ฒ˜: https://www.thecrazyprogrammer.com/2014/12/difference-between-multiprogramming-multitasking-multiprocessing-multithreading.html

 

 

โœ” ํƒ€์ž„ ์‰์–ด๋ง(Time-sharing)

๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น(Multi-tasking)์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, CPU๊ฐ€ ์Šค์ผ€์ค„๋ง์„ ํ†ตํ•ด ์ž‘์—…๋“ค์„ ๋น ๋ฅด๊ฒŒ switching ํ•˜๋ฉด์„œ ๋งˆ์น˜ ๋™์‹œ์— ์ž‘์—…๋“ค์ด ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น ์ค‘์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ, ์Šค์™€ํ•‘(Swapping)์„ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ถœ์ฐจ: https://www.thecrazyprogrammer.com/2014/12/difference-between-multiprogramming-multitasking-multiprocessing-multithreading.html

 

 

 

๐Ÿ’ก ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ

1. ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ

ํ˜„์žฌ CPU๋ฅผ ์ ์œ ํ•ด์•ผ ํ•  ํ”„๋กœ์„ธ์Šค(๋˜๋Š” ์Šค๋ ˆ๋“œ)๋ฅผ ๊ฒฐ์ •(์Šค์ผ€์ค„๋ง)ํ•˜๊ณ , ์‹ค์ œ๋กœ CPU๋ฅผ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•œ๋‹ค. ๋˜ํ•œ ์ด ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๊ณต์œ  ์ž์› ์ ‘๊ทผ(๋™๊ธฐํ™”)๊ณผ ํ†ต์‹ (IPC ํ†ต์‹ ) ๋“ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค. 

 

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

๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ ํ•˜๋“œ๋””์Šคํฌ ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ํ• ๋‹น๊ณผ ํ•ด์ œ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ๊ฐ„์˜ ์นจ๋ฒ”์„ ๋ฐฉ์ง€ํ•˜๊ณ , ํšจ์œจ์„ฑ ์ฆ๋Œ€๋ฅผ ์œ„ํ•ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 

ํ•˜๋“œ๋””์Šคํฌ์—๋Š” ํŒŒ์ผ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค. ์ด๋Ÿฐ ํŒŒ์ผ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค. 

 

3. ๋„คํŠธ์›Œํ‚น

TCP/IP ๊ธฐ๋ฐ˜ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ๋“ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜์ฒด์ œ์—์„œ ์ง€์›ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

4. ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

ํ•˜๋‚˜์˜ PC๋ฅผ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ ๊ณ„์ •์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๋ณด์•ˆ์„ ์œ„ํ•ด ๊ฐœ์ธ ํŒŒ์ผ์— ๋Œ€ํ•ด์„  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ํ•œ๋‹ค๋˜์ง€, ํŒŒ์ผ์ด๋‚˜ ์‹œ์Šคํ…œ ์ž์›์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด๋‹ค. 

 

5. ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„

์‹œ์Šคํ…œ์—๋Š” ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ถ™์–ด์žˆ๋‹ค. ์šด์˜์ฒด์ œ๋Š” ์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์šด์˜์ฒด์ œ ์•ˆ์— ํ•˜๋“œ์›จ์–ด๋ฅผ ์ถ”์ƒํ™”ํ•ด์ฃผ๋Š” ๊ณ„์ธต์„ ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋ผ๊ณ  ํ•œ๋‹ค. 

 

 

 

Reference

 

 

 

728x90