Flashcards in 1.2 Software and Software Development Deck (51):
What is the need, function and purpose of an operating system?
An operating system is the software that manages the computer;
- manages the hardware of the system
- manages the interface between the user and the computer
- manages the programs being run and installed
- manages the security of the system
What is paging?
What is segmentation?
What is the purpose of virtual memory?
What is the role of interrupts?
What is ISR?
Describe Round Robin
Describe first come first serve
Describe multi-level feedback queues
Describe shortest job first
Describe shortest remaining time
Describe and explain the purpose of a distributed os
Allows a group of computers to work on a single task. It can control and co-ordinate many computers, presenting them to the end user as though they were a single system
Describe and explain the purpose of an embedded os
Specifically designed for the device on which they run and with efficiency in mind. Operate on low-powered CPU's with little RAM. Will only likely to have one job
Describe and explain the purpose of a multi-tasking os
Organises the computer when it is running several applications at once.
Describe and explain the purpose of a multi-user os
Allows more than one user to share the computers resources at a time. Common on mainframe systems where there may be many users accessing them simultaneously
Describe and explain the purpose of a real time os
Designed to carry out actions in a guaranteed amount of time even when left running for long periods. i.e. hospitals and safety critical systems
Describe the purpose of the BIOS
Basic Input Output System - is what allows the computer to start up. Stores the load instructions
Describe the purpose of device drivers
A piece of software that is supplied with the device that allows the operating system to communicate with the device
What is the purpose of virtual machines?
Runs a simulation of an operating system on top of the current one, so that the user can test a program that may be used on multiple platforms. Often programs may not run on the provided operating system, so a virtual machine may be needed to run the desired program
What is the difference between utility and application software?
Application software allows the user to produce something or perform a task whereas utility software is usually a small program concerned with the maintenance of the system
What is the difference between open and closed source software?
What is an interpreter?
Converts high level language, translates and executes code line by line
+ can find the errors as they occur and give specific direction
+ same piece of code can work across different platforms
- lower performance
What is a compiler?
Converts high level language, translates all the code into object code and then executable code
+ faster to convert
- keeps source code private
- can't use across different platforms
What is an assembler?
Converts low level language (assembly code) into machine code
State the stages of compilation
What is a linker?
The job of the linker is to include links to any library code required by the object code and put this into one executable file
What is a loader?
The loader is responsible for loading the correct files and libraries into the computer memory when the program is run
Describe and evaluate the waterfall life cycle
Describe and evaluate agile methodologies
Describe and evaluate the purpose of extreme programming
Describe and evaluate the spiral model
Describe and evaluate rapid application development
Evaluate high level code
+ easier to code
+ more understandable
+ can code more complicated programs
- lose control over the instructions being executed
Evaluate low level code
+ faster to compile
+ more control over the CPU and the instructions executed
- will only work on the CPU with the instructions referenced
Describe lexical analysis
Breaks the code down into a series of tokens by; removing white space and comments, remaining code turned into tokens, symbol table is created to keep track of variables and subroutines
Describe syntax/semantic analysis
If any tokens break the rules of the language, errors are generated at this point
Abstract syntax tree is built from tokens produced in previous stage
Describe code generation
Object code is the machine code before the final step (the linker) is run. Abstract code tree converted into object code
Describe code optimisation
Tweaks the code so that it will run as quickly as possible and use as little memory as possible
Explain static linking
The code needed to form the libraries is copied and included in the executable file. The code doesn't need to access external libraries during run time, therefore if a library is missing the program will not crash
- can take a long time
- large file size, takes up more space in RAM
Explain dynamic linking
Compiled versions of the libraries are stored in the computer and linked with the object code by the OS at run time
+ less memory is needed therefore quicker to process
+ less code needed to compile
- if a library is missing the program will crash
What is a library?
Pre-written modules of code for the user to interact with.
What is a paradigm?
Different forms of programming languages; low level, high level, imperative, procedural, OOP
What is imperative programming?
Mainly used within assembly code. It is a sequence of instructions where subroutines are not used. The program is directed around the code using GOTO statements and branches
What is procedural programming?
A sequence of instructions however the code is split into subroutines and the sequence of code is based on these i.e. IF WHILE FOR
What is OOP code?
For use in large software projects where code needs to be repeated. Way of inheriting and creating classes
What are the 4 addressing modes?
Describe and evaluate intermediate addressing
Addressed from the binary operand value. The operand is not a memory address but the value to be used
+ fastest method as you do not need to access the computers memory
Describe and evaluate direct addressing
References the address that the data is stored in
+ quick method however not as quick as intermediate
- relies on the value always being correct at the location specified
Describe and evaluate indirect addressing
References a place in memory which then points to the data
- address of where the data is stored must first be looked up