본문 바로가기
CS/운영체제&컴퓨터구조

프로세스 상태와 스레드

by nothing-error 2022. 11. 2.

프로세스 상태와 스레드

 

 

1. 프로세스 상태

 

프로세스 상태

 

상태  설명
생성 -> 준비 프로그램을 커널에 등록한 상태, PCB를 할당하고 프로세스를 생성한 상태  
준비 -> 실행 프로세서 외에 모든 자원을 할당 받은 상태, 프로세서만 할당 되면 바로 실행 가능한 상태
실행 -> 준비 or 대기 프로세서와 모든 자원을 할당 받은 상태
대기 -> 준비 프로세서 외에 다른 데이터를 기다리는 상태
종료 프로세스가 종료된 상태. PCB와 메모리 정리

 

 

2. 스레드

스레드는 프로세스를 구성하는 실행되는 흐름의 단위를 말합니다. 그리고 하나의 프로세스에 둘 이상의 스레드를 실행 하는 방식을 멀티스레드라고 합니다.

 

3. 멀티프로세스와 멀티스레드 차이

구분 특징 장점 단점
멀티프로세스 프로세스끼리 자원을 공유하지 않음
(기본적으로 자원을 공유하지 않지만, 자원을 공유하고 데이터를 주고 받을 수 있음, IPC)
독립된 구조로 안정성 높음

독립된 메모리 영역이기 때문에 작업량이 많을수록 오버헤드가 발생하여 성능저하가 발생
멀티스레드 스레드 끼리 같은 프로세스 내의 자원 공유
공유O : 코드, 데이터, 힙, 파일
공유X : 레지스터, 스택, *프로그램 카운터
프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어 자원을 효율적으로 관리 자원을 공유하기에 동기화 문제
* 프로그램 카운터 : CPU 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정

 

 


관련글

2022.11.02 - [분류 전체보기] - PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조

 

 

 


Reference

 

https://ybdeveloper.tistory.com/127

https://wooody92.github.io/os/%EB%A9%80%ED%8B%B0-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EB%A9%80%ED%8B%B0-%EC%8A%A4%EB%A0%88%EB%93%9C/

댓글