[OS] Program, Process, Thread

문다연·2022년 11월 10일
0

ios.moon

목록 보기
20/26
post-thumbnail

😵‍💫 이제 그만 헷갈리고 프로그램, 프로세서, 프로세스, 스레드를 명확히 구분해보자


Program 프로그램

파일 시스템에 존재하는 실행파일. ‘.exe’ 확장자로 끝나는 파일들이 그 예이다.


Processor 프로세서

Provides a set of instructions along with the capability of automatically executing a series of those instructions.

하드웨어적 측면으로 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리회로이다.

중앙처리장치 CPU를 뜻하며, 폰노이만 아키텍쳐에 의해 만들어졌다면 적어도 하나 이상의 ALU와 처리 레지스터를 내장하고 있어야 한다. PC나 소형장치에 장착된 프로세서는 흔히 microprocessor라고 한다.


Process 프로세스

A software processor in whose context one or more threads may be executed. Executing a thread, means executing a series of instructions in the context of that thread.

메모리에 적재되어 프로세서에 의해 실행되고 있는 프로그램의 주체를 의미한다.

즉, 프로그램을 구동했을 때 프로그램 자체와 메모리 상에서 실행되는 작업의 단위를 지칭한다.

일반적으로 보조기억장치(하드 디스크, SSD)에 저장되어 있는 실행코드(명령어)와 정적인 데이터를 의미하며,
프로세스는 다른 프로세스(자식 프로세스)를 만들 수 있다. 따라서 프로세스는 끝을 내기 위해 많은 시간이 걸린다.


Thread 스레드

A minimal software processor in whose context a series of instructions can be executed. Saving a thread context implies stopping the current execution and saving all the data needed to continue the execution at a later stage.

프로세스 내에서 실행되는 흐름의 단위를 말한다.
run, block, ready로 세 개의 상태를 가진다.

Process vs Thread
프로세스 실행될 때 OS로부터 메모리, 필요한 주소 공간 등의 자원을 할당받아 실행되는 프로그램
스레드 한 프로세스 내에서 동작되는 여러 실행의 흐름
프로세스 내의 자원들은 같은 프로세스 상에 있는 스레드들끼리 공유하며 실행된다.

ProcessThread
프로그램을 실행시킨다.프로세스의 세그먼트이다.
종료 및 생성 시간이 오래 걸린다.종료 및 생성 시간이 적게 걸린다.
Context Switcing이 오래 걸린다.Context Switcing에 적은 시간이 걸린다.
많은 자원을 소비한다.적은 자원을 소비한다.
고립되어 있다.메모리를 공유하여 사용한다.
OS에 의해 프로세스 교환이 일어난다.OS 요청에 의해 교환이 일어나지 않는다. kernel, interrupt의 원인이 된다.
첫 번째 서버 프로세스가 block되면, unblock될 때까지 다른 프로세스들이 실행될 수 없다.하나의 서버 스레드가 block되더라도, 다른 스레드를 이용하여 같은 작업을 수행할 수 있다.

🙋 why use threads

  • Avoid needless blocking
    single-threaded process는 I/O시 block되는데, multi-threaded process라면 OS가 CPU를 동일 프로세스의 다른 스레드로 스위치해줄 수 있다.
  • Exploit parallelism
  • Avoid process switching

Ref.

Thread, process

OS - Context Switch(컨텍스트 스위치)가 무엇인가?

[OS] 프로세스 관리, 프로세스 문맥(context)

Thread Context Switching vs Process Context Switching

profile
ios-moon.tistory.com 이전했어요 🚛

0개의 댓글