2023-09-07 TIL ( CS 공부 23일차 )

오준석·2023년 9월 7일
0

TIL (Today I Learned)

목록 보기
89/105

TIL

< Computer Science 23일차 >

프로세스와 스레드에 대해서 설명하고 그 차이에 대한 설명

단답형:
프로세스는 독립적인 메모리 공간을 가진 실행 중인 프로그램의 인스턴스입니다. 스레드는 프로세스 내에서 실행되는 독립적인 실행 흐름으로, 같은 메모리 공간을 공유합니다. 프로세스는 자원을 많이 소모하지만, 스레드는 경량이며 컨텍스트 스위칭(Context Switching)이 빠릅니다.

상세한 설명:
1. 프로세스 (Process): 프로세스는 운영 체제에서 실행 중인 프로그램의 인스턴스로, 독립적인 메모리 공간과 시스템 자원을 할당받습니다. 각 프로세스는 다른 프로세스의 메모리 영역에 직접 접근할 수 없습니다.
2. 스레드 (Thread): 스레드는 프로세스 내에서 동작하는 실행되는 흐름 단위를 말합니다. 모든 스레드는 해당 프로세스의 메모리와 자원을 공유하며, 이로 인해 스레드 간의 통신이 빠르지만 동시 접근 문제를 주의해야 합니다.
3. 차이점:
- 메모리와 자원: 프로세스는 독립적인 메모리 공간을 가지지만, 스레드는 같은 프로세스 내에서 메모리 공간을 공유합니다.
- 생성 및 종료 비용: 프로세스의 생성 및 종료 비용은 높으나, 스레드는 상대적으로 경량입니다.
- 통신: 프로세스 간의 통신은 IPC(Inter-Process Communication)를 통해 이루어지며, 스레드 간의 통신은 공유 메모리를 통해 이루어집니다.
4. 웹 개발의 중요성: 웹 서버는 동시에 여러 요청을 처리해야 하므로, 멀티 프로세스나 멀티 스레드 방식을 사용하여 효율적으로 요청을 처리합니다. 예를 들어, Node.js는 싱글 스레드 이벤트 루프를 사용하여 비동기 I/O를 처리하며, 다른 언어의 웹 서버는 멀티 스레드나 멀티 프로세스를 사용할 수 있습니다.

profile
개발자를 목표로 열심히 하려고 합니다.

0개의 댓글