Software Flashcards
When are interrupts checked for
at the end of each FDE cycle
Uses of virtual machines
- used on networks to avoid redundant processors
- translating code (Java)
- running different operating systems
boot up process of a computer
- POST is run
- clears anything in the registers
- loads the address of the first instruction of the boot program into the PC
- the boot program checks for start-up instructions on the BIOS in ROM
-BIOS checks that all hardware is operational - The OS kernel is loaded
Uses of Embedded operating systems
Washing machines, vending machines, car engine systems, traffic lights, pay and display machines
Uses of Multi-tasking operating systems
desktops and smart phones
Uses of real-time operating systems
Airline control, theatre bookings, heart monitors, production lines, radar systems
Uses of Multi-user operating systems
schools and offices
Use of distributed operating systems
Data centres, large companies, weather/financial modelling, data mining trend finding
functions of an OS (8)
- Provides a user interface
- manages security
- provides a platform for utilities/applications
- manages external devices
- managing the processor/scheduling
- managing memory
- provides a platform for networking
- managing hardware
How does Java use virtual machine?
the virtual machine execute intermediate code (Java Byte code)
Device drivers are…
hardware dependent and OS specific
Multi-level feedback queue
uses multiple queues based of the priority of the process.
Non pre-emptive algorithms
- First come first serve
- shortest job first
Pre-emptive algorithms
- Round Robin
- Shortest Remaining Time
- Multi-level feedback queue
Pre-emptive
Once a process has entered the running state it can be stopped
Aims of scheduling
- to provide an acceptable response time to all users
- To maximise the time the CPU is usefully engaged
- To ensure fairness on a multi-user system
What happens if an interrupt is detected?
- the contents of all the registers are pushed onto a stack
- The interrupt service routine is run
- Once complete the values of the registers are popped off the stack back into the registers
What does an OS provide?(4)
- User interface
- Memory Management
- Interrupt handling
- Processor scheduling
What loads the OS into RAM
the bootloader
Library Programs (System Software)
contains useful functions that are frequently used by programs. Simplifies the process of application development.
Operating system (System software)
software that allows the user to control the computer with ease. It provides a virtual machine hiding the true complexity of the computer from the user and manages and controls access to the computer’s resources.
examples of system software
Operating system, Utility Program, Library Program, Translators.
system software
operates, controls and maintain the computer and its components.
Hardware
the physical components of the computer system.
Software
program code. Sequences of instructions which are executed in order to perform a task.
Backing Up
programs which allow for manual or automatic backing up of files onto another disk, on the existing computer system, to a removable device such as DVDs or CDs, to a network file server or to a cloud based storage system online
Firewalls
a program that blocks unauthorised access onto a network by inspecting packets to find the port they are attempting to access through.
If the port is blocked then the packet is rejected.
file managers
programs which allow users to easily copy, delete, rename and modify files on a computer system
compression
programs which attempt to reduce the amount of physical space that files take up when they’re stored
fragmented disk
over time a disk becomes fragmented as old files are deleted and new files are added, free space often becomes scattered across a disk and a program has to be split and spread across a disk to fit. The more fragmented the slower the computer performs
Disk defragmentation
programs which attempt to consolidate the spilt files and free space. therefore reading and writing files becomes more efficient.
Antivirus utility software
programs which help to detect and remove malicious programs which are often designed to harm the computer.
Utility software
Small programs that perform a specific task usually related to the maintenance and upkeep of the computer system.
factors to consider when choosing applications (5)
- functionality
- hardware
- availability
- cost
- reliability
types of application software (12)
word processors desktop publishing programs spreadsheets database management Slideshow and presentation Multimedia and video editing photo and graphics manipulation communications, chat and IM social networking email clients web browsers Gaming
application software
software that allows the user to do or make something.
Open Source Software
any software which is supplied along with its original source code.
e.g. Linux
Closed Software
software which is supplied pre-compiled. The source code is not available and often copyrighted, also known as proprietary software
e.g. microsoft word
Benefits of Open source software
- usually free
- users are free to amend the source code and tailor the program to their needs
- not constrained by commercial considerations
- many people are continuously finding and fixing bugs
drawbacks of open source software
- can be less user friendly/less easy to use
- less support available
- people may exploit failures maliciously before they are fixed
Benefits closed source software
- companies have a lot of resources providing security if the program doesn’t work, service/support, and a more polished user friendly product
Drawbacks of closed source software
- costs money, can be expensive
- small range of versions of software
translator
any program that converts source code into machine code. e.g. interpreters, compilers and assemblers
assembler
converts low level assembly language directly into machine code.
compiler
converts high level code to object code.
interpreter
takes one line of high level source code and converts it directly into machine code then runs it.
machine code
code that the processor understands, made of a opcode and operand
assembly language
opcode is represented by a mnemonic and operand represented by a denary value
stages of compilation
Lexical analysis
syntax analysis
code generation code optimisation
Lexical Analysis
(stages of compilation stage 1)
- source code is taken
- white space is removed
- remaining code is turned into tokens
- a symbol table is created (including variables, data types and scope)
- passes on to syntax analysis
token
a keyword, constant, variable, identifier or operator from the code. Its a fixed length string of binary digits.
Syntax analysis
(stages of compilation stage 2)
the syntax is checked against the rules and an abstract syntax tree is created
if any code breaks the syntax rules an error is generated
Code generation
(stages of compilation stage 3)
the syntax tree is converted into object code / machine code
code optimisation
(stages of compilation stage 4)
the code is optimised to run as fast as possible by removing redundant code (removing variables and procedures that have been written but never called)
Libraries
pre-compiled pre-tested sets of code, often with hundreds of ready to use routines available to the programmer.
linker (static linking)
includes links to any library code and place it in a single executable file. this is known as static linking and results in large programs because all the code is held in one file.
Loaders (dynamic linking)
compiled versions of libraries are stored by the computer and the operating system links the code directly into the program when it is needed reducing the size of programs. Loaders are needed to include or load the libraries into memory ready for use.
general purpose application software
A software that can be used for many purposes e.g. word-processor
Special pupose application software
A software that preforms single specific tasks. e.g. payroll, hotel booking systems or browser software
Bytecode
An intermediate representation which combines compiling and interpreting and is run by a byte code interpreter
Advantages of using byte code interpreters
- Achieve platform independence
- Acts as an extra security layer between program and computer
The Waterfall Lifecycle Model
- a sequence of stages. each stage can only start after the previous one is complete.
- it possible to go back stages however you can’t skip ahead
- user involved once at the beginning where the requirements are set out
Where is the waterfall life cycle model used?
Used in manufacturing industry where there is a clear expected output
Spiral Model
- designed to try and manage risk. made of four stages:
1. determine objectives
2. Identify and resolve risks
3. development and testing
4. plan next iteration
Where is the spiral model used?
Used in large scale projects
Rapid application Development
user is shown a prototype and gives feedback to inform how the prototype is further developed until the final project is complete
Extreme Programming
- A type of agile methodology, involving a user imbedded in the company to give feedback.
- This results in high quality code being developed quicker.
- iterative approach
Paired Programming
one programmer types and another checks at the same time.
Advantages of the waterfall model
- Simple: Everyone on the project is very clear on their responsibilities at each stage.
- Easy to see if programming is running to schedule
- good for large scale problems
Disadvantages of the waterfall model
- The absence of user feedback
- Requirements might not be very well understood
- not flexible
Advantages of the spiral model
- good from projects with high levels of risk
- suitable for large scale problems
Disadvantages of the spiral model
- Not suitable for quick projects
- Complex
- costly
- good risk analysis is a highly specialised skill
- if risk is done badly project will suffer
Advantages of the agile model (inc extreme programming)
- Acknowledge user input: create prototypes to communicate to the user ideas better
- high quality code
- relatively simple
Disadvantages of the agile model (inc extreme programming)
- requires a team of programmers working in close collaboration (unlikely to work well if they are distributed geographically)
- client has to commit to having full time contact with the programmers
Advantages of rapid application development
- flexible to changes
- quick & simple
- requirements don’t have to be clear from the start
Disadvantages of rapid application development
- doesn’t scale well
- focuses on usability rather than how the product works meaning its not suited for projects where code efficiency is very important
agile methodologies
a group of methods designed to cope with changing requirements through producing software in an iterative manor.
Stages of waterfall model
requirements, analysis, design, coding, testing, maintenance
uses of RAD
good for when the project requirements aren’t completely clear from the outset
Where is extreme programming used?
good for when the requirements change
Where is agile methodologies used?
projects where there is a lot of collaboration and code quality must be high
Feasibility study
the initial investigation that determines whether a project is viable before time and resources are invested into it
Requirements specification
A document listing all the functionality the system should have
utility programs examples
- Disk defragmenter
- Automatic backup
- Automatic updating
- Virus checker
- Compression software
Timer Interrupts
Triggered regularly by a timer, to indicate that it is the turn of the next process to have processor time- this allows for multi tasking
Processor Scheduling
The OS can queue up processes for the CPU to make the most efficient use of the computer which gives the illusion of multitasking
scheduler
A program that manages the amount of time different processes have in the CPU
virtual machine
Where software is used to take on the function of the machine, including executing code or running an OS within another to emulate e.g. when you install windows on OSX
purpose of device drivers
provide an interface/method of communication to enable the OS to control the printer
Knowledge based system
make use to a body of knowledge to solve problems. Made of up knowledge base (stores facts and rules) and inference engine (uses logic to apply the users responses to the rules)
menu driven interface
A list of options where the user can pick leading to further options. It restricts the access.
things checked in a feasibility study
- can it be completed within a given time
- doesa it fit in the budget
- is it technically feasible
- is it ethical/legal
- is the workforce capable of using it
- is it cost effective in the long run
purpose of a feasibility study
prevents time and money being spent of a project that ultimately fails
positives of developing prototypes
- previously undetected bugs come to light
- further enhancements are made
real time
A system that gives a response within a guaranteed time frame. Input is processed immediately.
when are linkers use?
when distrubuting code to users.
why are linkers used when distrubuting code to users?
- the user may not have the neccesary library installed
- the relevant code from the library must be included in the final executable
- the linker combines this code
why may programs for one cmputer not work on another computer?
- different instruction sets
- different libraries
- programs may be on different media e.g. CD
- digital rights management
assembler relationship with machine code
one to one relationship
assemblers are…
processor specific
interpreter and compiler relationship with machine code
many to one
interpreter uses
debugging code (easy to spot where the mistake is)
compiler uses
distrubuting software as the source code doesn’t have to be distrubuted
interpreter drawbacks
- the security is bad
- the code is executed slowly
Which systems development methodology is best suited to the delivery of the highest quality code?
Agile (extreme programming)
linker
a device that combines the compiled program with the library modules in a single executable file
The process of software development through analysis, design, implementation, testing and evaluation is known as what?
Systems Development Life Cycle
Systems development methodologies
- RAD
- Agile
- Spiral
- Waterfall
code generation
stages of compilation (3)
- abstract syntax tree is converted to object code or machine code
- passes on to code optimisation
code optimisation
stages of compilation (4)
- makes changes to optimise time an space efficiency
- remove variables/ subroutines that are never used/called
- search for more efficient alternatives to sets of instructions
Syntax analysis
stages of compilation (2)
- abstract syntax tree is built from tokens
- is any tokens break the rules a syntax error is generated
- passes on to code generation
what does the symbol table store?
tokens.
variable/subroutine names, data types and scope
What does a feasibility study check?
- technically possible?
- deliverable within the given timeframe?
- possible within the given budget?
- is it ethical and legal?
- is it possible with the work force?
user documentation
explains how a system is used. May contain:
- description of installation
- how to carry out tasks on the system
- troubleshooting
- frequently asked questions
WHat is a prototype used for?
for evaluation by the user at the end of each iteration. This evaluation is used to shape the next iteration.
What does LDA do?
loads a certain value in a memory address into the accumulator
disadvantage of running a program off a virtual machine rather than directly off the physical machine
- adds an extra layer of processing (virtual machine has to process intermediate code, but CPU has to process virtual machine processing the intermediate code)
- runs more slowly
purpose of technical documentation
Provide the necessary information to allow the system to be maintained and updated in the future
risks of not carrying out a feasibility study
the project may fail before completion wasting the time and money spent on it