ํฌ์ŠคํŠธ

๐ŸŒ‘ ์šด์˜์ฒด์ œ - OS

2023-03-09. 14:53
U-SS, โ€˜OS, ์šด์˜ ์ฒด์ œ ๊ณผ๋ชฉโ€™ ๊ธ€ ๊ณ„์Šน


๐Ÿ’ซ ๊ธธ๋ผ์žก์ด


  • ๋ฐฐ์šฐ๋Š” ๊ฒƒ
    • ์ปดํ“จํ„ฐ ์ž‘๋™ ๋ฐฉ์‹๊ณผ ๊ธฐ๋ณธ์  ๊ตฌ์„ฑ
    • ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์„ฑ๋Šฅ ๋ถ„์„ ๋ฐฉ๋ฒ•
    • ์ตœ์‹  ํ”„๋กœ์„ธ์„œ (์บ์‹œ, ํŒŒ์ดํ”„๋ผ์ธ)์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฌธ์ œ
  • ๋ฐฐ์šฐ๋Š” ์ด์œ 
    • ์ปดํ“จํ„ฐ ๊ณผํ•™์ž
    • ์„ฑ๋Šฅ ์ข‹์€ SW
    • HW ๊ตฌ๋งค ๊ฒฐ์ •, ์ „๋ฌธ์ž๋กœ์„œ ์กฐ์–ธ ์ œ๊ณต
  • ๊ต๊ณผ ๋‚ด์šฉ
    • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ „๋ฐ˜์  ๊ฐœ๋…
    • ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ์™€ ์‹คํ–‰
    • ์‹œ์Šคํ…œ์—์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์›๋ฆฌ
    • ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐ ํ†ต์‹ 

์ฃผ ๊ต์žฌ : ์šด์˜์ฒด์ œ ์ด๋ก ๊ณผ ์‹ค์ œ - ์ดํ˜•๋ด‰

์ œ1์žฅ ์šด์˜์ฒด์ œ์˜ ๊ฐœ๋… ๋ฐ ๋ฐœ์ „๊ณผ์ •
์ œ2์žฅ ์šด์˜์ฒด์ œ๋ฅผ ์œ„ํ•œ ๋ฐฐ๊ฒฝ ์ง€์‹
์ œ3์žฅ ์ž…ยท์ถœ๋ ฅ ๊ด€๋ฆฌ
์ œ4์žฅ ํ”„๋กœ์„ธ์Šค ๋ฐ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ
์ œ5์žฅ ํ”„๋กœ์„ธ์„œ(CPU) ๊ด€๋ฆฌ
์ œ6์žฅ ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”
์ œ7์žฅ ๊ต์ฐฉ ์ƒํƒœ ๊ด€๋ฆฌ
์ œ8์žฅ ๋ฉ”๋ชจ๋ฆฌ(์ฃผ๊ธฐ์–ต ์žฅ์น˜) ๊ด€๋ฆฌ
์ œ9์žฅ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
์ œ10์žฅ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ
์ œ11์žฅ ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง
์ œ12์žฅ ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ

OS ์‹œ์Šคํ…œ์˜ ์ข…๋ฅ˜
์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ
๋ช…๋ น์–ด ์‚ฌ์ดํด
Storage ๋ ˆ์ง€์Šคํ„ฐ
Addressing-Mode
Interrupt
CPU ์‹คํ–‰๋ชจ๋“œ
IO ์ž…์ถœ๋ ฅ ์žฅ์น˜
Process, Processor
CPU Scheduling
Race Condition - ๊ต์ฐฉ์ƒํƒœ
Memory ๊ด€๋ฆฌ
File
HDD

๐Ÿ’ซ OS


