CPS 110 Midterm Exam Spring 2001 There are four questions worth 50 points each. Answer all parts of all questions. Please sign your name and staple your answers together. Allocate your time carefully. Your answers will be graded on content, not style. Any kind of pseudocode is fine as long as its meaning is clear. You have 75 minutes. (3/6/2001) 1. Operators are standing by. The customer service line at MegaMurk staffs a phone bank to answer questions from customers about its products. Customers calling in are put on hold, where they wait for the next available customer service advocate to answer their call "in the order it was received". The economy is in a downturn, so business is sometimes slow: if there are no customers waiting, available advocates just wait around for the phone to ring. You are to write procedures to correctly synchronize the customers and advocates. You need not be concerned with starvation, fairness, or deadlock. (a) Synchronize customers and advocates using mutexes and condition variables. (b) Synchronize customers and advocates using only semaphores. 2. Paying customers first. The high-flying Silicon Valley startup sellshort.com has fallen on hard times after a steep drop in sales and an even steeper drop in share price. The company has moved out of its 40th floor office suite and into a trailer. Since the trailer has no restroom, Sellshort has an an agreement allowing its employees to use the facilities at the Burger Barn next door. Burger Barn's management stipulates that any number of SellShort employees may visit its restroom concurrently, but if a Burger Barn customer visits then the Sellshort employees must vacate as soon as practical to allow the customer exclusive access to the restroom (Burger Barn's trademark). To conserve electricity, the last person leaving the restroom must turn out the lights unless somebody else is waiting to get in. Write procedures that allow customers and employees to Enter and Exit the restroom in accordance with these policies. It is acceptable for your solution to starve employees from service, but not customers. You may assume that each individual's time in the restroom is bounded. 3. Got milk? Six freshmen are living together in a small dorm room on East Campus. The dorm room has a tiny refrigerator with space for six pints of their favorite beverage: milk. The students frequently take time out from their busy days and nights to purchase or drink milk. A student arriving with more milk waits in the room until there is space in the refrigerator to keep the milk cold. If a student wants milk and the refrigerator is empty, then the thirsty student waits in the room until some roomate arrives with more milk. Write procedures to synchronize access to the shared refrigerator and the milk supply. Is your solution vulnerable to starvation or deadlock? Explain. 4. Mode and Context. The following questions concern the handling of processes in a protected kernel-based operating system such as Nachos. Assume that the kernel creates and initializes each process to execute a statically linked program from an executable file whose name is passed as an argument to the process create primitive (as the Nachos Exec system call). Note: your answers should ignore the issues of page table structure, virtual address translation, and argument handling. (a) How does the kernel determine the initial values for the physical memory it allocates for the code and data in the address space of the new process? (b) Explain how the kernel initializes the program counter register (PC) and stack pointer register (SP) before switching the CPU to user mode to start the fresh process for the first time. (c) Once the CPU is executing in user mode in the context of the fresh process, what could cause it to switch back into kernel mode? Give three distinct examples and outline how each affects the PC and SP registers on re-entry to the kernel. (d) Once the CPU is in kernel mode as a result of the examples in part (c), what could cause it to switch back into user mode? List as many distinct scenarios as you can.