ee512

기말준비

markov chain   What can you do if you can (selectively) gain control whenever a program reads or writes a particular memory location? With hardware support With compiler-level support Address translation design의 goal Memory protection Memory sharing Flexible memory placement Sparse addresses: 전체 address space중 일부만 집중해서 볼 수 있다?…

Week 15: Advanced Memory Management 2

memcpy를 대신해주는 H/W는 없을까? copy하는 size가 수십k를 넘어가면 CPU가 직접 copy하는 것보다 request 날리고 interrupt걸리는게 더 저렴할수도 있겠는데.. Cache synchronization이 복잡해지나?   shadow page table: paravirtualization?? 정확히 어떻게 구현되게 되는지는 잘 모르겠다. 누가 maintain하는건지. 여튼 요점은 Guest virtual address와 host physical address를 바로 mapping하는 page table을 추가로 관리하는것. Intel VT-d…

HW5

먼저 대략적인 소스 구조를 파악해보자.   <사용하는 클래스들> ActiveTransactionList ADisk ADiskUnit CallbackTracker DiskCallback DiskWorker LogStatus Transaction TransID WriteBackList   Common Disk DiskUnit DiskResult SimpleLock   <사용하지 않는 클래스들> DirEnt FlatFS PRtee ResourceException RFS   ActiveTransactionList.java: Transacion에 대한 간단한 Key-Value storage. put, get, remove를 지원한다. ActiveTransaction은 아직 commit되지 않은 transaction들을 말하는…

week 14: Reliable storage 2

Reliability는 correctness에만 관련된 것이다. Journaling에서 metadata만 기록하여도 얻을 수 있는 이득이 뭔지 정확히 모르겠다.   What happens if machine crashes? Before transaction start After transaction start, before operations are logged After operations are logged, before commit After commit, before write back After write back before garbage collection   grep이 fail한다는…

week 13: Reliable Storage 1

Reliability != Availability   간단한 VFS의 명령이 Physical level에서는 굉장히 복잡하고 많은 operation들이 되기도 한다. 그 와중에 crash가 일어난다면 어떻게 reliability를 보장할 것인가?   Transaction: a group of operations do on database(or storage) that meet ACID properties Atomic Consistency: moves the system from one legal state to another legal state.…

Week 10: Efficient Address Translation

TLB: 몰랐던 사실 Linux는 자신만의 page table형식이 있다. 그리고 Intel, MIPS, SPARC 등 다른 종류의 CPU들은 각자만의 TLB entry format이 있다. 따라서 Linux는 2개의 Page table을 maintain해야 한다. (자신의 것과 TLB가 볼 것). SW-based TLB는 TLB가 스스로 TLB entry를 업데이트 하지 않는다. TLB miss가 나면 OS가 trap에 걸려서 (Interrupt아닌가??) 해당…

Week 9: Address Translation

Page fault, Segmentation fault, Null pointer exception   •What can you do if you can (selectively) gain control whenever a program reads or writes a particular memory location? –With hardware support –With compiler-level support 이건 뭔말이지   Physical address를 HDD뿐만 아니라 Network들 여러 곳으로 확장할 수 있다.   Implementing Virtual…