본문 바로가기
정글 2기/OS 운영체제

[OS운영체제] 권영진 교수님 OS 강의_2 (카이스트 전산학부)

by Dean30 2021. 10. 11.
728x90

[OS운영체제] 권영진 교수님 OS 강의_2 (카이스트 전산학부)

 

1부

 

c를 대신해 RUST 를 사용하려는 움직임이 있다.

RUST로 OS로 만들고 있다.

 

핀토스를 직접 안짜고 이해만 하고 있어도 프로그램을 짜는데 도움이 된다.

-> 커널과 유저가 해야하는 일 각각을 알고 있어야 유저가 뭘 해야하는지 안다

 

mmap

file-backed (read, write)

MAP_ANONYMOUS - stack, heap

 

mmap과 write(fd, buf, 3)는 똑같은 기능. 하지만 성능이 다르다.

mmap은 kernel이 바로 storage에 복사

read write는 한 번 복사한 후에 kernel이 DMA로 storage에 복사

 

1강 정리

 

Abstraction

  • process - machine
  • thread - CPU
  • virtual memory - physical memory(DRAM, DRAM을 쉽게 쓰기 위해)
  • file - storage

VM과 file abstraction 만들 때 유사한 특징이 있다.

파일에서 실제 메모리에 mapping함. 

  • VM - PT(page table)
  • file - indexing

file이 crash consistency가 있어 더 복잡하다

 

VM은 빨라서 하드웨어 o

file 느려서 하드웨어 x - 미래에 하드웨어 접근이 빨라진다면 하드웨어로 구현 가능 할지도

 

2강

 

The first design

isolation, protection 문제. app 끼리 + 앱과 file system 있는 OS 쪽 끼리

 

Requirement for protection

  • Privileged instruction
  • Memory protection
  • Timer interrupt

 

커널에서 실행되는지 유저에서 실행되는지 하드웨어가 개런티 해줌

-> 4단계 ring이란 개념을 만듦

Ring 0 : kernel, Ring 3 : user. 2,3은 거의 안 씀

 

user가 ring 0 명령어 실행하면 exception 발생해서 kernel이 판단. (cpu)

 

 

page fault : 접근하는 주소가 타당하지 않을때 - 커널 주소 or mapping 안된 영역

segmentation fault 는 kernel이 이 유저가 더이상 실행되면 안되겟다 판단해서 cut

 

legal 한가 아닌가는 MMU의 PT에서 결정. 즉 하드웨어에서 한다.

 

segmentation

kernel / user 구분 있음

 

그러나 segment 부분이 64bit로 넘어오면서 page로 다 처리

 

User/Supervisor 로 !

 

 

2부

Isolation by protection domain

 

Isolation of memory

 

protection을 위해 process마다 VM 존재

context switching

 

Isolation of file

  • process A가 process B 의 file 의 파일 못 읽게
  • access control(file permission) 결정은 OS (memory는 MMU 하드웨어가 해줌)
  • 이 정보가 kernel Authorization Module에 있음 (software 이름은 Reference Monitor)

 

Policy와 Mechanism 차이

  • mechanism : queue 만들어 넣는거
  • Policy : 어떤 순서로 넣고 뺄건가
  •  

즉 위에서 authorization을 어떻게 줄지가 policy이다. (DAC, MAC(군대에서 사용), Capability-based access control)

 

IPC : inter process communication

  • message passing (socket, fifo, pipe...) - 적은 데이터가 왔다갔다 할 때
  • shared memory (빠름) - 데이터 많이 왔다갔다 할 때

Sharing resources

- multiplex hardware resources

 

Time sharing

  • CPU : 시간 sharing
  • memory : 공간 sharing

 

Space sharing

메모리 공유시 부족한 경우 swap. disk로 보냄

= space reclamation

 

ready Q

wait Q - 들어가는 경우 1) I/O 2) wait(yield)

 

scheduler

policy

  • FIFO - convoy effect - 한 task 가 길 때
  • SJF - convoy effect 해결을 위해 나옴. starvation - 짧은게 계속 들어오며 긴거 cpu 못 받음
  • RR - starvation 해결을 위해 나옴 - context swtching이 너무 자주 일어남. time을 늘리면 response time이 떨어짐
  • mlfq - RR 해결을 위해

 

When does OS invoke scheduler?

  • Preemptive scheduler vs Non-preemptive scheduler
  • work conserving scheduler vs Non-work conserving scheduler

 

Preemptive scheduler vs Non-preemptive scheduler에서

 

차이는 Preemptive scheduler에서만 1. Waiting -> Ready 부분이 있는 점.

 

preemptive, voluntary preemptive

 

 

Page replacement policy

 

FIFO 는 cache hit 이 0

이를 해결하기 위해 : MIN, LRU - 두 개가 비슷한 hit ratio

  • MIN (Belady's algorithm) - 미래에 어떻게 될지 알고 <- 과거를 보고 판단
  • LRU(Least Recently Used)

 

Sequential scan에서는 LRU < MIN 이 좋음

Belady's Anomaly - 메모리 수가 많다고 hit ratio가 높은건 아님

 

LRU 제대로 구현하려 모두 체크해서 page fault 확인해야함 -> 너무 비쌈(expensive)

Clock approximate to LRU

접근 했었는지 정보 PT에 저장 . 1이면 linked list 앞으로 보내고 0이면 ..?

 

 

How to design OS

 

  • monolith kernel - 빠름. file system하나 버그걸리거나 죽으면 kernel 다 죽음
  • micro kernel - mission critical 우주선 군대 자율주행 등에 쓰일 수 있음. 근데 너무 느림. 즉 성능보다 안정성이 우선인 분야

 

 

## OS 이외의 질문

 

4대 기둥

  • Algorithm, data structure
  • compiler(CL) - 봐야하야할 사람 극히 드물다. - 보안 or low level system
  • OS
  • 컴퓨터 구조 (Computer Archetecture)

 

앞으로 중요해질 분야 - HCI, 보안

 

 

박사를 해야하는 선택들

  • 교수
  • 정출연
  • 삼성 임원
  • 구글, 페이스북 들어가기 위해

 

가상 머신과 docker의 차이

-> docker는 kernel이 1개이고 논리적으로 나눈다.

728x90

댓글