• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/60

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

60 Cards in this Set

  • Front
  • Back
Software
Software comprises all of the programs that make the computer function
Hardware
The physical components of a computer system
Systems software
Required to run and manage the computer’s hardware and application programs
Disk Defragmentation
Process of consolidating fragmented files on the user's hard drive.



Each program/file is now in one contiguous group of sectors, the next block to be accessed is physically next to the previous one.




This reduces read/write time as the hard drive doesn’t have to spin round to the next sector somewhere else on the disk, and the read/write head does not need to move across the disk.

Why disk defragmentation is needed
Files become fragmented when data is written to disk, and there is not enough contiguous space to hold the complete file.



Storage algorithms break the data apart so that it will fit into the available space.

Firewall
To protect a computer or network from malicious access to data
Automatic updates
Automate the process of downloading and installing software updates
Encryption
To hide the contents of data, to keep data secure
Compression
To reduce the size of files for storage/transmission, to group several files together
File restore
Repair/restore corrupt or damaged files
System cleanup
Remove unwanted, leftover or temporary files
General purpose software
written to fulfil a range of generic tasks e.g.: Word processors, spreadsheets, databases, desktop publishing, graphics software etc.
Special purpose software
written with a specific application in mind. Examples include: Accounting software, satellite navigation software, email clients, media players, calendars etc.
Bespoke software
created to fulfil your own exact specifications
Libraries
collection of pre-compiled routines that can be used by other programs.



Programmers can invoke library subroutines to save having to re-write code

Machine code
lowest level of instruction comprising pure binary.



a typical instruction holds an operation code (opcode) in the first few bits and an operand in the rest of the bits

Translator
translate code written in assembly language or other high level code into machine-code
Assembler
translate assembly language into machine code
Compilers
translate high-level language programs into object code (machine code)



which can be saved and run whenever needed, without the compiler having to be present

Off-the-shelf software
software products that are ready-made and available for sale to the general public
Bespoke software Advantages
Contains only the features you want. Can give a company a competitive advantage.



Could be resold by the company to others. Can be customised to match your corporate style

Bespoke software Disadvantages
More expensive to produce and takes more time. May have bugs
Off-the-shelf Advantages
Likely to have a wide user base, so more chance that bugs have been ironed out.



Updates will be available.




Ready to use straight away.




Less costly as development costs shared among many purchasers.




Technical support available from software company

Off-the-shelf Disadvantages
Cannot customise to specific requirements.



May have unnecessary features.




May lack features that you need

Functions of an OS
Memory management.

Processor scheduling.


Backing store management.


Peripheral management of IO devices

Memory management
OS allocates memory to each process running. If there is not enough memory, a program may be swapped out of memory onto disk or “virtual memory” and reloaded when activated
Processor scheduling
Controls which programs can send data to the processor to be processed.



Instructions from multiple operations are queued.




The processor executes small parts of each operation in turn so that programs appear to run simultaneously.




This is known as multi-tasking

Scheduler
Operating system module responsible for ensuring that processor time is used as efficiently as possible.



Round Robin – each process in turn has use of the processor for a given time slice.Shortest job next . Priority system

Task manager
shows the processes that are currently running and the allocation of resources
Backing store management
keeps track of where all files are stored on hard disk or external drives, and where space is free to be used if the user performs a save operation
IO device management
Communicates with I/O devices via the I/O controller, part of the CPU.



Checks that a required output device is switched on and ready to receive data.




Deals with processor ‘interrupts’

Interrupt
a signal to the processor emitted by hardware or software indicating an event that needs immediate attention.



e.g. process has had its slice of processor time,program crashing, printer out of paper, job completed etc

virtual memory
area on disk that is used as RAM, if RAM is insufficient to hold all the data/instructions in a running process.



The data is copied from RAM to disk while the next block of data or code is loaded in from virtual memory.

virtual memory Advanatges
It allows many processes to be running concurrently
virtual memory Disadvanatges
it takes time to keep copying data from disk to RAM and vice versa and noticeably slows down the computer.
Multitasking
several tasks are being performed in parallel.



The CPU processes only one task at a time, but switches between processes so fast that it appears to be processing multiple processes at the same time.

Multiprocessing
more than one processor is is being used.



Different parts of a task may be distributed among processors in separate CPUs, or a CPU may have two or more processors (dual-core, quad-core).

