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

OS

[์šด์˜์ฒด์ œ] ์ปดํ“จํ„ฐ์™€ ๋ฉ”๋ชจ๋ฆฌ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ‘จ‍๐Ÿ’ป ์šด์˜์ฒด์ œ์˜ ์—ญํ• 

  • CPU ์Šค์ผ€์ค„๋ง๊ณผ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ : CPU ์†Œ์œ ๊ถŒ์„ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ• ์ง€, ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ์‚ญ์ œ, ์ž์› ํ• ๋‹น ๋ฐ ๋ฐ˜ํ™˜์„ ๊ด€๋ฆฌโ˜‘๏ธ FIFO(First In First Out) : ์ž‘์—…์ด ๋„์ฐฉํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ. ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ์ž‘์—…์€ ๋Œ€๊ธฐ์—ด์—์„œ ๊ธฐ๋‹ค๋ฆผ. ์งง์€ ์ž‘์—…์ด ๊ธด ์ž‘์—… ๋’ค์— ๋„์ฐฉํ–ˆ์„ ๋•Œ, ๊ธด ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ.
    โ˜‘๏ธ SJF(Shortest Job First) : ๋Œ€๊ธฐ์—ด์— ์žˆ๋Š” ์ž‘์—… ์ค‘ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ ์ž‘์—…์„ ๋จผ์ € ์„ ํƒ. ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐ ํšจ๊ณผ์ ์ด์ง€๋งŒ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธด ์ž‘์—…์€ ๊ณ„์† ๋Œ€๊ธฐํ•ด์•ผ ํ•˜๋Š” ๊ธฐ์•„ํ˜„์ƒ ๋ฐœ์ƒ
    โ˜‘๏ธ Round Robin(RR) : ๊ฐ ์ž‘์—…์— ๋™์ผํ•œ ์‹œ๊ฐ„ ํ• ๋‹น๋Ÿ‰(ํƒ€์ž„ ํ€€ํ…€)์„ ๋ถ€์—ฌํ•˜๊ณ  ์ด ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋‹ค์Œ ์ž‘์—… ์‹คํ–‰. ๋ชจ๋“  ์ž‘์—… ์ˆœํ™˜์  ์ฒ˜๋ฆฌ, ๊ณต์ •ํ•œ ์‹œ์Šคํ…œ ์‹œ๊ฐ„ ๋ฐฐ๋ถ„์„ ์ œ๊ณตํ•˜์ง€๋งŒ ํƒ€์ž„ ํ€€ํ…€์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ๋‹ฌ๋ผ์ง.
    โ˜‘๏ธ Priority Scheduling : ๊ฐ ์ž‘์—…์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ž‘์—…๋ถ€ํ„ฐ ์‹คํ–‰. ์ค‘์š”๋„๋‚˜ ๊ธด๊ธ‰์„ฑ์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ž‘์—…์ด ์˜ค๋žซ๋™์•ˆ ๋Œ€๊ธฐํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ : ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— ์–ผ๋งŒํผ ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ด€๋ฆฌ
  • ๋””์Šคํฌ ํŒŒ์ผ ๊ด€๋ฆฌ : ๋””์Šคํฌ ํŒŒ์ผ์„ ์–ด๋– ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณด๊ด€ํ• ์ง€ ๊ด€๋ฆฌ
    โ˜‘๏ธ ํŒŒ์ผ ์ƒ์„ฑ, ์ˆ˜์ •, ์ œ๊ฑฐ, ๊ณต์œ , ๋ฐฑ์—…, ๋ณต๊ตฌ, ์ฃผ๊ธฐ์–ต์žฅ์น˜์™€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๊ฐ„์˜ ํŒŒ์ผ์ „์†ก ๋“ฑ
  • I/O ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ : ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ์™€ ์ปดํ“จํ„ฐ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์„ ๊ด€๋ฆฌ

https://github.com/devSquad-study/2023-CS-Study/blob/main/OS/os_os_and_computer.md

โžก๏ธ GUI, ์‹œ์Šคํ…œ์ฝœ, ์ปค๋„, ๋“œ๋ผ์ด๋ฒ„ : ์šด์˜์ฒด์ œ, GUI๊ฐ€ ์—†๊ณ  CUI๋งŒ ์žˆ๋Š” ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋„ ์žˆ๋‹ค.

