System Software Notes
System Software
What is System Software?
Software is divided into two categories:
Application software: Programs for specific tasks (e.g., word processors, video editors).
System software: Controls computer hardware and provides a platform for applications.
Types of System Software
Operating Systems (OS): Manage hardware and provide an environment for applications.
Device drivers: Small programs that enable an OS to use hardware.
Utility software: Programs for maintenance tasks (e.g., recovering storage space).
Operating Systems (OS)
Essential software loaded during computer boot-up.
Composed of components that control hardware (e.g., graphics cards, memory, USB devices).
Provide an Application Programming Interface (API): code libraries for software developers to write applications for that OS.
This is they Mac apps can't run on Windows and vice versa.
OS Functions
Controlled by dedicated "managers."
User Interface Manager: Provides the user interface for controlling the computer.
Memory Manager: Controls memory allocation between applications.
Process Manager: Controls CPU cycle allocation to running applications.
Device Manager: Allocates resources to hardware devices.
User Manager: Authenticates and separates computer users.
File Manager: Controls file operations and determines file types.
User Interfaces
Allow users to interact with the computer.
Early OS used command-line interfaces (CLIs).
Modern OS provide Graphical User Interfaces (GUIs).
Based on Windows-Icon-Menu-Pointer (WIMP) paradigm or multi-touch interfaces.
Command Line Interfaces (CLIs)
DOS: Everything was done by typing commands.
Still available on modern OS for advanced tasks.
Require less memory and processing power than GUIs.
Frequently used on low-power and embedded computers.
Graphical User Interfaces (GUIs)
Provide visual representations of files and devices.
Allow interaction via clicking, dragging, and touching icons.
Applications are shown in windows with menus.
Interaction via a pointer controlled by a mouse or touchscreen.
Windows-Icon-Menu-Pointer (WIMP) GUI
Programs run in movable, resizable windows.
Disk drives and hardware are represented as icons.
Programs and files are represented by clickable icons.
Processes, features, and options are available via menus.
User interaction is through moving a pointer.
User Interface Choice Factors
Depends on the applications a computer runs.
Embedded systems may not have a user interface.
Web servers may only need a CLI.
Video editing requires a GUI.
Memory Manager
Controls RAM allocation to each running process.
Failure to manage memory can cause slowdowns or crashes.
The OS copies programs from secondary to main memory as needed.
Uses a paging algorithm to dynamically manage memory.
Makes multitasking possible.
Process Management
Programs are copied from secondary storage to main memory to be executed by the CPU.
Programs that are stored in memory are referred to as processes.
Modern computers are multitasking.
The OS ensures each process gets a share of CPU time using a scheduling algorithm.
Scheduling algorithms use a queue to hold waiting processes and switch between processes.
Multitasking
Modern OS allow multiple applications to run at once.
The OS manages memory and CPU allocation to each process.
In reality, the CPU can only process one program's instructions and data at a time.
Memory manager and process manager are responsible for multitasking.
Peripheral (Device) Management
Peripherals are external devices connected to a computer.
Examples: keyboard, mouse, printer, webcam.
Connected via USB.
The Device Manager tracks connected devices and allows applications to use them.
Device Drivers
Software that tells the OS how to communicate with a peripheral device.
Manufacturers provide drivers for their devices to work with OS.
Single and Multi-User Operating Systems
Differ in the number of simultaneous users supported.
Single-user OS supports one user at a time (e.g., macOS, Windows).
Multi-user OS allows multiple connected users (e.g., Unix, Linux).
User Manager
Tracks which users can access the system and who is logged in.
Grants access based on username and password (authentication).
Controls access to documents, applications, and features based on access rights.
Super-users (administrators or root) can access all resources.
Manages user's desktop, documents and app display.
File Manager
Manages creating, organizing, manipulating, and accessing files and folders.
Manages data storage in main memory and secondary storage.
Allows users and applications to interact with files and folders.
File Management Abilities
Create, name, rename, copy, move, and delete files/folders.
Control user access, modification, and deletion permissions.
Provide search facility based on criteria.
Utility System Software
A subset of system software (along with OS and device drivers) that provides useful functions.
Performs specific tasks to maintain the system.
Not essential to the OS.
Not the primary reason for using a computer (not application software).
Types of Utility Software
Basic tools
File management tools
Security tools.
Basic Tools
Simple text editors (Notepad).
Calculator.
Command prompt.
Hex editor.
Accessibility software (e.g., large print).
File Management Tools
Defragmentation
Encryption
Backup
Compression
Defragmentation Utilities
Reorganize data on a hard disk to improve performance.
Fragmented data: data from the same file stored in different locations.
Defragmentation groups data from the same files together.
Fragmentation Problem
Hard disk drives are mechanical.
Read/write head moves to physical locations to read data.
Fragmented data decreases read/write speed.
Defragmentation Solution
Reorganizes data blocks on a hard disk.
Groups data blocks from the same file together.
Groups free space together.
Reduces further fragmentation.
How Data Becomes Fragmented
Files are erased, creating free blocks.
New files are stored in available blocks, leading to fragmentation.
Fragmentation increases read/write times and disk wear.
SSDs and Fragmentation
SSDs have no moving parts.
Data location does not affect read/write times.
Defragmentation is unnecessary and can reduce SSD lifespan.
Backup Utilities
Vital for data preservation.
A backup is a copy of data stored externally.
Data can be restored from backup in case of data loss due to fire, natural disaster, system failure, malware, hacking, or human error.
Types of Backup
Full backup: copy of everything on the system.
Incremental backup: copy of files changed since the last full backup.
File Conversion Utilities
Save a file as a different file type.
Useful for compatibility and compression purposes.
Compression Utilities
Reduce disk space required to store a file.
Use lossless compression algorithms.
Can decompress files.
Compress multiple files into a single archive.
Can lock files with a password.
Common file formats: .zip and .rar.
Security Tools
Include anti-malware programs (antivirus and anti-spyware).
Protect against viruses and spyware that steal information, perform malicious tasks, or crash systems.
Antivirus and Anti-Malware Software
Antivirus software: real-time scans for viruses.
Anti-malware software: periodic scans for malicious applications.
Identify and quarantine threats, allowing users to clean or destroy them.
Malware
Malicious software installed without user knowledge or intent.
Includes viruses and spyware.
Firewalls
Control network connections and prevent virus infections.
Inspect and filter incoming and outgoing data packets.
Protect against hackers and malware.
Encryption Utilities
Make files unreadable without a password.
Used to protect sensitive data on devices.
Modelling and Simulation
Modelling the real world through abstraction.
Hiding complexity. Only exposing the key features of a situation and leaving out the details.
Computer experiments that can't be done in the real world.
Scientists, engineers, economists and other experts can ask 'what if?' questions using computer models.
Modelling and Simulation (Problems)
The model or simulation includes assumptions. It is not reality, so the answers might not be right.
The real world is far too complicated to allow for every possible factor in your model. So, you have to use abstraction to simplify it. This makes it even less likely that you will get a completely right answer.
Modelling and Simulation (Examples)
Flight simulators allow pilots to train to fly aircraft safely.
Atmospheric models used to forecast the weather.
They split the atmosphere up into small pieces and keep track of the temperature, pressure, humidity and other factors in each piece.
They start the model with real measurements, then they let it calculate the effect each piece of atmosphere has on its neighbours and see how the weather patterns develop.
Earthquake prediction.
Use information from past examples and probability to come up with best guesses as to what might happen and when.
Heuristics
A type of algorithm capable of finding a solution to a problem quickly and easily. This is done through trial and error and educated guesswork to cut corners and remove less likely alternatives. Heuristic algorithms don't always find the best solution, but they will usually find one that works
Monte Carlo methods
Carrying out a statistical analysis of a number of random samples to get approximate solutions to a problem. The larger the number of samples used, the more accurate the result is likely to be
Neural networks
Process information in a similar way to human brains and learn and adapt over time. This makes them useful tools for recognising faces, identifying illnesses and quality control, for example. Computers are normally not very good at these things