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.