본문 바로가기
#컴퓨터 과학 [Computer Science]/운영체제 (Operating System)

[OS] 프로세스와 쓰레드의 차이점 (What is the difference between a process and a thread?)

by cy_mos 2020. 1. 18.
반응형
프로세스는 뭐고 스레드는 뭔가요?

+ 프로세스 (Process)란?

컴퓨터 내에서 실행중인 프로그램을 일컫는 용어이며, 즉 프로세스는 '주어진 일을 해결하기 위한 목적으로 그 순서가 정해져 수행되는 일련의 절차'라고 정의할 수 있다.

 

Each process provides the resources needed to execute a program. A process has a virtual address space, executable code, open handles to system objects, a security context, a unique process identifier, environment variables, a priority class, minimum and maximum working set sizes, and at least one thread of execution. Each process is started with a single thread, often called the primary thread, but can create additional threads from any of its threads.

 

🌎 프로세스 상태 (Process Status)

프로세스 상태 (Process Status)

 

  • 생성(create) : 프로세스가 생성되는 중이다.
  • 실행(running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있다.
  • 준비(ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리고 있다. 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당받는다.
  • 대기(waiting) : 보류(block)라고 부르기도 한다. 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말한다.
  • 종료(terminated) : 프로세스의 실행이 종료되었다.

+ 쓰레드 (Thread)란? 

컴퓨터 프로그램 수행 시 프로세스 내부에 존재하는 수행 경로, 즉 일련의 실행 코드. 프로세스는 단순한 껍데기일 뿐, 실제 작업은 스레드가 담당한다. 프로세스 생성 시 하나의 주 스레드가 생성되어 대부분의 작업을 처리하고 주 스레드가 종료되면 프로세스도 종료된다. 하나의 운영 체계에서 여러 개의 프로세스가 동시에 실행되는 환경이 멀티태스킹이고, 하나의 프로세스 내에서 다수의 스레드가 동시에 수행되는 것이 멀티스레딩이다.

[네이버 지식백과] 스레드 [thread] (IT용어사전, 한국정보통신기술협회)


A thread is an entity within a process that can be scheduled for execution. All threads of a process share its virtual address space and system resources. In addition, each thread maintains exception handlers, a scheduling priority, thread local storage, a unique thread identifier, and a set of structures the system will use to save the thread context until it is scheduled. The thread context includes the thread's set of machine registers, the kernel stack, a thread environment block, and a user stack in the address space of the thread's process. Threads can also have their own security context, which can be used for impersonating clients.


+ 프로세스와 쓰레드의 차이점 (What is the difference between a process and a thread?)

https://mooneegee.blogspot.com/2015/01/os-thread.html

 

Both processes and threads are independent sequences of execution. The typical difference is that threads (of the same process) run in a shared memory space, while processes run in separate memory spaces.

 

프로세스와 쓰레드 둘 다 독립 된 일련의 실행의 순서입니다. 보통적으로 쓰레드는 메모리 (Heap, Static, Code)의 영역을 다수의 쓰레드들과 공유하여 사용하며 스택 영역은 각 쓰레드 별로 존재합니다. 하지만 프로세스는 모든 메모리 영역이 분리되어 각 프로세스별로 메모리가 존재합니다.


🚀 REFERENCE

 

What is the difference between a process and a thread?

What is the technical difference between a process and a thread? I get the feeling a word like 'process' is overused and there are also hardware and software threads. How about light-weight proces...

stackoverflow.com

 

프로세스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기

ko.wikipedia.org

 

스레드

①컴퓨터 프로그램 수행 시 프로세스 내부에 존재하는 수행 경로, 즉 일련의 실행 코드. 프로세스는 단순한 껍데기일 뿐, 실제 작업은 스레드가 담당한다. 프로세스 생성 시 하나의 주 스레드가 생성되어 대부분의 작업을 처리하고 주 스레드가 종료되면 프로세스도 종료된다. 하나의 운영 체계에서 여러 개의 프로세스가 동시에 실행되는 환경이 멀티태스킹이고, 하나의 프로세스 내에서 다수의 스레드가 동시에 수행되는 것이 멀티스레딩이다. ②나무 데이터 구조(tree da

terms.naver.com

반응형

댓글