๐Ÿ› ๏ธ ์‹œ์Šคํ…œ์ฝœ

โ˜‘๏ธ ์šด์˜์ฒด์ œ๊ฐ€ ์ปค๋„์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค.

โ˜‘๏ธ ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ.

โ˜‘๏ธ ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์ด I/O ์š”์ฒญ์œผ๋กœ ํŠธ๋žฉ์„ ๋ฐœ๋™ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ I/O ์š”์ฒญ์ธ์ง€ ํ™•์ธํ•œ ํ›„ ์œ ์ € ๋ชจ๋“œ๊ฐ€ ์‹œ์Šคํ…œ์ฝœ์„ ํ†ตํ•ด ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋จ. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ์ปดํ“จํ„ฐ ์ž์›์— ๋Œ€ํ•œ ์ง์ ‘ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ถ€ํ„ฐ ๋ณดํ˜ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

I/O(Input/Output) : ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๊ณผ์ •. ์šด์˜์ฒด์ œ์™€ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์˜ ์ค‘์š”ํ•œ ์ƒํ˜ธ์ž‘์šฉ์ด๋‹ค.
I/O์š”์ฒญ : ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋„คํŠธ์›Œํฌ, ํŒŒ์ผ ์ ‘๊ธ‰ ๋“ฑ์— ๊ด€ํ•œ ์ผ ๋“œ๋ผ์ด๋ฒ„ : ํ•˜๋“œ์›จ์–ด๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด

 

์‹œ์Šคํ…œ ์ฝœ์€ ํ•˜๋‚˜์˜ ์ถ”์ƒํ™” ๊ณ„์ธต์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๋‚ฎ์€ ๋‹จ๊ณ„์˜ ์˜์—ญ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ๋งŽ์ด ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Œ.

๐Ÿ› ๏ธmodebit

โ˜‘๏ธ modebit์€ 0 ๋˜๋Š” 1์˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ”Œ๋ž˜๊ทธ๋กœ ์œ ์ € ๋ชจ๋“œ์™€ ์ปค๋„ ๋ชจ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ.

โ˜‘๏ธ I/O ๋””๋ฐ”์ด์Šค์˜ ๊ฒฝ์šฐ ์œ ์ €๋ชจ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•  ๋•Œ ๊ณต๊ฒฉ์ž์˜ ๊ณต๊ฒฉ๋Œ€์ƒ์ด ๋˜๊ธฐ ์‰ฌ์›€.

โ˜‘๏ธ ์ปค๋„ ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•œ๋‹ค๊ณ  ํ•ด๋„ 100% ๋ง‰์„ ์ˆ˜ ์—†์ง€๋งŒ ์šด์˜์ฒด์ œ๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•˜๊ฒŒ ํ•ด์•ผ ๋ง‰๊ธฐ ์‰ฌ์›€.

โ˜‘๏ธ 0์€ ์ปค๋„ ๋ชจ๋“œ, 1์€ ์œ ์ € ๋ชจ๋“œ

์œ ์ €๋ชจ๋“œ : ์œ ์ €๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์„ ์ œํ•œ์ ์œผ๋กœ ๋‘๋ฉฐ ์ปดํ“จํ„ฐ ์ž์›์— ํ•จ๋ถ€๋กœ ์นจ๋ฒ”ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ชจ๋“œ
์ปค๋„๋ชจ๋“œ : ๋ชจ๋“  ์ปดํ“จํ„ฐ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“œ
์ปค๋„ : ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„, ์‹œ์Šคํ…œ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๋ณด์•ˆ, ๋ฉ”๋ชจ๋ฆฌ, ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ, I/O ๋””๋ฐ”์ด์Šค, I/O ์š”์ฒญ ๊ด€๋ฆฌ ๋“ฑ ์šด์˜์ฒด์ œ์˜ ์ค‘์ถ”์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค.

๐Ÿ’ก CPU(Central Processing Unit)

์‚ฐ์ˆ  ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜, ์ œ์–ด์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์žฅ์น˜. ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋‹จ์ˆœํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•ด์„œ ์‹ค์‹œ.

๐Ÿ–ฅ๏ธ ์ œ์–ด์žฅ์น˜(CU, Control Unit)

