Brain
Science
root
/
학습 노트
/
Study Note
/
2: 운영체제 (Operating System)
/
2. 프로세스 및 스레드 관리
2. 프로세스 및 스레드 관리
81. 프로그램 (Program) vs 프로세스 (Process)
2026-03-21
82. 프로세스 메모리 구조 - Text(Code), Data, BSS, Heap, Stack
2026-03-21
83. BSS (Block Started by Symbol) 영역 - 초기화되지 않은 전역 변수
2026-03-21
84. 힙 (Heap) 영역 - 동적 할당 (malloc/free)
2026-03-21
85. 스택 (Stack) 영역 - 지역 변수, 매개변수, 리턴 주소
2026-03-21
86. 프로세스 상태 (Process State)
2026-03-21
87. 생성 (New) -> 준비 (Ready) -> 실행 (Running) -> 대기 (Waiting/Blocked) -> 종료 (Terminated)
2026-03-21
88. 준비 큐 (Ready Queue)
2026-03-21
89. 대기 큐 (Wait Queue / Device Queue)
2026-03-21
90. 프로세스 제어 블록 (PCB, Process Control Block) / 태스크 제어 블록 (TCB)
2026-03-21
91. PCB 요소 - PID, 상태, PC, 레지스터, 스케줄링 정보, 메모리 정보, 회계 정보, I/O 상태 정보
2026-03-21
92. 스레드 (Thread) - 경량 프로세스 (LWP)
2026-03-21
93. 스레드의 자원 공유 - Code, Data, Heap, 열린 파일
2026-03-21
94. 스레드의 독립 자원 - Thread ID, PC, 레지스터 집합, 스택
2026-03-21
95. 다중 스레드 (Multithreading)의 장점 - 응답성, 자원 공유, 경제성, 다중 처리기 활용
2026-03-21
96. 사용자 수준 스레드 (User-level Thread) - 스레드 라이브러리가 관리, 커널 비개입
2026-03-21
97. 커널 수준 스레드 (Kernel-level Thread) - OS가 직접 관리
2026-03-21
98. 다대일 (Many-to-One) 스레드 모델
2026-03-21
99. 일대일 (One-to-One) 스레드 모델
2026-03-21
100. 다대다 (Many-to-Many) 스레드 모델
2026-03-21
101. 두 수준 (Two-level) 모델
2026-03-21
102. 암묵적 스레딩 (Implicit Threading) - 스레드 풀, OpenMP, Grand Central Dispatch(GCD)
2026-03-21
103. 스레드 풀 (Thread Pool)
2026-03-21
104. 프로세스 생성 (Process Creation) - fork(), exec() 시스템 콜
2026-03-22
105. 부모 프로세스 (Parent Process) / 자식 프로세스 (Child Process)
2026-03-22
106. Copy-on-Write (COW) - fork() 최적화 기법
2026-03-22
107. 프로세스 종료 (Process Termination) - exit(), wait()
2026-03-22
108. 연쇄적 종료 (Cascading Termination)
2026-03-22
109. 좀비 프로세스 (Zombie Process) - 종료되었으나 부모가 wait()하지 않은 상태
2026-03-22
110. 고아 프로세스 (Orphan Process) - 부모가 먼저 종료된 상태 (init 프로세스가 입양)
2026-03-22
111. 스레드 취소 (Thread Cancellation) - 비동기식 취소, 지연 취소
2026-03-22
112. 취소 점 (Cancellation Point)
2026-03-22
113. 스레드 로컬 저장소 (TLS, Thread-Local Storage)
2026-03-22
114. 스케줄러 액티베이션 (Scheduler Activation) / 경량 프로세스(LWP)
2026-03-22
115. 상향 호출 (Upcall)
2026-03-22
116. 협력적 프로세스 (Cooperating Process) vs 독립적 프로세스 (Independent Process)
2026-03-22
117. 프로세스 간 통신 (IPC, Inter-Process Communication)
2026-03-22
118. 공유 메모리 (Shared Memory) 방식 - 빠름, 동기화 문제 발생
2026-03-22
119. 메시지 전달 (Message Passing) 방식 - 안전, 커널 개입(시스템 콜) 오버헤드
2026-03-22
120. 직접 통신 (Direct Communication) - 수신자 명시
2026-03-22
121. 간접 통신 (Indirect Communication) - 메일박스/포트 사용
2026-03-22
122. 동기식 통신 (Blocking) vs 비동기식 통신 (Non-blocking)
2026-03-22
123. 파이프 (Pipe) - 단방향(Half-duplex), 부모-자식 간
2026-03-22
124. 지명 파이프 (Named Pipe / FIFO) - 양방향 가능, 부모-자식 관계 무관
2026-03-22
125. 소켓 (Socket) 통신 - 네트워크, 서로 다른 시스템 간 통신
2026-03-22
126. RPC (Remote Procedure Call) - 분산 시스템 함수 호출
2026-03-22
127. XDR (External Data Representation)
2026-03-22
128. 마샬링 (Marshalling) / 언마샬링 (Unmarshalling)
2026-03-22
129. 로컬 프로시저 호출 (LPC, Local Procedure Call) / ALPC (Windows)
2026-03-22
130. 신호 (Signal) - 소프트웨어 인터럽트 방식 IPC (kill, SIGINT, SIGKILL)
2026-03-22
131. 메모리 맵 파일 (Memory-Mapped File, mmap) 기반 IPC
2026-03-22
132. 시스템 V IPC - 공유 메모리, 세마포어, 메시지 큐
2026-03-22
133. POSIX IPC
2026-03-22
134. D-Bus (Desktop Bus) - 리눅스 데스크톱 환경 IPC
2026-03-22
135. 안드로이드 바인더 (Android Binder) - 객체 지향적 경량 IPC
2026-03-22
136. 좀비 스레드 (Zombie Thread)
2026-03-22
137. 멀티프로세스 아키텍처 (크롬 브라우저 등)
2026-03-22
138. 멀티스레드 아키텍처 오버헤드 (락 경합 등)
2026-03-22
139. 액터 모델 (Actor Model) - Erlang, Akka 동시성 모델
2026-03-22
140. 고루틴 (Goroutine) - Go 언어의 경량 스레드 (M:N 모델)
2026-03-22
141. 코루틴 (Coroutine)
2026-03-22
142. 이벤트 루프 (Event Loop) 기반 비동기 처리 (Node.js)
2026-03-22
143. 컨텍스트 스위칭 최소화를 위한 스레드 고정 (Thread Affinity/Pinning)
2026-03-22
144. CPU 친화성 (CPU Affinity) - Soft Affinity vs Hard Affinity
2026-03-22
145. NUMA-인식 스레드 스케줄링
2026-03-22
146. 실시간 프로세스 (Real-time Process)
2026-03-22
147. 스레드 안전 (Thread-safe) 함수 및 라이브러리
2026-03-22
148. 재진입 가능 코드 (Reentrant Code / Pure Code)
2026-03-22
149. 클론 (clone) 시스템 콜 (리눅스 프로세스/스레드 생성 범용 API)
2026-03-22
150. 태스크 (Task) - 리눅스의 프로세스/스레드 통일된 용어
2026-03-22
151. 네임스페이스 격리 프로세스
2026-03-22
152. 데몬화 (Daemonization) 절차 - fork, setsid, umask, 파일 디스크립터 닫기
2026-03-22
153. 좀비 사냥 (Reaping Zombies)
2026-03-22
154. 스레드 스택 오버플로우 방지 (Guard Page)
2026-03-22
155. 동적 링킹 프로세스 (ld.so) 로딩 과정
2026-03-22
156. 환경 변수 (Environment Variables) 상속
2026-03-22
157. OOM (Out Of Memory) Killer 프로세스 종료 정책
2026-03-22
158. oom_score_adj - OOM 킬러 우선순위 조정
2026-03-22
159. 프로세스 그룹 (Process Group)
2026-03-22
160. 세션 (Session) 및 제어 터미널 (Controlling Terminal)
2026-03-22