CHAPTER 2
OPERATING SYSTEM
OVERVIEW
Review Questions
2.1 Convenience: An operating system makes a computer more convenient
to use. Efficiency: An operating system allows the computer system
resources to be used in an efficient manner. Ability to evolve: An
operating system should be constructed in such a way as to permit the
effective development, testing, and introduction of new system functions
without interfering with service.
2.5 The execution context, or process state, is the internal data by which the
operating system is able to supervise and control the process. This
internal information is separated from the process, because the operating
system has information not permitted to the process. The context includes
all of the information that the operating system needs to manage the
process and that the processor needs to execute the process properly. The
context includes the contents of the various processor registers, such as
the program counter and data registers. It also includes information of
use to the operating system, such as the priority of the process and
whether the process is waiting for the completion of a particular I/O
event.
Problems
2.1 The answers are the same for (a) and (b). Assume that although processor
operations cannot overlap, I/O operations can.
1 Job:
TAT = NT
Processor utilization
2 Jobs:
TAT = NT
Processor utilization
4 Jobs:
TAT =
(2N – 1)NT
Processor utilization
= 50%
= 100%
= 100%
2.4 A system call is used by an application program to invoke a function
provided by the operating system. Typically, the system call results in
transfer to a system program that runs in kernel mode.
PROCESS DESCRIPTION AND
CHAPTER 3
CONTROL
Review Questions
3.5 Swapping involves moving part or all of a process from main memory to
disk. When none of the processes in main memory is in the Ready state,
the operating system swaps one of the blocked processes out onto disk
into a suspend queue, so that another process may be brought into main
memory to execute.
3.10 The user mode has restrictions on the instructions that can be executed
and the memory areas that can be accessed. This is to protect the
operating system from damage or alteration. In kernel mode, the
operating system does not have these restrictions, so that it can perform
its tasks.
Problems
3.1 •Creation and deletion of both user and system processes. The
processes in the system can execute concurrently for information
sharing, computation speedup, modularity, and convenience.
Concurrent execution requires a mechanism for process creation and
deletion. The required resources are given to the process when it is
created, or allocated to it while it is running. When the process
terminates, the OS needs to reclaim any reusable resources.
•Suspension and resumption of processes. In process scheduling, the
OS needs to change the process's state to waiting or ready state when it
is waiting for some resources. When the required resources are
available, OS needs to change its state to running state to resume its
execution.
•Provision of mechanism for process synchronization. Cooperating
processes may share data. Concurrent access to shared data may result
in data inconsistency. OS has to provide mechanisms for processes
synchronization to ensure the orderly execution of cooperating
processes, so that data consistency is maintained.
•Provision of mechanism for process communication. The processes
executing under the OS may be either independent processes or
cooperating processes. Cooperating processes must have the means to
communicate with each other.
•Provision of mechanisms for deadlock handling. In a
multiprogramming environment, several processes may compete for a
finite number of resources. If a deadlock occurs, all waiting processes
will never change their waiting state to running state again, resources
are wasted and jobs will never be completed.
3.3 Figure 9.3 shows the result for a single blocked queue. The figure readily
generalizes to multiple blocked queues.
PROCESS DESCRIPTION AND
CHAPTER 4
CONTROL
Review Questions
4.2 Less state information is involved.
4.5 Address space, file resources, execution privileges are examples.
4.6 1. Thread switching does not require kernel mode privileges because all
of the thread management data structures are within the user address
space of a single process. Therefore, the process does not switch to the
kernel mode to do thread management. This saves the overhead of two
mode switches (user to kernel; kernel back to user). 2. Scheduling can be
application specific. One application may benefit most from a simple
round-robin scheduling algorithm, while another might benefit from a
priority-based scheduling algorithm. The scheduling algorithm can be
tailored to the application without disturbing the underlying OS
scheduler. 3. ULTs can run on any operating system. No changes are
required to the underlying kernel to support ULTs. The threads library is
a set of application-level utilities shared by all applications.
4.7 1. In a typical operating system, many system calls are blocking. Thus,
when a ULT executes a system call, not only is that thread blocked, but
also all of the threads within the process are blocked. 2. In a pure ULT
strategy, a multithreaded application cannot take advantage of
multiprocessing. A kernel assigns one process to only one processor at a
time. Therefore, only a single thread within a process can execute at a
time.
Problems
4.2 Because, with ULTs, the thread structure of a process is not visible to the
operating system, which only schedules on the basis of processes.
CHAPTER 5
CONCURRENCY: MUTUAL
EXCLUSION AND
SYNCHRONIZATION
Review Questions
5.1 Communication among processes, sharing of and competing for
resources, synchronization of the activities of multiple processes, and
allocation of processor time to processes.
5.9 A binary semaphore may only take on the values 0 and 1. A general
semaphore may take on any integer value.
Problems
5.2 ABCDE; ABDCE; ABDEC; ADBCE; ADBEC; ADEBC;
DEABC; DAEBC; DABEC; DABCE
5.5 Consider the case in which turn equals 0 and P(1) sets blocked[1] to
true and then finds blocked[0] set to false. P(0) will then set
blocked[0] to true, find turn = 0, and enter its critical section. P(1)
will then assign 1 to turn and will also enter its critical section.