Chapter 9. Virtual Memory (1) 💡 Demand Paging (요구 페이징) 실제로 필요할 때 page를 메모리에 올리는 것. (요청이 있으면 페이지를 메모리에 올리겠다는 의미) 실제로 대부분의 시스템들은 Paging 기법 사용 중 요구 페이징의 장점 I/O양의 감소 (프로그램 중에 빈번하게 사용되는 부분은 지극히 제한적이고, 좋은 소프트웨어일수록 프로그램 사용에 있어 굉장히 방어적으로 코드를 작성하기 때문에 잘 사용되지 않는다.) 물리 Memory 사용량 감소 I/O 요청이 있을때만 메모리에 올리기 때문에 한정된 메모리 공간을 효율적으로 사용하고, 메모리에서 직접 서비스하는 비율이 높아지기 때문에 응답 시간이 빨라진다. 멀티프로그래밍 환경에서는 더 많은 사용자 수용 가능. (프로그..
Chapter 8. Memory Management - (3), (4) Multilevel Paging and Performance Address space가 더 커지면 다단계 페이지 테이블 필요 페이지 테이블이 여러개 있을 수 있지만 그만큼 여러 단계를 거쳐야 하고, 주소 변환을 위해 각 단계에 접근하기 때문에 각 단계의 페이지 테이블이 메모리에 존재하므로 logical address의 physical address 변환에 더 많은 메모리 접근 필요 TLB를 통해 메모리 접근 시간을 줄일 수 있음 4단계 페이지 테이블을 사용하는 경우 메모리 접근 시간이 100ns, TLB(주소 변환을 용이하게 해주는 캐시 메모리) 접근 시간이 20ns이고 TLB hit ratio가 98%인 경우 effective me..
Chapter 8. Memory Management - (2) 💡 Contiguous Allocation 1. Fixed partition allocation (고정 분할 방식) 물리적인 메모리를 몇 개의 영구적 분할 (partition)으로 나눔 분할의 크기가 모두 동일한 방식과 서로 다른 방식이 존재 분할 당 하나의 프로그램 적재 융통성이 없음 동시에 메모리에 Load되는 프로그램의 수가 고정됨. 최대 수행 가능 프로그램 크기 제한 외부 조각 (External Fragmentation) 분할된 부분이 작아서 생기는 문제 내부 조각 (Internal Fragmentation) 분할된 부분이 커서 남는 부분이 발생해서 생기는 문제 2. variable partition allocation (가변 분할 방..
Chapter 8. Memory Management (메모리 관리) - (1) 💡 Logical vs Physical Address Logical Address (= virtual address, 가상 주소) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address Physical Address 메모리에 실제 올라가는 위치 물리적인 메모리 아래에는 OS가 올라가 있고, 그 위에 프로세스들이 올라가는 형태 💡 주소 바인딩 (Address binding) 물리적인 메모리에 저장되는 위치, 즉 주소를 결정하는 것 Symbolic Address --> Logical Address --> Physical Address Symbolic Address..
Chapter 7. Deadlock (교착상태) 💡 The Deadlock Problem Deadlock : 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Example 1. 시스템에 2개의 tape drive가 있다. 프로세스 P1, P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Example 2. Binary Semaphores A and B P1 P2 P(A); P(B); P(B); P(A); Resource 하드웨어, 소프트웨어 등을 포함하는 개념 ex) I/O device, CPU cycle, Memory space, semaphore 등 프로세스가 자원을 사용하는 절차 Request --> Allocate --> Use --> Release..