[운영체제] λ°λ“œλ½

λ°λ“œλ½

λ°λ“œλ½μ΄λž€?

ν”„λ‘œμ„ΈμŠ€κ°€ ν•„μš”ν•œ μžμ›μ„ 얻지 λͺ»ν•΄ 멈좘 μƒνƒœ 
'ꡐ착 μƒνƒœ'라고도 뢀름 
ν•œμ •λœ μžμ›μ„ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ ‘κ·Όν•˜λ €κ³  ν•  λ•Œ λ°œμƒν•¨ 

 

λ°λ“œλ½

λ°λ“œλ½μ˜ μ˜ˆμ‹œ 

  1. μœ„μ˜ 사진과 같이 각 ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ μ μœ ν•œ 채, 꼬리물기 μ‹μœΌλ‘œ μžμ›μ„ μš”κ΅¬ν•˜κ²Œ 되면 λ¬΄ν•œμ • wait μƒνƒœμ— 빠짐
  2. μ΄λŸ¬ν•œ 상황을 λ°λ“œλ½μ΄λΌκ³  함  

λ°λ“œλ½μ΄ 주둜 λ°œμƒν•˜λŠ” 경우 

  1. λ©€ν‹° ν”„λ‘œκ·Έλž˜λ° ν™˜κ²½μ—μ„œμ˜ μžμ› 경쟁 
  2. ν•œ ν”„λ‘œμ„ΈμŠ€κ°€ ν•„μš”ν•œ μžμ›μ΄ μ‚¬μš©ν•  수 μ—†λŠ” 상황이면 λŒ€κΈ° μƒνƒœμ— λ“€μ–΄κ°€λŠ”λ°, κ·Έ ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€μ‹œ λŒμ•„μ˜¬ 수 μ—†μœΌλ©΄ λ°λ“œλ½ λ°œμƒ 

μ² ν•™μž 문제 

  1. μ™Όμͺ½ 포크가 μ‚¬μš© κ°€λŠ₯ν•΄μ§ˆ λ•ŒκΉŒμ§€ 생각을 ν•œλ‹€. λ§Œμ•½ μ‚¬μš© κ°€λŠ₯해지면 집어든닀.
  2. 였λ₯Έμͺ½ 포크가 μ‚¬μš© κ°€λŠ₯ν•΄μ§ˆ λ•ŒκΉŒμ§€ 생각을 ν•œλ‹€. λ§Œμ•½ μ‚¬μš© κ°€λŠ₯해지면 집어든닀.
  3. μ–‘μͺ½μ˜ 포크λ₯Ό 작으면 정해진 μ‹œκ°„λ§ŒνΌ 식사λ₯Ό ν•œλ‹€.
  4. 였λ₯Έμͺ½ 포크λ₯Ό λ‚΄λ €λ†“λŠ”λ‹€.
  5. μ™Όμͺ½ 포크λ₯Ό λ‚΄λ €λ†“λŠ”λ‹€.
  6. λ‹€μ‹œ 1번으둜 λŒμ•„κ°„λ‹€.

λ§Œμ•½ λͺ¨λ“  μ² ν•™μžλ“€μ΄ λ™μ‹œμ— μžμ‹ μ˜ μ™Όμͺ½ 포크λ₯Ό μž‘λŠ”λ‹€λ©΄ λͺ¨λ“  μ² ν•™μžλ“€μ€ 자기 였λ₯Έμͺ½μ˜ 포크가 μ‚¬μš© κ°€λŠ₯ν•΄μ§ˆ λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜λŠ”λ° 이것을 ꡐ착 μƒνƒœλΌκ³  ν•œλ‹€

 

λ°λ“œλ½ λ°œμƒ 쑰건

λ°λ“œλ½ λ°œμƒ 쑰건? 

λ°λ“œλ½μ΄ λ°œμƒν•  수 μžˆλŠ” 쑰건
4가지 λͺ¨λ‘ 성립해야 λ°œμƒν•˜λ©°, ν•œκ°€μ§€λΌλ„ ν•΄λ‹Ήλ˜μ§€ μ•ŠμœΌλ©΄ ν•΄κ²° κ°€λŠ₯ν•˜λ‹€.

 

μƒν˜Έ 배제 

  1. μžμ›μ€ ν•œλ²ˆμ— ν•œ ν”„λ‘œμ„ΈμŠ€λ§Œ μ‚¬μš©ν•  수 있음 

점유 λŒ€κΈ° 

  1. μ΅œμ†Œν•œ ν•˜λ‚˜μ˜ μžμ›μ„ μ μœ ν•˜κ³  μžˆμœΌλ©΄μ„œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλ˜μ–΄ μžˆλŠ” μžμ›μ„ μ μœ ν•˜κΈ° μœ„ν•΄ λŒ€κΈ°ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ‘΄μž¬ν•΄μ•Ό 함

비선점 

  1. λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλœ μžμ›μ€ κ°•μ œλ‘œ 빼앗을 수 μ—†μŒ 

