0: Explain the LIFO/FOFO rule for pthread_atfork. Give a concrete example that results in a deadlock if this rule is not followed. Study pthread_cleanup_pop()/_push() calls. These are also executed LIFO. Explain. 1: Read http://www.oreilly.com/catalog/opensources/book/appa.html carefully. At various points, "multithreading a filesystem" is discussed. Explain what the issues are in a concise but clear manner. "The problem would be somewhat less if the file system stuck to serving files and didn't interact with terminal i/o." What is the problem with Minix's design in this area? 2: Create a number of cpu-bound processes [while 1's] and observe how long one such process runs on the cpu in one shot. [This is called the cpu quanta.] Using DTrace can you measure this? Can you determine a pattern in the execution sequence of the processes? Can you figure out what scheduling algorithm is used? In Solaris, if a process waits for cpu for a long time, its priority increases. Can you demonstrate this [hint: use the sched provider] 3: Obtain a trace (virtual address) of the pagefaults when an application cold starts ( i.e. starts up first time)? Use fbt provider of DTrace. Plot virtual addresses from above against time and see if there is any pattern(s). Classify the type of pagefaults [major faults, minor faults, protection faults...]. Look at the vminfo and sysinfo provider of DTrace to understand what major faults and minor faults are. Kill the application and run the application again (warm start) and explain the results. Cold start staroffice. [you would have to remount / to ensure no pages containing file data are in memory, use the command 'mount -o remount /'] Measure the startup time of staroffice. How much faster will it be if all the files are moved under /tmp. [ On a default installation /tmp is a RAM based filesystem]