System Software

Operating system: a software platform that provides facilities for programs to be run which are of benefit to a user

Operating system activities

User- system interface A user interface is needed to allow the user to get the software and hardware to do something useful. An operating system should provide at least the following for user input and output:

• a command-line interface

• a graphical user interface (GUI).

Program-hardware interface

Program development tools associated with a programming language allow a programmer to write a program without needing to know the details of how the hardware, particularly the processor, actually works

Resource management

Process: a program that has begun execution

The resource management provided by the operating system aims to achieve optimum efficiency in computer system use. The two most important aspects of this are:

• scheduling of processes

 • resolution of conflicts when two processes require the same resource

Memory management

There are three important aspects of memory management:

  • Memory protection ensures that one program does not try to use the same memory locations as another program.
  •  The memory organization scheme is chosen to achieve optimum usage of a limited memory size, for example, virtual memory involving paging or segmentation.
  • Memory usage optimization involves decisions about which processes should be in main memory at any one time and where they are stored in this memory

Device management

Every computer system has a variety of components that are categorized as ‘devices’. Examples include the monitor screen, the keyboard, the printer and the webcam. The management of these requires:

  • installation of the appropriate device driver software
  • control of usage by processes.

File management

Three major features here are the provision of:

• file naming conventions

• directory (folder) structures

• access control mechanism

Security management

There are several aspects of security management which include:

  • provision for recovery when data is lost
  •  prevention of intrusion
  •  ensuring data privacy

Hard disk formatter and checker

A disk formatter will typically carry out the following tasks:

• removing existing data from a disk that has been used previously

• setting up the file system on the disk, based on a table of contents that allows a file recognized by the operating system to be associated with a specific physical part of the disk

• partitioning the disk into logical drives if this is required.

Backup software

A safer and more reliable approach is to have a backup utility program do this for you. You can still use the memory stick to store the backed -up data but the utility program will control the process. In particular, it can do two things:

• establish a schedule for backups

• only create a new backup fi le when there has been a change.

File compression

A file compression utility program can be used as a matter of routine by an operating system to minimize hard disk storage requirements

Virus checker

A virus-checking program should be installed as a permanent facility to protect a computer system

 Language translators

Assemblers

If a programmer has decided to write a program, or perhaps a procedure, in assembly language there is a need for a program to translate this into machine code. The program needed is called an assembler. If the program was written in a very simple form the conversion would require straight forward conversion of the instructions written in mnemonic form to the machine code version. However, in most instances more is required.

Compilers and interpreters

The starting point for using either a compiler or an interpreter is a file containing source code, which is a program written in a high-level language.