SOFTWARE-1
GAYATHRI ARUN
SYSTEM SOFTWARE & APPLICATION
SOFTWARE
• Systems software provides the services that the computer requires,
including operating system and utility software
• E.g. allowing instructions to be processed by the CPU to allow word
processing software to process. Without systems software the system
would be useless
• Systems Software is made up of two core elements: the operating
system and utility software
OPERATING SYSTEM
• This is a program designed to run other programs on a computer. It is
considered the backbone of a computer, managing both software and
hardware resources
• Operating systems are responsible for everything from the control and
allocation of memory to recognizing input from external devices and
transmitting output to computer displays. They also manage files on
computer hard drives and control peripherals, like printers and
scanners.
• Examples of Operating System: Windows, MAC, Linux
UTILITY SOFTWARE
• Utility programs perform specific tasks related to computer functions,
resources, files and security. They help to configure the system,
analyze how it is working and optimize it to improve its efficiency.
Some of these utilities include:
• Security utilities:
• Anti-Virus - Scans the computer system and ensures that files are
quarantined so that they can be removed by the user
• Encryption - uses an algorithm to scramble (encrypt) a file according to the
key which is used to make the file unreadable; the key is needed to decrypt
the file back to its original form so it can be read
• Firewall -monitors network traffic and blocks unauthorized access. Criteria
is set and if the data meets the criteria it is accepted otherwise it is
rejected
• Disk organization utilities:
• System Clean-Up Tools – to search for and remove files no longer needed,
to reduce space and speed up access to the system
• Disk Defragmentation Tools – it is used to rearrange the parts of files on the
disk drive: when a file is saved to the disk, parts of the file might be saved
in different areas of the disk, these tools try to move all the parts to the
same area for quicker access
• Data compression utilities
• File Compression Software–to make files smaller so that they take up less
storage space and can be transmitted to other users more easily
• File backup utilities
• Full Backup - stores all files and software on the system
• Incremental Backup –only backs up the files and software that have been
added since the last backup
APPLICATION SOFTWARE
• This is designed to carry out a specific task the user would need for completing a
variety of tasks. These are the applications that the operating system would
process and allow end users to complete their vital day today tasks. Examples are:
• Word Processing Software
• This allows users to create written documents e.g. letters, reports etc
• Spreadsheet Software
• This allows users to perform numerical calculations and function to create automation
for all mathematical elements e.g. budgeting, accounting, stock counts etc
• Presentation Software
• This allows users to create interactive and multimedia presentations to show to an
audience e.g. sales pitches, launching of products etc
• Multimedia Software
• This is used to create multimedia and interactive content for a number of
purposes, it explores text, audio, images, video, sound and animations
• e.g. image manipulation, editing a video etc
• Web Browsers
• This allows the user to access the internet and use the world wide web
• Freeware software is where:
• The user is not allowed to access the source code so, they cannot tailor
the software to their needs or fix any bugs in it
• The software is still covered by copyright and the user must get the
owner’s permission to do anything beyond using it
• Free software is where:
• The user can access the source code so, they can tailor the software to
their needs and fix any bugs in it
• The source code could be studied for educational purposes
• The user can redistribute the software but this must be done under the
same terms as the original software
• Shareware is software which:
• Gives a trial version of the software for a limited time with limited features
free of charge
• Requires the user has to pay fee if the full version is needed
• Is protected by copyright
• Is a type of software license
• There are many ethical considerations when distributing software:
• Accessibility of software
• Age appropriation
• Copyright
• Distribution of malware
• Environmental impact of distribution media e.g.CDs
• Following guidelines of professional bodies e.g.ACM/IEEE/BCS
• Intellectual property theft
• Offensive materials
• Plagiarism
• Privacy of data
• Security of software
THE OPERATING SYSTEM
• What does the Operating System do?
• Managing Files:
• The file manager controls all of the different files on the system, e.g. text
files, graphic files, and program files. It controls file permissions such as the
user's ability to see or open a file, write a file or delete a file. It helps to
organize and control files so that they areas easy to use as possible for the
user. It can help to protect the user from accidental mistakes too
• Handling Interrupts:
• An interrupt is a signal from a device or software to the processor. This will stop the
processor temporarily from fulfilling this request immediately, some examples could be:
• Software errors -e.g. files not found, or software not responding
• The user initiating Ctrl Alt Delete to lock, logo etc
• Files stop copying as the name of the file is already in the folder
• Once this interrupt is received by the CPU it either carries on or completes the action
desired
• Whenever an interrupt is initiated the status of this task is saved to the interrupt
service routine.
• Once the interruption has been completed the system continues back to normal before
the interruption even happened
• Providing an Interface:
• Users must interact with the operating system through a user interface.
The user interface is a system which converts what the user inputs to a
form that the computer can understand and vice versa
• Many computer or database operating systems use complex programming
languages which are not easy to use
• A user interface is created to allow easier control of the operating system
by the system user. A good interface should be easy to use
• e.g.: consistent menu structures; consistent operations from actions like
clicking the right mouse button
• Managing Peripherals and Drivers:
• The overall intention of this is to handle all the devices that are connected
to the computer system. This includes input devices such as a keyboard
and mouse, it also includes output devices such as a monitor and printer
• It communicates with the devices through software called drivers. These
translate the instructions by the device manager into one the devices can
understand Peripherals like a mouse, keyboard and printer all need drivers
so that they can communicate with the software
• Managing Memory:
• Memory management is in charge of the RAM. Programs use RAM through
out their operation. Some programs will be large and complex and use the
RAM extensively whereas some are very small programs and won’t use it as
much
• Memory management checks all requests from programs are valid and
allocates accordingly. It will deallocate space and swap out data to virtual
memory. It will ensure overall that different programs can be open at the
same time
• Manage Multitasking:
• Multitasking allows for software tasks to be completed at the same time to
ensure multiple elements can be completed immediately, it uses a system
called time slicing which splits different tasks into small segments
• They can all be run one after the other, giving the element of multiple tasks
being completed at the same time, instead of waiting for one operation to
complete before moving on to the next task
• Providing a Platform for Running Applications:
• Application programs and the hardware will communicate through a system
within the operating system called an application programs interface(API)
• This API is a library interface which will share data between software to
allow elements to process
• If any application is installed on the system, the Operating System will
manage this process, it will allocate memory space and will control the
application's data or devices, user access will also be managed
• Providing a System Security:
• System security is just about how the operating system can stay protected
and ensure that elements are monitored and actioned to ensure the system
is secure. Some areas of security are:
• Creating/Deleting users for the system
• Providing access level rights, e.g. administrator rights over installing, modifying
a system or accessing files or folders. This is compared to standard rights of just
accessing and using software/files on the system
• Auditing- this is keeping a log of file edits, deleted files, creation of files etc
• Protecting from threats, viruses, worms, malware or remote hacker attacks
Security updates to fix patches in the operating system
• Managing User Accounts:
• Each user is provided with an account for access to the system. They will
be provided with their username and then will need to create a password
based on rules setout initially
• Each account will then be granted different levels of access, dependent on
needs and level of security. This will also monitor login activity and even
log users out if they have been inactive for a while
HARDWARE, FIRMWARE &THE OS
• Application Software must talk to the operating system, this will then
allow it to interact with the hardware The hardware will then process
and send the information to the operating system which then directly
talks back to applications software in a continuous loop
• Firmware
• This process is in between the Operating System and Hardware
• When a computer initially first loads up, 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. This will provide some low-level control for all devices
• Once complete these are sent to RAM to be processed by the operating system
• Overall this creates an extra layer which is to ensure that initially the hardware
devices e.g. keyboard are available and can be communicated directly with the
operating system
• E.g. - If you were to type on a word processing document, this would
talk with the operating system initially to request the key presses. It
would send it to the firmware to check whether the keyboard is
available. Once the connection is established with the hardware it
communicates directly with the key board back through firmware, the
key instructions are passed up to the operating system and finally
displayed on the word processing software
INTERRUPTS
• We know that computers use the fetch-decode execute cycle within the
CPU to run instructions over and over. However, while this is occurring
other devices may need to signal to the CPU to tell it to stop
temporarily (interrupt) so that it can do the dedicated specific task
• E.g. a user has initiated ctrl alt delete to run task manager or a user
wants a document printing Interrupts will need to ensure that the CPU
can stop executing its current program to run code for the over all
interruption.
• Interrupts need to be added to an area called the interrupt service
routine
• Two types of interrupt:
• Hardware Interrupt - this is caused by a hardware device such as a
hardware failure e.g.
• pressing a key on the keyboard
• moving the mouse
• Software Interrupt - this occurs when an application stops or requests
services from the OS e.g.
• a program is not responding
• division by zero
• two processes trying to access the same memory location
• However, the CPU currently contains registers that are holding data
currently being handled: These include:
• Program Counter – The location of the next instruction which will need to be
fetched
• Current Instruction Register - holds the current instruction being executed
• Memory Address Register - stores the location of where the data is being
stored in RAM or where in RAM the data will be sent
• Memory Data Register - stores the actual data from the location in the RAM
or that will be sent to RAM
• The interrupt service routine is simply added to a particular area where
a certain set of instructions are sent that will need to be fetched,
decoded and executed to complete the commands of the interrupt
• As a result, it’s clear that the current registers will need to be changed
at this point to accommodate the interrupt
• The interrupt will be executed instead of the original instructions
• When the interrupt is received the current values that were held in the
registers are copied back to the RAM in an area known as a stack
• These values are pushed on to the stack and are added to the top of
the stack frame, which will save them for later retrieval when the
interrupt is complete
• There is a possibility that an interrupt can also be interrupted which is
known as a division by zero. Due to the system in RAM with stack
frames, the current interrupt would be moved to the bottom of the
stack frame to complete the main interrupt initially
• There are common interrupt priorities for different categories, these are:
• Hardware
• Power supply may have failed
• Power button may have been pressed
• User
• Moving the mouse
• Clicking an icon to open a new program
• Keyboard presses e.g. ctrl, alt, delete
• Software
• Illegal instruction encountered
• Overflow
• Login request Crashing
• Timer
• Data logging programs which reads sensors continuously
• Screen recording applications
• Input/output devices
• Signaling of data transfer been completed
• Printer ink supply notifications
• Input devices not responding