Original
Original
Chapter: Chapter 2
Multiple Choice
Ans: A
Feedback: 2.2.1
Difficulty: Medium
Ans: B
Feedback: 2.4.1
Difficulty: Medium
4. Policy ____.
A) determines how to do something
B) determines what will be done
C) is not likely to change across places
D) is not likely to change over time
Ans: B
Feedback: 2.6.2
Difficulty: Easy
Ans: A
Feedback:: 2.7.2
Difficulty: Medium
Ans: D
Feedback: 2.7.3
Difficulty: Easy
7. To the SYSGEN program of an operating system, the least useful piece of information is
_____.
A) the CPU being used
B) amount of memory available
C) what applications to install
D) operating-system options such as buffer sizes or CPU scheduling algorithms
Ans: C
Feedback: 2.9
Difficulty: Medium
Ans: A
Feedback: 2.10
Difficulty: Medium
Ans: B
Feedback: 2.3
Difficulty: Medium
Ans: D
Feedback: 2.4
Difficulty: Easy
11. _____ allow operating system services to be loaded dynamically.
A) Virtual machines
B) Modules
C) File systems
D) Graphical user interfaces
Ans: B
Feedback: 2.7.4
Difficulty: Medium
Ans: A
Feedback: 2.7.3
Difficulty: Easy
13. The Windows CreateProcess() system call creates a new process. What is the
equivalent system call in UNIX:
A) NTCreateProcess()
B) process()
C) fork()
D) getpid()
Ans: C
Feedback: 2.4.1
Difficulty: Easy
14. The close() system call in UNIX is used to close a file. What is the equivalent system call
in Windows:
A) CloseHandle()
B) close()
C) CloseFile()
D) Exit()
Ans: A
Feedback: 2.4.1
Difficulty: Easy
15. The Windows CreateFile() system call is used to create a file. What is the equivalent
system call in UNIX:
A) ioctl()
B) open()
C) fork()
D) createfile()
Ans: B
Feedback: 2.4.1
Difficulty: Easy
Ans: A
Feedback: 2.7.5
Difficulty: Medium
17. ______ is a mobile operating system designed for the iPhone and iPad.
A) Mac OS X
B) Android
C) UNIX
D) iOS
Ans: D
Feedback: 2.7.5
Difficulty: Medium
18. The ________ provides a portion of the system call interface for UNIX and Linux.
A) POSIX
B) Java
C) Standard C library
D) Standard API
Ans: C
Feedback: 2.4.1
Difficulty: Medium
Ans: C
Feedback: 2.1
Difficulty: Easy
20. _____ is/are not a technique for passing parameters from an application to a system call.
A) Cache memory
B) Registers
C) Stack
D) Special block in memory
Ans: A
Feedback: 2.3
Difficulty: Medium
Essay
21. There are two different ways that commands can be processed by a command interpreter.
One way is to allow the command interpreter to contain the code needed to execute the command.
The other way is to implement the commands through system programs. Compare and contrast
the two approaches.
Ans: In the first approach, upon the user issuing a command, the interpreter jumps to the
appropriate section of code, executes the command, and returns control back to the user. In the
second approach, the interpreter loads the appropriate program into memory along with the
appropriate arguments. The advantage of the first method is speed and overall simplicity. The
disadvantage to this technique is that new commands require rewriting the interpreter program
which, after a number of modifications, may get complicated, messy, or too large. The advantage
to the second method is that new commands can be added without altering the command
interpreter. The disadvantage is reduced speed and the clumsiness of passing parameters from the
interpreter to the system program.
Feedback: 2.2
Difficulty: Hard
22. Describe the relationship between an API, the system-call interface, and the operating
system.
Ans: The system-call interface of a programming language serves as a link to system calls
made available by the operating system. This interface intercepts function calls in the API and
invokes the necessary system call within the operating system. Thus, most of the details of the
operating-system interface are hidden from the programmer by the API and are managed by the
run-time support library.
Feedback: 2.3
Difficulty: Hard
23. Describe three general methods used to pass parameters to the operating system during
system calls.
Ans: The simplest approach is to pass the parameters in registers. In some cases, there may be
more parameters than registers. In these cases, the parameters are generally stored in a block, or
table, of memory, and the address of the block is passed as a parameter in a register. Parameters
can also be placed, or pushed, onto the stack by the program and popped off the stack by the
operating system.
Feedback: 2.3
Difficulty: Medium
24. What are the advantages of using a higher-level language to implement an operating
system?
Ans: The code can be written faster, is more compact, and is easier to understand and debug. In
addition, improvements in compiler technology will improve the generated code for the entire
operating system by simple recompilation. Finally, an operating system is far easier to port to
move to some other hardware if it is written in a higher-level language.
Feedback: 2.6.3
Difficulty: Medium
Ans: Requirements can be divided into user and system goals. Users desire a system that is
convenient to use, easy to learn, and to use, reliable, safe, and fast. System goals are defined by
those people who must design, create, maintain, and operate the system: The system should be
easy to design, implement, and maintain; it should be flexible, reliable, error-free, and efficient.
Feedback: 2.6.1
Difficulty: Medium
26. What are the advantages and disadvantages of using a microkernel approach?
Ans: One benefit of the microkernel approach is ease of extending the operating system. All
new services are added to user space and consequently do not require modification of the kernel.
The microkernel also provides more security and reliability, since most services are running as
user rather than kernel processes. Unfortunately, microkernels can suffer from
performance decreases due to increased system function overhead.
Feedback: 2.7.3
Difficulty: Medium
27. Explain why a modular kernel may be the best of the current operating system design
techniques.
Ans: The modular approach combines the benefits of both the layered and microkernel design
techniques. In a modular design, the kernel needs only to have the capability to perform the
required functions and know how to communicate between modules. However, if more
functionality is required in the kernel, then the user can dynamically load modules into the kernel.
The kernel can have sections with well-defined, protected interfaces, a desirable property found
in layered systems. More flexibility can be achieved by allowing the modules to communicate
with one another.
Feedback: 2.7.4
Difficulty: Hard
Ans: Primarily because he kernel environment is a blend of the Mach microkernel and BSD
UNIX (which is closer to a monolithic kernel.)
Feedback: 2.7.5
Difficulty: Medium
29. Describe how Android uses a unique virtual machine for running Java programs.
Ans: The Dalvik virtual machine is designed specifically for Android and has been optimized for
mobile devices with limited memory and CPU processing capabilities.
Feedback: 2.7.5
Difficulty: Medium
True/False
30. KDE and GNOME desktops are available under open-source licenses.
Ans: True
Feedback: 2.2.2
Difficulty: Easy
31. Many operating system merge I/O devices and files into a combined file because of the
similarity of system calls for each.
Ans: True
Feedback: 2.4.3
Difficulty: Medium
Ans: False
Feedback: 2.11
Difficulty: Easy
33. System calls can be run in either user mode or kernel mode.
Ans: False
Feedback: 2.3
Difficulty: Easy
34. Application programmers typically use an API rather than directory invoking system calls.
Ans: True
Feedback: 2.3
Difficulty: Easy
35. In general, Windows system calls have longer, more descriptive names and UNIX system
calls use shorter, less descriptive names.
Ans: True
Feedback: 2.4
Difficulty: Easy
36. Mac OS X is a hybrid system consisting of both the Mach microkernel and BSD UNIX.
Ans: True
Feedback: 2.7.5
Difficulty: Medium
Ans: False
Feedback: 2.7.5
Difficulty: Medium