components of a computer system
the function + operation of hardware within a computer system
input –> processing + control <–> storage <–> processing + control –> output
basic functions of input - refer to hardware deck
how is input received by the processor
basic functions of output - refer to output devices deck
main function of storage
instructions and programs that control hardware
- reads, writes and retains data
- classified as primary and secondary, or temporary and permanent
primary vs secondary storage: refer to storage units deck
primary(temporary): main memory, requires power to retain data
- volatile(except for ROM)
- fast, small, expensive, close to CPU
- works closely with processor
secondary(permanent): permanent, does not require power to retain data
- non-volatile
- mostly classified as magnetic, optical or solid
- slow, big, cheap
- greater storage capacity
conceptual diagram of software linking with hardware
users <–> application software <–> operating system <–> hardware
function of operating systems
types of operating systems users + tasks
Single-user, single-task systems
- one user, one task
Single-user, multi-tasking systems
- multiple programs on a single computer, common in personal computers
- operating system allocates CPU time to each program
Multi-user operating system
- separate resources, multiple users allowed access at one time
- used in mini + mainframe computers
RTOS: real time operating systems
- machinery + specific instruments, fast w/ no lag
- tasks performed in real time/instantly
tasks performed by operating systems
processor Management
- allocates background processes their processing time
memory + storage management
- allocates memory for separate processes, avoids clashes
device management
- translates the program into appropriate language for device
application interface
- provides communication between application + operating system
user interface
- provides communication with user
software utilities
application software meaning
software which is created in response to a problem, sitting on top of the operating system
- application software is designed with a specific operating system in mind
difference between off-the-shelf packages + custom designed packages
off-the-shelf packages
- distributes through internet or retail stores
- the wider the audience, the cheaper the product
- could be used as a software development tool; which will create CTOS(customized off the shelf) packages, which will require the original product to operate
custom designed packages
- customized to client’s unique problem
- usually made for large businesses/the government
- apps with unusual/custom hardware
- performance decreases with more users
machine languages
assembler languages
high-level languages
declarative languages
event driven vs sequential
event driven: each control is constantly monitored for an input
- collection of inter-related modules when input is received, corresponding code is executed
- multiple events can happen at the same time
- lots of controls used
sequential: pre-determined sequence
- unable to deviate from sequence
- not flexible, does not account for user’s possible input
steps of translation
compilation vs interpretation
compilation: translates the whole of the source code at once
- only needs to be translated once on one local source
- very fast, no translation needed during run time
interpretation: translates source code statement by statement
- translates code at run time
- significant processing = poor performance
- good for testing small changes to code
- interpreter must also be installed
fetch-execute cycle
a cycle used to carry out each and every machine language translation
- information hardwired in CPU
microcode
CPU operations which machine language instruction corresponds to
two parts of fetch execute cycle