์ปดํ“จํ„ฐ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋ฒ•๊ณผ ์ ˆ์ฐจ๋ฅผ ๋ชจ์€ ์†Œํ”„ํŠธ์›จ์–ด ์ฒด๊ณ„
์ปดํ“จํ„ฐ๋ฅผ ์กฐ์ • ์šด์ „ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด

  • ํ•„์š”์„ฑ
    • ์ปดํ“จํ„ฐ์˜ ๊ธฐ๋ณธ์ ์ธ ์ฒ˜๋ฆฌ ๊ณผ์ • ๊ณ ์ฐฐ
      • IPO Input-Process-Output
      • ๋งŒ์•ฝ ๋งˆ์šฐ์Šค,ํ‚ค๋ณด๋“œ,๋ชจ๋‹ˆํ„ฐ,ํ”„๋ฆฐํ„ฐ ๋“ฑ ๊ธฐ๋ณธ์ ์ธ ์ž…์ถœ๋ ฅ ๋ฐฉ๋ฒ•์„ ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด
      • ํ‚ค๋ณด๋“œ ๋งˆ์šฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” GUI vs ์ฝ˜์†”
  • ์ฃผ์š” ๋ชฉ์  ๊ธฐ๋Šฅ
    • ํŽธ๋ฆฌ์„ฑ ์ถ”๊ตฌ
      • ์‚ฌ์šฉ์ž์™€ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์˜ ์ค‘๊ณ„/๊ธฐ๊ต/์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• 
      • ์‚ฌ์šฉ์ž๋“ค์ด ์ปดํ“จํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์คŒ (์‚ฌ์šฉ์ž ํ™”๋ฉด)
    • ํšจ์œจ์„ฑ ์ถ”๊ตฌ
      • CPU, ๋ฉ”๋ชจ๋ฆฌ๋“ฑ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ์ž์› ๊ด€๋ฆฌ ์—ญํ• 
        • @ ์ž‘์—…๊ด€๋ฆฌ์ž ์—ด์–ด๋ณด๋ฉด ์ˆ˜๋ฐฑ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘
      • ๊ฐ’๋น„์‹ผ ์ปดํ“จํ„ฐ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ด์œผ๋กœ์จ ํˆฌ์ž ํšจ์œจ ์ฆ๋Œ€ (์‹œ์Šคํ…œ์ธก๋ฉด)
    • ๋ณด์•ˆ์„ฑ ์ถ”๊ตฌ
      • ์ปดํ“จํ„ฐ์˜ ๋‚ด๋ถ€ ์ž์›(HW)์™€ ์‚ฌ์šฉ์ž ์ •๋ณด(Data)๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ์—ญํ•  ๋‹ด๋‹น
      • ์ปดํ“จํ„ฐ์™€ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•จ์œผ๋กœ์จ ์ง€์†์  ์šด์šฉ ์œ ์ง€(์‚ฌ์šฉ์ž, ์ปดํ“จํ„ฐ ๋™์‹œ ๋งŒ์กฑ)
  • ์‹ค์ฒด ๋ฐ ํ™œ๋™
    • ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋žจ
      • ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋น„์Šค(ํ”„๋กœ๊ทธ๋žจ ์ ์žฌ-์‹คํ–‰(์ž…๋ ฅ/๊ณ„์‚ฐ/์ถœ๋ ฅ)-ํ”„๋กœ๊ทธ๋žจ ์ œ๊ฑฐ)๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ
      • ๋ถ€ํŠธ ๊ณผ์ •์„ ๊ฑฐ์ณ ๋ฉ”๋ชจ๋ฆฌ์— ์„ค์น˜๋จ
    • ์šด์˜์ฒด์ œ ์ ‘์ด‰
      • ์‚ฌ์šฉ์ž๋“ค์€ ์‹œ์Šคํ…œ ์ฝœ System Call ์ด๋ผ ๋ถ€๋ฅด๋Š” ์„œ๋น„์Šค ์š”์ฒญ ์ ‘์† ์ฐฝ๊ตฌ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋˜๋Œ๋ ค ๋ฐ›์Œ (Operating System Interface)
      • ์‹œ์Šคํ…œ ์ฝœ์€ ํ•จ์ˆ˜ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๊ณ , ์‚ฌ์šฉ์ž๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ
      • @ printf, mkdir โ†’ ํ”„๋กœ๊ทธ๋žจ์ด ๋ชจ๋‹ˆํ„ฐ์— ๋„์šฐ๋Š” ๊ฒŒ/๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์ด๋ฅผ ์šด์˜์ฒด์ œ์— ์š”์ฒญ/๋ถ€ํƒํ•˜๊ณ  = ์‹œ์Šคํ…œ ์ฝœ System Call, ์šด์˜์ฒด์ œ๊ฐ€ ๋ชจ๋‹ˆํ„ฐ์— ๋„์›€/๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ฌ โ†’ ๋‹ค์‹œ ํ˜ธ์ถœ๋œ ๊ณณ์œผ๋กœ ๋ณต๊ท€
      • @ ์ด ์™ธ์—๋„ ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ์šด์˜์ฒด์ œ ์ฒ˜๋ฆฌ ๋“ค์ด ๋งŽ์Œ
      • @ atoi๋Š” ๊ทธ๋ƒฅ ํ•จ์ˆ˜, ๊ทผ๋ฐ printf์€ ์šด์˜์ฒด์ œ๋กœ, ์ƒ๊ธด ๊ฒƒ ๋˜‘๊ฐ™์€ ๋ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค
      • @ Win32API - C, MFC - CPP, ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋จธ
  • (์‹œ์Šคํ…œ) ๋ช…๋ น์–ด
  • ์‹œ์Šคํ…œ ๋ช…๋ น์–ด๋Š” ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค = ์šด์˜์ฒด์ œ์—๊ฒŒ ๋ถ€ํƒํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค
    • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ ์ฝœ์„ ๋งค๋ฒˆ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋ฉด ๋ถˆํŽธ
      • ์˜ˆ) ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ์‚ญ์ œ, ํŒŒ์ผ ์ƒ์„ฑ์‚ญ์ œ
    • ์œ„์™€ ๊ฐ™์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ ์ฝœ์„ ์œ„ํ•ด ๋ฏธ๋ฆฌ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ(์‹คํ–‰ํŒŒ์ผ)์„ ์‹œ์Šคํ…œ ๋ช…๋ น์–ด๋ผ ํ•จ
    • ์œ ๋‹‰์Šค/๋ฆฌ๋ˆ…์Šค์˜ mkdir, rmdir, rm, vi
    • ์œˆ๋„์šฐ ๋„์Šค์ฐฝ์˜ del, ren, mkdir, rmdir

