This test has ten questions; answer at least eight of them.
Up to the first 75 words appearing after a question are taken to be the answer to the question. Words following the 75th word are not part of the answer and will be ignored.
A page-table entry may be in-use or not; the entry needs a bit to indicate which state it’s in. An in-use page-table entry needs the other half of the translation, either a page-frame number, or a virtual-address page number. The page table is shared among all running processes; each entry needs a process id to associate it with a particular virtual address space.
The answers, approximately verbatim, and in no particular order:
1: How does the modification information help in translation?
2: How are several virtual-address spaces distinguished?
3: True, but is that necessary for correct paging, as opposed to efficient paging? And how does a MMU determine if a page-table entry contains valid information?
4: That’s true, but the question’s about the contents of a page-table entry, not the number of page-table entries in a page table.
5: How is “information” being used here?
6: … implementation will have many ejections and reloads.
7: How does that work? What extra information is needed that the page-frame number doesn’t provide?
8: How does the MMU know if page-table entries contain value information. How does the page table distinguish among several virtual-address spaces?
9: That’s seventeen words that add nothing to the answer.
10: Why are both the page number and the page-frame number both needed?
11: Another ten words that add nothing.
12: “It” refers to what?
13: What? Where what in the page?
14: What? Does this mean the page number indicates the page? Does the page table need to be involved with that?
15: Whether or not what is still in the page?
16: Is this enough information to distinguish between several virtual-address spaces?
17: … of information needed for a page table to preform correctly; all other bits, cache bit, protection bits, pinned bits, and modified referenced bits are all extra information that is not needed but is useful.
18: Why does a minimal page-table entry need both a page number and a page-frame number?
19: How does having the page offset help when translating the virtual address? Isn’t the translation all about pages?
20: How does having disk-location information help when translating a virtual address?
21: Doesn’t the virtual page number come directly from the virtual address? What information does the page-table entry provide that helps?
22: Does the page offset need to be translated? Isn’t the page offset the same for the virtual and physical addresses?
23: It seems clear that a failed address translation needs to know about disk-location information, but how does a successful translation make use of such information?
24: What does this mean? Does each page-table entry contain the whole virtual-address space?
25: The process could be running at a lot of physical addresses. How is that represented?
26: An index value into what? Is the page-table entry referring to itself?
27: How does the MMU know if a page-table entry contains valid information?
28: … that added to in primary store is superfluous.
29: How do all these words answer the question?
30: How does the page table keep track of several virtual-address spaces?
31: How does the page offset assist in the virtual-address translation?
32: What’s the base address?
33: Does that make it part of a page-table entry?
34: In total, or per page? And required for what?
35: How is the base address different from the page number?
36: That’s ninteen words that add nothing to the answer.
37: How does the MMU know if a page-table entry is valid?
38: … into the page table which holds the number of the page frame that corresponds to the virtual address, then the present/absent bit is processed[?]. If the bit is 0 a trap on the OS is caused if the bit is 1 the page frame number found in the page table and is copied to the high-order bits of the output registers along with the offset bits. Together this forms a physical address which is put into the memory bus as the physical address.
39: isn’t 0 the smallest disk-block size multiple? assuming negative multiples don’t make sense.
40: how would a page-table entry distinguish among several virtual-address spaces?
41: … absent, making it easier for any buffer or frequent[?] operation[?] to have a reference to that entry.
42: What does the cache bit indicate?
43: What does a pinned bit do during translation?
44: How does modified-reference information help in translation?
45: With one bit? How does it do that?
46: What? Maybe that word should be “links”, but then what does it mean to link a page to address, and how is that done in one bit?
47: Is that part of the page table, or of the page-table entry?
48: Is this conceptual array part of a page-table entry? What does it represent?
49: From where do these bits come? What do they represent?
50: Determined how?
51: Does this mean there’s more than one page table per virtual-address space?
52: But what kind of information is being properly stored in a page-table entry?
53: These are seventeen words that add nothing to the answer.
54: How does the MMU know if page-table entries are valid? How does the page table distinguish among several virtual-address spaces?
55: From where can a page come? It’s important to know where a page goes, but why is it important to know from where a page came?
56: What kind of information?
57: What is an address-space identifier? And when is it necessary to have an address-space identifier?
58: How does the MMU know if a page-table entry is valid?
59: What happens then the virtual-address space is 32 bits?
60: Why this size? Why not a size efficiently compatible with the disk-block size?
61: Why?
62: How does this dependence manifest itself?
63: What does N represent? What does p represent?
64: … the rightmost bits in virtual addresses.
65: what does the page offset add to paging?
66: can’t the page number be derived directly from the virtual address? what does the page-table entry add?
67: how does a page-table entry distinguish among several virtual-address spaces?
Adding second-chance to the LRU queue will prevent it from ejecting still active metadata blocks that make it to the head of the queue. Adding the clock variant with a fast second hand to sweep the queue for metadata blocks will write those back to disk more quickly, reducing the risk of file-system inconsistencies in case of failure.
The answers, approximately verbatim, and in no particular order:
1: What does it mean to be flagged as LRU?
2: Isn’t that done already? Metadata with no links to the associated file seems worthless.
3: But what does the LRU queue do with modification times?
4: True, but the problem’s concerned with performance.
5: Quite right, but how can that be done? Is it even possible to do with LRU? How?
6: Help with what?
7: How should that be done?
8: Is this the same as the previous sentence?
9: Or file blocks.
10: Is it the last queued block that’s most easily accessed? And maybe “easily” should be “recently?”
11: Or file block.
12: The question seems to indicate that file buffering does handle both kinds of blocks.
13: … from which the buffer is [??] or the metadata will take up too much space.
14: Should that be “block links?”
15: Ok, but does LRU buffer management use the format of file blocks to determine how to handle the blocks?
16: Isn’t the LRU algorithm currently handling everything together?
17: Doesn’t the LRU algorithm do that already?
18: Does this mean writes to metadata, such as to change the file size, or metadata-block I-O? Or both?
19: Would that apply to the file data, or the file metadata? Or both?
20: And what problem would that solve?
21: Isn’t there already such pointers in the metadata? That’s some of the information in metadata.
22: So if a file’s block is ejected, the metadata associated with the directory holding the file should also be ejected too? How does that improve matters?
23: Does this say a file block accesses its metadata? Is that true?
24: Isn’t that what happens currently?
25: Doesn’t this happen anyway? A block contains either metadata or file data, but not both.
26: What are type length variables?
27: A record where? In the metadata?
28: … to a file even when the file dcts[?] remains unchanged.
29: That seems rather complicated, particularly since LRU is mostly working well.
30: Is coherence the problem, or is it performance?
31: True, but not an issue in this problem.
32: … associated file-blocks are out of the buffer as well.
33: Some of the metadata is stored in i-nodes; other metadata is stored elsewhere.
34: Maybe, but is that a problem relevant here?
35: Does this answer mention anything about fixing the LRU algorithm?
36: … the i-nodes structure is used on the system he is writing the algorithm for. He needs to know the max size and length of the i-nodes and the max amount of mapping input-output stored for the metablocks.
37: Does the buffer-management algorithm care about the block contents?
38: But is organizing metadata something buffer management should worry about?
39: Ok, and then what?
40: Program? Perhaps this means the LRU algorithm?
41: That doesn’t sound much like an LRU queue anymore.
42: The problem’s interested in making LRU better for metadata, not replacing it with something else.
43: What does it mean to certify data? And where is here?
44: ok, that handles untimely write-backs. what about timely write-backs?
45: … the first time through,k but it may be fast the second time. this will lead to less metadata blocks because it will be checking the metadata for times as well as file protection values.
46: but isn’t forcing writes eventually the point of write-backs?
47: is buffer coherence a performance problem?
48: isn’t there anything to be done with lru?
49: How are last two relevant for metadata handling?
50: How? And if so, then why do the block division?
51: And how does that change the LRU algorithm?
52: Touched by what?
53: When would a file not accessed or mounted be touched?
54: “Sweep the file” means what?
55: Block? Which block is that?
56: But what is LRU doing wrong that this scheme fixes?
57: Oh? Suppose you want good performance.
58: That may be, but the problem identifies performance as the problem, not coherence.
59: What is the relation between this and LRU?
60: That seems involved. Isn’t there anything to be done to improve LRU?
61: … the file system occasionally. Journal also acts as a checkpoint for crash recovery.
62: Or maybe on first access time.
63: Indexed allocation means what?
64: The throughput of what?
65: Wasn’t the point behind metadata blocks to separate a file and its metadata?
66: Maybe, but does it have anything to do with LRU buffer management?
67: But all files have metadata. How does this change anything?
68: … read later and do not slow down other files that could be read faster. They will get read eventually.
The total virtual space is described by 36 bits, representing 64G words. The top 18 bits, [0..17], represent the segment number. The next 8 bits, [18..25], represent the page number, and the lowest 10 bits, [26..35], represent the offset within the segment.Is this description of the address-space structure correct? If the description is correct, use it to determine the structure of the virtual address
0xbeef0cafe
. If the description is incorrect, explain the minimal set of
changes you would make to the description to make it correct.
The description is incorrect. If there are 218 segments in a 36-bit address space, each segment has 236 - 18 = 218-unit maximum size. A 10-bit segment offset isn’t large enough. If there are 28 pages per segment, each page is 218 - 8 = 210 units long. It seems most likely that the last word of the description should be “page” rather than “segment.”
The answers, approximately verbatim, and in no particular order:
1: Why not? And is it wrong to use an offset, even if it isn’t needed?
2: Is that the problem this question is raising?
3: How can there be no offsets?
4: … structure.
5: What about the storage units? How would they change? How would that fix things?
6: What is not representing 64G words?
7: Why not? How is that wrong?
8: What error do these changes correct?
9: … in this case.
10: What was the problem the original arrangement caused, and how does this arrangement solve the problem?
11: The space, or the address?
12: What kind of assumptions are needed to make this true?
13: … for space allocation (size) purposes.
14: what is virtual? the system or the space (or both)?
15: doesn’t the virtual-address space impose any limits? and does the virtual address change as different capacity disks are added and removed from the system?
16: is it?
17: if that’s so, how is virtual-store size based on physical-store size?
18: … vastly larger.
19: What? If the description is incorrect, then it doesn’t
matter what 0xbeef0cafe
is. Also, if there’s an extra bit, then
that’s a total of 37 bits, not 40.
20: What problem does signed vs unsigned address?
21: When is a virtual address ever a signed value?
22: … unsigned.
23: The page number’s only 8 bits, not 16.
24: The question doesn’t identify a page offset.
25: What does the 1024 represent?
26: Ditto.
27: Why is this true?
28: Why are two correct? Why not three? Or one?
29: Those are big segments. How would they be handled efficiently?
30: Oh? So I can have a 64G virtual-address space with a 20-bit virtual addresses? Is that so?
31: why is the arrangement described here right, but the arrangement described in the problem wrong?
32: the 10-bit offset is an offset for what?
33: why is this right and the question’s description wrong?
34: True, but the question is whether or not the fragments are being described correctly.
35: And the
interpretation of 0xbeef0cafe
?
36: Is that “significant” in the technical sense (smaller values), or in the usual sense (less important)? And what does it mean for a segment offset to be less significant than a page number?
37: Is an 8-big offset big enough for either an 18-bit or 10-bit address region?
38: Why is that? There isn’t any virtual-physical translation going on, so what is the value of having a page-frame index?
39: Ok, but what about a segmented virtual-address space?
40: That’s 18 bits; what about the other 18?
41: What happens to the segments?
42: Is a 10-bit offset big enough for a 26-bit page?
Keeping track of number of times a page has appeared in successive working-set calculations provides a (not too good) approximation to LRU queueing. Scaling the page count by the number of times each page appeared in one calculation may add a useful measure of current access to the result.
The answers, approximately verbatim, and in no particular order:
1: by what process would the working-set algorithm be able to establish this ordering?
2: quite true, but is it possible? how?
3: Actual approximations to what?
4: Which time interval?
5: Which specific pages?
6: Duplicate pages? How would the working-set algorithm managed pages if it could have duplicates?
7: How? What is the relation between duplicate pages and page access patterns?
8: Sure, but which page would the modified algorithm determine is accessed least?
9: … times in the future if it was only accessed once or twice in time t. This should make the ws more useful in determining what page to throw out.
10: What? What is the length of the process? What units is it measured in?
11: Perhaps, but can such a thing be determined? How?
12: Numbers? Does that mean page-frame numbers? Or something else?
13: Is that possible? How?
14: Doesn’t the unmodified working-set algorithm have that information alreday?
15: What is the depth in the working-set algorithm?
16: How is depth measured, and what is its relation to recent access?
17: That twenty-two words that add nothing to the answer.
18: Which aging algorithm?
19: What counter?
20: … ticks it is removed from the working set.
21: That’s twenty-three words that add nothing to the answer.
22: Doesn’t an unmodified working-set algorithm already use this information?
23: Which list?
24: Is it possible to make such changes to the working-set algorithm? If it is, how are the changes made?
25: Why does the OS want to get as close as possible to an LRU algorithm? Does that even make sense?
26: By “it” do you mean the working-set algorithm? Or the OS? In either, or some other, case, then what can be done to solve the problem given in the question?
27: Which pages should be store? How should the working-set algorithm be modified to check the pages?
28: Would the working-set algorithm be doing this, or something else (such as the MMU)?
29: Ok, but can the working-set algorithm be made to do that? How?
30: Which number of frames? The total number of frames in the system? The number of frames allocated to a process?
31: That seems excessive. And what does it have to with the working-set algorithm?
32: How does ejecting processes keep the multiprogramming rate high?
33: Implementing LRU over what?
34: … used within last 10,000-15,000 references. (If delta equals 10,000 references with an interrupt every 5,000) if it was used, one of them will be on , and will be in the working set. If not, it can be suspended or ejected.
35: Is the working-set algorithm recording the page-fault time? Is that how the working-set algorithm operates, or is this the modification? If it’s the modification, is it possible to modify the working-set algorithm to have such behavior?
36: Which set? The working set, or some new set added to the working-set algorithm?
37: That seems excessively violent, and not at all in the spirit of the working-set algorithm. How does the scheme solve the problem?
38: True, but the unmodified working-set algorithm does the same thing. What is the advantage of using a half delta?
39: Is the working-set algorithm doing this examining? If so, then the working-set algorithm would also have to be invoked on every page fault; is that a suggested modification?
40: … on. If it has not been referenced in that interval the bits will be off. If the bits are off it would be safe to eject that page, and if a bit is on it should be left alone.
41: How is this possible? Limiting page faults seems to depend on process behavior, which is beyond the scope of any page manager.
42: True, but how does that have anything to do with determining which page should be ejected.
43: So this is a recommendation to punt: whenever a process is paging too much, swap it out? How would the working-set algorithm be modified to implement this scheme?
44: … and decrease frequency of page faults.
45: is checking last-use time something the working-set algorithm can do?
46: by what mechanism can the working-set algorithm determine these pages?
47: … make it useful and efficient in determining the page ejects.
48: Is this backwards? The threshold is undefined, and so is the relation between the working set and the threshold, but it seems likely that if the working set falls below a threshold, there are too many page frames allocated to the process, rather than too few.
49: And this is determined how? Presumably something to do with the counter added, but what?
50: … modification bit as an additional fail safe.
51: Right, but how is that done?
52: Indeed not. But which pages are those?
53: … the algorithm loads pages into the cache.
Keep in mind that: 1) A good answer to this question will make clear some of the possible choices for metadata representation. 2) Your answer should give an approach, with examples, to solving your colleague’s problem; it doesn’t have to solve your colleague’s problem. 3) The only problem your colleague is concerned with is file-block metadata representation; all other file-system aspects are not relevant to your colleague’s concern or your answer.
Under the principle that small data can be efficiently handled in practically any way, recommend that your colleague gather file sizes in existing file systems. If the vast majority of files are small, for some definition of “vast” and “small” then go with simplicity and use a linked-list representation. If a vast majority are large, then go with a tilted n-ary tree and indirection blocks.
The answers, approximately verbatim, and in no particular order:
1: What kind of data could be collected from existing systems to justify this claim?
2: What in particular should be checked?
3: How would such information be used?
4: How would the result of this comparison be used?
5: … if the system is using linked list allocation the metadata should obviously precede[?] the locations of each block in the store. It should also reference where to start and where to end and the links in between or in the case of a tree the metadata should reference its parent and its children.
6: That’s a lot of information to extract; how might it be done?
7: How would the information gathered from other file systems help make these choices?
8: … provides efficient access to extent maps. By seeing how these representations work the colleague can see what will work best on his system.
9: Assuming the existing file systems used a linked-list allocation.
10: And what in the existing file-system data would justify this choice?
11: How would your colleague study existing file systems to determine this information?
12: How would this information influence the way file-block allocations are represented in the new file system?
13: Any particular part of the metadata, or all the metadata?
14: In what ways might this be done?
15: What justifies this choice?
16: What are the relations between this information and file-block allocation representations?
17: That seems a little expansive, given that the question is about file systems. Why is it necessary?
18: How would these choices be made?
19: How is this significance manifested?
20: What do virtual store and paging allocation have to do with implementing file-block allocation?
21: What does this sentence mean?
22: Why so?
23: … access to the contents of each node. The only issue with this implementation is the performance hostile results that would occur as greater number of file blocks are allocated in addition to the problem of constantly having to go through the list to update nodes.
24: How does this metadata information relate to file-block allocation?
25: Maybe, but why is sorting based on content-type relevant to the problem at hand?
26: The relation of this information to file-block allocation representations is unclear.
27: … access date, modification data, etc) By showing concern for protection and data data, this information could be used to keep better tack of when blocks have been accessed, and to ensure that only the current processes and users are accessing them.
28: What does this sentence mean?
29: What does this answer mean?
30: … not fully solve the problem.
31: What kind of data is “metadata the file is contained with”?
32: How would the metadata studied influence choosing?
33: Why is ownership important?
34: File times defined how?
35: File data characterized how?
36: How is this determined?
37: … in a file could be visible. Use a linked structure to represent such data. Hybrid records is a good implementation of this. Older OS may not support some of the modern enhancements to file metadata, such as long file names.
38: Yes, as the question states.
39: How?
40: As something to study in existing file systems, or something to implement in the new file system?
A) Data my colleague could gather from existing file systems would e information on what strategies they utilize concerning metadata, as well as what hardware is available to them.
B) With this data we can determine how to approach the old operating system. It may be wise to first strengthen buffer coherence, to assure there aren’t any problems with the metadata representation.41 Another suggestion would be to singly link metadata to the file itself through42 […]4341: It may indeed, but what factors would suggest the wisdom of strengthening buffer coherence? And what does buffer coherence have to do with representing file-block allocation metadata?
42: What metadata information would justify this suggestion?
43: … careful organization.
44: True, but how is this significant to your colleague?
45: What is the justification for this recommendation?
46: How are i-nodes similar to the contiguous and linked-list allocations?
47: What existing file-system metadata should my colleague look at to determine this?
48: On what data is this decision based?