CS All in One
SYSTEMS문제집공식 자료실

SYSTEMS · CHAPTER 01

기초 · 35

프로세스와 스레드

실행 단위와 공유 자원

프로그램·프로세스·스레드를 구분하고, 동시성 오류의 이유를 설명한다.

CONCEPTS

개념을 문장으로 설명하기

01

프로그램 vs 프로세스

프로그램은 저장된 명령의 묶음이고, 프로세스는 운영체제가 실행 중인 프로그램에 메모리·파일·PID를 부여한 단위입니다.

예시

같은 Chrome 앱을 창 두 개로 실행하면 하나 또는 여러 프로세스가 자원을 배정받아 동작합니다.

CHECK디스크의 파일 자체는 프로세스가 아니다.
02

스레드

프로세스 내부에서 CPU가 명령을 실행하는 흐름입니다. 같은 프로세스의 코드·힙을 공유하지만 각자 스택과 레지스터 상태를 가집니다.

예시

채팅 앱은 화면 갱신 스레드와 네트워크 수신 스레드를 둘 수 있습니다.

CHECK공유 메모리는 빠르지만 경쟁 상태를 만들 수 있다.
03

동기화

공유 자원에 접근하는 순서를 조절해 결과가 우연에 따라 바뀌지 않게 하는 것입니다.

예시

count++는 읽기·증가·쓰기 단계로 나뉘므로 동시에 실행하면 값 하나가 사라질 수 있습니다.

CHECK원자성·뮤텍스·세마포어의 필요성을 연결한다.

GUIDED PRACTICE

카운터가 100이 아닌 이유

두 스레드가 count=99에서 동시에 count++를 실행합니다.

  1. A가 count를 읽어 99를 레지스터에 둡니다.
  2. B도 아직 99인 count를 읽습니다.
  3. 둘 다 100을 계산해 메모리에 씁니다.
결론

증가 연산이 원자적이지 않아 최종 값은 100입니다. 임계 구역을 잠그면 101을 보장할 수 있습니다.

ACTIVE RECALL · 4 STEPS

가리고, 말하고, 확인하기

읽기만 하지 말고 답을 떠올린 뒤 펼쳐 보세요.

0/4 회상 완료

01 · 정의 회상

“프로그램 vs 프로세스”을(를) 보지 않고 한 문장으로 정의해 보세요.

02 · 비교 설명

“스레드”이(가) 필요한 상황을 예시와 함께 설명해 보세요.

03 · 핵심 점검

원자성·뮤텍스·세마포어의 필요성을 연결한다.

04 · 풀이 재현

“카운터가 100이 아닌 이유”의 결론을 보기 전에 풀이 순서를 3단계로 다시 적어 보세요.

WORKBOOK · STEP BY STEP

개념 확인 문제

정답을 고르고 해설로 사고 과정을 확인하세요.

기록 불러오는 중
01

서로 다른 프로세스가 기본적으로 공유하지 않는 것은?

02

스레드마다 반드시 따로 가져야 하는 자원은?

03

공유 변수의 결과가 실행 순서에 따라 달라지는 현상은?

SPEAK IT OUT

면접 1분 답변 연습

프로세스와 스레드의 차이, 멀티스레드의 장점과 동기화 위험을 1분 안에 설명해 보세요.

답변할 때는 정의 → 이유 → 짧은 예시 순서로 말해 보세요.

공식·표준 자료로 더 읽기

Linux Kernel · Scheduler원문 열기 ↗운영체제가 실행 흐름을 다루는 실제 문서의 출발점입니다.