1218 - 권영진 교수님 OS 특강

그로밋·2023년 12월 18일
0

krafton jungle

목록 보기
45/58

만약에 4키로바이트 하드디스크의 원자 유닛

운영체제가 Crash consistency 를 해결 못해주면 application programmer가 해야하는데 이거 잘 안함. 그러나 너무 중요.

foo 를 bar로 업데이트해줄거면 foo 아니면 bar만 accept

Rollback logging

create(/a/log)
write(/a/log, "Foo")
write(/a/file, "Bar")
unlink(/a/log)

but

Possible cases

Fao
For

해결 방법 -> fsync

create(/a/log)
write(/a/log, "Foo")
fsync(/a/log)
write(/a/file, "Bar")
fsync(/a/file)
unlink(/a/log)

but still possible cases

Fao
For

but still problem

create하는 동시에 directory block(이것마저 디스크에 적어야하기때문에)
해결하기위해
디렉토리에 fsysnc를 하나 더 넣음

create(/a/log)
write(/a/log, "Foo")
fsync(/a/log)
fsync(/a/) ---> added one
write(/a/file, "Bar")
fsync(/a/file)
unlink(/a/log)

End of Abstraction stories


Protection and Isolation

OS must regain control from app -> timer interrupt

  1. Privileged instruction
    • 하드웨어가 디텍트해서 익셉션을 커널에게 보내고 커널이 결정한다
    • 즉, 하드웨어가 결정권을 커널에게 endorse 함으로써 protection한다.
    • 하드웨어가 privilge 가 더 높음. 결정권을 os에게 endorse
    • 하드웨어는 detect를 하는 매커니즘을 가지고 있고 os가 이걸 어떻게 할지에 대한 policy를 가진다. 즉, detect <-> policy(seperate design term)
  2. Memory protection
  3. (Timer) interrupt

Isolation

Isolation 이라고 하는건
1. data read & write 를
2. control (내 코드로 다른 앱으로 점프 하면 안돼)

Isolation by protection domain = process

Isolation boundary -> process

memory abstraction -> virtual address space를 분리시킴으로써 isolation을 한다.

File은 Isolation을 permission system으로 함. 모든 메커니즘과 policy가 OS가 해줌. 권한 체크해주는 polocy에 해당되는 친구가 Reference monitor임

Web P 사이에 communication 할 수 있게 하는 것. IPC라고 한다.
IPC 기법에는 두가지가 있다.

  • Shared memory (공유 물리 메모리)
  • message passing with buffer (pipe, filefor, sema, etc)

같은 물리주소에서 어느 vm으로 가야한다고 알 수 있는 것이 cache coherence.

프로세스에서 다른 프로세스에게 값이 바뀌었다고 어떻게 알려줄 수 있는가? Signal. but it's slow. 그래서 쓰는게 Polling.

shared memory는 data copy가 안일어난다


msg passing 은 data copy가 일어난다

그래서

데이터가 작으면 카피 코스트가 적으니까 msg passing
데이터가 크면 shared memeory 쓴다

근데 일반적으로 편해서 데이터 커도 msg passing 쓴다

sharing

  • Time sharing -> cpu -> scheduling
  • Space sharing -> memory
    • page eviction은 File backed, swap은 Anon

sch

  • fifo
    • con: convoy effect(high response time)
  • SJF
    • con: starvation
  • RR
    • con: turnaound time(low throughput)

Annon : 최초 - 0으로 밀어 / swap된 page 가져오기
File backed : loading from file/binary

page eviction하는걸 page reclamation(?)이라고

page replacement policies
LRU 는 구현코스트가 너무 비쌈. 커널에 page fault 계속 내야해
Clock은 LRU를 approximates해서 사용한다.
근데 1번이 누군지는 몰라. 그렇지만 맨 뒤에가 누군지만 알면 되는거니까 ㄱㅊ

profile
Work as though your strength were limitless. <S. Bernhardt>

0개의 댓글