← Back to Learning Hub

System Basics

SystemsCS FundamentalsBeginner20 min

By: Anacodic Team

Share: X · LinkedIn · Copy Link

System Basics

Operating System Concepts

Processes and Threads

  • Process vs thread
  • Process scheduling
  • Context switching
  • Inter-process communication (IPC)
  • Thread synchronization

Memory Management

  • Virtual memory
  • Paging and segmentation
  • Memory allocation
  • Garbage collection
  • Memory leaks

File Systems

  • File system organization
  • File operations
  • Directory structure
  • Permissions and access control

Memory Management

Concepts

  • Stack vs heap
  • Static vs dynamic allocation
  • Memory fragmentation
  • Garbage collection algorithms
  • Reference counting
  • Mark and sweep

Python-Specific

  • Python memory management
  • Reference counting in Python
  • Garbage collector
  • Memory profiling

Networking Basics

Network Layers

  • OSI model
  • TCP/IP model
  • Application layer protocols (HTTP, HTTPS)
  • Transport layer (TCP, UDP)
  • Network layer (IP)

Key Concepts

  • IP addresses and ports
  • DNS resolution
  • HTTP methods (GET, POST, PUT, DELETE)
  • RESTful APIs
  • WebSockets

Databases Intro

Database Types

  • Relational databases (SQL)
  • NoSQL databases
  • Key-value stores
  • Document databases
  • Graph databases

SQL Basics

  • SELECT, INSERT, UPDATE, DELETE
  • JOINs (INNER, LEFT, RIGHT, FULL)
  • Aggregations (GROUP BY, HAVING)
  • Indexes
  • Transactions and ACID properties

Database Design

  • Normalization
  • Primary keys and foreign keys
  • Relationships (one-to-one, one-to-many, many-to-many)
  • Database indexing

Interview Questions

  1. What is the difference between a process and a thread?
  2. Explain virtual memory and why it's useful.
  3. What is the difference between TCP and UDP?
  4. Explain ACID properties in databases.
  5. When would you use SQL vs NoSQL databases?

Coding Practice

  1. Write code to demonstrate process/thread creation.
  2. Implement a simple HTTP client.
  3. Write SQL queries for common operations.
  4. Design a database schema for a given problem.
  5. Profile memory usage of a Python program.

Resources