1/61
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Systems software
Manages computer resources, maximises performance.
Operating systems
Provide an interface between the user and computer. Provide many features such as management and security.
Interupts
Signals generated by software or hardware to tell the CPU that a process needs attention.
Scheduling
Ensures all sections of programs being run get a fair amount of processing time.
Distributed OS
Runs across multiple devices, the load of the task is spread across multiple computer processors.
Multi-tasking OS
Tasks can be carried out simultaneously, time slices used to switch between programs and applications in memory.
BIOS (basic input output system)
Runs tests to ensure all hardware is correctly connected and functional.
Device drivers
Allows OS to interact with hardware.
Virtual machines
Theoretical computer and a software implementation of a computer system. Provides an environment with a translator.
Application software
Used by end user, performs one specific task.
Utilities
Maintain a high performing OS, each utility has a specific functions. Example: compression, disk defrag.
Translator
Converts source code into object code.
Stages of compliation
Lexical analysis
Syntax analysis
Code generation and optimisation
Lexical analysis
Removes spaces and comments while key wards and identifiers are replaced with tokens.
Software development life cycle
Analysis
Design
Development
Testing
Implementation
Evaluation
Maintenance
Agile methodologies
Flexible, adapt to changes quickly. High quality, flexible, regular user input. Poor documentation, requires consistent interaction between user and programmer.
Waterfall lifecycle
Only does it once doesn't go back. Straightforward, clearly documented. Lack of flexibility, no risk analysis, limited user involvement.
Spiral model
Manage heavy risk projects. Good risk analysis, caters to changes, produces prototypes. Expensive, lack of focus on efficiency.
Extreme programming
Produce high quality code, constant user involvement means high usability. High cost, teamwork is essential, end-user may not be able to be present.
Polymorphism
Objects behave differently depending on their class. Overloading(different parameters) + overriding(redefining a method).
Paging
Memory is split up into equal-sized sections known as pages. Pages are swapped between main memory and the hard disk as needed
Segmentation
Memory is split up into logical sized divisions, they represent the structure and logical flow of the program.
Virtual memory
Happens when RAM is full and it uses a section of the hard drive, this frees up space in RAM for other programs.
Disk thrashing
Pages swapped too frequently between hard disk and RAM.
Interrupt service routine (ISR)
Checks for interrupts at the end of each FEDEX cycle. If there is an interrupt the contents of the registers are transferred into a stack until the interrupt is solved. This is the same if an even higher interrupt interrupts the interrupt.
Round robin
Each job is given a section of processor time which it runs.
First come first served
Jobs are processed in the order they are added to the queue.
Multilevel feedback queues
Multiple queues that is ordered based on different prioritys.
Shortest job first
The queue is process and the shortest job will be completed first and the longest job will be completed last.
Shortest remaining time
Jobs with shortest amount of time remaining to be processed are processed first.
Embedded OS
Performs a small range of specific tasks suck as household appliances. They consume less power.
Multi-user OS
Multiple users use one computer.
Real time OS
Designed to perform a task within a guaranteed time frame.
Open source
Free and distributed with the source code.
Closed source
Costly, requires a licence and the user does not have access to the source code.
Compiler
Translates all code in one go, if no changes have been made it can be ran without having to be compiled.
Interpreter
Translates line by line and stops at an error and outputs it.
Assembler
Translates assembly code into machine code.
Bytecode
Mix of compiler and interpreter.
Syntax analysis
Tokens analysed against rules, syntax errors are flagged.
Code generation and optimisation
Code is produced, and it optimises by getting rid of unnecessary code.
Linkers
Links external modules and libraries included within the code.
Loaders
Fetches the library from the given memory location.
Rapid application development
Fast and incomplete version are given to the user to trial. Caters to change, usable end product, focus on core features. Low quality documentation, fast pace and late changes may reduce quality.
Structured programming
Sequence - Line after line
Selection - One things happens based of another thing
Iteration - Repeats
Recursion - Calls itself, requires a stopping condition that will be reached
Add
ADD - Adds the value at the given memory address to the value within the accumulator
Subtract
SUB - Subtract the value at the given memory address from the value in the Accumulator
Store
STA - Store the value in the Accumulator at the given memory address
Load
LDA - Load the value at the given memory address into the Accumulator
Input
INP - Allows the user to input a value which will be held in the Accumulator
Output
OUT - Prints the value currently held in the Accumulator
End
HLT - Stops the program at that line, preventing the rest of the code from executing.
Where to store data
DAT - Creates a flag with a label at which data is stored.
Branch if zero
BRZ - Branches to a given address if the value in the Accumulator is zero. This is a conditional branch.
Branch if positive
BRP - Branches to a given address if the value in the Accumulator is positive. This is a conditional branch.
Branch always
BRA - Branches to a given address no matter the value in the Accumulator. This is an unconditional branch.
Opcode
Specifies the instruction to be performed and the addressing mode.
Operand
Data on which the instruction is to be performed.
Immediate addressing
The operand is the actual value upon which the instruction is to be performed
Direct Addressing
The operand gives the address which holds the value upon which the instruction is to be performed
Indirect Addressing
The operand gives the address of a register which holds another address, where the data is located
Indexed Addressing
An index register is used, which stores a certain value. The address of the operand is determined by adding the operand to the index register