Search

Process & Thread

1.
process를 간단히 설명해 주세요.
프로세스는 실행 중인 프로그램으로, 독립된 메모리 공간을 가집니다. 각 프로세스는 코드, 데이터, 스택, 힙 등의 메모리 영역을 할당받으며, 운영체제로부터 자원을 독립적으로 관리받습니다.
2.
multi process에 대해서 설명해 주세요.
멀티 프로세스는 여러 프로세스가 동시에 실행되는 방식입니다. 각 프로세스는 독립된 메모리 공간을 가지기 때문에 안정성이 높지만, 프로세스 간 통신(IPC)이 필요합니다.
3.
multi thread에 대해서 설명해 주세요.
멀티 스레드는 하나의 프로세스 내에서 여러 스레드가 동시에 실행되는 방식입니다. 스레드는 메모리를 공유하기 때문에 통신이 빠르지만, 동기화 문제가 발생할 수 있습니다.
4.
multi process와 multi thread를 비교설명해 주세요.
멀티 프로세스:
장점: 독립된 메모리 공간으로 안정성이 높음.
단점: 프로세스 간 통신이 복잡하고 오버헤드가 큼.
멀티 스레드:
장점: 메모리 공유로 통신이 빠르고 오버헤드가 적음.
단점: 동기화 문제가 발생할 수 있음.
5.
multi process/thread의 동기화 문제를 어떻게 해결하나요?
Mutex: 한 스레드만 공유 자원에 접근하도록 제어합니다.
Semaphore: 특정 개수의 스레드만 공유 자원에 접근하도록 제어합니다.
6.
교착상태(Deadlock)에 대해서 간단히 설명해 주세요.
교착상태는 두 개 이상의 프로세스나 스레드가 서로의 자원을 기다리며 무한히 대기하는 상태입니다. 이를 방지하기 위해 자원 할당 순서를 정하거나, 타임아웃을 설정하는 등의 방법을 사용합니다.