GDG On Campus AASTU
4.89K subscribers
912 photos
52 videos
24 files
622 links
Google Developers Group On Campus for Addis Ababa science and Technology University.

Discussion group: @DSCAASTUCHAT
twitter handle: @gdscaastu
LinkedIn: https://www.linkedin.com/company/gdgaastu
Download Telegram
Calling All AASTU Students: Join UniHack 2025!


Are you ready to innovate, solve challenges, and showcase your skills? UniHack 2025 is exclusively for AASTU students, offering you the platform to turn your ideas into impactful projects.

πŸ—“οΈ Event Date: February 19, 2025
πŸ“ Venue: Old graduation hall(AASTU)
🌐 Apply Now: www.unihack.et

Who Can Apply?


This event is exclusively for AASTU students from any department. Whether you’re a coder, designer, or idea generator, there’s a place for you at UniHack!

Don’t miss this incredible opportunity to represent AASTU’s innovation and talent.

πŸ“ Visit www.unihack.et for more details and to apply.

Spaces are limited, so apply today and get ready to innovate!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Miss Tech
Good news!

One of my clients is seeking Senior .NET Developers to join their team. After successfully hiring for this position recently, they are looking to hire additional people.

This role focuses primarily on .NET development, but candidates with experience in React for front-end development will have a distinct advantage. If you are a developer eager to work on this project, this opportunity is for you!


Apply Here: https://forms.gle/QAASyjATP2sHJP9c8
Forwarded from Miss Tech
Is anyone participating in the Advent of Code?

In case you are interested:

https://adventofcode.com/
Forwarded from Cyber Techβ„’
β€‹πŸ”°Top 10 Must-Have Gadgets for a High-Tech WorkspaceπŸ”°

πŸŒ€This article will pick up 10 tools a must-have of the ultimate for a high-tech facility.

πŸ”—Article Link - https://bit.ly/3ZtH1Ts
(Click On First Website)

βž– @Anonymous_CreeWzβž–
πŸ‘1
Forwarded from Ethio α‰΄αŠ­'Λ’ (POLY)
በደቂቃ αˆ΅αŠ•α‰΅ αŠα‰ αˆ­ αŒαŠ•?😊

                   πŸ¦‹#ShareπŸ¦‹
πŸ‘©β€πŸ’» @ethio_techs πŸ‘¨β€πŸ’» @ethio_techs πŸ‘©β€πŸ’»
😁7
The Microbe That Could Protect Humans from Space Radiation 🌌🦠


A recent study reveals how Deinococcus radiodurans (nicknamed "Conan the Bacterium") survives radiation doses up to 5,000 times higher than lethal levels for humans. Researchers discovered that the combination of manganese ions, phosphate, and peptides forms a powerful antioxidant that enhances the bacterium's resistance. This finding could lead to innovative solutions for protecting humans from radiation in space exploration and radiological emergencies. πŸš€

#RadiationResistance #DeinococcusRadiodurans #SpaceExploration #Innovation #GDGAASTU
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
⏭ Software Configuration Management
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
SCM.wav
55.8 MB
πŸŽ™ Audio Overview, 1-7
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
🎧 Distributed Systems (to spice upπŸ§‚your studies)
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
Distributed Systems - Introduction.wav
87.9 MB
πŸŽ™ Chapter 1
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
Distributed Systems - Architectures.wav
76.3 MB
πŸŽ™ Chapter 2
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
Distributed Systems - Processes.wav
61.5 MB
πŸŽ™ Chapter 3
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
πŸ‘1
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
DISTRIBUTED SYSTEMS 🌐
Maarten Van Steen ✍️
Andrew S. Tanenbaum ✍️

4th Edition πŸ“–
Version 02 πŸ”’

πŸ›‘ Before you delve into the textbook, take a look at these precise notes πŸ‘‡β€”just to see what you're about to sign up for πŸ“š. You can either treat it as an appetizer 🍀 or a dessert 🍰, your choice! 🍽
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
Chapter 1️⃣: Introduction to Distributed Systems 🌐

