Core Design Principles and Architectural Models for Distributed Systems
Distributed Systems Architectures (CPSC 5520, Fall 2022)
Instructor: Kevin Lundeen
Design Considerations in Distributed Systems
This section covers the fundamental criteria and challenges involved in designing robust distributed systems.
Design Criteria vs. Motivation
Compare this design considerations topic to the motivations presented in the Overview Lecture (slide 16):
Key Design Criteria
-
Support Sharing of Resources
Examples:
- Cloud-based shared storage and files
- Peer-to-peer assisted multimedia streaming
- Shared
Operating System Concepts: Virtual Memory and I/O Mechanisms
What Is Virtual Memory?
Virtual memory is a memory management technique that gives programs the illusion of having a large, continuous block of memory—even if the physical RAM is limited. It allows the system to use disk space (like HDD/SSD) as an extension of RAM.
Key Capabilities Enabled by Virtual Memory
- Running large applications
- Multitasking
- Memory protection and isolation
Virtual Memory Implementation Methods
Paging
Memory is divided into fixed-size blocks:
- Pages (virtual memory)
- Frames (physical
C Programming Fundamentals and Sorting Algorithms Reference
C Program: Find and Count Array Element Occurrences
Objective: Write a C program to find all positions where a specific value (9) is present in a user-defined list and count its total occurrences.
Given Sample List (entered at runtime): 3, 2, 10, 9, 7, 1, 5, 21, 8, 5. This should print: “9 is present at 4th position.”
C Implementation (1-Based Indexing)
#include <stdio.h>
int main() {
int n, i, count = 0, x = 9;
printf("Enter number of elements: ");
scanf("%d", &n);
int a[ Read More
Data Structures and Algorithms: Definitions and Analysis
Data Structures: Definition and Categories
A data structure is a specialized way of organizing, storing, and managing data in a computer to enable efficient access, manipulation, and operations. It defines how data is stored and the relationships between data elements.
Data structures are categorized into two main types:
- Primitive Data Structures: These are basic building blocks like integers, floats, characters, and booleans, which handle simple data types directly supported by the programming language.
JDBC Architecture and Components Explained
JDBC is an API that helps applications communicate with databases. It allows Java programs to connect to a database, run queries, retrieve, and manipulate data. Because of JDBC, Java applications can easily work with different relational databases like MySQL, Oracle, PostgreSQL, and more.
JDBC Architecture

Components of JDBC Architecture
Explanation of Components
- Application: This can be a Java application or servlet that communicates with a data source.
- The JDBC API: It allows Java programs to execute
Python Fundamentals: Core Concepts, OOP, and Practical Applications
Python Programming Fundamentals
History of Python
Python is a widely used, general-purpose, high-level programming language created by Guido van Rossum in 1989 in the Netherlands and developed by the Python Software Foundation.
The official date of birth is February 20, 1991.
Python is a dynamic, general-purpose, high-level, interpreted, freeware, and open-source programming language. Python supports both procedure-oriented programming and object-oriented programming.
Variables
A variable in Python is
Read More