Path: utzoo!attcan!uunet!ingr!garth!smryan From: smryan@garth.UUCP (s m ryan) Newsgroups: comp.arch Subject: Re: unconventional architectures Message-ID: <2844@garth.UUCP> Date: 13 May 89 02:47:33 GMT References: <112@centaure.UUCP> <422@unicads.UUCP> <11579@cgl.ucsf.EDU> <89May6.165030edt.10782@ephemeral.ai.toronto.edu> <1989May6.234007.23517@utzoo.uucp> <89May7.001514edt.39763@neat.ai.toronto.edu> <40284@think.UUCP> <13688@watdragon.waterloo.edu> Reply-To: smryan@garth.UUCP (s m ryan) Organization: intergraph/apd in sunny california Lines: 49 >Hear ye! Segments are evil. If my usable address space is N, it is a priori >*wrong* to assume that I won't mind dealing with segments of any size < N. Segments are a way to manage the disc image when the virtual image is sparse. Consider a procedure which adds properties P to some graph and second procedure which uses property P to add properties Q to the graph. If the storage used to contain P can be released in the middle of the second procedure, you have two strategies in a Unix style non-sparse address space: - free P while allocating Q, thus requiring an intermingling of frees and allocates which can expand the working set and increase overhead in allocation procedures. - use a mark/release which ties up space for P long after it is no longer necessary. In a sparse address space, P and Q can be allocated in two separate regions simply by having a current base and incrementing it for each allocate. A region is freed by simply removing it from the virtual address space. In a nonsegmented system with sparse addressing, you have a problem of mapping the virtual address to the address of the disc image. For small machines, it is possible to have the entire virtual space mapped onto the disc, but if it is sparse, a better technique would exploit that sparseness and reduce the size of the disc image. How? Try looking at VSOS for the Cyber 20x. It implemented this, but the map was limited size so that many programs aborted because the map was too disorganised and ran out of space. In a segmented system, the programmer can be required to start each region in a segment, and each segment has a separate disc image. If the region is itself fairly compact, it is sufficient to have the entire segment from base to highest used address mapped to the disc, thus simplifying the virtual memory <--> disc image mapping. This is used in NOS/VE which I am told is derived from Multics. An additional advantage of segments is the segment=disc file philosophy. So that instead of copying a disc file to virtual memory which may be paged in and out of another disc file, as on Unix, the paging is directly between virtual memory and the original disc. Just as a parallel machine can be used in fundamentally different ways than a sequential machine, a sparse virtual address space can be used in fundamentally different ways than a PDP-11's physical address space. -- 17. The Aesir filled the otter's skin Steven Ryan: ingr!garth!smryan and heaped the gold above its chin. 2400 Geng Road, Palo Alto, CA But Hreithmar saw a whisker bare holy corn oil, that is oil from the corns of and bid them cover every hair. of holy men, or as it is known in your country