1/156
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
PC
Program counter, contains the address of the next instruction
CIR
Current Instruction Register: stores the address of the next instruction currently being executed and decoded
MAR
Memory Address Register, holds relevant memory address (to read from or write to)
MDR
Memory Data Register, stores data being transferred to and from memory, acts as a buffer
ALU
Arithmetic and Logic Unit, does all mathematical calculations and makes all logical decisions
Accumulator
A storage register in the ALU that holds data temporarily while the data is processed and before it is transferred to memory.
RISC
Reduced Instruction Set Computer: Only simple instructions taking one clock cycle are executed
CISC
Complex Instruction Set Computer: Large instruction set is used to minimise lines of code required
GPU
Graphics Processing Unit
Multi-core CPU
A CPU with more than one core on the same chip
What affects processor performance?
RAM
Random Access Memory
ROM
Read Only Memory
What are the functions of an operating system?
What are the types of memory management?
Paging: Available memory is divided into fixed size pages, process in memory can be held in non-contiguous pages, mapped to logical addresses by a page table
Segmentation: Divides address space logically into segments of varying length
What is virtual memory?
A technique that uses a portion of the computer's hard disk as an extension of RAM
What is a distributed operating system?
Form of parallel processing system which splits tasks over multiple computers
What is a multitasking operating system?
An OS which allows each user to run more than one job at a time.
What is a multi-user operating system?
Allows multiple users to use a computer system by allocating each one a slice of processor time
What does a mobile operating system comprise of?
Mobile OSes are made up of two separate operating systems:
A main system operating the user interface/application software
A low-level real-time operating system which is hardware-specific
What is an embedded operating system?
An OS on a chip instead of on a hard drive, designed to do simple things adapted for specific hardware/functions
What is a real-time operating system
Processes data as it comes in
Open Source Software
Program code made publicly available for free, it can be copied, distributed, or changed without the stringent copyright protections of proprietary software products.
Closed Source Software
Also know as proprietary software, computer software licensed under exclusive legal right of the copyright holder with the intent that the licensee is given the right to use the software only under certain conditions, and restricted from other uses, such as modification, sharing, studying, redistribution, or reverse engineering.
Utility program
A small program that performs many of the general housekeeping tasks for the computer, such as system maintenance and file compression
Scheduling Algorithms
Shortest remaining time
A scheduling algorithm that deals with each user or task based on a calculating an estimated time remaining to complete.
Shortest job first
A scheduling algorithm that deals with each user or task based on the getting the smaller ones out of the way.
Multi-level feedback queues
This algorithm is designed to give preference to short jobs, give preference to input/output bound processes and separate processes into categories based on their need for the processor.
Round Robin
Processes are dispatched on a first in first out (FIFO)
basis, with each process in turn being given a limited amount of CPU time, called a time slice.
First come first served
Processes are carried out by the CPU in the order in which they arrive
BIOS
Basic input/output system contains programs to load the hardware, stored in ROM
Device drivers
Utility software used by the operating system to communicate with peripheral devices.
- Disk defragmentation, automatic backup/updating, virus checking, compression software
Virtual machines
A software implementation of a computer system, allowing one physical computer to run several "virtual computers", each with their own independent operating system and application software.
Low-level language
A programming language that is designed to be easy for a computer to execute, also called machine language or assembly language.
High-level language
A programming language like Python that is designed to be easy for humans to read and write.
Interpreter
Converts a program written in a higher level language into a lower level language and executes it, one line at a time
Compiler
Translates a high-level source program into machine instructions readable by a processor and saves it to disk. The program executes when run.
Assembler
Translates an assembly-language program into machine code
Stages of compilation
lexical analysis, syntax analysis, code generation and optimisation
Lexical analysis
Comments and whitespace are removed
Variables, and subroutines stored in symbol table
Which also holds data such as scope and data type
Code is converted to a series of tokens
Syntax analysis
The code is checked to ensure it follows the rules of the language. Where it breaks the rules of the language errors are generated.
If no rules are broken then it's passed on to the next stage
Code generation and optimisation
Here the object code (accept machine code) is created.
(i.e. the binary that is executed by the processor)
This code may be inefficient: may contain unnecessary instructions or groups of instructions that can
be replaced by simpler ones (point of optimisation)
Linker
Combines together a number of separate object code files.
Loader
Loads an executable program into main memory
Library programs
A collection of compiled routines that other programs can use
Waterfall lifecycle
Sequential stages, each stage must be completed for the next to follow
Spiral model
Uses structured steps but develops a program iteratively, constantly improving upon a prototype, allows for productive user input as they can comment on a prototype
Agile modelling
Prioritises user participation: keeps model simple and relies on rapid user feedback to make rapid incremental changes, allows for productive user input as they can comment on a prototype
Extreme Programming
Produces frequent project releases in short development cycles, improving productivity and introducing checkpoints, good for large projects to present bogging down
Rapid Application Development (RAD)
A development method that uses workshops/focus groups and an iterative approach to rapidly produce a high-quality system, good for large projects to present bogging down
Procedural Programming
Method of programming that uses step-by-step instructions (encompasses structured programming) supported by python/pascal
Object-oriented programming
A style of programming that involves representing items, things, and people as objects rather than basing the logic around actions, supported by Java, Python, Delphi
Declarative programming
Problem is described, language implementation decides how to solve it eg. SQL
Functional Programming
A programming paradigm that uses functions to create programs. Supported by Haskell, Python, Java
ADD
Add the contents of the memory address to the accumulator
SUB
Subtract the contents of the memory address from the accumulator
STA
Store the accumulator value in the memory address given
LDA
Load the contents of the given memory address into the accumulator
BRA
Branch- use the address given as the address of the next instruction
BRZ
Branch to the given address if accumulator is zero
BRP
Branch to the given address if the accumulator value is positive (or zero)
INP
Input into the accumulator
OUT
Output contents of the accumulator
HLT
Stops the execution of the program
DAT
Indicates a location containing data
Addressing modes
-Immediate addressing
-Direct addressing
-Indirect addressing
-Indexed addressing
Immediate Addressing
The operand is the actual value to be operated on
Direct Addressing
The operand holds the memory address of the value to be operated on
Indirect Addressing
The operand is the location holding the address of the relevant data
Indexed Addressing
Modifies the address in the address field by the addition of a number held in a special-purpose registers, called an index register, before the address is used.
Classes
A description of what data looks like and can do: an object is an instance of a class
Methods
Things that objects are coded to do
Attributes
The data associated with an object
Inheritance
Where a class retains the methods and attributes of its parent class as well as having its own
Polymorphism
When subclasses redefine a method or attribute originally inherited from a superclass
Encapsulation
The process of keeping an object's attributes private so they can only be accessed and changed via public methods
Lossy Compression
data compression techniques in which some amount of data is lost - redundant information is eliminated
Lossless Compression
a data compression algorithm that allows the original data to be perfectly reconstructed from the compressed data - no data is lost, file size is still made smaller
Run Length Encoding
A compression algorithm that represents an image in terms of the length of runs of identical pixels - lossless
Dictionary-based compression
Uses a dictionary to replace repeated phrases with shorter binary strings - lossless
Symmetric Encryption
An encryption method whereby the same private key is used to encode and to decode the message
Asymmetric Encryption
a type of encryption based on algorithms that require two keys -- one of which is secret (or private) and one of which is public (freely known to others).
Hashing
transforming plaintext of any length into a short code called a hash
Uses of Hashing
-Passwords
-Digital signatures
-Digital certificates
-Hash tables
Flat file database
Database which consists of just one table.
Primary Key
A field (or group of fields) that uniquely identifies a given entity in a table
Secondary Key
A field that has some identifying information, but typically does not uniquely identify a record with complete accuracy.
Foreign Key
A primary key of one table that appears as an attribute in another table and acts to provide a logical relationship between the two tables
Composite Key
Two or more fields that collectively define the primary key by unique combinations of their values.
First Normal Form (1NF)
A table that has a primary key and in which there are no repeating attributes or groups of attributes
Second Normal Form (2NF)
A table in first normal form in which there are no partial dependencies (only relevant if the primary key is a composite primary key)
Third Normal Form (3NF)
A table in 2NF where all attributes are dependent on the key, the whole key and nothing but the key
SELECT
SELECT field(s)
FROM table(s)
WHERE criteria
ORDER BY ascending/descending
CREATE TABLE
CREATE TABLE name (
field datatype
)
ALTER TABLE
ALTER TABLE name
ADD field datatype
ALTER TABLE name
DROP COLUMN column
ALTER TABLE name
MODIFY COLUMN name modification
INSERT INTO
INSERT INTO table_name (columns)
VALUES (values)
UPDATE
UPDATE table
SET field = new value
WHERE condition
ACID
Atomicity, Consistency, Isolation, Durability
Atomicity
Requires that a transaction be processed completely or not at all