[Operating System] 프로세스와 스레드

Kim Hyen Su·2024년 3월 7일

👾 CS

목록 보기
1/5

참고 포스팅

💻 프로세스 & 스레드 간단개념


한눈으로 정리하면, 아래와 같습니다.

프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위.

스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위.

👾 프로그램과 프로세스

프로그램 이란 컴퓨터에서 실행할 수 있는 파일(명령어 집합 | 코드 덩어리)을 통칭합니다.

단, 아직 메모리에 올라가지 않은 즉, 실행하지 않은 상태로 정적 프로그램(static program) 줄여서 프로그램이라고 합니다.

프로세스 란 정적인 프로그램이 동적으로 변하여 실행되고 있는 상태를 말합니다.

즉, 컴퓨터에서 작업 중인 프로그램을 의미합니다.

👾 스레드

프로세스의 한계

현대에 이르러 하나의 프로세스로 하나의 작업만 처리하기에는 복잡한 프로그램을 실행하기에 한계가 있습니다.
그렇다고 여러개의 프로세스로 하나의 프로그램을 실행하게 되면, 메모리 낭비와 중복된 자원을 사용하게 됩니다.

스레드는 이러한 프로세스 특성의 한계를 해결하기 위해 개발되었습니다.

스레드란, 하나의 프로세스 내에서 동시에 진행되는 작업의 갈래, 흐름의 단위를 말합니다.

예를 들면, 크롬 브라우저 내에서 우리는 파일을 다운로드 받으며, 웹서핑과, 온라인 쇼핑 및 게임을 즐길 수 있습니다.

이는 하나의 프로세스 안에서 여러가지 작업들의 흐름이 동시에 진행되기 때문에 가능한 것입니다.

이러한 일련의 작업 흐름을 스레드라고 부르며, 일반적으로 하나의 프로그램은 하나의 프로세스를 가지고, 하나의 프로세스 안에는 반드시 하나 이상의 스레드를 갖습니다.

즉, 프로세스를 생성하게 되면 기본적으로 하나의 main 스레드가 생성됩니다.

profile
백엔드 서버 엔지니어

0개의 댓글