30
5/20/2018 F453RevisionBooklet-slidepdf.com http://slidepdf.com/reader/full/f453-revision-booklet-5619344cab37d 1/30 Advanced Computing Theory OCR F453 Written Exam (January 2011) :: Jonathan Ashworth Page 1 The Function of Operating Systems (3.1) Features of an Operating System (3.1.1) An operating system provides… o Management of hardware resources o An interface between the user and the machine o An interface between applications  software and the machine o  Security for the data on the system o Utility software to allow maintenance to be done o Error handling Interrupt Handling (3.1.2) A new process is added to the queue with a certain priority o  If the priority is higher than the current process, the interrupt will be serviced immediately o All data concerning the current process is placed upon a stack Highest priority interrupt is serviced first to avoid data loss/hardware damage The previous process may resume when all higher priority processes have finished (fetch data from the stack) Process A Process B Process C Process D (empty) (empty) Process E Stack Process A

F453 Revision Booklet

Embed Size (px)

DESCRIPTION

F453 Booklet

Citation preview

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 1

    The Function of Operating Systems (3.1)

    Features of an Operating System (3.1.1)

    An operating system provides

    o Management of hardware resources

    o An interface between the user and the machine

    o An interface between applications software and the machine

    o Security for the data on the system

    o Utility software to allow maintenance to be done

    o Error handling

    Interrupt Handling (3.1.2) A new process is added to the queue with a certain priority

    o If the priority is higher than the current process, the interrupt will be serviced

    immediately

    o All data concerning the current process is placed upon a stack

    Highest priority interrupt is serviced first to avoid data loss/hardware damage

    The previous process may resume when all higher priority processes have finished (fetch

    data from the stack)

    Process A

    Process B

    Process C

    Process D

    (empty)

    (empty)

    Process E

    Stack

    Process A

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 2

    Scheduling, Job Queues & Priorities (3.1.3) Many operating systems need to run many processes at the same time

    A multi-tasking operating system holds many jobs in its memory

    o The OS must switch between different jobs in a particular order

    The switching between jobs is defined by a set of rules/algorithms (known

    as scheduling)

    Sorting rules/algorithms include

    o Round Robin (RR): each job in the READY queue is allocated an equal

    time slice, allowing all jobs to gain processor time. If a job completes

    during its time slice, it will leave the system

    o First Come First Served (FCFS): the first job runs until completion, then allowing the

    next job to run until completion... and so on. If a long job gets onto the processor, it

    will not leave until completed

    o Shortest Job First (SJF): the OS places each job depending on the time expected to

    complete into the READY queue

    o Shortest Remaining Time (SRT): sorts the jobs in the READY queue into shortest time

    remaining to complete. Long/large jobs may never run as they never get to the top

    of the queue

    o Multi-level Feedback Queue (MFQ): uses many levels of priority. The job with the

    highest priority is allowed to run once, before being sent back to the READY queue

    with a new priority

    If the new priority is still the highest, it will run again

    If the new priority is lower than another job, that job will run

    When a job has the lowest priority, Round Robin is applied

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 3

    Scheduling must

    o Maximise the use of the whole computer

    o Allow fair running for each job/user

    o Provide a reasonable response time to jobs/users (both active

    and batch jobs/users)

    o Prevent the system failing if it is becoming overloaded

    o Be consistent by providing similar response times for similar tasks

    A scheduler decides when a job may enter and must leave the processor

    o A pre-emptive scheme allows the Low Level Scheduler to remove a job from the

    running state so another job may be serviced

    o A non-pre-emptive scheme will allow a job to continue running until it no longer

    needs the processor

    Useful in a small system where there are few jobs

    Not useful where there are many jobs, as there is a danger of a job

    monopolising the processor waiting on an input/output

    o High Level Scheduler (HLS): Places a job into the READY queue, whilst ensuring the

    system is not overloaded

    o Medium Level Scheduler (MLS): Swaps jobs from the IAS onto the backing store and

    visa versa (see paging)

    o Low Level Scheduler (LLS): Places and removes jobs in/from the running state. It

    places the job back in the READY queue in the correct position

    A pre-emptive system

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 4

    Input/Output bound jobs are jobs that use a peripheral a lot, e.g

    o Waiting for a user input

    o Output to a printer

    Processor bound jobs are jobs that use the processor a lot, e.g

    o Manipulating large images

    o Calculating huge numbers

    Memory Management (3.1.4) Requirements of memory management are

    o Allocate memory to multiple jobs to allow for multi-tasking

    o Allow jobs larger than the total size of memory to run

    o Relocate un-essential pages when needed

    o Protect jobs from each other

    o Protect the operating system

    o Allow memory to be shared by swapping pages

    One way of holding jobs and data in main memory, is to split them into equal sized

    wordspaces called pages

    o Splitting a (large) program into pages

    o Only part of program needs to be in memory

    o Some of program can stay on disk (virtual memory)

    o Allows program to run when there is insufficient memory

    A = I/O Bound job

    B = CPU bound job

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 5

    o Splitting memory into pages

    o Both need indexing using a table

    o Sections of program need not be all together

    This system is subject to disk threshing, which will slow the entire system down and possibly

    cause failure or data loss

    o Occurs when moving pages between memory & disk

    o Disk is relatively slow

    o High rate of disk access

    o More time spent transferring pages than on processing

    Direct/Absolute Addressing: a command is sent with the real

    address (e.g. ADD 10 means Add the data in address location 10)

    o The amount of memory that can be addressed is limited

    If using a 16-bit machine and the op-code ADD was 01101, this would leave

    2048 address that could be addressed

    o To execute the same operation on a number of addresses, we would have to write

    the same instruction many times

    Indirect Addressing: a command is sent with an indirect address (e.g. ADD 10 means the

    address 10 contains the address of the data to be used)

    o This allows all 16/32/64 bits to be used to address data (access more data)

    Indexed Addressing: if we wanted to add together 100 items in an array, we would need

    100 instructions (ADD 10, ADD 11, ADD12ADD100.

    o Indexed addressing includes a special register called the index register (IR) which is

    initially set to 0

    o When the first value is taken from 10, the IR becomes 0+10

    o For every other item, the IR is simply incremented

    o This allows only one instruction to be executed with information it should be done

    100 times

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 6

    Relative Addressing: when a program is compiled, it is not always clear where the program

    and data will be stored in memory, so the instruction ADD 10 is useless as the data may not

    be in address 10

    o Instead, the start address of a programs block (or page) is recorded in a table

    o Now ADD 10 means ADD (location: [START ADDRESS]+10)

    Every address is relative to the start address

    Immediate Addressing: The real value is in the command to be executed (e.g. ADD 10 means

    add the value 10)

    Spooling (3.1.5) When a job needs to output to a slow peripheral, a spool will be used to make efficient use

    of the resources

    o The CPU outputs to the spool queue the address of the data needing to be output

    Allowing the CPU to service other jobs, whilst the output is dealt with

    The spool queue normally uses First in First out ordering, however jobs can be added with

    different priorities

    When a peripheral is ready for the next job in the spool queue, it will read the address, fetch

    the data and begin to output

    Spooling allows many jobs/users to use a single output peripheral in turn

    (Remember: a spool is different from a buffer, because a buffer allows only one job/user to access it at

    a time, and it requires the CPU to keep filling it up)

    Output Peripheral

    0x01 0x02 0x03 0x04 0x05 0x06 0x07

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 7

    Modern PC Operating System (3.1.6) There are two main types of operating system used today

    o Command-based (like MSDOS)

    o Graphical-User-Interface (like Windows)

    The OS provides the user and programs with facilities to handle inputs and outputs, copy

    and move files, handle memory allocation and any other basic task

    Steps needed to boot a PC

    o Power-On-Self-Test (POST) routine is executed

    Found in ROM

    Clears all registries and CPU of any left-over data

    Loads the first value of the boot program into the program counter

    o Boot program executes

    Stored in ROM

    Simplified version of the BIOS (Basic I/O System)

    Checks the POST routine and Boot program

    o The CPU now sends signals to hardware to check it is functioning properly

    System checks: Busses, System clock, RAM, Disk drive and Keyboard

    o The boot program now checks drive A (often a CD/Floppy Drive) for an OS. If there is

    no disk, it will check drive C (often a Hard Drive)

    Once found, the operating systems files are loaded

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 8

    The File allocation table (FAT) is a computer file system architecture that

    o Maps the location of files on the backing store (sectors grouped in clusters)

    o Provides addresses/pointers to start of files

    o Has a linked list

    o Holds files names

    o Identifies free space

    o Stores access rights

    o is updated by the OS (file saving/deletion)

    o Stored in IAS reduce disk access and to increase the time taken to find a file

    The operating system manages the FAT table

    o Allocation of space on disk

    o Deleting files

    o Copying files

    o Moving files

    o Control file access rights

    o Map logical file addresses to physical addresses on disk

    o Creating shortcuts

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 9

    The Function and Purpose of Translators (3.2)

    Types of Translators & their Purposes (3.2.1)

    A translator converts

    o Human readable commands (high level language) into

    o Machine readable commands (binary/object code)

    Low level languages (close to the language used by the computer)

    o Represent binary with mnemonics, such as

    ADD = 001 (a command)

    NUM1 = 00101 (an address)

    o The use of mnemonics in place of binary is called Assembly Language

    o An Assembler translates the mnemonics (using a table) to produce machine code

    High level languages (close to the language used by a human)

    o Because they are close the human language and far from machine code, a more

    complex translator is needed

    A Complier takes a high level language (source code) and translates it into a

    machine code (object code) equivalent

    A disadvantage of using a compiler is that it if very memory

    hungry

    o Source code needs to be in IAS

    o Compiler needs to be in IAS

    o Resultant object code is in IAS (to be copied to backing

    store)

    Another disadvantage is that it is hard to pin-point an error in the

    source code

    A Interpreter reads the source code line by line, translating it and then

    executing

    Errors are easy to pin-point

    Less demanding on the system resources

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 10

    Lexical & Syntax Analysis, Code Generation & Optimisation (3.2.2) Lexical analysis

    o Each statement will contain a keyword telling the compiler what to do

    o The compiler has a table of accepted keywords and will look up the statements

    keywords to ensure they exists

    If the keyword does not exist, an error will be produced

    o All keywords are replaced by a set of binary numbers called tokens

    o It removes any white space and comments inserted by the programmer

    o It will spot all names (variables/constants) it does not recognise and create a lookup

    table called a symbol table

    The symbol table contains the name, data type, memory location and any

    restrictions for the variable/constant

    Syntax analysis

    o This parse checks the tokens generated by the lexical analyser to see if it is

    grammatically correct

    o This is done by using Backus-Naur Form rules (see 3.7.2)

    o If a token breaks a grammatical rule, it can output an error for that line of code

    Code generation

    o The compiler now takes the valid strings of tokens and changes them into low-

    level/intermediate code

    o This process is One-to-Many as there are many low-level instructions needed to

    represent a single instruction in high-level

    Resulting in a larger resultant file than the original high-level file

    Code optimisation

    o Simply removes the unnecessary code such as (A := A +0) to result in more efficient

    (faster) code

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 11

    Library Routines (3.2.3) Are pre-written, pre-compiled and pre-tested routines that recur in many larger programs

    o This saves time for development and compilation

    The routines are loaded into memory when a utility program called a loader needs them

    and they are linked to the relevant places in the existing code by a utility routine called a

    linker

    Loader

    Linker

    HDD IAS

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 12

    Computer Architectures (3.3)

    Von Neumann Architecture (3.3.1)

    Uses a single processor

    Following a linear sequence (fetch-decode-execute)

    Uses special registers to control this sequence

    Instructions and data stored in the same place

    Registers & Fetch-execute Cycle (3.3.2) The special registers that carry out the fetch-decode-execute are

    o PC > MAR > IAS > MDR > CIR > Accumulator

    The control unit fetches instructions from memory, decodes and synchronises all operations

    The ALU is where data is processed both arithmetically and logically

    o Arithmetical processing involves mathematical operations (add, sub)

    o Logical processing involves logical operations (AND, OR, XOR)

    Data Bus

    Address

    Bus

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 13

    Fetching

    o The PC holds the address of the next instruction to be executed

    As instructions are held sequentially in memory, this can often just be

    incremented after each cycle (this is not the case when a JUMP instruction is

    executed)

    o When the instruction is needed, the content of the PC is copied to the MAR

    o Causing the MDR to fetch the instruction from the IAS at the address specified by

    the MAR

    o The content of the MDR is then placed in the CIR, ready to be executed

    Decoding

    o The instruction is now split into two parts

    The operation code

    The address of the data to be used

    o The address is then placed in the MAR

    o Causing the MDR to fetch the data

    o The operation is now decoded by referring to a table

    This table defines the binary for all operational codes (RISC & CISC)

    Refined Instruction Set Computer (RISC): is not able to recognise a

    lot of mnemonics, but greatly decreases process time as it is not

    spending as much time looking up a table

    o Some instructions will require a combination of simpler

    instructions to run

    Complex Instruction Set Computer (CISC): can recognise any

    mnemonic which can make processing faster if there are a great

    range of different mnemonics being used

    Op code Address

    0101 100110101001

    ADD #9A9

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 14

    Executing

    o Now the decoded instruction and the data in the MDR are sent to the necessary

    locations

    If the instruction is to store the data, then the data (in the MDR) is placed

    back into the IAS at the location stored in the MAR

    If the instruction is a JUMP, the address in the MAR is used to change the PC

    If the instruction is arithmetical/logical, the data is sent to the ALU to be

    processed

    The result being stored in the Accumulator

    Other Architectures (3.3.3) Co-Processors (sometimes called floating point units)

    o Floating point binary representation requires a long string of bits

    A maths co-processor is a device which has a number of registers that are

    long enough to handle the length of a floating point binary number in one

    go, making processing faster

    o Allow more complex calculations/processing to be given to a dedicated co-

    processor which only processes these similar calculations

    Such as a GPU (graphical processing unit)

    Advantage of allowing the CPU to complete other instructions

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 15

    Parallel Processors

    o Different parts of a program can be executed at the same time (providing the

    program has been designed to have different parts executed at the same time)

    o Advantages

    Greatly increases the speed programs can execute

    Decreases time taken for complex mathematical processing

    Speeds up the processing of data from many inputs

    o Disadvantages

    A more complex program must be developed, compared to the traditional

    sequential program, to allow execution of different parts at the same time

    CPU A CPU B CPU C

    IAS

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 16

    Array Processors

    o Has many ALUs (arithmetic logic unit) and one processor

    Useful for manipulating 1 dimensional arrays with the same calculation,

    where the same calculation can be applied to every element in the array in

    one cycle

    Pipelining

    o Uses the standard fetch-decode-execute cycle

    An instruction can be in any one of these 3 stages

    o Pipelining allows the system resources to be used more effectively by making sure

    there is an instruction at each stage of the cycle:

    o If a JUMP instruction appears, the pipe is broken and a new instruction must be

    added

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 17

    Data Representation (3.4)

    Floating Point Binary (3.4.1)

    Uses a mantissa and exponent to represent a fractional number in binary

    o Mantissa is the numerical value

    o Exponent is the multiplier constant

    Uses normal binary numbering with additional fractional numbers (4, 2, 1, 0.5, 0.25, 0.125)

    The greater the size of the mantissa, the larger the number you can represent

    The greater the size of the exponent, the greater degree of accuracy you can achieve

    Normalisation (3.4.2) A number must be normalised before it can be stored as a floating point binary number

    o This means there should be only one leading 0 on the mantissa (unless its a

    negative number, where it leads with 1 followed by a 0)

    o The exponent is found by moving the decimal place to normalise the mantissa

    Mantissa Exponent

    01001 010

    Denary: 2.25

    Binary: 4 2 1 0.5 0.25 0.125 0.625

    0 1 0 0 1 0 0

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 18

    Data Structures and Data Manipulation (3.5)

    Implementation of Data Structures (3.5.1)

    Static data structures

    o Do not change size during execution (e.g. an array)

    o Advantages:

    Compiler can allocate memory during compilation

    Easy to program

    Easy to check of overflow

    Allows random access (indexing)

    o Disadvantages:

    The programmer must estimate the amount of memory needed to store the

    structure

    It can waste a lot of memory

    Dynamic data structures

    o May change during execution (e.g. a linked list)

    o Advantages:

    Only uses the memory needed at any time

    Makes efficient use of memory

    o Disadvantages:

    Difficult to program

    Can be slow to implement searches

    Only allows serial access

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 19

    A stack is a (LIFO) data structure

    o To push (add) data, the stack must first be checked it is not full

    Next, the pointer (points to the highest data item) is incremented

    The data item can now be pushed onto the stack

    o To pop (delete) data, the pointer is decremented. This allows new data to overwrite

    the current data

    A Queue is a (FIFO) data structure

    o To insert data into a queue, it must first be checked it is not full

    If it is not full, the head pointer in incremented and data inserted at this

    location

    If it is full, the data may not be inserted

    o Before deleting, the queue must first be checked it is not empty

    If it is empty, the head pointer = the tail pointer

    If it is not empty, the data at the tail pointer is copied and the tail pointer is

    incremented

    A Tree is a structure where each data item points to two other items depending on a rule

    David

    Barbra Ed

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 20

    Searching, Merging & Sorting (3.5.2) Binary searching

    o While list is not empty do

    Find mid-point cell in current list

    If the value in this cell is the required value, return cell position

    If the value found is less than the mid-point then

    Change the search list into the first half of the current list

    Else change the search list into the second half of the current list

    o Report Error (Item not in list)

    o Using this method on a large list, greatly increases search time

    However, the time taken to search a small list is increased compared to a

    serial search

    Serial searching

    o Simply compares each item in the array/file with a known value

    o This is useful in a small file/array

    File merging is very simple

    o Consider the two lists:

    12 54 24 34 and 24 10 56 32

    o To merge, we compare each item. The item with the least value is inserted to the

    new list first: 12 24 10 54 24 56 32 34

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 21

    Insertion sort (shuttle sort): sorts a file depending upon a set of rules

    o Compare the first and second number of the list. If the second number is less than

    the first, swap the items

    o Now compare the first, second and third items. If the third item is less than both the

    first and second, move the third value to the first position

    Quick sort also sorts files, but if very efficient at sorting large files

    o 2 pointers are used: a left pointer and a right pointer

    o The left and right item values are compared, if the right item is less than the left,

    they swap

    Move the left pointer +1 and repeat first step

    o If the left item value is less than the right item value, the right pointer moves -1 and

    repeats step 1

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 22

    High-level Language Programming Paradigms (3.6)

    Declarative Programing (3.6.1)

    Declarative languages are an alternative paradigm (method of programming) to sequential

    languages

    4th generation language (closer to human language and built with data in mind)

    Given a set of facts (e.g. DOG(Max), DOG(Baz) & CAT(Bennett))

    Uses rules to define the relationship between facts

    An objective/goal is given (such as: DOG(x))

    o Searches first instance

    If it fails, backtrack to the start and search the next instance

    If it succeeds, return value (e.g. Max)

    o The computer now backtracks to find any other instances returning any other true

    instances (e.g. Baz)

    o Once all instances of DOG(x) have been found (true and false) the goal has been

    satisfied

    Useful in knowledge based systems (e.g. medical diagnosis)

    Object-orientated Programming (3.6.2) Object oriented languages have classes and derived classes

    o A class contains data about similar entities and methods used to manipulate this

    data

    o A derived class contains data about similar entities derived from the super classs

    entities. It too contains methods used to manipulate this data

    o An object is an instance of a class and is an actual real-world entity

    Data Encapsulation is the concept that data/variables can only be accessed via the methods

    provided

    Inheritance is another concept that allows the re-use of variables and methods of a super

    class of which a new class is derived

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 23

    To plan and explain OOP structures, a method called Unified Modelling Language is used

    o Use case diagrams show how users are related by a process

    o State diagrams show how an object may behave through the various processes of a

    system (cross between a DFD and a flow diagram)

    o Sequence diagrams show how the objects in the classes interact with one another

    o Activity diagrams are like flow charts, but with the difference of showing the steps

    needed to get the object into a particular state

    Super Class

    Derived Classes

    Class name

    Data

    Methods

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 24

    o Communication diagrams are used to show how different object combine to pursue

    a common purpose

    Programming Techniques (3.7)

    Standard Programming Techniques (3.7.1) Jackson Structured Diagrams (Top-down & Step-wise refinement)

    A parameter is a variable/value passed to a sub-routine (function)

    Local variables only exist inside a single sub-routine

    Global variables are accessible throughout the entire system

    Every time a function is called, the return address must be stored in a stack to be able to

    resume the main program

    Methods of Defining Syntax (3.7.2) Almost everything used in a computer language needs to be defined using some fixed

    definites that are not subject to rules (called terminal symbols things like the letter A)

    o Backus-Naur Form (BNF): Uses angle brackets to define meta variables

    ::=A | B | C | D

    ::= |

    o Syntax Diagrams: Uses terminal symbols in the form of a diagram

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 25

    Reverse Polish Notation provides unambiguous expressions, which do not need brackets

    and can be solved using stacks

    o An infix notation has an operator between the two operands (A + B)

    The problem with infix notation is when an expression such as A + B * C is

    used, we need to have brackets in order to decide which operation to do

    first

    The order as to which order to operate is ambiguous

    o Polish notation (Prefix) puts the operand at the start of an expression (e.g. + A B)

    This is unambiguous as there is no longer a need for brackets

    o Reverse Polish notation (Postfix) puts the operand at the end of the expression

    This too is unambiguous, but also allows the result to be worked out using

    techniques with stacks

    2 * (A + B) in reverse polish is A B + 2 *

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 26

    Databases (3.8)

    Design and Normalisation (3.8.1)

    A database is a series of related tables

    o When files are part of a database they are called tracks

    A table is a collection of sets of similar data called records

    o An Attribute is a column containing a single item concerning multiple entities

    o A Tuple is a row containing multiple items concerning a single entity

    An Attribute that holds an item that is unique from every other entity is called a primary key

    A table can be linked together to relate the data

    o A foreign key maintains the relationship between two tables

    If all the data is held in one large table with data redundancy, then it is in UnNormalised

    Form (UNF)

    Data in the database can be arranged in 3 different ways

    o First Normal Form (1NF): all repeated data items are removed (data redundancy)

    o Second Normal Form (2NF): ensures all data items are dependent on a primary key

    o Third Normal Form (3NF): removes part key dependencies (an attribute that takes a

    certain value because of another attributes value)

    Data Redundancy is the repeating the same data item for multiple tuples

    Data Integrity is the likeliness of a data item being correct (more likely if there is no data

    redundancy)

    Attribute A Attribute B Attribute C Attribute D

    Tuple 1 Item 1A Item 1B Item 1C Item 1D

    Tuple 2 Item 2A Item 2B Item 2C Item 2D

    Tuple 3 Item 3A Item 3B Item 3C Item 3D

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 27

    Data Consistency is about how reliable the data is (consistently correct or wrong)

    Methods & Tools for Analysing & Implementing Databases (3.8.2) An example database bellow shows a Many to Many relationship

    The following shows the database in 3NF with a new link table (Ticket)

    o A link table normally consists of the key attributes of the tables on both sides

    Database Management System (DBMS) (3.8.3) DBMSs controls the database and access to the data, it must control

    o The amendment of data

    o The addition of data

    o The deletion of data

    to ensure the rules of the database are not broken

    A DBMS includes software called Data Description Language

    (DLL) which defines

    o Tables in the database

    o Data types in the table

    o Constrains on the data

    o The structure within the database

    The data dictionary is a file of descriptions, structure and storage of the data

    A database design is called a Schema

    o Each user is given a subschema which defines the rules about how they may access

    the data

    User Film

    User Film Ticket

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 28

    The DBMS also provides a Data Manipulation Language (DLL) (see 3.9.4)

    Use of Structured Query Language (SQL) (3.8.4) SQL is a 4th generation language that allows a user to query a database

    o 4th generation languages are created with the data in mind

    To delete a row in SQL...

    o DELETE FROM Users WHERE Formname = 7CG

    To insert a row in SQL

    o INSERT INTO Users VALUES (7BC, Mr Campbell, 21)

    To select a row in SQL

    o SELECT * FROM Users WHERE Age = 21

    Column

    name

    Table

    name

    Value

    name

    Operation

    Table

    name

    Values Operation

    Column

    name

    Table

    name

    Value

    name

    Operation All

    columns

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 29

    Index

    The Function of Operating Systems (3.1) ............................................................................................... 1

    Features of an Operating System (3.1.1) ............................................................................................ 1

    Interrupt Handling (3.1.2) ................................................................................................................... 1

    Scheduling, Job Queues & Priorities (3.1.3) ........................................................................................ 1

    Memory Management (3.1.4)............................................................................................................. 4

    Spooling (3.1.5) ................................................................................................................................... 6

    Modern PC Operating System (3.1.6) ................................................................................................. 6

    The Function and Purpose of Translators (3.2) ....................................................................................... 9

    Types of Translators & their Purposes (3.2.1) .................................................................................... 9

    Lexical & Syntax Analysis, Code Generation & Optimisation (3.2.2) ................................................ 10

    Library Routines (3.2.3) ..................................................................................................................... 11

    Computer Architectures (3.3) ............................................................................................................... 12

    Von Neumann Architecture (3.3.1) ................................................................................................... 12

    Registers & Fetch-execute Cycle (3.3.2) ........................................................................................... 12

    Other Architectures (3.3.3) ............................................................................................................... 14

    Data Representation (3.4) ..................................................................................................................... 17

    Floating Point Binary (3.4.1) ............................................................................................................. 17

    Normalisation (3.4.2) ........................................................................................................................ 17

    Data Structures and Data Manipulation (3.5) ....................................................................................... 18

    Implementation of Data Structures (3.5.1) ....................................................................................... 18

    Searching, Merging & Sorting (3.5.2) ................................................................................................ 19

    High-level Language Programming Paradigms (3.6) ............................................................................. 22

    Declarative Programing (3.6.1) ......................................................................................................... 22

    Object-orientated Programming (3.6.2) ........................................................................................... 22

    Programming Techniques (3.7) ............................................................................................................. 24

  • Advanced Computing Theory

    OCR F453 Written Exam (January 2011)

    :: Jonathan Ashworth

    Page 30

    Standard Programming Techniques (3.7.1) ...................................................................................... 24

    Methods of Defining Syntax (3.7.2) .................................................................................................. 24

    Databases (3.8) ..................................................................................................................................... 25

    Design and Normalisation (3.8.1) ..................................................................................................... 26

    Methods & Tools for Analysing & Implementing Databases (3.8.2) ................................................. 27

    Database Management System (DBMS) (3.8.3) ............................................................................... 27

    Use of Structured Query Language (SQL) (3.8.4) .............................................................................. 28

    The Function of Operating Systems (3.1)Features of an Operating System (3.1.1)Interrupt Handling (3.1.2)Scheduling, Job Queues & Priorities (3.1.3)Memory Management (3.1.4)Spooling (3.1.5)Modern PC Operating System (3.1.6)

    The Function and Purpose of Translators (3.2)Types of Translators & their Purposes (3.2.1)Lexical & Syntax Analysis, Code Generation & Optimisation (3.2.2)Library Routines (3.2.3)

    Computer Architectures (3.3)Von Neumann Architecture (3.3.1)Registers & Fetch-execute Cycle (3.3.2)Other Architectures (3.3.3)

    Data Representation (3.4)Floating Point Binary (3.4.1)Normalisation (3.4.2)

    Data Structures and Data Manipulation (3.5)Implementation of Data Structures (3.5.1)Searching, Merging & Sorting (3.5.2)

    High-level Language Programming Paradigms (3.6)Declarative Programing (3.6.1)Object-orientated Programming (3.6.2)

    Programming Techniques (3.7)Standard Programming Techniques (3.7.1)Methods of Defining Syntax (3.7.2)

    Databases (3.8)Design and Normalisation (3.8.1)Methods & Tools for Analysing & Implementing Databases (3.8.2)Database Management System (DBMS) (3.8.3)Use of Structured Query Language (SQL) (3.8.4)