Homework 1

22C:116, Spring 2002

Due Monday Jan 28, 2002, in class

Douglas W. Jones

Always, on every assignment, please write your name legibly as it appears on your University ID and on the class list!

  1. What is your E-mail address? (If you have more than one, give the address you'd prefer used for class purposes.)

  2. Do you have access to a UNIX/Linux/MacOS-X system? (If you say no, we will create a class account for you on the CS department's UNIX/Linux cluster.) you need it.

  3. Background: Here are some questions to test your understanding of programming language concepts and computer architecture, at the level expected for success in this course.

    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?

  4. Background: You are expcedted to have completed an introductory operating systems or system software course prior to this course. You should be able to answer the following questions from this background:

    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?