4. Software Flashcards
Managing Security
who does and how do they
OS organises user logins and passwords which may include password protection and control access rights
Access rights
If a computer is used by more than one user, each user should only be able to see their own files. Users and system admin have different levels of access rights. Some users may be allowed to access files but not edit them.
May include encryption of some files
Machine code
Computers represent everything in binary
Program instructions once converted to binary are known as machine code, eg.
1001 1100 0000 1110 1101 1010 1101 1011 0101 1001
Each different type of processor has its own set of machine code instructions, a typical instruction in a simple processor may look like:
Opcode: 6 digits, 010110
Register: 2 digits, 01
Operand: 8 digits, 0011 1010
The Opcode is basic machine instruction like ADD, SUBTRACT, LOAD, STORE and the operand is the value or location of the value to be operated on.
All arithmetic is carried out in the register.
High level code
High level codes typical instructions look like math or english and are easy to guess or understand the meaning. Python, Delphi and Java are known as high level codes
High level languages have complex statements and program structures can not easily be translated into machine code. Each statement in high level code represent several machine code statements
Assembly language
Going from machine to assembly code was very time consuming, and is sometimes called a “first generation language”.
Assembly is the “second generation” eg.
LDA 1 Mark1 ; Load contents of Location17 into Register 1
Instruction Set in terms of processor handling
Processors vary in the number and type of instructions they can process.
They cannot deal with WHILE, THEN etc.
Compare and Branch instructions are used test conditions and jump to another if true
Assembler
A computer can not process assembly language instructions directly
The assembler is a program which translates assembly code into machine language
Compiler
A program the translates high level language program (source code) into machine code
A compiler translates every statement in the program into machine code, called object code.
If the compiler hits a syntax error it will not translate the statement and no code is produced
Interpreter
A type of program which translates high level program into machine code
It works by translating line by line. It translates one line and if it has no syntax errors it executes it it moves on to the next line.
Compiler vs. Interpreter
Compiler:
- Has to correct all syntax errors before running
- Fast execution of object code
- Once object code is produced it can be run and
installed on any computers
- A user can not see source code after purchase
Interpreter:
- Good for program development as parts of the program
can be executed despite having errors
- Slow execution as every line must be translated before
execution
- A user must have the programming language and
interpreter on their computer
- A user can make changes and sell your program after
purchase
Advantages and Uses of Assembly code
Advantages:
- Manipulation of individual bits and bytes
- Runs very fast
- Occupies less memory than code compiled from a high
level language
Uses:
- Hardware specific code like driver devices telling the
computer how to communicate with eg. boot code in
ROM, printer, scanner etc.
- Control programs in embedded systems in washing
machines, modems, routers, cars, digital watches etc.
- Real time applications requiring instant response,
network software, medical equipment
Importance of data
Millions of organisations keep data about their customers, members and products.
Banks, governments, health departments, shops, schools and and exam boards all keep data on computers
Some threats to data
Accidental damage:
Data entry errors
Program errors
Errors in procedure
Accidental loss or deletion
Hardware failure, damage or crash
Natural disaster:
- Fires, floods etc.
Malicious actions
Backups and archives
Backups are made regularly so lost or corrupt data can be restored.
Backups should be stored in a secure location offsite. Employees taking home a backup tape or mirroring all transactions on a second remote computer.
Archived data is data that is no longer needed for immediate processing but needs to be kept
Cloud storage
Holding all company data in “the cloud” is becoming more and more popular and considered safer than data stored in an office.
Physical security
Data needs to be kept physically safe from intruders, in large companies by…
Issuing staff with ID
Having all visitors sign in on arrival and having escorts around the office
Keeping sensitive areas locked
Security cameras
Security guards
Physical Security and Biometrics
Locks on doors
Security Guards
Biometrics:
- Fingerprint recognition
- Retina scanner
- Iris recognition
- Voice recognition
Audit trails and logs
Audit trail maintains a record of all activity on a computer system
The time and date a user accesses the system will be logged as well as their activity
Assists in detecting security violations
Help system admin ensure the system has not been harmed by hackers, insiders or technical problems
Acceptable use policies (AUP)
Many businesses and educational facilities require employees or students to sign an AUP before being given a network ID
Secure passwords
Minimum of 8 characters
Mixture of numbers, lowercase and uppercase characters
Include symbols
Do not include name, DOB or personal details
Phishing
A phishing email is one that tricks you into handing over your personal or sensitive information
You receive an email leading you to a bogus site to enter your details from where they are captured by phishers
What to look out for:
Generalised impersonal greeting
Sender’s address, variation from original
Forged link, roll mouse over link to check
Request personal information, legit sites do not do this
Sense of urgency
Poor spelling and grammar
High level languages(4)
Close to human language
Independent of platform (works on different machines)
E.g. JAVA, Python, VB
Easier to correct errors
Low level languages(4)
Assembly
Machine Code
Works directly on the CPU
Can use machine specific functions
Low level language advantage(3)
Direct access to the processor
Uses less memory
Executes instructions faster
Translators(3)
Compilers
Accumulators
Assemblers
Compilers(6)
Translates whole program at once
Creates an exe file
No need to recompile
Therefore allows faster execution
List of errors created
Optimizes source code
Interpreters(5)
Translates one line of code at a time
Machine code directly executed
Identifies error as soon as it finds one and stops
Error must be fixed to continue
Easier to debug
Assemblers(2)
Translates low level language into machine code
- Only option for low level language programs
Errors(2)
Syntax
- Logic
What is a computer program?
a list of instructions that enable a computer to perform a specific task
What is a translator?
convert a program into binary instructions that a computer can understand
What do high-level languages allow a programmer to do?
focus on the problem to be sold with no knowledge of the hardware and the instruction set of the computer that will use the program
What type of language is portable and can be used on different types of computer?
high-level languages
What do low-level languages relate to?
the specific architecture and hardware of a particular type of computer
What are assembly languages?
low-level programming language
needs to be translated into machine code by an assembler
What is machine code?
binary instructions that a computer understands - no translation is required
What are the three types of translators?
compilers
interpreters
assemblers
What are compilers?
a computer program that translates a program written in high-level language into machine code
so it can be directly used by a computer to perform a required task
What are interpreters?
a computer program that reads a statement from a program written in a high-level language, performs the action specified and then does the same with the next statement
What are assemblers?
a computer programs that translates a program written in an assembly language into machine code
so that it can be directly used by a computer to perform a required task
What do compilers do?
translates a high level language program into machine code
executable file of machine code produced
one HLL statement –> several machine code statements
compiled programs used without compilers
distributed for general use
What do interpreters do?
executes a HLL one statement at a time
no executable file of machine code produced
one HLL statement –> needs several machine code instructions
interpreted programs need interpreters
used when a program is being developed
What do assemblers do?
translates a low level language into machine code
executable file of machine code produced
one low level language statement –> one machine code instruction
assembled programs used without assemblers
distributed for general purpose
What is software, and the two kinds of it?
Software is the programs running on a computer system, the two kinds are:
Application Softwares
For User Benefits
System Softwares
For Hardware and other software to operate.
Game Engines; Utility Programs
What is the Operating System?
It is the essential software that links hardware and other software together and manages the computer system.
Manages Hardware
Manages Applications
Creates a user Interface
Provides a layer of security
What does the OS do?
User Management
Peripheral Management
File Management
Memory Management
Process Management
What is the User Interface, and the two kinds?
Command-Line Interface
A shell responding to successive text commands
More direct and compact
Graphical User Interface
uses Icons and other Visual Indicators
What is Process Management?
A single-tasking Operating System can only execute 1 process at a time, which means it needs to know when it must switch. Process Management includes interrupts.
A multi-tasking OS still executes only 1 process but allows multiple apps to run by rapidly switching. An OS uses CPU time for the processes, and prioritizes them.
What is Memory Management?
When a program is opened, it needs to be copied into the RAM. The OS oversees the allocation and management of RAM space, and decides when virtual memory is needed.
What is Peripheral Management?
Peripheral Devices are supplementary hardware, like keyboards, printers and cameras. The OS uses device drivers, which convert the signals from the peripheral signals into a signal the OS can understand. A driver is an interface, which hides the complexities of the hardware.
What is User Management?
It is the management of usernames; passwords, and account creation. In multi-user OSs, there are user account controls.
What is File Management?
The OS manages records of all files and their location, and allows what each user can access.
What is Utility Software?
Utility Software analyses, configures, optimises or maintains a system.
What are the kinds of Utility Software?
Encryption Software
Encrypts and Decrypts Files
Data Compression Software
Reduces File Sizes
Backup Software
Defragmentation Software
File Converters
Repairing Files
Anti-Viruses
Anti-Spyware
What is Backup Software?
Full-Backup:
Creates copies of all files
slower to backup, faster to restore
Incremental Backup:
Data created after previous backup is copied
What is Defragmentation?
Data is stored in hard disks wherever there is space, this can scatter the data. Defragging reorganizes related data, so they can be accessed faster - it makes the data continuous again.
What is Defragmentation Software?
Data in hard disks are written in whichever part is empty, this causes the data to be fragmented. Defragmentation rearranges the data so it becomes continuous again.
What are File Converters?
They change data from one format to another.
What is an Anti-Virus?
Anti-Virses detect and remove malware and prevent them from being installed as well as giving real-time protection. It doesn’t only protect from viruses.
What is Anti-Spyware?
Anti-Spyware may contain databases of known spywares.
What is a software model?
Software models are used to simulate aspects of the real world. It can be like weather forecasting, nuclear physics, economical forecasts.
How do you build a software model?
Work out what connects aspects of the real problem
Make assumptions and simplify the problem
What are the two kinds of Programming Languages, and what is their main difference?
High-Level Programming Languages
Low-Level Programming Languages
High-Level Programming Languages are made to resemble human language, whilst Low-Level Languages are closer to what a computer might understand.
What are the Low-Level Programming Languages?
Machine Code
Assembly Language
What are the High-Level Programming Languages?
Python
Java
C
C++
Ruby
What are the Advantages and Disadvantages of a High-Level Programming Language?
Advantages:
Similar to Human Language
Easier to Understand
Easier to spot errors
Portable
Disadvantages:
They have to be translated into machine code
They tend to be slower
They can be inefficient
What are the Advantages and Disadvantages of a Low-Level Programming Language?
Advantages:
Efficient
Quick to run
Uses less memory
Can directly change a computer’s hardware
Disadvantages:
Difficult to understand
More specific to a processor
harder to spot errors
What is Assembly Language?
Assembly Language uses Mnemonics, although it is Low-Level, it still needs to be translated. it is also specific to hardware.
What is a Translator and the three kinds?
A translator converts code from one language into the equivalent code for another language. The kinds are:
Assemblers
Compilers
Interpreters
What are Assemblers? And what do they do?
Assemblers convert assembly code into machine code.
It turns assembly language into object code then into machine code
It detects errors in the first phase
It is Fast but slower than a compiler
What are Compilers? And what do they do?
Scans the whole code
Has an executable file
Can be distributed, but code is hidden
Faster
Errors are shown after scanning the whole code
Operating systems
An operating system is a collection of programs that form the basis of the main system software found in a computer system. An operating system provides a platform for application software to be installed.
Interrupts
An interrupt is an electronic signal from hardware or software that requests the processor’s attention.
An operating system contains a program called an interrupt handler. The role of the interrupt handler is to prioritise the interrupt signals as it receives them and places them in a queue to be handled.
Interrupts can be hard or software based, are handled by the operating system, allow a computer to multitask, does not work out priority and a computer cannot function without interrupts.
–––––––––––––––––––––––––
Interrupts are signals sent to the CPU by external devices to indicate that an event needs immediate attention
They tell the CPU to stop what it is currently doing and give priority to the interrupt
Hardware interrupts are generated by hardware devices eg. printer out of paper
Software interrupts generated by programs
eg. divide by zero
Software
Software Categories
Software types
Categories:
System software, Application software
System software:
Programs that are needed to run the computer eg. windows
Application software:
Programs that are needed to perform tasks for the user
Free software, freeware, shareware:
Most commercial software has to be paid for
Using an unlicensed copy of software is a copyright infringement and is illegal
Some software is free of charge and allows users to study, modify and distribute it
Free software
Free software is software that comes with permission to use, copy and distribute it with modification either gratis or for a fee
Open source software
Open source software is free of charge and the source code is given to a user to use in any way they like
Freeware
Freeware may be used without payment it may permit redistribution but not modification as the source code is not available.
Examples:
Google chrome
Skype
Adobe reader
Shareware
A software that is initially free on a trial basis
The software is copyright and after trial must be paid for, the source code is not available and it can not be modified but is often encouraged to be made copies of and shared to help distribute it.
Operating Systems
System software types
Examples of OS
Definition and function
System software:
Operating systems
Utility programs
Program translators
Examples:
IOS
Android
OS X
Windows
Google chrome
Linux
Definition and function:
Software that manages a computer’s hardware and provides a user interface
Also provides security
User interface
mini def
Types x 6
Without user interface we would communicate in binary
Types:
GUI , graphical user interface; most commonly associated
Menu-driven interface; music players and ATM machines
CLI, command line interface; all user commands types in as text and no graphics, uses less space on disk and RAM
Voice activated
Real-time
Windows; WIMP - Windows, Icons, Menus and Pointers; user can click on icons using a pointer or cursor and right click to display a menu
How computers handle Memory Management
Data used by the computer is copied into main memory
The operating systems keeps a record of where each program and its data are located
It must not overwrite pre-existing programs
Multi-Tasking
When running multiple programs on a computer,
the programs in the background running are taking turns to get processor time to execute instructions
The OS Manages how the programs share the processor
Task manager
Peripheral management
Peripherals are all the devices outside of the CPU, input/output devices and secondary storage, access speed of these is relatively slow
Print buffer
Status of each job on a printer screen displaying whether it is printing or waiting to print
Storage device and disk file management
who manages and what they do
def
OS manages:
Copying files from disk to main memory
Copying data files back to secondary storage
Hard disk in computer is a storage peripheral:
OS manages where on disk files are written, keep track of their location to be fetched, making sure no file overwrites another file
Managing Security
who does and how do they
OS organises user logins and passwords which may include password protection and control access rights
Access rights
If a computer is used by more than one user, each user should only be able to see their own files. Users and system admin have different levels of access rights. Some users may be allowed to access files but not edit them.
May include encryption of some files
Machine code
Computers represent everything in binary
Program instructions once converted to binary are known as machine code, eg.
1001 1100 0000 1110 1101 1010 1101 1011 0101 1001
Each different type of processor has its own set of machine code instructions, a typical instruction in a simple processor may look like:
Opcode: 6 digits, 010110
Register: 2 digits, 01
Operand: 8 digits, 0011 1010
The Opcode is basic machine instruction like ADD, SUBTRACT, LOAD, STORE and the operand is the value or location of the value to be operated on.
All arithmetic is carried out in the register.
High level code
High level codes typical instructions look like math or english and are easy to guess or understand the meaning. Python, Delphi and Java are known as high level codes
High level languages have complex statements and program structures can not easily be translated into machine code. Each statement in high level code represent several machine code statements
Assembly language
Going from machine to assembly code was very time consuming, and is sometimes called a “first generation language”.
Assembly is the “second generation” eg.
LDA 1 Mark1 ; Load contents of Location17 into Register 1
Instruction Set in terms of processor handling
Processors vary in the number and type of instructions they can process.
They cannot deal with WHILE, THEN etc.
Compare and Branch instructions are used test conditions and jump to another if true
Assembler
A computer can not process assembly language instructions directly
The assembler is a program which translates assembly code into machine language
Compiler
A program the translates high level language program (source code) into machine code
A compiler translates every statement in the program into machine code, called object code.
If the compiler hits a syntax error it will not translate the statement and no code is produced
Interpreter
A type of program which translates high level program into machine code
It works by translating line by line. It translates one line and if it has no syntax errors it executes it it moves on to the next line.
Compiler vs. Interpreter
Compiler:
- Has to correct all syntax errors before running
- Fast execution of object code
- Once object code is produced it can be run and
installed on any computers
- A user can not see source code after purchase
Interpreter:
- Good for program development as parts of the program
can be executed despite having errors
- Slow execution as every line must be translated before
execution
- A user must have the programming language and
interpreter on their computer
- A user can make changes and sell your program after
purchase
Advantages and Uses of Assembly code
Advantages:
- Manipulation of individual bits and bytes
- Runs very fast
- Occupies less memory than code compiled from a high
level language
Uses:
- Hardware specific code like driver devices telling the
computer how to communicate with eg. boot code in
ROM, printer, scanner etc.
- Control programs in embedded systems in washing
machines, modems, routers, cars, digital watches etc.
- Real time applications requiring instant response,
network software, medical equipment
Importance of data
Millions of organisations keep data about their customers, members and products.
Banks, governments, health departments, shops, schools and and exam boards all keep data on computers
Some threats to data
Accidental damage:
Data entry errors
Program errors
Errors in procedure
Accidental loss or deletion
Hardware failure, damage or crash
Natural disaster:
- Fires, floods etc.
Malicious actions
Backups and archives
Backups are made regularly so lost or corrupt data can be restored.
Backups should be stored in a secure location offsite. Employees taking home a backup tape or mirroring all transactions on a second remote computer.
Archived data is data that is no longer needed for immediate processing but needs to be kept
Cloud storage
Holding all company data in “the cloud” is becoming more and more popular and considered safer than data stored in an office.
Describe features of an operating system
− Manage input output
− Multi-tasking
− Loading and running of apps
− Manage security
− Memory management
− Error handling
− Human computer interface
Describe High level language
High-level
− Makes use of words close to human language
− Machine independent and portable
− Problem and logic focussed
− Needs to be translated/interpreter/compiled (to low-level for processing by
computer) // needs converting to machine code
− Hardware of computer does not matter
Benefits
− Easy to understand as its similar to human language
− Easy to debug, less likely to make mistakes
− Less time to write
− Has a great range of languages
Describe Low level language
Low level
− Closer to/is machine code
− May use mnemonics
− May need an assembler to be translated
− One line of code represents a single instruction
Benefits
− Machine dependent
− Have direct access to memory locations/registers
− May require use of special hardware
− Code runs fast
Disadvantage
−Easy to make errors and hard to understand
Examples
− Machine code
− Assembly
Statement summing up them
− The structure of language statements in a computer program is called the syntax
− A programming language that uses natural language statements is called a High level
language
− When programs are written in this type of language they need a translator to convert
them into machine code
− A programming language that is written using mnemonic codes is called assembly
language.
− This is an example of a low level language
Describe Translators
− Programs need to be translated to machine code so we have 3 types of translators
− Compiler, interpreter, assembler
−Compiler translates high level to machine code
− Interpreter translates high level to machine code
− Assembler translates low level to machine code
Describe compiler
− Translates a whole program in one go
− Produces an executable file
− All error list produced at the end
− Once program is compiled, doesn’t need to be recompiled
− One high level statement can be translated into many machine codes
− Executable file usually distributed for general use
− Executable file does not require to be re-translated
Describe Interpreter
− Translates code line by line
− No executable file produced, interpreter required every time
− Stops translation when error found, then allows you to continue from where u started
− Errors shown in real time, when found, easy to debug
− Used in developments of a program or game
Difference between DVD and Blu-ray
− DVD uses red laser/light whereas blu-ray uses blue/violet laser/light
− DVD has a smaller (storage) capacity // Blu-ray has a larger (storage) capacity
− DVD has two layers (of polycarbonate) whereas Blu-ray disks have a single layer (of polycarbonate)
− DVD has a slower transfer rate (of approximately 10 mbps) // Blu-ray has a faster transfer rate (approximately 36 mbps)
Describe how an infra-red screen detects a users touch
Infra red rays are sent across the screen from the edges
Sensors are around the edges and capture beams
Infra red is broken by a finger blocking it
Calculation is made to locate the touch based on where the beam was broken
what does an operating system do? (6)
loads software
Manages hardware
Manages error handling
Manages user accounts
Allows multitasking
Provides an interface
What is a high level language
portable languages that need to be converted into machine code to run on a computer
e.g C++, Python, Java
What is a low-level language
language that relates to the specific architecture and hardware of computer
Advantages of High Level Language
easier/faster to write code as uses English-like statements
easier to modify as uses English-like statements
easier to debug as uses English-like statements
portable language code - because it is written in source code
Only need to learn a single language - as this can be used on many different computers
Advantages of low level language
can work directly on memory locations
can be executed faster
translated program requires less memory
no need for compilers/interpreters
features of a compiler
A report of errors is produced at the end of translation
Translates high-level language into machine code
An executable file is produced
The program will not run at all if an error is detected
Can be used without compiler
features of a interpreter
Translates from high-level language into machine code
Cannot be used without translator
Executes a high-level language program one instruction at a time
Produces error message each time an error encountered
features of assembler
low-level programming language
uses mnemonic codes
specific to the computer hardware.
used to create drivers for hardware