Edexcel GCSE CS · 3.2 to 3.3
Software and Programming Languages
Name
Class
Date
Mark / 23
Section A
Circle the letter of the correct answer. One mark each.
- 1Which of these is application software?1
- AThe operating system
- BA photo editor
- CA disk defragmenter
- DA device driver
- 2What does memory management in an operating system do?1
- ACompresses files automatically
- BStores files permanently
- CIncreases the amount of RAM installed
- DAllocates memory to programs and stops one writing into another's
- 3Why does an operating system use device drivers?1
- ATo make devices physically faster
- BTo encrypt data sent to devices
- CSo applications can use hardware without knowing the details of a specific model
- DTo store the device's settings in the cloud
- 4What is the main advantage of an interpreter during development?1
- AErrors are reported as soon as the line containing them is reached
- BThe program runs faster
- CIt produces a standalone executable
- DThe source code is hidden
- 5Why does compiled code usually run faster than interpreted code?1
- ATranslation has already happened, so machine code runs directly
- BCompiled programs skip error checking
- CInterpreters use slower hardware
- DCompilers rewrite the algorithm
- 6What does an assembler translate?1
- AMachine code into high level code
- BAssembly language into machine code
- CHigh level code into machine code
- DOne high level language into another
- 7Which utility would most directly help recover from a ransomware attack?1
- ADisk clean up
- BCompression
- CDefragmentation
- DBackup software
- 8Why would a programmer use a low level language for a device driver?1
- AIt is more portable
- BIt is quicker to write
- CIt handles memory automatically
- DIt gives direct control over specific hardware
- 9What is a disadvantage of a compiled program?1
- AIt only runs on the platform it was compiled for
- BIt must be recompiled each time it runs
- CIt cannot be distributed
- DErrors are never reported
- 10Which statement about a high level language statement is correct?1
- AIt runs directly on the processor
- BIt always becomes exactly one machine instruction
- CIt usually translates into many machine code instructions
- DIt cannot be translated
Section B
Answer in the space provided. The number of marks tells you how many separate points to make.
- 1StateState one difference between system software and application software.2
- 2DescribeDescribe two functions of an operating system.4
- 3ExplainExplain one advantage of using an interpreter and one advantage of using a compiler.4
- 4ExplainA company is writing software for a device with only 32 kilobytes of memory. Explain why part of the program might be written in a low level language.3
Mark scheme
Section A
Section B
1 State one difference between system software and application software. 2
One mark for each of the following, to a maximum of 2.
- System software manages or maintains the computer itself
- Application software allows the user to complete a particular task
Model answer. System software manages and maintains the computer itself, the operating system and utility programs being the main examples. Application software is installed so that the user can carry out a particular task such as browsing the web or editing a photograph.
2 Describe two functions of an operating system. 4
One mark for each of the following, to a maximum of 4.
- Memory management, allocating memory to each running program
- Explains the consequence, such as preventing programs interfering with each other
- Peripheral management, communicating with devices through drivers
- Explains the consequence, such as applications not needing to know the specific hardware
Model answer. The first is memory management. The operating system allocates an area of memory to each running program and keeps track of what is in use, which prevents one program from writing into memory belonging to another and crashing it, and it moves less used pages out to virtual memory when physical memory runs short. The second is peripheral management. The operating system communicates with input and output devices through device drivers, so an application can simply request that a page is printed without containing any knowledge of the particular printer attached, and a new device is supported by installing a driver rather than by rewriting every program.
3 Explain one advantage of using an interpreter and one advantage of using a compiler. 4
One mark for each of the following, to a maximum of 4.
- An interpreter reports an error as soon as it reaches the line containing it
- Which makes locating and fixing faults during development much quicker
- A compiler translates the whole program once before it runs
- So the finished program executes faster, and can be distributed without the source code
Model answer. An interpreter translates and executes one statement at a time, so when it reaches a line it cannot process it stops there and reports it. That tells the programmer precisely where the fault is and allows an immediate retry after a change, with no compilation step in between, which makes the write, test and correct cycle much faster while a program is still being developed. A compiler translates the entire program into machine code once, before it is ever run. At run time the processor executes machine code directly with no translation happening at all, so the finished program is considerably faster, and it can be distributed as an executable without the source code, which protects the developer's work and means the user needs no translator installed.
4 A company is writing software for a device with only 32 kilobytes of memory. Explain why part of the program might be written in a low level language. 3
One mark for each of the following, to a maximum of 3.
- A low level language gives direct control over memory and hardware
- The code can be made extremely compact, using far fewer bytes
- Acknowledges the cost, that it is slow to write and not portable
Model answer. A low level language lets the programmer decide exactly how every byte of memory is used and exactly which instructions the processor executes, rather than leaving those decisions to a compiler making general purpose choices. With only 32 kilobytes available that control is what makes the program fit at all, since the equivalent high level program would very likely be several times larger. The cost is real: low level code takes far longer to write, is much harder to read and debug, and is written for one specific processor, so it cannot be recompiled for different hardware later. For that reason a company would usually write only the memory critical or timing critical routines this way and keep the rest of the program in a high level language.