1. 프로세스란?
실행중인 프로그램을 프로세스라고 부른다.
예를 들어, 컴퓨터에서 카카오톡, 유튜브, 알집이 실행됐다고 하면
프로세스가 3개 실행된 것이라고 말할 수 있다.
2. 스레드란?
프로세스 안의 실행 단위를 스레드라고 한다.
프로세스는 실행 중인 프로그램, 그러니 실행 중인 프로그램의 실행 단위라고 이해하면 된다.
예를 들어 유튜브의 재생 기능, 좋아요 기능 등이 유튜브 라는 프로세스
안에서 실행되는 것이기 때문에 이를 스레드라고 표현할 수 있다.
3. 프로세스의 구조와 특징은?
하나의 프로세스는 CPU와 메모리를 할당 받는다.
참고로 메모리는 코드, 데이터, 힙, 스택 영역으로 이루어져 있다.
그리고 최소 1개의 스레드가 존재하는데 프로세스 안에 있는 스레드들은
데이터를 공유할 수 있지만 스택 영역은 독립적으로 가지고 있다.
왜냐하면 스택 영역은 메서드가 저장되어 있는 부분이기 때문에
제 기능만 하면 돼서 딱히 다른 스레드와 공유할 의미가 없는 것이다.
프로세스도 마찬가지로 독립된 메모리 영역을 가지는데
이유는 유튜브가 실행되기 위해 카카오톡을 알 필요가 없고 알아서도 안되기 때문이다.
4. IPC (Inter Process Communication)
프로세스와 프로세스의 통신이 필요한 경우가 있는데
이를 가능하게 해주는 기술을 Inter Process Communication 즉, IPC라고 한다.
주로 작업의 분산, 다중 프로세스 환경, 공유 자원의 접근, 부모/자식 프로세스 관계와 같은 상황에서 사용된다.
IPC의 종류로는 공유 메모리, 파이프, 세마포어, 메시지큐, 소켓이 있다.
쉽게 이해하자면
공유 메모리는 프로세스가 데이터를 공유하며 직접 교환하는 메모리
파이프는 파이프 모양을 생각 -> 단방향 통신
세마포어는 한국어로 신호 장치를 뜻하기 때문에 공유자원 접근에 대한 동기화와 제어를 신호로 관리
메시지큐는 이름 그대로 메시지를 사용한 통신
소켓은 구멍, 연결이란 뜻이기 때문에 네트워크 연결(통신)로 프로세스 통신
'간단한 IT 지식' 카테고리의 다른 글
[오늘의 지식] 데드락 (0) | 2024.04.17 |
---|---|
[오늘의 지식] CPU 스케줄러 (0) | 2024.04.15 |
[오늘의 지식] 트리의 순회 (0) | 2024.03.08 |
[오늘의 지식] 해시 테이블(Hash Table) (3) | 2024.03.07 |
[오늘의 지식] 가비지 컬렉터(Garbage Collector) (0) | 2024.03.07 |