1.1 What Operating Systems Do?
1.1 What Operating Systems Do?
Introduction to OS
Operating system –
Goals of OS –
Execute programs, makes problem solving easier, make the computer convenient to use.
The hardware—the central processing unit (CPU), the memory, and the input/output (I/O) devices—
provides the basic computing resources for the system. The application programs—such as word
processors, spreadsheets, compilers, and Web browsers—define the ways in which these resources
are used to solve users’ computing problems. The operating system controls the hardware and
coordinates its use among the various application programs for the various users. Let us explore OS
from two viewpoints - User and System view.
1
Module 1 Operating System
Introduction to OS
c. Some users use a workstation connected to network. Here OS is designed to compromise
between individual usability and resource utilization.
d. Few users use handheld computers where OS is designed for individual usability.
performance per unit of battery life is very important factor.
e. Most of embedded devices have very less user intervention and they have fixed job and time
constraints.
Following are the events that occur for a computer to start running –
➢ When computer is switched on, Bootstrap is initial program that gets started.
Bootstrap program initializes all aspects of the system from CPU registers to device controllers
to memory contents.
➢ Then loads OS into memory
➢ OS executes the first function init() and waits for some event to occur
➢ Occurrence of event is signaled by an interrupt from either hardware or the software (fig 1.2)
➢ Hardware interrupt is triggered by sending a signal to the CPU
➢ Software interrupt is triggered by executing a system call
➢ when CPU is interrupted, CPU stops current computation and transfers control to
interrupt service routine (ISR)
➢ Finally ISR executed, on completion CPU resumes the interrupted computation
2
Module 1 Operating System
Introduction to OS
✓ Programs must be in main memory for CPU execution. Interaction with the memory is
done through series of load and store instruction. Load instruction moves a word from main
memory to an internal register with in CPU. Store instruction moves the contents of the
register to main memory.
✓ Programs and data should reside in main memory permanently. This is not possible
since main memory is small and it is volatile. Therefore most computers provide secondary
storage as an extension to main memory.
✓ These secondary storage devices store huge amount of data and it is nonvolatile
✓ Wide range of storage system can be organized in a hierarchy as shown below-
✓ The higher levels are expensive, but they are fast. As we move down the hierarchy, the
cost per bit generally decreases, whereas the access time generally increases.
3
Module 1 Operating System
Introduction to OS
✓ The top four levels are constructed using semiconductor memory. Storage system
above solid state disk are volatile, below are non volatile.
✓ Another form of solid-state disk is flash memory, which is popular in cameras and personal
digital assistants (PDAs), in robots, and increasingly for storage on general-purpose computers.
4
Module 1 Operating System
Introduction to OS
1.3 Computer System Architecture
Based on the number of general purpose processors used, architecture is classified into – single
processor systems, multiprocessor systems and clustered systems.
The ability to continue providing service proportional to the level of surviving hardware is called graceful
degradation. Some systems go beyond graceful degradation and are called fault tolerant, because they
can suffer a failure of any single component and still continue operation.
Multiple processor systems are of two types – Asymmetric multiprocessing (AMP) and symmetric
multiprocessing (SMP).
Asymmetric multiprocessing – uses master slave relationship. Each processor is assigned a specific task.
Master system schedules and allocates work to slave processors and thus controls the system
Symmetric multiprocessing – No master slave relationship. Each processor runs an identical copy of OS,
and all are peers (Fig 1.6). Processors run simultaneously. Resources are shared dynamically.
Disadvantage – one CPU may sit idle, few may be overloaded resulting inefficiency.
5
Module 1 Operating System
Introduction to OS
1.3.3 Clustered systems
✓ Multiprocessor systems where two or more CPUs are coupled together, they share
common storage and closely linked via LAN. These provide high availability service.
✓ Cluster software runs on cluster nodes. Each nodes monitor one or more nodes. If the
monitored node fails then monitoring node will take ownership
Two types of clustered systems are – Asymmetric clustering and Symmetric clustering.
In Asymmetric clustering – one node is hot standby node while others are running the applications. Hot
standby mode monitors the active server, if server fails; the hot standby mode becomes the active
server.
Symmetric clustering – Two or more nodes are running applications and monitoring each other. This
structure is more efficient, as it uses all of the available hardware.
❖ OS keeps jobs in memory simultaneously as shown in fig 1.9. OS picks one of the jobs
and CPU is assigned to it, when this job needs any I/O interaction then this job is put to hold,
next job will be selected for execution, thus CPU utilization is increased here.
❖ If multiple jobs are ready to be brought to memory and no enough memory then job
scheduler will decide which jobs should be in memory, similarly if several jobs are ready to run
then CPU scheduler which decide which to be executed.
6
Module 1 Operating System
Introduction to OS
➢ To ensure the proper execution of the operating system, there should be way to
distinguish between the execution of operating system code and user defined code. This is done
by adding a bit called 'mode bit' to the hardware of the computer to indicate the current mode:
kernel (0) or user (1).
➢ At system boot time, the hardware starts in kernel mode. OS is then loaded and starts
user applications in user mode. Whenever a trap or interrupt occurs, the hardware switches
from user mode to kernel mode, at that time mode bit value is set to kernel mode. System
always switches to user mode before passing control to user program. fig (1.10)
➢ Dual mode protects OS from errant users, and errant users from one another. This
protection is achieved by executing privileged instruction only in kernel mode. If such
instructions are attempted in user mode, then hardware treats as illegal and traps to OS.
System calls are invoked by user program to ask OS to perform privileged instruction execution.
7
Module 1 Operating System
Introduction to OS
1.5.2 Timer
➢ User program is not allowed to get stuck in infinite loop or to fail to call system services and
never return control to OS. To accomplish this, Timer is set to interrupt the computer after a
specified period. The period may be fixed (for ex- 1/60 second) or variable (for ex- 1 ms to 1sec).
➢ Before turning over control to the user, the operating system ensures that the timer is
set to interrupt. If the timer interrupts, control transfers automatically to the operating system,
which may treat the interrupt as a fatal error or may give the program more time.
8
Module 1 Operating System
Introduction to OS
✓
To improve the utilization of CPU & the response time several programs will be kept in memory.
✓
Several memory management schemes are available & selection depends on the Hardware design of the
system.
✓
The OS is responsible for the following activities
o Keeping track of which parts of the memory are used & by whom.
o Deciding which process and data to move into and out of memory.
o Allocating & de-allocating memory space as needed.
➢
Once the increment to A takes place in the internal registers, the value of A differs in various
storage systems. The value of A becomes same only after the new value of A is written from
the internal register back to the disk.
➢
In multitasking environments, extreme care must be taken to use most recent value, not matter
where it is stored in the storage hierarchy.
➢
The situation becomes more complicated in multiprocessor environment, where each CPU
is associated with local cache. A care must be taken to make sure that an update to the
value of A in one cache is immediately reflected in all other caches. This situation is called as
cache coherency.
➢
The situation becomes even more complex in a distributed environment. Several copies of
the same file can be kept on different computers. Since the various replicas may be accessed
and updated concurrently, some distributed systems ensure that, when a replica is updated
in one place all other replicas are also updated as soon as possible.
10
Module 1 Operating System
Introduction to OS
1.10 Distributed Systems
✓
A distributed system is a collection of physically separate heterogeneous computer systems
that are networked to provide the users with access to various resources that the system
maintains.
✓
A distributed system is one in which Hardware or Software components located at the networked
computers communicate & coordinate their actions only by passing messages.
✓
Distributed systems depend on networking for their functionality. Network may vary by the protocols
used, distance between nodes (LAN, WAN, MAN, etc) & transport media.
✓
A network operating system is an OS that provides features such as file sharing across the network
and allows different processes on different computers to exchange messages.
✓
The advantages of Distributed Systems are,
o Resource sharing
o Higher reliability
o Better price performance ratio
o Shorter response time
o Higher throughput
o Incremental growth
Multimedia systems
✓
A recent trend in technology is the incorporation of multimedia data.
✓
Multimedia data consists of audio and video files along with conventional files (text files, word
document, etc).
✓
The difference from conventional data is that the multimedia data must be delivered or streamed
according to some time restrictions.
✓
Multimedia applications includes video conferencing, news, stories download over the internet,
live webcasts of speeches and so on
11
Module 1 Operating System
Introduction to OS
Handheld systems
✓
Handheld systems include Personal Digital Assistants (PDAs), Cellular telephones, palm and pocket
PCs and so on, which uses special purpose embedded OS.
✓
Main challenges faced by developers of handheld systems are limited size of devices.
Because of small size they have small amount of memory, slow processors and small display
screens.
12
Module 1 Operating System
Introduction to OS
service to determine which node provides the service.
2. A peer broadcasts a request for the service to all other nodes in the network. The
node (or nodes) providing that service responds to the peer.
13
Module 1 Operating System
Introduction to OS
6. Error detection
Errors may occur in CPU, memory hardware, I/O devices, or in user program. For each type of
error, OS take appropriate action to ensure correct and consistent computing.
OS also performs some common functions for efficient operation of the system. They are –
1. Resource allocation
OS manages different types of resources, depending on the process requirement resources will
be allocated and deallocated by OS.
2. Accounting
OS keeps track of which user uses how many resources and what kind of resources. This
information will be used for billing purpose or for gathering usage statistics.
3. Protection & Security
Protection ensures that all the access to the system is controlled. Security starts with each user
having authenticated to the system, usually by means of a password. External I/O devices must
also be protected from invalid access.
14
Module 1 Operating System
Introduction to OS
A simple program to copy file contents from source file to destination file involves so many system calls.
Same is explained in fig 2.1.
The relationship between an API, the system-call interface, and the operating system is shown in Fig 2.2,
which illustrates how the operating system handles a user application invoking the open() system call
15
Module 1 Operating System
Introduction to OS
➢ load, execute - A process executing one program can load and execute another
program. When the loaded program terminates, in case control returns to the existing
program then memory image of the existing program should be saved. If both programs
continue concurrently, then new process should be multi-programmed.
16
Module 1 Operating System
Introduction to OS
2.4.2 File Management
System calls used:
➢ create file, delete file – APIs are available for creating and deleting file
➢ open, close – file can be opened and can be used for storing information
➢ read, write, reposition – file once opened can be used for reading or writing purpose.
➢ get file attributes, set file attributes
File attributes include file name, file type, protection codes and accounting information.
System calls exist to determine the values of file-attributes and reset the file-attributes if
necessary.
2.4.5 Communications
Two models of communication - Message-passing model and Shared Memory Model.
There are system calls for create, delete communication connection, send and receive messages,
transfer status information and attach or detach remote devices.
17
Module 1 Operating System
Introduction to OS
• Advantages:
1. Useful when smaller numbers of data need to be exchanged.
2. It is also easier to implement than is shared memory.
User Goals
• The system should be
→ convenient to use
→ easy to learn and to use
18
Module 1 Operating System
Introduction to OS
→ reliable, safe, and fast.
System Goals
• The system should be
→ Easy to design
→ implement, and maintain
→ Flexible, reliable, error free, and efficient.
2.6.3 Implementation
OS is designed next step is implementing it, earlier it was implemented in assembly language, but now
a days higher level languages such as C or C++ is used, only some small sections of assembly code is
written for device drivers interaction.
Advantages of higher-level languages:
1. Faster development and
2. OS is easier to port.
Disadvantages – reduced speed and increased storage requirements
After the system is written and is working correctly, bottleneck routines should be identified and
replaced with assembly language equivalents.
2.7 OS Structure
➢Simple structure
➢ Layered approach
➢ Microkernels
➢ Modules
2.7.1 Simple Structure
➢
No well defined structure, OS was started as small, simple and limited systems. Ex- MS-DOS &
UNIX.
➢
MS-DOS was not divided into modules; entire functionality was provided in the least
space. The interfaces and levels of functionality was not separated, hence application
programs were able to access the basic I/O routines which is vulnerable to errors
➢
UNIX was initially limited by hardware functionality. Two parts of UNIX – kernel and
system programs. The kernel is further separated into a series of interfaces and device
drivers. The kernel provides following functions through system calls – file system, CPU
Scheduling and memory management. Here the disadvantage is difficult to enhance as
changes in one section badly affects other areas.
19
Module 1 Operating System
Introduction to OS
application program
(the users)
20
Module 1 Operating System
Introduction to OS
➢ The layer consists of a set of routines that can be invoked by higher layers. Here higher
layer does not need to know how lower layer operations are implemented; it should only know
the operations of lower layer.
Advantage: Simplicity of construction and debugging.
Disadvantages: Less efficient than other types. Ex – When a user program executes an I/O operation,
it executes a system call that is trapped to the I/O layer, which calls memory management layer, which
in turn CPU layer, so at each layer the parameters may be modified, data may need to be passed, so it is
a overhead.
2.7.3 Microkernels
➢
As the name conveys it’s a light weight kernel. Here all nonessential components from the kernel is removed
and implemented as system and user level programs.
➢
The main function of the microkernel is to provide a communication facility between client program
and various services running in user-space.
➢
Communication is provided by message passing. Ex- if a client program wishes to access a file, it must
interact with the file server.
Ex- Microkernel OS are QNX, Tru64 UNIX
• Advantages:
1. Ease of extending the OS. (New services are added to user space w/o modification of kernel).
2. Easier to port from one hardware design to another.
3. Provides more security & reliability.(If a service fails, rest of the OS remains untouched.).
4. Provides minimal process and memory management.
Disadvantage:
. Performance decreases due to increased system function overhead
2.7.4 Modules
Here object oriented programming techniques are used to create a modular kernel. Kernel has set of
core components and dynamically links to additional services either during boot time or during run
time.
Seven types of modules in the kernel – [ ex - solaris shown in fig 2.7.4]
1. Scheduling classes
2. File systems
3. Loadable system calls
4. Executable formats
5. STREAMS modules
6. Miscellaneous
21
Module 1 Operating System
Introduction to OS
7. Device and bus drivers
Advantages – Kernel provides only core services & few features are implemented dynamically. Flexible
than layered system because any module can all any other module. Efficient like microkernel as the
primary module has only core functions and knowledge how to load and communicate with other
modules is enough to get the services.
Ex – The Apple Mac OS X OS uses hybrid structure. ( fig 2.11) Structure is shown below -
The top layers include
→ Application environments and
→ set of services providing a graphical interface to applications.
Kernel environment consists primarily of
→ Mach microkernel and
→ BSD kernel.
→ memory management;
→ support for RPCs & IPC and
→ thread scheduling.
BSD
Mach
22
Module 1 Operating System
Introduction to OS
2.8 Virtual Machines
Idea behind a virtual machine is to abstract the hardware of a single computer into several different
execution environments.
OS creates illusion that process has own processor & own memory. The virtual machine provides an
interface that is identical to underlying hardware as shown in fig 2.8 (b)
Fig 2.8 System models (a) Nonvirtual machine (b) Virtual machine
Problem: Virtual-machine software itself will need substantial disk space to provide virtual
memory. Ex – Say there are 7 virtual machines and 3 disk drives, Here while allocating disk
drive to each virtual machine care need to be taken. Solution will be to provide virtual
disks that are identical in all respects except size.
Advantages:
1. Complete protection of the various system resources.
2. It is a perfect vehicle for OS’s R&D.
Disadvantage:
Difficult to implement due to effort required to provide an exact duplicate to underlying machine
Virtual machine software run in kernel mode since it is OS, where as virtual machine run in user mode.
Thus there should be virtual user mode and virtual kernel mode, both run in a physical user mode. Thus
actions that cause transfer from user mode to kernel mode must also ca use a transfer from virtual user
mode to virtual kernel mode on a virtual machine. Thus compared to real OS time taken here will be
more for task completion.
Examples – Two popular contemporary virtual machines are VMware and the Java virtual machine.
2.8.1 VMware –
This runs as an application on a host OS such as Windows or Linux and allows to run several different
guest OS’s as independent virtual machines. If developer want to test a new application on different OS
then it is best to go for VMware.
23
Module 1 Operating System
Introduction to OS
One such VMware architecture is shown in fig 2.8.1. Here Linux is running as host OS; FreeBSD,
Windows NT and Windows XP are running as guest OS. The virtualization layer is the heart of VMware,
as it abstracts the physical hardware into isolated virtual machines running as guest OS.
➢ The class loader loads the compiled .class files from both the Java program and the
Java API for execution by the Java interpreter. After class is loaded, verifier checks whether the
.class file is valid java byte code and does not overflow or underflow the stack. Once class
passes verification, then it is run by the Java interpreter. JVM also handles garbage collection.
24
Module 1 Operating System
Introduction to OS
2.9 OS Generation
• OS is designed to run on any class of machines and for this the system must be configured for each
specific computer site
• Process known as SYSGEN is used for configuring a system for each specific computer site
• SYSGEN program must determine the following information for configuring the hardware system:
1. What CPU will be used? -
2. How will boot disk be formatted?
3. How much memory is available?
4. What devices are available?
5. What OS options are desired?
• A system-administrator can use the above information to modify a copy of the source code of the OS.
• The OS is then completely compiled and later it is tailored to the system described.
25
Module 1 Operating System
Introduction to OS
Chapter 3: Process Concept
Process is unit of work. System consists of collection of processes. Processes are categorized into user
process and OS process. OS process executes system code where as user process executes user code.
Fig 3.1
If many copies of a program are run then each is a separate process. The text-sections are
equivalent, but the data-sections vary.
When process gets executed, it changes state depending on the current activity of that process.
Process will be in one of the following states.
26
Module 1 Operating System
Introduction to OS
3.1.3 Process Control Block
In OS, each process is represented by a PCB (Process Control Block) also called as task control block.
1. Process State
→ accumulators (AX)
→ index registers (SI, DI)
→ stack pointers (SP) and
→ general-purpose registers (BX, CX, DX).
4. CPU Scheduling Information
This includes
→ priority of process
→ pointers to scheduling-queues and
→ scheduling-parameters.
5. Memory Management Information
This includes
→ value of base- & limit-registers and
→ value of page-tables( or segment-tables).
6. Accounting Information
This includes
→ amount of CPU time
→ time-limit and
→ process-number.
7. I/O Status Information
This includes
→ list of I/O devices & → list of open files.
3.1.4 Threads
Process is a program that may either performs a single thread of execution or multiple thread of execution.
27
Module 1 Operating System
Introduction to OS
3.2 Process Scheduling
The objective of multiprogramming is to have some process running at all times to maximize CPU utilization,
where as in case of timesharing objective is to switch the CPU between processes so frequently that users
can interact with each program while it is running. To meet the above two objectives Process scheduler is
used
to select an available process for program- execution on the CPU.
2. Ready Queue
o This consists of the processes that are residing in main-memory and ready & waiting
to execute (Figure 3.2).
o This queue is generally stored as a linked list.
o A ready-queue header contains pointers to the first and final PCBs in the
list. o Each PCB has a pointer to the next PCB in the ready-queue.
o
3. Device Queue
✓ This consists of the processes that are waiting for an I/O device.
✓ Each device has its own device-queue.
When the process is executing, one of following events could occur (Figure 3.3):
1. The process could issue an I/O request and then be placed in an I/O queue.
2. The process could create a new sub process and wait for the sub process’s termination.
3. The process could be interrupted and put back in the ready-queue.
28
Module 1 Operating System
Introduction to OS
Long term scheduler should make careful selection of process because processes can be described as either -
1. I/O-bound Process
Here process spends more time doing I/O operation than doing computations and hence many short CPU
bursts. In this type of process ready queue will almost always be empty
2. CPU-bound Process
Here process spends more time doing computations than doing I/O operation and hence few very long CPU
bursts. In this type of process device queue will almost always be empty.
So Long term scheduler should select a good process mix of I/O-bound and CPU-bound processes
Some time-sharing systems have medium-term scheduler, which is an intermediate level of scheduling.
This is required because in few systems long term scheduler is not required. (Figure 3.4).
a. The scheduler removes processes from memory and thus reduces the degree of
multiprogramming.
b. Later, the process can be reintroduced into memory, and its execution can be continued
where it left off. This scheme is called swapping. Swapping is required to improve the
process.
c. The process is swapped out, and is later swapped in, by the medium term scheduler .
29
Prof. Veena ISE SCE
Module 1 Operating System
Introduction to OS
Disadvantages:
1. Context-switch time is pure overhead, because the system does no useful work
while switching.
2. Context-switch times are highly dependent on hardware support.
30
Module 1 Operating System
Introduction to OS
OS identifies processes by pid (process identifier), which is typically an integer-number.
A process needs following resources to accomplish the task:
→ CPU time
→ memory and
→ I/O devices.
Child-process may
→ get resources directly from the OS or
→ get resources of parent-process. This prevents any process from overloading the
system. Initialization data will also be passed to the child process from parent process.
Two options exist when a process creates a new process:
1. The parent & the children execute concurrently.
2. The parent waits until all the children have terminated.
Typically, the exec() system-call is used after a fork() system-call by one of the two processes to
replace the process's memory-space with a new program. The parent can issue wait() system-
call to move itself off the ready-queue. (Fig 3.6)
31
Module 1 Operating System
Introduction to OS
Fig 3.5 UNIX program to create new process
→ A process can cause the termination of another process via TerminateProcess() system-call.
→ Users could arbitrarily kill the processes.
1. A process is independent if the process cannot affect or be affected by the other processes.
Here process does not share data with other processes.
2. A process is co-operating if the process can affect or be affected by the other processes and
the process shares data with other processes.
→ CPUs or
→ I/O channels.
➢ Modularity
Divide the system-functions into separate processes or threads.
➢ Convenience
32
Module 1 Operating System
Introduction to OS
An individual user may work on many tasks at the same time. For ex, a user may be editing, printing,
and compiling in parallel.
#define BUFFER_SIZE 10
typedef struct {
… } item ;
Item buffer[BUFFER_SIZE] ;
int in=0, out = 0 ;
33
Module 1 Operating System
Introduction to OS
Consumer process code is –
Item nextConsumed ;
while (true) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out]
out =
(out+1)%BUFFER_SIZE;
Advantages:
1. Allows maximum speed and convenience of communication.
2. Faster because accessing data will be similar to normal memory read and write.
a link:
1. Direct or indirect communication.
2. Symmetric or asymmetric communication.
3. Automatic or explicit buffering.
3.4.2.1 Naming
Processes that want to communicate must have a way to refer to each other. They can use either direct or
indirect communication.
Direct Communication Indirect Communication
Each process must explicitly name the Messages are sent to/received
recipient/sender. from mailboxes (or ports).
Properties of a communication link: Properties of a communication link:
➢ ➢
A link is established automatically between every A link is established between a pair of processes
pair of processes that want to communicate. The only if both members have a shared mailbox.
➢
processes need to know only each other’s identity to A link may be associated with more than two
communicate. processes.
➢ ➢
A link is associated with exactly two processes. A number of different links may exist
➢
Exactly one link exists between each pair of between each pair of communicating processes.
➢
processes. send() and receive() primitives are defined as –
send(A, message) -> send msg to mailbox A
receive(A, message) -> receive msg from mailbox A
34
Module 1 Operating System
Introduction to OS
Symmetric addressing: Mailbox owned by a process:
➢ ➢
Both sender and receiver processes must name the The owner can only receive, and the user can
other to communicate. only send.
➢ ➢
send() and receive() primitives are defined as – The mailbox disappears when its owner
send(P, message) -> send msg to process P process terminates.
receive(Q, message) -> receive msg from process Q
3.4.2.2 Synchronization
Message passing may be either blocking or non-blocking also known as synchronous and
asynchronous.
3.4.2.3 Buffering
Messages exchanged by processes reside in a temporary queue. Three ways to implement a queue:
1. Zero Capacity
➢ The queue-length is zero.
➢ The link can't have any messages waiting in it.
➢ The sender must block until the recipient receives the message.
2. Bounded Capacity
➢ The queue-length is finite.
➢ If the queue is not full, the new message is placed in the queue.
➢ The link capacity is finite.
➢ If the link is full, the sender must block until space is available in the queue.
3. Unbounded Capacity
➢ The queue-length is potentially infinite.
➢ Any number of messages can wait in the queue.
➢ The sender never blocks.
2. What do you mean by cooperating process? Describe its four advantages. (6)
3. What are different categories of system programs? Explain. (6)
4. Define OS. Discuss its role from different perspectives. (7).
35
Module 1 Operating System
Introduction to OS
5. List different services of OS. Explain. (6)
6. Explain the concept of virtual machines. Bring out its advantages. (5)
7. Difference between a trap and an interrupt (2)
8. Define an operating system. Discuss its role with user and system view points. (06)
9. Give features of symmetric and asymmetric multiprocessing systems (4)
10.Briefly explain common classes of services provided by various OS for helping use for
ensuring efficient operation of system. (10)
11. Define OS. Explain its two view points (5)
12. What are OS operations? Explain (6)
13. Define Virtual machine. With diagram, explain its working. What are its benefits? (9)
16. List and explain services provided by an OS that are designed to make using computer system more
convenient for the user. (8)
17. Is separation of mechanism and policy desirable while designing an OS. Discuss with an Ex. (4)
18. With a neat diagram of VM ware architecture explain the concept of virtual machines and the main
advantage of using VM architecture. (8)
19. Differentiate between multiprogramming and multiprocessing (5)
20. Explain various functions of OS with respect to process and memory management. (5)
21. Explain any two facilities provided for implementing interacting process in programming language
and OS. (5)
36