Topic Flashcards
Basic Input Output System (BIOS)
A program that initialises and tests whether system hardware is functional and then loads the operating system from the hard disk into RAM when the computer is turned on.
The program stored in EPROM(Erasable Programmable Read-Only Memory) that gets your computer started after you turn it on.
Main purpose: to initialise and test the system hardware components and to load the operating system (key parts of it) from the hard disk into RAM.
Historically used to provide an abstraction layer which allowed a consistent way for application programs and the OS to interact with input-output devices.
In modern computers, BIOS not used after loading OS.
Device Drivers
A program supplied with a peripheral device that allows the OS to control and communicate with the device.
It is a computer program that provides a software interface to a particular hardware device.
Enables operating systems to access hardware functions without needing to know the details of the hardware being used.
e.g. when you attach a new printer, you will have to install the device driver program that comes with it before it will work.
They are hardware dependent and operating system specific
Typically communicates with the device via system bus or communications subsystem to which the hardware connects.
When a calling program invokes a routine inn the driver, the driver issues commands to the device. Once the device sends data back to the driver, the driver may invoke routines in the original calling program.
Distributed Operating Systems
The operating system is spread over multiple computer servers on a network, acting as a single system to parallel process a job.
A distributed OS can combine the processing power of computers across a network for a single task
In distributed computing the OS controls and coordinates the computers, presenting them to the user as if they were a single system
e.g. online shopping sites often use this form of OS
one task handled by one server, whilst another task is handled by another server
As the system becomes busy with more users, additional servers can automatically join the system to balance the load without you knowing
Embedded Operating Systems
A specialised operating system with limited resources and functionality, built in to control a single machine.
e.g. many devices in our homes (IOT) have an OS and run simple programs
has minimal features
application programs held in ROM
limited amount of RAM
user interface is simple and minimal
a lot of them have sensors, very little interaction from the user; sensor-based input
First Come First Served
A scheduling algorithm where processes are dealt with in the order they arrive (a queue).
Intermediate Code
Code partly translated between high-level and machine language produced by a compiler.
Interrupts
A signal from hardware, software or the clock to alert the CPU. If the interrupt is a higher priority than the current task, the current routine pauses and resumes after the interrupt is executed.
Interrupt Service Routines (ISR)
If an interrupt is a higher priority than the current task, register contents are temporarily transferred onto the system stack at the end of the current FDE cycle and the interrupt is handled.
Memory Management
The efficient organisation and allocation of main memory to the programs in use.
Multi-Level Feedback Queues
A scheduling algorithm that uses multiple queues, each with a different priority. Jobs can be moved between queues.
Multi-tasking Operating Systems
An operating system capable of running multiple tasks simultaneously.
e.g. windows, iOS
may run on a standalone pc/laptop/ phone
can run many jobs simultaneously, switching between them so that each one appears to be the only one running
mobile OS are linked to specific hardware- android has different hardware to iOS
low-level proprietary (specific to hardware) OS is used for handling the hardware and special features- cellular connectivity , Wi-Fi
the main OS handles the user interface and running applications
Multi-User Operating Systems
An operating system consisting of one mainframe computer with multiple terminals that allow multiple users to access the computer’s resources. Each user is given a time slice of the mainframe processor.
e.g. when a server is involved/network
allows more than one person to use a computer at the same time
computer will manage the user's various permissions and access rights when they log in
Server operating system software will handle the requests of multiple people using different computers on the network at the same time
Operating System
A set of programs managing the operation of the computer that is loaded into RAM every time the computer is turned on. It bridges the user to the hardware.
Paging
Partitioning memory into fixed sized physical divisions called pages. Processes in memory will be assigned an appropriate number of pages.
Real Time Operating Systems
An operating system where data is processed as it comes, with responses generated with a guaranteed timeframe.
some OS must operate in real-time: must respond extremely quickly to inputs and many need to cope with many inputs simultaneously
Real time Operating Systems are usually seen in safety-critical environments
If a hardware component fails, the OS must have a failsafe to detect this and respond appropriately
There is hardware redundancy - crucial components are duplicated in case one fails
ALWAYS A BACKUP, and a backup backup and another... - all may be slightly different versions of the component
Round-Robin
A scheduling algorithm where each process is given an equal time slice and is dealt with on a first in first out basis. If a process does not finish within a time slice it joins the end of the queue.
Scheduling
Allocating processor time to each application to ensure processor time is used as efficiently as possible when multitasking.
Segmentation
Partitioning memory into variable sized logical divisions called segments. A large program can be executed by consecutively running its segments.
Shortest Job First
A scheduling algorithm that picks the process with shortest estimated running time and runs it until it finishes.
Shortest Remaining Time
A scheduling algorithm that picks the process with shortest estimated time remaining to finish. If a process with a shorter time is added, the scheduler switches processes.
Virtual Machines
Any instance where software is used to take on the function of a machine, including intermediate code or running an operating system within another to emulate different hardware.
Virtual Memory
An allocated area of secondary storage where pages of inactive jobs are swapped into to free up enough RAM for the current job.
Applications
A program that can be run on a computer, allowing the user to carry out specific tasks.
Assembler
A translator in low level language, which converts assembly language into machine code.
Closed Source
Proprietary software sold with a licence and restrictions on how to and how many users can use it. The source code is not available to users.
Code Generation
The third and final stage of compilation, where an equivalent machine code program is produced.
Compilation
The process of analysing high level language source code and converting it into machine code.
Compilers
A translator that converts high level language to machine code.
Interpreters
A translator which checks a source program for syntax errors line by line, translates it to machine code and executes the line.
Lexical Analysis
The first stage of compilation, where extra spaces and comments are removed from the source code and it is searched for simple errors. Keywords, constants and variables are replaced by tokens. Variable names are loaded into the symbol table.
Libraries
A collection of programs which are already compiled and can be loaded into a program and run whenever required.
Linkers
A program which replaces the appropriate machine addresses in the call and returns instructions of a compiled program so all the other required object code files and modules are linked together.
Loaders
A program that loads the executable object program and its associated libraries into memory before it is run.
Open Source
Software whose source code is freely available to view, redistribute or modify.
Optimisation
During code generation, the object code is made as efficient as possible by removing redundancies to produce code that gives the same result.
Syntax Analysis
The second stage of compilation, where statements, expressions and tokens are checked for syntax errors using syntax diagrams.
Translator
A program which converts code from one computer language to another.
Utilities
System software with a specific purpose usually related to maintenance such as optimising the performance of the computer, diagnosing issues, backing up files, setting up firewalls etc.
Disk Thrashing
If there is insufficient RAM available to load all pages needed by the process, the computer will spend a lot of time swapping the different pages into the small space in RAM that is available. This is called disk thrashing and will cause a noticeable slowdown of the computer from the user's perspective.
To avoid this, install extra RAM or do not open too many processes at once/ close some processes.
Why is it, in mobile operating systems, that underlying hardware is handled by a low-level proprietary OS made and owned by the hardware manufacturer, and the UI and applications are handled separately?
The OS can multitask to optimise performance, efficiency and security.
The OS is proprietary, so it is owned by the hardware manufacturer, so they can manage and update the device when needed easily. User interface and the ability to run certain applications are a crucial part of the user's decision about which type of phone to purchase, so manufacturers want the user experience to be the same across a variety of different hardware devices.
Users are not concerned about underlying things such as how cellular connectivity works, as long as they work properly, so a low-level proprietary OS will be fine.
Manufacturers may want an open source system (e.g. Android) and for their users to customise it (UI) rather than writing their own from scratch.
Why do mobile devices such as smartphones and tablets require a different operating system from a desktop computer?
A mobile device typically has a slower processor/ less RAM than a desktop, so memory management and CPU scheduling may need to be handled differently.
Mobile devices have different interface needs, e.g. most mobile devices need a touch screen interface
Software that can be run on the mobile device depends on the OS, which may not be capable of running programs designed for a desktop environment.
Compare and contrast the functions of operating systems designed for a personal computer and a satellite-navigation system in a car. In this question you will also be assessed on your ability to use good English and to organise your answer clearly in complete sentences, using specialist vocabulary where appropriate. (7 MARKS) PURPOSES/ USES
Operating systems (OS) for personal computers (PCs) and satellite navigation (satnav) systems have similar fundamental roles, such as managing hardware resources and providing a platform for software to run. However, they differ in functionality and design due to the requirements of the devices they support.
A PC OS, such as Windows or macOS, is designed for multitasking and supports a variety of general-purpose applications (e.g., web browsers, word processors, games). It manages resources across a wide range of hardware components (CPU, RAM, storage, GPU).
In contrast, a satnav OS is specialised for navigation. It has a more limited set of tasks (e.g., GPS signal processing, route calculation, real-time map updates) and manages only the specific hardware needed for navigation, like GPS receivers and small touchscreens.
Compare and contrast the functions of operating systems designed for a personal computer and a satellite-navigation system in a car. In this question you will also be assessed on your ability to use good English and to organise your answer clearly in complete sentences, using specialist vocabulary where appropriate. (7 MARKS) USER INTERFACES, SPEED, UPDATES
PC operating systems offer complex graphical user interfaces (GUIs) designed for multitasking and user flexibility, with support for input devices like keyboards and mice. Satnav systems, however, provide simplified, intuitive touch interfaces, with restricted input options, allowing drivers to interact safely while driving.
Satnav systems have real-time processing needs, especially for updating location and recalculating routes quickly. Delays in processing could negatively impact navigation accuracy. PCs typically do not have strict real-time constraints and are instead optimised for tasks that vary in priority but generally do not require instant response.
PC operating systems receive frequent security updates and patches due to exposure to various applications and networks, making them vulnerable to security threats. Satnav OSs are updated less frequently, as they operate in a more closed environment, with updates primarily focused on map data rather than security.
Why is an interpreter useful for program development?
An interpreter is useful for program development as parts of the program can be tested without having to recompile a lengthy program each time. However, a compiled program will generally run faster.
Why can you not run a Python program written on one type of computer on another type of computer?
The object code that the source code is translated into is hardware specific, so therefore, it cannot be run on a different computer with different hardware. Many high level languages are portable because the source code can be compiled on different platforms (machine architectures). You would have to recompile the program into the appropriate object code using a specific compiler, or bytecode interpreter.
What are the advantages of using a bytecode interpreter?
The program does not need to be recompiled while being tested, and also the bytecode can be used on any computer, no matter the hardware, making it simpler to run the same code on different devices.
As long as a bytecode interpreter exists for a platform, the same code can run on different platforms without having to worry about the hardware differences.
There is a reduced risk for the user because they execute the bytecode interpreter (a trusted program) instead of directly executing downloaded compiled code which could contain a virus.
It is possible, for example, to compile from Python to Java bytecode (using the Jython compiler) and the use the Java interpreter to interpret and execute it.