Controlling and coordinating the activities of the CPU
Managing the flow of data between the CPU and other devices
Accepting the next instruction
Decoding instructions
Storing the result back in memory
Registers
Small memory cells that operate at very high speeds
Used to temporarily store data
All arithmetic, logical or shift operations occur in these registers
Registers
Program Counter (PC)
Accumulator (ACC)
Memory Address Register (MAR)
Memory Data Register (MDR)
Current Instruction Register (CIR)
Buses
Set of parallel wires which connect two or more components inside the CPU together
The collection of the data bus, control bus, and address bus is called the system bus
The width of the bus is the number of parallel wires the bus has
Data Bus
Bi-directional bus used for transporting data and instructions between components
Address Bus
Used to transmit the memory addresses specifying where data is to be sent to or retrieved from
Control Bus
Bi-directional bus used to transmit control signals between internal and external components
Control signals on the Control Bus
Bus request
Bus grant
Memory write
Memory read
Interrupt request
Clock
Assembly language
Uses mnemonics to represent instructions
Simplified way of representing machine code
Instruction is divided up into operand and opcode
Opcode is used to determine the type of instruction and what hardware to use to execute it
Operand is the address of where the operation is performed
Fetch-Decode-Execute Cycle
1. Fetch Phase: Address from PC copied to MAR, Instruction held at that address copied to MDR, Contents of PC increased by 1, Value in MDR copied to CIR
2. Decode Phase: Contents of CIR split into operand and opcode
3. Execute Phase: Opcode executed on operand
Clock Speed
Determined by the system clock
All processor activities begin on a clock pulse
Each CPU operation starts as the clock changed from 0 to 1
The clock speed is the number of clock cycles completed in a second
Number of Cores
A core is an independent processor that can execute its own fetch-execute cycle
A computer with multiple cores can complete more than one fetch-execute cycle at any given time
Some programs aren't optimised for the use of more than one core
Cache Memory Types
Level 1 Cache: Very fast memory cell, small capacity (2-64KB)
Level 2 Cache: Relatively fast memory cell, medium capacity (256KB-2MB)
Level 3 Cache: Much larger and slower memory cell
Pipelining
The process of completing the fetch, decode, and execute cycles of three separate instructions simultaneously
Data is held in a buffer in close proximity to the CPU until it's required
Aimed to reduce the amount of the CPU which is kept idle
Von Neumann Architecture
Single control unit, ALU, registers and memory units
Shared memory and data bus used for both data and instructions
Harvard Architecture
Physically separate memories for instructions and data
More commonly used with embedded processors
Advantages of Von Neumann Architecture
Cheaper to develop since the control unit is easier to design
Programs can be optimised in size
Advantages of Harvard Architecture
Quicker since data and instructions can be fetched in parallel
Both memories can be different sizes
The purpose of the operating system is to manage hardware resources, software applications, user data, and other tasks.
Operating systems are designed with specific goals such as providing an interface between users and computers, managing memory allocation, scheduling processes, controlling input/output operations, handling file management, implementing security measures, and supporting networking capabilities.
Operating systems are responsible for managing input/output devices such as keyboards, mice, printers, and displays.
Operating systems allocate and manage physical memory (RAM) and virtual memory (swap space). They also schedule processes and threads running on multiple cores or CPUs.
They also handle file management by creating, deleting, renaming, copying, moving, and searching files on storage media like hard drives or USB sticks.
They also handle communication between these devices and the CPU by receiving requests from them, determining their priority based on factors like urgency or importance, and allocating time slots for execution.
Security Measures include access controls that restrict unauthorized use of sensitive information, encryption techniques used to protect confidential data, and firewalls that prevent malicious attacks from external sources.
File Management involves creating, deleting, renaming, copying, moving, searching, and backing up files using various commands provided by the OS.
Security features include authentication, authorization, access control, encryption, firewalls, antivirus protection, intrusion detection, and recovery from attacks.
Networking support includes network protocols, routing algorithms, packet switching, network configuration tools, and network monitoring utilities.
Operating systems implement various mechanisms to ensure that only authorized users can access sensitive information and prevent unauthorized access attempts.
Networking Capabilities allow operating systems to connect different devices over networks using protocols like TCP/IP, Ethernet, Wi-Fi, Bluetooth, etc.
The operating system is responsible for managing hardware resources such as memory, processors, input/output devices, and network connections.
It provides an interface for users to interact with software applications and manages user accounts, permissions, and security measures.
User interface design principles include consistency, feedback, simplicity, flexibility, efficiency, aesthetics, and accessibility.
The kernel is the core component of an operating system that manages hardware resources and provides basic services to user applications.
User interfaces enable interaction between humans and computers through graphical user interfaces (GUIs), command line interfaces (CLIs), or text-based interfaces.
The user interface is designed with the goal of making it easy for users to interact with the system and perform tasks efficiently.
Operating systems are essential components of modern computing systems, providing services such as resource allocation, scheduling tasks, handling interruptions, and managing peripherals.
The kernel is responsible for managing hardware resources, including CPU time, memory, disk space, network bandwidth, and input/output devices.