J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

[์šด์˜์ฒด์ œ] ๊ต์ฐฉ ์ƒํƒœ (Dead Lock, ๋ฐ๋“œ๋ฝ)
Computer Science/๐Ÿ”’ Operating System

[์šด์˜์ฒด์ œ] ๊ต์ฐฉ ์ƒํƒœ (Dead Lock, ๋ฐ๋“œ๋ฝ)

728x90

๊ต์ฐฉ ์ƒํƒœ(Dead Lock, ๋ฐ๋“œ๋ฝ)

  • ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๋ฌดํ•œ์ • ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฉˆ์ถ”์–ด ์žˆ๋Š” ์ƒํƒœ
  • ํ”„๋กœ์„ธ์Šค A๋Š” ์ž์› 1์„ ๊ฐ€์ง€๊ณ ์„œ ์ž์› 2๋ฅผ ์š”๊ตฌ, ํ”„๋กœ์„ธ์Šค B๋Š” ์ž์› 2๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ์ž์› 1์„ ์š”๊ตฌ

 

 

๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ ์กฐ๊ฑด

  • ์ƒํ˜ธ ๋ฐฐ์ œ(Mutual Exclusion)
    • ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ๊ณต์œ  ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • ์ ์œ ์™€ ๋Œ€๊ธฐ(Hold and Wait)
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ์ตœ์†Œ ํ•˜๋‚˜์˜ ์ž์›์„ ์ ์œ ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์–ด์•ผ ํ•จ
  • ๋น„์„ ์ (Non Preemption)
    • ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ž์›์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋ฐ˜ํ™˜ํ•  ๋•Œ๊นŒ์ง€ ๊ฐ•์ œ๋กœ ๋บ์–ด์˜ฌ ์ˆ˜ ์—†์–ด์•ผ ํ•จ
  • ํ™˜ํ˜• ๋Œ€๊ธฐ(Circular Wait)
    • ๊ณต์œ  ์ž์›๊ณผ ํ•ด๋‹น ์ž์›์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด ์›ํ˜•์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
    • ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ž์›์„ ์ ์œ ํ•˜๋ฉด์„œ ์•ž or ๋’ค ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ์š”๊ตฌ

 

 

๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

  1. ์˜ˆ๋ฐฉ(Prevention): ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋ฐœ์ƒ 4๊ฐ€์ง€ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. ํšŒํ”ผ(Avoidance): ๊ต์ฐฉ ์ƒํƒœ์˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •ํ•˜๋ฉด์„œ ์ ์ ˆํžˆ ํ”ผํ•ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•
  3. ํƒ์ง€(Detection): ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š” ์ง€ ์ ๊ฒ€ํ•˜๋ฉฐ ๋ฐœ๊ฒฌํ•ด๋‚ด๋Š” ๋ฐฉ๋ฒ•
  4. ํšŒ๋ณต(Recovery): ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ ํ”„๋กœ์„ธ์Šค์™€ ์ž์›์„ ๋˜์‚ด๋ ค๋‚ด๋Š” ๋ฐฉ๋ฒ•

 

1. ์˜ˆ๋ฐฉ(Prevention)

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

 

2. ํšŒํ”ผ(Avoidance)

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

 

3. ํƒ์ง€(Detection)

  • ๊ต์ฐฉ ์ƒํƒœ ๋ฐœ๊ฒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • Allocation, Request, Available ๋“ฑ์œผ๋กœ ์‹œ์Šคํ…œ์— ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํƒ์ƒ‰
    • ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ํ–ˆ๋˜ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ์ž์› ํ• ๋‹น ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ํŒŒ์•…
  • ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„ ์ด์šฉ

 

4. ํšŒ๋ณต(Recovery)

  • ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ
    • ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒ
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•๊ณผ, ํ•˜๋‚˜์”ฉ ์ค‘๋‹จ์‹œํ‚ค๋ฉฐ ํšŒ๋ณต๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Œ
  • ์ž์› ์„ ์ 
    • ๊ต์ฐฉ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ ์œ  ์ž์›์„ ์„ ์ (ํšŒ์ˆ˜)ํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹น
728x90
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Computer Science > ๐Ÿ”’ Operating System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์šด์˜์ฒด์ œ] ๋ฎคํ…์Šค(Mutex)์™€ ์„ธ๋งˆํฌ์–ด(Semaphore) - ๋™๊ธฐํ™”  (0) 2023.03.10
[์šด์˜์ฒด์ œ] ์ž„๊ณ„ ์˜์—ญ(Critical Section)๊ณผ ๊ฒฝ์Ÿ ์ƒํƒœ(Race Condition)  (0) 2023.03.03
[์šด์˜์ฒด์ œ] CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋น„์„ ์ ํ˜•, ์„ ์ ํ˜•  (0) 2023.02.28
[์šด์˜์ฒด์ œ] IPC(Inter Process Communication) - ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹   (0) 2023.02.27
[์šด์˜์ฒด์ œ] PCB์™€ ๋ฌธ๋งฅ ๊ตํ™˜(Context Switching)  (0) 2023.02.24
    'Computer Science/๐Ÿ”’ Operating System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์ด๋‹ค
    • [์šด์˜์ฒด์ œ] ๋ฎคํ…์Šค(Mutex)์™€ ์„ธ๋งˆํฌ์–ด(Semaphore) - ๋™๊ธฐํ™”
    • [์šด์˜์ฒด์ œ] ์ž„๊ณ„ ์˜์—ญ(Critical Section)๊ณผ ๊ฒฝ์Ÿ ์ƒํƒœ(Race Condition)
    • [์šด์˜์ฒด์ œ] CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋น„์„ ์ ํ˜•, ์„ ์ ํ˜•
    • [์šด์˜์ฒด์ œ] IPC(Inter Process Communication) - ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ 
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”