Program Execution
The purpose of a computer systems is to allow the user to
execute programs. So the operating systems provides an
environment where the user can conveniently run programs.
The user does not have to worry about the memory allocation
or multitasking or anything. These things are taken care of
by the operating systems.
Running a program involves the allocating and deallocating
memory, CPU scheduling in case of multiprocess. These
functions cannot be given to the user-level programs. So
user-level programs cannot help the user to run programs
independently without the help from operating systems.
I/O Operations
Each program requires an input and produces output. This
involves the use of I/O. The operating systems hides the
user the details of underlying hardware for the I/O. All
the user sees is that the I/O has been performed without
any details. So the operating systems by providing I/O
makes it convenient for the users to run programs.
For efficiently and protection users cannot control I/O so
this service cannot be provided by user-level programs.
File System Manipulation
The output of a program may need to be written into new
files or input taken from some files. The operating systems
provides this service. The user does not have to worry
about secondary storage management. User gives a command
for reading or writing to a file and sees his her task
accomplished. Thus operating systems makes it easier for
user programs to accomplished their task.
This service involves secondary storage management. The
speed of I/O that depends on secondary storage management
is critical to the speed of many programs and hence I think
it is best relegated to the operating systems to manage it
than giving individual users the control of it. It is not
difficult for the user-level programs to provide these
services but for above mentioned reasons it is best if this
service s left with operating system.
Communications
There are instances where processes need to communicate
with each other to exchange information. It may be between
processes running on the same computer or running on the
different computers. By providing this service the
operating system relieves the user of the worry of passing
messages between processes. In case where the messages need
to be passed to processes on the other computers through a
network it can be done by the user programs. The user
program may be customized to the specifics of the hardware
through which the message transits and provides the service
interface to the operating system.
Error Detection
An error is one part of the system may cause malfunctioning
of the complete system. To avoid such a situation the
operating system constantly monitors the system for
detecting the errors. This relieves the user of the worry
of errors propagating to various part of the system and
causing malfunctioning.
This service cannot allowed to be handled by user programs
because it involves monitoring and in cases altering area
of memory or deallocation of memory for a faulty process.
Or may be relinquishing the CPU of a process that goes into
an infinite loop. These tasks are too critical to be handed
over to the user programs. A user program if given these
privileges can interfere with the correct (normal)
operation of the operating systems.