Looks like no one added any tags here yet for you.
examples of OS
Windows 7, Windows 8, OS X, iOS, Android, Linux
what types of user interface are there
CLI (command line interface) a shell that responds to text command (more direct and compact)
GUI (graphical user interface) using icons and other visual indicators to navigate commands
what types of software are there
system software application software
what does system software do
software that is needed to manage and control the computer system and assists other software to run
examples of system software
operating systems security software file management software.
What does application software do?
allows user to complete a task
Examples of application software
Word processing, spreadsheet, presentation, database
how does a multi tasking operating system work
actually only one process at a time but switches rapidly so it appears to be multiple
What is a bootstrap loader?
small program stored on ROM to load up OS into RAM to continue the job
what does the CPU do overall
[ fetches and excecutes instructions ] Fetches instructions & data (from memory) • Decodes the instructions • Executes (carries out) the instructions
Von Neumann Architecture
data and instructions are stored together in main memory in binary
instructions executed sequentially (one at a time it is fetched from memory and passed to CPU)
what is a general purpose computer
a computer designed to carry out multiple functions
What is an embedded system?
a special purpose computer built into another device. (washing machines, microwaves, heating) usually have one or two functions
how does the OS manage security
different users with secure passwords
different access rights for different users
automatically updating the OS to patch up security loopholes
encrypting files on hard disk
why do we need utility software
(type of system software)
anti-virus software to regularly check for malware so that you can delete or qurantine any harmful programs to prevent damage.
disk maintenance will help the computer run smoothly by defragmenting as it reorganises files so they can be organised quicker
disk cleanup deletes files no longer needed to free up storage
a firewall will control access to the cpmputer to prevent hackers
What is software?
The programs that run on a computer
What is utility software?
Utility software is system software which is designed to help analyze, configure, optimize or maintain a computer. (housekeeping functions) eg encryption software data compression data organisation utlitiyes file backup utilities
Examples of maintenance utilities
Housekeeping functions like disk defragmentation and automatic updating
what is hardware
The physical components of a computer system
three box model
3 components (processor, main memory, input/output controllers) are linked by system bus
system bus is a high speed communication channel
classifying software
system software application software
system software
responsible for the general operation of a computer system. provides a platform for application software and a means for it to interact with the hardware its running on
examples of system software
Operating system Utilities Drivers/ Libraries translators
application software
computer software created to allow the user to perform a specific job or task
can be general or special purpose
Examples of application software
Word processing, spreadsheet, presentation, database, media player, calculator
utility software
allows user to configure, control, improve and maintain general operations of computer
examples of utility software
Disk defragmenter
Automatic backup software
Automatic update
Virus checker
Compression software e.g. WinZip
libraries
A collection of resources used to develop software incl. pre written subroutines and code
DLL (Dynamic Link Library)
A file that includes reusable code within Windows-based systems.needed by web browser extensions and programs
programming languages
machine, assembly, high-level
translators
convert source cofe int
Assemblers, compilers and interpreters
assemblers
turn assembly language into machine code
compilers
translate high-level language programs into machine code
intepreters
translate high level programs into machine code
Off-the-shelf software
mass-produced by software vendors to address needs that are common across businesses, organizations, or individuals.
benefits of off the shelf software
readily available for anyone to use cheaper as development costs are shared amongst buyers likely to be well documented and tested
drawbacks of off the shelf software
have little or no control over what features there are may not do exactly what you want
bespoke software
Software specially written for a particular user.
pros and cons of bespoke software
significantly increase the cost may take years to develop however you have complete control over the process which gives complete functionality
What does the operating system do?
Software that controls the hardware and software resources.
resource management
allows applications to interact with hardware
memory management
processor scheduling/management
security
peripheral management of IO devices
backing store management
where is OS stored
Hard disk/drive (since its non-volatile it doesn't get deleted when comp turned off)
OS is copied into RAM from 2ndary by bootstrap loader since data access from 2ndary is so slow.
How are complexities hidden
The true complexities of operations are hidden from the end user via an Application Programming Interface
API
think of waiter metaphor
user look at menu and gives waiter (API) request
API takes to OS (the kitchen)
kitchen sends back prepared dish via waiter
memory management
OS
Keeps track of what portions of memory have been allocated
Maps memory to each process
Determines how much memory to allocate to each process
Determines when a portion of memory should be available for a process
virtual memory and when
If applications need more memory than a computer has, then the operating system will sometimes use a section of secondary storage to mimic RAM. This is called virtual memory.
adv of virtual memory
Allows you fit many large programs into relatively small RAM.
• You don't have to buy more RAM.
• Code can be placed anywhere in physical memory without relocation.
• More processes can be maintained in Main Memory which increases effective use of CPU.
diasdv of virtual memory
• Applications run slower if the system is using virtual memory.
• It takes more time to switch between applications
• Less hard drive space for your use.
• It reduces system stability.
processor/ scheduling manager
the OS will use a scheduler to swap tasks in and out of the processor so that it appears to the user that the computer is carrying out more than one task at the same time. this is called multi tasking
The scheduler
operating system module responsible for ensuring that processor time is used as efficiently as possible.
• maximise throughput
• be fair to all users on a multi-user system
• provide acceptable response time to all users
• ensure hardware resources are kept as busy as possible
scheduling
job of knowing when to swap processes
examples of scheduling algorithms
Round Robin - each process in turn has use of the processor for a given time slice
• Shortest job next
• Priority system
multi-processing
The simultaneous execution of two or more computer programs or sequences of instructions by a computer (parallel processing).
means more than one processor is being used EG QUAD CORE DUAL CORE
Backing store management
The OS 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
signal sent to the processor that interrupts the current process. It may be generated by a hardware device or a software program.
eg when printing could get a message saying printer ran out of paper
examples of interrupts (general)
hardware interrupt - often created by input device such as mouse or keyboard
disk controller will send one if it cant locate a file (eg typed wrong filename)
software interrupts - used to handle errors and exceptions whilst software is running
BIOS
Basic Input/Output System stored in non volatile mem and is available when computer starts.
what does the BIOS do
initialises and tests the hardware in a computer system so that it is ready for use by other software on the computer. HOLDS BOOTSTRAP LOADER
low-level language
defined by the processor they are designed to run on. Machine oriented. have no built in functions and can access specific registers in the processor.
different types of low level language
machine code assembly language
high-level language
A programming language that is designed to be easy for humans to read and write. (close to natural spoken language)
Types of high level languages
imperative declarative object-oriented
Imperative language
A language based on giving the computer commands or procedures to follow.
GIVES INSTRUCTIONS designed to solve specific problem types
procedural and imperative are used to describe this subset.
procedural language
used to write programs that can be split into procedures or subroutines
Declarative Language
Programmer defines the problem to be solves rather than how to solve it. EG SQL
machine code
BINARY that represent simple instructions executed by a processor.
when necessary for humans to see and interact its usually repped as hexadecimal (easier to read and understand than binary)
assembly language
allow programmers to write machine code using a set of 'mnemonics' that represent the binary equivalent in machine code.
english language equivalent of the operation EG ADD LDA BRA
Assembler
translates the source code (which is in assembly language) into machine code equivalent so it can be run.
advantage of low level languages
programmer is able to ensure the machine code is in its most efficient form.
assembly corresponds to machine code more directly so programmer can optimise and have more say over how and what program does .
possible optimisation is low level can make use of specific registers and more control over movement of data in and out of the processor
suitable for low memory embedded systems and device drivers
can ensure device resources are used efficiently eg if the device has limited storage or memory
disadvantage of low level languages
more difficult to write programs as programmer needs to have a very good understanding of the hardware used
not portable as they are specific to a particular instruction set. high level can be compiled for diff processors
low level doesn't have library of functions unlike high level where they can be imported and used. AKA instructions have to be written by scratch.
Advantages of high level languages
much easier to write and understand than low level. normal command words such as IF, DO , FOR are used so its much easier for humans to understand.
portable (can be compiled or translated to run on a wide range of computer architectures as they are not specific to a particular instruction set.
come with libraries of functions that can be imported and used so have the adv of pre-written code
higher level of abstraction so one command equates to many machine code instructions (makes it faster and easier to write)
examples of imperative languages
PYTHON C FORTRAN
addressing modes in machine code
direct immediate
direct addressing mode
operand specifies address of memory or register location (of the data to be used or stored).
Immediate Addressing Mode
operand is actual value of the data to be used (often denoted by # in assembly language)
translator
system software that translates program written in source code into machine code
-interpreters -compilers -assemblers
source code
code written by a programmer specifying the actions to be performed by computer software
object code
Output of translator after turning source code into machine code.
main ways of high level into machine code
compilation interpretation
determined by particular implementation of the language
low level into machine code
this code ie assembly language programs use
ASSEMBLERS to be translated
Compiler
translate source code into executable machine code that CANNOT be converted back into source code
is a program suite
interpreter
translate and execute each line of source code one by one
differences between compiler and interpreter
compiler doesn't execute code unlike interpreter
compilers compile the whole program whereas interpreter has a line by line approach to show errors
adv of compiler
code can be well optimised by compiler
compiled programs can be distributed as machine code so source code is hidden and can be kept secret for commercial reasons
no translation needed at execution time as its already done when compiled.
diasdv of compiler
-have to wait until the entire program is compiled before receiving any errors, which for a large program may take some time
If you want to change something in the program, you have to recompile the entire program
The executable code produced is specific to the machine
adv of interpreter
Errors will be reported as soon as they are encountered, which means that you don't have to wait for the entire program to be compiled
Errors are shown line by line as the interpreter reaches them (identifies where the error acc is) hence -->
Debugging is quick and easy
Disadv of interpreter
The program requires an interpreter to be run
Translating the code line by line at execution time is slower than running compiled machine code (as each time program is run it has to be translated all over again)
The interpreter takes up space in memory
assembler
translate assembly code programs into executable code.
assembly code is platform-specific so assemblers are similarly specific.
when to compile or interpret
depends on the programming language in use. For example, Java programs must be compiled, whereas PHP programs are interpreted.
programmer should considers benefits and drawbacks of each technique when choosing a language that needs to be compiled or interpreted
bytecode
Most interpreted languages now use bytecode as an intermediate stage to speed up the translation process.
The source code is compiled to produce bytecode, which is interpreted (ie translated and executed) by a virtual machine
eg java uses it to make their language portable
addressing mode
The way in which the operand is interpreted.
brief evolution of languages
ada lovelace - binary assembly language
assembly language
autocode algol cobol basic c
When is assembly code preferred
If wanted more direct control over data manipulation
needs to be executed as fast as possible whilst occupying the littlest space as possible
eg embedded systems, sensors, device drivers, interrupt handlers
adv of bytecode
speeds up the translation process
portable as long as user has virtual machine
can act as extra security as you are running or sharing bytecode instead of source code itself which can be copied and sold etc
order of operations boolean algebra
brackets
NOT
XOR
AND, NAND
OR, NOR
advantages of NAND gates
can minimise cost of production
using as few gates as possible can speed up processing
less heat generated
operating system
role is to hide the complexities of the hardware
what is am equivalence tester and how to make one
checks if two bits are the same
use XOR then NOT gate
three basic operations of processors
adding, shifting and flipping bits
what does a binary half adder do
adds two single bit binary numbers together
outputs the result of calculation (S) and the value that is carried (C)