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
Interpretation +/- (4)
+ Developers can quickly test the program without having to translate the entire program every time
+ Errors appear as they occur so it is easy to identify and fix them
- Interpreting source code is slower than running object code
- Users must have a translator to run the source code
Intermediate Language (3)
- Some compilers produce an intermediate language (e.g., bytecode) as their final output
- This is because the code may need to run on multiple platforms
- To execute it, a virtual machine performs just in time translation to convert the intermediate language to object code and execute it
Source Code vs Object (Executable) Code
Source code is code in its original form, written by the programmer whereas object code is compiled source code, which can be executed