Backend
home
🖊️

운영체제

프로세스 vs 스레드

프로세스는 독립된 메모리 공간을 가지며, 운영체제에서 실행되는 프로그램 단위. 스레드는 프로세스 내부에서 실행되는 흐름 단위로, 메모리(코드, 힙)를 공유
1.
프로세스: 메모리 공간을 독립적으로 가지는 실행 단위
2.
스레드: 프로세스 내 실행 단위, 메모리 공유 (멀티스레딩 효율 상승)

Context Switching

CPU가 작업을 전환할 때의 비용 → 과도한 스레드 생성 주의
Context Switching은 리소스를 많이 소모하므로, 불필요한 스레드 생성은 성능 저하로 떨어질 수 있음
키워드: 스레드 풀, 스케줄링, 전환 비용

CPU 스케쥴링 알고리즘

OS는 CPU 사용을 공정하게 분배하기 위해 다양한 스케쥴링 방식을 많이 사용
ex) Round Robin, Priority Scheduling
서버 성능 분석 시, 어떤 작업이 우선되고 병목이 발생하는지 파악하는 데 유용
키워드: 우선순위, 대기시간, 처리량

메모리 구조

스택(Stack)은 함수 호출 시 할당되며, 정적이고 빠르지만 용량이 작음

동기화 (Mutex, Semaphore)

공유 자원 접근 제어 필수 (예: DB 트랜잭션, 캐시 접근 시 race condition 방지)

메모리 구조

스택/힙/데이터/코드 영역
OutOfMemoryError vs StackOverflowErro 차이 인지 필요