์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ์„œ๋น„์Šค: ํ”„๋กœ์„ธ์Šค, ๋ฉ”๋ชจ๋ฆฌ, ํŒŒ์ผ๊ด€๋ฆฌ, ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

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

์ด๋ฅผ ์‹คํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ ๋‚ด์—์„œ๋Š” ๊ฐ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ˆˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ
  • ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ
  • ํŒŒ์ผ ๊ด€๋ฆฌ
  • ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ
  • ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๊ด€๋ฆฌ
  • ๋„คํŠธ์›Œํ‚น
  • ๋ณดํ˜ธ
  • ๊ธฐํƒ€โ€ฆ

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

ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ๋Š” ์šด์˜์ฒด์ œ ๊ธฐ๋Šฅ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํ”„๋กœ์„ธ์Šค์™€ ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์‹ค์ œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ **์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ(program in execution)**์„ ๋งํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ๋””์Šคํฌ์™€ ๊ฐ™์€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์—์„œ ์•„๋ฌด๋Ÿฐ ๋™์ž‘์„ ํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ์ด๋‹ค. ์ด๋ฅผ ์–ด๋– ํ•œ ์š”์ฒญ์— ์˜ํ•ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜์—ฌ CPU๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ํ”„๋กœ์„ธ์Šค๋ผ ๋ถ€๋ฅธ๋‹ค.

ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ(creation, deletion)
  • ํ”„๋กœ์„ธ์Šค ํ™œ๋™ ์ผ์‹œ ์ค‘์ง€, ํ™œ๋™ ์žฌ๊ฒŒ(suspend, resume)
  • ํ”„๋กœ์„ธ์Šค๊ฐ„ ํ†ต์‹ (interprocess communication: IPC)
  • ํ”„๋กœ์„ธ์Šค๊ฐ„ ๋™๊ธฐํ™”(synchronization)
  • ๊ต์ฐฉ์ƒํƒœ ์ฒ˜๋ฆฌ(deadlock handling)

2. ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ(Main memory management)

์ฃผ๊ธฐ์–ต์žฅ์น˜ ์ฆ‰, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์ด๋‹ค. CPU๋Š” ์˜ค์ง ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ(ํ”„๋กœ์„ธ์Šค)ํ•˜๊ณ ๋งŒ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ์—์„œ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ• ๋‹น(allocation)
  • ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋Š ๋ถ€๋ถ„์ด ์–ด๋Š ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹น๋˜์—ˆ๋Š”๊ฐ€ ์ถ”์  ๋ฐ ๊ฐ์‹œ
  • ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ํšŒ์ˆ˜(deallocation)
  • ๋ฉ”๋ชจ๋ฆฌ์˜ ํšจ๊ณผ์  ์‚ฌ์šฉ
  • ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ: ๋ฌผ๋ฆฌ์  ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฐ ์šฉ๋Ÿ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ํŒŒ์ผ ๊ด€๋ฆฌ(File management)

๋””์Šคํฌ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ Track๊ณผ sector๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ํŒŒ์ผ์ด๋ผ๋Š” ๋…ผ๋ฆฌ์  ๊ด€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํŒŒ์ผ์€ OS๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ปดํ“จํ„ฐ์—์„œ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋ณต์žกํ•œ ๊ณผ์ •์œผ๋กœ ํ•˜๋“œ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒŒ์ผ์ด๋ผ๋Š” ๋…ผ๋ฆฌ์  ํ˜•ํƒœ๋กœ ์šด์˜์ฒด์ œ์—์„œ ๊ด€๋ฆฌํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค.

  • ํŒŒ์ผ์˜ ์ƒ์„ฑ๊ณผ ์‚ญ์ œ(file creation, deletion)
  • ๋””๋ ‰ํ† ๋ฆฌ(Directory)์˜ ์ƒ์„ฑ๊ณผ ์‚ญ์ œ
  • ๊ธฐ๋ณธ ๋™์ž‘ ์ง€์›: open, close, read, write, create, delete
  • Track/sector - file ๊ฐ„์˜ ๋งคํ•‘(mapping)
  • ๋ฐฑ์—…(Backup)

4. ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ(Secondary storage management)

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

  • ๋นˆ ๊ณต๊ฐ„ ๊ด€๋ฆฌ(Free space management)
  • ์ €์žฅ๊ณต๊ฐ„ ํ• ๋‹น(Storage allocation)
  • ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง(Disk scheduling)

5. ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๊ด€๋ฆฌ(I/O device management)

์ž…์ถœ๋ ฅ ์žฅ์น˜์—๋Š” ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ํ”„๋ฆฐํ„ฐ, ์Šคํ”ผ์ปค, ๋งˆ์ดํฌ ๋“ฑ์ด ์žˆ๋‹ค. ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๊ด€๋ฆฌ๋Š” ์ด์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค.

  • ์žฅ์น˜ ๋“œ๋ผ์ด๋ธŒ(Device drivers)
  • ์ž…์ถœ๋ ฅ ์žฅ์น˜์˜ ์„ฑ๋Šฅํ–ฅ์ƒ: buffering, caching, spooling

6. ์‹œ์Šคํ…œ ์ฝœ(System call)

์‹œ์Šคํ…œ ์ฝœ์€ ์œ ์ € ํ”„๋กœ์„ธ์Šค์—์„œ ์šด์˜์ฒด์ œ ์„œ๋น„์Šค๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ ์ด๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ˜ธ์ถœ์ด๋‹ค.

6.1 ์ฃผ์š” ์‹œ์Šคํ…œ ์ฝœ

  • Process: end(์ •์ƒ ์ข…๋ฃŒ), abort(๊ฐ•์ œ ์ข…๋ฃŒ), load, execute, create, terminate, get/set, attributes, wait event, signal event
  • Memory: allocate, free
  • File: create, delete, open, close, read, write, get/set attributes
  • Device: request, release, read, write, get/set attributes, attach/detach devices
  • Information: get/set time, get/set system data
  • Communication: socket, send, receive

Reference