Usmux: Unix-domain socket multiplexing

Size: px
Start display at page:

Download "Usmux: Unix-domain socket multiplexing"

Transcription

1 Usmux: Unix-domain socket multiplexing Steven Simpson October 14, 2017 Abstract Although Java programs are executed on a virtual machine, they can run as fast as programs compiled to the native architecture when just-in-time (JIT) compilation is applied, along with other optimizations involving profiling and in-lining. These are most effective in long-running executions, where the cost of initialization and analysis can be amortized. Consequently, Java programs can run efficiently over long periods as server processes and desktop applications, but perform significantly less well as short lived programs such as CGI scripts. A long-running Java application could be adapted for use by short-lived commands by making them connect to (say) a socket which the application is listening on. The short-lived commands are then simple clients, whose job is merely to relay I/O between the user and the application. The only built-in and portable mechanism to connect with such a Java process is to use network sockets, possibly restricted to the loopback address for security purposes. There are also third-party Java libraries which provide access to Unix-domain sockets, giving additional security (especially on multi-user machines), but these do not fit well with Java s native socket abstraction, which allows its Internet-specific nature to leak through. They also usually require JNI, and therefore introduce additional complexity in terms of installation. This report details an approach to supporting Unixdomain socket access to persistent Java processes, without using any JNI, and just a small amount of C in a separate wrapper or launcher program. This brings an additional benefit of launching the Java process in the background, with a synchronization point just after start-up to allow the process to abort execution if failure is detected early. Under the approach, the launcher creates a pair of named pipes in the filesystem, starts the Java process (informing it of the names of the two pipes), opens a Unix-domain socket, and multiplexes connections on the socket to the Java process via the pipes. A protocol is defined to permit the multiplexing. Specifications of the protocol and the Java API are independent of this particular use of sockets and pipes, so they could be re-applied on other platforms with alternative concepts, while allowing the Java code that uses them to remain portable between platforms. Introduction At first, Java appears inherently slow by its design. Java source code is first compiled into bytecode, an assembly language for a virtual processor called the Java Virtual Machine (JVM). The JVM then processes each (virtual- )machine code instruction to produce the behaviour represented by the source code, and it is this processing which is slower that an equivalent program compiled to a native machine code. The benefit is a write-once, runanywhere (WORA) environment making Java programs maximally portable. The additional layer of abstraction (the JVM must ultimately be written in native machine code) also provides greater integrity, increasing security, making dynamic loading of foreign code possible, and detecting programmer error. The creators of Java have also sought speed improvements along several avenues. Start-up times have been reduced by increasing the modularity of the standard library, and by permitting some lazy class initialization. Bytecode can be compiled to native code as it is loaded with a just-in-time (JIT) compiler installed in the JVM. The JVM may also monitor its process, looking for sections of code most frequently executed, in order to prioritize its optimization. It may also in-line sections of code to reduce the overhead of method invocation. Note that these optimizations apply at run time in the JVM, whereas the compiler mostly avoids them, as the effectiveness of these optimizations depend greatly on runtime characteristics not available during compilation. 1

2 Altogether, these optimizations can allow a Java process to run at least as fast as a natively compiled program, while still retaining the benefits of portability. However, each one also comes with an overhead, which must be amortized by its results being applicable over a sufficiently long period. For example, a Java program used as a short-lived command cannot easily benefit from JIT because JIT-ed code may only be executed a small number of times before exiting (and the next invocation will have to be re-jit-ed), nor from HotSpot because the process terminates before enough analysis has been performed. Consequently, Java performs best when used for long-running programs, such as desktop applications and server processes. Some environments are designed to work with shortlived processes. A command shell such as Bash repeatedly executes external commands, and the Common Gateway Interface (CGI) used by web servers to delegate requests to user programs mandates one process per request. These are therefore poor environments in which to use Java. Persistence for CGI programs Java isn t the only language to suffer great overheads due to repeated start-ups. Any per-process delay on a CGI program, in whatever language, makes CGI the bottleneck for any high-demand service. FastCGI 1 was devised to address this issue by using a regular TCP connection between the web server and the CGI program, which runs persistently and serves multiple requests, instead of running once per request. This is a good approach, but the Usmux project aims for a more general mechanism than one built to support CGI; it should be possible to implement a FastCGI-like mechanism over Usmux. [upcgi] Java support for Unix-domain sockets Another approach to allow a Java process to run persistently is to provide a library supporting Unix-domain sockets. Several implementations are summarized here: JUDS 2 [Investigate.] junixsocket 3 This is a JNI library that uses the the Java Sockets API, and supports RMI. Fitting in with the Sockets API is a feat, as much of it is based on Internetdomain sockets, and doesn t seem to fit well when a broader abstraction is required. J-BUDS This is an orphaned project. [Investigate.] gnu.net.local This is another oprhaned project. [Investigate.] Providing native support for Unix-domain sockets in Java seems to create more problems than it solves. It is necessarily platform-specific, so the Java code that uses the support must be wrapped behind a platformindependent abstraction if the program is to remain platform-independent itself. The fact that the Internetdomain nature of the Java Sockets API leaks through its own abstraction means that that API does not help to hide platform-specificity. Usmux Usmux is an approach to allow one-invocation-perrequest environments like CGI to be used with persistent Java processes. At the time of writing, the implementation is POSIX-specific, but the architecture is platform-independent. Implementations on other platforms may be possible. On a POSIX system, the usmux command takes a Java command as its trailing arguments. It also opens a Unix-domain socket, creates two named pipes, and injects the names of these pipes as a configuration string into the Java command, which is then executed in the background. It then accepts connections on the socket, and presents them as sessions to the Java process by creating another pair of named pipes per session, using its original pipes to notify the Java process of them, and relaying data between the pipes and the socket. As a result, the Java process can run persistently, but be invoked by multiple clients over a Unix-domain socket. On other platforms, a similar command could use other platform-specific features to interact with a server running the same Java software. Only the injected configuration string needs to change, and the Usmux Java library will dynamically load in the matching serverside implementation