μˆœν™˜ λŒ€κΈ° 

  1. ν”„λ‘œμ„ΈμŠ€μ˜ μ§‘ν•©μ—μ„œ μˆœν™˜ ν˜•νƒœλ‘œ μžμ›μ„ λŒ€κΈ°ν•˜κ³  μžˆμ–΄μ•Ό 함(μœ„μ˜ 사진 처럼) 

 

λ°λ“œλ½ 처리 

예방 : ꡐ착 μƒνƒœ λ°œμƒ 쑰건 쀑 ν•˜λ‚˜λ₯Ό μ œκ±°ν•˜λ©° ν•΄κ²°, μžμ› λ‚­λΉ„κ°€ 심함 

  1. μƒν˜Έ 배제 λΆ€μ • : μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— 곡유 μžμ›μ„ μ‚¬μš©ν•˜λ„λ‘ ν•œλ‹€.
  2. μ μœ λŒ€κΈ° λΆ€μ • : ν”„λ‘œμ„ΈμŠ€ 싀행전에 λͺ¨λ“  μžμ›μ„ ν•œλ²ˆμ— 할당함
  3. 비선점 λΆ€μ • : μžμ› 점유 쀑인 ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€λ₯Έ μžμ›μ„ μš”κ΅¬ν•  λ•Œ 가진 μžμ›μ„ λ°˜λ‚©ν•˜λ„λ‘ 함 
  4. μˆœν™˜λŒ€κΈ° λΆ€μ • : μžμ›μ— 고유 번호 ν• λ‹Ή ν›„ μˆœμ„œλŒ€λ‘œ μžμ›μ„ μš”κ΅¬ν•˜λ„λ‘ 함 

νšŒν”Ό : ꡐ착 μƒνƒœ λ°œμƒμ„ νšŒν”Όν•˜λŠ” 방법 

  1. 은행원 μ•Œκ³ λ¦¬μ¦˜ : ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ μš”κ΅¬ν•  λ•Œ, μ‹œμŠ€ν…œμ€ κ·Έ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν•΄λ‹Ή μžμ›μ„ 할당해도 μ•ˆμ • μƒνƒœλ‘œ λ‚¨μ•„μžˆλŠ”μ§€ 사전에 κ²€μ‚¬ν•˜λŠ” 방법, λ§Œμ•½ μ•ˆμ • μƒνƒœλ©΄ μžμ›μ„ ν• λ‹Ήν•˜λ©°, μ•„λ‹ˆλ©΄ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ λ°˜λ‚©ν• λ•ŒκΉŒμ§€ λŒ€κΈ°ν•¨

탐지 : μžμ› ν• λ‹Ή κ·Έλž˜ν”„λ₯Ό 톡해 ꡐ착 μƒνƒœ 탐지 

  1. μžμ› μš”μ²­ μ‹œ, 탐지 μ•Œκ³ λ¦¬μ¦˜μ„ μ‹€ν–‰μ‹œμΌœμ•Ό ν•˜λ―€λ‘œ μ˜€λ²„ν—€λ“œ λ°œμƒ

회볡 : ꡐ착 μƒνƒœλ₯Ό μΌμœΌν‚¨ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•˜κ±°λ‚˜, ν• λ‹Ήλœ μžμ›μ„ ν•΄μ œμ‹œμΌœ νšŒλ³΅ν•˜λŠ” 방법 

  1. ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ : ꡐ착 μƒνƒœμ˜ ν”„λ‘œμ„ΈμŠ€ λͺ¨λ‘ μ’…λ£Œ, ꡐ착 μƒνƒœκ°€ 제거될 λ•Œ κΉŒμ§€ ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜μ”© μ€‘μ§€ν•œλ‹€.
  2. μžμ› 선점 방법 : ꡐ착 μƒνƒœμ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μ μœ ν•˜κ³  μžˆλŠ” μžμ›μ„ 선점해 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ήν•œλ‹€. (ꡐ착 μƒνƒœμ˜ ν”„λ‘œμ„ΈμŠ€λŠ” μΌμ‹œ 쀑지 μƒνƒœλ‘œ μ „μ΄ν•œλ‹€) 

 

Reference

https://github.com/gyoogle/tech-interview-for-developer

 

gyoogle/tech-interview-for-developer

πŸ‘ΆπŸ» μ‹ μž… 개발자 전곡 지식 & 기술 λ©΄μ ‘ 백과사전 πŸ“–. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.

github.com

http://www.dt.co.kr/contents.html?article_no=2008022802011860739001

 

[μ•Œμ•„λ΄…μ‹œλ‹€] μ² ν•™μžλ“€μ˜ 만찬문제(The Dining-Philosophers Problem)

Λμ² ν•™μž 5λͺ…이 5개의 포크λ₯Ό 2κ°œμ”© μ¨μ„œ μ–΄λ–»κ²Œ μ‚¬μ΄μ’‹κ²Œ μŠ€νŒŒκ²Œν‹°λ₯Ό λ¨Ήμ„κΉŒΛμ›ν™œν•œ..

www.dt.co.kr