[์šด์˜์ฒด์ œ] Introduction to Operating System
๐Ÿ–ฅ CS/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ] Introduction to Operating System

์šด์˜์ฒด์ œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

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

  • ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋˜์–ด ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ& ๋‹ค๋ฅธ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

  • ์ข์€ ์˜๋ฏธ์˜ ์šด์˜์ฒด์ œ(์ปค๋„)
    • ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋ถ€๋ถ„
  • ๋„“์€ ์˜๋ฏธ์˜ ์šด์˜์ฒด์ œ
    • ์ปค๋„ ๋ฟ ์•„๋‹ˆ๋ผ ๊ฐ์ข… ์ฃผ๋ณ€ ์‹œ์Šคํ…œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํฌํ•จํ•œ ๊ฐœ๋…

์šด์˜์ฒด์ œ์˜ ๋ชฉ์ 

  • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณต
    • ์šด์˜์ฒด์ œ๋Š” ๋™์‹œ ์‚ฌ์šฉ์ž / ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๊ฐ์ž ๋…์ž์  ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ ๊ฐ™์€ ํ™˜์ƒ์„ ์ œ๊ณต
    • ํ•˜๋“œ์›จ์–ด๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋Š” ๋ณต์žกํ•œ ๋ถ€๋ถ„์„ ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ€ํ–‰
  • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ - A resource allocator
    • ํ”„๋กœ์„ธ์„œ, ๊ธฐ์–ต์žฅ์น˜, ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๋“ฑ์˜ ํšจ์œจ์ ์ธ ๊ด€๋ฆฌ
      • ์‚ฌ์šฉ์ž ๊ฐ„์˜ ํ˜•ํ‰์„ฑ ์žˆ๋Š” ์ž์› ๋ถ„๋ฐฐ
      • ์ฃผ์–ด์ง„ ์ž์›์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๋„๋ก
    • ์‚ฌ์šฉ์ž ๋ฐ ์šด์˜์ฒด์ œ ์ž์‹ ์„ ๋ณดํ˜ธ
    • ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ, ๋ฉ”์‹œ์ง€ ๋“ฑ์„ ๊ด€๋ฆฌ
    ex. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค์—๊ฒŒ ์งง์€ ์‹œ๊ฐ„์”ฉ CPU๋ฅผ ๋ฒˆ๊ฐˆ์•„ ํ• ๋‹น
  • ex. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค์— ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ ์ ˆํžˆ ๋ถ„๋ฐฐ

์šด์˜์ฒด์ œ์˜ ๋ถ„๋ฅ˜

  • ๋™์‹œ ์ž‘์—… ๊ฐ€๋Šฅ ์—ฌ๋ถ€
    • ๋‹จ์ผ ์ž‘์—…(single tasking)
      • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌ
      ex. ๊ณผ๊ฑฐ ํœด๋Œ€ํฐ, ์—˜๋ ˆ๋ฒ ์ดํ„ฐ, ํŠน์ˆ˜ ๋ชฉ์  ๊ธฐ๊ณ„
    • ๋‹ค์ค‘ ์ž‘์—…(multi taking)
      • ๋™์‹œ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ž‘์—… ์ฒ˜๋ฆฌ
  • ์‚ฌ์šฉ์ž์˜ ์ˆ˜
    • ๋‹จ์ผ ์‚ฌ์šฉ์ž(single user)
    • ๋‹ค์ค‘ ์‚ฌ์šฉ์ž(multi user)
  • ์ฒ˜๋ฆฌ ๋ฐฉ์‹
    • ์ผ๊ด„ ์ฒ˜๋ฆฌ(batch processing)
      • ์ž‘์—… ์š”์ฒญ์˜ ์ผ์ •๋Ÿ‰์„ ๋ชจ์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌ
      • ์ž‘์—…์ด ์™„์ „ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•จ
    • ์‹œ๋ถ„ํ• (Time sharing)
      • ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ปดํ“จํ„ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ผ์ •ํ•œ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์‚ฌ์šฉ
      • ์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ์งง์€ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ฐ€์ง
      • interactiveํ•œ ๋ฐฉ์‹
    • ์‹ค์‹œ๊ฐ„(Realtime OS) - Hard realtime system & Soft realtime system
      • ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ์–ด๋– ํ•œ ์ผ์ด ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋จ์ด ๋ณด์žฅ๋˜์–ด์•ผํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ OS
      • → Deadline ์กด์žฌ
      ex. ์›์ž๋กœ/๊ณต์žฅ ์ œ์–ด, ๋ฏธ์‚ฌ์ผ ์ œ์–ด, ๋ฐ˜๋„์ฒด ์žฅ๋น„, ๋กœ๋ณดํŠธ ์ œ์–ด
      • Soft realtime system
[์šฉ์–ด์ •๋ฆฌ]
์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์šฉ์–ด๋“ค
- Multitasking(= time sharing): ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰
- Time sharing: CPU์˜ ์‹œ๊ฐ„์„ ๋ถ„ํ• ํ•˜์—ฌ ๋‚˜๋ˆ„์–ด ์“ด๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ•์กฐ
- Multiprogramming: ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์Œ, ๋‹จ์ผ ํ”„๋กœ์„ธ์„œ์—์„œ ์‹คํ–‰
- Multiprocess: ์—ฌ๋Ÿฌ ๊ฐœ์˜ CPU(processor)๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰

* Multiprocessor: ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์— CPU(processor)๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ๋ถ™์–ด์žˆ์Œ์„ ์˜๋ฏธ

์šด์˜์ฒด์ œ์˜ ์˜ˆ

  • ์œ ๋‹‰์Šค(UNIX)
    • ๋Œ€ํ˜• ์ปดํ“จํ„ฐ๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง
    • ์ฝ”๋“œ์˜ ๋Œ€๋ถ€๋ถ„์„ C์–ธ์–ด๋กœ ์ž‘์„ฑ
    • ์ตœ์†Œํ•œ์˜ ์ปค๋„ ๊ตฌ์กฐ
    • ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์— ๋งž๊ฒŒ ํ™•์žฅ ์šฉ์ด
    • ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์šฉ์ด
    ex. Linux
  • ์œˆ๋„์šฐ(MS Windows)
    • ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง

์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ

  • ์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ 

 

  • CPU Scheduling
  • Memory Management
  • File Management
  • I/O Device Management
  • Process Management
    • ํ”„๋กœ๋ ˆ์Šค์˜ ์ƒ์„ฑ๊ณผ ์‚ญ์ œ
    • ์ž์› ํ• ๋‹น ๋ฐ ๋ฐ˜ํ™˜
    • ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ˜‘๋ ฅ
  • ๊ทธ ์™ธ
    • ๋ณดํ˜ธ ์‹œ์Šคํ…œ
    • ๋„คํŠธ์›Œํ‚น
    • ๋ช…๋ น์–ดํ•ด์„๊ธฐ