Fundamentals of computer systems Flashcards
State the purpose of an operating system
To hide the complexity of the hardware from the user
State different types of management carried out by the operating system (6 marks)
- Management/allocation of processors
- Management/allocation of memory/RAM
- Management of IO devices/peripherals OR device drivers
- Management of backing store/secondary storage/file management
- Power/battery management
- Interrupt handling
State which of the following classifications best describes a Compiler
- Utility program
- Library program
- Application software
- Translator
- Operating system
Translator
State which of the following classifications best describes a Disk defragmenter
- Utility program
- Library program
- Application software
- Translator
- Operating system
Utility program
State which of the following classifications best describes an image editor
- Utility program
- Library program
- Application software
- Translator
- Operating system
Application software
State which of the following classifications best describes an IDE
- Utility program
- Library program
- Application software
- Translator
- Operating system
Application software
Explain what is meant by a library program
- A resource/collection of program code
- To reduce the amount of programming required OR to provide access to subroutines OR to allow sharing of code across different programs
State the name and describe the purpose of two utility programs
(Allow any reasonable response (too many to list here).)
Mark in pairs, 1 mark for identification and 1 mark for explanation. Max. two pieces of software: (4)
- Anti-virus/anti-malware; used to detect and remove viruses/malware.
- Firewall; used to control/prevent data from being transmitted or received.
- Device driver; used to allow the operating system to communicate with an external device/peripheral (allow by example, e.g. printer).
- Backup manager; used to schedule/organise backup and recovery of data.
- System monitor; used to record/display data relating to the system such as memory usage, processor usage, temperature, etc.
Describe one similarity and one difference between assembly language program code and machine code.
Similarity: both programs will be the same length/have the same number of instructions.
Difference: the machine code program will be represented in binary. The assembly language program will be represented using characters/mnemonics OR the assembly language program will be stored using ASCII/Unicode.
NB: Refuse ‘stored’ instead of ‘represented’ but allow ‘written’. All data stored in a computer system is ultimately stored as binary. Allow ‘stored’ in reference to ASCII/Unicode as the distinction is clear.
State the name of the translator used to convert assembly language code into machine code
Assembler
Jemima has created a computer-based board game that is designed to work on desktop computers, tablet computers and smartphones.
Suggest whether the program should be written using a high-level language or a low-level language.
Justify your response.
High-level language
- The program needs to run on several different platforms.
- Low-level programming languages are platform specific OR high-level languages can be translated/run on different platforms.
- It is quicker for developers to write programs using high-level languages.
- It is easier for developers to write OR read OR debug OR maintain code using high-level languages.
- Comments can be added to high-level code to make the code easier to understand/maintain.
Jemima is using a compiler to translate the program code into machine code.
State the name of another suitable translator.
Interpreter
A program, has been written using an imperative high-level language. When translated the compiler produces bytecode.
Explain what is meant by the term ‘imperative’.
- Instructions are carried out in a specified order/sequence.
- The language describes how to solve the problem.
A program, has been written using an imperative high-level language. When translated the compiler produces bytecode.
Explain the term ‘bytecode’ and describe the purpose of producing bytecode eather than machine code when the program is compiled. (4 marks)
- Bytecode is an intermediate code designed to be run on a virtual machine OR bytecode is a type of machine code that will run on a software platform rather than a hardware platform.
- This allows a high-level language to be compiled into a format that will run on any platform.
- As long as the virtual machine is present (e.g. Java and the Java Virtual Machine (JVM)) (1) the bytecode is then compiled by the virtual machine at (or just before) runtime into machine code for that specific platform.
- This gives the appearance that compiling the program produces platform-specific machine code, while actually allowing the compiled bytecode to be executed quickly across multiple platforms.
State the name of a logic gate that has only one input
NOT gate
(Allow buffer.)
State the purpose of a D-type flip-flop
Used to store the state of data OR used as memory
Describe the two inputs into a D-type flip-flop
- Clock/trigger/enable
- Used to output the current state of the input.
- (Accept: Allows synchronisation with other flip-flops.)
- Data
- Used to accept data OR allow data input OR change the internal state of the D-type flip-flop.
NB: The model of the D-type flip-flop used by AQA (and some other exam boards) only has two inputs: data and clock, without set or reset. Some resources may include all four.
There are four different types of systems software.
Describe the purpose of systems software
Software designed to manage the system OR allow the system to run OR manage the computer hardware
One exmaple of systems software is an operating system.
NAme and describe the function of the three other types, including examples
1 mark for identification, 1 mark for explanation, 1 mark for example
- Utility (program) (1) a program used to maintain/optimise a computer system. (1) Any suitable example, e.g. anti-malware, firewall, disk defragmenter, disk clean up, system monitor, backup manager, etc. (1)
- Library (program) (1) a resource OR collection of program code that can be accessed by other programs. (1) Any suitable example, e.g. math library, random number library, GUI library, etc. (1)
- Translator (1) used to translate high-level language OR assembly language source code into machine code (for execution). (1) Example: assembler OR compiler OR interpreter. (1)
Describe the role of a typical operating system and its key functions
Role of the OS: to hide the complexity of the hardware from the user.
Key functions
- Processor scheduling OR allocation of processors
- Memory management OR allocation of RAM
- Virtual memory management OR allocation of VM
- Peripheral management OR I/O management
- File management OR backing store management OR secondary storage management
- Interrupt handling
- Power management OR battery management
- User interface provision
- Thread management (in the context of CPU/processor scheduling)
Explain the need for using a translator on the high-level source code and the steps involved in translation (4-6marks)
The high-level language source code cannot directly be understood/executed by a processor and must therefore be translated into machine code in order to be executed.
Steps: Any three from:
- Each instruction is checked for syntax errors.
- Each instruction is translated into machine code instructions.
- Using the instruction set specific to that system/platform OR processor.
- One HLL instruction may be translated into several machine code instructions.
Each instruction is then executed by the process (in the case of an interpreter) OR stored in an object code/machine code/bytecode file (in the case of a compiler).
Describe the advantages of writing in a high-level languae rather than machine code (4-8 marks)
Any two from: (Mark in pairs: 1 mark for identification, 1 mark for expansion)
- Easier/quicker to read/write (1) as HLL is closer to natural language OR English. (1)
- Less likely to make mistakes (1) as machine code looks very similar OR counter argument for HLL. (1)
- Logic in HLL is easier to follow (1) due to the use of structured statements OR data structures OR comments. (1)
- Can be run on different platforms (1) as machine code is specific to one instruction set OR platform. (1)
Explain why it may be preferable to use an interpreter rather than a compile to translate the high-level source code
Indicative response
The source code can be made available so that others can view/edit/improve/maintain the algorithms/program code. The program can be updated more easily as the form and structure of the data may change over time.
The program will not need to be translated separately for each platform before it is shared and the program will work on any platform for which an interpreter is available.
Debugging will be easier as the program will halt at the exact point in the program where an error is detected.
Some programming languages are restricted to either a compiler or an interpreter. Paul may have chosen a programming language that does not have a compiler available.
Level
Description
Marks
3
A line of reasoning has been followed to produce a coherent, relevant, substantiated and logically structured response. The response covers all areas indicated in the indicative response and there is sufficient detail to show that the student has an excellent level of understanding of the issues involved.
5–6
2
A line of reasoning has been followed to produce a coherent, relevant, substantiated and logically structured response but the response may only cover some of the areas indicated in the indicative response. A reasonable understanding is shown of each of these areas.
3–4
1
A few relevant points have been made but there is no evidence that a line of reasoning has been followed. The points may only relate to one of the areas from the indicative response or may be made in a superficial way with little substantiation.
1–2
state the purpose of an operating system
to hide the complexity of the hardware from the user

