본 게시글은 프로세스와 쓰레드의 차이를 바탕으로 멀티 프로세스와 멀티 쓰레드의 차이 그리고 그 쓰임새에 대해 정리하기 위한 목적으로 작성된 글입니다.
프로세스와 스레드
프로세스는 여러 응용 프로그램이 독립적으로 실행되는 것을 의미합니다. 예를 들어, 웹 브라우저를 실행하면 각 탭은 별도의 프로세스로 실행됩니다.
스레드는 프로세스 내에서 실행되는 여러 실행 흐름으로, 하나의 프로그램 내에서 여러 작업을 동시에 처리할 수 있게 합니다. 예를 들어, 웹 브라우저가 여러 탭에서 동시에 여러 작업을 처리할 때 쓰레드가 사용됩니다.
멀티 프로세스와 멀티 스레드
멀티 프로세스는 여러 프로세스가 동시에 실행되는 것을 의미합니다. 서버에서 여러 클라이언트 요청을 동시에 처리할 때 각 클라이언트 요청을 별도의 프로세스로 처리할 수 있습니다.
멀티 프로세스는 안정성이 중요한 환경에서 유용하며, 운영 체제의 안정성을 보장하기 위해 여러 프로세스로 분리된 서비스를 운영할 수 있습니다.
멀티 스레드는 단일 프로세스 내에서 여러 스레드가 동시에 실행되는 것을 의미합니다. 웹 서버에서 여러 요청을 동시에 처리할 때 스레드를 사용하여 효율적으로 처리할 수 있습니다.
멀티 스레드는 자원 공유와 효율성이 필요할 때 적합하며, 데이터베이스나 네트워크 서버와 같은 I/O 중심의 작업을 효율적으로 처리하거나, 그래픽 애플리케이션에서 다양한 작업을 동시에 처리할 때 쓰레드를 사용할 수 있습니다.
1. 프로세스에 대해 설명해주세요.
2. 프로세스와 스레드의 차이는 무엇인가요
3. 프로세스 간 통신 방법들에 대해 설명해주세요
4. 프로세스 스케줄링에 대해 설명해주세요
5. 교착 상태에 대해 설명해주세요
6. 프로세스 상태 전이에 대해 설명해주세요
7. 프로세스와 스레드 간의 리소스 공유에 대한 동기화 방법에 대해 설명해주세요.
참고 출처
- https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
'CS > 운영체제' 카테고리의 다른 글
[Linux] 파일 시스템 관련 명령어 (0) | 2023.12.20 |
---|---|
[Linux] LVM이란? (0) | 2023.11.22 |
[Linux] RAID 란? (0) | 2023.11.19 |
[Linux] Linux 파일시스템 inode 정리 (0) | 2023.10.16 |
[Linux] 리눅스 파티션과 포트 (0) | 2023.10.16 |