3 Even under POSIX, other mechanisms are possible too. For example, usmux could create a pair of named pipes, and multiplex several sessions over them. (However, experience has shown that this is error-prone to code, and hampers over-all through-put.) The use of a Unix-domain socket to communicate with clients has several advantages. First, as its rendezvous point is part of the filesystem, the host s native access control can be applied to it. For more sophisticated control, it is possible to inform the server of which user or group is actually connecting. Finally, invocation of the client could exploit external authentication protocols such as SSH. Architecture Usmux aims to allow a client to initiate a session with a server. Each session is a pair of simplex streams carrying byte-oriented data. Upstream denotes travel from the client to the server, while downstream denotes travel in the opposite direction. Either peer may terminate either stream at any time, and the session is terminated when both streams are terminated. The basic Usmux architecture is shown in Figure 1. The Usmux daemon sits between the server and its clients, and relays messages between them. The daemon is also responsible for forking the server into the background. Various communication schemes may be employed between client and daemon, and between daemon and server. In some schemes, client and server communicate directly, with the daemon playing no part after start-up. Client-daemon schemes may involve a Unix-domain socket, an Internet-domain socket, or any other connection-oriented communication supported by the host platform(s). Daemon-server schemes may be similarly varied, but are constrained mainly by having to appear platform-independent in order to be accessible from Java. Effectively, the daemon acts as an adapter between the client s use of a platform-specific technology and the server s requirement for a platformindependent one. The session abstraction must necessarily be very primitive, as the only characteristic that a session has under any scheme is that it consists of two streams. However, the server may be able to make use of information about the connecting client, even though it is scheme-specific. When the client connects to the daemon with a Unix-domain socket, its details (process id, user id, group id) can be detected by the daemon, and be relayed to the server. When the client connects directly to the server via TCP, its host and port can be made available to the server. These are exposed to the server in a generic form as client meta-data, described in 2.1. When the daemon is involved in implementing sessions, the protocols involved in talking to the server allow the daemon to relay this information as opaque binary data. Figure 2 depicts one daemon-server scheme which can appear platform-independent to the server, in which all connections accepted by the daemon are multiplexed over two simplex named pipes. This protocol is described in 3.2, and is capable of relaying arbitrary client meta-data to the server. Alternatively, the daemon may establish a pair of pipes per session, and inform the server of each one, plus client meta-data, over a pipe pair dedicated for signalling, as shown in Figure 3. This scheme is described in??, and is also capable of relaying arbitrary client meta-data to the server. Under another alternative, the daemon serves only to fork the server into the background. The server then opens an Internet-domain socket, and accepts TCP connections directly from the client as sessions. It is essential that a Java implementation of the server component can operate as independently as possible from these various communication schemes between client, daemon and server. To this end, a Java API ( 2.2) is defined to provide an abstraction of sessions. This abstraction provides only an input stream and an output stream, with generic access to client meta-data. Client meta-data Meta-data provides information on connecting clients which are otherwise hidden from the server behind the Usmux daemon. The format of this information depends on the connecting mechanism. For example, if the client talks to the daemon via a Unix-domain socket, the platform may be able to provide the daemon with (say) the user id of the client process. This information is potentially useful to the server process, but has no fixed form, so it is relayed from daemon to server in a binary format, which the multiplexing scheme can regard as opaque. An extensible framework then allows multiple binary formats to be interpreted as various Java structures, by making the data self-describing by its initial bytes, length and/or context. (Under some schemes, the client talks directly to the 3

4 Figure 1: Basic architecture Figure 2: Multiplexing between daemon and server over named pipes Figure 3: Per-client pipe pairs between daemon and server 4

5 server, leaving the daemon uninvolved as soon as the server is established. Under these schemes, the data is likely already available to the server, and does not need a binary format.)?? descripbes how meta-data is transmitted in the multipipe protocol describes how meta-data is transmitted in the multiplex protocol. Two meta-data types are specified here. Unix-domain client meta-data When the client that instigates a session is communicating through a connection-oriented Unix-domain socket, the meta-data can be a UnixDomainSocketAttributes 4 object containing user id, group id and process id of the calling client. As binary data relayed between daemon and server, this is represented as 10-byte block, starting with the US-ASCII codes for UNIX (Figure 4). The next two bytes are the process id, followed by two bytes for the user id, and two bytes for the group id, all in big-endian format x55 0x4e 0x49 0x58 process id group id user id Figure 4: Binary meta-data format for a Unix-domain socket Internet-domain client meta-data When the client that instigates a session is communicating through a connection-oriented Internet-domain socket, the meta-data can be an InetSocketAddress 5 object containing the IP address and port number of the calling client. This type of meta-data has no binary representation, as the client is expected to connect to the server directly. Java API The Javadoc-generated documentation is available online 6. This section gives an overview of its use. 4 uk.ac.lancs.scc.usmux.unix.unixdomainsocketattributes 5 java.io.inetsocketaddress 6 ss/apis/usmux/overviewsummary.html The Java server should be able to operate with different schemes, depending on the platform available. It remains platform-independent by accepting an opaque string as an argument, and passing this to SessionServerFactory.makeServer. This method loads and instantiates an appropriate SessionServer implementation which can make use of information extracted from the string. Subsequently, the Java server merely needs to start() the SessionServer object, and invoke accept on it repeatedly to service sessions. These calls each yield a Session object, which provides the basic input and output streams of the session. Table 1 shows this main loop, where config is the opaque configuration string, and SessionThread is an application-specific class to process each session. Session also provides a getattributes method to extract scheme-specific information, especially about the client. For example, Table 2 shows how to get a structure providing the process id, user id and group id of the caller who connected to the Unix-domain socket, if that scheme was used. Multiplexing schemes Three multiplexing schemes are defined. Historically, the single-pipe scheme ( 3.2) was defined first. This attempts to multiplex sessions over a single pair of simplex channels, so communication must be divided into discrete messages, and peers must carefully signal availability of buffer space to avoid session activities impeding each other. The result appears to have poor performance. The multipipe scheme ( 3.1) attempts to improve performance by allowing each session to use a dedicated pair of pipes. An additional pair are used for signalling. The TCP scheme ( 3.3) simply allows the server process to use a regular TCP socket. However, to keep parity with other schemes, there is an additional step enabling the daemon to detect that the server has reached readiness, and then leave it running in the background. The scheme also supports simple access control. Multipipe scheme Under the multipipe scheme, each session operates over a dedicated duplex channel, while another duplex channel (the control channel) is used for signalling. 5