Overview πŸ“–


Distributed systems
consist of independent computers that collaborate to appear as a single coherent system.

Analogy: Think of it as a symphony orchestra where different instruments play in harmony to produce a unified melody. 🎻🎺

Key Concepts πŸ”‘


Evolution of Distributed Systems πŸ“œ

πŸ”ΉEarly Systems: Before 1980, computers were large, expensive, and operated independently.
πŸ”ΉTechnological Advancements:
βš™οΈ Microprocessors: Transition from 8-bit to 64-bit CPUs; modern systems have the power of mainframes from decades ago.
🌐 Networking: LANs and WANs allowed high-speed communication, connecting millions of devices globally.
πŸ“± Miniaturization: Smartphones and nano-computers, like Raspberry Pi, are powerful yet compact.
πŸ”ΉIntegration: Systems like cloud computing and IoT showcase distributed systems managing diverse tasks across various devices.

Distributed vs. Decentralized Systems πŸ”„


πŸ”˜Distributed: Resources are sufficiently spread for efficiency and reliability (e.g., Google Mail servers).
πŸ”˜Decentralized: Resources are necessarily spread, often driven by administrative boundaries or lack of trust (e.g., blockchain systems).

Misconception: Centralized systems are not inherently badβ€”they can be robust and scalable when designed well (e.g., DNS root servers).

Design Goals πŸ—


1. Resource Sharing 🌍:
- Canonical Examples: Cloud storage, multimedia streaming, email services.
- Quote: β€œThe network is the computer” – John Gage.

2. Distribution Transparency πŸ•΅οΈβ€β™‚οΈ:
- Hides complexity of physical distribution via middleware layers.
- Types: Access, Location, Replication, Migration, Concurrency, Failure.
- Challenge: Full transparency may reduce performance and increase latency.

3. Openness βš™οΈ:
- Interoperability and extensibility via well-defined interfaces.
- Example: Systems supporting multiple programming languages.

4. Dependability πŸ”’:
- Metrics: Availability ( 𝐴 = MTBF / MTBF + MTTR), Reliability, Safety, Maintainability.
- Fault handling strategies: Prevention, Tolerance, Removal, Forecasting.

5. Scalability πŸ“ˆ:
- Types: Size (users/processes), Geographical (distances), Administrative (domains).
- Example: CDNs efficiently distribute content for performance and fault tolerance.


Classification of Distributed Systems πŸ“Š


⚑️High-Performance Computing
- High-performance systems for intensive tasks.
- Clusters and grids for intensive tasks like scientific simulations.

πŸ“‚ Distributed Information Systems:
- Data sharing/processing.
- Database management and web services.

🌐 Pervasive Systems:
- Small, self-organizing, sensor-rich systems .
- IoT devices embedded in everyday environments.

Pitfalls ⚠️


β–ͺ️Heterogeneity: Managing diverse hardware and software.
β–ͺ️Scalability Issues: Unanticipated growth can overwhelm resources.
β–ͺ️Partial Failures: Some nodes may fail without affecting the whole system, leading to complex recovery mechanisms.
β–ͺ️Security Risks: Networked systems are vulnerable to attacks.

🌐 Summary ✨


πŸ”…A distributed system is a network of computers where processes and resources are spread across multiple machines. πŸ€πŸ’»

πŸ”…Key distinction:
πŸ‘‰πŸ»Sufficiently spread: Focused on improving efficiency. ⚑️
πŸ‘‰πŸ»Necessarily spread: Decentralized systems for operational or trust-based reasons. 🌍

πŸ”…Why distribute?
- Enhance reliability πŸ”’, scalability πŸ“ˆ, and efficiency ⚑️.
- Not an end goal but a solution to improve performance.

πŸ”…Challenges:
▫️Centralized systems are easier to manage πŸ›  but may not meet all needs.
▫️Distribution is necessary when:
- Connecting systems across different organizations 🏒.
- Supporting geographically separated devices (e.g., mobile computing). πŸ“±


βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–
The preview is overβ€”now dive into the expansive world of Distributed Systems! πŸ–₯πŸ”—πŸŒ
βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–
πŸ‘1
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
Chapter 2️⃣: Architectures πŸ—

Overview πŸ“–


❇️ Architectures define how distributed systems are logically and physically structured, focusing on the arrangement of components, their interactions, and system-wide performance.

Analogy: Architectures are like blueprints for a building, ensuring all rooms (components) are connected effectively and serve their purpose. 🏠

Key Architectural Styles πŸ”‘


1. Layered Architectures 🏒
Concept: Divide components into layers where each serves the one above it.
Analogy: Like stacking pancakes, each layer builds on the previous one. πŸ₯ž
Benefits: Encapsulation, modularity, and ease of maintenance.
Example: OSI model and network protocol stacks.

2. Service-Oriented Architectures (SOA) βš™οΈ
Definition: Organize systems into loosely coupled services communicating over standardized interfaces.
Applications: Microservices, cloud-based APIs.
Example: Amazon S3 uses RESTful operations like GET, POST, DELETE.

3. Publish-Subscribe Architectures πŸ“¬
Definition: Decouple publishers (message producers) and subscribers (message consumers).
Key Mechanism: Event-driven communication, where consumers subscribe to specific events.
Use Cases: Stock price notifications, IoT device updates.

Middleware 🧩

Role: Acts as a bridge between distributed components, providing distribution transparency.
Features:
- Transparency: Access, location, migration, replication.
- Flexibility: Supports heterogeneous systems.

System Architectures πŸ–₯


1. Client-Server Model 🀝
- Concept: Centralized interaction where clients request services from servers.
- Example: Traditional websites like Wikipedia.
- Challenge: Single point of failure without replication or failover strategies.

2. Peer-to-Peer (P2P) Systems πŸ”„
- Concept: Nodes are equal participants, acting as both clients and servers.
- Example: File-sharing networks like BitTorrent.
- Strengths: Decentralization, fault tolerance, and scalability.

3. Hybrid Systems ⚑️
- Definition: Combine centralized and decentralized elements for better performance and reliability.
- Example: Cloud systems with edge computing.

Modern Architectures 🌟


1. Cloud Computing ☁️
Layers: Infrastructure (IaaS), Platform (PaaS), Software (SaaS).
Benefits: On-demand scalability, cost-efficiency, and global accessibility.

2. Edge Computing πŸ“Ά
Concept: Push computation closer to data sources (e.g., IoT).
Benefit: Reduced latency and bandwidth usage.

3. Blockchain Architectures πŸ“¦πŸ”—
Definition: Decentralized systems for secure and immutable transaction records.
Types:
- Permissioned: Private networks (e.g., Hyperledger).
- Permissionless: Public networks (e.g., Bitcoin).


Architectural Comparison


πŸ–₯ Centralized: One server managing all requests.
🌐 Decentralized: Multiple interconnected servers sharing responsibility.
🧩 Distributed: Processes and data spread across multiple nodes for reliability.

Challenges


βš–οΈ Trade-offs between consistency, availability, and partition tolerance (CAP theorem).
🟰 Balancing transparency with system performance.

πŸ—Ί Summary ✨


Distributed system architectures guide the design of scalable, efficient, and robust systems. From layered designs to modern blockchain solutions, these architectures address diverse challenges and use cases. πŸ› 

Analogy: They’re the map that ensures all parts of the system work in harmony!


βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–
The preview is overβ€”now dive into the expansive world of Distributed Systems! πŸ–₯πŸ”—πŸŒ
βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–
Forwarded from AASTU SE Notes πŸ“– & QuizzesβŒ› (π•ͺ𝖔𝕀)
Chapter 3️⃣: Processes 🚦

Overview πŸ“–


❇️ Processes are independent executing entities that may consist of one or more threads, forming the foundation for distributed systems.
- They enable multitasking, virtualization, and effective resource management.

