리뷰: The Design of the UNIX Operating System

[genie 0132017997]

무려 1986년에 나온 책. 몇몇 분들은 이름을 알고 있을 듯한 Maurice Bach 의 책이다.

현대적인 UNIX 시스템의 모태라 할 수 있는 UNIX System V의 “세부구현 사항”에 가까운 것들을 다룬다.
운영체제(OS) 수업 시간에 흔히 배우게 되는

  • 파일 I/O 최적화 관련된 기법들 — block-device의 buffer cache나  reada() 류의 연산들
  • 메모리 하위 시스템(페이징/페이지 교체/페이지 폴트 처리)
  • 프로세스 관리구조 / 관리 구조체
  • 프로세스간 통신 — 특히 System V IPC라거나
  • 스케쥴링
  • 멀티 프로세서 이슈

등이 System V의 “구현”을 기준으로 잘 설명되어 있다. 그런 면에서 참 유용하고 재밌게 봤는데 — 학부 시절에 신기해하며 재밌게 봤음 — 지금보고 있자니 스케쥴링/멀티프로세서 이슈 부분이 참 재밌게(?) 귀엽게(?!) 보여서 -_-;;

특히 멀티 프로세서 이슈부분에서, 왜 싱글 프로세서 기준으로 작성된 UNIX가 바로 멀티프로세서 환경에서 제대로 동작하지 않는지에 관해 인터럽트 핸들러 관련해서 설명하고 있고, 아주 고전적인 멀티프로세서 동기화 문제 — doubly linked list에서 노드 추가– 도 다룬다.

그리고 이미 지나간 이슈지만, master-slave 시스템을 MP환경에서 쓰는 얘기가 나왔던 시절이 있는데, 그 얘기도 나와서 살짝 웃었음(…). 물론 NUMA에선 유효하니 주의.

+ 커널이 preemtive kernel이 아니던 시절…사실 커널을 동시에 하나만 뜨게 하는 시절이기도 해서 현재 발전된 OS 구현을 생각하면 좀 어이없기도 하겠지만(…) 나름대로 현재 구현이 나오기전에 다른 엔지니어/과학자들이 무슨 고민을 했는지도 살짝 엿 볼 수 있다는 점에선 약간 타임머신을 탄 기분.

오래된 책이라 지금 읽으라고 권하기엔 좀 그렇고 — 굳이 읽는다면 UNIX internals 같은 책을 권함 — 간만에 책꽂이에서 나와 먼지 턴 기념으로 가볍게 리뷰했음.

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

2 Comments

  1. 워… 이젠 추억의 책인건가. 02년도 여름에 봤던거 같은데. 커널에 대해 아예 개념이 없을 때 봐서, 내용은 기억 안나고 책 내용마다 말도 안 되는 걸로 논쟁 했던 기억만 있다는. 리뷰를 보아하니 커널 실행 패스가 인터럽트 이외에는 무조건 하나인 속 편한 시절의 OS 책이었나 보네.

Leave a Reply to 수원 Cancel reply