멀티 프로세스는 하나의 응용 프로그램이 여러 개의 프로세스를 동시에 실행할 수 있게 하는 운영체제의 기술입니다.
ex) 멀티 프로세스 예시: 크롬 브라우저의 멀티 탭
💡동시성: 여러 작업이 짧은 시간 간격으로 번갈아가며 수행되어, 마치 동시에 수행하는 것처럼 보이는 것
멀티 프로세스는 다양한 구조 유형들이 존재 합니다.
그 중 하나인 부모-자식(계층) 구조
Context Switching
이 빈번하게 일어나게 되는데,하나의 프로세스 내에는 여러 개의 스레드가 존재할 수 있으며, 이 중 단 하나만 있는 경우를 싱글 스레드라고 하고, 두 개 이상 존재하는 경우를 멀티스레드 구조라고 합니다.
멀티 프로세스의 예로 크롬의 멀티 탭을 들었었는데, 멀티 스레드의 예시로는 크롬의 단일 탭 내에서 네트워크 요청 처리, 사용자 인터페이스의 I/O 작업, 자바스크립트 이벤트 루프 관리 등과 같은 다양한 작업들이 여러 스레드에 의해 동시에 처리되는 것을 들 수 있습니다.
동기화 문제
가 발생할 수 있습니다.💡 멀티 스레드에서 동시 접근 제어: 뮤텍스 사용
멀티 스레드 환경에서 뮤텍스는 공유 자원에 대한 동시 접근을 제어하는 역할을 합니다.
한 스레드가 특정 자원을 사용할 때 다른 스레드의 접근을 차단함으로써, 데이터의 무결성을 보장하고 Race Condition을 예방할 수 있습니다.
ref.
Inpa Dev 멀티 프로세스 vs 멀티 스레드 비교 완전 총정리
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main/OS
https://soopeach.tistory.com/252