Threads 🧡


What Are Threads?
- Threads are the smallest units of CPU scheduling and execution within processes.
- They allow parallelism and efficient utilization of resources.

πŸ”˜Processor: Executes instructions in a predefined sequence.
πŸ”˜Thread: Minimal software processor for executing instructions in a process.
πŸ”˜Process: A container for one or more threads.

Thread Contexts πŸ”§
β–ͺ️Processor Context: Register values for executing instructions (e.g., program counter, stack pointer).
β–ͺ️Thread Context: Includes processor context and additional state.
β–ͺ️Process Context: Adds memory management info (e.g., MMU registers).


Why Use Threads ❔
βœ”οΈParallelism: Exploit multi-core processors for concurrent operations.
βœ”οΈReduced Blocking: Avoid halting operations during I/O.
βœ”οΈLightweight Switching: Thread switches are cheaper than process switches.

βš–οΈ Trade-Offs:
- Threads share an address space, leading to potential errors.
- Faster context switching vs. OS-managed memory protection.

Virtualization πŸ–₯


Virtualization separates the interface from the underlying physical implementation, allowing abstraction and flexibility.

Principle of Virtualization:
πŸͺžMimics hardware/software interfaces for portability, migration, and failure isolation.
πŸ”‘ Key Solutions:
πŸ“¦ Containers: Share OS resources, use namespaces for isolation.
πŸ›‘ Virtual Machines (VMs): Full OS and resource replication, suited for strong isolation.

Clients and Servers πŸ’»πŸŒ


Multithreaded Clients 🧡🌐
πŸš€ Enhance performance by fetching resources (e.g., files, web content) concurrently with threads.
πŸ”„ Improves Thread-Level Parallelism (TLP): A measure of how well threads overlap in execution.

Server Models πŸ–₯βš™οΈ
πŸ›‘ Single-threaded Server: Blocks on requests, limiting scalability.
⚑️ Multithreaded Server: Handles multiple clients using separate threads, hiding latencies and enhancing performance.
πŸ•Ή Dispatcher-Worker Model:
🎯 Dispatcher assigns tasks to workers.
πŸ›  Worker threads handle individual tasks, enhancing modularity and speed.

Code Migration πŸš€


Why Migrate Code?
- Minimize data transfer by moving computation closer to resources.
- Load distribution: ensuring that servers in a data center are sufficiently loaded (e.g., to prevent waste of energy)
- Privacy and security: in many cases, one cannot move data to another location, for whatever reason(often legal ones). Solution: move the code to the data.
- Adapt to environment constraints like hardware or network limitations.


πŸ”ΉObject components
β€’ Code segment: contains the actual code
β€’ Data segment: contains the state
β€’ Execution state: contains context of thread executing the object’s code

🫀 Weak Mobility: Move only code and data segment (and reboot
execution)
β€’ Relatively simple, especially if code is portable
β€’ Distinguish code shipping (push) from code fetching (pull)

πŸ’ͺStrong Mobility: Move component, including execution state
β€’ Migration: move entire object from one machine to the other
β€’ Cloning: start a clone, and set it in the same execution state.

Migration in Heterogeneous Systems 🚚🌍

🚫 Main Challenges
- Target machine incompatibility: Migrated code may not execute properly on different hardware or OS.
- Process/Thread/Processor context is deeply tied to local hardware and runtime systems.

πŸ’‘Solution
Abstract machines implemented across platforms:
πŸ–₯ Interpreted Languages: Utilize their own virtual machines (e.g., Java).
πŸ”’ Virtual Machine Monitors: Abstract execution layers across platforms.


Summary 🌟


Processes and threads form the backbone of distributed systems by enabling multitasking, virtualization, and scalable client-server interactions. Virtualization extends these concepts for robust and flexible applications.


βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–
The preview is overβ€”now dive into the expansive world of Distributed Systems! πŸ–₯πŸ”—πŸŒ
βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–