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

Programming/์ทจ์—…์ค€๋น„&CS Study

[CS ์Šคํ„ฐ๋”” #04] ์šด์˜์ฒด์ œ(OS)-์ปค๋„/ ์‹œ์Šคํ…œ์ฝœ/ ์ธํ„ฐ๋ŸฝํŠธ/ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ...

 

 

 

 

๐Ÿ’ป ์šด์˜์ฒด์ œ: Operating System

 

 โœ”๏ธ ์šด์˜์ฒด์ œ: ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ๋ชจ์ž„

 

 

 

โ—ป๏ธ ์ปค๋„

 ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ, ์ปดํ“จํ„ฐ์— ์†ํ•œ ์ž์›๋“ค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ค‘์žฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š” ๊ธฐ๋Šฅ์ด๋‹ค. (ํ•˜๋“œ์›จ์–ด์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์—์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋“œ์›จ์–ด์—์„œ ์˜ค๋Š” ์ž์›์„ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค)

 ์ปดํ“จํ„ฐ๊ฐ€ ์ „์›์ด ์ผœ์ง€๋ฉด ์šด์˜์ฒด์ œ ์—ญ์‹œ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด์ฒ˜๋Ÿผ ์ˆ˜ํ–‰์„ ์œ„ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๋Š”๋ฐ, (๊ทœ๋ชจ๊ฐ€ ํฐ ์šด์˜์ฒด์ œ์˜ ์ผ๋ถ€์—์„œ) ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ์„ ๋–ผ์–ด ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋„๋ก ํ•œ ์šด์˜์ฒด์ œ ๋ถ€๋ถ„์ด ์ปค๋„์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ฆฌํ•˜์ž๋ฉด ์ฆ‰, ์ปค๋„์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ์„œ ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด ๋œ๋‹ค. 

 

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

โ—ป๏ธ  ์‹œ์Šคํ…œ ์ฝœ

 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ์˜ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

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

 ์‹œ์Šคํ…œ ์ฝœ์€ ํ”„๋กœ์„ธ์Šค ์ œ์–ด, ํŒŒ์ผ ์กฐ์ž‘, ์žฅ์น˜ ๊ด€๋ฆฌ, ์ •๋ณด ์œ ์ง€, ํ†ต์‹  ๋“ฑ์˜ ์ปค๋„ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ์ปค๋„์ด ์ œ๊ณตํ•˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•œ ๋’ค์—๋Š” ๋‹ค์‹œ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ์ „ํ™˜์‹œํ‚จ๋‹ค.

 ์ฆ‰, ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 ์œˆ๋„์šฐ ์ปค๋„์˜ ๊ฒฝ์šฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ, ๋‚˜๋จธ์ง€๋Š” ์ปค๋„ ๋ชจ๋“œ๋ผ ํ•œ๋‹ค.

 

โœ”๏ธ ๋Œ€ํ‘œ์ ์ธ ์‹œ์Šคํ…œ ์ฝœ

  • fork() : ์ž์‹ ๊ณผ ๋˜‘๊ฐ™์€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ์ฃผ๋กœ ์œ ๋‹‰์Šค ๊ณ„์—ด์˜ ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. return๋˜๋Š” pid๊ฐ€ 0(์ž์‹)์ธ์ง€, 0๋ณด๋‹ค ํฐ์ง€(๋ถ€๋ชจ)๋กœ ๋ถ€๋ชจ์™€ ์ž์‹์„ ๊ตฌ๋ณ„ํ•œ๋‹ค.

โœ”๏ธ ์‹œ์Šคํ…œ ์ฝœ ์œ ํ˜•

  • ํ”„๋กœ์„ธ์Šค ์ œ์–ด (Process Control)
    • ๋๋‚ด๊ธฐ(end), ์ค‘์ง€(abort)
    • ์ ์žฌ(load), ์‹คํ–‰(execute)
    • ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ(create process)
    • ํ”„๋กœ์„ธ์Šค ์†์„ฑ ํš๋“๊ณผ ์„ค์ •(get process attribute and set process attribute)
    • ์‹œ๊ฐ„ ๋Œ€๊ธฐ(wait time)
    • ์‚ฌ๊ฑด ๋Œ€๊ธฐ(wait event)
    • ์‚ฌ๊ฑด์„ ์•Œ๋ฆผ(signal event)
    • ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ํ•ด์ œ : malloc, free
  • ํŒŒ์ผ ์กฐ์ž‘ (File Manipulation)
    • ํŒŒ์ผ ์ƒ์„ฑ(create file), ํŒŒ์ผ ์‚ญ์ œ(delete file)
    • ์—ด๊ธฐ(open), ๋‹ซ๊ธฐ(close)
    • ์ฝ๊ธฐ(read), ์“ฐ๊ธฐ(write), ์œ„์น˜ ๋ณ€๊ฒฝ(reposition)
    • ํŒŒ์ผ ์†์„ฑ ํš๋“ ๋ฐ ์„ค์ •(get file attribute and set file attribute)
  • ์žฅ์น˜ ๊ด€๋ฆฌ(Devide Management)
    • ์žฅ์น˜๋ฅผ ์š”๊ตฌ(request devices), ์žฅ์น˜๋ฅผ ๋ฐฉ์ถœrelease device)
    • ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์œ„์น˜ ๋ณ€๊ฒฝ
    • ์žฅ์น˜ ์†์„ฑ ํš๋“, ์žฅ์น˜ ์†์„ฑ ์„ค์ •
    • ์žฅ์น˜์˜ ๋…ผ๋ฆฌ์  ๋ถ€์ฐฉ(attach) ๋˜๋Š” ๋ถ„๋ฆฌ(detach)
  • ์ •๋ณด ์œ ์ง€(Information Maintenance)
    • ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ์˜ ์„ค์ •๊ณผ ํš๋“(time)
    • ์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ์˜ ์„ค์ •๊ณผ ํš๋“(date)
    • ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ, ์žฅ์น˜ ์†์„ฑ์˜ ํš๋“ ๋ฐ ์„ค์ •
  • ํ†ต์‹ (Communication)
    • ํ†ต์‹  ์—ฐ๊ฒฐ์˜ ์ƒ์„ฑ, ์ œ๊ฑฐ
    • ๋ฉ”์‹œ์ง€์˜ ์†ก์‹ , ์ˆ˜์‹ 
    • ์ƒํƒœ ์ •๋ณด ์ „๋‹ฌ
    • ์›๊ฒฉ ์žฅ์น˜์˜ ๋ถ€์ฐฉ ๋ฐ ๋ถ„๋ฆฌ
    • ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ - ๋‘ ํ”„๋กœ์„ธ์Šค์˜ ํ†ต์‹ ์— ์ •๋ณด ๊ตํ™˜์„ ์œ„ํ•œ ๋ฉ”์‹œ์ง€
    • ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ - ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์†Œ์œ ํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ์„ ์œ„ํ•ด ํŠน์ • ์‹œ์Šคํ…œ ์ฝœ ํ˜ธ์ถœ

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