๐Ÿซง ๊ณ„์ธต๊ตฌ์กฐ, ์ถ”์ƒํ™”

์ปดํ“จํ„ฐ์‹œ์Šคํ…œ ๊ณ„์ธต ๊ตฌ์กฐ

OS ์ถ”์ƒํ™”

  • Processes (Processor)
    • Virtual Memory (Main Memory)
      • Files (I/O Devices)

๐Ÿซง TODO

Process ํ”„๋กœ์„ธ์Šค

  • Thread
    • Multi Thread : ๋‹จ์ผ ํ”„๋กœ์„ธ์„œ์—์„œ ๋‘ ๊ฐœ์˜ ์‹คํ–‰ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค
    • Thread : ์‹คํ–‰ ๋‹จ์œ„

Virtual Memory

File

  • OS is a resource manager
    • Sharing
    • Protection
    • Fairness
    • Performance
  • OS provides the progrma execution envionment
    • Hides the messy details which must be performed
    • Presents users with a virtual machine, easier to use

๐Ÿ’ซ OS ์ข…๋ฅ˜

โ€“

๐Ÿซง Linux

Unix์™€ ์œ ์‚ฌํ•œ OS
time-sharing, multi-task, multi-user OS

  • ๊ตฌ์„ฑ
    • ์‘์šฉ
    • ์…€ - ๋ช…๋ น ํ•ด์„๊ธฐ (bash, csh ๋“ฑ)
    • ์ปค๋„ - ์—„๊ฒฉํ•œ ์˜๋ฏธ์˜ ๋ฆฌ๋ˆ…์Šค
    • ํ•˜๋“œ์›จ์–ด

๐Ÿ’ซ OS ์‹œ์Šคํ…œ์˜ ์ข…๋ฅ˜