ํ”„๋กœ์„ธ์Šค ์กฐ์ž‘์„ ์ง€์‹œํ•˜๋Š” CPU์˜ ํ•œ ๋ถ€ํ’ˆ. ์ž…์ถœ๋ ฅ์žฅ์น˜ ๊ฐ„ ํ†ต์‹ ์„ ์ œ์–ดํ•˜๊ณ  ๋ช…๋ น์–ด๋“ค์„ ์ฝ๊ณ  ํ•ด์„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆœ์„œ ๊ฒฐ์ •

 

๐Ÿ–ฅ๏ธ ๋ ˆ์ง€์Šคํ„ฐ

CPU์•ˆ์— ์žˆ๋Š” ์ž„์‹œ๊ธฐ์–ต์žฅ์น˜. CPU์™€ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์ˆ˜์‹ญ ๋ฐฐ์—์„œ ์ˆ˜๋ฐฑ ๋ฐฐ๊นŒ์ง€ ๋น ๋ฆ„.

CPU๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ.

SSD or HDD โžก๏ธ RAM โžก๏ธ Cache โžก๏ธ Register

Register์— ์žˆ์„ ๊ฒฝ์šฐ hit, ์—†์œผ๋ฉด ํ•˜์œ„ ๋ถ€ํ’ˆ์—์„œ ์ฐพ์•„์˜ด.

 

๐Ÿ–ฅ๏ธ ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜(ALU, Arithmetic Logic Unit)

๋ง์…ˆ, ๋บ„์…ˆ ๊ฐ™์€ ๋‘ ์ˆซ์ž์˜ ์‚ฐ์ˆ  ์—ฐ์‚ฐ๊ณผ ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ, ๋…ผ๋ฆฌ๊ณฑ ๊ฐ™์€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ

 

๐Ÿ–ฅ๏ธ ์ธํ„ฐ๋ŸฝํŠธ

CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์ธํ„ฐ๋ŸฝํŠธ ์‹ ํ˜ธ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด CPU๋Š” ํ˜„์žฌ์ž‘์—…์„ ์ค‘์ง€ํ•˜๊ณ  ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด(Interrupt Service Routine, ISR)์„ ์‹คํ–‰ํ•œ๋‹ค. ์ด ๋ฃจํ‹ด์€ ์ธํ„ฐ๋ŸฝํŠธ์˜ ์›์ธ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ทธ ํ›„ CPU๋Š” ์ค‘๋‹จํ–ˆ๋˜ ์ž‘์—…์„ ๊ณ„์† ์ง„ํ–‰ํ•œ๋‹ค.

โžก๏ธ ํ•˜๋“œ์›จ์–ด ์ž…ํ„ฐ๋ŸฝํŠธ

์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์ด ์„ค๊ณ„๋œ ์ดํ›„ ์ˆœ์ฐจ์ ์ธ ์ธํ„ฐ๋ŸฝํŠธ ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ณ  ์šด์˜์ฒด์ œ์— ์‹œ์Šคํ…œ์ฝœ์„ ์š”์ฒญํ•ด์„œ ์›ํ•˜๋Š” ๋””๋ฐ”์ด์Šค๋กœ ํ–ฅํ•ด ๋””๋ฐ”์ด์Šค์— ์žˆ๋Š” ์ž‘์€ ๋กœ์ปฌ ๋ฒ„ํผ์— ์ ‘๊ทผํ•˜์—ฌ ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

โžก๏ธ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ

ํŠธ๋žฉ(trap) ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ํ”„๋กœ์„ธ์Šค ์˜ค๋ฅ˜ ๋“ฑ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์ฝœ์„ ํ˜ธ์ถœํ•  ๋•Œ ๋ฐœ๋™ํ•œ๋‹ค.

 

๐Ÿ–ฅ๏ธ DMA ์ปจํŠธ๋กค๋Ÿฌ(Direct Memory Access Controller)

I/O ๋””๋ฐ”์ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜.

CPU์—๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๊ธฐ ๋•Œ๋ฌธ์— CPU ๋ถ€ํ•˜๋ฅผ ๋ง‰์•„์ฃผ๋ฉฐ CPU์˜ ์ผ์„ ๋ถ€๋‹ด.

ํ•˜๋‚˜์˜ ์ž‘์—…์„ CPU์™€ DMA์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋™์‹œ์— ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€.

 

