Software and Software Development Flashcards
Software and software development
Operating system (definition)
Set of programs acting as an interface between the user and the computer
Functions of OS (5)
Memory management
Interrupt service routines
Processor scheduling
Queueing processes
Multi-tasking
Memory management (OS definition)
Allocation of space in RAM to each program currently in use
How does paging work?
Memory is divided equally into “pages” and each program in memory can be held in non-continuous pages. A page table is used to link the physical addresses of pages back to their logical address order.
How does segmentation work?
Memory is partitioned into segments of varying length so that all program stays together. It is possible to load parts separately.
One use of segmentation
OS separated from programs to prevent impact of failures from affecting whole computer.
How does the OS handle interrupt requests?
After FDE cycle, pauses current processes and disables low-priority interrupts. Runs a routine to service high-priority interrupts and then resumes the current process afterwards.
Example order of priority for interrupt requests
Power-fail > clock > end of operation
When do interrupt service routines happen? (3)
- Check for interrupts after every execute stage
- when an application terminates or requests OS services
- when the allotted processor time for one task is completed
What is processor scheduling?
A scheduler allocates time to each process competing for the CPU
Why is processor scheduling useful? (3)
Maximises throughput
Allocates resources equally between users
Makes max use of hardware resources
How does round robin scheduling work?
Each process in the queue is given a time slice (queue organisation first in = first out). If it does not complete in that time, it moves to the back of the queue.
how does FCFS (first come, first serve) scheduling work?
There is no hierarchy of priority and jobs are processed in the order they arrived
How does SRT (shortest remaining time) scheduling work?
Runs smallest jobs first to maximize number of tasks completed in a time
Use of SRT scheduling
used for payroll or for jobs done regularly that can be done overnight.
Disadvantage of SRT scheduling
requires estimate for how long each task will take
what is an MLFQ (multi-level feedback queue)?
algorithm which separates processes based on needs from processer and gives preference to short jobs and I/O processes
What does the scheduler do? (II)
allocates time for each process
and queues next process while current on is in CPU
Multi-tasking (definition)
Carrying out small parts of multiple programs to give the appearance of parallel processing
Backing store management (definition + example)
Keeps directory of what is moved from secondary to primary memory and what space in storage is free
e.g. moving/deleting files/folders, limiting access to files
What does virtual memory do
swaps pages of temporarily inactive tasks with new tasks when
RAM is full
Why does virtual memory use slow down processing?
Accessing secondary storage is slower than accessing RAM
What are the types of OS? (5)
- Distributed
- Multi-tasking
- Multi-user
- Embedded
- Real-time
What does a distributed OS do?
OS runs across multiple devices, allowing task load to be spread across computers
What does a multi-tasking OS do?
Uses time slicing to switch quickly between programs in memory, giving the appearance of carrying out multiple tasks simultaneously
What is a multi-user OS?
OS for multiple users sharing one (usually high-performance) computer; usually in different accounts.
What does a multi-user OS do?
Uses a scheduling algorithm to share processor time fairly between multiple users in different accounts
What happens when a multi-user OS does not use a scheduling algorithm?
Processor starvation - the processes each user needs are not given enough time to execute
What is an embedded OS used for?
A small range of specific tasks related to the functions of a specific device
Advantages and disadvantages of an embedded OS (3)
- Limited functionality
- Hard to update
- Consume less power
What does a real-time OS do?
Performs tasks within a guaranteed time frame; usually to guarantee that time-critical tasks are always done within a range of time.
Where is a real-time OS used? (3)
- Air-traffic control systems
- pacemakers for hearts
- industrial machines where multiple machines work in a line
How is BIOS always loaded on start-up?
The PC register starts at the location of BIOS
What are the functions of BIOS? (4)
- Power-On Self Test (POST) to check all hardware is correctly connected and functional
- Checks CPU, memory and processor is operational
- Tests for external memory devices
- Runs bootstrap program which loads the OS to memory
What are device drivers? How are they unique?
Program used to allow OS to interact with hardware. They are specific to computer architecture and OS (e.g. different for a console and a smartphone)
What are virtual machines?
Software within a computer that emulates a second computer. The emulated computer is not aware that it is software on another computer.
Why is a virtual machine useful for developing code? (2)
- Provides an environment with a translator to run intermediate code on a specific architecture/OS
- Saves money and time as a company doesn’t have to test on multiple “real” devices
Why is a virtual machine useful for running new software?
Allows a computer to run incompatible software (e.g. running console software on a PC)
Why is a virtual machine useful for protecting a computer?
Any malware accidentally or purposefully ran within the virtual environment will not affect the “real” computer.
What is the disadvantage of using a virtual environment for development?
Running intermediate code is slower than running low-level code
What is intermediate code?
Code halfway between machine code and object code, independent of architecture and OS
What is systems software?
Software responsible for computer hardware and acts as a platform for application programs
What is an operating system?
Software that acts as a bridge or interface between the user and computer hardware
What are the two most basic functions of an OS?
Resource management and user interface
What is utility software?
Software designed to optimise performance of a computer
What are the examples of utility software? (6)
- Disk defragmenter
- Automatic back-up
- Automatic updating
- Virus checkers
- Compression software
- Move/copy/delete folders/files
What are the main examples of systems software?
OS and utility software
What does a disk defragmenter do? When?
Reorganises a magnetic hard disk so that files that were split up and stored in blocks around the disk are put back together in a single series. It can be done manually or automatically depending on user preference.
Why is a disk defragmenter useful?
Makes file-reading quicker (only for hard disk - does not affect SSD)
How does automatic back-up software work?
The user specifies destination, sources (contents) to be backed up, and whether it is full or minor (if compression is used). The back up is completed automatically but can also be done manually to ensure important files are backed up.
What does automatic update software do?
Updates all relevant software on the computer by checking the internet for updates.
Why is automatic updating software useful? (2)
- Keeps antivirus/firewall software functional against the latest malware
- provides bug fixes and improvements for licenced software
What does a virus checker do? (2)
Checks hard-drive for viruses and removes them.
Some versions also check incoming emails/internet downloads.
What does compression software do?
Compresses files and folders (lossless/lossy) so they take up less space in memory
Why is compression software useful? (3)
- Allows file to be transmitted more quickly over the internet
- Can make a large file fit within a file size limit
- Can fit more files onto storage
What is applications software used for?
Software for tasks that the user wants to use the computer for - not for the basic functionality of the computer.
What are the two most basic types of applications software? (+ examples)
General purpose e.g. graphics package
Special purpose e.g. payroll package
What is general purpose software?
Software that provides a function, designed with a wide range of purposes/users in mind (e.g. word processors)
What is special purpose software?
Software that provides a specific function, usually designed with a specific demographic in mind (e.g. account packages)
What are the two kinds of special purpose software?
Off-the-shelf and bespoke
What is off-the-shelf software?
Software that is ready to use (already exists), designed with a specific demographic of users in mind
What are the advantages/disadvantages of off-the-shelf software? (4)
+ Less expensive as production costs and profit margin is shared among all customers
+ Ready to be installed immediately
+ Well-tested and likely error-free
- May contain unwanted features/be missing some desirable features
What is bespoke software?
Software designed on request to suit an individual organisation/user’s needs
What are the advantages/disadvantages of bespoke software?
+ features customised to user requirement
+ additional features can be added as need arises
- More costly
- May take a long time to develop
- May contain errors that don’t get noticed until use
What are the two types of licence for software?
Open source and closed source
What is open source software?
Software that any user can use and edit the source code.
What are the rules around open source software? Who makes those rules? (4)
The Open Source Initiative governs open source software.
Developers can sell the software itself but the licence to the software is always free.
Any new software created from open source software must also be open.
What is a potential disadvantage to open source software?
Its unlikely to have regular updates/bug fixes because there is no responsible commercial organisation.
What is closed source software?
Software sold with a licence but no access to source code
What are the rules surrounding closed source software? (3)
- Limits on software use e.g. only fifty users per site
- Creator owns all copyright
- No selling modified versions of the package
What is the advantage to using closed source software?
Likely to have support available from the company, such as regular updates, training courses and technical support lines.