๋‹จ์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ผ๊ด„์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ
๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ผ๊ด„์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ
์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ
๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ธฐ ์‹œ์Šคํ…œ
๋ถ„์‚ฐ Distributed ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ

  • ๋‹จ์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ผ๊ด„์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ, Single-stream(์ค„๊ธฐ๊ฐ€ ํ•˜๋‚˜) Batch(๋ฐ”๊ตฌ๋‹ˆ, ๋ญ‰ํƒฑ์ด ํ•œ ๋ฒˆ์—) Processing Systems
    • ์˜ค์ง ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ๋งŒ์„ ์ ์žฌํ•˜์—ฌ ์‹คํ–‰
      • @ ๊ณต์žฅ์ฒ˜๋Ÿผ ํ•˜๋‚˜ ์ฒ˜๋ฆฌ ํ›„ ๋‹ค๋ฆ„
      • @ HDD๊ฐ€ ์—†์—ˆ๊ธฐ์— ํŽ€์น˜์นด๋“œ ๋‹ค๋ฐœ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๋ฅผ ์˜ฌ๋ฆผ
      • @ ํŽ€์น˜์นด๋“œ ํ•œ ์žฅ = ํ•œ ๋ฌธ์žฅ
    • ์ฒ˜๋ฆฌ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด ์ž…์ถœ๋ ฅ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ–ˆ๋‹ค๋ฉด?
      • @ ๋‹ค๋ฅธ ์ผ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ๋Œ€๊ธฐํ•ด์•ผ ํ•จ => CPU ํšจ์œจ, Utilization ์ด์šฉ๋ฅ , Through-put ๋‹จ์œ„ ์‹œ๊ฐ„ ๋‹น ์ฒ˜๋ฆฌ๋Ÿ‰

ํŽ€์น˜์นด๋“œ ๋‹ค๋ฐœ (ํ”„๋กœ๊ทธ๋žจ)
|
์นด๋“œ ๋ฆฌ๋”๊ธฐ
|
Main Memory
{
User Program
โ€“
Operating System
}

  • ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ผ๊ด„์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ Multiprogramming Batch Processing Systems
    • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์กฐ๊ฐํ•˜์—ฌ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ ์žฌํ•˜์—ฌ ์‹คํ–‰
      • @ ๋ฉ€ํ‹ฐ ์ŠคํŠธ๋ฆผ, ๊ทผ๋ฐ ๋Œ€์‹  ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์“ด๋‹ค
    • ์ฒ˜๋ฆฌ ์ค‘์ด๋˜ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ž…์ถœ๋ ฅ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ–ˆ๋‹ค๋ฉด?
      • @ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์ฒ˜๋ฆฌ ๋๋‚˜๊ฑฐ๋‚˜, ์ž…์ถœ๋ ฅ์„ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ ์ฒ˜๋ฆฌ
    • ์ž๊ธฐ ํ”„๋กœ๊ทธ๋žจ์ด ์–ธ์ œ ๋๋‚ ์ง€ ์˜ˆ์ธก ๋ถˆ๊ฐ€
      • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ๋” ๋Š๋ฆฌ๋‹ค๋ฉด ๊ทธ๋งŒํผ ๋” ๋Š๋ฆฌ๊ฒŒ

