본문/내용
1. 프로세스와 스레드
프로세스는 운영체제에서 실행 중인 프로그램을 의미하며, 독립적인 작업 단위로서 각각 고유한 메모리 공간과 시스템 자원을 할당받는다. 예를 들어, 웹 브라우저와 워드프로세서가 동시에 실행되고 있다면 각각은 별개의 프로세스로서 독립적인 주소 공간과 자원을 갖는다. 프로세스는 생성, 실행, 종료의 생명주기를 가지며, 생성 시에는 부모 프로세스가 자식 프로세스를 포크하여 만드는데, 이 과정은 유닉스 계열 시스템에서 주로 사용된다. 프로세스 간에는 정보의 교환이 필요할 때 IPC(Inter Process Communication) 기법을 활용하며, 이는 프로세스간 메시지 전달, 공유 메모리, 파이프 등을 포함한다. 운영체제 상에서 현재 활성화된 프로세스는 2023년 기준으로 약 1억 5000만 개에 달하며, 이중 절반 이상이 일상적으로 사용하는 모바일 애플리케이션이다. 반면, 스레드는 프로세스 내에서 실행되는 작업 단위로, 프로세스보다 더 가볍고 자원 소모가 적다. 동일 프로세스 내의 여러 스레드는 메모리와 자원을 공유하며, 이를 통해 효율적인 작업 수행이 가능하다. 예를 들어, 웹 브라우저는 하나의 프로세스 내에 다수의 스레드를 배치…