6.1 - Hardware and Software
- hardware
- physical components
- electronic/electrical
- platform on which software executes
- software
- sequences of instructions (programs)
- understood and executed by hardware (in its circuits or in VM equivalent)
- Classification of software
- system programs = control the operation of the computer itself (OS)
- application programs = solve problems for users
- System software
- layer/layers of software to enable users to operate comp without having to be familiar with internal working. Layers = system software
- includes operating system etc
- Application software
- program/programs designed to support user-oriented tasks not specific to computers (e.g communicating, looking up info, etc)
- cannot execute unless first translated into lang of computer = machine code or a form executable by a computer
- needs to be loaded to main memory and must be able to communicate with IO devices or other computers
- may need to access or store information
- Types
- General purpose application software
- appropriate for many application areas
- cheap = price spread over large customer base
- reliable = test on large customer base + experienced team
- Special purpose application software
- software for a particular application
- reliable = test on large but specialised customer base + experienced team
- Bespoke software
- software written from scratch for a certain task
- made when no general purpose or special purpose software exists that could do the job
- System software
- operating system sftware
- controls the operation of a computer
- utility programs
- designed to perform a commonplace task
- formatting, partitioning, defragmentation, etc
- library programs
- collection of compiled routines that other programs can link to and use
- linking may be done at compile-time or run-time
- loaded run-time libraries remain resident in memory until the last executing application is closed
- Windows: dlls
- Translators
- Compiler
- high-level lang to machine code or other lower-level lang
- Assembler
- symbolic form of machine code (assembly language) to machine code
- Interpreter
- translates and executes a high-level language or intermediate language one satement at a time
- Role of operating system
- Hide complexities of hardware
- Manage hardware resources
- controlled allcation of processors, memories, IO devices among the various programs competing for them
- manage data storage