0% found this document useful (0 votes)
20 views19 pages

Software Chp4 Notes

The document provides an overview of software types, specifically system software and application software, detailing their functions and examples. System software manages hardware operations and provides a platform for applications, while application software allows users to perform specific tasks. Additionally, it discusses various utility software, operating system functions, user interfaces, memory management, and security features.

Uploaded by

ayeshaazeem288
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views19 pages

Software Chp4 Notes

The document provides an overview of software types, specifically system software and application software, detailing their functions and examples. System software manages hardware operations and provides a platform for applications, while application software allows users to perform specific tasks. Additionally, it discusses various utility software, operating system functions, user interfaces, memory management, and security features.

Uploaded by

ayeshaazeem288
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Bahria College Karsaz

CHAPTER 4: SOFTWARE

System Software & Application Software


 Software can be broken down in to two categories, system and application software

What is system software?


 these are a set of programs which control and manage the operations of hardware
 gives a platform for other software to run
 it is required to allow hardware and software to run without problems
 provides a human-computer interface (HCI) to the user
 controls the allocation and usage of hardware resources
 System software is software essential for the operation of the computer system
 It gives users a platform to run applications and carry out tasks
 Examples of system software include:
o The operating system
o Utility software

Key Point
Human-computer interaction (HCI) is the field of study that focuses on optimizing how users
and computers interact by designing interactive computer interfaces that satisfy users’ needs.

What is application software?


 allows a user to perform specific tasks using the computer’s resources
 maybe a single program (for example, NotePad) or a suite of programs (for example,
Microsoft Office)
 user can execute the software when they require, and it is mostly not automatic
Bahria College Karsaz

 Application software (abbreviated 'apps') is software chosen by a user to help


them carry out a specific task
 Installed on top of system software and is user chosen to best suit induvial
requirements
 Common categories of application software include:
o Productivity - get things done efficiently (word processors, spreadsheets &
presentation)
o Communication - stay connected (email, browser, messaging)
o Entertainment - Watch movies, play games or listen to music

Examples
System Software
 Compiler: Translates high-level language into machine code, allowing for direct use by
a computer to perform tasks without re-compilation.
 Linker: Combines object files produced by a compiler into a single program, allowing
the use of separately written code modules in the final program.
 Device driver: Software that enables hardware devices to communicate with a
computer's operating system, without which a device like a printer would be unable to
work.
 Operating system: Software that manages basic computer functions such as
input/output operations, program loading and running, and security management, making
computers more user-friendly.
 Utility programs: Software that manages, maintains, and controls computer resources
by carrying out specific tasks, such as virus checking, disk repair and analysis, file
management, and security.

Application Software
 Word Processor: Software used for manipulating text documents, including creating,
editing, and formatting text with tools for copying, deleting, spell-checking, and
importing images.
 Spreadsheet: Organizes and manipulates numerical data using a grid of lettered
columns and numbered rows, with each cell identified using a unique combination of
columns and rows. It can calculate using formulas, produce graphs, and do modelling and
"what if" calculations.
 Database: Software used to organize, analyze, and manipulate data consisting of one or
more tables that hold records and fields. It provides the ability to query and report on data
and add, delete, and modify records in a table.
 Control and Measuring Software: A program designed to interface with sensors
and allow a computer or microprocessor to measure physical quantities and control
applications by comparing sensor data with stored data and altering process parameters
accordingly.
 Apps: Software designed to run on mobile phones or tablets, downloaded from an "App
Store" and ranging from games to sophisticated software such as phone banking.
Common examples include video and music streaming, GPS, and camera facilities.
Bahria College Karsaz

 Photo and Video Editing Software: Software that allows users to manipulate
digital photographs or videos, including changing colour, brightness, and contrast,
applying filters and other enhancements, and creating transitions between clips.
 Graphics Manipulation Software: Software that allows the manipulation of bitmap
and vector images, with bitmap graphics editors changing pixels to produce a different
image, while vector graphics editors manipulate lines, curves, and text to alter the stored
image as required.

Utility software
 Utility software is software designed to
help maintain, enhance and troubleshoot/repair a computer system
 Designed to perform a limited number of tasks
 Interacts with the computers hardware, for example, secondary storage devices
 Some utility software comes installed with the operating system
 Examples of utility software and their function are:
