01_os_review.pdf
lab1 - scheduler, process management
lab4 - file io system
lab3 - memory system
lab2 - system call
운영체제 공부하는 이유?
운영체제 설계철학:
Design abstractions / Protection & Isolation / Sharing resources
Abstraction
- Abstraction: 디테일을 무시해도 어떤 것을 이해하는데는 지장이 없다.
- 중요하지 않은 부분을 무시하여 더 쉽게 이해하기 위한 process or outcome
- 운영체제가 봤을때 중요한 것
- CPU: Virtualizing CPU
- Memory: Virtual address space
- Storage: File
- 추상화된 것을 사용하기 위해 system call을 사용
- Process개념 등장
- easy to program
- management unit of execution
- protection unit of execution을 만족
- 우리가 사용하는 컴퓨터 시스템(머신)을 추상화 한 것
- Each process has its own view of (machine)
- Own address space
- Own virtual CPU
- Own files
프로세스끼리 서로 다른 Address space를 물리메모리에 매핑
- 관리 단위는 4kB
- 프로세스가 바라보는 주소 공간 → 가상메모리
- 어떻게 가상 주소를 물리주소와 매핑?
- segmentation
- paging
- page fault는 하드웨어가 일으킨다.
- 운영체제는 거기에 맞춰서 구현을 한 것
- 하드웨어가 알려주면 그때 운영체제가 반응한다.
- 페이지 테이블 변환 과정 찾아보기
- 페이지 테이블은 물리메모리인 DRAM에 있음
- TLB: 하드웨어, CPU 있음: 일종의 캐시
- 페이지 테이블은 radix tree로 구성
- 가상 메모리 → 물리 메모리: nonlinear function mapping을 인공지능으로 대체하는 방식도 있음.
- segmented paging