Operating Systems II                                  (Figures on reverse side)
Course examination 11.5.2004

Write in each answer sheet your name, signature, id-number, course name, and page nr/total nr of pages
  1. [13 p] Prosesses and threads. Observe Solaris processes and threads (see Fig. 4.15 on reverse side).
    1. [3 p] Explain Fig. 4.15 concepts
      1. ULT (User Level Thread)
      2. LWP (Light Weight Process)
      3. KLT (Kernel Level Thread)
    2. [2 p] If a ULT is suspended (e.g., waiting for I/O), then under which circumstances will LWP also suspend? Similarly, under which circumstances will LWP not suspend?
    3. [2 p] Explain who schedules ULTs and when.
    4. [2 p] Explain who schedules LWPs and when.
    5. [2 p] Give an example on an application problem that would be best to solve with similar processes as process 3 in Fig 4.15 (on reverse side). Explain. Especially explain why the approach with processes similar to process 4 in Fig 4.15 would not work.
    6. [2 p] Give an example on an application problem that would be best to solve with similar processes as process 4 in Fig 4.15 (on reverse side). Explain. Especially explain why the approach with processes similar to process 3 in Fig 4.15 would not work.

  2. [12 p] Consider virtual memory Clock page replacement algorithm, when each page has both R-bit (viitattu, referenced or accessed recently) and M-bit (modified). (See Fig. 8.18 on reverse side)
    1. [3 p] How does Clock page replacement algorithm work?
    2. [2 p] When is Clock algoritmi activated? Does it always terminate?
    3. [3 p] Who sets new values for R- and M-bits and when?
    4. [2 p] Define concept working set. What has working set to do with this Clock algorithm?
    5. [2 p] Is Clock-algorithm local or global page replacement algorithm? Explain.

  3. [13 p] Process and thread scheduling
    1. [3 p] How does Feedback q=2i scheduling algorithm work? For what execution environment is it designed for? Give an example.
    2. [3 p] How does Fair Share scheduling algorithm work? For what execution environment is it designed for? Give an example.
    3. [3 p] How does Gang scheduling algorithm work? For what execution environment is it designed for? Give an example.
    4. [3 p] How does Rate Monotonic scheduling algorithm work? For what execution environment is it designed for? Give an example.

  4. [12 p] Security
    1. [3 p] How does one implement in UNIX/Linux system the following situation: user Antti gives user Maijan his game program GoodGame. When GoodGame is run, it can read and write game file GameLog, but Maija can not read or write GameLog when she is not playing the game. Give a detailed example.
    2. [3 p] What does Trojan Horse security problem has to do with this situation? Give an example where the problem in part (a) has been solved, but Antti will gain access to information in Maija's file MyjaPrivate, to which only Maija has read or write rights.
    3. [3 p] How can Maija protect herself against the data security attack given in part (b)?
    4. [3 p] Is it possible in part (a) solution, that information in Antti's confidential file AntiSecret will leak to Maija while she is playing GoodGame. How or why not? Give an example.