6 SessionServer server = SessionServerFactory.makeServer(config); server.start(); Session sess; while ((sess = server.accept())!= null) new SessionThread(sess).start(); Table 1: Main server loop UnixDomainSocketAttributes attrs = sess.getattributes(unixdomainsocketattributes.class); System.out.println("User: " + attrs.getuserid()); System.out.println("Group: " + attrs.getgroupid()); System.out.println("Process: " + attrs.getprocessid()); Table 2: Accessing Unix-domain socket attributes of the client The scheme uses a configuration string of the form multipipe:upfile;downfile, where upfile is the name of a named pipe that forms the upstream half of the control channel, and downfile is the name of the pipe that forms the downstream half. The downstream control channel is used initially to detect readiness of the server signaled by a single byte and to detect when the server is terminating acceptance of future connections the channel is closed. For each session, the daemon creates an additional pair of named pipes, and uses the upstream control channel to transmit their names to the server. The downstream pipe s name is printed on a line of its own, followed by the upstream pipe s name. One channel is then used to transmit upstream data of the session, and one downstream. The daemon creates all named pipes, and should delete them on termination if not yet passed to the server. However, the server should delete them itself as soon as it has opened them. The meta-data for each session is transmitted as a prefix to the upstream data, beginning with a 2-byte bigendian length. The downstream channel is used exclusively for application data. The single-pipe scheme The single-pipe scheme allows multiple sessions to share a single duplex channel, over which a multiplexing protocol is run. The scheme uses a configuration string of the form pipe:downfile;upfile, where upfile is the name of a named pipe that forms the upstream half of the channel, and downfile is the name of the pipe that forms the downstream half. The multiplexing protocol consists of several byteoriented messages transmitted over a reliable, fullduplex channel between two end-points. Each endpoint is the peer of the other. One end-point is the server process (or just server), while the other is the daemon process (or just daemon). Each session consists of a pair of streams, one in each direction between the two end-points. The protocol is designed to support connections accepted on a Unix-domain socket as sessions multiplexed over the pair of named pipes used by Usmux, and permits meta-data about each connection to be supplied to the Java process. However, it is not dependent on named pipes or Unix-domain sockets, so it can be applied to hosts that support neither of these concepts. To this end, the protocol regards the meta-data as an opaque block. Similarly, it is not tied to Java in any way, so the server process can be written in any language. The protocol has an initialization phase, in which the server process transmits a ready message to indicate its readiness to receive sessions. This phase also allows the server to indicate how much meta-data it will accept per session. After intitialization, sessions can be relayed over the channel. Each session has a handshake phase, during which meta-data is supplied to the server, and the server and daemon exchange references. A data phase follows, in which each end-point repeatedly updates its peer about the space available in its reception buffer, and transmits data according to space available in its peer s buffer. 6

