+ 프로세스 (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)
- 생성(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?)
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
'#컴퓨터 과학 [Computer Science] > 운영체제 (Operating System)' 카테고리의 다른 글
[OS] 세마포어 (Semaphore)와 뮤텍스 (Mutex) (0) | 2020.02.05 |
---|---|
[OS - 🍎 macOS] 전체 디스크 접근 권한 (Full Disk Access) (0) | 2020.02.03 |
[OS - 🍎 macOS] macOS 시스템 환경 설정 링크 (macOS System Preference Links) (0) | 2020.01.13 |
[OS - 🍎 macOS] macOS .DS_Store 파일 분석 방법 (Parsing the .DS_Store file format in macOS) (0) | 2020.01.01 |
[OS - 🍎 macOS] macOS 최근 사용 항목 목록 가져오기 (How to get list of recent items in macOS) (0) | 2019.12.20 |
댓글