INTERVIEW THREADS

면접 답변은 용어 암기보다 “공유되는 것, 전환 비용, 대기 방식”을 따라간다

본문의 프로세스와 스레드, 가상 메모리, 동기화, 시스템 질문은 서로 다른 단원이 아니라 실행 단위와 자원 접근 비용을 묻는 연결된 질문이다.

실행 단위와 주소 공간

process
프로세스는 독립된 메모리 공간을 가진다 IPC가 필요하고 생성 비용이 크지만 장애 격리가 좋다.
thread
스레드는 코드, 데이터, 힙을 공유한다 스택만 따로 두므로 가볍지만 공유 메모리 버그를 조심한다.
fork+exec
`fork()`는 COW로 복사하고 `exec()`는 프로그램을 바꾼다 셸 명령 실행 흐름을 설명할 때 함께 묶어서 답한다.

메모리 접근과 기다림의 비용

TLB
컨텍스트 스위칭은 레지스터 저장보다 캐시 무효화가 아프다 같은 주소 공간의 스레드 전환이 더 빠른 이유로 연결된다.
page fault
없는 페이지에 접근하면 디스크에서 프레임으로 읽어 온다 빈 프레임이 없으면 LRU 같은 페이지 교체가 뒤따른다.
lock
데드락은 네 조건이 동시에 맞을 때 생긴다 실무 답변은 락 순서 규칙과 타임아웃으로 마무리한다.