..
정글 - OS 강의 - 2 -
정주원 코치님 강의
페이지 폴트란?
- 물리 메모리가 없다고 mmu가 os한테 트랩을 보내는 것
페이지 테이블에 프레임 엔트리가 없음
내가 풀고자 하는 문제에 도움이 되는가?
세그멘테이션과 페이징 차이
- 16비트, 32비트에서는 세그멘테이션, 이후에는 페이징
페이지 테이블 크기를 줄이기 위해서 트리로 만듬
- 하드웨어도 사용 -> 레지스트리
페이지 테이블은 OS가 만듬, 하드웨어는 읽기만 함
물리 주소는 언제 할당되는가?
- 즉시 할당: malloc() 등, 지연 할당: 가상 주소에서 접근하는 순간
DMA이란?
- I/O 장치가 메모리를 직접 읽는 것
- CPU가 안 쓸때 사용함
메모리와 스토리지 차이
- 비휘발성
- 속도 차이
파일 시스템
- 파일 name, 파일 offset -> location in storage
디렉토리
- 파일 네임이 들어간 파일
VFS란?
- 가상 파일 시스템, OS에서 파일 시스템을 추상화하여 제공하는 계층
open, write, read, close() 등
- Consistency를 보장하지 않는다 -> fsync 필요성
fsync
- 디렉토리도 fsync를 사용해야 된다
os를 보호할 아이디어
- 커널이 아니면 실행 못하는 특정 명령어 셋을 만든다 유저 영역에서 접근하려면 폴트가 나게 만든다
- 타이머 인터럽트를 통해서 컨트롤을 앱에서 매번 가져올 수 있어야 한다
블루스크린은 디바이스 드라이브에서 대부분 생김
프로세스간 데이터 전달 방법
- message passing, shared memory
message passing
- pipe
- 소켓(양뱡향 통신)
Time sharing, Space sharing
FIFO
- Pro: Generally applicable
- Con: Convoy effect
SJF
- Pro: Very Good response time
- Con: Starvation
Round robin
- Pro: No starvation, good response time
- Con: Bad turnaround time
Space sharing
- Page replacement policy
- Optimal, LRU, Clock
- Belady’s anomaly
how to design os
- Monolithic Kernel
- Microkernel
- Exokernel