o Defragmentation (maintain)
o Compression (enhance)
o Encryption (enhance)
o Task manager (troubleshoot/repair)

Disc defragmentation
When a file is stored on a hard disk it is actually stored not as a whole file, but as a series of
segments. Sometimes the segments run together in sequence (see File 1) and sometimes the
segments are split up over a disk (see File 3). This is known as fragmentation.

Over time, more and more files become fragmented, as do individual files. A fragmented disk
takes longer to read from and write to, making a computer run slower.
Bahria College Karsaz

Defragmentation software takes the fragmented files and rearranges the segments so that they
run contiguously. This decreases read/write time, thereby speeding up computer performance.

Virus Checkers & Anti-Virus Software


 Virus checkers or anti-virus software are important for protecting computers from
malware.
 They should be kept up to date and run in the background to maintain their effectiveness.
 Anti-virus software checks files before they are run or loaded and compares possible
viruses against a database of known viruses.
 Heuristic checking is used to identify possible viruses that are not yet on the database.
 Infected files are put into quarantine for automatic deletion or for the user to decide.
 Anti-virus software must be updated as new viruses are constantly discovered.
 Full system scans should be carried out regularly to detect dormant viruses.

Disk Defragmentation Software


 Defragmentation software rearranges the data blocks on a hard disk drive (HDD) to store
files in contiguous sectors, reducing head movements and improving data access time.
 As an HDD becomes full, blocks used for files become scattered all over the disk surface,
making it slower to retrieve data as the HDD read-write head needs several movements to
find the data.
 When a file is deleted or extended, new data does not fill the vacant sectors immediately,
causing the files to become more scattered throughout the disk surfaces.
 A disk defragmenter rearranges the data blocks to store files in contiguous sectors
wherever possible, allowing for faster data access and retrieval.
 The defragmentation process can free up previously occupied sectors and empty some
tracks.

Backup Software
 Backup software is a utility software that helps create and manage backup copies of data
files and programs.
 Manual backups using memory sticks or portable hard drives are good practices, but
operating system backup utilities are also recommended.
 Backup utilities allow scheduling backups and only backup files if changes have been
made to them.
 There could be three file versions for total security: the current version stored on the
internal HDD/SSD, a locally backed-up copy on a portable SSD, and a remote backup on
cloud storage.
Bahria College Karsaz

Security Software
 Security software is a utility software that manages access control, user accounts, and
links to other utilities such as virus and spyware checkers.
 It also protects network interfaces using firewalls to prevent unauthorized access.
 Security software uses encryption and decryption to ensure intercepted data is unreadable
without a decryption key.
 It oversees software updates to verify legitimate sources and prevent malicious software
from being installed.
 Access control and user accounts use IDs and passwords to secure user data and prevent
unauthorized access.

Screensavers
 Screensavers display moving and still images on the monitor screen after computer
inactivity.
 They were originally developed to protect CRT monitors from 'phosphor burn'.
 Screensavers are now mostly used for customizing a device and as a part of computer
security systems.
 They automatically log out of the user after a certain period of inactivity.
 Some screensavers activate useful background tasks like virus scans and distributed
computing applications.

Device Drivers
 Device drivers translate data into a format that can be understood by the hardware device
they are associated with.
 Without the appropriate device driver, a hardware device cannot work with a computer
and may not be recognised by the operating system.
 USB device drivers contain descriptors, which include a vendor ID (VID), product ID
(PID) and unique serial number that allow the operating system to identify the device.
 Serial numbers must be unique to avoid confusion if two devices with the same serial
number are plugged into a computer simultaneously.

What is an operating system?


 An operating system (OS) is software that manages computer
hardware and provides a platform for running applications
 It provides an interface between the user and the hardware in a computer system
 It hides the complexities of the hardware from the user, for example:
o A user does not need to know 'where' on secondary storage data is kept, just
that it is saved for when they want it again
 An operating systems main functions can be divided in to eight key areas

o controlling hardware components


o providing a platform for software to run on
o providing a user interface
o multitasking facilities
o managing the computer's memory
o managing peripherals
o managing files
o managing users
Bahria College Karsaz

 Example operating systems include:

