프로그램이 CPU·메모리·저장장치를 사용하는 원리와 여러 작업이 함께 실행될 때의 문제를 다룬 자료입니다. 운영체제의 스레드, 언어 런타임의 실행 모델, 비동기 API를 구분해서 읽을 수 있습니다.
프로세스와 메모리
-
Operating Systems: Three Easy Pieces — Arpaci-Dusseau
프로세스·시스템 콜·CPU 스케줄링, 주소 공간·메모리 할당·페이징·교체 정책과 가상화를 다루는 공개 교재입니다.
-
스케줄링·주소 변환·페이지 교체·동시성·파일 시스템을 시뮬레이터로 실습하는 과제를 제공합니다.
-
Computation Structures Lecture Notes — MIT OpenCourseWare
명령어 파이프라이닝, 메모리 계층과 지역성, 가상 메모리, 프로세스·동기화를 다루는 강의 자료입니다.
락과 동시성 오류
-
임계 구역을 보호하는 락과 원자적 하드웨어 명령, 상호 배제·공정성·성능을 설명합니다.
-
Common Concurrency Problems — OSTEP
원자성·실행 순서 위반과 교착 상태의 발생 조건 및 예방 방법을 설명합니다.
-
스레드 수·대기열·작업 거부 정책을 통해 스레드 풀의 포화와 자원 사용을 조절하는 방법을 설명합니다.
-
스레드별 값 보관과 초기화·제거 API를 설명하며 스레드 재사용 시 값의 생명주기를 검토할 수 있습니다.
이벤트 루프와 코루틴
-
Don’t Block the Event Loop — Node.js
이벤트 루프와 작업자 풀의 역할, 오래 실행되는 작업이 다른 요청을 지연시키는 이유를 설명합니다.
-
코루틴·태스크·이벤트 루프와 네트워크 I/O를 사용하는 비동기 프로그램의 공식 문서입니다.
-
코루틴의 일시 중단과 재개, 스코프·디스패처·구조적 동시성의 기본을 설명합니다.
저장장치와 자동 메모리 관리
-
탐색·회전 지연·전송 시간으로 디스크 접근 비용을 설명합니다.
-
Redundant Arrays of Inexpensive Disks — OSTEP
RAID 구성별 용량·성능·장애 허용의 차이와 스트라이핑·미러링·패리티를 설명합니다.
-
HotSpot Virtual Machine Garbage Collection Tuning Guide — Oracle
Java의 가비지 컬렉터와 메모리 회수, 처리량·지연 시간·메모리 사용량 사이의 조정 기준을 다룹니다.