Disk Defragmenter
A tool that reorganises the files and unused space on a computers HDD so the OS can access files faster.
Lossless Compression Software
the original data can be perfectly reconstructed from the compressed data. This is essential for files where losing any data would be unacceptable, such as text documents, software, or certain types of images. E.g. ZIP, GZIP, PNG.
Lossy Compression Software
Lossy compression reduces file size by permanently eliminating certain information, especially redundant data. The original file cannot be perfectly reconstructed, but the trade-off is significantly smaller files. This method is used where perfect fidelity to the original data is less critical. E.g. JPEG, MP3, MP4.
Libraries
A collection of precompiled routines which can be imported into a programs code.
Translators
Translates high-level code into low-level machine code.
Loader
Copies an object program that is helf on the backing store into the main store.
Linker
Combines the object program with other programs in the library, it is used in the program to create executable code.
Off-The-Shelf
Aimed at everyday users, sold as it, no edits.
Bespoke
Made to order, private and can be edited as needed.
Open Source
Code is feely available, developed collectively online.
Propietary
Restrictions on use, developed for a company.
Assembler
Translates an assembly language level program in to machine code.
Compiler
converts an entire program to low level code in one go.
Stages of Compilation
Lexical Analysis → All unnecessary spaces and comments are removed, any keywords, constants, identifiers are replaced by tokens.
Symbol Table → Matches the label name to its memory address of words that instructions occupy.
Syntax Analysis → Language statements are checked against rules of the language.
Semantic Analysis → Checks for code errors, checks if the code works.
Code Generation →High level language is translated into low level machine code.
Code Optimisation → Removes redundant instructions and shortens the code.
Interpreter
Same as the compiler, but it does the compilation line by line, executing as it goes. It has to be executed every time the program is run.
User Interface
The Os hides the complexity of the hardware by providing a user interface, this may or may not be contiguous.
Uses: Human-Computer interaction, Provides feedback, supports usability, memory management.
Interrupts
At each clock cycles end the computer checks for interrupts. Interrupts disrupt the FDE cycle for a different more prioritised instruction.
Virtual Machines
Software that is used to emulate a machine or run a OS inside another.
Basic Input/Output System (BIOS)
First code to run when PC is switched on. It initialises and tests hardware by running power on shelf test, allows for user to control their pc settings.
Secure Shell (SSH)
Allows a command line interface to run on the remote machines so that commands can be run and settings can be modified.
Device Drivers
A program that provides a UI so the OS can interact with the device. It is hardware dependent and OS specific.
Disk Thrashing
When the swap into VM occurs too often and damages the physical HDD.