6: Fundamentals of Computer Systems Flashcards
Hardware
The physical components of a computer system
Software
Instructions / code / programs
System Software
Software used in the management of a computer system
Application Software
Software for carrying out user-oriented tasks
Operating System (3)
- Provides a user interface between the user and the hardware
- Runs application programs
- Manages resources / hardware
Utility Program (1, 1:4)
- Programs designed to help maintain the computer
- Examples include:
• Virus scanner
• Disk defragmenter
• System monitor
• File managers
Library Program (2)
- Are collections of resources used to develop software
- Include pre-written code and subroutines
Translators (4)
- Convert source code into machine code
- Assembler converts assembly code into machine code
- Compiler converts source code written in a high-level language into machine code
- Interpreter treats high level language source code as data and interprets that data as instructions to its own routine
Examples of System Software (4)
- Operating systems (OSs)
- Utility programs
- Libraries
- Translators (compilers, assemblers, interpreters)
The operating system hides ____
The complexities of the hardware
OS Functions (8)
- To hide the complexities of the hardware from the user
- To call appropriate interrupt handler when an interrupt occurs
- To allocate processors to processes
- To allocate memory to processes
- To allocate I/O devices to processes
- To allocate space on a storage device to files
- Installation of new software and managing updating software
- Manage power consumption
Classification of Programming Languages (2)
- Low-level languages: are based upon the instruction set of the computer
- High-level languages: are problem-oriented and close to a natural language
Low-Level Languages (2)
- Machine-code
- Assembly language
High-level languages include ____
Imperative high-level language
Machine-Code Language
Is written in binary and doesn’t require translation to be run
Assembly Language
Help programmers write machine-code using a set of ‘mnemonics’, that represent a binary, machine-code statement
Low-Level Languages + (4)
- Programs give better access to computer hardware
- Programs may execute more quickly as they require less translation
- Some programs can only be written using a low-level language particularly some parts of a computer’s operating system
- Programs may use less memory
High-Level Languages + (8)
- Programs are portable
- Program code is easier to understand
- Faster development time
- Availability of flow control structures
- Improved features for supporting modularity
- Built-in support for data structures
- Language is problem-oriented
- Support for different paradigms
Imperative High-Level Language (4, 1:4)
- Instructions are executed in a programmer-defined order
- Imperative languages describe how to solve a problem
- High-level languages use English-like keywords
- They support structured statements
- They support the use of:
• Local variables
• Parameters
• Named constants
• Indentation
One statement in an imperative high-level language corresponds to ____
Many low-level language statements
Compilation +/- (4)
+ Commercial software is compiled before distribution to protect the source code
- Errors are reported at the end of compilation, which makes debugging harder
+ Object code runs very quickly but programs take long to compile
+ Users don’t need a translator to run object code