o Microsoft Windows
o Apple OS X
o Linux
o Android
o IOS

File Management
What is file management?
 File management is a process carried out by the operating system creating,
organising, manipulating and accessing files and folders on a computer system
 The OS manages where data is stored in both primary and secondary storage
 File management gives the user the ability to:
o Create files/folders
o Name files/folders
o Rename files/folders
o Copy files/folders
o Move files/folders
o Delete files/folders
 The OS allows users to control who can access, modify and delete files/folders
(permissions)
 The OS provides a search facility to find specific files based on various criteria

Handling Interrupts
What is interrupt handling?
 Interrupt events require the immediate attention of the central processing unit
 In order to maintain the smooth running of the system, interrupts need to
be handled and processed in a timely manner
 For example, if a user clicks cancel on a file conversion process, a signal is sent from
the mouse, interrupts the processor, and the operating system will trigger the
cancellation routine

User Interface
What is a user interface?
 A user interface is how the user interacts with the operating system
 Examples of user interfaces include:
o Command Line Interface (CLI)
o Graphical User Interface (GUI)
Bahria College Karsaz

VS
What is a command line interface?
 A Command Line Interface (CLI) requires users to interact with the operating system
using text based commands
 CLIs are more commonly used by advanced users
 Examples of CLIs are MSDOS (Microsoft Disk Operating System) and Raspbian (for
Raspberry Pi)

What is a graphical user interface?


 A Graphical User Interface (GUI) requires users to interact with the operating system
using visual elements such as windows, icons, menus & pointers (WIMP)
 GUIs are optimised for mouse and touch gesture input
 Examples of GUIs are Windows, Android and MAC OS

Advantages and disadvantages of user interfaces


Interface Advantages Disadvantages
Command line  Uses less system resources  Requires users to remember
(CLI)  Useful for automation of tasks commands
 Commands are often faster to type than  Typing errors are common
navigating menus  Less intuitive than GUI

Graphical  Intuitive and user-friendly  Uses more system resources


(GUI)  Requires no previous knowledge to use  Can be slower to find and execute
 Information is visual, making it easier commands
to understand  Can be frustrating when doing
repetitive tasks

Peripheral Management & Device Drivers


What is peripheral management?
 Peripheral management is a process carried out by the operating system managing
the way peripherals (hardware) interact with software
 The OS allocates system resources to peripherals to ensure efficient operation
Bahria College Karsaz

 Peripheral management makes plug-and-play (PnP) functionality


possible, automatically detecting and configuring new peripherals without the
need for manually installing device drivers or power cycling the system

What is a device driver?


 A device driver is a piece of software used to control a piece of hardware
 Peripherals require device drivers in order to be used by the operating system
 The OS has generic device drivers built in which makes basic compatibility
possible and enables plug-and-play (PnP)
 In order for hardware to be used to its maximum capacity, often a separate device
driver must be downloaded from the manufacturer
 Device drivers are OS specific and are regularly updated

Memory Management & Multitasking


What is memory management?
 Memory management is a process carried out by the operating system allocating
main memory (RAM) between different programs that are open at the same time
 The OS is responsible for copying programs and data from secondary to primary
storage as it is needed
 Programs and data require different amounts of RAM to operate efficiently and
the OS manages this process
 RAM is allocated based on priority and fairness, for example, system applications
(essential) may have a higher priority than user applications
 The OS dynamically manages the memory, adjusting allocation as needed to
maintain optimal system performance
 Memory management makes multitasking possible

What is multitasking?
 Multitasking is a process made possible by the OS simultaneously managing system
resources (memory, CPU etc) to give a user the perception of being able to use
multiple programs at the same time
 The OS splits tasks and allocates system resources based on a priority
 The CPU can only execute one instruction at a time, it can can execute billions of
them in one second.
 This makes it appear that multiple programs are running at the same time

Providing a Platform for Running Applications


 Operating systems provide a platform on which application software can run, this
is mainly by allowing software access to system resources
 For example, if a computer game has intensive graphics and online play, the operating
system will grant it access to the GPU and the network card
Bahria College Karsaz

Organisation of application layer, operating system components, and input/output

Providing System Security


