sw사관학교정글 59

[week09] KOCW 운영체제(반효경교수님) - Virtual Memory 2

Virtual Memory 2 다양한 캐슁 환경 캐슁(caching) 기법 한정된 빠른 공간(=캐쉬)에 요청된 데이터를 저장해 두었다가 후속 요청시 캐쉬로부터 직접 서비스하는 방식 paging system 외에도 cache memory, buffer caching, web caching등 다양한 분야에서 사용 캐쉬 운영의 시간 제약 교체 알고리즘에서 삭제할 항목을 결정하는 일에 지나치게 많은 시간이 걸리는 경우 실제 시스템에서 사용할 수 없음 buffer caching이나 web caching의 경우 O(1) ~ O(log n) 정도까지 허용 paging system인 경우 page fault인 경우에만 OS가 관여함 O(1)인 LRU의 list 조작조차 불가능 → 왜?(뒷부분에 자세한 설명 나옴) 페이..

[week09] KOCW 운영체제(반효경교수님) - Virtual Memory 1

Virtual Memory 1 주소변환은 운영체제가 관여하지 않았는데, virtual memory 기법은 전적으로 운영체제가 관여한다. Demand paging 실제로 필요할 때 page를 메모리에 올린다. I/O 양의 감소 memory 사용량 감소 더 빠른 응답 시간 더 많은 사용자(프로그램) 수용 Vaild / Invalid bit의 사용 당장 필요한 A,C,F는 physical memory에 올라가 있고(valid), 그렇지 않은 부분은 backing store에 내려가 있다(invalid). invalid의 의미 사용되지 않는 주소 영역인 경우 페이지가 물리적 메모리에 없는 경우 처음에는 모든 page entry가 invalid로 초기화 address translation(주소변환)시에 inval..

[week09] KOCW 운영체제(반효경교수님) - Memory Management 4

Memory Management 4 Example of Segmentation page는 개수가 굉장히 많지만, segment는 개수가 별로 없다. 따라서 memory 공간의 overhead 측면에서 segment방식이 유리하다.(page table보다 segment table의 크기가 훨씬 작다) Sharing of Segments Segmentation with Paging paged segmentation 이라고도 한다. 주소변환을 두 단계를 거쳐서 해야한다. segmentation 주소변환을 해주면 page-table의 시작위치가 나온다. (segment 당 page table이 존재) page-table에서 physical address로 주소변환을 진행한다. segment 하나가 여러개의 pa..

[week09] KOCW 운영체제(반효경교수님) - Memory Management 3

Memory Management 3 Multilevel Paging and Performance Address space가 더 커지면 다단계 페이지 테이블이 필요 4단계 페이지 테이블을 사용하는 경우 주소변환하는데 4번 + 직접 메모리 접근 1번 = 총 5번의 메모리 access가 필요함 메모리 접근 시간이 100ns, TLB 접근 시간이 20ns, TLB hit ratio가 20%인 경우 effective memory access time = 0.98 x 120+0.02 x 520 = 128ns 결과적으로 주소 변환을 위해 걸리는 시간은 28ns이다. Valid(v) / Invalid(i) Bit in a Page Table Memory Protection page table의 각 entry마다 아래의..

[week09] KOCW 운영체제(반효경교수님) - Memory Management 2

Memory Management 2 Paging paging 프로세스의 virtual memory를 동일한 사이즈의 page 단위로 나눔 virtual memory의 내용이 page 단위로 noncontiguous(불연속)하게 저장됨 일부는 backing storage에, 일부는 physical memory에 저장 Basic Method physical memory를 동일한 크기의 frame으로 나눔 logical memory를 동일 크기의 page로 나눔(frame과 같은 크기) 모든 가용 frame들을 관리 page table을 사용하여 logical address → physical address로 변환 External fragmentation 발생 안함, Internal fragmentation ..

[week09] KOCW 운영체제(반효경교수님) - Memory Management 1

Memory Management 1 Logical vs Physical address Logical address (=virtual address) 프로세스마다 독립적으로 가지는 주소공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address이다. Physical address(DRAM) 메모리에 실제 올라가는 위치 Logical address와 Physical address는 어떻게 연결될까? A. 주소 바인딩을 통해서 어떤 프로그램이 물리적인 메모리 어디에 올라갈지 결정하는 것 Symbolic Address(변수 이름, 함수 이름) → Logical Address(숫자 주소) → Physical address(실제 주소) 주소 바인딩(address binding) logic..

[week08] PintOS - Project 1(thread) : Priority scheduling(3) donation

Project1: priority schedule(3) Priority Inversion Problem 문제 : priority 높은 thread가 priority가 낮은 thread를 기다리는 현상 L, M, H는 thread의 이름이라고 하자. 그리고 우선순위는 H가 가장 높고, L이 가장 낮다. 지금 M보다 H가 우선순위가 높은데, L이 lock을 가지고 있기 때문에 H는 실행되지 못하고, L보다 우선순위가 큰 M이 먼저 실행된다. H는 M이 다 끝날때까지 기다려야 한다. 해결책 : priority donation H이 lock을 획득하려고 요청할 때, L에게 자신의 priority를 donate(기부)한다. 이렇게 되면 M보다 H가 먼저 실행되어서 문제를 해결할 수 있다. 그러나 이렇게 간단하게 ..