Digital systems store and process information in binary form, i.e., in the form of sequences of 0 and 1
One bit
Corresponds to the amount of information in an answer to a question with only two possibilities
Binary coding designates 0 or 1 to each of the two possible answers
If there are more than two possible answers, bit sequences are required to store the information
Real world applications of binary
Light switch (on/off)
Flashlight (on/off)
Optical storage media (peaks/valleys)
Magnetic storage media (magnetic states)
All data stored in a computer system, as well as all programs that are executed on a computer system, manifest themselves as sequences of 0 and 1
Boolean operations
Algebraic structure with the two elements, 0 and 1, and the logical operations AND, NOT, and OR
AND operation
Evaluates to 1 if both inputs are 1, otherwise 0
OR operation
Evaluates to 1 if at least one of the inputs is 1
NOT operation
Negates the input value (1 becomes 0, 0 becomes 1)
All processing units are constructed on the basis of these simple Boolean operations
Storing numbers and letters
Defined mappings and standards like ASCII or UTF-8 are used to represent them as bit sequences
UTF-8 encoding
01010011 for the letter "S"
To perform mathematical calculations, numbers are first converted from decimal to binary, then calculated in binary, and finally converted back to decimal
Von Neumann architecture
General architectural concept for the construction of universal computers, introduced in 1945
Units of the Von Neumann architecture
Memory
Control unit
Arithmetic logical unit (ALU)
Input/output (I/O) units
Bus system
Memory
Used to store binary coded data and programs, divided into small areas with unique addresses
Control unit
Responsible for loading program commands from memory, interpreting them, and coordinating the ALU
Arithmetic logical unit (ALU)
Performs arithmetic and logical operations on data
Input/output (I/O) units
Interface between the system and its surrounding environment, responsible for data and program flow
Bus system
Data transmission system used by all units for communication, determines the speed of the computer
The von Neumann architecture allows for universal computing, as the internal structure does not determine how data is processed
How the von Neumann computer works
1. Control unit loads first command into ALU
2. Command is executed
3. Next command is loaded and executed
4. Sequence repeats until program ends
Distributed software system
Software system that can only be used in conjunction with several computers connected via a communication network
Typical elements in distributed systems
Server
Client
Communication network
Agreement on message structure
Server
Computers that make functions accessible to other computers via a communication network
Client
Computers using services offered by servers
Communication network
Connects clients and servers, consists of physical components, technical routing/transfer components, and network interfaces
Network interface
Enables a computer to communicate with a communication network
Server
A service provider, by installing and starting the appropriate software systems
Most systems within an enterprise network act as both a server and a client, depending on the service considered
Communication network
Connects clients and servers, consisting of physical components for data transmission, technical components for routing and transferring data, and network interfaces to connect a device
Network interface
Enables a computer to communicate with other computers, including the physical connection and software support from the operating system
Message
Logically related information sent by an application, which is transformed into a bit sequence and split into smaller data packets for transmission
Conceptual models for communication
Internet protocol suite (TCP/IP) model and open systems interconnection (OSI) reference model describe network architectures that encode and decode messages in layers
OSI model is more detailed with 7 layers, while TCP/IP has 4 layers
Protocol
A set of conventions that govern the interaction of processes, devices, and other components within a system
Application layer
Contains application-specific definitions for the structure and exchange of messages, e.g. HTTP and SMTP
Presentation and session layer
Defines syntax and semantics of information, responsible for character encoding, data compression, encryption/decryption, and enabling sessions between remote computers
Transport layer
Divides messages into smaller units, ensures all data packets arrive at the recipient, and lines up packets in the correct order