๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป iOSun
article thumbnail

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

ํ”„๋กœ์„ธ์Šค๋ž€ .exe๊ฐ™์€ ์•„์ง ์‹คํ–‰๋˜์ง€ ์•Š์€ ํŒŒ์ผ์„ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ํ”„๋กœ์„ธ์Šค๋‹ค.

์ฆ‰ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์Šค๋ ˆ๋“œ๋ž€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜๋Š” ์‹คํ–‰ ํ๋ฆ„์˜ ๋‹จ์œ„์ด๋‹ค.

๋‘˜์˜ ํฐ ์ฐจ์ด๋Š” ์Šค๋ ˆ๋“œ๋Š” ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์˜ ์ž์›๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋”ฐ๋ผ์„œ ํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๋ฉด ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š”๋‹ค.

 


๊ต์ฐฉ์ƒํƒœ๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์กฐ๊ฑด์ด ์žˆ์–ด์•ผ ํ•˜๋‚˜์š”?

๊ต์ฐฉ์ƒํƒœ๋ž€ ํ”„๋กœ์„ธ์Šค or ์Šค๋ ˆ๋“œ๋“ค์ด ์„œ๋กœ ํ•„์š”ํ•œ ์ž์›์„ ํ•œ์ •์ ์œผ๋กœ ์„œ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ ์กฐ๊ฑด์€ 4๊ฐ€์ง€์ด๊ณ  ๋ชจ๋‘ ์ถฉ์กฑ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

์ƒํ˜ธ ๋ฐฐ์ œ (Mutual Exclusion)

  • ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ๊ณต์œ  ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ -> ์„œ๋กœ lock์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง

๋น„์„ ์  (Non-Preemptive)

  • ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž์›์€ ์‚ฌ์šฉ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ฐ•์ œ๋กœ ๋นผ์•—์„ ์ˆ˜ ์—†์–ด์•ผ ํ•จ -> ์„œ๋กœ lock์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง

 

์ ์œ ์™€ ๋Œ€๊ธฐ (Hold & Wait)

  • ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์ž์›์„ ์ ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉด์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋˜์–ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์ž์›์„ ์ถ”๊ฐ€๋กœ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•จ

 

ํ™˜ํ˜• ๋Œ€๊ธฐ (Circular Wait)

  • ๊ณต์œ  ์ž์›๊ณผ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด ์›ํ˜•์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ž์›์„ ์ ์œ ํ•˜๋ฉด์„œ ์•ž์ด๋‚˜ ๋’ค์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ์š”๊ตฌํ•ด์•ผ ํ•จ

๊ต์ฐฉ์ƒํƒœ์˜ ํ•ด๊ฒฐ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

1. ์˜ˆ๋ฐฉ

  • ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์‚ฌ์ „์— ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์•ž์„œ ์‚ดํŽด๋ณธ ๊ต์ฐฉ์ƒํƒœ ๋ฐœ์ƒ์˜ ๋„ค ๊ฐ€์ง€ ์กฐ๊ฑด ์ค‘ ์–ด๋Š ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ์ˆ˜ํ–‰

1. ์ƒํ˜ธ ๋ฐฐ์ œ ๋ถ€์ •

์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๊ณต์œ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

2. ์ ์œ  ๋Œ€๊ธฐ ๋ถ€์ •

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ž์›์„ ํ• ๋‹นํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ๋Œ€๊ธฐ๋ฅผ ์—†์• ๊ฑฐ๋‚˜, ์ž์›์ด ์ ์œ ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋งŒ ์ž์› ์š”์ฒญ์„ ๋ฐ›๋„๋ก ํ•จ

3. ๋น„์„ ์  ๋ถ€์ •

๋ชจ๋“  ์ž์›์— ๋Œ€ํ•œ ์„ ์ ์„ ํ—ˆ์šฉ

4. ์ˆœํ™˜ ๋Œ€๊ธฐ ๋ถ€์ •

