도서소개
운영체제의 개념과 동작원리를 차근차근 명쾌하게 다룬 OS 입문서
▶ 누구를 위한 책인가?
이 책은 운영체제에 대한 지식을 쌓고자 하는 컴퓨터 관련 학과 3~4학년 학생이나 대학원생을 주 대상으로 한다. 명쾌한 개념 설명과 쉽게 이해할 수 있는 그림과 도식화로 학생을 물론 실무에서 일하는 운영체제 설계자나 시스템 프로그래머에서 유용한 참고서가 될 것이다.
▶ 무엇을 다루는가?
ㆍ 1~2장 : 운영체제의 개념ㆍ역사ㆍ환경ㆍ구성요소와 목표 | 하드웨어 구성 요소 | 프로세서 | 캐싱과 버퍼링 | 소프트웨어 개롼 | 응용 프로그래밍 인터페이스 | 컴파일링ㆍ링킹ㆍ로딩 | 펌웨어 | 미들웨어
ㆍ 3~4장 : 프로세스 생명 주기 | 프로세스 관리 | 인터럽트 | 프로세스 간 통신 | 스레드 정의 | 스레드 생명 주기 | 스레드 연산 | 스레딩 모델 | POSIX와 Pthread | 리눅스ㆍ윈도우 XP 스레드 | 자바 스레드
ㆍ 5~6장 : 상호 배제 | 상호 배제 프리미티브 구현 | 상호 배제 문제 해결책(소프트웨어ㆍ하드웨어) | 세마포어 구현 | 모니터 | 자바 모니터 | 자바 멀티스레딩 사례 연구
ㆍ 7~8장 : 자원의 개념 | 교착 상태 성립 조건 | 교착 상태 회피ㆍ탐지ㆍ복구 | 스케줄링 개념ㆍ목적ㆍ기준 | 스케줄링 알고리즘 | 데드라인 스케줄링 | 실시간 스케줄링 | 자바 스레드 스케줄링
ㆍ 9장~10장 : 메모리 구성ㆍ계층 | 메모리 관리 전략 | 단일 사용자 연속 메모리 할당 | 메모리 스왑핑 | 고정/가변 파티션 멀티프로그래밍 | 가상 메모리 개념 | 블록 맵핑 | 페이징 | 세그먼테이션
ㆍ 11장 : 지역성 | 요구ㆍ예측 페이징 | 페이지 교체 전략 | 작업 집합 모델 | 페이지 폴트 빈도 페이지 교체 | 페이지 해제 | 페이지 크기 | 페이징에서의 프로그램 동작 | 전역/지역 페이지 교체 | 리눅스 페이지 교체
ㆍ 12~13장 : 디스크 스케줄링 전략 | 캐싱과 버퍼링 | 디스크 성능 기술 | RAID 개념과 수준 | 파일 접근 제어 | 파일ㆍ파일시스템 | 데이터 접근 기술 | 데이터 무결성 | 파일 서버와 분산 시스템 | 데이터베이스 시스템
ㆍ 14~15장 : 분산 시스템 | 분산 운영체제 | 분산 시스템에서의 동기화ㆍ상호배제ㆍ교착 상태 | 암호 기법ㆍ인증 | 접근 제어 | 보안 위협 | 보안 통신 프로토콜 | 공격 예방과 보안 해결책 | 키 합의 프로토콜 | 공개키 기반 구조ㆍ인증서ㆍ인증기관
ㆍ PDF 제공 | 16장. 리눅스 사례 연구 | 용어해설 | 웹 자료 | 인용 자료
※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다
도서목차
Part 01 하드웨어, 소프트웨어, 운영체제 소개
Chapter 01 운영체제 소개
01 소개
02 운영체제란 무엇인가
03 초기 역사: 1940, 1950년대
04 1960년대
05 1970년대
06 1980년대
07 인터넷과 월드 와이드 웹의 역사
08 1990년대
09 2000년 이후
10 응용 프로그램 기반
11 운영체제 환경
12 운영체제의 구성 요소와 목표
13 운영체제 아키텍처
요약
연습문제
핵심용어
Chapter 02 하드웨어와 소프트웨어 개념
01 소개
02 하드웨어 장치의 발전
03 하드웨어 구성 요소
04 하드웨어의 운영체제 지원
05 캐싱과 버퍼링
06 소프트웨어 개관
07 응용 프로그래밍 인터페이스
08 컴파일, 링킹, 로딩
09 펌웨어
10 미들웨어
요약
연습문제
핵심용어
Part 02 프로세스와 스레드
Chapter 03 프로세스 개념
01 소개
02 프로세스 상태: 프로세스 생명 주기
03 프로세스 관리
04 인터럽트
05 프로세스 간 통신
06 사례 연구: 유닉스 프로세스
요약
연습문제
핵심용어
Chapter 04 스레드 개념
01 소개
02 스레드의 정의
03 스레드 사용 동기
04 스레드 상태: 스레드 생명 주기
05 스레드 연산
06 스레딩 모델
07 스레드 구현 시 고려 사항
08 POSIX와 Pthread
09 리눅스 스레드
10 윈도우 XP 스레드
11 자바 멀티스레딩 사례 연구 I: 자바 스레드 소개
요약
연습문제
핵심용어
Chapter 05 비동기적 병행 실행
01 소개
02 상호 배제
03 상호 배제 프리미티브 구현
04 상호 배제 문제에 대한 소프트웨어적 해결책
05 상호 배제 문제에 대한 하드웨어적 해결책
06 세마포어
요약
연습문제
핵심용어
Chapter 06 병행 프로그래밍
01 소개
02 모니터
03 자바 모니터
04 자바 멀티스레딩 사례 연구3: 자바 생산자/소비자 관계
05 자바 멀티스레딩 사례 연구 4: 자바 원형 버퍼
요약
연습문제
핵심용어
Chapter 07 교착 상태와 무기한 연기
01 소개
02 교착 상태의 예
03 관련 문제: 무기한 연기
04 자원의 개념
05 교착 상태가 성립되기 위한 네 가지 조건
06 교착 상태 해결책
07 교착 상태 방지
08 다익스트라의 은행원 알고리즘을 사용한 교착 상태 회피
09 교착 상태 탐지
10 교착 상태 복구
11 현재와 미래 시스템의 교착 상태 전략
요약
연습문제
핵심용어
Chapter 08 프로세서 스케줄링
01 소개
02 스케줄링 수준
03 선점/비선점형 스케줄링
04 우선순위
05 스케줄링 목적
06 스케줄링 기준
07 스케줄링 알고리즘
08 데드라인 스케줄링
09 실시간 스케줄링
10 자바 스레드 스케줄링
요약
연습문제
핵심용어
Part 03 물리 메모리와 가상 메모리
Chapter 09 실제 메모리 구성과 관리
01 소개
02 메모리 구성
03 메모리 관리
04 메모리 계층
05 메모리 관리 전략
06 연속/비연속 메모리 할당
07 단일 사용자 연속 메모리 할당
08 고정 파티션 멀티프로그래밍
09 가변 파티션 멀티프로그래밍
10 메모리 스왑핑을 사용한 멀티프로그래밍
요약
연습문제
핵심용어
Chapter 10 가상 메모리 구성
01 소개
02 가상 메모리: 기본 개념
03 블록 맵핑
04 페이징
05 세그먼테이션
06 세그먼테이션/페이징 시스템
07 사례 연구: IA-32 인텔 아키텍처 가상 메모리
요약
연습문제
핵심용어
Chapter 11 가상 메모리 관리
01 소개
02 지역성
03 요구 페이징
04 예측 페이징
05 페이지 교체
06 페이지 교체 전략
07 FIFO 수정안: 2차 기회와 클록 페이지 교체
08 원거리 페이지 교체
09 페이지 해제
10 페이지 크기
11 페이징에서의 프로그램 동작
12 전역 대 지역 페이지 교체
13 사례 연구: 리눅스 페이지 교체
요약
연습문제
핵심용어
Part 04 2차 저장소, 파일, 데이터베이스
Chapter 12 디스크 성능 최적화
01 소개
02 2차 저장소의 발전
03 무빙 헤드 디스크 저장소의 특징
04 디스크 스케줄링이 필요한 이유
05 디스크 스케줄링 전략
06 회전 최적화
07 시스템 고려 사항
08 캐싱과 버퍼링
09 기타 디스크 성능 기술
10 RAID
요약
연습문제
핵심용어
Chapter 13 파일과 데이터베이스 시스템
01 소개
02 데이터 계층
03 파일
04 파일 시스템
05 파일 구성
06 파일 할당
07 여유 공간 관리
08 파일 접근 제어
09 데이터 접근 기술
10 데이터 무결성 보호
11 파일 서버와 분산 시스템
12 데이터베이스 시스템
요약
연습문제
핵심용어
Part 05 네트워킹과 분산 컴퓨팅
Chapter 14 분산 시스템 소개
01 소개
02 분산 시스템의 속성
03 분산 시스템에서의 통신
04 분산 시스템에서의 동기화
05 분산 시스템에서의 상호 배제
06 분산 시스템에서의 교착 상태
07 사례 연구: 스프라이트 분산 운영체제
08 사례 연구: 아메바 분산 운영체제
요약
연습문제
핵심용어
Part 06 보안
Chapter 15 보안
01 소개
02 암호 기법
03 인증
04 접근 제어
05 보안 공격
06 공격 예방과 보안 해결책
07 보안 통신
08 키 합의 프로토콜
09 공개키 기반 구조, 인증서, 인증기관
10 보안 통신 프로토콜
11 스테가노그라피
12 독점 소스와 오픈 소스 보안
13 사례 연구: 유닉스 시스템 보안
요약
연습문제
핵심용어
해시태그
#운영체제론