CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 1 Flexible, Transparent and Dynamic occam Networking With KRoC.net Mario Schweigler, Fred.

Slides:



Advertisements
Similar presentations
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
CCNA – Network Fundamentals
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
Networks 1 CS502 Spring 2006 Network Input & Output CS-502 Operating Systems Spring 2006.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
CS-3013 & CS-502, Summer 2006 Network Input & Output1 CS-3013 & CS-502, Summer 2006.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
.NET Mobile Application Development Remote Procedure Call.
C++ fundamentals.
Gursharan Singh Tatla Transport Layer 16-May
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
Protocols and the TCP/IP Suite Chapter 4. Multilayer communication. A series of layers, each built upon the one below it. The purpose of each layer is.
Presentation on Osi & TCP/IP MODEL
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
LWIP TCP/IP Stack 김백규.
School of Engineering and Computer Science Victoria University of Wellington Copyright: Peter Andreae, VUW Networking COMP # 21.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
1 Version 3.0 Module 11 TCP Application and Transport.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
Chapter 12 Transmission Control Protocol (TCP)
The Socket Interface Chapter 21. Application Program Interface (API) Interface used between application programs and TCP/IP protocols Interface used between.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Pony – The occam-π Network Environment Mario Schweigler and Adam Sampson Computing Laboratory, University of Kent Canterbury, UK.
CE Operating Systems Lecture 13 Linux/Unix interprocess communication.
CPA 2004: Mario Schweigler: Adding Mobility to KRoC.net 1 Adding Mobility to Networked Channel-Types Mario Schweigler Computing Laboratory, University.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Remote Method Invocation A Client Server Approach.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
© 2002, Cisco Systems, Inc. All rights reserved..
Pony – The occam-π Network Environment A Unified Model for Inter- and Intra-processor Concurrency Mario Schweigler Computing Laboratory, University of.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Chapter 9 The Transport Layer The Internet Protocol has three main protocols that run on top of IP: two are for data, one for control.
Networking COMP
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CS4470 Computer Networking Protocols
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Exceptions and networking
Presentation transcript:

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 1 Flexible, Transparent and Dynamic occam Networking With KRoC.net Mario Schweigler, Fred Barnes, Peter Welch Computing Laboratory, University of Kent Canterbury, UK

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 2 What Is KRoC.net? Extension to KRoC Framework to distribute occam channels (and channel-types) over networks Implemented in occam (mainly) Aims: –Transparency to the occam programmer –Dynamic setup of network channels –Flexible configuration and platform-independence

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 3 Contents Channel-types and network channel-types New occam features used in KRoC.net Communication over network channels –The KRoC.net manager Setting up network channel-types Proposals for an extended occam syntax Configuration Performance Conclusion and future work

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 4 Reminder: Channel-types Local channel-types: CHAN TYPE THING MOBILE RECORD CHAN INT req?: -- request channel CHAN MOBILE []BYTE reply!: -- reply channel : Allocation in pairs at runtime: THING? thing.svr: -- declare server-end THING! thing.cli: -- declare client-end SEQ thing.svr, thing.cli := MOBILE THING -- allocation... use them

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 5 Reminder: Channel-types Usage: –Server-end: PROC server(THING? thing.svr) WHILE TRUE INT size: MOBILE []BYTE buffer: SEQ thing.svr[req] ? size -- get size buffer := MOBILE [size]BYTE -- allocate buffer... fill buffer with data thing.svr[reply] ! buffer -- send buffer back :

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 6 Reminder: Channel-types Usage: –Client-end: PROC client(THING! thing.cli) WHILE TRUE INT size: MOBILE []BYTE buffer: SEQ... set size thing.cli[req] ! size -- send size wanted thing.cli[reply] ? buffer -- get buffer... use buffer :

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 7 Reminder: Channel-types Usage: –Allocation of the two ends and passing as parameters: THING? thing.svr: THING! thing.cli: SEQ thing.svr, thing.cli := MOBILE THING PAR server(thing.svr) -- pass server-end to server client(thing.cli) -- pass client-end to client

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 8 Reminder: Channel-types Communicating channel-type ends: –Generator: PROC generator(CHAN THING? svr.out!, CHAN THING! cli.out!) THING? thing.svr: THING! thing.cli: SEQ thing.svr, thing.cli := MOBILE THING svr.out ! thing.svr -- send server-end cli.out ! thing.cli -- send client-end :

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 9 Reminder: Channel-types Communicating channel-type ends: –Server: PROC server(CHAN THING? svr.in?) THING? thing.svr: SEQ svr.in ? thing.svr -- get server-end... use thing.svr :

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 10 Reminder: Channel-types Communicating channel-type ends: –Client: PROC client(CHAN THING! cli.in?) THING! thing.cli: SEQ cli.in ? thing.cli -- get client-end... use thing.cli :

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 11 Reminder: Channel-types Communicating channel-type ends: –Main program: CHAN THING? svr.chan: CHAN THING! cli.chan: PAR generator(svr.chan!, cli.chan!) server(svr.chan?) client(cli.chan?)

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 12 Network channel-types (NCTs) Channel-types offer: –Grouping of channels to a bundle –Distinction between the two ends –Movable ends –Sharable ends

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 13 Network channel-types (NCTs) In distributed systems, it is natural to set up the communication ends first and then to connect them Channel-types: a good basis for networked CSP communication in occam “Simple” network channels are emulated by an NCT containing only one channel

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 14 Basic Infrastructure We want transparency for the occam programmer Behaviour of channels and channel- types should be identical both locally and networked from the point of view of the processes connected via the channel/channel-type

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 15 Local Channels and Channel-types

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 16 Network Channels and Network Channel-types

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 17 New occam Features in KRoC.net New occam features have been used in KRoC.net: –Extended rendezvous –Generic Protocol Converters These features are needed for communication transparency

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 18 Extended Rendezvous Allows to extend channel synchronisation Network infrastructure can be ‘plugged’ in without losing the synchronisation between the ends

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 19 Example: PROC tap(CHAN INT in?, report!, out!) WHILE TRUE INT i: in ?? i -- extended input PAR -- extended process report ! i out ! i : Extended Rendezvous

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 20 Generic Protocol Converters Convert from any given occam PROTOCOL (including user-defined protocols) to a link protocol used by the network infrastructure and vice versa This gives us PROTOCOL transparency: channels of all protocols can now be networked

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 21 Generic Protocol Converters Link protocol –Address/size pair (just like a transputer) –Consists of a pointer to the data item and its size –Prevents unnecessary copying of data within the network infrastructure

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 22 Generic Protocol Converters Two compiler built-in PROC s: PROC DECODE.CHANNEL(CHAN * in?, CHAN ** term?, CHAN *** out!) PROC ENCODE.CHANNEL(CHAN *** in?, CHAN ** term?, CHAN * out!) ‘Asterisk’ protocols: –* application protocol –** termination signal ( INT or BOOL ) –*** link protocol

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 23 Generic Protocol Converters Decoding of PROTOCOL s : –DECODE.CHANNEL outputs one or multiple (for certain PROTOCOL s, e.g. sequential protocols) address/size pairs –Data can then be copied to the remote machine

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 24 Generic Protocol Converters Encoding of PROTOCOL s : –Network infrastructure receives data and stores it in a dynamic MOBILE BYTE array –ENCODE.CHANNEL converts from the address/size of the array(s) into the appropriate application protocol –Data is either copied or moved into the application, depending on the protocol

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 25 Communication Over Network Channels Identical for ‘plain’ network channels and network channels inside an NCT Communication handled by the KRoC.net manager Each end of a network channel/NCT communicates with its instance of the KRoC.net manager, who then communicates over the network with the remote KRoC.net manager

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 26 The KRoC.net Manager Runs on each machine with networked channels Runs in parallel with the application level processes Handles setup of NCTs and communication over network channels Modular design, therefore easily extensible

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 27 The KRoC.net Manager KRoC.net manager has a front-end and a back-end Front-end handles the application side of NCTs and network channels: –Output Control Process (OCP) or Input Control Process (ICP) for each network channel-end –Server Control Process (SCP) or Client Control Process (CCP) for each NCT end

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 28 The KRoC.net Manager Back-end deals with network communication: –Separate module inside the KRoC.net manager: link manager handles network links between remote machines –Each link handled by a Link Control Process (LCP) –Link manager can be exchanged without need to change the front-end parts –Currently only TCP/IP networks supported, but writing a link manager for other types of networks is trivial –LCP for TCP contains Tx/Rx processes for each link

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 29 The KRoC.net Manager Multiplexing: –Multiple network channels between two machines are multiplexed over one network link –Front-end and back-end processes communicate over a ‘cross bar’, similar to JCSP.net –Ends of channel-types connected to the front-end and back-end components are stored in special arrays (which can be extended if need be) –Arrays are handled by special array manager processes

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 30 The KRoC.net Manager

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 31 Communication Over Network Channels Ends of network channels are identified by a unique Output Control Number or Input Control Number Communication between two machines is multiplexed over the same network link, Control Numbers used as ‘local address’ to find the correct Output/Input Control Process to communicate with (via its index in the array) Remote Control Number sent together with the data or the acknowledgement

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 32 Communication Over Network Channels Generic Protocol Converters plugged between application level process and KRoC.net manager Extended Rendezvous used to ‘extend’ the communication: –Data is stored in the ICP until read by the application –Writing-end is blocked until network acknowledgement arrives –Preserving CSP synchronisation semantics Communication over network channels fully transparent to the application level process

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 33 Communication Over Network Channels

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 34 Setting up NCTs Rather complex for the user at the moment Details in the paper All this ‘bootstrapping’ code will be hidden behind new occam language constructs later to achieve full transparency also for the setup of NCTs and the administration (e.g. claiming, moving) of their ends

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 35 Setting up NCTs

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 36 Setting up NCTs Setup: establishing the two ends of an NCT and connecting them Client-end connects to the server-side via a special URL that describes the location of the server-end: nct: ( ( cns: | cns. : ) ] | ( | $ [. : ] )

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 37 Setting up NCTs is a name given to the server-end Could be a simple name like “ fred ” or a structured name like “ my-application/fred ” Server-end is identified by this given name

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 38 Setting up NCTs Three ways of connecting an NCT: –Via the Channel Name Server –Directly –Anonymously

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 39 The Channel Name Server (CNS) Central server storing the locations of NCT ‘server’-ends Can be millions of entries, even of completely different applications: –In this case structured names are sensible ‘Server’-end registered with the CNS under its name ‘Client’-end looks up that ‘server’-end at the CNS

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 40 The Channel Name Server (CNS) Which CNS to use? –Default CNS: Suffix in URL omitted nct:fred –Non-default CNS: Suffix ” –Directly, using to the location of the CNS: Suffix : ”

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 41 Connecting an NCT Directly Name of the server-end is stored at its machine, not registered with the CNS: –Suffix ” to set up the server-end Client-end ‘looks up’ the server-end, via its name, directly at its machine: –Suffix : ”

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 42 Connecting an NCT Anonymously Server-end is created anonymously, i.e. without a name KRoC.net manager returns an ‘anonymous URL’ which describes the location of the server-end: –URL “ : ” Anonymous URL is passed on to the client- end side Client-end can then be connected via this URL

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 43 Connecting an NCT Anonymously Possible use: –Connecting to a ‘published’ server-end –Server spawns off a worker process, creates an anonymous NCT and tells client its location –Client can then establish a ‘private’ connection to the worker process, server can deal with other clients in the meantime Anonymous NCTs will become obsolete when the movement of NCTs is implemented (just as it works now for local channel-types already)

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 44 Proposals for an Extended occam Syntax Setup process rather complex for the user at the moment KRoC will be extended to hide the KRoC.net setup code behind occam language constructs Ideas for an extended syntax: new “ NET ” keyword

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 45 Proposals for an Extended occam Syntax Dynamic construction of the server-end of an any-to-one NCT: THING? net.thing.svr: INT result:... SEQ net.thing.svr, result := MOBILE NET ANY2ONE TCP THING? "nct:fred"

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 46 Proposals for an Extended occam Syntax Setting up one of many possible client- ends of the same NCT: SHARED THING! net.thing.cli: INT result, timeout:... SEQ timeout := 5 * seconds net.thing.cli, result := MOBILE NET ANY2ONE TCP THING! "nct:fred" timeout

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 47 Proposals for an Extended occam Syntax Reading-end of a ‘simple’ one-to-one channel: INT result: NET ONE2ONE TCP CHAN INT c? "nct:sue" result: The writing-end on another machine: INT result: NET ONE2ONE TCP CHAN INT c! "nct:sue" result timeout:

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 48 Proposals for an Extended occam Syntax Shared writing-end of a ‘simple’ any-to- one channel: INT result: SHARED NET ANY2ONE TCP CHAN INT c! "nct:sue" result timeout: The reading-end on another machine: INT result: NET ANY2ONE TCP CHAN INT c? "nct:sue" result:

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 49 Configuration of KRoC.net Settings required: –Location (i.e. IP address and port number for TCP) of the own machine –Location of the CNS

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 50 Configuration of KRoC.net File “. kroc.net ” for the location of the own machine: [ ] i.e. for TCP: [tcp] ip= port= Location is used as identifier for the machine

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 51 Configuration of KRoC.net File “. self.cns ” used by the CNS itself –Same style, but without IP address, as the location of the CNS is not part of an identifier File “. cns ” used by the the application, contains the location of the default CNS –For TCP: IP address or host name, and port number File “. cns. ” may contain the location of a non-default CNS – “ ” is the name of the CNS used in the ” part of the URL

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 52 Performance of KRoC.net Benchmarking system: –Sender on gaia (1GHz Pentium III) –Receiver on catch22 (2.4GHz Pentium 4) –Connected by 100MBit/s ethernet

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 53 Bandwidth Measurement Sender sends a sequence of equal- sized packets over a network channel to the receiver Repeated for sizes from 1 Byte to 64 KBytes, doubling each time Compared against raw sockets and sockets with acknowledgement

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 54 Bandwidth Measurement

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 55 Bandwidth Measurement Comparison with ‘sockets with ack’ shows small overhead of KRoC.net About half the bandwidth of ‘sockets with ack’ for 1 Byte packets –Due to separate sending of packet size and data –We are currently experimenting with a WRITEV implementation to avoid that –Comparison of KRoC.net to a modified ‘sockets with ack’ version that also uses two communications gives practically the same results

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 56 Bandwidth Measurement KRoC.net’s ping-pong time (i.e. time between sending data and receiving acknowledgement, excluding network communication) is 1.9µs on gaia –Well within the error range of about 10% (about 20µs) of the benchmarks –Overheads negligible High impact of socket communication due to OS system calls and OS-level context switches –RMoX implementation will give better performance

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 57 Load Measurement Measuring the load of KRoC.net against other processes running in parallel Modified benchmark setup: –Sender stays the same –Receiver now runs in parallel with two other processes: sample and succ Both processes are running infinitely at lowest occam process priority, i.e. they are always active when neither the receiver nor the KRoC.net infrastructure are active

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 58 Load Measurement sample passes a number to succ who increases it and sends it back The receiver can interrupt sample at any time to request the current count ‘Unloaded’ value is normalised to 100% background processing capability

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 59 Background Processing Capability

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 60 Load Measurement KRoC.net has a relatively low impact on processes running in the background Even slightly better that DoP, a predecessor from 2001, which is most likely due to the dynamic setup of KRoC.net: –KRoC.net’s component processes are created ‘on the fly’ when they are needed –No copying of data involved, just address/size pairs

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 61 Conclusion KRoC.net has become very dynamic and flexible Easy and safe setup and use of network channels High level of transparency in terms of channel communication, but still work to do to make the setup process fully transparent

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 62 Future Work Achieve total transparency: –Automated dynamic setup, introducing new language constructs –Implement the moving of NCT ends –Hide the claiming of shared ends behind the existing occam CLAIM syntax Introduce proper error messages for cases when the network communication goes wrong

CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 63 Future Work Reduce network latency –Introduce buffered channels –Introduce ping/pong style NCTs –Improve the Generic Protocol Converters for PROTOCOL s which involve more than one communication, so that we know how many communications are following for the same PROTOCOL –Using WRITEV to reduce the number of network communications where possible