KEMBAR78
Computer Science Software Notes For IGCSE 0478 | PDF | Graphical User Interfaces | Operating System
0% found this document useful (0 votes)
54 views7 pages

Computer Science Software Notes For IGCSE 0478

The document provides an overview of software types, including system and application software, and details the functions of operating systems such as memory management, security management, and user management. It also covers programming languages, differentiating between high-level and low-level languages, and explains the role of translators and Integrated Development Environments (IDEs) in software development. Additionally, it discusses interrupts and their handling in computing systems.

Uploaded by

mohd.ashaz21
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)
54 views7 pages

Computer Science Software Notes For IGCSE 0478

The document provides an overview of software types, including system and application software, and details the functions of operating systems such as memory management, security management, and user management. It also covers programming languages, differentiating between high-level and low-level languages, and explains the role of translators and Integrated Development Environments (IDEs) in software development. Additionally, it discusses interrupts and their handling in computing systems.

Uploaded by

mohd.ashaz21
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/ 7

Computer Science Notes

Chapter 4 - Software

Contents:
●​Types of software
●​Operating Systems(OS)
●​Running of applications
●​Interrupts
●​Types of programming languages
●​Translators
●​IDEs
4.1.1 - types of software
2 types of software:
●​ System software
○​ These are programs that allow the hardware to run properly and
allow the user to communicate with the computer.
○​ Key features:
■​ a set of programs to control and manage the operation of the
computer hardware
■​ provides a platform on which other software can run
■​ required to allow hardware and software to run properly
■​ provides a human-computer interface(HCI)
■​ controls the allocation and usage of hardware resources
○​ Examples include operating systems, compilers, linkers, device
drivers, and utility software.
●​ Application software
○​ These are programs that allow the user to do specific tasks
○​ Key features:
■​ used to perform applications on a computer
■​ enables 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)
■​ The user can execute the software when they require
○​ Examples: apps, graphics software, photo and video editing
software, games, word processors, spreadsheets, databases, etc.
●​ Types of utility software
○​ anti-virus software – software that quarantines and deletes files or
programs infected by a computer virus; the software can run in the
background or be initiated by the user
○​ defragmentation software – software that reorganises sectors on
an HDD by rearranging blocks of data so that they are contiguous
○​ security software - software that manages access control, user
accounts, and other utilities such as virus and spyware checkers
○​ screensaver – software that supplies a still or moving image on a
monitor if a computer has been inactive for a while
○​ device driver – software that communicates with the operating
system and translates data into a format understood by the device
○​ back-up software – software that makes copies of files onto other
storage media in case the original files are corrupted or deleted
4.1.2 - OS(Operating systems)
●​ operating system – software that provides an environment in which
applications can run and also provides an interface between the
computer and the human operator- e.g. iOS, Android, Linux, etc.
●​ Functions of an operating system:
a.​ HCI(Human Computer Interface) - an interface supplied by the
operating system to ‘hide’ the complexities of the software and
hardware from the human user
■​ CLI(Command Line Interface) - uses commands
■​ GUI(Graphical User Interface) - uses WIMP or post-WIMP
●​ WIMP(Windows icons menu and pointing device) –
an interface that uses a pointing device such as a
mouse to select options from screen icons or a menu
●​ post-WIMP – a modern touch screen interface system
that allows actions such as pinching and rotating
Interface Advantages Disadvantages

CLI ●​ Uses less memory ●​ User needs to learn


●​ User can communicate commands
directly with computer ●​ Commands need to be
●​ User is unrestricted to typed in precisely, which is
pre-determined options prone to errors

GUI ●​ User doesn’t need to ●​ Uses up more memory


learn commands than CLI
●​ User-friendly ●​ Limited to a set number of
●​ Easier to understand options on the screen
b.​ memory management – the part of an operating system that
controls memory
■​ Allows data to be moved between RAM and HDD/SSD
■​ Keeps track of memory locations
■​ Carries out memory protection
c.​ security management – the part of an operating system that
ensures the integrity, confidentiality and availability of data
■​ OS updates
■​ Anti-virus software updates
■​ Password protection
■​ File encryption
■​ Firewalls
d.​ hardware management – the part of an operating system that
controls all input and output devices; it is made up of sub-systems
such as printer management
■​ Communicates with I/O devices through device drivers
■​ Translates PC data into a language that I/O devices can
understand
■​ Ensures each I/O device has a priority
e.​ file management – part of an operating system that manages files
in a computer (for example, the ability to create, delete, copy, open,
close and rename files)
f.​ interrupt handling - see 4.1.4
g.​ platform for running applications - see 4.1.3
h.​ multitasking – a function that allows a computer to process more
than one task/process at a time
■​ To ensure multitasking operates correctly,
●​ Resources are allocated to a process for a limited time
●​ Processes can be interrupted while they are running
●​ Processes are given priority over other processes
i.​ user management - a process carried out by the operating system,
enabling different users to log onto a computer
■​ OS can maintain the settings of each user
■​ System administrators can create, delete, give permissions
to, and oversee these accounts