What is system security?
 Operating systems provide various security features such as password-protected
system accounts, a firewall, virus scanning and file encryption
 Password-protected system accounts are a very common feature in operating systems
 System accounts can also be restricted from performing certain actions, e.g. editing
network settings, installing unapproved software, changing the account settings of
other users

User Management
What is user management?
 User management is a process carried out by the operating system enabling different
users to log onto a computer
 The OS is able to maintain settings for individual users, such as desktop backgrounds,
icons and colour schemes
 A system administrator is able to allocate different access rights for different users on a
network

Worked Example
Ella uses her computer to create artwork for a magazine
Ella makes use of system software.
One type of system software is the operating system.
Identify and describe two functions of an operating system [6]
Bahria College Karsaz

How to answer this question


 Break down the 6 marks, 1 mark each for identifying a function of the operating system.
For each function you need to make 2 points about how they work

Answer
 Memory management
 Allocates memory to programs currently in use
 Gets data from RAM
 Stores data in RAM

File management

 Creating/editing/renaming files
 Creating/editing/renaming folders
 Movement of files/folders

Hardware, Firmware & the Operating System


How does application software, the operating system and hardware communicate?
 Application software talks to the operating system, this allows it to interact with
the hardware
 The hardware processes and sends the information to the operating
system which talks directly to the applications software
 This process is repeated while application software is in use

What is firmware?
 Firmware is embedded directly in to the hardware of a device, to make them
function
 When a computer is turned on, it has to explore the ROM for its initial boot-up
instructions, these are contained in a Bootstrap loader
 The initial process is handled by the basic input/output system (BIOS) which is
known as firmware
 Once start-up is complete, instructions are sent to RAM to be processed by the
operating system
 This layer ensures that hardware devices e.g. keyboard and mouse are available and
can be communicated directly by the operating system
 Firmware translates between the hardware and the software
Bahria College Karsaz

Interrupts
What is an interrupt?
 An interrupt is a signal for the CPU to stop what it is currently doing and do
something else as a higher priority
 The CPU is in a continuous loop of carrying out the fetch-decode-execute cycle,
however there are occasions when this needs to be interrupted

How is an interrupt generated?


 An interrupt can be generated by hardware and software:
o Hardware - this is caused by a hardware device such as a hardware failure
o Software - this occurs when an application stops or requests services from the
OS
 Interrupts are added to an area called the interrupt service routine
 The interrupt service routine holds instructions that will need to be fetched, decoded
and executed to complete the commands of the interrupt
 The contents of the registers within the CPU cannot be lost by an interrupt, so
contents are copied to a reserved area in RAM called a stack
 Contents are added to the top of the stack, which will save them for later retrieval
when the interrupt is complete
 The interrupt will be executed instead of the original instructions

What are examples of hardware interrupts?


 Hardware
o power button may have been pressed
o moving the mouse
o clicking an icon to open a new program
o keyboard presses e.g. ctrl, alt, delete

What are examples of software interrupts?


 Software
o a program is not responding
o division by zero
o two processes trying to access the same memory location

Worked Example
Describe the purpose of an interrupt in a computer system. [4]
Answer

Four from:

 Used to attend to certain tasks/issues


 Used to make sure that vital tasks are dealt with immediately
 The interrupt/signal tells the CPU/processor (that its attention is required)
 A signal that can be sent from a device (attached to the computer)
 A signal that can be sent from software (installed on the computer)
 The interrupt will cause the OS/current process to pause
Bahria College Karsaz

 The OS/CPU/ISR will service/handle the interrupt


 They have different levels of priority
 After the interrupt is serviced, the (previous) process is continued
 It enables multi-tasking to be carried out on a computer
 A valid example of an interrupt e.g. ‘out of paper’ message for a printer

High level languages


The instructions that tell a computer what to do are written in machine code. Machine code is
a series of numbers, written in either binary or hexadecimal. Each number represents a
different instruction.
Key fact
High level programming languages are languages that are close to the spoken and written
language of the programmer.

Programmers find machine code difficult to learn, program in and debug. As a result, the
majority of programmers write programs in high level programming languages. These
languages are close to the spoken and written language of the programmer. For
example, Python uses 'print', ‘if’, 'input' and 'while' statements - all words from the English
language - to form instructions. In fact, instructions often look like abbreviated English
sentences.
Compare this simple Python program with its comments that are written in English:

