카테고리 없음

XXXXXXXXXXX

게임이 더 좋아 2020. 6. 10. 11:46
반응형
728x170

페이징이 하나로 끝나지가 않는다.

 

왜냐? 엄청 중요한 내용이거든..ㅎㅎ

 

솔직히 이용할 땐 모르지만 설계하려면 알아야지

 


 

저번 글에서 페이지 테이블(page table)을 배웠다.// page number + page offset 이다.

페이지 테이블은 프로세스 별 자료구조이므로 페이지 테이블에 대한 포인터는 각 프로세스의 PCB에 다른 레지스터 값과 함께 저장된다.

 

CPU 스케줄러가 실행할 프로세스를 선택하면 사용자 레지스터를 다시 적재하고 저장된 사용자 페이지 테이블로부터 적절한 하드웨어 페이지 테이블 값을 다시 적재해야한다. 

 

++페이지 테이블의 하드웨어 구현은 여러가지 방법으로 수행할 수 있다.

 

페이지 테이블은 전용 고속 하드웨어 레지스터 세트로 구현되므로 페이지 주소 변환이 매우 효율적이다. 그러나 이러한 접근 방식은 각각의 레지스터가 문맥 교환 중에 교체되어야 하므로 문맥 교환 시간을 증가시킨다.

 

페이지 테이블에 레지스터를 사용하는 것은 용량적으로 조금 무리가 있다.

그래서 대부분의 컴퓨터들은 페이지 테이블을 메인 메모리에 저장하고 페이지 테이블 기준 레지스터(page-table base register, PTBR)로 페이지 테이블을 가리키도록 한다. 

다른 페이지 테이블을 사용하려면 단지 이 레지스터만 변화시키면 되고, 따라서 문맥 교환 시간을 줄일 수 있다.

 

 

 


• Page table is kept in main memory
• Page-table base register (PTBR) points to the page table
• Page-table length register (PTLR) indicates size of the page table
• In this scheme every data/instruction access requires two memory accesses
• One for the page table and one for the data / instruction
• The two memory access problem can be solved by the use of a special fast-lookup hardware cache called associative memory or translation look-aside buffers (TLBs)

 

 

 

 

 

 

 

 

위에 이어서 그래서 TLB(Translation Look-Aside Buffer)를 배워보려고 한다

 

 

 

 

이 기법을 사용하면 데이터에 접근하기 위해서는 2 번의 메모리 접근이 필요하다. 

 

 

// 2번이면 컴퓨터한테는 정말 많은 시간이다.

 

그래서 시간을 줄이기 위해서 TLB(translation look-aside buffers)라고 불리는 캐시를 사용한다.

 

TLB는 매우 빠른 연관 메모리( associative memory) 로 구성된다.

 

TLB는 key, value 즉 키, 값으로 구성되어 있다.

 

 

 

 

 

 

 

페이지 번호가 TLB에 없으면 miss가 되는데 그 경우에는 앞서 설명한 페이징과 같이 진행된다.

++진행될 때 페이지 테이블에 대한 메모리 참조가 되어야 한다.

 

 

프레임 번호가 확보되면 메모리에 접근 가능하다. 

그리고 페이지 번호와 프레임 번호를 TLB에 추가해서 다음 참조할 때 빠르게 찾을 수 있다.

 

 

 

 


• Memory protection implemented by associating protection bit with each frame to indicate if read-only or read-write access is allowed
    Can also add more bits to indicate page execute-only, and so on

 


• Valid-invalid bit attached to each entry in the page table:

1. “valid” indicates that the associated page is in the process’ logical address space, and is thus a legal page
2. “invalid” indicates that the page is not in the process’ logical address space
    Or use page-table length register (PTLR)

 


• Any violations result in a trap to the kernel

 

 

 

 

 

그렇다면 

 

 

// 이 비트는 보통 페이지 테이블에 있다.

 

 

또한 페이지 테이블의 각 엔트리에는 유효비트(valid bit)란 것이 있다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
그리드형