반응형
스레드
-프로세스를 구성하는 실행의 단위
-하나의 프로세스는 여러 스레드를 가질 수 있다.
전통저인 관점
-하나의 프로세스는 하나의 일만 처리
-> 단일 스레드 프로세스
스레드 구성 요소
-스레드ID
-프로그램카운터
-레지스터값
-스택
==> 따라서 각기 다른 코드가 수행될 수 있다.
스레드 특징
-실행에 필요한 최소한의 정보만을 유지한 채 프로세스 자원을 공유하며 실행
멀티프로세스
-여러 프로세스를 동시에 실행하는 것
멀티스레드
-한 프로세스 내에 여러 스레드를 수행하는 것
멀티프로세스 vs 멀티스레드
*멀티스레드의 장점
-멀티스레드와 달리 멀티프로세스는 서로 자원을 공유하지 못한다.
따라서 프로세스 개별적으로 메모리공간을 할당해야한다.
-그러나 멀티스레드 속 스레드들은 별도의 스레드ID, 프로그램카운터, 스택을 가질 뿐 나머지 자원을 공유한다.
따라서 메모리공간을 효율적으로 공유하여 사용할 수 있다.
-그리고 메모리자원을 공유하기 때문에 스레드 간 통신을 원활히 할 수 있다.
반면 프로세스들은 서로 독립된 프로세스이기때문에 통신에 불리하다.
*멀티스레드의 단점
자원을 공유하기때문에
-하나의 스레드에 문제가 생기면 프로세스에 문제를 줄 수 있다.
-반면 프로세스는 하나의 프로세스가 문제가 생겨도 무방하다.
멀티프로세스의 프로세스들은 서로 통신이 불가능할까?
->가능하다
IPC(프로세스 간 통신)
서로다른 두 프로세스가 하나의 텏스트파일을 공유하여 처리한다 할때,
프로세스가 공유하는 영역을 공유메모리라 칭하게 된다.
*또한 소켓, 파이프를 통해 통신할 수 있다.
*따라서 스레드에 비해 까다로울 뿐 가능하다.
반응형
'재학습 > OS' 카테고리의 다른 글
[운영체제] 프로세스 상태와 계층구조 (0) | 2022.12.07 |
---|---|
[운영체제] 프로세스란? (0) | 2022.11.28 |
[운영체제] 운영체제의 큰그림 (0) | 2022.11.27 |
[운영체제] 란? (2) | 2022.11.23 |