โ—ป๏ธ ์ธํ„ฐ๋ŸฝํŠธ

 ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋„์ค‘์— ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์„ ์ฆ‰์‹œ ์ค‘๋‹จํ•˜๊ณ  ๋ฐœ์ƒ๋œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์šฐ์„ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ์„ CPU์—๊ฒŒ ์•Œ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค. 

 ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ์™€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋กœ ๋‚˜๋‰œ๋‹ค.

  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ: ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค์— ์˜ํ•œ ์ž…์ถœ๋ ฅ๊ณผ ๊ฐ™์ด ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋œปํ•œ๋‹ค.
  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ: ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•˜์—ฌ Exception์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ์œ„ํ•ด ํ˜ธ์ถœํ•˜๋Š” System Call์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋œปํ•œ๋‹ค. ํŠธ๋žฉ(Trap)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

 

โœ”๏ธ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ๊ณผ์ •

  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
  • CPU๋Š” ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋ฅผ ์™„๋ฃŒํ•œ๋‹ค
  • Interrupt Vector (์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ธํ„ฐ๋ŸฝํŠธ์— ๋Œ€ํ•œ ISR์˜ ์‹œ์ž‘์ฃผ์†Œ)์—์„œ ISR(Interrupt Service Routine)์˜ ์‹œ์ž‘์ฃผ์†Œ๋ฅผ ์ฝ๊ณ  ์ด๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ๋•Œ ์‹คํ–‰ ์ค‘์ด๋˜ ๋ ˆ์ง€์Šคํ„ฐ์™€ PC(Program Counter: CPU ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์ค‘์˜ ํ•˜๋‚˜๋กœ์„œ, ๋‹ค์Œ์— ์‹คํ–‰๋  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์‹คํ–‰ํ•  ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋•Œ๋ฌธ์— ๋ช…๋ น์–ด ํฌ์ธํ„ฐ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.) ๊ฐ’์„ ๋ณด๊ด€ํ•ด์„œ CPU์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด๋‘”๋‹ค.
  • ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ์‹ค์งˆ์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฃจํ‹ด ์ˆ˜ํ–‰ ์ค‘, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์žฌ๊ท€์ ์œผ๋กœ ๋ฐœ์ƒ๊ณผ์ •์„ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์ƒํƒœ ๋ณต๊ตฌ
    • ํ•ด๋‹น ์ž‘์—…์„ ๋‹ค ์™„๋ฃŒ์ฒ˜๋ฆฌํ•˜๋ฉด, ๋Œ€ํ”ผ์‹œํ‚จ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•œ๋‹ค.
    • ISR ๋์— RETI ๋ช…๋ น์–ด์— ์˜ํ•ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ•ด์ œ๋œ๋‹ค.
    • ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜๋ฉด, PC๊ฐ’์„ ๋ณต์›ํ•˜์—ฌ ์ด์ „ ์‹คํ–‰์œ„์น˜๋กœ ๋ณต์›ํ•œ๋‹ค.

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

