6 - Fundamentals of Computer Systems Flashcards
Describe the roles of the four types of system software.
Describe the roles of the four types of system software.
Operating system - Provides a user interface between the user and the hardware, runs application programs and manages hardware resources.
Utility programs - Programs designed to help maintain the computer. Examples include virus scanner or file managers.
Library programs - Collections of resources used to develop software. They include pre-written code and subroutines.
Translators - Converts source code into machine code. An assembler converts assembly code into machine code, a compiler converts source code written in a high level language into machine code and an interpreter treats high level language source code as data and interprets that data as instructions to its own routine.
What are utility programs?
Software that is used to support the efficient running of a computer system. Utility programs can be part of the OS or installed separately. Typically, utility programs perform maintenance, analysis, configuration, and optimisation tasks.
State one purpose of library programs.
- To allow sharing of run-time code across programs.
- To save memory as routines are only loaded when needed.
- To provide access to procedures/functions when writing a program.
- To reduce the time taken to write a program.
State one purpose of the operating system.
- Provide an interface between the computer and the user.
- To manage devices/files/memory.
- To provide a virtual machine.
- To provide a software platform on which other programs can run.
- To hide the complexity of the hardware from the user.
What is the difference between application software and system software?
Application software is used to perform tasks that the user would have to do if they didn’t have a computer.
System software is a layer of software which enables users to operate the computer and is used in the management of a computer system.
Are Operating Systems classified as system software or application software?
System Software because it is required for the functioning of the system itself.
What types of resource management is an operating system responsible for?
- Processors.
- Input / Output Devices.
- Main Memory.
- Storage.
How does the OS manage processors?
The OS is responsible for scheduling processes for programs that are running and allocating them processor time.
How does the OS manage I/O devices?
The OS allocates I/O devices to different processes and manages the communication between these processes and devices.
How does the OS manage memory?
The OS keeps track of what portions of memory have been allocated; determines how much memory to allocate to each process and determines when a portion of memory should be available for a process.
How does the OS manage storage?
The OS will allocate space on a storage device to files, organise files into directories and determine where on the device to save a file. All of these features are part of a filesystem. The OS will also manage which processes / users can access different files and directories.
What is a low-level language?
A low-level language is a language that is very similar to the instruction set of the computer.
Most computer programs are initially written in an imperative high level language rather than assembly language.
Explain why this is the case.
- High level languages are problem oriented.
- High level languages are platform independent.
- High level languages have English like keywords.
- High level languages are less tedious to program as there is a one to many mapping of HLL statements to machine code commands.
- High level languages are easier to write, understand and debug the code.
- High level languages offer extra features such as data structures.
What are the advantages of writing a program in assembly language over writing a program in machine code?
- Easier to understand.
- Takes less time to code.
- Fewer mistakes made in coding.
- Ability to add comments to code.
- Use of symbolic name for operands.
- Use of labels.
- Easier to maintain/debug.
Why are there so many high level programming languages?
- Languages used for a specific problem type.
- Access to specific data types.
- Providing different function libraries.
- Languages developed for specific hardware.
- Languages developed for visual applications.
- Competition between different companies who develop languages.
Some high level languages are imperative. Explain the term imperative.
Imperative high level language programs define sequences of commands for the computer to perform. Imperative high level languages describe how to solve a problem.