Problems


[Page 52 (continued)]

1.

What are the two main functions of an operating system?

2.

What is the difference between kernel mode and user mode? Why is the difference important to an operating system?

3.

What is multiprogramming?

4.

What is spooling? Do you think that advanced personal computers will have spooling as a standard feature in the future?

5.

On early computers, every byte of data read or written was directly handled by the CPU (i.e., there was no DMADirect Memory Access). What implications does this organization have for multiprogramming?

6.

Why was timesharing not widespread on second-generation computers?

7.

Which of the following instructions should be allowed only in kernel mode?

(a) Disable all interrupts.

(b) Read the time-of-day clock.

(c) Set the time-of-day clock.

(d) Change the memory map.

8.

List some differences between personal computer operating systems and mainframe operating systems.

9.

Give one reason why a closed-source proprietary operating system like Windows should have better quality than an open-source operating system like Linux. Now give one reason why an open-source operating system like Linux should have better quality than a closed-source proprietary operating system like Windows.

10.

A MINIX file whose owner has UID = 12 and GID = 1 has mode rwxr-x---. Another user with UID = 6, GID = 1 tries to execute the file. What will happen?


[Page 53]
11.

In view of the fact that the mere existence of a superuser can lead to all kinds of security problems, why does such a concept exist?

12.

All versions of UNIX support file naming using both absolute paths (relative to the root) and relative paths (relative to the working directory). Would it be possible to dispose of one of these and just use the other? If so, which would you suggest keeping?

13.

Why is the process table needed in a timesharing system? Is it also needed in personal computer systems in which only one process exists, that process taking over the entire machine until it is finished?

14.

What is the essential difference between a block special file and a character special file?

15.

In MINIX 3 if user 2 links to a file owned by user 1, then user 1 removes the file, what happens when user 2 tries to read the file?

16.

Are pipes an essential facility? Would major functionality be lost if they were not available?

17.

Modern consumer appliances such as stereos and digital cameras often have a display where commands can be entered and the results of entering those commands can be viewed. These devices often have a primitive operating system inside. To what part of a personal computer software is the command processing via the stereo or camera's display similar to?

18.

Windows does not have a fork system call, yet it is able to create new processes. Make an educated guess about the semantics of the system call Windows uses to create new processes.

19.

Why is the chroot system call limited to the superuser?(Hint: Think about protection problems.)

20.

Examine the list of system calls in Fig. 1-9. Which call do you think is likely to execute most quickly. Explain your answer.

21.

Suppose that a computer can execute 1 billion instructions/sec and that a system call takes 1000 instructions, including the trap and all the context switching. How many system calls can the computer execute per second and still have half the CPU capacity for running application code?

22.

There is a mknod system call in Fig. 1-16 but there is no rmnod call. Does this mean that you have to be very, very careful about making nodes this way because there is no way to every remove them?

23.

Why does MINIX 3 have the program update running in the background all the time?

24.

Does it ever make any sense to ignore the SIGALRM signal?

25.

The client-server model is popular in distributed systems. Can it also be used in a single-computer system?

26.

The initial versions of the Pentium could not support a virtual machine monitor. What essential characteristic is needed to allow a machine to be virtualizable?

27.

Write a program (or series of programs) to test all the MINIX 3 system calls. For each call, try various sets of parameters, including some incorrect ones, to see if they are detected.


[Page 54]
28.

Write a shell that is similar to Fig. 1-10 but contains enough code that it actually works so you can test it. You might also add some features such as redirection of input and output, pipes, and background jobs.




Operating Systems Design and Implementation
Operating Systems Design and Implementation (3rd Edition)
ISBN: 0131429388
EAN: 2147483647
Year: 2006
Pages: 102

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net