CPU가 처리 할 수있는 최대 RAM 크기를 계산할 때 페이지가 단위로 사용되지 않는 이유는 무엇입니까? 작은 데이터 단위입니다. …

위키 백과는 말합니다

페이지, 메모리 페이지 또는 가상 페이지는 페이지 테이블의 단일 항목으로 설명되는 고정 길이의 연속 가상 메모리 블록입니다. 프로그램 대신 운영 체제에서 수행하는 메모리 할당 및 주 메모리와 다른 보조 저장소 (예 : 하드 디스크 드라이브) 간 전송을위한 가장 작은 데이터 단위입니다.

페이지 크기는 일반적으로 프로세서 아키텍처에 의해 결정됩니다. 전통적으로 시스템의 페이지 크기는 예를 들어 4096 바이트였습니다. 그러나 프로세서 설계는 종종 이점과 위약금으로 인해 둘 이상의 페이지 크기 (동시 페이지 크기)를 허용합니다.

32 비트 CPU는 최대 2 ^ 32 바이트 = 4GiB 메모리를 처리 할 수 ​​있습니다. 페이지 대신 계산에서 바이트가 단위로 사용되는 이유는 무엇입니까?

페이지가 4096 바이트이면 32 비트 CPU가 훨씬 큰 메모리를 처리 할 수 ​​있습니다.

무언가를 놓치거나 오해합니까?



답변

CPU가 한 번에 전체 페이지를 처리하지 않기 때문입니다. 각각의 모든 바이트를 처리합니다. 페이지는 단순히 메모리 를 할당 하고 사용 권한을 설정 하는 데 사용되는 단위입니다 . 또한 위키 백과 기사에 오류가 있습니다. 디스크 IO도 페이지 단위로 수행 되지 않습니다 . 일반적으로 512 바이트 인 섹터에서 수행됩니다.


답변

예전에는 메인 프레임 메모리가 너무 많은 단어로 설명되었습니다. 하드웨어에 의해 단어가 정의 된 곳 (18,20,30,32,60, … 비트) 미니와 PC가 도착했을 때, 메모리는 바이트 (64K까지 4K)로 설명되었습니다. 이제 우리는 훨씬 더 많은 메모리를 가지고 있으며 여전히 바이트 수로 설명됩니다. 당신이 말하는 것은 사실이며 페이지는 그것을 설명하는 더 나은 방법 일 수 있습니다. 말했듯이 32 비트 CPU는 4GB의 메모리를 처리 할 수 ​​있습니다. 더 이상 페이징으로 수행해야합니다. 메모리 관리를 위해 페이징을 사용하는 것이 효율적입니다. 페이지 크기는 OS에 따라 다를 수 있으므로 바이트 수는 여전히 실제 메모리 양을 알 수있는 유일한 방법입니다 (페이지 크기를 알아야 함). 나는 항상 그것이 항상 이루어진 방식이라고 생각합니다.


답변

Wikipedia 페이지는 몇 가지 세부 사항으로 잘못되었거나 잘못 오도 된 것 같습니다.

프로그램 대신 운영 체제에서 수행하는 메모리 할당을위한 가장 작은 데이터 단위입니다.

페이지 단위로 작동하는 메모리 할당 호출에 대해서만 수정하십시오. 예를 들어, Windows에서 이것은 VirtualAlloc입니다. 그러나 힙 관리 루틴은 확실히 더 작은 단위로 작동 할 수 있습니다. (그리고 누군가가 “운영 체제가 아니라면 힙 루틴은 모두 사용자 공간에있다”고 말하기 전에 커널 공간 힙도 있다는 것을 고려하십시오. 그리고 사용자 모드에서 프로그램이하는 일은 OS가 커널을 할당하도록 요구합니다 힙 … 및 커널 힙 할당은 페이지 크기 보폭이 아닙니다.)

주 메모리와 다른 보조 저장소 (예 : 하드 디스크 드라이브) 간 전송 용.

이것은 사실이 아닙니다. 페이징 으로 인한 전송에 해당됩니다 . 그러나 디스크 및 디스크 컨트롤러는 한 블록의 전송을 처리 할 수 ​​있으며 이는 일반적으로 512 바이트를 의미합니다. “기타 보조 기억 장치”에 대한 위반은 다음과 같은 범죄를 유발합니다. 테이프 드라이브는 거의 임의의 블록 길이의 읽기 및 쓰기를 처리 할 수 ​​있습니다.

다른 응답자가 올바르게 언급했듯이 CPU는 바이트를 주소 지정하고 주소에 사용 가능한 비트 수는 주소 를 지정할 수있는 바이트 수를 결정 합니다.


답변