U15 Hardware and Virtual Machines Flashcards
CISC
- complex instruction set computer
- designed to carry out a given task with as few lines of assembly code as possible
- CISC processor is based on a complex instruction which needs to be converted by the processor into a number of sub-instructions to carry out the required operation
fixed length instructions
the amount of memory it will consume is fixed (e.g: 16 bits)
variable length instructions
can take as much space as it wants
hardwired control unit
- uses logic circuits
- flip flop
programmable control unit
uses programs, code will compile, run and generate output
features of CISC
- larger number of instructions + more complex
- fewer registers => most processing is done in memory
- many instruction formats
- requires more complex circuit
- has more addressing modes
- makes less use of RAM
- poor pipelineability
- uses multicycle and variable length instruction
- has programmable control unit
RISC
- reduced instruction set computer
- less instruction => better performance from the processor (does not need to break complex instructions)
- assembly code is broken into a number of single cycle instructions
features of RISC
- fewer instructions
- better pipelineablity
- many registers
- simpler instructions
- few instruction formats
- usually uses single cycle instructions
- uses fixed length instructions
- less complex circuit
- fewer addressing modes
- makes more use of RAM
- has hardwired control unit
pipelining
- instruction level parallelism => multiple operations are performed in a single cycle
- execution of an instruction is split into number of stages
- when first stage for an instruction is completed the first stage of the next instruction can start executing
- another instruction can start executing before the previous one is finished
- processing of a number of instructions can be done simultaneously
alternate method to pipelining
- content of five stages can be stored in register
- then the processor can be restored to its previous state once the interrupt has been serviced
flynn’s classification
- computer architecture
- based on number of instructions and data
- instruction stream: sequence of instructions executed by the processing unit
- data stream: sequence of data or temporary result called by instruction stream
single instruction single data (SISD)
- only one processor
- processor executes one set of instructions on one set of data
single instruction multiple data (SIMD)
- uses many processors
- each processor has several ALUs
- each ALU executes the same set of instruction on a different set of data at the same time
multiple instruction single data (MISD)
- several processors
- each processor executes a different set of instructions on one set of data at the same time
multiple instruction multiple data (MIMD)
- several processors
- each processor executes a different set of instructions
- each processor operates on a different set of data
massively parallel computers
- large number of processors
- working collaboratively on the same program
- working together simultaneously on the same program
- communicating via message interface
hardware issue in massively parallel computers
- processors need to be able to communicate
- so that processed data can be transferred
- from one processor to another
- so it’s a very challenging topology
software issue in massively parallel computers
- appropriate programming language should be used
- which allows data to be processed by multiple processors simultaneously
features of MPCs
- large number of processors
- collaborative and simultaneous processing
- network infrastructure
- communicate by sending messages
conditions for MPCs
- no single processor
- should have separate buses
virtual machine
- software that emulates a different computer system
- allows multiple guest OS’s to run on one computer using a host OS
virtual machine manager
a type of software that allows us to run an operating system within another
host operating system
- the operating system that is actually controlling the physical hardware
- or the operating system that is running VM software
guest operating system
- operating system running in a VM and controls virtual hardware
- guest OS is running under the host OS software
role of virtual machine software in the testing of an app
- can create and manage a virtual machine
- translate instructions used by guest OS to what is required by host OS
- emulates hardware
- protects each VM so instances of the app can be tested together
using VM software to test an app pros
- multiple OS can exist simultaneously allowing for testing using same hardware
- only one set of hardware is required
- reduces cost of producing the app as there will be no need to set up more than one computer
using VM software to test an app cons
- execution of extra code
- performance is degraded and more time taken to create the app
- cannot make judgements about response time
pros of using VM to produce software
- software can be tried on different OS using same hardware
- no need to purchase different types of hardware
- easier to recover if software causes system crash
- VMs provide protection to other software
cons of using VM to produce software
- execution of extra code so processing time is increased due to which speed of real performance cannot be tested accordingly
- a VM might not be as efficient because it might not be able to access sufficient memory
- VM may not be able to emulate some hardware as they may not be able to be tested using one
uses of virtual machines by webservers
- could use alt OS to identify possible problems + it’s much easier to create a VM with a new operating system rather than creating a new OS
- could provide a safe environment during testing which doesn’t disrupt the web server services
- easier to try different webserver and OS combo
guest OS receiving data request from an application
- handles the request as if it were running on its own physical machine and it is not aware that it is running on a virtual machine
- I/O requests are translated by VM software into instructions executed by host OS
- host OS retrieves data from the file
- host OS passes the data to VM software
- VM passes the data to guest OS
- guest OS passes the data to the application
tasks performed by VM software
- creates VM
- hardware emulation => existing hardware is made available to guest OS
- controls virtual hardware
- ensures each VM is protected from actions of another VM