ํŽ€์น˜์นด๋“œ ๋‹ค๋ฐœ (ํ”„๋กœ๊ทธ๋žจ)
| | |
์นด๋“œ ๋ฆฌ๋”๊ธฐ
| | |
Main Memory
{
User Program 2
User Program 1
User Program 0
โ€“
Operating System
}

  • ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ Time-Sharing Systems
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ ์žฌํ•˜์—ฌ ์‹คํ–‰ํ•˜๋˜
      • ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ์˜ ์ฃผ๊ธฐ๋กœ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๊ณจ๊ณ ๋ฃจ ์กฐ๊ธˆ์”ฉ ์ฒ˜๋ฆฌ
      • ํ•œ ๋ฒˆ์— ์ฃผ์–ด์ง€๋Š” ์ตœ๋Œ€ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ํƒ€์ž„ ํ€€ํ…€ Time Quantom ํ˜น์€ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค Time Slice
    • ๋‹ค์ค‘ ์‚ฌ์šฉ์ž๋“ค์˜ ๋Œ€ํ™”์  ์ฒ˜๋ฆฌ Interactive Processing ํ™˜๊ฒฝ์— ์ ํ•ฉ
  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ Parallel Processing System
    • ๋‹ค์ค‘์ฒ˜๋ฆฌ๊ธฐ ์‹œ์Šคํ…œ Multi Processor System
      • ์ฒ˜๋ฆฌ๊ธฐ CPU ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์žฅ์ฐฉํ•œ ์‹œ์Šคํ…œ
      • @ ์™œ CPU๊ฐ€ ์•„๋‹ˆ๋ผ Processor
        • @ Processor - CPU FPU GPU ์ผ๋ฐ˜ํ™”
        • @ ์—ฌ๊ธฐ์„  CPU๋ฅผ ์˜๋ฏธ
      • ์ฒ˜๋ฆฌ๊ธฐ ์ˆ˜ ๋งŒํผ์˜ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์Œ
      • ์ฒ˜๋ฆฌ๊ธฐ ์ผ๋ถ€๊ฐ€ ๊ณ ์žฅ๋‚˜๋”๋ผ๋„ ๋‚˜๋จธ์ง€ ์ฒ˜๋ฆฌ๊ธฐ๋“ค๋กœ ๊ธฐ๋Šฅ์œ ์ง€ ๊ฐ€๋Šฅ
        • ๊ฒฐํ•จ ํ—ˆ์šฉ ์ปดํ“จํ„ฐ Fault Tolerant Computer
        • ์„ฑ๋Šฅ Throughput ๊ณผ ์‹ ๋ขฐ์„ฑ Reliability ํ–ฅ์ƒ
          • @ ์„ฑ๋Šฅ - CPU๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์žฅ์ฐฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ 
    • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ Parallel Processing ์™€ ๋ณ‘ํ–‰ ์ฒ˜๋ฆฌ Concurrent Processing
      • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ์–ด๋–ค ์‹œ๊ฐ์„ ๊ธฐ์ค€์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜๋ฆฌ
      • ๋ณ‘ํ–‰ ์ฒ˜๋ฆฌ๋Š” ์–ด๋–ค ์‹œ๊ฐ์„ ๊ธฐ์ค€์—์„œ ์˜ค์ง ํ•œ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜๋ฆฌํ•˜๋‚˜, ๋ฒˆ๊ฐˆ์•„ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ์ „์ฒด์ (๊ฑฐ์‹œ์ )์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํšจ๊ณผ๋ฅผ ์–ป์Œ
    • ๋„“์€ ์˜๋ฏธ์—์„œ ๋ถ„์‚ฐ Distributed ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์˜ ์ผ์ข…
      • ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋…๋ฆฝ๋œ ์‹œ์Šคํ…œ์„ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ
      • ์‹œ์Šคํ…œ ํ•˜๋‚˜์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋†ˆ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋‘๋Š” : ๊ฐ„๊ฒฐํ™” ์‹œ์Šคํ…œ : ๋ฒ„์Šค๋กœ ์—ฐ๊ฒฐ, Tightly-Coupled
      • ์‹œ์Šคํ…œ์„ ๋…๋ฆฝ์‹œ์ผœ๋†“๊ณ  ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ถ„๋‹จ ์ฒ˜๋ฆฌ : ์•ฝ๊ฒฐํ•ฉ ์‹œ์Šคํ…œ Loosely Coupled
  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ
    • ๋Œ€์นญํ˜•๊ณผ ๋น„๋Œ€์นญํ˜• ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ธฐ ์‹œ์Šคํ…œ
      • ๋Œ€์นญํ˜• ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ธฐ ์‹œ์Šคํ…œ SMP Symmetric Multi-Processor System
        • ์ฒ˜๋ฆฌ๊ธฐ๋“ค์˜ ์—ญํ•  ๋ฒ”์œ„๊ฐ€ ๋™๋“ฑ, ์ฆ‰ ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๊ฐœ๋… ์—†์Œ
        • ์–ด๋Š ์ฒ˜๋ฆฌ๊ธฐ๋‚˜ ์‚ฌ์šฉ์ž ์˜์—ญ๊ณผ ์‹œ์Šคํ…œ ์˜์—ญ ์‹คํ–‰ ๊ฐ€๋Šฅ
          • ์šด์˜์ฒด์ œ์— ๋ถ€๋‹ด
          • ๋™์‹œ์— ์‹œ์Šคํ…œ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฝ์Ÿ ์ƒํƒœ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
        • ์ฒ˜๋ฆฌ๊ธฐ ํ•˜๋‚˜๊ฐ€ ๊ณ ์žฅ๋‚˜๋„ ์ž‘๋™
      • ๋น„๋Œ€์นญํ˜• ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ธฐ ์‹œ์Šคํ…œ ANP Asymmetric
        • ๋งˆ์Šคํ„ฐ ์ฒ˜๋ฆฌ๊ธฐ์™€ ์Šฌ๋ ˆ์ด๋ธŒ ์ฒ˜๋ฆฌ๊ธฐ ์ง€์ •
        • ์‹œ์Šคํ…œ ์˜์—ญ์€ ๋งˆ์Šคํ„ฐ ์ฒ˜๋ฆฌ๊ธฐ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ
        • ๋งˆ์Šคํ„ฐ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๊ณ ์žฅ๋‚˜๋ฉด ์‹œ์Šคํ…œ ์ „์ฒด ์Šคํ†ฑ
        • ์šด์˜์ฒด์ œ ๋ถ€๋‹ด, ๊ตฌํ˜„ ๋‚œ์ด๋„ ๊ฐ์†Œ
        • ๋งˆ์Šคํ„ฐ ๊ณ ์žฅ๋‚˜๋ฉด ๋Œ€์ฑ…์ด ์—†๋‹ค