โ—ป๏ธ  ๋™๊ธฐํ™”

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

 

โœ”๏ธ ๊ฒฝ์Ÿ ์ƒํƒœ (Race Condition)

 ๊ณต์œ  ์ž์›์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผ์„ ์‹œ๋„ํ•  ๋•Œ, ํƒ€์ด๋ฐ์ด๋‚˜ ์ˆœ์„œ ๋“ฑ์ด ๊ฒฐ๊ณผ๊ฐ’์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. ๋ฐœ์ƒ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ปค๋„ ์ž‘์—… ์ˆ˜ํ–‰ ์ค‘ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ: ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ž‘์—…์ด ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ disable์‹œ์ผœ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ CPU ์ œ์–ด๊ถŒ์„ ๊ฐ€์ ธ๊ฐ€์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์ฝœ์„ ํ•˜์—ฌ ์ปค๋„๋ชจ๋“œ๋กœ ์ง„์ž…, ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘ ๋ฌธ๋งฅ๊ตํ™˜์ด ๋ฐœ์ƒํ•  ๋•Œ: ํ”„๋กœ์„ธ์Šค1์ด ์ปค๋„๋ชจ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋„์ค‘ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์–ด CPU ์ œ์–ด๊ถŒ์ด ํ”„๋กœ์„ธ์Šค2๋กœ ๋„˜์–ด๊ฐ€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, ํ”„๋กœ์„ธ์Šค2์˜ ์ž‘์—…์ด ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์ปค๋„๋ชจ๋“œ์—์„œ ์ž‘์—…์‹œ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์–ด๋„ CPU ์ œ์–ด๊ถŒ์ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
  • ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์„œ์—์„œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์ปค๋„ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๋•Œ: ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์„œ ํ™˜๊ฒฝ์—์„œ ๋‘ ๊ฐœ์˜ CPI๊ฐ€ ๋™์‹œ์— ์ปค๋„ ๋‚ด๋ถ€์˜ ๊ณต์œ  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์—ฌ ์กฐ์ž‘์„ ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•œ๋‹ค. ์ปค๋„ ๋‚ด๋ถ€์— ์žˆ๋Š” ๊ฐ ๊ณต์œ  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ lock/unlockํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

 

