4.6.1.1 Relationship between hardware and software

A computer system is made up of two parts:

  • Hardware
  • Software

Hardware is something that can be physically picked up/touched. Software is the applications and programming instructions which tell your hardware what to do.

Without software, hardware is very limited. Without hardware, software is next to useless.

Only with both, can the potential be fully realised.

What to consider when buying new software?

  • What sort of tasks will the software be used for?
  • How much does the software cost and how much money is available to buy it?
  • What operating system does the software need? Software will only work on the operating system it was designed for
  • What are the minimum system requirements for the software?

    • Every application package has a minimum set of hardware requirements such as how much hard disk space and memory are needed
  • Will the software be used on a single computer or on a network?

    • If the software is going to be used on a network, a special version of it may be needed
  • How much support is available for users?

    • Online help
    • Telephone support
    • Internet Sites
    • Printed Manuals
  • How easy is it to install?

    • Can an ordinary person run this or will an IT expert be needed to do it?

4.6.1.2 Classification of software

There are two types of software

  • System Software
  • Application Software

System software is the operating system, utility programs and drivers. It is effectively the 'software platform' for application software.

Application software is our "every day" software such as a word processing program, graphics maniplulation programs and web browsers.

Application Software

Application software runs 'on top' of the system software that supports it. For example, a game may use OpenGL to send instructions to the display drivers to display an image. Types of application software include:

  • General purpose application software

    • Software that is not written for any particular type of business
    • Word Processors
    • Spreadsheet Programs
    • It is relatively cheap
    • Readily available
    • Great support
    • Less bugs as more people have tested the software
  • Special purpose application software

    • Software written for a defined purpose
    • Accountancy software
    • SIMS
  • Bespoke application software

    • Written when a company requires a piece of software to peform a very specific task
    • Website backend
    • Expensive to develop
    • Hard to debug
    • Does not have un-necessary parts
    • Once it's working, they own the rights to it

System Software

There are many types of system software

  • Operating System

    • User interface
    • Kernel
    • Device Drivers
    • System Utilities

Operating System

The operating system provides an interface between the user and the hardware. They are said to provide "a virtual machine" which hides the complexities of the hardware from the user. The user doesn't need to understand where about on the disk a file is being saved to. Just that they have clicked the save button. The OS does the rest.

Operating systems run some of these tasks:

  • Interface

    • Provides a user interface so it is easy to interact with the computer
  • Manages the CPU

    • Runs applications and executes and cancels processes
  • Multi-tasks

    • Allows multiple applications to run simultaneously
  • Manages Memory

    • Transfers programs into and out of memory
    • Allocates free space between programs
    • Manages virtual memory
  • Manages peripherals

    • Opens, closes and writes to peripheral devices such as external storage
  • Organises

    • Creates a file system to organise files and directories
  • Security

    • Provides security through user accounts and passwords
  • Utilities

    • Provides tools for managing and organising hardware

4.6.1.4 Role of an operating system

Kernel

The kernel is a computer program that is the core of a computer's operating system, with complete control over everything in the system. It is the first program loaded on start-up. It handles the rest of start-up as well as IO requests from software, translating them into data-processing instructions for the Central Processing Unit. It handles memory and peripherals like keyboards, monitors, printers, speakers.

Memory Manager

The OS allocates memory between the different programs that are open at the same time. Programmers and users do not need to know where in memory data is held - It is the purpose of the operating system to do this.

The memory manager gives each program a private memory area in which to run It is also responsible for moving programs between RAM and virtual memory.

Managing CPU time

The CPU may only have 1 core. In order to allow multi-tasking, the OS shares time between processes to create the illusion of multi-tasking

Managing the CPU

The OS is used to run programs by clicking on an icon, selecting the program from a menu, or typing in an instruction in the command line. When the OS runs a piece of software, it has to find the program files on the storage device, load them into the main memory, and instruct the CPU to start executing the program from the beginning. In each case, the OS performs the same sequence of steps:

  1. The program code is found on the storage device
  2. A section of RAM is reserved for the program and space is allocated for the programs data
  3. The program code is copied from storage into the reserved space in the memory
  4. The CPU program counter is set to the memory location of the first instruction in the program, and execution begins

Multitasking

Multi-tasking allows the user to perform multiple computer tasks simultaneously, via scheduling the priority of processes. By giving the processor a small time slice for each task, this means all tasks appear to work simultaneously. To the user, it appears that we can multitask. In reality, resources such as memory and the processor are being shared between tasks.

There are different types of scheduling

  • Round robin
  • First Come First Served
  • Shortest Job First
  • Shortest time remaining
  • Multi-level

The scheduler ensures that the computer:

  • Processes as many tasks as possible in a given time
  • Makes maximum use of the CPU time
  • It will try to minimise latency between the action and the reaction
  • Makes use of resources
  • Can prioritise jobs
  • No task is left uncompleted for too long
  • Can alter priorities

The scheduler is part of the operating system within the kernel.

Multi-user Operating Systems

A multi-user operating system allows multiple clients to access a more powerful computer via a network. This may be via a thin client. The thin client only acts as a terminal to access the larger computer.

