12 Oct 2004 ... LASCI04.ppt. Workshop on ... Sense Amplifiers/Latches. Column Multiplexing.
Memory. Array. 1 “Full Word”/ ..... Variant Two: Smart Memory.
Stephen Kieran: refabricating ARCHITECTURE. Examines how manufacturing
methodologies are poised to transform building construction. The premise of this
...
Shqipëri, në vitet 1945-1980â, Gazeta 55 date 16/12/2010. Available: http://gazeta55.al/gjeneza-e-arkitektures-moderne-dhe-e-realizmit-socialist-ne-shqiperi-.
The 68000 Microprocessor: Hardware and Software Principles and. Applications,
by James Antonakos, 5th Edition, Prentice Hall, 2004. Excerpted from lecture ...
Page 1 of 8. Page 1 of 8. Page 2 of 8. Page 2 of 8. Page 3 of 8. Page 3 of 8. Page 4 of 8. Page 4 of 8. MANTZARIDIS MOUN
heterogeneous catalysis for todays challenges synthesis characterization and applications rsc green chemistry contains i
#*DuiX-(( Download 'iGen: Why Todays Super-Connected Kids Are Growing Up Less ... employ, market to, or win the vote of
2. / Creative Light /. Creative Light is an international photographic lighting
accessory ... Ergonomic design helps the working pro to achieve lighting goals
easily ...
http://www.eembc.com/techlit/datasheets/autobench_db.pdf. 21. Märdalen WCET ...... hintsâ to increase the level of knowledge about tasks' requirements. At this.
A Quantitative Approach, 5th Edition ... How computer architecture affects
programming style. • How programming style affect computer architecture.
27th August 2008. FAT ARCHITECTURE AT 2008 BCA BERTHOLD LUBETKIN
LECTURE. FAT, one of the UK's most talked about young architectural practices,
...
Jan 17, 2003 ... So that new computers can run old software. • How is computer hardware
organized? – Processor, Memory, I/O, etc. • How is the processor ...
University of Victoria, Canada. Oliver Diessel .... Autonomic Workload Management for Multi-core Processor Systems ... 49. Johannes .... fer opportunities in terms of improved power/performance properties, but pose ...... Scott Ananian, C., Asanovic,
Embedded Microprocessor Benchmark Consortiu: AutoBench 1.1 software bench- mark data book, http://www.eembc.com/techlit/datasheets/autobench_db.pdf.
University of California, Los Angeles, CA, USA. Doug Tygar. University ... Gerhard Weikum. Max-Planck Institute of Computer Science, Saarbruecken, Germany ...
Digital Design. Computer Design. Application. Programming. System
Programming. Microprogrammin g. Instruction Set Architecture - “Machine
Language” ...
... Workshop (10/24). – Interactive session to review your designs. 2 .... one
another. 18. Source: Mastering Object-Oriented Design in C++ by Cay S.
Horstmann ...
2013 Pearson Education, Inc. Lectures by Edward J. Zalisko ... Campbell
Essential Biology with Physiology,. Fourth Edition. – Eric J. Simon, Jean L. Dickey
, and ...
Feb 22, 2012 - erties of CLDN4 in cultured insect cells with ambiguous results.39 FRAP studies suggest that claudin molecules assembled in tight junctions ...
Note: Before we move on to designing and creating a subnet mask, you need to
... This is accomplished by assigning a subnet mask to each machine. A subnet.
Primary Load: Bending Moment and Shear Force. Introduction to course: Design
process. Structural design process. General course content: 13.122 Ship ...
modular functors (which arise in 2-dimensional conformal field theory). The idea that these subjects are somehow related first appeared in the physics literature ...
A l'ombre de mon grand-père de Christian SIGNOL. Lecture. Crépuscule de
Gustave FLAUBERT. Langue. Le discours rapporté. Ecrit. L'étude de texte.
Lecture.
K.H. Nierhaus, R.K. Agrawal, and J. Frank. (2002) EMBO J ... Nielsen, P. Nissen,
S.C. Harvey, M. Ehrenberg, and J. Frank. (2003). .... Joachim Frank. Wadsworth ...
Feb 3, 2009 - RPC allows applications to become distributed ... Split application based on function, ease of .... Diffic
Last Lecture Important Lessons - Naming Naming is a powerful tool in system design A layer of indirection can solve many problems Name+context
to value translation binding How to determine context? Implicit from environment Explicit e.g., recursive names Search paths
Structure of names Implications on lookup, flexibility Late binding How DNS works
L-4 RPC 1
Today's Lecture
2
Client-server architecture Client
RPC
overview
RPC
transparency
RPC
implementation issues
sends a request, server replies w. a response Interaction fits many applications Naturally extends to distributed computing
Why
do people like client/server architecture?
Provides fault isolation between modules Scalable performance (multiple servers) Central server: Easy to manage Easy to program
3
4
Remote procedure call
Developing with RPC
A
remote procedure call makes a call to a remote service look like a local call
1.
Define APIs between modules •
RPC makes transparent whether server is local or remote RPC allows applications to become distributed transparently RPC makes architecture of remote machine transparent
• 2. 3.
Split application based on function, ease of development, and ease of maintenance Don’t worry whether modules run locally or remotely
Decide what runs locally and remotely
•
Decision may even be at run-time
•
Deal with partial failures
Make APIs bullet proof
5
6
Stubs: obtaining transparency
Conventional Procedure Call
Compiler
generates from API stubs for a procedure on the client and server Client stub
Marshals arguments into machine-independent format Sends request to server Waits for response Unmarshals result and returns to caller
Server
stub
Unmarshals arguments and builds stack frame Calls procedure Server stub marshalls results and sends reply
7
(a) Parameter passing in a local procedure call: the stack before the call to read (b) The stack while the called procedure – read(fd, buf, nbytes) - is active. 8
Client and Server Stubs
Remote Procedure Calls (1)
A remote procedure call occurs in the following steps:
1.
The client procedure calls the client stub in the normal way. The client stub builds a message and calls the local operating system. The client’s OS sends the message to the remote OS. The remote OS gives the message to the server stub. The server stub unpacks the parameters and calls the server.
2. 3. 4. 5.
Principle of RPC between a client and server program.
Continued … 9
Remote Procedure Calls (2)
10
Passing Value Parameters (1)
A remote procedure call occurs in the following steps (continued):
The server does the work and returns the result to the stub. 7. The server stub packs it in a message and calls its local OS. 8. The server’s OS sends the message to the client’s OS. 9. The client’s OS gives the message to the client stub. 10. The stub unpacks the result and returns to the client. 6.
The
steps involved in a doing a remote computation through RPC.
11
12
Passing Value Parameters (2)
Parameter Specification and Stub Generation (a) (b)
a) b) c)
A procedure The corresponding message.
Original message on the Pentium The message after receipt on the SPARC The message after being inverted. The little numbers in boxes indicate the address of each byte
14
Asynchronous RPC (1)
Asynchronous RPC (2)
The
interaction between client and server in a traditional RPC.
The
15
interaction using asynchronous RPC. 16
Asynchronous RPC (3)
Binding a Client to a Server Registration of a server makes it possible for a client to locate the server and bind to it Server location is done in two steps:
Locate the server’s machine. Locate the server on that machine.
A
client and server interacting through two asynchronous RPCs. 17
18
Distributed Objects
Today's Lecture RPC
overview
RPC
transparency
RPC
implementation issues
Common organization of a remote object with client-side proxy. 19
20
RPC vs. LPC
Passing Reference Parameters
4
properties of distributed computing that make achieving transparency difficult:
Replace
with pass by copy/restore
Need to know size of data to copy Difficult in some programming languages
Partial failures Latency Memory access
Solves the problem only partially What about data structures containing pointers? Access to memory in general?
21
22
Partial failures In local computing: if machine fails, application fails In distributed computing: if a machine fails, part of application fails one cannot tell the difference between a machine failure and network failure How to make partial failures transparent
client?
Strawman solution Make
remote behavior identical to local behavior:
Every partial failure results in complete failure You abort and reboot the whole system
You wait patiently until system is repaired
to
Problems
with this solution:
Many catastrophic failures Clients block for long periods
System might not be able to recover
23
24
Real solution: break transparency Possible
semantics for RPC:
Summary: expose remoteness to client Expose
RPC properties to client, since you cannot hide them
Exactly-once
Impossible in practice
At least once:
Application
writers have to decide how to deal with partial failures
Only for idempotent operations
At most once
Zero, don’t know, or once
Consider: E-commerce application vs. game
Zero or once
Transactional semantics
At-most-once
most practical
But different from LPC
25
26
Today's Lecture RPC
overview
RPC
transparency
RPC
implementation issues
RPC implementation Stub compiler Generates stubs for client and server Language dependent Compile into machine-independent format E.g., XDR
Format describes types and values
RPC RPC
27
protocol transport
28
Writing a Client and a Server (1)
Writing a Client and a Server (2)
The
steps in writing a client and a server in DCE RPC.
Three A
files output by the IDL compiler:
header file (e.g., interface.h, in C terms). client stub. server stub.
The The
29
RPC protocol
30
RPC transport
Guarantee
at-most-once semantics by tagging requests and response with a nonce RPC request header: Request nonce Service Identifier Call identifier
Protocol:
Use reliable transport layer Flow control Congestion control Reliable message transfer Combine RPC and transport Reduce number of messages
protocol
RPC response can also function as acknowledgement for message transport protocol
Client resends after time out Server maintains table of nonces and replies
31
32
Important Lessons
Procedure calls
Time
Simple way to pass control and data Elegant transparent way to distribute application Not only way…
Synchronization
NTP
Hard to provide true transparency
Next Lecture
Failures Performance Memory access Etc.
How to deal with hard problem give up and let programmer deal with it “Worse is better”