while count < 10:


#While the value of count is less than ten
number = int(input("Type in a number"))
#Input a number
total = total + number
#Add the number to the total
count = count + 1
#Add one to the value of count
print("The total is ", total)
#Print out the total
Bahria College Karsaz

Programmers write in high level languages because they are easier to understand and are less
complex than machine code. They allow the programmer to focus on what needs to be done,
rather than on how the computer actually works.
For example, in many high level languages, to place a message on the screen, a programmer
would use the statement 'print'. The programmer might not know how the computer actually
generates the message. They just need to know how to use the 'print' statement.
High level languages have a disadvantage - they are restricted to the number of statements
built into them. If the programmer wants a program to do something, but a statement does not
exist to do so, the task cannot be done.

Commonly used high level languages


Many types of high level language exist and are in common use today, including:

 Python
 Java
 C++
 C#
 Visual Basic
 JavaScript

Source code
Any program written in a high level language is known as source code. Source code must be
translated into machine code before the computer can understand and execute it.
High level languages are known as one-to-many languages as each high level instruction is
translated into many machine code instructions.

Low level languages – machine code


Low level languages are languages that sit close to the computer's instruction set.
An instruction set is the set of instructions that the processor understands.
Two types of low level language are machine code and assembly language.
Machine code
High level languages contain commands that programmers use to instruct the computer what
to do. However, they are restricted by the limited number of commands implemented within
them. In fact, high level commands are nothing more than a series of machine code
instructions.
Machine code is the instructions that a processor understands and can act upon.

Advantages of using machine code


Writing in machine code allows programmers to do things that might not be possible in a
high level language. High level language commands are like a predefined English sentence
and machine code instructions are like predefined words. Using words as opposed to
sentences gives programmers more flexibility to do what they want - they can build their own
complex sentences or keep programs very short and simple.
For example, many high level languages do not allow the programmer to specify items
such as the screen's refresh rate. However, it is usually possible to specify this using
machine code.
Bahria College Karsaz

Disadvantages of using machine code


Machine code is notoriously difficult to write in, understand and debug, simply because it
consists of either binary or hexadecimal numbers. Instead, when programmers need direct
control, they use another type of low level language called assembly language.

Low level languages - assembly language


Assembly language sits between machine code and high level language. While high level
languages use statements to form instructions, assembly language uses mnemonics (short
abbreviations). Each mnemonic directly corresponds with a machine code instruction. As a
result, assembly language is known as a one-to-one language. Here are some examples of
mnemonics:

Mnemonic Action
LDA Loads a value from a memory address
STA Stores a value in a memory address
ADD Adds the value held in a memory address to the value held in the accumulator
SUB Subtracts from the accumulator the value held in a memory address
MOV Moves the contents of one memory address to another

In assembly language, programmers write programs as a series of mnemonics. Mnemonics


are much easier to understand and debug than machine code, giving programmers a simpler
way of directly controlling a computer.

Key fact
Assembly language uses mnemonics to represent instructions.
Writing in mnemonics is easier for programmers because they are usually brief
representations of the actual commands. They are quicker to write
than binary or hexadecimal, and it is easier to spot mistakes.
Little Man Computer (LMC) is a simulation of a very basic processor using Von Neumann
architecture. It uses an example of simple assembly language that contains a limited set of
mnemonic instructions which can be used to program simple assembly programs. LMC is
freely available on the internet for students to use.

The purpose of translators


Any program written in a high level language is known as source code. However, computers
cannot understand source code. Before it can be run, source code must first be translated into
a form which a computer understands - this form is called object code.
A translator is a program that converts source code into object code. Generally, there are
three types of translator:

 compilers
 interpreters
 assemblers
Bahria College Karsaz

Compilers
A compiler takes the source code as a whole and translates it into object code all in one go.
Once converted, the object code can be run unassisted at any time. This process is
called compilation.

Compilers have several advantages:


 Compiled programs run quickly, since they have already been translated.
 A compiled program can be supplied as an executable file. An executable file is a file that is
