Jump to content

Talk:Memory management (operating systems)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Dual partitions

[edit]

Some machines, e.g., UNIVAC 1108, have separate base and bound registers for data and instruction. I'm not sure whether to change the first paragraph of Memory management (operating systems)#Partitioned allocation or to create a new subsection. --Shmuel (Seymour J.) Metz Username:Chatul (talk) 09:18, 13 October 2021 (UTC)[reply]

At least as I read the documentation, they're 1) a processor status register with three relocation and 2) a bounds register with two pairs of "lower bound" and "upper bound", with the relocation fields being designated "BI", "BD", and "BS", and one bounds pair being designated the "instruction area" and the other being designated the "data area". For relocation, if the address is <= the BS value, the relocation is done by adding the BI value, otherwise it's done by adding the BD value. For protection, the (unrelocated) address is checked to make sure it's within either of the ranges, and an error is reported if it isn't. So the "I" vs. "D" is done based on the value of the address, not on whether an instruction fetch or a data fetch is being done; the use of the BI register and "instruction area" bounds pair for code and the BD register and "data area" bounds pair for data is by software convention. That convention may stem from use of one physical memory bank for code and another for data for memory interleaving, thus encouraging putting code and data into separate regions; noting prevents putting code and data in the same bank, it's just that you get better performance if you don't.
At some point (the 1100/80, or maybe earlier), the 1100 series switched to supporting multiple bank descriptors, which seem kinda sorta like segment descriptors, with both a base address and storage limits. Guy Harris (talk) 23:03, 8 September 2024 (UTC)[reply]