List five services provided by an operating system. Explain how each
provides convenience to the users. Explain also in which cases it would
be impossible for user-level programs to provide these services.
Answer:
a. Program execution. The operating system loads the contents (or
sections) of a file into memory and begins its execution. A userlevel
program could not be trusted to properly allocate CPU time.
b. I/O operations. Disks, tapes, serial lines, and other devices must
be communicated with at a very low level. The user need only
specify the device and the operation to perform on it, while the
system converts that request into device- or controller-specific
commands. User-level programs cannot be trusted to access only
devices they should have access to and to access them only when
they are otherwise unused.
c. File-systemmanipulation. There aremany details in file creation,
deletion, allocation, and naming that users should not have to perform.
Blocks of disk space are used by files and must be tracked.
Deleting a file requires removing the name file information and
freeing the allocated blocks. Protections must also be checked to
assure proper file access. User programs could neither ensure adherence
to protection methods nor be trusted to allocate only free
blocks and deallocate blocks on file deletion.
d. Communications. Message passing between systems requires
messages to be turned into packets of information, sent to the network
controller, transmitted across a communications medium,
and reassembled by the destination system. Packet ordering and
data correction must take place. Again, user programs might not
coordinate access to the network device, or they might receive
packets destined for other processes.
e. Error detection. Error detection occurs at both the hardware and
software levels. At the hardware level, all data transfers must be
inspected to ensure that data have not been corrupted in transit.
All data on media must be checked to be sure they have not
changed since they were written to the media. At the software
level, media must be checked for data consistency; for instance,
whether the number of allocated and unallocated blocks of storage
match the total number on the device. There, errors are frequently
process-independent (for instance, the corruption of data on a
disk), so there must be a global program (the operating system)
that handles all types of errors. Also, by having errors processed
by the operating system, processes need not contain code to catch
and correct all the errors possible on a system.