๐Ÿ’พ ๋ฉ”๋ชจ๋ฆฌ

โž• CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์–ต์žฅ์น˜

โž• ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋ ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์•ผ ํ•œ๋‹ค.

โž• ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ•„์š”ํ•œ ์ฃผ์†Œ, ์ •๋ณด๋“ค์„ ์ €์žฅํ•˜๊ณ  ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณต๊ฐ„.

 

๐Ÿ’ก ๋ฉ”๋ชจ๋ฆฌ ํŠน์ง•

  • ์ง€์—ญ์„ฑ : ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ์‹œ๊ฐ„์ , ํ˜น์€ ๊ณต๊ฐ„์ ์œผ๋กœ ๊ฐ€๊น๊ฒŒ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ
    โ˜‘๏ธ ์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ(Temporal locality) : ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋ฒˆ ์ ‘๊ทผ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋˜ ํ•œ ๋ฒˆ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ
    โ˜‘๏ธ ๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ(Spatial locality) : ์•ก์„ธ์Šค ๋œ ๊ธฐ์–ต์žฅ์†Œ์™€ ์ธ์ ‘ํ•œ ๊ธฐ์–ต์žฅ์†Œ๊ฐ€ ์•ก์„ธ์Šค ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ
  • ์ง€์—ญ์„ฑ ์›๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋จ
  • ์„ฑ๋Šฅ ๊ฒฐ์ • ์š”์ธ : ๊ธฐ์–ต ์šฉ๋Ÿ‰(capacity), ์ ‘๊ทผ์‹œ๊ฐ„(access time), ์‚ฌ์ดํด ์‹œ๊ฐ„(cycle time), ๊ธฐ์–ต์žฅ์น˜ ๋Œ€์—ญํฌ(bandwidth), ๊ฐ€๊ฒฉ(cost)

๐Ÿ’ก ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต(๊ธฐ์–ต์žฅ์น˜ ๊ณ„์ธต)

https://github.com/devSquad-study/2023-CS-Study/blob/main/OS/os_memory_hierarchy.md

๐Ÿ”— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆ„๋ฉด CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋” ๋นจ๋ฆฌ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•จ.

๐Ÿ”— ๊ฐ๊ฐ์˜ ํŠน์ง•์ด ์žˆ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ €์žฅ ์žฅ์น˜๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ์˜ ํšจ์œจ์„ ๋‚ผ ์ˆ˜ ์žˆ์Œ.

(ํ•˜๋“œ๋””์Šคํฌ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ด๋™์‹œ์ผœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋А๋ฆผ.)

โž• ๋ ˆ์ง€์Šคํ„ฐ(Register)

  • CPU๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ธฐ์–ต์žฅ์น˜
    ๐Ÿ–‹๏ธ CPU๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์—†์Œ.
    ๐Ÿ–‹๏ธ ์—ฐ์‚ฐ์„ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์ณ์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํŠน์ • ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฑฐ๋‚˜ ๊ฐ’์„ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์Œ.
  • ํ”„๋กœ์„ธ์„œ์— ์œ„์น˜ํ•œ ๊ณ ์† ๋ฉ”๋ชจ๋ฆฌ๋กœ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ(์†Œ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ, ์ฒ˜๋ฆฌ ์ค‘์ธ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ)๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์˜์—ญ.

โž• ์บ์‹œ(Cache)

  • ์‚ฌ์šฉ๋˜์—ˆ๋˜ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์‹œ ์‚ฌ์šฉ๋˜์–ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ๊ฐœ๋…์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋‚˜ ๊ฐ’์„ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด ๋†“๋Š” ์ž„์‹œ ์žฅ์†Œ.
  • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜์™€ ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๊ฐ„์˜ ์†๋„ ์ฐจ์ด ๊ฐœ์„ ์„ ๋ชฉ์ 
  • ์‹œ์Šคํ…œ์˜ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ
    ๐Ÿ–‹๏ธ ์บ์‹œ์˜ ์ ‘๊ทผ ์‹œ๊ฐ„์— ๋น„ํ•ด ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ
    ๐Ÿ–‹๏ธ ๊ฐ’์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • ์†๋„๊ฐ€ ๋น ๋ฅธ ์žฅ์น˜์™€ ๋А๋ฆฐ ์žฅ์น˜ ์‚ฌ์ด์—์„œ ์†๋„์ฐจ์— ๋”ฐ๋ฅธ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ”์šฉ ๋ฉ”๋ชจ๋ฆฌ

