1*9119Ssam /* vmparam.h 4.1 82/11/09 */ 2*9119Ssam 3*9119Ssam /* 4*9119Ssam * Machine dependent constants for VAX 5*9119Ssam */ 6*9119Ssam /* 7*9119Ssam * USRTEXT is the start of the user text/data space, while USRSTACK 8*9119Ssam * is the top (end) of the user stack. LOWPAGES and HIGHPAGES are 9*9119Ssam * the number of pages from the beginning of the P0 region to the 10*9119Ssam * beginning of the text and from the beginning of the P1 region to the 11*9119Ssam * beginning of the stack respectively. 12*9119Ssam */ 13*9119Ssam /* number of ptes per page */ 14*9119Ssam #define USRTEXT 0 15*9119Ssam #define USRSTACK (0x80000000-UPAGES*NBPG) 16*9119Ssam /* Start of user stack */ 17*9119Ssam #define P1PAGES 0x200000 /* number of pages in P1 region */ 18*9119Ssam #define LOWPAGES 0 19*9119Ssam #define HIGHPAGES UPAGES 20*9119Ssam 21*9119Ssam /* 22*9119Ssam * Virtual memory related constants 23*9119Ssam */ 24*9119Ssam #define SLOP 32 25*9119Ssam #define MAXTSIZ (6*2048-SLOP) /* max text size (clicks) */ 26*9119Ssam #ifndef MAXDSIZ 27*9119Ssam #define MAXDSIZ (12*1024-32-SLOP) /* max data size (clicks) */ 28*9119Ssam #endif 29*9119Ssam #define MAXSSIZ (12*1024-32-SLOP) /* max stack size (clicks) */ 30*9119Ssam 31*9119Ssam /* 32*9119Ssam * Sizes of the system and user portions of the system page table. 33*9119Ssam */ 34*9119Ssam /* SYSPTSIZE IS SILLY; IT SHOULD BE COMPUTED AT BOOT TIME */ 35*9119Ssam #define SYSPTSIZE (12*NPTEPG) 36*9119Ssam #define USRPTSIZE (8*NPTEPG) 37*9119Ssam 38*9119Ssam /* 39*9119Ssam * The size of the clock loop. 40*9119Ssam */ 41*9119Ssam #define LOOPPAGES (maxfree - firstfree) 42*9119Ssam 43*9119Ssam /* 44*9119Ssam * The time for a process to be blocked before being very swappable. 45*9119Ssam * This is a number of seconds which the system takes as being a non-trivial 46*9119Ssam * amount of real time. You probably shouldn't change this; 47*9119Ssam * it is used in subtle ways (fractions and multiples of it are, that is, like 48*9119Ssam * half of a ``long time'', almost a long time, etc.) 49*9119Ssam * It is related to human patience and other factors which don't really 50*9119Ssam * change over time. 51*9119Ssam */ 52*9119Ssam #define MAXSLP 20 53*9119Ssam 54*9119Ssam /* 55*9119Ssam * A swapped in process is given a small amount of core without being bothered 56*9119Ssam * by the page replacement algorithm. Basically this says that if you are 57*9119Ssam * swapped in you deserve some resources. We protect the last SAFERSS 58*9119Ssam * pages against paging and will just swap you out rather than paging you. 59*9119Ssam * Note that each process has at least UPAGES+CLSIZE pages which are not 60*9119Ssam * paged anyways (this is currently 8+2=10 pages or 5k bytes), so this 61*9119Ssam * number just means a swapped in process is given around 25k bytes. 62*9119Ssam * Just for fun: current memory prices are 4600$ a megabyte on VAX (4/22/81), 63*9119Ssam * so we loan each swapped in process memory worth 100$, or just admit 64*9119Ssam * that we don't consider it worthwhile and swap it out to disk which costs 65*9119Ssam * $30/mb or about $0.75. 66*9119Ssam */ 67*9119Ssam #define SAFERSS 32 /* nominal ``small'' resident set size 68*9119Ssam protected against replacement */ 69*9119Ssam 70*9119Ssam /* 71*9119Ssam * DISKRPM is used to estimate the number of paging i/o operations 72*9119Ssam * which one can expect from a single disk controller. 73*9119Ssam */ 74*9119Ssam #define DISKRPM 60 75*9119Ssam 76*9119Ssam /* 77*9119Ssam * Klustering constants. Klustering is the gathering 78*9119Ssam * of pages together for pagein/pageout, while clustering 79*9119Ssam * is the treatment of hardware page size as though it were 80*9119Ssam * larger than it really is. 81*9119Ssam * 82*9119Ssam * KLMAX gives maximum cluster size in CLSIZE page (cluster-page) 83*9119Ssam * units. Note that KLMAX*CLSIZE must be <= DMMIN in dmap.h. 84*9119Ssam */ 85*9119Ssam 86*9119Ssam #define KLMAX (32/CLSIZE) 87*9119Ssam #define KLSEQL (16/CLSIZE) /* in klust if vadvise(VA_SEQL) */ 88*9119Ssam #define KLIN (8/CLSIZE) /* default data/stack in klust */ 89*9119Ssam #define KLTXT (4/CLSIZE) /* default text in klust */ 90*9119Ssam #define KLOUT (32/CLSIZE) 91*9119Ssam 92*9119Ssam /* 93*9119Ssam * KLSDIST is the advance or retard of the fifo reclaim for sequential 94*9119Ssam * processes data space. 95*9119Ssam */ 96*9119Ssam #define KLSDIST 3 /* klusters advance/retard for seq. fifo */ 97