CSE120, Fall 2005, Homework 1 Due: October 4, in class 1. [Silberschatz] In most modern OSes, several users share the system simultaneously. This situation can result in various security problems. What are 3 such problems? How, if possible, can we ensure the same degree of security in a shared machine as in a dedicated one? 2. Why must the OS verify and copy system call arguments into kernel memory? 3. [Silberschatz] Describe 3 general methods for passing parameters to the operating system. 4. Suppose user processes could disable timer interrupts. What problems could this cause? Why might this be beneficial for certain applications or computing environments? 5. Suppose the architecture provided no explicit system call support, but provided dedicated system call registers. How could the OS still enable a user process to make "system calls"? 6. What are the advantages and disadvantages to having system calls not restart on interrupt (the UNIX default) vs. being automatically restarted by the kernel? 7. What are the advantages and disadvantages to storing handles to OS resources (open files, network sockets) per process rather than shared across all processes? 8. Suppose the architecture provided no priviledged mode of operation. What problems could this cause? Could you build a conventional (e.g. UNIX-like) OS on it? How? 9. Upon fork(), why might it not be a good idea to copy the process's entire address space? 10. [McKusick] After a process has exited, it may enter the state of being a zombie, before disappearing from the system entirely. What is the purpose of the zombie state? What event causes a process to exit from the zombie state?