๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒฑ CS/์šด์˜์ฒด์ œ(OS)

[์šด์˜์ฒด์ œ ๊ณต๋ฃก์ฑ…] Ch 1. Introduction

๐Ÿ“ ๊ณต๋ฃก์ฑ… ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™๊ต์—์„œ ์ˆ˜์—…ํ–ˆ๋˜ ์šด์˜์ฒด์ œ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

What Operating Systems Do?

  • ์šด์˜์ฒด์ œ = ์ปดํ“จํ„ฐ์˜ ์‚ฌ์šฉ์ž์™€ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด ์ค‘๊ฐœ ์—ญํ• 

  • OS๋Š” ํ•˜๋“œ์›จ์–ด์˜ ํŠน์„ฑ์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ํŽธํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰์‹œ์ผœ์ฃผ๋„๋ก ํ•œ๋‹ค.
    • convenience(ํŽธ๋ฆฌ์„ฑ) : GUI๋ฅผ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰, ์ข…๋ฃŒ ๋“ฑ๋“ฑ ํŽธํ•˜๊ฒŒ
    • efficiency (ํšจ์œจ์„ฑ) : ์ œํ•œ๋œ ์ž์›, ๋‚ญ๋น„ X

0๏ธโƒฃ Computer Architecture 101