7 Initialization phase The initialization phase consists of the daemon waiting for the server to send a RDY message. This message may contain a meta-data limit, the maximum number of bytes the server is prepared to receive as payload for future NEW messages sent to initiate each session. No other messages may be transmitted over the channel until RDY has been received. Handshake phase Each session begins with a handshake phase. The daemon initiates each session by transmitting a NEW message. This includes the session id that the daemon will use in all future messages concerning this session. Any additional data is considered to be meta-data, which the server may use in any way it sees fit. The server responds to each NEW message with an ACK message. This echoes back the daemon s session id, and includes the server s session id. From this point on, each message related to this session and transmitted by the daemon will use the server s session id, while the server will correspondingly use the daemon s session id. Data phase After a session has been established by a handshake phase, either party may transmit CTS messages according to the space it has available to receive data for the relevant session. The effect of multiple CTS messages is cummulative, so a peer can send upto the sum of the amounts specified by received CTS messages, minus that which it has already sent. An end-point can use this to ensure that its peer can send a complete message without blocking due to the receiver s buffer being full. To transmit data, a peer sends a STR message, whose payload starts by identifying the session id, and continues with the data. The sum of the message s data length (the payload length minus two) and of the data lengths of all prior STR messages for the same session must not exceed the sum of the clearances of all CTS messages received for the same session. When a peer has no more data to send, it must send an EOS message to close the session. A peer can also indicate that it will not use any more data by sending a STP message. Messages Each message has a type and a length (Figure 5), so unrecognized messages can be skipped. The message type is a two-byte big-endian field at the start of the message. The length is the two-byte big-endian field that follows it. The whole message need not be wordaligned. Message types are summarized in Table message type payload payload length Unused message types payload Figure 5: Message format The UNK and NOP message types must never be sent. The receiver may ignore them entirely. They are intended to be used by the daemon or the server internally to indicate that no complete message header has been received, or that the remainder of a message may be ignored. RDY Server ready The RDY message type (Figure 6) is the first one sent over the channel. It is sent only once, and by the server to the daemon. If its payload is at least two bytes, these are taken as a big-endian unsigned integer specifying the maximum number of meta-data bytes that the server will accept with each session. Any other payload, or an incomplete payload, may be ignored (RDY) payload length meta-data limit Figure 6: The RDY message server ready 7

8 Type Value Direction Meaning Parameters UNK 0 never sent Unknown None NOP 1 never sent No operation None RDY 2 server-to-daemon Server ready Meta-data limit NEW 3 daemon-to-server New session Session id and meta-data ACK 4 server-to-daemon Session acknowledged Session ids CTS 5 both Clear to send Session id and clearance STR 6 both Stream data Session id, data length and data EOS 7 both End of stream Session id STP 8 both Stop stream Session id Table 3: Message types Handshake message types Sessions are initiated by the daemon. For each session, it issues a NEW message (Figure 7), with at least two bytes of payload giving the daemon s session id, which the server must use in all future communication pertaining to this session (ACK) payload length daemon session id server session id Figure 8: The ACK message session acknowledged Data message types Any remaining payload is interpreted by the server as meta-data. For example, if the session is a relay for For each session, each end-point must only send the a Unix-domain socket, the meta-data may contain the amount of data it has been permitted by its peer. One process id, user id and group id of the calling process. end-point permits its peer to send data by sending CTS 2.1 lists some meta-data types. messages (Figure 9), which includes the peer s session id, and a 32-bit signed length. Each message instructs the receiver31to accumulate provided lengths, and to send 3 (NEW) payload length no more data than the accumulated value, including data already send on the session. daemon session id meta-data 5 (CTS) payload length peer s session id clearance clearance Figure 9: The CTS message clear to send Figure 7: The NEW message new session On receipt of a NEW message, the server must generate a session id of its own, and respond with an ACK message (Figure 8). The first two bytes of its payload form the daemon s session id; the next two form the server s session id, which the daemon must use in all future communication pertaining to this session. Additional payload bytes carry no meaning, and can be ignored. To send data, an end-point sends a STR message (Figure 10) to its peer. This includes the peer s session id, with the remaining payload being the stream data. When an end-point has no more data to send on its stream, it must send an EOS message (Figure 11), unless it has already received a STP message for the session. This includes the peer s session id. It must not send any further STR messages after that. When an end-point cannot use data received on a stream, it may send a STP message (Figure 12). This includes the peer s session id. The peer need not send any further STR or EOS messages on the session, and 8

9 (STR) payload length Figure 11: The EOS message end of stream TCP scheme The scheme uses a configuration string of the form pipetcp:sigfile;bindip;bindport;acl, where bindip is IP address to which the server should bind a TCP socket to, and listen on it, and bindport is the port number to which the socket shall be bound. acl is a semicolon-separated list of IP addresses, IP address prefixes, and hostnames (possibly with wildcards), from which the server should accept connections. Connections from entries prefixed with a dash - should be rejected. sigfile should be a named pipe. The server should open and close it to indicate that it is ready. The daemon should not return control to the user until this has happened. Extensions peer s session id Creating daemon-server communication stream data schemes The Java server does not need to communicate with the Usmux daemon in one particular way. Indeed, it does not need to involve the daemon at all. New schemes can be defined, and then implemented by deriving from SessionServerFactory, and providing a createserver method. This takes an opaque Figure 10: The STR message stream data configuration string, which the factory class either recognizes or ignores (to be passed to other factories) When the string 31 is recognized, its data can be used to 7 (EOS) payload length configure the SessionServer that the factory class must create. peer s session id The recommended format for a configuration string is one that appears URI-like, i.e. scheme:params The factory class can then either recognize the scheme and process the parameters to create a the end-point need not use them. SessionServer, or return null. When the factory class is packaged, its jar should include an entry 31 in the file named in Table 4 giving the 8 (STP) payload length factory s class name. This makes it available automatically to the static makeserver method that checks an peer s session id opaque configuration string against all registered factories. Figure 12: The STP message stop stream Creating client-daemon communication schemes Consider the meta-data that can be provided to the application through Session.getAttributes. Define a class to provide this data. 9

10 META-INF/services/uk.ac.lancs.scc.usmux.ServerSessionFactory Table 4: File holding registrations of server factories META-INF/services/uk.ac.lancs.scc.usmux.MetadataHandler Table 5: File holding registrations of meta-data handlers 10

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

CSC209 Review. Yeah! We made it!

CSC209 Review. Yeah! We made it! CSC209 Review Yeah! We made it! 1 CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files 2 ... and C programming... C basic syntax functions

