728x90
합격
분명 너무 못봤다고 생각했던 면접에서.. 합격 전화가 왔다.
헉.. 말이 안되그든요... 진짜루 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 아니 울면서 면접 정리한게 엊그제 같은.. 사실 진짜다 정말 아니 말이 안대ㅐㅐㅐ 전화가 왔을 때, 사실 헉!! 해버렸다. 탈락했으면 문자로 줬을 것 같은데 전화??!?
혹시혹시혹시혹시......
쨔잔 합격!!! 현재의 실력보다 미래에 대해서 투자하신듯하다. 왜냐면 면접 때 답변한거 보면 현재에 투자하실수가 없었구든... 그래도 지나ㅣㅇ너마ㅓㅠㅏㅓㅠㅏㅠㅓㅏ어ㅏㅠㅓ 날 믿어주셨다.
날 믿어주셨으니 보답해야지!!!!
날 보셨어!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
열심히 해보자 김에린. 너 독종처럼 할 수있잖아. 너ㅓ 미친놈이잖아. 너 하루도 빠지지 않고 TIL 쓸 수 있고, 주7일 100시간도 했잖아. 이제는 돈도 주고 너 스펙도 쌓이는거야. 더 열심히해. 할 수 있어. 너 최고야 개멋져 할수이따!!!!!
CS
데드락(DeadLock)
- 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 의미한다. 무한히 다음 자원을 기다리게 되는 상태이다.
- 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다.
데드락 발생 조건
- 4가지 모두 성립해야 데드락이 발생한다.
- 상호 배제(Mutual Exclusion)
- 자원은 한번에 한 프로세스만 사용할 수 있다.
- 점유 대기(Hold and Wait)
- 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 한다.
- 비선점(No Preemption)
- 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다.
- 순환 대기(Circular Wait)
- 프로세스의 집합에서 순환 형태로 자원을 대기하고 있어야 한다.
데드락 처리
- 교착 상태를 예방 & 회피
- 예방(Prevention)
- 교착 상태 발생 조건 중 하나를 제거하면서 해결한다.(자원 낭비가 심하다.)
- 상호 배제 부정 : 여러 프로세스가 공유 자원을 사용한다.
- 점유 대기 부정 : 프로세스 실행 전 모든 자원을 할당한다.
- 비선점 부정 : 자원 점유 중인 프로세스가 다른 자원을 요구할 때 가진 자원을 반납한다.
- 순환 대기 부정 : 자원에 고유번호 할당 후 순서대로 자원을 요구한다.
- 교착 상태 발생 조건 중 하나를 제거하면서 해결한다.(자원 낭비가 심하다.)
- 회피(Avoidance)
- 교착 상태 발생 시 피해나가는 방법
- 은행원 알고리즘
- 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래했다.
- 프로세스가 자원을 요구할 때, 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지 사전에 검사하여 교착 상태 회피
- 안정 상태면 자원 할당, 아니면 다른 프로세스들이 자원 해지까지 대기
- 은행원 알고리즘
- 교착 상태 발생 시 피해나가는 방법
- 교착 상태를 탐지 & 회복
- 교착 상태가 되도록 허용한 다음 회복시키는 방법
- 탐지(Detection)
- 자원 할당 그래프를 통해 교착 상태를 탐지한다.
- 자원 요청 시, 탐지 알고리즘을 실행시켜 그에 대한 오버헤드가 발생한다.
- 회복(Recovery)
- 교착 상태 일으킨 프로세스를 종료하거나, 할당된 자원을 해제시켜 회복시키는 방법
- 프로세스 종료 방법
- 교착 상태의 프로세스를 모두 중지시킨다.
- 교착 상태가 제거될 때까지 하나씩 프로세스 중지
- 자원 선점 방법
- 교착 상태의 프로세스가 점유하고 있는 자원을 선점해 다른 프로세스에게 할당한다.
- 우선 순위가 낮은 프로세스나 수행 횟수 적은 프로세스 위주로 프로세스 자원 선점
- 예방(Prevention)
경쟁 상태(Race Condition)
- 공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 결과값에 영향을 줄 수 있는 상태이다.
- 동시 접근 시 자료의 일관성을 해치는 결과가 나타난다.
Race Condition이 발생하는 경우
- 커널 작업을 수행하는 중에 인터럽트가 발생
- 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우
- 해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다.
- 프로세스가 ‘System Call’을 하여 커널 모드로 진입하여 작업을 수행하는 도중 문맥 교환이 발생할 때
- 문제점 : 프로세스1이 커널모드에서 데이터를 조작하는 도중, 시간이 초과되어 CPU 제어권이 프로세스2로 넘어가서 같은 데이터를 조작하는 경우
- 해결법 : 프로세스가 커널모드에서 작업을 하는 경우 시간이 초과되어도 CPU 제어권이 다른 프로세스에게 넘어가지 않도록 한다.
- 멀티 프로세서 환경에서 공유 메모리 내의 커널 데이터에 접근할 때
- 문제점 : 멀티 프로세서 환경에서 2개의 CPU가 동시에 커널 내부의 공유 데이터에 접근하여 조작하는 경우.
- 해결법 : 커널 내부에 있는 각 공유 데이터에 접근할 때마다, 그 데이터에 대한 LOCK/UNLOCK 을 하는 방법
728x90
'Study > TIL(Today I Learned)' 카테고리의 다른 글
24.07.08 CS (0) | 2024.07.08 |
---|---|
24.07.05 CS (0) | 2024.07.05 |
24.07.03 그래픽스, CS (0) | 2024.07.03 |
24.07.02 면접 (1) | 2024.07.02 |
24.07.01 CS, 그래픽스 (0) | 2024.07.01 |