티스토리 뷰

SMALL

- 프로세스

사전적 의미 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

프로세스는 운영체제로부터 시스템 자원을 할당 받는다.

*시스템 자원 : cpu, 주소 공간, 독립된 메모리 영역(code, data, stack, heap)

 

프로세스는 각각 독립된 메모리 영역을 할당 받는다. 즉, 프로세스끼리 메모리 영역을 공유하지 않는다.

하나의 프로세스에는 최소 한 개의 스레드가 존재한다. (기본 : 메인 스레드)

프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.

접근하려면 프로세스 간의 통신 해야함. IPC

* IPC : inter process communication?, 파일, 소켓, 파이트... 이용

멀티 프로세스는 하나의 프로세스에 오류가 발생해도 서로 영향을 끼치지 않는다.

하지만, context switching과정에서 오버헤드가 발생한다. ( 캐쉬 메모리 초기화... 등의 작업)

why? 프로세스는 각각 독립적인 메모리 영역이 존재하기 때문에 프로세스 사이에 공유하는 메모리 공간이 없어

전환시 모든 데이터를 가져오고 캐쉬 정보를 불러와야한다. 

 

 

- 스레드

사전전 의미 : 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위.

즉, 프로세스의 특정한 수행 경로이기도 하다.

스레드는 stack만 독립적으로 존재하고 메모리 영역 공유한다.

같은 프로세스 안에 있는 여러 스레드는 같은 힙 공간을 공유한다.

멀티 스레드는 context switching과정이 빠르다. 공유하지 않는 메모리 영역이 스택 영역뿐이기 때문이다.

자원 공유의 문제가 발생하여 동기화 문제가 발생할 수 있다.

 

반응형
LIST

'용어 정리' 카테고리의 다른 글

해쉬 테이블 (Hash tables)  (0) 2024.01.09
배열(array) 정리  (1) 2024.01.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함