More information

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1 YAMI4 Requirements For YAMI4Industry, v.1.3.1 www.inspirel.com info@inspirel.com page 1 Table of Contents Document scope...3 Architectural elements...3 Serializer...3 Socket...3 Input buffer...4 Output

More information

Project 1: Remote Method Invocation CSE 291 Spring 2016

Project 1: Remote Method Invocation CSE 291 Spring 2016 Project 1: Remote Method Invocation CSE 291 Spring 2016 Assigned: Tuesday, 5 April Due: Thursday, 28 April Overview In this project, you will implement a remote method invocation (RMI) library. RMI forwards

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files ... and systems programming C basic syntax functions arrays structs

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs. CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files... and systems programming C basic syntax functions arrays structs

More information

CHAPTER 3 - PROCESS CONCEPT

CHAPTER 3 - PROCESS CONCEPT CHAPTER 3 - PROCESS CONCEPT 1 OBJECTIVES Introduce a process a program in execution basis of all computation Describe features of processes: scheduling, creation, termination, communication Explore interprocess

More information

Process. Program Vs. process. During execution, the process may be in one of the following states

Process. Program Vs. process. During execution, the process may be in one of the following states What is a process? What is process scheduling? What are the common operations on processes? How to conduct process-level communication? How to conduct client-server communication? Process is a program

More information

Thrift specification - Remote Procedure Call

Thrift specification - Remote Procedure Call Erik van Oosten Revision History Revision 1.0 2016-09-27 EVO Initial version v1.1, 2016-10-05: Corrected integer type names. Small changes to section headers. Table of Contents 1.

More information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

[MC-SMP]: Session Multiplex Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

[MC-SMP]: Session Multiplex Protocol. Intellectual Property Rights Notice for Open Specifications Documentation [MC-SMP]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation ( this documentation ) for protocols,

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Internetworking Models The OSI Reference Model

Internetworking Models The OSI Reference Model Internetworking Models When networks first came into being, computers could typically communicate only with computers from the same manufacturer. In the late 1970s, the Open Systems Interconnection (OSI)

More information

Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory.

Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory. Eike Ritter 1 Modified: October 29, 2012 Lecture 14: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK Outline 1 2 3 Shared Memory in POSIX systems 1 Based on material

More information

Outlook. Process Concept Process Scheduling Operations on Processes. IPC Examples

Outlook. Process Concept Process Scheduling Operations on Processes. IPC Examples Processes Outlook Process Concept Process Scheduling Operations on Processes Interprocess Communication o IPC Examples 2 Process Concept What is a Process? A process is a program in execution Process includes

More information

Transport layer Internet layer

Transport layer Internet layer Lecture 2-bis. 2 Transport Protocols As seen by the application developer point of view The primary (in principle unique) role of transport protocols!" # $ % "!"& Transport httpd 25 80 3211... My app 131.175.15.1

More information

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 Network Working Group Request for Comments: 969 David D. Clark Mark L. Lambert Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 1. STATUS OF THIS MEMO This RFC suggests a proposed protocol

More information

Chapter 3: Processes. Operating System Concepts 9 th Edition

Chapter 3: Processes. Operating System Concepts 9 th Edition Chapter 3: Processes Silberschatz, Galvin and Gagne 2013 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Objectives To describe the services an operating system provides to users, processes, and

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

COP 4610: Introduction to Operating Systems (Spring 2014) Chapter 3: Process. Zhi Wang Florida State University

COP 4610: Introduction to Operating Systems (Spring 2014) Chapter 3: Process. Zhi Wang Florida State University COP 4610: Introduction to Operating Systems (Spring 2014) Chapter 3: Process Zhi Wang Florida State University Contents Process concept Process scheduling Operations on processes Inter-process communication

More information

CS454/654 Midterm Exam Fall 2004

CS454/654 Midterm Exam Fall 2004 CS454/654 Midterm Exam Fall 2004 (3 November 2004) Question 1: Distributed System Models (18 pts) (a) [4 pts] Explain two benefits of middleware to distributed system programmers, providing an example

More information

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length)

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) File Systems 38 Memory-Mapped Files generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) mmap call returns the virtual address to which the file is mapped munmap call unmaps

More information

[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension

[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension [MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications

More information

Nabto SDK Nabto Serial Link Protocol

Nabto SDK Nabto Serial Link Protocol Nabto SDK Nabto Serial Link Protocol Nabto/001/TEN/011 Nabto Nabto/001/TEN/011 Nabto Serial Link Protocol Page 1 of 23 Vocabulary Contents 1 Vocabulary... 4 2 Introduction... 5 3 Access control... 5 3.1

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

Compaq Interview Questions And Answers

Compaq Interview Questions And Answers Part A: Q1. What are the difference between java and C++? Java adopts byte code whereas C++ does not C++ supports destructor whereas java does not support. Multiple inheritance possible in C++ but not

More information

Simulation of TCP Layer

Simulation of TCP Layer 39 Simulation of TCP Layer Preeti Grover, M.Tech, Computer Science, Uttrakhand Technical University, Dehradun ABSTRACT The Transmission Control Protocol (TCP) represents the most deployed transport protocol

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Programming Assignment 0

Programming Assignment 0 CMSC 17 Computer Networks Fall 017 Programming Assignment 0 Assigned: August 9 Due: September 7, 11:59:59 PM. 1 Description In this assignment, you will write both a TCP client and server. The client has

More information

CMPE 151: Network Administration. Servers

CMPE 151: Network Administration. Servers CMPE 151: Network Administration Servers Announcements Unix shell+emacs tutorial. Basic Servers Telnet/Finger FTP Web SSH NNTP Let s look at the underlying protocols. Client-Server Model Request Response

More information

Operating- System Structures

Operating- System Structures Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What

More information

ELEC/TELE/PHTN Networked Communications Design Topic. Networked Communications Elective Topic, S Context and Objectives

ELEC/TELE/PHTN Networked Communications Design Topic. Networked Communications Elective Topic, S Context and Objectives ELEC/TELE/PHTN 4123 Networked Communications Elective Topic, S1 2017 created by Prof. D. Taubman updated 21 May 2018 Networked Communications Design Topic Context and Objectives The objective of this design

More information

Data Communication & Computer Networks MCQ S

Data Communication & Computer Networks MCQ S Data Communication & Computer Networks MCQ S 1. The translates internet domain and host names to IP address. a) domain name system b) routing information protocol c) network time protocol d) internet relay