Bus , ์ฒ˜๋ฆฌ๊ธฐ๋“ค ๊ฐ„ ๋ฒ„์Šค ์—ฐ๊ฒฐ ๋ฐฉ์‹ (๊ฐ•๊ฒฐํ•ฉ ์‹œ์Šคํ…œ)

  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ (์•ฝ๊ฒฐํ•ฉ) ์‹œ์Šคํ…œ
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ์‹œ์Šคํ…œ์„ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ
    • ์ฃผ์–ด์ง„ ์ผ์„ ๋ถ„๋‹ดํ•˜์—ฌ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ
    • ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ธฐ ์‹œ์Šคํ…œ๋„ ๋„“์€ ์˜๋ฏธ์—์„œ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ โ†’ ๊ฐ•๊ฒฐํ•ฉ ์‹œ์Šคใ…กํ…œ
    • ๋ณดํ†ต์€ ์•ฝ๊ฒฐํ•ฉ ์‹œ์Šคํ…œ ํ˜น์€ ํด๋Ÿฌ์Šคํ„ฐ๋ผ๊ณ  ํ•จ
  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์˜ ๋ชฉ์ 
    • ์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ, ์ž์› ํ™œ์šฉ๋„ ํ–ฅ์ƒ, ์‹œ์Šคํ…œ ์‹ ๋ขฐ๋„ ํ–ฅ์ƒ, ์ ์ง„์  ์‹œ์Šคํ…œ ํ™•์žฅ
  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์˜ ์ œ๊ณต ๊ธฐ๋Šฅ
    • ์œ„์น˜ ํˆฌ๋ช…์„ฑ(๋ถ„๋ฆฌ ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์šฐ๋ฆฌ, ํ•˜๋‚˜๋กœ ๋ณด์ด๊ฒŒ), ๊ณ ์žฅ ํˆฌ๋ช…์„ฑ(๊ณ ์žฅ๋‚˜๋„ ๋ชจ๋ฅด๊ณ ), ์ ‘๊ทผ ํˆฌ๋ช…์„ฑ(์ฐจ์ด๊ฐ€ ์žˆ์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค), ์ค‘๋ณต ๋ฐ ์ด๋™ ํˆฌ๋ช…์„ฑ(์ค‘๋ณต์ด์–ด๋„, ์‹œ์Šคํ…œ A์—์„œ B๋กœ ์˜ฎ๊ฒจ์ง€๋”๋ผ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฅด๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ฒŒ)
  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์˜ ์—ฐ๊ฒฐ ๋ฐฉ์‹
    • ํ•˜์ดํผํ๋ธŒ Hyper Cube
      • ํ•˜์ดํผ ํ๋ธŒ ์—ฐ๊ฒฐ๋ฐฉ์‹์ด ๋Œ€ํ‘œ์ 
      • 8 ๋…ธ๋“œ (์‹œ์Šคํ…œ)์ธ ๊ฒฝ์šฐ ๊ฐ ๋…ธ๋“œ๋Š” 3๊ฐœ์˜ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง
      • 16๋…ธ๋“œ์ธ ๊ฒฝ์šฐ ๊ฐ ๋…ธ๋“œ๋Š” 4๊ฐœ์˜ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง
    • ์™„์ „ ์—ฐ๊ฒฐ Fully Connected
      • ์ดˆ๊ธฐ ์„ค์น˜ ๋น„์šฉ์ด ํผ
      • ์‚ฌ์ดํŠธ ํ™•์žฅ ๋น„์šฉ์ด ํผ
      • ์‚ฌ์ดํŠธ ๊ฐ„ ํ†ต์‹  ์†๋„๊ฐ€ ๋น ๋ฆ„
      • ์„ ๋กœ ๊ณ ์žฅ์— ๋”ฐ๋ฅธ ์‹ ๋ขฐ๋„๊ฐ€ ๋†’์Œ
    • ์„ฑํ˜• Star
      • ์ดˆ๊ธฐ ์„ค์น˜ ๋น„์šฉ ์ ์Œ
      • ๊ฐ€์šด๋ฐ ์ค‘๊ณ„ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜ ๊ณผ๋Œ€
      • ์ค‘๊ณ„ ์‹œ์Šคํ…œ์˜ ๊ณ ์žฅ์— ๋”ฐ๋ฅธ ์‹ ๋ขฐ๋„ ์ €ํ•˜
      • ์‚ฌ์ดํŠธ ์ถ”๊ฐ€ ๋น„์šฉ์ด ์ ์Œ
    • ๋งํ˜• Ring
      • ์™„์ „ ์—ฐ๊ฒฐ๊ณผ ์„ฑํ˜•์˜ ์ ˆ์ถฉ
      • ์ดˆ๊ธฐ ์„ค์น˜์™€ ์‚ฌ์ดํŠธ ํ™•์žฅ ๋น„์šฉ์ด ๋น„๊ต์  ์ €๋ ด
      • ๋‘ ๊ฐœ ์ด์ƒ์˜ ์‚ฌ์ดํŠธ ๊ณ ์žฅ์€ ๋„คํŠธ์›Œํฌ ์–‘๋ถ„
  • NOS

  • ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ RealTime Systems
    • ํ”„๋กœ๊ทธ๋žจ์˜ ์ฒ˜๋ฆฌ ๋งˆ๊ฐ ์‹œํ•œ์„ ๋ณด์žฅํ•˜๋Š ์‹œ์Šคํ…œ (์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ํ™˜๊ฒฝ)
      • ์–ด๋–ค ์‚ฌ๊ฑด Event์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ, ์‚ฌ๊ฑด ๋ฐœ์ƒ ์‹œ๊ฐ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌ ์™„๋ฃŒ ์‹œ๊นŒ์ง€์˜ ์ตœ๋Œ€ ์†Œ์š”์‹œ๊ฐ„ ํ•œ๊ณ„๋ฅผ ๋ณด์žฅ
        • โ†’ ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ด ์˜ค๋ž˜๋„๋ก ์ง€์—ฐ๋œ๋‹ค๋ฉด?
    • ๊ฒฝ์„ฑ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ Hard Real-Time Systems
      • ํ”„๋กœ๊ทธ๋žจ์˜ ์ฒ˜๋ฆฌ ๋งˆ๊ฐ ์‹œํ•œ์„ ์›๋ž˜์˜ ๊ฐœ๋…๋Œ€๋กœ ์—„๊ฒฉํ•˜๊ฒŒ ๋ณด์žฅ
    • ์—ฐ์„ฑ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ Soft Real-Time Systems
      • ํ”„๋กœ๊ทธ๋žจ์˜ ์ฒ˜๋ฆฌ ๋งˆ๊ฐ ์‹œํ•œ์„ ์›๋ž˜์˜ ๊ฐœ๋…๋Œ€๋กœ ์—„๊ฒฉํ•˜๊ฒŒ ๋ณด์žฅํ•˜์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ, ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์ฒ˜๋ฆฌ ์ง€์—ฐ์„ ์ตœ์†Œํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ.
      • ๋ฒ”์šฉ ์šด์˜์ฒด์ œ์ธ ์œ ๋‹‰์Šค, ๋ฆฌ๋ˆ…์Šค, ์œˆ๋„์šฐ ๋“ฑ์—์„œ ์‹ค์‹œ๊ฐ„์„ฑ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ด€๋ฆฌ

