본문 바로가기
Computer Science/소프트웨어, 운영체제

Process , Thread

by doriver 2022. 5. 30.

프로세스(Process)

메모리에 load되어 CPU를 할당받고 실행되고 있는 프로그램(코드들의 모임)
OS로 부터 자원(cpu,메모리 등)을 할당받은 작업의 단위

CPU스케줄링의 대상이 되는 작업
프로그램이 실행되고 있는 상태

 

Process별로 독립된 메모리 공간을 사용함, 여러개의 Process사이 통신위한 IPC가 필요

 

Windows운영체제를 사용하는 컴퓨터에서 Ctrl + Alt + Delete 키를 누르면 작업 관리자 창에 들어가서 현재 실행중인 프로세스를 볼 수 있음

 

 

 

스레드(Thread)

프로세스가 할당받은 자원을 이용하는 실행의 단위, 프로세스 내에서 동작되는 여러 실행의 흐름

 

하나의 프로세스가 생성되면 하나의 스레드가 같이 생성되는데 이를 메인스레드라 함. 

스레드를 추가로 생성하지 않는한 모든 프로그램 코드는 메인스레드에서 실행됨.
하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 이를 멀티 스레드라고 부른다.

스레드는 프로세스 내에서 각각 Stack만 따로 할당을 받고 Code, Data, Heap 영역을 공유함  
스레드간 데이터를 주고 받는게 간단함
여러 스레드가 동시에 작업을 하다보면 공유된 데이터를 서로 사용하다가 충돌이 일어날 가능성이 있음

'Computer Science > 소프트웨어, 운영체제' 카테고리의 다른 글

운영체제의 역할  (0) 2022.07.20
프로그램이 실행되는 과정  (0) 2022.05.30
언어번역 프로그램 , Linker , Loader  (0) 2022.02.22
유틸리티  (0) 2022.02.22
OS ( Kernel , Shell )  (0) 2022.02.22