Software
Software
Firmware
Firmware is a type of computer software. It provides the low level control
needed for a particular piece of hardware to work correctly.
We call this firmware the BIOS (basic input/output system), or the bootloader.
When you power up the computer, it’s job is to provide enough hardware
functionality to locate the OS on the hard disk and begin loading it into
memory.
Once enough of the OS is loaded, it can take control of the computer and
continue to load the remainder of itself.
In most computers the firmware/BIOS is no longer needed now until the next
boot-up.
Finally, any application software that you open is run on top of the OS, using
device drivers as necessary.
1|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
However, on other common hardware devices (e.g. dash-cam, router etc) you
may be asked to download and install a firmware update from time to time.
When updating firmware you must make sure the process is uninterrupted.
Any issues part way through a firmware installation could cause it to corrupt
and the device may become permanently unusable.
Computer programs can be written in high and low level languages, depending
on the task and the hardware being used.
So, what’s the difference between high level language and low level language?
High level languages are written in a form that is close to our human language,
enabling to programmer to just focus on the problem being solved.
These programmer friendly languages are called ‘high level’ as they are far
removed from the machine code instructions understood by the computer.
2|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
Advantages
Our Translators page explains how high-level languages are translated into
machine code.
Low level languages are used to write programs that relate to the specific
architecture and hardware of a particular type of computer.
They are closer to the native language of a computer (binary), making them
harder for programmers to understand.
Assembly Language
Machine Code
Assembly Language
Few programmers write programs in low level assembly language, but it is still
used for developing code for specialist hardware, such as device drivers.
3|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
Advantages
Our Translators page explains how low-level languages are translated into
machine code.
Machine Code
Interrupts
A key feature of any operating system is the ability to handle interrupts.
To learn more about operating systems, visit our operating systems page.
What is an interrupt?
The interrupt signal causes the operating system to temporarily stop what it is
doing and ‘service’ the interrupt.
The interrupt handler is the part of the operating system which is responsible for
dealing with interrupt signals.
The interrupt handler prioritises interruptions as they are received, placing them
into a queue as necessary.
4|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
For every interruption, the current task needs to be stopped, with it’s status
saved (so it can resume later).
Examples of interrupts
Here are some examples of the causes of interrupts. Note that not all need any
intervention from the user.
Multitasking
This ‘time sharing’ is essential as in reality a processor can only handle one
process at a time.
Operating System
5|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
Most general purpose computers (including smartphones and tablets) will have
an operating system to manage the running of other programs and control the
system’s inputs and outputs.
Operating systems usually provide a graphical user interface (GUI) to help users
to interact with the computer, however successful operating systems can also
function from a command line interface (CLI).
Our User Interface Design page explains all about a variety of interfaces.
Microsoft Windows
Linux
iOS
Mac OS
Andriod
6|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
User interface
A user interface provides a way for the user to interact with the computer.
Without it, most computers would be too difficult for the average person to use.
The operating system is responsible for controlling all the devices connected to
the computer. It tells them how to interact and operate correctly.
Running of software
7|Page
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
Processor management
When software is opened, the OS finds it and loads it into memory (RAM).
Several programs can be stored in RAM at the same time, but the processor can
only process one at a time.
Through the use of regular interruption signals, the OS can prioritise and juggle
the requests made to the processor.
This gives the illusion that the CPU is actually dealing with more than one
program or task at once (multitasking).
Errors are spotted and usually dealt with without needing to alert the user.
Memory management
It keeps track of memory usage, and decides how much should be given to each
program.
File management
The OS is also responsible for the naming, sorting, deleting, moving and
copying of files (at the request of the user).
Security
The operating system is responsible for the creation and application of user
accounts and passwords.
The device driver software sits between the hardware device and the operating
system.
for software creators to know and program the instructions required to operate
every make and model of a device.
Without the correct driver, a hardware component may not work correctly, or
even at all.
Translators
Computers only understand machine code (binary), this is an issue
because programmers prefer to use a variety of high and low-level programming
languages instead.
To get around the issue, the high-level and low-level program code (source
code) needs to pass through a translator.
A translator will convert the source code into machine code (object code).
There are several types of translator programs, each able to perform different
tasks.
Compiler
10 | P a g e
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
Once compiled (all in one go), the translated program file can then be directly
used by the computer and is independently executable.
Compiling may take some time but the translated program can be used again
and again without the need for recompilation.
An error report is often produced after the full program has been translated.
Errors in the program code may cause a computer to crash. These errors can
only be fixed by changing the original source code and compiling the program
again.
If you need to learn more about high-level languages, visit our Languages page.
Interpreter
Interpreter programs are able to read, translate and execute one statement at a
time from a high-level language program.
The interpreter stops when a line of code is reached that contains an error.
Interpreters are often used during the development of a program. They make
debugging easier as each line of code is analysed and checked before execution.
Interpreted programs will launch immediately, but your program may run
slower then a complied file.
11 | P a g e
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
If you need to learn more about high-level languages, visit our Languages page.
Assembler
Once assembled, the program file can be used again and again without re-
assembly.
If you need to learn more about low-level languages, visit our Languages page.
Summary of translators
12 | P a g e
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
There are many types of user interfaces, each with their own advantages and
disadvantages. Some are outlined below.
13 | P a g e
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
Advantages of a GUI
Disadvantages of a GUI
A command line interface allows the user to enter text commands into the
computer. The computer responds with text based results.
Advantages of a CLI
Disadvantages of a CLI
Can be difficult to learn and use as you have to know all of the text
commands.
Easy to make errors.
Dialogue Interface
15 | P a g e
CIE(COMPUTER SCIENCE) MOE KHIN MAR LAY ONLINE CLASS SOFTWARE
16 | P a g e