|
|
1.1 ! root 1: ! 2: ! 3: memory allocation Technical Information memory allocation ! 4: ! 5: ! 6: ! 7: ! 8: The following diagram shows how COHERENT allocates memory. ! 9: ! 10: ! 11: ! 12: ! 13: ! 14: ! 15: ! 16: ! 17: ! 18: ! 19: ! 20: ! 21: ! 22: ! 23: ! 24: ! 25: ! 26: ! 27: ! 28: ! 29: ! 30: ! 31: ! 32: ! 33: ! 34: ! 35: ! 36: ! 37: ! 38: ! 39: ! 40: ! 41: ! 42: ! 43: ! 44: ! 45: ! 46: ! 47: ! 48: ! 49: ! 50: ! 51: ! 52: ! 53: ! 54: ! 55: ! 56: ! 57: ! 58: ! 59: ! 60: ! 61: ! 62: ! 63: ! 64: COHERENT Lexicon Page 1 ! 65: ! 66: ! 67: ! 68: ! 69: memory allocation Technical Information memory allocation ! 70: ! 71: ! 72: ! 73: Data Segment (maximum size 64 kilobytes) ! 74: ! 75: ! 76: ! 77: ZDDDDDDDDDDDDDDDDDDDDDDD? ! 78: | | ! 79: | ARENA AND | ! 80: | FREE MEMORY | ! 81: | | ! 82: CDDDDDDDDDDDDDDDDDDDDDDD4 ^ SP starts here ! 83: | | ! 84: | STACK | ! 85: | | ! 86: CDDDDDDDDDDDDDDDDDDDDDDD4 ! 87: | | ! 88: | UNITIALIZED DATA | ! 89: | (bssi) | ! 90: | | ! 91: CDDDDDDDDDDDDDDDDDDDDDDD4 ! 92: | | ! 93: | PRIVATE DATA (prvd) | ! 94: | | ! 95: CDDDDDDDDDDDDDDDDDDDDDDD4 ! 96: | | ! 97: | SHARED DATA (shrd) | ! 98: | | ! 99: @DDDDDDDDDDDDDDDDDDDDDDDY ^ DS ES SS point here ! 100: ! 101: ! 102: ! 103: Code Segment (maximum size 64 kilobytes) ! 104: ! 105: ZDDDDDDDDDDDDDDDDDDDDDDD? ! 106: | | ! 107: | CODE | ! 108: | | ! 109: CDDDDDDDDDDDDDDDDDDDDDDD4 ! 110: | | ! 111: | RUNTIME STARTUP | ! 112: | | ! 113: @DDDDDDDDDDDDDDDDDDDDDDDY ^ CS points here ! 114: ! 115: ! 116: Note that COHERENT can relocate the code and data segments at its ! 117: own convience and merely repoint the required segment registers. ! 118: ! 119: The stack _d_e_s_c_e_n_d_s from the highest address in its space toward ! 120: the static data area; new arguments are placed on the stack in ! 121: its lowest address. Everything from the top of the stack space ! 122: to the end of the data segment is free to accept dynamically ! 123: allocated data. ! 124: ! 125: The size of the stack cannot be altered while a program is run- ! 126: ning. By default, the runtime startup sets the stack size to two ! 127: kilobytes (2,048 bytes) Note, however, that a highly recursive ! 128: ! 129: ! 130: COHERENT Lexicon Page 2 ! 131: ! 132: ! 133: ! 134: ! 135: memory allocation Technical Information memory allocation ! 136: ! 137: ! 138: ! 139: function may cause the stack to grow larger than two kilobytes so ! 140: that it overwrites other data areas. This will cause your ! 141: program to work incorrectly. To reset the amount of stack ! 142: allocated to a program, use the command fixstack. ! 143: ! 144: ***** See Also ***** ! 145: ! 146: data formats, fixstack, technical information ! 147: ! 148: ! 149: ! 150: ! 151: ! 152: ! 153: ! 154: ! 155: ! 156: ! 157: ! 158: ! 159: ! 160: ! 161: ! 162: ! 163: ! 164: ! 165: ! 166: ! 167: ! 168: ! 169: ! 170: ! 171: ! 172: ! 173: ! 174: ! 175: ! 176: ! 177: ! 178: ! 179: ! 180: ! 181: ! 182: ! 183: ! 184: ! 185: ! 186: ! 187: ! 188: ! 189: ! 190: ! 191: ! 192: ! 193: ! 194: ! 195: ! 196: COHERENT Lexicon Page 3 ! 197: ! 198:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.