Fundamentals of Computer Systems Flashcards
Hardware
All of the electrical and electro-mechanical parts of a computer and its input and output storage devices as well as peripherals
Software
All of the systems needed to make a computer function, all the collections of instructions/ programs that can be run and processed by a computer system
System software
All of the software needed to run the computers hardware and application programs
Operating system
A set of programmes that lie between applications software and the computer hardware like resource management
Utility programs
Program made to perform a generic task that is routinely executed by user, related to analysing or configuring data ((de)compression, providing firewall, backing up files and encryption before data transmission)
Libraries
ready-compiled programs that can be run when needed
Translators
A program which converts code from one computer language to another
compiler
A translator that converts high level language to machine code
Interpreters
A translator which checks a source program for syntax errors line by line, translates it to machine code and executes the line
Assembler
A translator in low level language which converts assembly language into machine code
Low-level language
A programming language with little to no abstraction from a processor’s internal instruction set such as machine code or assembly language
High-level language
A programming language with a strong abstraction from a processor’s internal instruction set that is much more human-readable with natural-language keywords
Machine-code
A low level language written in binary which is directly understood by CPU
Imperative language
A programming language built on the programming paradigm of using subroutines and procedures to change a program’S state and describe how the program operates
General-purpose application software
word-processor, spreadsheet graphics package
special-purpose
Performs a single task/set of task like fingerprint scanner. off-the-shelf or bespoke
Resource management
The collective efficient management of the available hardware and software to optimise the performance of the computer system
Scheduling
Allocating processor time to each applications to ensure processor time is used as efficiently as possible when multitasking
Memory management
Manages memory used by the different applications running at once, uses virtual memory where hardware is used as an extension of memory
Processor scheduling
Maximise throughout, be fair to all users in multi-user system, provide acceptable response times to all users, ensure hardware resources are kept as busy as possible
Backing store management
when files and applications are loaded are they moved from backing storage into memory, backing store keeps a dictionary with where files are stored for quick accesing
Peripheral management
Ensures that peripherals are allocated to processor without causing conflict
Interrupt handling
Handles interrupt signal sent from software programs or peripherals to stop processing current list of instructions and what to do next
Code names assembler
Input code is source code and the machine code output is called object code
Bytcode
An intermediate instruction set used to write the final output of some compilers since it can be executed on any computer via a virtual machine
Bytecode advantages
Platform independence and added layer of security
Advantage compiler over interpreter
-object code can be saved on disk and run without the need to recompile, but if error discovered entire code needs to be recompiled
-object code executes faster than interpreted code
-the object code produced by a compiler can be distributed without having to have the compiler present
-object code more secure, needs a lot of reverse engineering to be read
Interpreter advantages over compiler
-useful for program development as there is no need for lengthy recompilation each time an error is discovered
-easier to partially test and debug programs
NOT
inverts input, symbol is triangle with little circle after, in boolean algebra a overbar
AND
Symbol: round tip straight line in back, boolean algebra: fat dot, output true only if both inputs true
OR
Sharp tip and curved line at back, output true if either input or both inputs true, boolean algebra symbol +
XOR
Symbol is like OR gate with extra curved line infront, only true if wither input is true but not both, boolean algebra symbol + in circle
NAND gate
Same symbol as and gate with circle infront, true for all except both inputs true, boolean algebra symbol like AND with overhead bar over the two inputs AND together
NOR Gate
Same symbol as or gate with circle input and same boolean algebra symbol as OR with overhead bar overtop, true only if neither input true
Boolean expression
A combination of boolean variables and logical operators which evaluates either TRUE or FALSE depending on the input
Boolean Logic
A type of algebra with logical operators where all values and expressions ultimately reduce to TRUE or FALSE
General rules
X.0 = 0
X+0 = X
X.1 = X
X+1 = 1
X.X= X
X+X = X
X.[X] = 0
X+[X] = 1
[[X]]= X
where im using [] to represent not
commutative rules
X.Y = Y.X
X+Y = Y+X
Associative rules
X.(Y.Z) = (X.Y).Z
X+(Y+Z) = (X+Y)+Z
distributive rules
X.(Y+Z) = X.Y + X.Z
(X+Y).(W+Z) = X.W + X.Z + Y.W + Y.Z
Absorption rule
X+(X.Y) = X
X.(X+Y) = X
De Morgans Laws
[A.B] = [A]+[B]
[A+B] = [A].[B]