๐Ÿ’ก ์บ์‹ฑ(Caching) : ์บ์‹œ๋ผ๊ณ  ํ•˜๋Š” ์ข€ ๋” ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹

โž•๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(Main Memory)

  • ์ฃผ ๊ธฐ์–ต์žฅ์น˜(1์ฐจ ๊ธฐ์–ต์žฅ์น˜)
  • ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜์น˜-๋ช…๋ น-์ž๋ฃŒ ๋“ฑ์„ ๊ธฐ์–ตํ•˜๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜
  • RAM(Random Access Memory) : ํœ˜๋ฐœ์„ฑ ๊ธฐ์–ต ์žฅ์น˜
    โœ๏ธ ๋น ๋ฅธ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ๊ธฐ๊ฐ„ ์ €์žฅํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ
    โœ๏ธ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฌธ์„œ๋ฅผ ์Šคํ† ๋ฆฌ์ง€ ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋“œํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์ •๋ณด์— ์•ก์„ธ์Šค
    โœ๏ธ ์ „์›์ด ์œ ์ง€๋˜๋Š” ๋™์•ˆ CPU์˜ ์—ฐ์‚ฐ ๋ฐ ๋™์ž‘์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์ด ์ €์žฅ
    โœ๏ธ ์ „์› ์ข…๋ฃŒ์‹œ ๊ธฐ์–ต๋œ ๋‚ด์šฉ ์‚ญ์ œ
    โœ๏ธ Random Access : ์–ด๋А ์œ„์น˜์—์„œ๋“  ๋˜‘๊ฐ™์€ ์†๋„๋กœ ์ ‘๊ทผํ•˜์—ฌ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ
  • DRAM / SRAM
    โ‰๏ธ DRAM(Dynamic RAM)
    โžก๏ธ ๋™์  ๋ฉ”๋ชจ๋ฆฌ
    โžก๏ธ ์ „์›์ด ๊ณ„์† ๊ณต๊ธ‰๋˜๋”๋ผ๋„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์žฌ์ถฉ์ „๋˜์–ด์•ผ ๊ธฐ์–ต๋œ ๋‚ด์šฉ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    โžก๏ธ ์ฃผ๋กœ ๋Œ€์šฉ๋Ÿ‰์˜ ๊ธฐ์–ต์žฅ์น˜์— ์‚ฌ์šฉ๋˜๋ฉฐ ๊ฐ€๊ฒฉ์ด ์ €๋ ดํ•˜๋‹ค.

    โ‰๏ธ SRAM(Static RAM)
    โžก๏ธ ์ •์  ๋ฉ”๋ชจ๋ฆฌ
    โžก๏ธ ์ „์› ๊ณต๊ธ‰์ด ๋˜๋Š” ๋™์•ˆ์€ ๊ธฐ๋ก๋œ ๋‚ด์šฉ์ด ์ง€์›Œ์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์ถฉ์ „์ด ํ•„์š”์—†๋‹ค.
    โžก๏ธ ์ ‘๊ทผ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์œผ๋ฉฐ ์ฃผ๋กœ ์บ์‹œ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

โž• ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜(Auxiliary Memory, Secondary Memory)

๋ฌผ๋ฆฌ์  ๋””์Šคํฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ธฐ์–ต์žฅ์น˜

  • HDD(Hard Disk Drive), SSD(Solid State Drive)
  • ์ปดํ“จํ„ฐ ์ „์›์„ ๊บผ๋„ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์Œ(๋น„ํœ˜๋ฐœ์„ฑ)
  • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜์™€ ์ง์ ‘ ์ž๋ฃŒ ๊ตํ™˜ ๋ถˆ๊ฐ€๋Šฅ
  • ์ ‘๊ทผ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ์—๋Š” DMA๋ฐฉ์‹ ์‚ฌ์šฉ
  • CPU ์ง์ ‘ ์ ‘๊ทผ ๋ถˆ๊ฐ€

์ฐธ๊ณ  ์ž๋ฃŒ : https://github.com/devSquad-study/2023-CS-Study/tree/main/OS

728x90
๋ฐ˜์‘ํ˜•