More information

Interprocess Communication Mechanisms

Interprocess Communication Mechanisms Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name

More information

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls POSIX System Programs System Structure Virtual Machines System Design and Implementation System Generation

More information

User Datagram Protocol

User Datagram Protocol Topics Transport Layer TCP s three-way handshake TCP s connection termination sequence TCP s TIME_WAIT state TCP and UDP buffering by the socket layer 2 Introduction UDP is a simple, unreliable datagram

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 5 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 User Operating System Interface - CLI CLI

More information

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016 TRANSMISSION CONTROL PROTOCOL ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016 ETI 2506 - TELECOMMUNICATION SYLLABUS Principles of Telecom (IP Telephony and IP TV) - Key Issues to remember 1.

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Interprocess Communication

Interprocess Communication Interprocess Communication Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5 Introduction Applications, services

More information

Project 3 Due October 21, 2015, 11:59:59pm

Project 3 Due October 21, 2015, 11:59:59pm Project 3 Due October 21, 2015, 11:59:59pm 1 Introduction In this project, you will implement RubeVM, a virtual machine for a simple bytecode language. Later in the semester, you will compile Rube (a simplified

More information

Full file at

Full file at Import Settings: Base Settings: Brownstone Default Highest Answer Letter: D Multiple Keywords in Same Paragraph: No Chapter: Chapter 2 Multiple Choice 1. A is an example of a systems program. A) command

More information

Configuring Network Address Translation

Configuring Network Address Translation Finding Feature Information, on page 1 Network Address Translation (NAT), on page 2 Benefits of Configuring NAT, on page 2 How NAT Works, on page 2 Uses of NAT, on page 3 NAT Inside and Outside Addresses,

More information

Outline. What is TCP protocol? How the TCP Protocol Works SYN Flooding Attack TCP Reset Attack TCP Session Hijacking Attack

Outline. What is TCP protocol? How the TCP Protocol Works SYN Flooding Attack TCP Reset Attack TCP Session Hijacking Attack Attacks on TCP Outline What is TCP protocol? How the TCP Protocol Works SYN Flooding Attack TCP Reset Attack TCP Session Hijacking Attack TCP Protocol Transmission Control Protocol (TCP) is a core protocol

More information

Response-Time Technology

Response-Time Technology Packeteer Technical White Paper Series Response-Time Technology May 2002 Packeteer, Inc. 10495 N. De Anza Blvd. Cupertino, CA 95014 408.873.4400 info@packeteer.com www.packeteer.com Company and product

More information

JADE TCP/IP Connection and Worker Framework

JADE TCP/IP Connection and Worker Framework JADE TCP/IP Connection and Worker Framework Jade Software Corporation Limited cannot accept any financial or other responsibilities that may be the result of your use of this information or software material,

More information

Notes of the course - Advanced Programming. Barbara Russo

Notes of the course - Advanced Programming. Barbara Russo Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

Advantages and disadvantages

Advantages and disadvantages Advantages and disadvantages Advantages Disadvantages Asynchronous transmission Simple, doesn't require synchronization of both communication sides Cheap, timing is not as critical as for synchronous transmission,

More information

Servlet Performance and Apache JServ

Servlet Performance and Apache JServ Servlet Performance and Apache JServ ApacheCon 1998 By Stefano Mazzocchi and Pierpaolo Fumagalli Index 1 Performance Definition... 2 1.1 Absolute performance...2 1.2 Perceived performance...2 2 Dynamic

More information

CS4700/CS5700 Fundamentals of Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks CS4700/CS5700 Fundamentals of Computer Networks Lecture 14: TCP Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu Northeastern

More information

CS 326: Operating Systems. Networking. Lecture 17

CS 326: Operating Systems. Networking. Lecture 17 CS 326: Operating Systems Networking Lecture 17 Today s Schedule Project 3 Overview, Q&A Networking Basics Messaging 4/23/18 CS 326: Operating Systems 2 Today s Schedule Project 3 Overview, Q&A Networking

More information

High-Level Language VMs

High-Level Language VMs High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs

More information

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput Topics TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput 2 Introduction In this chapter we will discuss TCP s form of flow control called a sliding window protocol It allows

More information

Process. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