Instruction set
all the instructions that the computer can understand and execute.



If each instruction is held in 8 bits, with 4 bits for the opcode and 4 bits for the operand, the computer can execute 16 different instructions

Assembly language
low-level programming language for microprocessors and other programmable devices.



Implements a symbolic representation of the machine code needed to program a given CPU architecture.




Have a 1 to 1 relationship with machine code

Assembly language advantages
easier to remember mnemonics than strings of binary digits.



less likely to make mistakes in the operand using decimal instead of binary numbers.




quicker to write programs. easier to understand, debug and maintain.




machine code more suited to programming by physically setting switches to load instructions

Assembly language Disadvantage
The assembly code has to be translated into machine code by an assembler
Imperative high-level languages
Consists of commands for the computer to perform.



has to be converted into machine code before it can be executed. e.g. Python etc

Declarative language
focuses on what the program should do without listing the steps needed to achieve the result e.g. SQL
Advantages of high-level
Much easier and faster to write, debug and maintain programs.



Different high-level languages have been written specifically for different types of problem.




portable – a program written for one type of computer can be recompiled for a different type of computer.




Many built-in functions and libraries available. Programs much shorter because each instruction is translated into many machine code instructions.




Programmer can think and code in terms of algorithms rather than worrying about how the computer will execute each tiny step - abstraction

Disadvantages of high-level
object code (compiled or interpreted code) may run slower than assembly code or machine code.
object code may occupy more space in RAM - problem for embedded systems.
Most high-level languages do not have statements to allow the programmer to manipulate individual bits – essential in some applications, e.g. device drivers
Source code
The assembly code that is the input to the assembler
Object code
Machine code instructions produced by the assembler.



object code can be saved and run whenever needed

Uses of assembly code
when a program needs to execute as fast as possible, occupy as little space as possible or manipulate individual bits and bytes.



embedded systems, real-time systems, sensors, mobile phones, device drivers and interrupt handlers.




The object code, rather than the source code, is saved and run when required

Compilation process
It produces intermediate code, optimises it, then generates the machine code



It will not generate the machine code it there are any errors in the program e.g. syntax errors or missing subroutines.




When all errors of this kind have been corrected, the compiler will produce relocatable code, since it does not know the absolute addresses where the object code will be loaded.




The object code can then be saved and the compiler does not need to be present to run the object code

Advantages of a compiler
Once a program has been compiled, the object code can be distributed and the compiler is not needed to run the program.



object code runs faster than interpreted code. object code is more secure, as machine code cannot easily be read and copied by someone wishing to modify the code and sell it as their own product

Interpreter
translates high-level instructions into an intermediate form, which it then executes.



No object code is produced. typically scan through a program and report syntax errors.




Once these are removed, it will execute instructions up to the point where it encounters an error

Advantages of an interpreter
useful in education because it allows students to program interactively.



useful during development when a programmer may want to test a small piece of code without recompiling the whole program.




compilers and interpreters are available for most high-level languages

Bytecode
Some compilers such as the Java compiler compile the source code into an intermediate form.
portable, because each computer that can run Java has a JVM or Java Virtual Machine (which is itself a program), that understands bytecode and converts it into the machine code required for that particular computer
Bytecode advantage
Once the bytecode for a particular subroutine or method has been translated into machine code,



the machine code is retained for the next time that code is required, so the translation does not have to be done again.




If a particular subroutine or method is never used at runtime, it is never compiled to machine code

NAND
combines the functions of two gates in a single gate.



universal gate because different combinations of NAND gates can act like NOT, OR and AND gates.




any circuit can be built using just NAND gates

NAND advantages
Using only NAND gates to build a circuit can minimise cost of production.



Using as few gates as possible can speed up processing

General rules
X • 0 = 0

X • 1 = X


X • X = X


X • ¯X = 0


X + 0 = X


X + 1 = 1


X + X = X


X + ¯X=1


¯¯X= X

Commutative rule
X • Y = Y • X



X + Y = Y + X

Associative rule
X • (Y • Z) = (X • Y) • Z



X + (Y + Z) = (X + Y) + Z

Distributive rule
X • (Y + Z) = X • Y + X • Z



(X+ Y) (W + Z) = X • W + X • Z + Y • W + Y • Z