ready to run. Since an executable file cannot be easily modified, programmers prefer to
supply executables rather than source code.
 Compilers optimise code. Optimised code can run quicker and take up less memory space.

Compilers have several disadvantages:


 Because the source code is translated as a whole, there must be enough memory space to hold
the source code, the compiler and the generated object code. There also needs to be
temporary working space for the compiler to perform the translation. Modern systems either
have enough memory or use virtual memory to hold all the data.
 Compilers do not usually spot errors - the program has to be compiled and run before errors
are encountered. This makes it harder to see where the errors lie.
 The source code must be re-compiled every time the programmer changes the program.
 Source code compiled on one platform will not run on another - the object code is specific to
the processor's architecture.

Interpreters
An interpreter translates source code into object code one instruction at a time. It is similar to
a human translator translating what a person says into another language, sentence by
sentence, as they speak. The resulting object code is then executed immediately. The process
is called interpretation.

Interpreters have several advantages:


 Instructions are executed as soon as they are translated.
 Since instructions are executed once translated, they are not stored for later use. As a result,
interpreters require less available memory.
 Errors can be quickly spotted - once an error is found, the program stops running and the user
is notified at which part of the program the interpretation has failed. This makes interpreters
extremely useful when developing programs.

Interpreters also have several disadvantages:


 Interpreted programs run more slowly as the processor has to wait for each instruction to be
translated before it can be executed.
 Additionally, the program has to be translated every time it is run.
 Interpreters do not produce an executable file that can be distributed. As a result, the source
code program has to be supplied, and this could be modified without permission.
 Interpreters do not optimise code - the translated code is executed as it is.
Bahria College Karsaz

Integrated Development Environment (IDE)


Writing large programs can be a complex task. To help the programmer write
clear, maintainable code, various tools exist:

 editors
 run-time environments
 automatic line numbering
 error trapping
 breakpoints
 auto-suggestion
 auto-indent
 interpreters
 Translator
 Debugger
 Error Reports
 Auto-Completion and Auto-Correction
 Auto-Documenter
 Pretty Printing

o Editors: Tools where you write and edit your code. Think of it like a text editor, but with
extra features for coding.
o Run-time Environments: A place where your code runs. It helps the IDE to execute
your code and simulate how it works.
o Automatic Line Numbering: Shows line numbers next to your code, making it easier to
locate errors or reference specific parts of your code.
o Error Trapping: A tool that catches mistakes (errors) in your code as you write, helping
you find and fix them before running the program.
o Breakpoints: Points you set in your code to pause the program while it's running, so you
can check its behavior and find bugs.
o Auto-Suggestion: As you type, the IDE suggests possible code completions, helping you
write code faster and reducing mistakes.
o Auto-Indent: Automatically adjusts the indentation of your code so that it is neat and
easy to read, following coding standards.
o Interpreters: Programs that translate your code into something the computer can
understand and execute, line by line.
o Translator: Similar to an interpreter, but it translates the entire code at once (usually into
machine code or another language) for execution later.
o Debugger: A tool that helps you find and fix bugs by allowing you to step through your
code, see what's happening, and understand errors.
o Error Reports: When something goes wrong, error reports help explain what the
problem is, so you can fix it quickly.
o Auto-Completion and Auto-Correction: Features that automatically complete your
code or correct small mistakes as you type, saving time and effort.
o Auto-Documenter: A tool that automatically generates documentation for your code,
explaining what different parts of your program do.
o Pretty Printing: A feature that formats your code to look neat and organized, making it
easier to read and understand.
Bahria College Karsaz

Some (or all) of these tools are often gathered together in software known as an integrated
development environment (IDE).
Many brands of IDE exist:

 Python comes with a simple IDE called IDLE.


 Eclipse and Netbeans are two fully featured IDEs often used for programming in Java,
JavaScript and HTML.
 Visual Studio is an IDE largely designed to help programmers in Visual Basic and C#.

The choice of IDE is down to the personal preference of the programmer. Some programmers
enjoy the variety of tools offered by some IDEs, while others prefer a simpler, bare-bones
approach.

Key fact
IDEs help a programmer to produce error-free, maintainable code.