์ž์›์„ ์„ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ณ ์œ  ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•˜๊ณ , ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ˜„์žฌ ์ ์œ ํ•œ ์ž์›์˜ ๊ณ ์œ ๋ฒˆํ˜ธ๋ณด๋‹ค ์•ž์ด๋‚˜ ๋’ค ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ž์›์„ ์š”๊ตฌํ•˜๋„๋ก ํ•จ

  • ์ž์›์˜ ๋‚ญ๋น„๊ฐ€ ์‹ฌํ•œ ๊ธฐ๋ฒ•

 

2. ํšŒํ”ผ

  • ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋ฐฐ์ œํ•˜์ง€ ์•Š๊ณ  ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ ์ ˆํžˆ ํ”ผํ•ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•
  • ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ์ž์› ํ• ๋‹น(Unsafe allocation)์„ ํ•˜์ง€ ์•Š๊ณ  ์•ˆ์ „ํ•œ ์ƒํƒœ(Safe state)์—์„œ๋งŒ ์ž์› ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • Banker's Algorithm์ด ์‚ฌ์šฉ

 

3. ๊ฒ€์ถœ

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

 

4. ํšŒ๋ณต

  • ๊ต์ฐฉ์ƒํƒœ๋ฅผ ์ผ์œผํ‚จ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ์‹œํ‚ค๊ฑฐ๋‚˜, ๊ต์ฐฉ์ƒํƒœ์˜ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž์›์„ ์„ ์ (preempt)ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋‚˜ ์ž์›์„ ํšŒ๋ณตํ•˜๋Š” ๊ฒƒ

๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ๋ณด์‹œ์˜ค.

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

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ํ˜„์žฌ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ž‘์—…์ด๋‹ค.
  • ์›๋ž˜ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋˜ ํ”„๋กœ์„ธ์Šค์˜ context๋ฅผ PCB๋ผ๊ณ  ํ•˜๋Š” ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ & ์ƒˆ๋กœ ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค์˜ context๋ฅผ PCB์—์„œ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

๊ฒฝ์Ÿ ์ƒํƒœ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

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

 

ex) ์€ํ–‰์— 10000์›์ด ์žˆ์„ ๋•Œ, ์•„๋“ค์€ 10000์›์„ ์ถœ๊ธˆํ•˜๊ณ  ์—„๋งˆ๋Š” ์•„๋“ค์—๊ฒŒ 5000์›์„ ์ž…๊ธˆํ•จ → 0์› → 5000์›์ด ๋˜๋ฆฌ๋ผ ์˜ˆ์ƒ but ๊ฒฝ์Ÿ์ƒํƒœ๋ผ๋ฉด?

๋™์‹œ์— ์ถœ๊ธˆ๊ณผ ์ž…๊ธˆ์ด ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ

์•„๋“ค์˜ ์ž…์žฅ : ํ˜„์žฌ์ž”๊ณ  10000์› – 10000์› ์ถœ๊ธˆ = ๊ธฐ๋Œ€์ž”๊ณ  0์›

์—„๋งˆ์˜ ์ž…์žฅ : ํ˜„์žฌ์ž”๊ณ  10000์› – 5000์› ์ž…๊ธˆ = ๊ธฐ๋Œ€์ž”๊ณ  15000์›

๋”ฐ๋ผ์„œ ๊ฒฝ์Ÿ์ƒํƒœ๋Š” ๊ณต์œ  ๋ฐ์ดํ„ฐ(์ž”๊ณ )์— ์ตœ์ข…๊ฐ’์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์„ ๋งํ•จ

 

 

 

์งˆ๋ฌธ ์ถœ์ฒ˜

https://velog.io/@hygoogi/๊ธฐ์ˆ -๋ฉด์ ‘-์งˆ๋ฌธ-๋ชจ์Œ

'CS > ์šด์˜์ฒด์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CS ๋ฉด์ ‘ ์งˆ๋ฌธ] ํ”„๋กœ์„ธ์Šค(2)  (0) 2023.06.05
profile

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป iOSun

@iosun

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!

profile on loading

Loading...