아이티-잉

공부하며 정리하는 IT블로그

Today   Total  
2023년! 복 많이 받으세요

[운영체제] 프로세스와(Process) 스레드(Thread)

2016. 4. 21. 22:26

프로세스 Process

 

주기억 장치에 상주 중인 프로그램이 CPU에 의해 처리되는 상태를 말하며,

운영체제가 관리하는 작업의 최소 단위이다.

 

 

Ctrl + Alt + Delete 키를 눌러서 작업관리자를 실행하면 직접 확인할 수 있다.

 

이처럼 여러 프로세스들이 동시다발적으로 실행되는 것을 멀티태스킹(Multi Tasking)라고 한다.

 

예컨대, 노래들으면서 문서작업하는 것도 멀티태스킹에 해당한다.

음악을 재생하는 프로세스와 문서작성의 입력을 받는 프로세스가 별개이기 때문이다.

 

 

그리고 이는 멀티프로세서(Multi Processor)와 다른 개념이다.

프로세서는 CPU같은 처리장치를 의미하기 때문이다.

 

 


~ 광고 타임 ~


 

 

 

상태

 

프로세스는의 대표적 3가지의 상태를 살펴보자.

 

1) 준비(Ready) : 프로세서(처리기)를 통해 처리되기 전 일시적 정지상태를 의미한다.

2) 실행(Run) : 프로세서를 통해 처리되고 있는 실행상태를 의미한다.

3) 대기 또는 보류(Wait or Block) : 응답이 올 때까지 실행될 수 없는 상태다.

 

 

 

프로세스 제어 블록(PCB; Process Control Block)

 

운영체제 내에서 프로세스의 정보를 정의한 구조를 말한다.

프로세스를 구분하기 위한 정보 블록이며, 일반사용자는 접근이 제한된다.

 

 

 

 

스레드 Thread

 

프로세스가 작업의 단위라면, 스레드는 흐름의 단위다.

프로세스 내에서 명령어들이 순차적으로 실행될 때,

스레드 또한 연속적으로 실행된다.

 

스레드는 프로세스 내에 존재하며,

하나의 프로세스 내 여러개의 스레드가 존재할 수도 있다.

 

그리고 이를 멀티스레드(Multi Thread)라고 한다.

 

 

 


~ 광고 타임 ~


 

 

 

프로세스와 스레드

 

조금더 쉽게 생각해보기 위해 예를 들어보겠다.

 

큰맘먹고 그림판 작업을 해봤다.

 

프로그램이 아파트라고 가정하면, 101호는 프로세스에 해당한다.

그리고 101호 안에는 철수와 영희라는 두 스레드가 존재한다.

 

즉, 앞서배운 멀티스레드에 해당한다.

 

실제로 집안 일은 철수와 영희가 다하며,

식탁이라는 공용자원을 번갈아 사용할 수도 잇다.

이것이 바로 멀티 스레드의 특징이다.

 

 

 

 

마치며

 

사실 어려운 내용은 아니지만 햇갈릴 뿐이다.

 

어렵지 않은 내용이므로 이해했길 바라면서 마치겠다.

 

 

 

끝.