..

정글 - 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