c - Why in XV6 the constant PHYSTOP is defined as 0xE000000? -


as far know, in xv6, phystop should 1gb.

if so, phystop should 0x40000000 (1gb) , not 0xe000000 (224mb) appear in http://pdos.csail.mit.edu/6.828/2014/xv6/xv6-rev8.pdf :

0203 #define phystop 0xe000000 // top physical memory 

further more, in xv6, process might mapped 0 0x80000000(kernbase). is, process might use 2gb address space. how possible if phystop isn't 2gb?

what missing?

phystop constant defined 0xe000000 performance reasons.

if phystop set higher, need map of free memory using mappages. oses today map free pages on fly, on xv6 map them on os initialisation. mapping 2gb slow.

note change value before compilation bigger virtual memory.


Popular posts from this blog

c# - ODP.NET Oracle.ManagedDataAccess causes ORA-12537 network session end of file -

matlab - Compression and Decompression of ECG Signal using HUFFMAN ALGORITHM -

utf 8 - split utf-8 string into bytes in python -