csse 444 concurrent distributed systems l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CSSE 444: Concurrent & Distributed Systems PowerPoint Presentation
Download Presentation
CSSE 444: Concurrent & Distributed Systems

Loading in 2 Seconds...

play fullscreen
1 / 44

CSSE 444: Concurrent & Distributed Systems - PowerPoint PPT Presentation


  • 308 Views
  • Uploaded on

CSSE 444: Concurrent & Distributed Systems Dr. Yingwu Zhu Office: ENGR 530 Phone: 296-5515 Email: zhuy@seattleu.edu Web: http://fac-staff.seattleu.edu/zhuy Brief Bio PhD in CSE, University of Cincinnati, 2005 MS., BS. in CS, Huazhong University of Science & Technology

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CSSE 444: Concurrent & Distributed Systems' - liam


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
csse 444 concurrent distributed systems

CSSE 444: Concurrent & Distributed Systems

Dr. Yingwu Zhu

Office: ENGR 530 Phone: 296-5515 Email: zhuy@seattleu.edu

Web: http://fac-staff.seattleu.edu/zhuy

brief bio
Brief Bio
  • PhD in CSE, University of Cincinnati, 2005
  • MS., BS. in CS, Huazhong University of Science & Technology
  • MCSE (Microsoft Certified Software Engineer)
  • 3-year Software Engineer and Project Manager in industry
  • Publications: papers in top Journals and Conferences
    • http://fac-staff.seattleu.edu/zhuy
  • Research: Peer-to-peer(P2P) systems, file/storage systems, distributed systems, networking
  • Teaching: Data Structures, C/C++, Advanced topics in OS, Concurrent Distributed Systems
what can you learn in this course
What can you learn in this course?
  • Two main threads:
    • Basic concepts in distributed systems
      • Communications, naming, reliability, availability, consistency, security, etc.
    • Practical projects in network programming (TCP/UDP), http client/server models, processes and threads communications
syllabus
Syllabus
  • Access the syllabus on my homepage
oitlnx account
OITLNX Account
  • OITLNX will be the server where you do the programming assignments/projects
  • If you do NOT have an account, contact HelpDesk ASAP!
  • Programming related docs in my website
my questions
My Questions?
  • Q1: Do you have experiences in socket programming?
  • Q2: Do you have experiences in process communications?
  • Q3: Do you have experiences in thread programming?
  • Q4: Do you have knowledge in computer networks?
my office hours
My Office Hours
  • 1:30-2:30PM MWF
  • Or Anytime as long as I am in office (Generally I am in office every week day )
introduction

Introduction

Chapter 1

definition of a distributed system 1
Definition of a Distributed System (1)
  • A distributed system is:
  • A collection of independent computers that appears to its users as a single coherent system.
  • Two aspects:
  • Hardware: machines are autonomous
  • Software: Users think it is a single system
definition of a distributed system 2
Definition of a Distributed System (2)

1.1

A distributed system organized as middleware.Note that the middleware layer extends over multiple machines.

goals of distributed systems
Goals of Distributed Systems
  • Connecting users and resources
    • Access remote resources, e.g., files, printers, etc
    • Share local resources with other users in a controlled way
  • Transparency
    • Hide that fact that processes and resources are physically distributed across multiple computers
    • Different forms of transparency
transparency in a distributed system
Transparency in a Distributed System

Different forms of transparency in a distributed system.

openness
Openness
  • Definition: A system that offers services according to standard rules that describe the syntax and semantics of those services
    • Interoperability
    • Portability:
scalability
Scalability
  • How to measure scalability of a system?
    • By system size: scale to more users and resources added to the system
    • By geography: geographically scalable in that users and resources are distributed across the Internet
    • By administration: administratively scalable, spanning many independent administrative organizations
scalability problems
Scalability Problems

Examples of scalability limitations.

scaling techniques 1
Scaling Techniques (1)

1.4

  • The difference between letting:
  • a server or
  • a client check forms as they are being filled
scaling techniques 2
Scaling Techniques (2)

1.5

An example of dividing the DNS name space into zones.

hardware concepts
Hardware Concepts

1.6

Different basic organizations and memories in distributed computer

systems

multiprocessors 1
Multiprocessors (1)

1.7

  • A bus-based multiprocessor.
multiprocessors 2
Multiprocessors (2)

1.8

  • A crossbar switch
  • An omega switching network
software concepts
Software Concepts
  • An overview of
  • DOS (Distributed Operating Systems)
  • NOS (Network Operating Systems)
  • Middleware
uniprocessor operating systems
Uniprocessor Operating Systems

1.11

  • Separating applications from operating system code through
  • a microkernel.
multiprocessor operating systems 1
Multiprocessor Operating Systems (1)

monitor Counter {

private:

int count = 0;

public:

int value() { return count;}

void incr () { count = count + 1;}

void decr() { count = count – 1;}

}

  • A monitor to protect an integer against concurrent access.
multiprocessor operating systems 2
Multiprocessor Operating Systems (2)

monitor Counter {

private:

int count = 0;

int blocked_procs = 0;

condition unblocked;

public:

int value () { return count;}

void incr () {

if (blocked_procs == 0)

count = count + 1;

else

signal (unblocked);

}

void decr() {

if (count ==0) {

blocked_procs = blocked_procs + 1;

wait (unblocked);

blocked_procs = blocked_procs – 1;

}

else

count = count – 1;

}

}

  • A monitor to protect an integer against concurrent access, but
  • blocking a process.
multicomputer operating systems 1
Multicomputer Operating Systems (1)

1.14

  • General structure of a multicomputer operating system
multicomputer operating systems 2
Multicomputer Operating Systems (2)

1.15

  • Alternatives for blocking and buffering in message passing.
multicomputer operating systems 3
Multicomputer Operating Systems (3)
  • Relation between blocking, buffering, and reliable communications.
distributed shared memory systems 1
Distributed Shared Memory Systems (1)
  • Pages of address space distributed among four machines
  • Situation after CPU 1 references page 10
  • Situation if page 10 is read only and replication is used
distributed shared memory systems 2
Distributed Shared Memory Systems (2)

1.18

  • False sharing of a page between two independent processes.
network operating system 1
Network Operating System (1)

1-19

  • General structure of a network operating system.
network operating system 2
Network Operating System (2)

1-20

  • Two clients and a server in a network operating system.
network operating system 3
Network Operating System (3)

1.21

  • Different clients may mount the servers in different places.
positioning middleware
Positioning Middleware

1-22

  • General structure of a distributed system as middleware.
middleware and openness
Middleware and Openness

1.23

  • In an open middleware-based distributed system, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications.
comparison between systems
Comparison between Systems
  • A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems.
clients and servers
Clients and Servers

1.25

  • General interaction between a client and a server.
an example client and server 1
An Example Client and Server (1)
  • The header.h file used by the client and server.
an example client and server 3
An Example Client and Server (3)

1-27 b

  • A client using the server to copy a file.
processing level
Processing Level

1-28

  • The general organization of an Internet search engine into three different layers
multitiered architectures 1
Multitiered Architectures (1)

1-29

  • Alternative client-server organizations (a) – (e).
multitiered architectures 2
Multitiered Architectures (2)

1-30

  • An example of a server acting as a client.
modern architectures
Modern Architectures

1-31

  • An example of horizontal distribution of a Web service.