운영체제 2

데드락(Deadlock)

데드락(Deadlock)이란? - 프로세스나 쓰레드가 얻고자 하는 자원을 얻지 못해, 교착 상태에 빠진 것 데드락 발생 조건 아래 4개의 조건 모두를 만족한다면 잠재적으로 데드락이 발생할 가능성이 있다. 1. 상호 배제(Mutual Exclusion) - 자원은 한번에 하나의 프로세스나 쓰레드만 사용할 수 있다 2. 점유 대기 - 프로세스가 최소 하나의 할당된 자원을 갖고 있으면서 다른 자원을 기다린다 3. 비선점 - 다른 프로세스가 갖고 있는 자원을 강제로 빼앗을 수 없다 4. 순환 대기 - 각 프로세스는 다음 프로세스가 점유중인 자원을 순환적으로 대기중이다. 예를 들어서 P1, P2, P3 프로세스가 있고, P1은 R1, P2은 R2, P3는 R3 이렇게 각각 리소스를 점유중일 때, P1는 R2을 기..

공부/운영체제 2022.09.02

쓰레드(Thread), 프로세스(Process)란?

쓰레드(Thread) - 프로세스 내에서 실제로 실행중인 주체. 프로세스 내에 여러개가 있을 수 있다. 쓰레드는 프로세스로부터 독립적인 스택 공간과 레지스터(ex. Stack Point Register, Program Counter Register, Frame Pointer Register)를 갖고 있으면서, 동시에 Code, Heap, Data 영역은 쓰레드끼리 공유한다. -> 왜 쓰레드는 스택과 PC, SP, FP Register를 공유하지 않는지 생각해보면 당연하다. 쓰레드는 독립적인 실행 흐름을 갖고 있다고 했다. 독립적인 실행 흐름을 갖는다는 말은 쓰레드마다 실행중인 라인이 다를 수 있다는 것이고, 독립적으로 함수 호출이 가능하다는 것이므로 호출 스택과 관련된 SP, FP를 따로 갖는게 당연하다..

공부/운영체제 2022.09.01