inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. Deadlock이란 무엇인지 설명해 주세요. (외 1문제)

회피 기법에서 timestamp 사용

528

취업깡패

작성한 질문수 5

3

자원을 할당할 때 timestamp를 사용하여 어떻게 deadlock이 일어나지 않도록 하는지 추가 설명이 궁금합니다!

면접 운영체제 기술면접

답변 1

1

개발남노씨

timestamp를 이용한 deadlock 예방기법은 사실 면접에서 물어보질 않아서 깊게 설명을 드리진 않았습니다. 또한 전공과목을 배울 때도 엄청 자세히 중요하게 살펴보는 내용은 아니라서, 공부했을 당시에는 깊게 공부했더라도 현재는 저 또한 timestamp를 이용해서 예방하는 구나 정도만 인지하고 있습니다. 하지만 한번 깊은 이해를 해두면 좋을 수 있으니 적당한 깊이로 추가 설명드리겠습니다 ㅎㅎ

 

deadlock을 예방하기 위해 트랜잭션이 시작된 시간을 timestamp로 삼고, 이를 기준으로 크게 두 방식으로 처리합니다.

1. Wait-die

 T1, T2 두 개의 transaction이 있다고 해볼게요. T2가 선점하고 있는 data에 T1이 접근을 요청합니다.  T1의 timestamp가 T2의 timestamp보다 더 older일 경우에는 wait 할 수 있습니다. 그렇지 않은 경우에 T1은 그냥 die 합니다. (roll back)

2. Wound-wait

 T1, T2 두 개의 transaction이 있다고 해볼게요. T2가 선점하고 있는 data에 T1이 접근을 요청합니다. T1의 timestamp가 T2의 timestamp보다 더 younger일 경우에는 wait 할 수 있습니다. 그렇지 않은 경우 에 T2는 그냥 die 합니다(roll back)

 

 

 

 

0

취업깡패

답변 감사합니다.

단순히 생각하기에 wound-wait가 wait-die에 비해 roll back이 덜 일어날 것 같은데 그러면 실제로는 wound-wait 방식의 구현이 대부분인가요?

Open addressing을 사용할 때의 worst case

1

483

1

인터넷 계층과 네트워크 엑세스 계층

1

506

1

패킷이란

1

439

1

Linked list의 장점

1

662

1

노션 자료 이메일 잘못 입력했어요..

1

562

1

동기화 문제

1

513

2

프로세스 관련 질문

1

583

1

노션 전자 책 동영상 문제

1

490

1

안녕하세요 강사님!

1

349

1

노션 공유 요청

1

370

1

Linked List 시간 복잡도

3

767

1

thread의 PC register 질문

1

729

2

hash table의 seperate chaining 질문

0

397

2

인덱스 카디널리티 부분 질문이있습니다.

2

1202

2

프론트엔드 면접준비 질문

0

556

1

시간복잡도

1

281

1

쿠키 질문

0

322

1

쓰레드의 단점 중 궁금한 것이 있습니다.

0

274

1

URL을 주소창에 쳤을 때 화면에 나오기까지의 과정에 대해 추가적으로 궁금합니다.

1

443

1

궁금한게 있습니다

0

213

0

강의자료 HTTP 부분 request 단어가 repuest로 되어있습니다

1

229

1

강의가 이해가 잘되네요

1

258

1

syn 과 fin의 데이터 단위가 다른 이유

2

296

1

Circular Queue에 대해서 질문드려요

1

298

1