CS 2

[CS] 프로세스 간 통신 방법과 Race Condition

이전에 프로세스와 스레드의 차이를 정리하면서,프로세스는 서로 독립적인 메모리 공간을 가지고스레드는 같은 프로세스 안에서 메모리를 공유한다는 것을 알게 되었다.그렇다면 독립적인 메모리 공간을 가진 프로세스들은 서로 어떻게 데이터를 주고받을 수 있을까?또 여러 스레드나 프로세스가 같은 자원에 접근하면 어떤 문제가 생길 수 있을까?이번 글에서는 이러한 궁금증을 해결해보려고 한다.프로세스의 메모리 구조 간단 정리프로세스는 서로 독립된 가상 주소 공간을 가진다.예를 들어 A 프로세스와 B 프로세스가 있다고 했을 때,A 프로세스의 0x1000 주소와 B 프로세스의 0x1000 주소는같은 주소처럼 보여도 실제로는 서로 다른 물리 메모리를 가리킬 수 있다.프로세스가 사용하는 가상 주소는MMU(Memory Managem..

C++, CS 2026.05.14

[CS] 프로세스와 스레드의 차이, Context Switching 정리

오늘은 프로세스와 스레드의 차이, 그리고 컨텍스트 스위칭에 대해 정리해보려고 한다.멀티스레드 프로그래밍을 공부하다 보면 스레드, 멀티스레드 환경, 동기화 같은 용어를 자주 보게 된다.나도 이전에 멀티스레드 프로그래밍을 해본 적이 있어서스레드가 여러 실행 흐름을 다루는 개념이라는 정도는 알고 있었다.하지만 막상 “프로세스와 스레드의 차이가 무엇인가?”라고 물어보면 명확하게 설명하기는 어려웠다.그래서 이번에는 프로세스와 스레드가 각각 무엇인지,둘은 메모리와 자원 관리 측면에서 어떤 차이가 있는지 정리해보았다.그리고 여기서 더 나아가 운영체제가 여러 실행 흐름을 어떻게 전환하는지 이해하기 위해컨텍스트 스위칭, PCB, TCB 같은 개념도 함께 정리해보려고 한다.프로세스란?프로세스는 운영체제로부터 자원을 할당받..

C++, CS 2026.05.12