프로세스 상태와 스레드
1. 프로세스 상태
상태 | 설명 |
생성 -> 준비 | 프로그램을 커널에 등록한 상태, PCB를 할당하고 프로세스를 생성한 상태 |
준비 -> 실행 | 프로세서 외에 모든 자원을 할당 받은 상태, 프로세서만 할당 되면 바로 실행 가능한 상태 |
실행 -> 준비 or 대기 | 프로세서와 모든 자원을 할당 받은 상태 |
대기 -> 준비 | 프로세서 외에 다른 데이터를 기다리는 상태 |
종료 | 프로세스가 종료된 상태. PCB와 메모리 정리 |
2. 스레드
스레드는 프로세스를 구성하는 실행되는 흐름의 단위를 말합니다. 그리고 하나의 프로세스에 둘 이상의 스레드를 실행 하는 방식을 멀티스레드라고 합니다.
3. 멀티프로세스와 멀티스레드 차이
구분 | 특징 | 장점 | 단점 |
멀티프로세스 | 프로세스끼리 자원을 공유하지 않음 (기본적으로 자원을 공유하지 않지만, 자원을 공유하고 데이터를 주고 받을 수 있음, IPC) |
독립된 구조로 안정성 높음 |
독립된 메모리 영역이기 때문에 작업량이 많을수록 오버헤드가 발생하여 성능저하가 발생 |
멀티스레드 | 스레드 끼리 같은 프로세스 내의 자원 공유 공유O : 코드, 데이터, 힙, 파일 공유X : 레지스터, 스택, *프로그램 카운터 |
프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어 자원을 효율적으로 관리 | 자원을 공유하기에 동기화 문제 |
* 프로그램 카운터 : CPU 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정
관련글
2022.11.02 - [분류 전체보기] - PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조
Reference
'CS > 운영체제&컴퓨터구조' 카테고리의 다른 글
프로세스 동기화 (0) | 2022.11.03 |
---|---|
CPU 스케줄링과 알고리즘 (0) | 2022.11.03 |
PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조 (0) | 2022.11.02 |
커널(Kernel)과 시스템 콜(Syetem call) (0) | 2022.11.02 |
CISC와 RISC 비교 (0) | 2022.10.26 |
댓글