4.1.3 - Running of applications


●​ A computer starts up with the help of a bootstrap loader – a small
program in the EEPROM that is used to load other programs to correctly
‘start-up’ a computer system
●​ EEPROM – stands for electronically erasable programmable ROM
●​ This is handled by the BIOS(Basic Input/Output system), a.k.a. firmware
●​ firmware – a program that provides low level control for devices and
translates between hardware and software
●​ After this, instructions are sent to RAM to be processed by the OS, to
ensure that all hardware devices are available
4.1.4 - Interrupts
●​ interrupt – a signal sent from a device or software to a microprocessor
requesting its attention; the microprocessor suspends all operations until
the interrupt has been serviced
●​ Causes:
○​ Hardware - key press/mouse movement, hardware fault
○​ Software - I/O process, divide by 0, app unresponsive, file not
found
●​ Interrupts are added to the interrupt service routine (ISR) – software
that handles interrupt requests, where they get serviced through the FDE
cycle based on priority
●​ An interrupt priority is determined by the CPU to figure out which
interrupt is to be serviced first
●​ The CPU stops its FDE cycle to process the interrupt
●​ Register data is copied to a reserve in the RAM called a stack
●​ After its service is complete, the CPU checks for more high-priority
interrupts in the ISR. If they are found, they are serviced
●​ If none are left, the CPU continues with its current tasks

4.2.1 - High and low-level languages


●​ high-level language (HLL) – a programming language that is
independent of computer hardware; a program written in an HLL needs to
be translated into machine code before it is executed.
○​ E.g. Python, Java, C++, etc.
●​ low-level language (LLL) – a programming language that is dependent
on computer hardware; both machine code and assembly language are
LLLs
○​ machine code – a binary programming language, a program
written in machine code can be loaded and executed without
translation
Language Advantages Disadvantages

HLL ●​ Easier to understand ●​ Larger programs


●​ Can write faster ●​ Takes longer to execute
●​ Easier to debug ●​ Requires a translator to
●​ Easier to maintain translate into machine code

LLL ●​ Can utilise special hardware ●​ Difficult to write and debug


●​ Less memory-intensive ●​ Difficult to understand
●​ Executes quicker ●​ Error-prone
4.2.2 - Assembly language
●​ assembly language – a low-level programming language that is
dependent on computer hardware, a program written in assembly
language program needs to be translated into machine code before
it is executed
●​ Programmers use this to
○​ To make use of special hardware
○​ To complete specific machine-dependent instructions
○​ To ensure that too much space is not taken up in RAM
○​ To ensure the code can be executed much faster

4.2.3 - Translators
●​ translator – converts a program written in a high-level language into
machine code
Compiler Interpreter Assembler

translates a source analyses and executes a translates programming


program written in a program written in a code written in assembly
high-level language to high-level language, line language into machine
machine code by line code

Produces machine code No machine code Produces machine code

1 HLL statement is 1 HLL statement 1 LLL statement is


translated into several requires machine code translated into 1
machine code instructions to be machine code
instructions executed instruction

Compiled programs can Interpreted programs Assembled programs


run without a compiler require an interpreter to can run without an
run assembler

Compiled programs are Interpreted programs Assembled programs are


distributed for general are used during distributed for general
use program development use
4.2.4 - Evaluation of translators
Translators Advantages Disadvantages

Interpreter ●​ Quicker to debug and test ●​ Programs can’t be run


●​ Easier to edit without an interpreter
●​ Takes longer to execute

Compiler ●​ Can be stored ready for ●​ Takes longer to write, test


use and debug programs during
●​ Doesn’t require a compiler development
to run
●​ Takes up less memory
during execution
●​ Executes faster

4.2.5 - IDEs(Integrated Development Environments)


●​ Integrated Development Environment (IDE) – a suite of programs used
to write and test a computer program written in a high-level language
●​ Examples: Visual Studio, Pycharm, etc.
●​ Common features of IDEs include:
○​ Code editors - give users an environment to write, edit and
maintain code
○​ Translators - built-in compiler or interpreter
○​ debugging – finding errors in a computer program by running or
tracing the program
○​ Runtime environment - gives users the ability to run and see the
corresponding output
○​ Error diagnostics - provide direct error messages where the error
may have appeared
○​ Auto completion - e.g. typing “in…” will suggest INT or INTEGER in
pseudocode pro
○​ Auto correction
○​ Auto documenter - Explains the function and purpose of a
keyword/syntax/routine
○​ Pretty Printing - e.g. keywords coloured blue, strings coloured
purple in pseudocode pro

You might also like