Editors
Editors are software which allow programmers to write and edit code. Editors are often fairly
simple, but usually offer facilities such as:

 automatic line numbering


 colour coding
 auto-correct
 auto-suggestion
 auto-indent
 pretty printing

These tools help to improve the readability of code. However, they do not usually help to
identify errors.

Runtime environments
A runtime environment (RTE) is special software that allows a program to run on a computer,
even if it is not designed to run on it. It works on different platforms, meaning a program can
be developed on different systems and still work.
An RTE creates a virtual machine in order to run a program. A virtual machine is
an emulation of a computer system that can be made to run on a different computer. This
means a programmer can concentrate on program development rather than understanding
how different computer systems actually work.
A common RTE is the Java Runtime Environment. This RTE allows Java programmers to
design programs on one platform, but to be able to run them on many.

Debugging tools
Debugging tools help programmers to locate and fix errors:

 Breakpoints enable a program to be paused or stopped at predetermined points. The


programmer can then examine different parts of the running program, such as the values held
in variables or the status of conditions. This information tells the programmer whether or not
the program is working as expected.
Bahria College Karsaz

 Variable tracing lets the programmer see the changing values of variables as the program
runs. Again, this enables the programmer to check if the program is functioning as expected.
 Some IDEs pinpoint exactly where a syntax error occurs, or at which line in a program an
error is generated. This is known as error trapping.

Key fact

Most IDEs include editors, runtime environments and debugging tools.

BIOS, Firmware, Bootstrap Loader, OS, EEPROM, CMOS


When you turn on your computer, it goes through a process that gets everything ready for you
to start using it. Here's a simple breakdown of how it works:

1. BIOS (Basic Input/Output System):

 The very first thing that runs when you turn on the computer is the BIOS.
 BIOS is like the "startup manager" of your computer. It checks if all the parts of the
computer, like the keyboard, hard drive, and screen, are working properly.
 It also makes sure that the computer is ready to load the main system (the operating
system, like Windows or MacOS).

2. Firmware:

 Firmware is special software that is stored in the computer's hardware, such as the
BIOS.
 It’s like a tiny brain inside the hardware, telling it how to work and what to do when
the computer turns on.

3. Bootstrap Loader:

 After the BIOS checks everything, it looks for the bootstrap loader. This is a small
program that tells the computer where to find the Operating System (OS) on the hard
drive (or SSD).
 The bootstrap loader is like a "starter engine" that kicks off the process of loading
the OS into the computer.

4. Operating System (OS):

 Once the bootstrap loader finds the OS, it starts the Operating System (like Windows
or macOS).
 The OS is the big program that allows you to use the computer, run apps, browse the
internet, and much more. It’s the main thing that lets you interact with your computer.

How They Work Together:

 BIOS checks everything and starts the bootstrap loader.


 The bootstrap loader then loads the Operating System.
 The Operating System takes over and lets you start using the computer.
Bahria College Karsaz

EEPROM (Electrically Erasable Programmable Read-Only Memory):

 EEPROM is a special kind of memory chip where the BIOS and firmware are stored.
It’s like a small storage area that keeps the important startup instructions safe, even if
the computer is turned off.
 The BIOS can be updated (or "flashed") if needed using EEPROM.

CMOS (Complementary Metal-Oxide-Semiconductor):

 CMOS is another kind of memory that stores the computer’s settings, like the time
and date, and keeps them even when the computer is turned off.
 The CMOS uses a small battery (like a watch battery) to keep these settings saved.
 When you turn on the computer, BIOS reads the settings from the CMOS to make
sure everything is correct.

Simple Flow of What Happens:

1. Power on: You turn on the computer.


2. BIOS: BIOS runs first, checking everything is good.
3. Bootstrap Loader: BIOS finds and runs the bootstrap loader.
4. Operating System: The bootstrap loader loads the operating system (like Windows).
5. Your Computer Is Ready: Now you can use the computer, open apps, play games,
etc.

To put it all together:


BIOS is the "first responder" when you turn on the computer. It gets the computer ready, and
the bootstrap loader helps find and start the Operating System. The firmware (stored in
EEPROM) helps everything run smoothly, and CMOS saves the computer settings, like
time and date.

This whole system works together to make sure your computer is ready to use as soon as you
turn it on.

You might also like