프로세스와 쓰레드

김기용·2020년 10월 18일
0

Process(프로세스)

프로세스란 실행중인 프로그램이다. 프로그램을 실행하면 OS로부터 실행에 필요한 메모리를 할당받아 프로세스가 된다.

Process의 구성

프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리등의 자원 그리고 쓰레드로 구성되어 있다.

모든 프로세서에는 최소한 하나 이상의 쓰레드가 존재한다.
둘 이상의 쓰레드를 가진 프로세스 "multi-threaded process(멀티쓰레드 프로세스)" 라고도 한다.

Multi-taksing, Multi-threading

현재 우리가 사용하고 있는 대부분의 컴퓨터 OS는 Multi-tasking(다중작업)을 지원하기 때문에 여러 프로세스가 동시에 실행될 수 있다.

이와 마찬가지로 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 할 수 있는데 이를 Multi-threading(멀티쓰레딩)이라 한다.

CPU의 코어는 한 번에 단 하나의 작업만 수행할 수 있다 그래서 쓰레드의 개수는 CPI의 코어의 개수와 일치해야하지만, 실제로 처리해야하는 쓰레드의 수는 언제나 코어의 개수보다 많기 때문에 각 코어는 아주 짧은 시간동안 여러 개의 작업을 번갈아 수행함으로써 다중작업을 하고 있는것처럼 보이게 한다.

Multi-threading

장점:
CPU의 사용률을 향상시킨다.
자원을 보다 효율적으로 사용할 수 있다.
사용자에 대한 응답성이 향상된다
작업이 분리되어 코드가 간결해진다.

단점:
여러 쓰레드가 같은 프로세스 내에서 자원을 공유하면서 synchronization(동기화), deadlock(교착상태)에 빠질 수 있다.

profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글