0. 용어 정리
실행단위: cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포함하는 개념
프로세스: 하나의 스레드만 가지고 있는 단일 스레드 프로세스
동시성: 한 순간에여러 가지일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것
1. Process & Thread
[프로그램과 프로세스 차이]
프로그램: 치킨 레시피, 코드가 구현되어 있는 파일
프로세스: 치킨, 코드가 운영되는 서비스 상태
-> 프로그램이 프로세스가 됨
[프로그램이 프로세스가 되는 과정 짤]
[스레드가 나온 이유]
예를 들어 컴퓨터 코딩할 때 노래, vscode, 슬랙, 카카오톡을 사용함
대부분의 사람이 하나의 프로세스만 사용하기보다는 여러 가지 동시에 사용을 원함
원래 한 프로세스가 사용하기 위해 cpu를 점유하고 있으면 다른 프로세스는 실행상태에 있을 수가 없음
동시에 사용하기 위해서 프로세스를 시분할, 짧은 텀으로 반복하면서 전환해서 실행을 함 이게 컨텍스트 스위칭임
그래서 경량화 프로세스 버전인 ‘스레드’가 나옴
하나의 프로세스 안에 다수 스레드가 있을 때 자원을 공유함
컨텍스트 스위칭 시 캐싱 적중률이 올라감
[컨텍스트 스위칭 비유]
회의실을 빌리는 상황
회의실 사용하는 사람은 모두 필요한 화면, 스피커, 리모컨들을 매번 치워 다음 예약자가 다시 설치 및 사용하는 것은 프로세스 방식이고,
타인도 쓸 것이니 놔두고 가서 다음 예약한 사람도 그대로 쓰는 것이 스레드컨텍스트스위칭임
2. Multi-process vs Multi-thread
멀티 프로세스와 멀티 스레드 모두 한애플리케이션에대한 처리방식의 일종
익스플로러는 멀티 스레드를 이용
크롬은 멀티 프로세서를 이용
3. 요약
- 프로세스는 프로그램이 실행된 것
- 스레드는 한 프로세스 내에서 나뉜 하나 이상의 실행단위
- 한 애플리케이션에 대한 작업을 동시에 하기 위해서는 2가지 처리 방식(멀티 프로세스, 멀티 스레드)이 있음
- 동시에 실행되는 것처럼 보이기 하기 위해서 실행 단위는 시분할로 cpu를 점유하여 context switching을 함
- 멀티 프로세스는 독립적인 메모리를 가지고 있지만 멀티 스레드는 자원을 공유함, 각 장단점 존재
- 멀티 코어는 하드웨어 측면에서 실행 단위를 병렬적으로 처리할 수 있도록 여러 프로세서가 있음
출처
'프로그래밍 > CS' 카테고리의 다른 글
CS스터디 2주차 - 인터럽트 데드락 (0) | 2023.03.17 |
---|---|
CS스터디 1주차 - 프로세스 (1) | 2023.03.16 |
운영체제(11/11) - Disk Management & Scheduling 1, 2 (2) | 2023.02.04 |
운영체제(10/11) - File Systems (2) | 2023.02.03 |
운영체제(9/11) - Virtual Memory 1,2 (0) | 2023.02.02 |
댓글