definitions 1.2 Flashcards
basic input-output system
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
device driver
A program supplied with a peripheral device that allows the os to control and communicate with the devices
distributed operating system
the operating system is spread over multiple computer servers on a network, acting as a single system to parallel process a job
embedded operating system
a specialised operating system with limited resources and functionality, built-in to control a single machine
First come first served
a scheduling algorithm where processes are dealt with in the order they arrive (a queue)
intermediate code
code partly transferred between high-level and machine language produced by a compiler
interrupts
a signal from hardware, software or the clock to alert the CPU. in the interrupts is a higher priority than the current task, the current routine pauses and resumes after the interrupts is executed
interrupts service routines
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 interrupts is handled
Memory management
The efficient organisation and allocation of main memory to the program 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
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
operating systems
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. processors in memory will be assigned an appropriate number of pages.
Real-time operating system
an operating system where data is processed as it comes, with responses generated with a guaranteed timeframe
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 multi-tasking
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 the shortest estimated running time and runs it until its finished
Shortest Remaining time
A scheduling algorithm that picks the process with the shortest estimated time remaining to finish. if a process with a shorter time is added, the scheduler switches processor
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
Virtual Memory
an allocated area of secondary storage where pages of inactive jobs are swapped 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 a low-level language converts the assembly language into, machine code
Closed Source
Proprietary software is sold with a license and restrictions on how 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.
Compiler
A translator that converts high-level language to machine code
interpreters
A translator checks a source program for syntax errors line by line translates it to machine code and executes the line.
Lexical Analysis
The first complication stage is where extra spaces and comments are removed from the source code and 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 wich are already compiled and can be loaded into a program and run whenever required.
Linkers
A program which places 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 it is associated libraries into memory before it is run.
Open sources
Software whose source code is freely available to view, redistribute or modify
optimisation
During code generation, the object code is made as efficiently as possible by removing redundancies to produce code that gives the same result
syntax analysis
The second stage of complication, where statements, expressions and tokens are checked for syntax errors using syntax diagrams
Translators
A program which converts code from one computer language to another
Utilities
System software with a specific purpose is usually related to maintenance such as optimising the performance of the computer, diagnosing issues, backing up files, setting up firewalls etc.
Agile methodologies
An iterative process that produces incremental prototypes of software over short, fast-paced sprints. Each prototype is user-tested and any feedback and changes in requirements will be accounted for in future sprints
Extreme programming
A type of Agile methodology that is more responsive to changing user needs with a short development cycle and very frequent software releases. Checkpoints are incorporated to change or add new user requirements
Rapid application development
A method capable of speedy responses to changes in technologies and user requirements through repeated prototyping, continual evaluations, and strict time limits. the user will quickly receive a reduced-functionality mock-up of the program.
spiral model
an iterative version of the waterfall model where stages are refined and repeated until the final product is complete. The first cycle works towards an initial prototype, and each successive cycle produces a refined prototype
Waterfall lifecycle
Each stage of development is completed one at a time in linear order. Results from a completed stage are input into the next. Any previous stage can be returned to in light of feedback, however the stages that follow need to be worked trough again.
Assembly language
A low-level language closely related to but more advanced than machine code. it uses descriptive names and mnemonics for instructions, and is related to the design of the computer.
attributes
data recorded as a variable associated with an object
classes
A template defining the attributes and methods that can be used to create a type of data known as an object
Direct addressing
The simplest addressing mode in assembly language is where the operand stores the memory address of the value to be operated on by the operator
encapsulation
A method of maintaining data integrity by only allowing class methods to access data in an objects attributes
immediate addressing
an addressing mode in assembly language where the data in the address field is constant and the operand is the value to be operated on by the operator.
indexed addressing
An addressing mode in assembly language where the address of the operand required is calculated by adding a constant from the index register to the absolute address in the instruction
indirect addressing
an addressing mode in assembly language where the operand stores the address of the location holding the memory address of the required data
inheritance
the concept of subclasses inheriting the methods and attributes of its parent class(a.k.a its superclass)
Methods
a program subroutine that represents an action an object can perform
object-oriented languages
programming languages where the code is made of units called objects, which are instances of a class. objects have their own attributes and behaviour and can interact with each other
objects
an instance of a class. the behaviour of this data item depends on how its attributes where defined
Polymorphism
objects of a different classes can use the same methods to perform an action
procedural languages
A high-level language where statements are grouped into self-contained blacks is known as functions and procedures. they have built-in data types and data structures
programming paradigms
A style of computation and programming. chosen according to the problem at hand