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.