Multi-user operating systems:

  • Can allocate resources between users
  • Can give each user a workspace
  • Works out how to efficiently distribute CPU time between users
  • Allows for updates in software and security updates to be easily updated on a single computer

Distributed Operating Systems

A distributed operating system is an operating system that controls multiple computers simultaneously to perform a single task. Each computer contains it's own OS, and a group of computers are a 'cluster'.

One use of such an operating system is for rendering video. A ficticious media company may use such an operating system to render a video in a shorter time span, as the workload is distributed.

Real Time Operating Systems (RTOS)

A real time operating system is an operating system which handles data in real time. For example, a set of traffic lights will need an RTOS to handle when a pedestrian presses the button.

Such an interruption is called an interrupt. When multiple interrupts occur simultaneously, the interrupts can be prioritised.

Uses case scenarios include:

  • Air Traffic Control
  • Robotics
  • Weapon guidance systems
  • Medical diagnostic systems

Embedded Operating Systems

Embedded Operating systems are bespoke operating systems that only performs a single category of tasks. All the software is integrated and designed for the one specific board.

Scenarios where such an OS is used include:

  • POS systems
  • ATM systems
  • Set-top box
  • DVD player
  • Cars
  • Television
  • Network Switch

Batch Operating Systems

A batch operating system processes tasks in 'batches'. Data is collected over time, and processed all in one go.

Such an operating system is required for repetitive data processing.

For example, a monthly kitty cat litter clean up service will need to process their invoices at the end of each month. This will need to be processed at the end of the month, as customers could purchase any time during the month.

Batch processing is different to real time processing.

Online Operating System

An online operating system is an operating system that requires the use of online software. Google Chrome's ChromeOS is such an example.

Programs are not stored locally, but are instead found online.

Peripheral Management

Operating systems manage the way in which hardware interacts with the software A peripheral is a piece of hardware that is not connected directly to the CPU, such as a keyboard, a mouse, a HDD, etc. An OS manages all of these peripherals.

On Linux, one may use lspci and lsusb to view some of the peripheral devices connected to the PCI lanes and the USB bus.

Drivers

Drivers are a piece of software used to control a piece of hardware. Drivers allow a peipheral device to be connected to a computer and it be used by an Operating System.

  • You may get graphics cards, mouse, sound card, NIC, printers, camera, etc.
  • Drivers are OS specific, and are regularly updated by companies

File Management

Like memory management, the Operating System must identify where files are stored for long time storage on the storage medium. The user does not need to know the track, sector and/or surface address, but the Operating System does in order to accurately locate a file on the hard drive.

Permissions

The Operating System also keeps permissions, which keeps the computer and files stored on it safe. Each user is given certain permissions to perform actions.

A student named Alex may have their user home directory with alex:student permissions. All teachers will be able to read the /home/alex directory, while other students cannot.

Examples of the most typical permissions include:

  • Read
  • Write
  • Execute: chmod +x file.sh

User Interface

A user interface is the method of controlling a computer.

Command Line Interface

Text Based

Examples include:

  • DOS
  • Windows Command Prompt
  • GNU Bash
+ Much more powerful + Uses less RAM + Does not use much processing to draw the graphics + Low resolutions supported + Heavily documented (with `man` command on Linux, or `/?`, `-?`, `--help` flags) - Can be confusing - There are a lot of commands to remember. - Commands must be typed correctly - Mistyping will require hours of arrow button pressing fun

Graphical User Interface

Contains windows, icons, menus and pointers (WIMP)

Examples include:

  • Microsoft Windows
  • KDE Plasma 5
  • GNOME 3
  • Unity
+ A WIMP interface is easy to interact with + No complicated commands to remember + Icons can represent what an action may perform - Requires more processing power to render graphics instead of text

Menu Driven Interface

A menu driven interface is an interface designed with a hierachy of menus.

+ Extemely easy to use + No commands to learn + Menu interfaces can be visual or spoken + Menus are labelled with intuitive commands + Low processing power required - May have heavily nested menus and hard to navigate - May be hard to use if designed badly

Speech Interface

A speech driven interface which recognises what the user says, and performs an action based on the input.

+ No user training required + Flexible + Remote input method + Suitable for handicapped people - Unreliable - Requires voice recognition software, which is hard to program

Questions

  1. Explain what is meant by system software
  2. Explain what is meant by application software
  3. What is general purpose software and discuss the pros and cons associated to it
  4. What is special purpose application software and discuss the pros and cons associated to it
  5. What is bespoke application software and discuss the pros and cons associated to it
  6. Complete the attributes column of the table below
Type Use Attributes Why this type of software is more appropriate for use specified compared to the alternatives
Word processing application Writing reports, memos, letters to customers
Spreadsheet application Keeping simple company accounts, calculating employee commission payments, simple stock control system, modelling
Database application Keeping customer records, sales records, appointments system
Desktop publishing application Creating leaflets, posters, business cards
Presentation software Creating presentations to show to customers or staff
Graphics application Manipulating images that can be used at home, school or a business
Web design application Creating personal or business websites