โœ”๏ธ ์ž„๊ณ„ ์˜์—ญ (Critical Section)

 ๊ณต์œ  ์ž์›์˜ ์ฝ”๋“œ ์˜์—ญ์œผ๋กœ ๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ 3๊ฐ€์ง€ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์–ด์•ผ ํ•œ๋‹ค.

  • ์ƒํ˜ธ๋ฐฐ์ œ (Mutual Exclusion): ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž„๊ณ„์˜์—ญ์— ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค.
  • ์ง„ํ–‰ (Process): ์ž„๊ณ„๊ตฌ์—ญ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†๋‹ค๋ฉด, ์–ด๋Š ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด๊ฐˆ ๊ฒƒ์ธ์ง€ ์ ์ ˆํ•œ ์„ ํƒ์ด ํ•„์š”ํ•˜๋‹ค.
  • ์œ ํ•œ๋Œ€๊ธฐ (Bounded waiting): ๊ธฐ์•„์ƒํƒœ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด, ํ•œ ๋ฒˆ ๋“ค์–ด๊ฐ”๋‹ค ๋‚˜์˜จ ๋‹ค์Œ ์ž…์žฅ์—์„œ ํ”„๋กœ์„ธ์Šค๋Š” ์ œํ•œ์„ ์ค€๋‹ค.

 ์ž„๊ณ„์˜์—ญ ํ•ด๊ฒฐ ๋ฐฉ์‹์œผ๋กœ๋Š” ํ”ผํ„ฐ์Šจ ์•Œ๊ณ ๋ฆฌ์ฆ˜/ ๋ฎคํ…์Šค(Lock ํ•˜๋‚˜)/ ์„ธ๋งˆํฌ์–ด(Lock์ด ์—ฌ๋Ÿฌ๊ฐœ) ๋“ฑ์ด ์žˆ๋‹ค.

 

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

โ—ป๏ธ DeadLock ๊ต์ฐฉ์ƒํƒœ

๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ ํ•˜๋Š” ์ž์›์„ ์„œ๋กœ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฌดํ•œ ๋Œ€๊ธฐ์— ๋น ์ง„ ์ƒํ™ฉ์„ ๋งํ•œ๋‹ค.

 

โœ”๏ธ ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ์กฐ๊ฑด

  • ์ƒํ˜ธ๋ฐฐ์ œ: ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ํ•ด๋‹น ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ž์›์ด ํ•ด์ œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
  • ์ ์œ  ๋Œ€๊ธฐ: ์ž์›์„ ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ ๋ณด์œ ํ•˜๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž์›์„ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•ด์•ผ ํ•œ๋‹ค.
  • ๋น„์„ ์ : ์ด๋ฏธ ํ• ๋‹น๋œ ์ž์›์„ ๊ฐ•์ œ๋กœ ๋นผ์•—์•„ ์ ์œ ํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ˆœํ™˜ ๋Œ€๊ธฐ: ๋Œ€๊ธฐ ํ”„๋กœ์„ธ์Šค์˜ ์ง‘ํ•ฉ์ด ์ˆœํ™˜ํ˜•ํƒœ๋กœ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

