A special-purpose computer encapsulated by a larger system
Embedded systems are surrounded by a larger system, unlike a normal laptop or desktop computer which is a non-embedded system
Traditional embedded systems
Only perform specific tasks relevant to their larger system
Cannot be easily programmed unless manufactured
Embedded systems
Phones
Cameras
Microwaves
Ovens
Virtual memory
A memory management procedure where the operating system creates a temporary section of volatile memory in the secondary storage to extend the RAM capacity when it is full
Virtual memory process
1. RAM is full
2. Operating system creates temporary section of volatile memory in secondary storage
3. Data from RAM not currently being used is moved to virtual memory
4. When program is reopened, data is swapped back from virtual memory to RAM
Virtual memory
Slower than RAM because data is stored in secondary storage
Misconception that it is for new data, when it is actually for older data not currently being used
Flash memory
Non-volatile memory used in secondary storage devices like SD cards, USB drives, and SSDs
Flash memory
More reliable and durable than mechanical storage like hard drives
Has a finite number of write cycles, but technology has improved to make this less of an issue
Virtual memory acts as if it is volatile memory, even though it is stored on a non-volatile medium
Secondary storage
Any memory device not directly connected to the CPU, has to go through controllers, no direct channel to CPU
Main memory (RAM)
Has its own buses that connect directly to the CPU
You need secondary storage for long-term persistent (non-volatile) storage to store data that is kept when power is turned off
You can't have a computer system without at least a connection to secondary storage to get instructions from and store data
Secondary storage mediums
Speed (reading and writing)
Durability
Reliability
Optical storage
Stores data as binary 1s and 0s represented by variations of height (pits and lands) on the disk surface, read by reflecting light off the disk
Evaluation of optical storage
Small capacity per unit
Fairly reliable and durable but can be easily damaged
Portable and easy to transport and store
Magnetic storage
Uses read/write heads with electromagnets to magnetize and demagnetize parts of the disk to represent data
Evaluation of magnetic storage
Very large capacity
Comparatively cheap
Quite reliable but often stop working after a certain time
Not very durable, can be easilydamaged
Solid-state storage (SSD)
Non-mechanical, consists of digital circuits and logic gates, no spinning disk
Evaluation of solid-state storage
Much faster read/write times than hard drives
More expensive per capacity
Reliable as nomechanical parts
No need for defragmentation
Cloud storage
Data stored on multiple remote servers, accessed over the internet
Evaluation of cloud storage
Multiple versions of files kept for durability
Reliability of service may vary
Very portable, can access anywhere with internet
Costs may be cheaper for large users due to economies of scale, but more expensive for smaller users
Software
Programs that run on a computer
Categories of software
Application software
System software
Application software
Software for user benefit, e.g. word processors, browsers, games
System software
Software that performs tasks related to hardware and provides services for other software, e.g. operating systems, game engines, drivers, utility software
Operating system (OS)

The most important system software, managing hardware and providing services for other software
Purposes of an operating system
Manage hardware
Provide interface between hardware and other software
Provide security layer
Abstract from hardware
Types of user interface in an OS
Command-line interface (CLI)
Graphical user interface (GUI)
Command-line interface (CLI)

Shell that responds to text commands
Graphical user interface (GUI)
Interface with icons, menus, and other visual indicators
Process
A program being executed by the processor
Process management in single-tasking OS
Executes one process at a time
Suspends/interrupts necessary
Process management in multi-tasking OS
Allocates CPU time for each process
Prioritizes processes based on importance
Memory management
Allocates and manages RAM space for programs, including using virtual memory
Boot loader
Small program that loads the OS into RAM when the computer is turned on
Peripheral device
Supplementary hardware device like keyboard, printer, camera
Device driver
Program that converts between signals used by peripheral devices and the OS
User management
Maintaining and allowing creation of user accounts, including passwords and permissions