(1) von Neumann Architecture

  • ์ปดํ“จํ„ฐ = ์ฃผ์–ด์ง„ ํ…Œ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰
    • Central Processing Unit
      • arithmetic logic unit : ๊ณ„์‚ฐ(+-/*)
      • process register : ์ €์žฅ
    • ๋ฉ”๋ชจ๋ฆฌ : ๋ฐ์ดํ„ฐ์™€ instruction์„ “๊ฐ™์ด” ๊ฐ–๊ณ  ์žˆ๋‹ค.
    ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ(add)๋œ instruction์„, CPU์—์„œ ํ•˜๋‚˜์”ฉ ์ฝ์–ด์™€์„œ(load) ์ฒ˜๋ฆฌ(execute)ํ•ด์ค€๋‹ค.

(2) Storage Hierarchy

  • Speed(์†๋„), Cost(๋น„์šฉ), Volatility(ํœ˜๋ฐœ์„ฑ, ๋ณ€๋™์„ฑ)
  • ๋ฉ”๋ชจ๋ฆฌ ์ข…๋ฅ˜ → ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ
    • ์ ‘๊ทผ ์†๋„, ๋งŒ๋“œ๋Š” ๋ฐ ๋“œ๋Š” ๋น„์šฉ, ์˜๊ตฌ์ /๋ฐ˜์˜๊ตฌ์  ๋ณด์กด(RAM, Cache, …)
    • ์œ„์™€ ๊ฐ™์€ ํŠน์„ฑ์— ๋”ฐ๋ผ์„œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด์ง€ OS๊ฐ€ ๊ฒฐ์ • (์ตœ๋Œ€ ์šฉ๋Ÿ‰์ด ์ •ํ•ด์ ธ ์žˆ์Œ)

โญ๏ธโญ๏ธโญ๏ธ

  • ์˜ˆ์‹œ : cache๋กœ ๋ถˆ๋Ÿฌ๋“ค์ธ instruction์„ OS๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฐ€


1๏ธโƒฃ Process Management

  • user : ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ๋ฆฌ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ
  • computer(HW) : ์ œํ•œ๋œ ์ž์› ๊ฐ€์ง€๊ณ  ํšจ์œจ์ ์œผ๋กœ

→ ๋‘ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ OS๋Š” Process Management & Process Synchronization ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.


(1) Process : ์ผ์˜ ๋‹จ์œ„

๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœ์„ธ์Šค๋ž€ ๋ฌด์—‡์ผ๊นŒ?

  • Process vs Program
    • ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ ํŒŒ์ผ์€ ํ”„๋กœ๊ทธ๋žจ(program)
    • ํ”„๋กœ์„ธ์Šค(process)๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ
    • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„
    • ์ฆ‰, ํ”„๋กœ์„ธ์Šค๋ž€ ์ผ์˜ ๋‹จ์œ„!
  • ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์— ์žˆ์„ ๋•Œ, ํ”„๋กœ์„ธ์Šค์˜ ๋ผ์ดํ”„ํƒ€์ž„์„ ๊ด€๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค.
    • PCB : ํ”„๋กœ๊ทธ๋žจ์„ ์ž˜ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ data structure(๊ตฌ์กฐ์ฒด)
      • ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ๋ชฐ๋ผ๋„ ๊ดœ์ฐฎ์ง€๋งŒ, OS ์ž…์žฅ์—์„œ๋Š” ์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌํ•œ๋‹ค.


(2) Thread : ํ•œ ํ”„๋กœ์„ธ์Šค ์ฝ”์–ด์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋‹จ์œ„

  • ์ด ํ”„๋กœ์„ธ์Šค์—๋Š”, ์ฝ”์–ด(core)๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • ์“ฐ๋ ˆ๋“œ๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค ์ฝ”์–ด์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” 1ํ”„๋กœ์„ธ์Šค 1์“ฐ๋ ˆ๋“œ์ธ๋ฐ, 1ํ”„๋กœ์„ธ์Šค n์“ฐ๋ ˆ๋“œ(=multithread) ๊ฐ€๋Šฅ
    • ์˜ˆ: ํฌ๋กฌ(ํ”„๋กœ์„ธ์Šค) - ์•Œ๋žŒ(thread 1), ์›นํŽ˜์ด์ง€(thread 2) , … ์—ฌ๋Ÿฌ ํ…Œ์Šคํฌ!


(3) Process Scheduling

  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค, ํ•˜๋‚˜์˜ ์ฝ”์–ด
  • ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์–ด๋–ค ์‹œ๊ฐ„์— ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ด ๋งŽ์ด ๋‹ฌ๋ผ์ง„๋‹ค.
  • ์‹œ๊ฐ„๋Œ€๋ฅผ ์ž˜ ๋‚˜๋ˆ ์„œ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ์˜ˆ) Round-Robin ; 1๋ฒˆ 10์ดˆ, 2๋ฒˆ 10์ดˆ, 3๋ฒˆ 10์ดˆ … → ๊ฐ๊ฐ ๋Œ์•„๊ฐ€๋ฉด์„œ ๊ณตํ‰ํ•˜๊ฒŒ
    • etc) First-Come, First Served Shortest-Job-First Multi-level-Queue Priority

2๏ธโƒฃ Process Synchronization

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ๋•Œ ์ž˜ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋™๊ธฐํ™” → synchronization
  • ๊ณต์œ  ๋ณ€์ˆ˜, ์ž์›์— ๋Œ€ํ•œ ๊ด€๋ฆฌ → critical section


3๏ธโƒฃ Memory Management

: ํ•œ์ •์  ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ๋ฆด์ง€

  • ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋ ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์–ด๋”˜๊ฐ€์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณดํ†ต array๋กœ ํ‘œํ˜„๋˜๋Š”๋ฐ, ํ”„๋กœ์„ธ์Šค์˜ ์ฒซ๋ถ€๋ถ„์„ low, ๋๋ถ€๋ถ„์„ high
  • ํ•œ ๋ฒˆ ์“ฐ์ด๊ณ , ๋’ค์— ์•ˆ ์“ฐ์ธ๋‹ค๋ฉด.. ๋‹ค๋ฅธ ์• ๋“ค์ด ์“ฐ๋„๋ก ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค (๋‚˜์ค‘์— ๋” ์ž์„ธํžˆ)
  • ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ• = ๊ณ ์ •์ ์œผ๋กœ ์—ฐ์†๋œ ๊ณต๊ฐ„
    • ๋ฌธ์ œ? ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ์“ธ ์šฉ๋Ÿ‰์ด ๋‹ฌ๋ผ์ง€๋Š”๋ฐ ๋‚จ๋Š” ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค(๋‚ญ๋น„, ๋น„ํšจ์œจ์ )→ ์ชผ๊ฐœ์„œ ์ž˜ ํ™œ์šฉ

์•ž์œผ๋กœ ์ž์ฃผ ๋งŒ๋‚˜๊ฒŒ ๋  ๊ทธ๋ฆผ


4๏ธโƒฃ Storage Management

: ํ•˜๋“œ์›จ์–ด์˜ ๋ฌผ๋ฆฌ์ ์ธ ํŠน์„ฑ์„ ๊ณ ๋ คํ•ด์„œ ์šด์˜์ฒด์ œ๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

→ ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์ตœ์†Œํ•œ์˜ ์›€์ง์ž„์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ!!

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

5๏ธโƒฃ File Management

ํด๋”์— ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋นจ๋ฆฌ ์ฃผ๋ ค๋ฉด ๋””์Šคํฌ์—์„œ ์ฝ์–ด์„œ ์ œ๊ณตํ•œ๋‹ค

ํด๋”๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์–ด์™€์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†”์„œ ๋นจ๋ฆฌ ์ œ๊ณตํ•˜๋Š” ํ…Œํฌ๋‹‰ ๊ฐ™์€ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํšจ์œจ์  ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค!


Summary

  • ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ํŒŒ์ผ, ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต(ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ, 0101๋กœ ์ด๋ค„์ง„๊ฑธ ๊ด€๋ฆฌํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ)
  • ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•˜๋ฉด์„œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ž˜ utilize (์ œํ•œ๋œ ์ฝ”์–ด์— ์ž˜ ์Šค์ผ€์ฅด๋งํ•ด์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ž˜ ์ œ๊ณตํ•  ๊ฒƒ์ธ์ง€, ํ•˜๋“œ๋””์Šคํฌ์˜ ํŠน์„ฑ์„ ๋ฐ˜์˜ํ•ด์„œ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์œ ์ €์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์ธ์ง€)
  •  
  •  
  •  
  •