1. 운영체제에 대한 소개
Abstractions are fundamental to all aspects of Computer Science, so it is perhaps no surprise that they are also essential in operating systems.
We also hope, where possible, to point you to the original sources of much of the material in the book: the great papers and persons who have shaped the field of operating systems over the years. Ideas are not pulled out of the air; -> 마음 깊이 와닿는다 they come from smart and hard-working people (including numerous Turing-award winners3), and thus we should strive to celebrate those ideas and people where possible. In doing so, we hopefully can better understand the revolutions that have taken place, instead of writing texts as if those thoughts have always been present [K62]. Further, perhaps such references will encourage you to dig deeper on your own; reading the famous papers of our field is certainly one of the best ways to learn. -> 컴퓨터공학 분야에서 유명한 논문 찾아 읽어보자.
the real point of education is to get you interested in something, to learn something more about the subject matter on your own and not just what you have to digest to get a good grade in some class. As one of our fathers (Remzi’s dad, Vedat Arpaci) used to say, “Learn beyond the classroom” -> 나의 가치관과 동일하다.
in particular, doing projects where you write real code to solve real problems is the best way to put the ideas within these notes into action -> 이 책에서도, 지식을 넣는 가장 좋은 방법이 실제 문제를 실제 코드로 해결하는 것이라 한다.
Many millions (and these days, even billions) of times every second, the processor fetches an instruction from memory, decodes it (i.e., figures out which instruction this is), and executes it (i.e., it does the thing that it is supposed to do, like add two numbers together, access memory, check a condition, jump to a function, and so forth).
기본적으로 프로그램이 돌아갈 때 어떤 일이 발생하냐? 프로세서가 엄청난 양의 instruction 을 메모리에서 가져와서, 실행을 시킨다. 이걸 Von Neumann 모델이라고 한다.
But in this class, we will be learning that while a program runs, a lot of other wild things are going on with the primary goal of making the system easy to use.
운영체제가 하는 일은, 이 시스템을 좀 더 쓰기 쉽게 하는 것.
24페이지 하단부터 이어서..
2. 가상화
2-0. CPU 가상화
2-1. 프로세스
2-2. 프로세스 API
2-3. 제한된 직접 실행
2-4. 스케줄링
2-5. 메모리 가상화
2-6. 주소 공간
2-7. 메모리 API
2-8. 주소 번역
2-9. 세그멘테이션
2-10. 자유 공간 관리
2-11. 페이징
2-12. 물리적 메모리를 넘어서
2-13. 가상 메모리 시스템
3. 동시성
3-0. 동시성이란
3-1. 쓰레드 API
3-2. 락(Lock)
3-3. 락 기반의 동시 데이터 구조
3-4. 조건 변수
3-5. 세마포어
3-6. 공통 동시성 문제
3-7. 이벤트 기반의 동시성
4. 지속성
4-1. 입출력 기기
4-2. 하드 디스크 드라이브
4-3. 비싸지 않은 디스크의 여분 배열 (RAID)
4-4. 파일과 디렉터리
4-5. 파일 시스템 구현
4-6. 지역성과 빠른 파일 시스템
4-7. 충돌 일관성: FSCK와 저널링(기록)
4-8. 로그 구조의 파일 시스템
4-9. 데이터 통합성과 보호
4-10. 분배된 시스템
4-11. Sun의 네트워크 파일 시스템
4-12. Andrew의 파일 시스템
댓글