System Design Basics for IB Computer Science
Overview of System Design Topics
System Design: Planning and constructing computer systems.
Computer Organization: Structure of computer components.
Networks: Communication between computers.
Computational Thinking: Problem-solving methodology.
Abstract Data Structures: Efficient data management concepts.
Resource Management: Optimal use of computing resources.
Control: Managing computer processes.
Key Concepts
1. Components of a Computer System
Hardware: Physical components like CPU, RAM.
Software: Applications running on hardware.
Peripheral Devices: External devices (printers, scanners).
Network: Interconnected devices for communication.
Human Resources: People managing the system.
2. Roles of Computers in a Networked World
Client: Requests data from a server.
Server: Provides data/services to clients (e.g., email, DNS).
3. Client-Server vs. Peer-to-Peer (P2P) Architectures
Client-Server Model: Centralized server with multiple clients.
Peer-to-Peer (P2P): Equal status participants sharing resources.
Understanding Servers
Server Functionality
Types of Servers:
Web Servers: Host websites (e.g., Apache).
Mail Servers: Handle emails (e.g., Exim).
File Servers: Share files (e.g., Samba).
Client-Server Model Dynamics
Connection: Client requests connection; server handles requests.
One-to-Many Relationship: Servers serve multiple clients simultaneously.
Important Networking Components
Router
Routes data between networks; can be hardware or software.
DNS Server
Translates domain names into IP addresses for easy access.
Firewall
Filters between trusted networks and outside connections; protects against threats.