โœ”๏ธ ๋ฐ๋“œ๋ฝ ํ•ด๊ฒฐ๋ฒ•

  • ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์˜ˆ๋ฐฉํ•˜๊ธฐ
  • ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •ํ•˜๋ฉด์„œ๋„ ์ ์ ˆํ•˜๊ฒŒ ํšŒํ”ผํ•˜๊ธฐ
  • ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ ๋ฐ๋“œ๋ฝ์„ ํƒ์ง€ํ•˜์—ฌ ๋ฐ๋“œ๋ฝ์—์„œ ํšŒ๋ณตํ•˜๊ธฐ
  • ๋ฌด์‹œํ•˜๊ธฐ

    โ—ผ๏ธ ๋ฐ๋“œ๋ฝ ์˜ˆ๋ฐฉ(Prevention)

 ๋ฐœ์ƒ์กฐ๊ฑด 4๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜์—ฌ ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์‹œ์Šคํ…œ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๋ฉฐ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

    โ—ผ๏ธ ๋ฐ๋“œ๋ฝ ํšŒํ”ผ(Avoidance)

 ํšŒํ”ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž์› ํ• ๋‹น ํ›„์—๋„ ์‹œ์Šคํ…œ์ด ํ•ญ์ƒ ์•ˆ์ •์ƒํƒœ์— ์žˆ์„ ์ˆ˜ ์žˆ๋„๋ก ํ• ๋‹น์„ ํ—ˆ์šฉํ•˜์ž๋Š” ๊ฒƒ์ด๋‹ค.

  • ์•ˆ์ • ์ƒํƒœ(Safe State): ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์š”์ฒญํ•˜๋Š” ๋ชจ๋“  ์ž์›์„, ๋ฐ๋“œ๋ฝ์„ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ๋„ ์ฐจ๋ก€๋กœ ๋ชจ๋‘ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ
  • ์•ˆ์ „ ์ˆœ์„œ(Safe Sequence): ํŠน์ • ์ˆœ์„œ๋กœ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ์ž์›์„ ํ• ๋‹นํ•˜๋Š” ๋“ฑ ์ž‘์—…์„ ํ•  ๋•Œ. ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ˆœ์„œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ
  • ๋ถˆ์•ˆ์ • ์ƒํƒœ: ์•ˆ์ • ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ์ƒํƒœ์ด๋ฉฐ ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์‚ฌํƒœ์ด๋‹ค.

       ๐Ÿ’ก ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Banker's Algorithm)

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

 

    โ—ผ๏ธ ๋ฐ๋“œ๋ฝ ํƒ์ง€(Detection) ๋ฐ ํšŒ๋ณต(Recovery)

 ์‹œ์Šคํ…œ์ด ๋ฐ๋“œ๋ฝ ์˜ˆ๋ฐฉ์ด๋‚˜ ํšŒํ”ผ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ, ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํšŒ๋ณต์„ ์œ„ํ•ด ๋ฐ๋“œ๋ฝ์„ ํƒ์ง€ํ•˜๊ณ  ํšŒ๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋œปํ•œ๋‹ค.

 ์ž์›ํ• ๋‹น ๊ทธ๋ž˜ํ”„ ๋“ฑ์„ ํ†ตํ•ด ๋ฐ๋“œ๋ฝ์ด ํƒ์ง€๋˜๋ฉด, ๋‹จ์ˆœํžˆ ํ”„๋กœ์„ธ์Šค๋ฅผ 1๊ฐœ ์ด์ƒ ์ค‘๋‹จ์‹œํ‚ค๊ฑฐ๋‚˜ ์ž์›์„ ์„ ์ ํ•˜๋„๋ก ํ•ด์„œ ๋ฐ๋“œ๋ฝ์„ ํšŒ๋ณต์‹œํ‚จ๋‹ค.

 

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

โ—ป๏ธ ๋ฉ”๋ชจ๋ฆฌ

 ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜๋ฆฌ ๋Œ€์ƒ์ด๋‚˜ ๊ฒฐ๊ณผ ๋“ฑ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค.

 

 

โ—ป๏ธ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ

 ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋ฅผ ๊ฐ€์ƒ์˜ ๋…ผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ธฐ์—” ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ์ œํ•œ์ ์ด์–ด์„œ ๊ณ ์•ˆ๋œ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์€ ๋ถ€๋ถ„์ ์ธ ์ ์žฌ๋งŒ์œผ๋กœ๋„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์— ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋””์Šคํฌ์— ์ €์žฅํ•œ๋‹ค.

 

 โœ”๏ธ ํŽ˜์ด์ง•(Paging) ๊ธฐ๋ฒ•

 ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์ด์šฉํ•œ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด๋‹ค. ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๋˜ํ•œ ํŽ˜์ด์ง€์™€ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„๋Š”๋ฐ ์ด๋Š” Frame์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋ ˆ์ž„์€ ํŽ˜์ด์ง€๋กœ ์˜ฎ๊ธฐ๊ณ , ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ํ”„๋ ˆ์ž„์— ์˜ฎ๊ฒจ์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋‚ด๋ถ€ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

    โ—ผ๏ธ ํŽ˜์ด์ง• ๊ต์ฒด ๊ธฐ๋ฒ•

  • FIFO (First-In First Out): ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์žฅ ๋จผ์ € ์˜ฌ๋ผ์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํŽ˜์ด์ง€์—ฌ๋„ ๊ต์ฒด๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
  • OPT (Optimal Page Replacement) : ์•ž์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ง€๋งŒ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  ํŽ˜์ด์ง€๋ฅผ ๋ฏธ๋ฆฌ ์•Œ์•„์•ผํ•œ๋‹ค๋Š” ๊ตฌํ˜„ ๋ถˆ๊ฐ€๋Šฅํ•œ ์„ ์ œ์กฐ๊ฑด์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๊ตฌํ˜„๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • LRU (Least-Recently-Used): ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋‚ด๋ณด๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ตœ๊ทผ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์œผ๋ฉด ๋‚˜์ค‘์—๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ์•„์ด๋””์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋†’๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
  • LFU (Least Frequently Used): ์ฐธ์กฐ๋œ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ์ฐธ์กฐ๋  ๋•Œ๋งˆ๋‹ค ์ฐธ์กฐํšŸ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ์ด๊ฒƒ์ด ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ๋‚ด๋ณด๋‚ธ๋‹ค. ๊ฐ€์žฅ ์ตœ๊ทผ์— ์˜ฎ๊ฒจ์ง„ ํŽ˜์ด์ง€๊ฐ€ ๊ต์ฒด๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ, ์ดˆ๊ธฐ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ ์ตœ๊ทผ์—๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ผ๋ฉด ๊ต์ฒด ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๋‹ค๋Š” ๊ฒƒ, ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์žˆ๋‹ค.
  • MFU (Most Frequently Used): ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ํŽ˜์ด์ง€๋ถ€ํ„ฐ ๊ต์ฒดํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์ ๊ฒŒ ์‚ฌ์šฉ๋œ ํŽ˜์ด์ง€์ผ ์ˆ˜๋ก ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค์–ด์˜จ์ง€ ์–ผ๋งˆ ์•ˆ๋˜์–ด์„œ ์•ž์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฐ€์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.

 โœ”๏ธ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜(Segmentation) ๊ธฐ๋ฒ•

 ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์„œ๋กœ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ๋…ผ๋ฆฌ์  ๋‹จ์œ„์ธ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํฌ๊ธฐ๊ฐ€ ์ œ๊ฐ๊ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€๋‹จํŽธํ™”๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

