126.96.36.199 Relationship between hardware and software
A computer system is made up of two parts:
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?
188.8.131.52 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 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
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
There are many types of system software
- User interface
- Device Drivers
- System Utilities
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:
- Provides a user interface so it is easy to interact with the computer
Manages the CPU
- Runs applications and executes and cancels processes
- Allows multiple applications to run simultaneously
- Transfers programs into and out of memory
- Allocates free space between programs
- Manages virtual memory
- Opens, closes and writes to peripheral devices such as external storage
- Creates a file system to organise files and directories
- Provides security through user accounts and passwords
- Provides tools for managing and organising hardware
184.108.40.206 Role of an operating system
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.
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:
- The program code is found on the storage device
- A section of RAM is reserved for the program and space is allocated for the programs data
- The program code is copied from storage into the reserved space in the memory
- The CPU program counter is set to the memory location of the first instruction in the program, and execution begins
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
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
- 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
- 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.
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
lsusb to view some of the peripheral devices connected to the PCI lanes and the USB bus.
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
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.
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
All teachers will be able to read the
/home/alex directory, while other students cannot.
Examples of the most typical permissions include:
chmod +x file.sh
A user interface is the method of controlling a computer.
Command Line Interface
- Windows Command Prompt
- GNU Bash
Graphical User Interface
Contains windows, icons, menus and pointers (WIMP)
- Microsoft Windows
- KDE Plasma 5
- GNOME 3
Menu Driven Interface
A menu driven interface is an interface designed with a hierachy of menus.
A speech driven interface which recognises what the user says, and performs an action based on the input.
- Explain what is meant by system software
- Explain what is meant by application software
- What is general purpose software and discuss the pros and cons associated to it
- What is special purpose application software and discuss the pros and cons associated to it
- What is bespoke application software and discuss the pros and cons associated to it
- 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|