๐Ÿ’ซ ์ด์ค‘ ๋ชจ๋“œ - Dual Mode Operation


CPU์˜ ๋‘ ๊ฐ€์ง€ ์‹คํ–‰๋ชจ๋“œ, ์‹œ์Šคํ…œ ๋ชจ๋“œ์™€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ
CPU๊ฐ€ ์‚ฌ์šฉ์ž ์˜์—ญ๊ณผ ์‹œ์Šคํ…œ ์˜์—ญ์„ ๋“œ๋‚˜๋“œ๋Š” ๊ฒƒ

์‹œ์Šคํ…œ ๋ชจ๋“œ - System Mode (ํŠน๊ถŒ Privileged Mode, ์ˆ˜ํผ๋ฐ”์ด์ € Supervisor Mode) โ†’ CPU๊ฐ€ ์šด์˜์ฒด์ œ ๋ถ€๋ถ„์„ ์‹คํ–‰ํ•  ๋•Œ ์„ค์ •๋˜๋Š” ๋ชจ๋“œ

์‚ฌ์šฉ์ž ๋ชจ๋“œ - User Mode (ํ”„๋กœ๊ทธ๋žจ Program Mode)
โ†’ CPU๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ์„ค์ •๋˜๋Š” ๋ชจ๋“œ

  • ํŠน๊ถŒ ๋ช…๋ น์–ด Privileged Instruction
    • ์‹œ์Šคํ…œ ๋ชจ๋“œ์—์„œ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„ ๋ช…๋ น์–ด
    • ์‚ฌ์šฉ์ž๋ชจ๋“œ์—์„œ ์‹คํ–‰๋  ๊ฒฝ์šฐ ์˜ˆ์™ธ ๋ฐœ์ƒ
    • ์ž…์ถœ๋ ฅ ๋ช…๋ น์–ด ๋“ฑ ์‹œ์Šคํ…œ ๋ณดํ˜ธ ๋ฐ ์œ ์ง€๋ฅผ ์œ„ํ•ด ํ•„์š”
  • ๋ชจ๋“œ๊ฐ„ ์ด๋™
    • ์‹œ์Šคํ…œ ๋ชจ๋“œ์—์„œ ์‹œ์ž‘(๋ถ€ํŒ…๊ณผ์ •)
    • ์‹œ์Šคํ…œ ๋ชจ๋“œ โ†’ ์‚ฌ์šฉ์ž ๋ชจ๋“œ
      • ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ ํ”„
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ โ†’ ์‹œ์Šคํ…œ ๋ชจ๋“œ
      • ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋“ฑ์˜ ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ์šด์˜์ฒด์ œ ๋‚ด ISR ๋กœ ์ ํ”„ํ•˜๋ฉด์„œ ์„ค์ •
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.