Always, on every assignment, please write your name legibly as it appears on your University ID and on the class list!
Look at the exception handler primitives documented in:
http://homepage.cs.uiowa.edu/~dwjones/syssoft/style.html#except
Part A: Explain the difference between this exception handling model and the model of the Java and C++ programming languages. This difference can be explained in a few lines; the documentation for the primitives gives the consequences of this difference, but it does not explain the difference.
Part B: The exception handler cited above use the longjmp() and setjmp() primitives of the C programming language. These save and restore state information from a data object called a jump buffer. If you look at implementations of these primitives in different implementations of C, you will find that the size of a jump buffer varies immensely from one implementation to the next. On some, it is hundreds of bytes, while on others, it is less than ten bytes.
Given what you know about programming languages and computer architecture at the machine or assembly language level, what is the minimum information that must be stored in the jump buffer?
A large manufacturer of PDA's is moving to integrate a web browser into their next generation product. This will have a 32-bit processor, 4 megabytes of RAM, and 100 megabytes of page-erasable flash EEPROM, plus a radio modem able to connect to the net using cellular telephone technology. Page erasable EEPROM is 10 times slower than RAM for reading or writing, and the only way to change a bit of this memory from 1 to 0 is to erase a full page of memory, 1024 bytes; changing from 0 to 1 is done by a normal write operation.
Problem A: Why is virtual memory relevant on this system, given that it has no disk?
Problem B: An important component of the system required for use of virtual memory was not mentioned in the background statement. What is it? Hint: It would be appropriate to ask if this component was part of the CPU or an independent subsystem.
Problem C: Your boss says there is no need for DMA I/O, no need for I/O request queues and no need for request schedulers. What is it about the change from disk to flash EEPROM that justifies this assertion?