Process. Operating Systems (Fall/Winter 2018) Yajin Zhou (  Zhejiang University Operating Systems (Fall/Winter 2018) Process Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review System calls implementation

More information

Jaguar: Enabling Efficient Communication and I/O in Java

Jaguar: Enabling Efficient Communication and I/O in Java Jaguar: Enabling Efficient Communication and I/O in Java Matt Welsh and David Culler UC Berkeley Presented by David Hovemeyer Outline ' Motivation ' How it works ' Code mappings ' External objects ' Pre

More information

Internet Engineering Task Force (IETF) Request for Comments: 8156 Category: Standards Track ISSN: June 2017

Internet Engineering Task Force (IETF) Request for Comments: 8156 Category: Standards Track ISSN: June 2017 Internet Engineering Task Force (IETF) Request for Comments: 8156 Category: Standards Track ISSN: 2070-1721 T. Mrugalski ISC K. Kinnear Cisco June 2017 DHCPv6 Failover Protocol Abstract DHCPv6 as defined

More information

Lecture 8: February 19

Lecture 8: February 19 CMPSCI 677 Operating Systems Spring 2013 Lecture 8: February 19 Lecturer: Prashant Shenoy Scribe: Siddharth Gupta 8.1 Server Architecture Design of the server architecture is important for efficient and

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Programming with Network Sockets Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Sockets We ve looked at shared memory vs.

More information

Interprocess Communication

Interprocess Communication Interprocess Communication Nicola Dragoni Embedded Systems Engineering DTU Informatics 4.2 Characteristics, Sockets, Client-Server Communication: UDP vs TCP 4.4 Group (Multicast) Communication The Characteristics

More information

Chapter 3: Process Concept

Chapter 3: Process Concept Chapter 3: Process Concept DM510-14 Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication in Client-Server

More information

Congestion Avoidance Overview

Congestion Avoidance Overview Congestion avoidance techniques monitor network traffic loads in an effort to anticipate and avoid congestion at common network bottlenecks. Congestion avoidance is achieved through packet dropping. Among

More information

Untyped Memory in the Java Virtual Machine

Untyped Memory in the Java Virtual Machine Untyped Memory in the Java Virtual Machine Andreas Gal and Michael Franz University of California, Irvine {gal,franz}@uci.edu Christian W. Probst Technical University of Denmark probst@imm.dtu.dk July

More information

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process. Zhi Wang Florida State University

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process. Zhi Wang Florida State University COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process Zhi Wang Florida State University Contents Process concept Process scheduling Operations on processes Inter-process communication

More information

An ios Static Library for Service Discovery and Dynamic Procedure Calls

An ios Static Library for Service Discovery and Dynamic Procedure Calls An ios Static Library for Service Discovery and Dynamic Procedure Calls Arnav Anshul Department of Engineering. Arizona State University Polytechnic Campus. arnavanshul@gmail.com Abstract - Remote procedure

More information

Top-Level View of Computer Organization

Top-Level View of Computer Organization Top-Level View of Computer Organization Bởi: Hoang Lan Nguyen Computer Component Contemporary computer designs are based on concepts developed by John von Neumann at the Institute for Advanced Studies

More information

Unit 2.

Unit 2. Unit 2 Unit 2 Topics Covered: 1. PROCESS-TO-PROCESS DELIVERY 1. Client-Server 2. Addressing 2. IANA Ranges 3. Socket Addresses 4. Multiplexing and Demultiplexing 5. Connectionless Versus Connection-Oriented

More information

Kea Messages Manual. Kea Messages Manual

Kea Messages Manual. Kea Messages Manual Kea Messages Manual i Kea Messages Manual Kea Messages Manual ii Copyright 2011-2015 Internet Systems Consortium, Inc. Kea Messages Manual iii Contents 1 Introduction 1 2 Kea Log Messages 2 2.1 ALLOC Module....................................................

More information

OpenLCB Technical Note. Datagram Transport. 1 Introduction. 2 Annotations to the Standard. 2.1 Introduction. 2.2 Intended Use

OpenLCB Technical Note. Datagram Transport. 1 Introduction. 2 Annotations to the Standard. 2.1 Introduction. 2.2 Intended Use OpenLCB Technical Note Datagram Transport Feb 6, 2016 Adopted 5 10 15 20 25 1 Introduction This Technical Note contains informative discussion and background for the corresponding OpenLCB Datagram Transport

More information

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches Background 20: Distributed File Systems Last Modified: 12/4/2002 9:26:20 PM Distributed file system (DFS) a distributed implementation of the classical time-sharing model of a file system, where multiple

More information

(Refer Slide Time: 1:40)

(Refer Slide Time: 1:40) Computer Architecture Prof. Anshul Kumar Department of Computer Science and Engineering, Indian Institute of Technology, Delhi Lecture - 3 Instruction Set Architecture - 1 Today I will start discussion

More information

Alex Ionescu, Chief

Alex Ionescu, Chief Alex Ionescu, Chief Architect @aionescu alex@crowdstrike.com Reverse engineered Windows kernel since 1999 Lead kernel developer for ReactOS Project Interned at Apple for a few years (Core Platform Team)

More information

FIPA Agent Management Support for Mobility Specification

FIPA Agent Management Support for Mobility Specification 1 2 3 4 5 6 FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS FIPA Management Support for Mobility Specification 7 8 Document title FIPA Management Support for Mobility Specification Document number PC000087B

More information

Chapter 3: Processes. Operating System Concepts Essentials 8 th Edition

Chapter 3: Processes. Operating System Concepts Essentials 8 th Edition Chapter 3: Processes Silberschatz, Galvin and Gagne 2011 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication

More information

Create and Apply Clientless SSL VPN Policies for Accessing. Connection Profile Attributes for Clientless SSL VPN

Create and Apply Clientless SSL VPN Policies for Accessing. Connection Profile Attributes for Clientless SSL VPN Create and Apply Clientless SSL VPN Policies for Accessing Resources, page 1 Connection Profile Attributes for Clientless SSL VPN, page 1 Group Policy and User Attributes for Clientless SSL VPN, page 3

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

CEN5501 Computer Networks Project Description

CEN5501 Computer Networks Project Description Due Date: April 21, 2008 CEN5501 Computer Networks Project Description Project Overview In this project, you are asked to write a P2P file sharing software similar to BitTorrent. You can complete the project

More information

A Client-Server Exchange

A Client-Server Exchange Socket programming A Client-Server Exchange A server process and one or more client processes Server manages some resource. Server provides service by manipulating resource for clients. 1. Client sends

More information

CS420: Operating Systems. OS Services & System Calls

CS420: Operating Systems. OS Services & System Calls OS Services & System Calls James Moscola Department of Engineering & Computer Science York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Operating

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

SoupBinTCP for Nasdaq Nordic. Version August 21, 2015

SoupBinTCP for Nasdaq Nordic. Version August 21, 2015 SoupBinTCP for Nasdaq Nordic Version 3.00.2 August 21, 2015 Overview Confidentiality/Disclaimer Confidentiality/Disclaimer This specification is being forwarded to you strictly for informational purposes

More information

Remote Procedure Calls

Remote Procedure Calls CS 5450 Remote Procedure Calls Vitaly Shmatikov Abstractions Abstractions for communication TCP masks some of the pain of communicating over unreliable IP Abstractions for computation Goal: programming

More information

Stream Control Transmission Protocol (SCTP)

Stream Control Transmission Protocol (SCTP) Stream Control Transmission Protocol (SCTP) Definition Stream control transmission protocol (SCTP) is an end-to-end, connectionoriented protocol that transports data in independent sequenced streams. SCTP

More information

BIG-IP Access Policy Manager : Portal Access. Version 13.0

BIG-IP Access Policy Manager : Portal Access. Version 13.0 BIG-IP Access Policy Manager : Portal Access Version 13.0 Table of Contents Table of Contents Overview of Portal Access...7 Overview: What is portal access?...7 About portal access configuration elements...

More information

A Framework for Creating Distributed GUI Applications

A Framework for Creating Distributed GUI Applications A Framework for Creating Distributed GUI Applications Master s Project Report Derek Snyder May 15, 2006 Advisor: John Jannotti Introduction Creating distributed graphical user interface (GUI) applications

More information

Enterprise Architect. User Guide Series. Profiling

Enterprise Architect. User Guide Series. Profiling Enterprise Architect User Guide Series Profiling Investigating application performance? The Sparx Systems Enterprise Architect Profiler finds the actions and their functions that are consuming the application,

More information

Enterprise Architect. User Guide Series. Profiling. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Profiling. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Profiling Author: Sparx Systems Date: 10/05/2018 Version: 1.0 CREATED WITH Table of Contents Profiling 3 System Requirements 8 Getting Started 9 Call Graph 11 Stack

More information

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial.

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial. Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial. Reduces cost by allowing a single resource for a number of users, rather than a identical resource for each

More information

Ethereal Exercise 2 (Part A): Link Control Protocol

Ethereal Exercise 2 (Part A): Link Control Protocol Course: Semester: ELE437 Ethereal Exercise 2 (Part A): Link Control Protocol Introduction In this exercise some details at the data link layer will be examined. In particular, the Link Control Protocol

More information

Performance analysis, development and improvement of programs, commands and BASH scripts in GNU/Linux systems

Performance analysis, development and improvement of programs, commands and BASH scripts in GNU/Linux systems Performance analysis, development and improvement of programs, commands and BASH scripts in GNU/Linux systems Erion ÇANO Prof. Dr Betim ÇIÇO 11 TH W O R K S H O P S O F T W A R E E N G I N E E R I N G

More information

Name: Mark Gambino Venue: SOA Subcommittee

Name: Mark Gambino Venue: SOA Subcommittee z/tpf V1.1-2011 Title: z/tpf HTTP Server Preview Name: Mark Gambino Venue: SOA Subcommittee AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0 Any reference

More information

IAX Protocol Description

IAX Protocol Description IAX Protocol Description Mark Spencer Frank W. Miller March 23, 2004 1 Introduction The Inter-Asterisk exchange (IAX) protocol provides control and transmission of streaming media over Internet Protocol

More information

Distributed Systems Inter-Process Communication (IPC) in distributed systems

Distributed Systems Inter-Process Communication (IPC) in distributed systems Distributed Systems Inter-Process Communication (IPC) in distributed systems Mathieu Delalandre University of Tours, Tours city, France mathieu.delalandre@univ-tours.fr 1 Inter-Process Communication in

More information

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION EDIABAS Electronic Diagnostic Basic System BEST/2 LANGUAGE DESCRIPTION VERSION 6b Copyright BMW AG, created by Softing AG BEST2SPC.DOC CONTENTS CONTENTS...2 1. INTRODUCTION TO BEST/2...5 2. TEXT CONVENTIONS...6

More information

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1 CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines

More information

Overview. Setup and Preparation. Exercise 0: Four-way handshake

Overview. Setup and Preparation. Exercise 0: Four-way handshake Overview In this Lab assignment you will develop a simple client program written in Python(use a socket library) to interact with a CSE 3300 Server running on a remote machine. The server, running on the

More information