๐Ÿ“ CS ์งˆ๋ฌธ ์ •๋ฆฌ

  1.  ๋ฐ๋“œ๋ฝ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋ฐœ์ƒ ์กฐ๊ฑด์€?
  2.  ๋ฐ๋“œ๋ฝ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€?
  3.  ์„ธ๋งˆํฌ์–ด์™€ ๋ฎคํ…์Šค์˜ ์ฐจ์ด: ๋ฎคํ…์Šค๋Š” Locking ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋ฝ์„ ๊ฑธ์€ ์Šค๋ ˆ๋“œ๋งŒ์ด ์ž„๊ณ„์˜์—ญ์„ ๋‚˜๊ฐˆ ๋•Œ ๋ฝ์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์„ธ๋งˆํฌ์–ด๋Š” Signaling ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋ฝ์„ ๊ฑธ์ง€ ์•Š์€ ์“ฐ๋ ˆ๋“œ๋„ signal์„ ์ด์šฉํ•ด ๋ฝ์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ธ๋งˆํฌ์–ด์˜ ์นด์šดํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฎคํ…์Šค์ฒ˜๋Ÿผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  4.  CPU์˜ ๋ฉ”๋ชจ๋ฆฌ I/O ๋„์ค‘ ์ƒ๊ธฐ๋Š” ๋ณ‘๋ชฉํ˜•์ƒ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€?: ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณ„์ธตํ™”ํ•˜๋ฉด ๋ณ‘๋ชฉํ˜„์ƒ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์ฃผ ์ ‘๊ทผํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ์—๋Š” ์บ์‹œ์— ์ €์žฅํ•˜์—ฌ ์ ‘๊ทผ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œ์ผœ ๋ถ€ํ•˜๋ฅผ ์ค„์ธ๋‹ค.
  5.  ๊ต์ฐฉ์ƒํƒœ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  6.  ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ž€?
  7.  ํŽ˜์ด์ง• ๊ต์ฒด ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์•„๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค
  8.  ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ๊ธฐ๋ฒ•์˜ ์ฐจ์ด๋Š”?

 

 

 

 

 

 

 

 

๐Ÿ’Ž ๐Ÿ’Ž ๐Ÿ’Ž

 

 

๏ผฐ๏ฝ๏ฝ“๏ฝ”๏ฝ…๏ฝ„ ๏ผข๏ฝ™ ๏ผณ๏ผก๏ผน

๐˜›๐˜ฉ๐˜ข๐˜ฏ๐˜ฌ๐˜ด ๐˜ง๐˜ฐ๐˜ณ ๐˜ณ๐˜ฆ๐˜ข๐˜ฅ๐˜ช๐˜ฏ๐˜จ