GFD-R.022 June 13, 2008 GWD-R.133. Distributed Resource Management Application API (DRMAA) Working Group

Size: px
Start display at page:

Download "GFD-R.022 June 13, 2008 GWD-R.133. Distributed Resource Management Application API (DRMAA) Working Group"

Transcription

1 GWD-R.133 Distributed Resource Management Application API (DRMAA) Working Group Hrabri Rajic*, Intel Coorporation (maintainer) Roger Brobst, Cadence Design Systems Waiman Chan, IBM Fritz Ferstl, Sun Microsystems Jeff Gardiner, John P. Robarts Res. Inst. Andreas Haas*, Sun Microsystems Bill Nitzberg, Altair Grid Technologies Daniel Templeton, Sun Microsystems John Tollefsrud +, Sun Microsystems Peter Tröger*, Hasso-Plattner-Inst. *co-chairs + founding co-chair June 13, 2008 Distributed Resource Management Application API Specification 1.0 Status of This Document This document provides information to the Grid community regarding the specification of the Distributed Resource Management Application API. Distribution is unlimited. Obsoletes This document obsoletes GFD-22 OGF document [GDF.22]. Copyright Notice Copyright Global Grid Forum ( ). All Rights Reserved. Abstract This document describes the Distributed Resource Management Application API (DRMAA), which provides a generalized API to distributed resource management systems (DRMSs) in order to facilitate integration of application programs. The scope of DRMAA is limited to job submission, job monitoring and control, and retrieval of the finished job status. DRMAA provides application developers and distributed resource management builders with a programming model that enables the development of distributed applications tightly coupled to an underlying DRMS. For deployers of such distributed applications, DRMAA preserves flexibility and choice in system design.

2 Contents Abstract Introduction DRMAA Scope Language Issues Notational Conventions Interface Design and Implementation Considerations Late Binding and Portability Thread Safety Synchronization Distributed Application Environment Job Categories Native Specification Interface Routines General Description Init and Exit Routines Job Template Routines Job Submission Routines Job Monitoring and Controlling Routines Auxiliary Routines DRMAA Job State Transition Diagram API Specification Routines Error Codes DRMAA Sessions Run Usage Data Precedence Rules Site-Specific Requirements Job Valuator DRMAA API Initialization and Exit Routines Job Template Routines Job attributes...15 Mandatory attributes...15 Optional Attributes Job Submission Routines Job Control Routines Auxiliary Routines List of DRMAA Errors Security Considerations Author Information Intellectual Property Statement Disclaimer Full Copyright Notice References...34

3 1. Introduction This document describes an API for the submission and control of jobs to one or more Distributed Resource Management Systems (DRMS). The specification encompasses the high-level functionality necessary for an application to consign a job to a DRMS, including common operations on jobs like termination or suspension. The objective is to facilitate the direct interfacing of applications to DRMS for application builders, portal builders, and independent software vendors. The specification abstracts the fundamental job interfaces of DRMS and provides an easy-to-use programming model, thereby encouraging adoption by both application builders and DRMS builders. 1.1 DRMAA Scope The scope of DRMAA 1.0 is limited to job submission, job monitoring and control, and retrieval of the finished job status. 1.2 Language Issues The document authors maintain that the API should be described such that it can be implemented in multiple languages. Therefore, in this document DRMAA interfaces are described using an Interface Definition Language (IDL) - like language. 1.3 Notational Conventions The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL are to be interpreted as described in RFC-2119 [BRADNER1]. The following abbreviations are used in this document: API DRM DRMS DRMAA ISV Application Programming Interface Distributed Resource Management Distributed Resource Management System Distributed Resource Management Application API Independent Software Vendor 2. Interface Design and Implementation Considerations The DRMAA API has been developed to support what the authors believe will be desirable and common deployment scenarios of DRMAA implementations and applications. Specific attributes of library implementations of DRMAA should include, and the DRMAA specification anticipates: 2.1 Late Binding and Portability DRMAA implementations SHOULD be provided as shared modules that could be interchangeably selected at the run time by the end user. DRMAA implementations MAY target one or more DRMSs. In the latter case a DRMAA-enabled application SHOULD be able to bind at run time to a specific DRMS via DRMAA library by setting an environment variable for the specific DRMS, or by providing the specific DRMS connection string in the initialization step. drmaa-wg@ogf.org 3

4 2.2 Thread Safety The authors expect that developers will link to a DRMAA library from serial and multithreaded codes; hence a DRMAA library SHOULD be thread-safe to allow a multithreaded application to use DRMAA interfaces without any explicit synchronization among the application threads. DRMAA implementers SHOULD label their implementations as thread safe if they meet the above criteria. Providers of non thread safe DRMAA implementations SHOULD document all the interfaces that are thread unsafe and provide a list of interfaces and their dependencies on external thread unsafe routines. Before a multithreaded application can use any of DRMAA interfaces, however, the DRMAA initialization routine SHOULD be called by only one thread, probably the main thread. The initialization routine is the only routine that MAY not be thread reentrant to still allow the implementers to call their implementation thread-safe. Similarly, the DRMAA library SHOULD be disengaged by only one thread. In case a standardized threads implementation such as POSIX threads exists it SHOULD be the preferred basis for thread-safe DRMAA implementation. Other threading implementations MAY be chosen, however, if documented accordingly. 2.3 Synchronization DRMAA manages the asynchrony of job submission and job completion similarly to operating system process interfaces by blocking on the wait call for a specific job request. 2.4 Distributed Application Environment DRMAA specifies mechanisms for submitting a job, monitoring and controlling it, and obtaining its final status. Ideally DRMAA implementations and distributed applications need not be concerned with a particular DRMS environment and DRMS site-specific policies. To facilitate deployments where this cannot be fully accomplished, Job Categories and Native Specification may be used to abstract or aggregate the site-specific policies into simple strings that are interpreted by DRMAA implementations Job Categories DRMAA facilitates writing DRM-enabled applications even though the deployment properties, in particular the configuration of the DRMS, cannot be known in advance. This is a typical problem that has heretofore made writing DRM-enabled applications difficult for many Independent Software Vendors (ISVs), where the DRM system is selected by the end user. Experience with integrations based on DRM command line interfaces show that even when the same ISV application is run as a job with the same DRMS, site-specific policies differ widely across users. These policies typically concern site-specific attributes such as what resources are to be used by the job, preferences where to run the job, and how the job should be scheduled relative to other jobs. For supporting the variety of policies, job-specific requests expressed by DRMS submit options are common in the DRMS product space. Usually, however, these options do not affect the job from the perspective of the application or of the individual submitting the job request. This observation is the basis for job categories, which insulate the application and individual requester from site-specific policies. drmaa-wg@ogf.org 4

5 DRMAA 1.0 provides interfaces for job categories which encapsulate site-specific details, hiding these details from applications using the DRMAA interface. Site administrators may create a job category suitable for an application to be dispatched by the DRMS; the associated category name could be specified as a job submission attribute. The DRMAA implementation MAY then use the category name to manage site-specific resource and functional requirements of jobs in the category. Such requirements need to be configurable by the site operating a DRMS and deploying an application on top of it. An example can help to illustrate this idea: At site A, rendering application X is used in a heterogeneous clustered environment that is managed by a DRMS. Since application X is available only at a subset of these machines, the administrator sets up the DRMS so that the end users must put a -l X=true into their submit command line. At site B, the same application is used in a homogeneous clustered environment with rendering application X supported at all machines managed by the DRMS. However, since X jobs do compete with applications Y sharing the same resources and X applications are to be treated with higher priority than Y jobs, end users need to put a -p 1023 into their submit command line for raising the dispatch priority. An integration based on categories will allow submitting X jobs through the DRMAA interface in compliance with the policies of both sites A and B without the need to know about these policies. The ISV does this by specifying "X" as the category used for X rendering jobs submitted through the DRMAA interface and by mentioning this in the "DRMS integration" section of the X rendering software documentation. The administrators at site A and site B read the documentation or installation instructions about the "X" DRMAA category. The documentation of their DRMS contains directions about the category support of their DRMAA interface implementation. From this documentation they learn how to configure their DRMS in a way that "-l X=true" is used for "X" jobs at site A while "-p 1023" is used at site B for those jobs. DRMAA describes a mechanism for specifying the category. Associating the policy-related portion of the submit command line to the job is implementation specific Native Specification The categories concept provides a means for completely hiding site-specific policy details to be considered with a DRMAA job submission for a whole class of jobs. One job category MUST be maintained for each policy to be used. In order to allow the DRMAA interface to also be used for the submission of jobs where job-specific policy specification is required "native specification" is supported. Native specification MAY be used without the requirement to maintain job categories, and submit options MAY be specified directly. An example can help to illustrate this idea: In order to implement the example from the previous section via native specifications, the native option string "-l X=true" has to be passed directly to the DRMAA interface while "-p 1023" has to be used at site B. As far as the DRMAA interface specification is concerned, the native specification is an implementation-defined string and is interpreted by each DRMAA library. One MAY use job drmaa-wg@ogf.org 5

6 categories and native specification with the same job submission for policy specification. In this case, the DRMAA library is assumed to be capable of joining the outcome of the two policy sources in a reasonable way. Care SHOULD be exercised to not change the job submission call semantics, pass options that conflict the already set attributes, or violate the DRMAA API in any way. drmaa-wg@ogf.org 6

7 2.5 Interface Routines General Description The interface routines are grouped in five categories: init and exit, job template handling, job submission, job monitoring and control, and auxiliary or informational routines that do not require initialization of a DRMAA session Init and Exit Routines The calling sequence of the init routine allows all of the considered DRMS to be properly initialized, by interfacing either to the batch queue commands or to the DRMS API. Likewise, the exit routine requires parameters that will permit proper DRMS disengagement Job Template Routines The remote jobs and their attributes SHALL be specified by the job template handle parameter. The job attributes SHALL be a string or a vector of string values. The following job attributes are REQUIRED: Remote command to execute Remote command input parameters, a vector parameter Job state at submission Job environment, a vector parameter Job working directory Job category Native specification Standard input, output, and error streams Join output and error streams distribution list to report the job completion and status, a vector parameter suppression Job start time Job name to be used for the job submission Job Submission Routines Two job submission routines are described, one for submitting individual jobs and one for submitting bulk jobs Job Monitoring and Controlling Routines The job monitoring and controlling API handles several functions: Job holding, releasing, suspending, resuming, and killing Checking the exit code of the finished remote job drmaa-wg@ogf.org 7

8 Checking the remote job status Waiting for the remote job till the end of its execution Waiting for all the jobs or a subset of the current session jobs to finish execution The Unix like signals are replaced with the job control routines that have counterparts in DRMS. The only nontraditional feature is the passing of DRMAA_JOB_IDS_SESSION_ALL string as job_id parameter to indicate operations on all job Id s in the current session. The remote job SHALL be in one of the following states: System hold User hold System and user hold simultaneously Queued active System suspended User suspended Running Finished (un)successfully A rejected job is not assigned a job Id and consequently SHALL NOT have a state. In a distributed system it may not be possible for the DRMAA implementation to determine the status of the remote job at all times Auxiliary Routines The auxiliary routines are needed to obtain a textual representation of errors and other DRMAA implementation-specific information. drmaa-wg@ogf.org 8

9 2.6 DRMAA Job State Transition Diagram Figure 1 shows the DRMAA job state transition diagram in Harel notation: Figure 1: DRMAA job state transition diagram drmaa-wg@ogf.org 9

10 3. API Specification The API uses an IDL-like language to generalize discussion of allocation and deallocation, which have language specific implementations. The interface parameters could be IN, OUT, or INOUT parameters. Readers who are familiar with the C programming language should think of the parameters as being passed by value or by reference. Furthermore, the parameters could be scalar or vector values. The vector values are clearly documented. 3.1 Routines In order to prevent interface name collisions all the routines have a prefix drmaa Error Codes All of the interfaces return an error code on exit. Successful return SHALL be indicated by return value DRMAA_ERRNO_SUCCESS. All internal errors SHALL be indicated with DRMAA_ERRNO_INTERNAL_ERROR error. Out of memory errors SHALL be marked as DRMAA_ERRNO_NO_MEMORY. An invalid argument SHALL be flagged as DRMAA_ERRNO_INVALID_ARGUMENT. The return codes are specified and listed in Section 3.3. The error code MAY be provided to the drmaa_strerror routine to retrieve a textual representation of the error. Routines MUST output a context-specific error string that MAY be used in addition to the textual representation obtained from the error code. Zero length string indicates that such information is not available. This string is undefined on normal returns. The parameter used to convey the context specific error SHALL be ignored by the routine whenever success is returned. The length of any output context-specific error string, including the ending null character SHALL NOT exceed DRMAA_ERROR_STRING_BUFFER DRMAA Sessions An application process SHALL open only one DRMAA session at a time. Another session MAY be opened only after the current one is closed. Nesting of sessions SHOULD NOT be possible. It is RECOMMENDED that the DRMAA library SHALL free all the session resources, although this is not guaranteed, so it is RECOMMENDED that old session resources not be used later. Job Id s SHALL remain valid from one session to another. Job control routines SHOULD work correctly if a job Id came from a previous DRMAA session, provided the current DRMAA session knows how to resolve this job Id. The burden is on the user to match previous job Id s with appropriate DRMAA sessions (i.e., DRMAA implementations). It is RECOMMENDED that restartable applications make job Id s persistent in order to access the already submitted jobs. Succesfull drmaa_wait() and drmaa_synchronize(), with dispose = true parameter, calls will make job id s invalid by reaping the job run usage data Run Usage Data A DRMAA implementation SHALL collect remote run usage data (rusage variable) after the remote job run and job finish information (stat variable). The user MAY reap this data only once. The implementation is free to "garbage collect" the reaped data at a convenient time. Only the data from the current session's job Id MUST be available. Reaping data from other session job Id's MAY be supported in a DRMAA implementation. drmaa-wg@ogf.org 10

11 3.1.4 Precedence Rules The attributes set by using API routines SHALL be set at the compile time. The attributes set by job categories SHALL be set at installation time. The attributes set by the native specification SHALL be set at the run time. In principle these should determine the precedence rules, but these ideal precedence rules are not always achievable in practice because of complex interaction of attributes. Moreover, certain attributes in job categories may not be allowed to be overridden. The precedence rules are therefore implementation specific Site-Specific Requirements Job categories and native specifications are two means for describing site-specific requirements. Setting of job categories is implementation specific. On the other hand, setting the native specification, while straightforward in the user code, could be a challenge if the user needs to provide a complex set of options. Quotation marks are especially problematic if only one variable is used for a set of native specification options. The following are RECOMMENDED to developers to use this feature effectively: For each class of remote jobs, give end users a chance to specify site-specific environments, such as a queue where to send remote jobs or architecture(s) where the remote applications are available. Let users specify native specifications in a file if the distributed application has several classes of jobs to submit or several DRMAA sessions. Applications with a graphical user interface could have a dedicated dialog for this purpose Job Valuator Before a submitted job enters a queue, it SHALL be passed through a valuator that determines whether the job attributes as specified are valid. If yes, a job Id SHALL be returned, and the job is successfully queued. If not, the job is rejected, job Id SHALL NOT be returned, and no job state is possible. 3.2 DRMAA API For convenience, the API is divided in its five logical sections: init/exit, job template handling, job submission, job monitoring and control, and auxiliary routines. /* Major Assumptions/Restrictions */ No explicit file staging. Job Id Uniqueness -- "As unique as the underlying DRM makes them" /*Global constants */ DRMAA_ERROR_STRING_BUFFER = 1024 DRMAA_JOBNAME_BUFFER = 1024 DRMAA_SIGNAL_BUFFER = 32 DRMAA_TIMEOUT_WAIT_FOREVER = -1 DRMAA_TIMEOUT_NO_WAIT = 0 drmaa-wg@ogf.org 11

12 JOB_IDS_SESSION_ANY = "DRMAA_JOB_IDS_SESSION_ANY" JOB_IDS_SESSION_ALL = "DRMAA_JOB_IDS_SESSION_ALL" Initialization and Exit Routines drmaa_init(contact, drmaa_context_error_buf) IN contact /* contact information for DRM system (string) */ OUT drmaa_context_error_buf /*Contains a context-sensitive error upon failed return*/ Initialize DRMAA API library and create a new DRMAA session. 'Contact' is an implementation-defined string that MAY be used to specify which DRM system to use. This routine MUST be called before any other DRMAA calls, except for drmaa_version(), drmaa_get_drm_system(), drmaa_get_drmaa_implementation(), drmaa strerror(), or drmaa_get_contact(). If 'contact' is NULL, the default DRM system SHALL be used provided there is only one DRMAA implementation in the provided binary module. When there is more than one DRMAA implementation in the binary module, drmaa_init() SHALL return the DRMAA_ERRNO_NO_DEFAULT_CONTACT_STRING_SELECTED error. drmaa_init() SHOULD be called by only one of the threads. The main thread is RECOMMENDED. A call by another thread SHALL return DRMAA_ERRNO_ALREADY_ACTIVE_SESSION. drmaa_init routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_INVALID_CONTACT_STRING, DRMAA_ERRNO_ALREADY_ACTIVE_SESSION, DRMAA_ERRNO_NO_DEFAULT_CONTACT_STRING_SELECTED, DRMAA_ERRNO_AUTH_FAILURE, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_DRMS_INIT_FAILED, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, or DRMAA_ERRNO_DEFAULT_CONTACT_STRING_ERROR. drmaa_exit(drmaa_context_error_buf) OUT drmaa_context_error_buf /*Contains a context-sensitive error upon failed return*/ Disengage from DRMAA library and allow the DRMAA library to perform any necessary internal cleanup. This routine SHALL end the current DRMAA session but SHALL NOT affect any jobs (e.g., queued and running jobs SHALL remain queued and running). drmaa_exit() SHOULD be called by only one of the threads. The first call to call drmaa_exit() by a thread will operate normally. All other calls from the same and other threads SHALL fail, returning a DRMAA_ERRNO_NO_ACTIVE_SESSION error code. drmaa_exit routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRMS_EXIT_ERROR, DRMAA_ERRNO_AUTH_FAILURE, drmaa-wg@ogf.org 12

13 DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, or DRMAA_ERRNO_NO_ACTIVE_SESSION Job Template Routines drmaa_allocate_job_template( jt, drmaa_context_error_buf ) OUT jt /* job template (implementation-defined handle) */ OUT drmaa_context_error_buf /*Contains a context-sensitive error upon failed return*/ Allocate a new job template. drmaa_allocate_job_template() SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_AUTH_FAILURE, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE. drmaa_delete_job_template(jt, drmaa_context_error_buf ) INOUT jt /* job template (implementation-defined handle) */ OUT drmaa_context_error_buf /*Contains a context-sensitive error upon failed return*/ Deallocate a job template. This routine has no effect on jobs. drmaa_delete_job_template() SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_NO_ACTIVE_SESSION, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_AUTH_FAILURE, or DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE. drmaa_set_attribute(jt, name, value, drmaa_context_error_buf ) INOUT jt /* job template (implementation-defined handle) */ IN name /* attribute name (string) */ IN value /* attribute value (string) */ Adds ('name', 'value') pair to list of attributes in job template 'jt'. Only non-vector attributes SHALL be passed. drmaa_set_attribute routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, DRMAA_ERRNO_NO_ACTIVE_SESSION, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_AUTH_FAILURE, or DRMAA_ERRNO_CONFLICTING_ATTRIBUTE_VALUES. drmaa_get_attribute(jt, name, value, drmaa_context_error_buf ) drmaa-wg@ogf.org 13

14 IN jt /* job template (implementation-defined handle) */ IN name /* attribute name (string) */ OUT value /* attribute value (string) */ If 'name' is an existing non-vector attribute name in the job template jt', then the value of 'name' SHALL be returned; otherwise, NULL MUST be returned. drmaa_get_attribute routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_AUTH_FAILURE. drmaa_set_vector_attribute(jt, name, values, drmaa_context_error_buf ) INOUT jt /* job template (implementation-defined handle) */ IN name /* attribute name (string) */ IN values /* vector of attribute value (string vector) */ Adds ('name', 'values') pair to list of vector attributes in job template 'jt'. Only vector attributes SHALL be passed. drmaa_set_vector_attribute routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT, DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, DRMAA_ERRNO_NO_ACTIVE_SESSION, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_AUTH_FAILURE, or DRMAA_ERRNO_CONFLICTING_ATTRIBUTE_VALUES. drmaa_get_vector_attribute(jt, name, values, drmaa_context_error_buf ) IN jt /* job template (implementation-defined handle) */ IN name /* attribute name (string) */ OUT values /* vector of attribute value (string vector) */ If 'name' is an existing vector attribute name in the job template 'jt', then the values of 'name' SHALL be returned; otherwise, NULL MUST be returned. drmaa_get_vector_attribute routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_AUTH_FAILURE. drmaa_get_attribute_names( names, drmaa_context_error_buf ) drmaa-wg@ogf.org 14

15 OUT names /* vector of attribute name (string vector) */ SHALL return the set of supported attribute names whose associated value type is String. This set SHALL include supported DRMAA reserved attribute names and native attribute names. drmaa_get_attribute_names routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_AUTH_FAILURE. drmaa_get_vector_attribute_names( names, drmaa_context_error_buf ) OUT names /* vector of attribute name (string vector) */ SHALL return the set of supported attribute names whose associated value type is String Vector.This set SHALL include supported DRMAA reserved attribute names and native attribute names. drmaa_get_vector_attribute_names routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_AUTH_FAILURE Job attributes Mandatory attributes The following reserved attributes SHALL be available in all implementations of DRMAA. Vector attributes are marked with a 'V': remote command to execute ( string ) It is relative to the execution host. It is evaluated on the execution host. No binary file management is done. The attribute name is drmaa_remote_command. V input parameters ( vector of strings ) These parameters SHALL be passed as arguments to the job. The attribute name is drmaa_v_argv. job state at submission ( string value ) This might be useful for a rather rudimentary, but very general job-dependent execution. The states SHALL be drmaa_hold and drmaa_active: drmaa-wg@ogf.org 15

16 drmaa_active means job has been queued, and is eligible to run drmaa_hold means job has been queued, but it is NOT eligible to run The attribute name is drmaa_js_state. V job environment ( vector of strings ) The environment values that define the remote environment. Each string SHALL comply with the format <name>=<value>. The values override the remote environment values if there is a collision. If above is not possible, it is implementation dependent. The attribute name is drmaa_v_env. job working directory ( string ) This attribute specifies the directory where the job is executed. If not set, it is implementation dependent. Evaluated relative to the execution host. A $drmaa_hd_ph$ placeholder at the begin denotes the remaining portion of the directory_name as a relative directory name resolved relative to the job users home directory at the execution host. The $drmaa_incr_ph$ placeholder MAY be used at any position within the directory_name of parametric job templates and SHALL be substituted by the underlying DRM system with the parametric jobs' index. The directory_name MUST be specified in a syntax that is common at the host where the job is executed. If set and no placeholder is used, an absolute directory specification is expected. If set and the job was successfully submitted and the directory does not exist, the job enters the state DRMAA_PS_FAILED. The attribute name is drmaa_wd. job category ( string ) An implementation-defined string specifying how to resolve site-specific resources and/or policies. Detailed description is provided in section The attribute name is drmaa_job_category. native specification ( string ) An implementation-defined string that is passed by the end user to DRMAA to specify site-specific resources and/or policies. Detailed description is provided in section The attribute name is drmaa_native_specification. V address ( vector of strings ) It is used to report the job completion and status. The new values replace old values, The attribute name is drmaa_v_ . suppression ( string ) It is used to block sending by default, regardless of the DRMS setting. 1 block 0 do not block. The attribute name is drmaa_block_ drmaa-wg@ogf.org 16

17 job start time ( string ) This attribute specifies the earliest time when the job may be eligible to be run. The attribute name is drmaa_start_time The value of the attribute SHALL be of the form [[[[CC]YY/]MM/]DD] hh:mm[:ss] [{- +}UU:uu] where CC is the first two digits of the year (century-1) YY is the last two digits of the year MM is the two digits of the month [01,12] DD is the two-digit day of the month [01,31] hh is the two-digit hour of the day [00,23] mm is the two-digit minute of the day [00,59] ss is the two-digit second of the minute [00,61] UU is the two-digit hours since (before) UTC uu is the two-digit minutes since (before) UTC If the optional UTC-offset is not specified, the offset associated with the local timezone SHALL be used. If the day (DD) is not specified, the current day SHALL be used unless the specified hour:mm:ss has already elapsed, in which case the next day SHALL be used. Similarly for month (MM), year (YY), and century-1 (CC). If seconds (ss) value is omitted it is set to 0. Example: The time: Sep 3 4:47:27 PM PDT 2002, could be represented as: 2002/09/03 16:47:27-07:00 job name A job name SHALL comprise alphanumeric and _ characters. The drmaa-implementation SHALL NOT provide the client with a job name longer than DRMAA_JOBNAME_BUFFER -1 (1023) characters. The drmaa-implementation MAY truncate any client-provided job name to an implementation-defined length that is at least 31 characters. The attribute name is drmaa_job_name input stream ( string ) Specifies the jobs standard input. Unless set elsewhere, if not explicitly set in the job template, the job is started with an empty input stream. If set, specifies the network path of the jobs input stream file of the form [hostname]:file_path When the drmaa_transfer_files job template attribute is supported and contains the character 'i', the input file SHALL be fetched by the underlying DRM system from the specified host or from the submit host if no hostname is specified. When the drmaa_transfer_files job template attribute is not supported or does not contain the character 'i', the input file is always expected at the host where the job is executed, irrespective of a possibly hostname specified. The $drmaa_incr_ph$ placeholder can be used at any position within the file_path of parametric job templates and SHALL be substituted by the drmaa-wg@ogf.org 17

18 underlying DRM system with the parametric jobs' index. A $drmaa_hd_ph$ placeholder at the begin of the file_path denotes the remaining portion of the file_path as a relative file specification resolved relative to the job users home directory at the host where the file is located. A $drmaa_wd_ph$ placeholder at the begin of the file_path denotes the remaining portion of the file_path as a relative file specification resolved relative to the jobs working directory at the host where the file is located. The file_path MUST be specified in a syntax that is common at the host where the file is located. If set and the job was successfully submitted and the file can't be read, the job enters the state DRMAA_PS_FAILED. The attribute name is drmaa_input_path. output stream ( string ) Specifies how to direct the jobs standard output. If not explicitly set in the job template, the whereabouts of the jobs output stream is not defined. If set, specifies the network path of the jobs output stream file of the form [hostname]:file_path When the drmaa_transfer_files job template attribute is supported and contains the character 'o', the output file SHALL be transferred by the underlying DRM system to the specified host or to the submit host if no hostname is specified. When the drmaa_transfer_files job template attribute is not supported or does not contain the character 'o', the output file is always kept at the host where the job is executed irrespectively of a possibly hostname specified. The $drmaa_incr_ph$ placeholder can be used at any position within the file_path of parametric job templates and SHALL be substituted by the underlying DRM system with the parametric jobs' index. A $drmaa_hd_ph$ placeholder at the begin of the file_path denotes the remaining portion of the file_path as a relative file specification resolved relative to the job users home directory at the host where the file is located. A $drmaa_wd_ph$ placeholder at the begin of the file_path denotes the remaining portion of the file_path as a relative file specification resolved relative to the jobs working directory at the host where the file is located. The file_path MUST be specified in a syntax that is common at the host where the file is located. If set and the job was successfully submitted and the file can't be written before execution the job enters the state DRMAA_PS_FAILED. The attribute name is drmaa_output_path. error stream ( string ) Specifies how to direct the jobs standard error. If not explicitly set in the job template, the whereabouts of the jobs error stream is not defined. If set, specifies the network path of the jobs error stream file of the form [hostname]:file_path When the drmaa_transfer_files job template attribute is supported and contains the character 'e', the output file SHALL be transferred by the underlying DRM system to the specified host or to the submit host if no hostname is specified. When the drmaa_transfer_files job template attribute is not supported drmaa-wg@ogf.org 18

19 or does not contain the character 'e', the error file is always kept at the host where the job is executed irrespectively of a possibly hostname specified. The $drmaa_incr_ph$ placeholder can be used at any position within the file_path of parametric job templates and SHALL be substituted by the underlying DRM system with the parametric jobs' index. A $drmaa_hd_ph$ placeholder at the begin of the file_path denotes the remaining portion of the file_path as a relative file specification resolved relative to the job users home directory at the host where the file is located. A $drmaa_wd_ph$ placeholder at the begin of the file_path denotes the remaining portion of the file_path as a relative file specification resolved relative to the jobs working directory at the host where the file is located. The file_path MUST be specified in a syntax that is common at the host where the file is located. If set and the job was successfully submitted and the file can't be written before execution the job enters the state DRMAA_PS_FAILED. The attribute name is drmaa_error_path. join files ( string ) Specifies if the error stream should be intermixed with the output stream. If not explicitly set in the job template the attribute defaults to 'n'. Either 'y' or 'n' can be specified. If 'y' is specified the underlying DRM system SHALL ignore the value of the drmaa_error_path attribute and intermix the standard error stream with the standard output stream as specified with drmaa_output_path. The attribute name is drmaa_join_files. Optional Attributes The following reserved attribute names are OPTIONAL in a conforming DRMAA implementation. For attributes that are implemented, the meanings are REQUIRED to be as follows: Note that the list of attributes that are implemented may be programmatically obtained by using the drmaa_get_attribute_names and drmaa_get_vector_attribute_names routines. transfer files ( string ) Specifies how to transfer files between hosts. If not explicitly set in the job template the attribute defaults to ''. Any combination of 'e', 'i' and 'o' MAY be specified. Whether the character 'e' is specified impacts the behavior of the drmaa_error_path attribute. Whether the character 'i' is specified impacts the behavior of the drmaa_input_path attribute. Whether the character 'o' is specified impacts the behavior of the drmaa_output_path attribute. The attribute name is drmaa_transfer_files. absolute job termination time ( string ) Specifies a deadline after which the DRMS will terminate a job. drmaa-wg@ogf.org 19

20 This is a reserved attribute named drmaa_deadline_time The value of the attribute SHALL be of the form [[[[CC]YY/]MM/]DD] hh:mm[:ss] [{- +}UU:uu] where CC is the first two digits of the year (century-1) YY is the last two digits of the year MM is the two digits of the month [01,12] DD is the two digit day of the month [01,31] hh is the two digit hour of the day [00,23] mm is the two digit minute of the day [00,59] ss is the two digit second of the minute [00,61] UU is the two digit hours since (before) UTC uu is the two digit minutes since (before) UTC If an optional portion of the time specification is omitted, then the termination time SHALL be determined based upon the job's earliest start time. If the day (DD) is not specified, the earliest start day for the job SHALL be used unless the specified hour:mm:ss precedes the corresponding portion of the job start time, in which case the next day SHALL be used. Similarly for month (MM), year (YY), and century-1 (CC). If seconds (ss) value is omitted it is set to 0. Example: The time: Sep 3 4:47:27 PM PDT 2002, could be represented as: 2002/09/03 16:47:27-07:00 wall clock time limit ( string ) This attribute specifies when the job's wall clock time limit has been exceeded. The DRMS SHALL terminate a job that has exceeded its wall clock time limit. Suspended time SHALL also be accumulated here. This is a reserved attribute named drmaa_wct_hlimit The value of the attribute SHALL be of the form [[h:]m:]s where h is one or more digits representing hours m is one or more digits representing minutes s is one or more digits representing seconds Example: To terminate a job after 2 hours and 30 minutes, any of the following MAY be passed: 2:30:0, 1:90:0, 150:0 soft wall clock time limit ( string ) This attribute specifies an estimate as to how long the job will need wall clock time to complete. Note that the suspended time is also accumulated here. This attribute is intended to assist the scheduler. If the time specified in insufficient, the drmaa-implementation MAY impose a scheduling penalty. drmaa-wg@ogf.org 20

21 This is a reserved attribute named drmaa_wct_slimit The value of the attribute SHALL be of the form [[h:]m:]s where h is one or more digits representing hours m is one or more digits representing minutes s is one or more digits representing seconds job run duration hlimit ( string ) This attribute specifies how long the job MAY be in a running state before its limit has been exceeded, and therefore is terminated by the DRMS. This is a reserved attribute named drmaa_run_duration_hlimit The value of the attribute SHALL be of the form [[h:]m:]s where h is one or more digits representing hours m is one or more digits representing minutes s is one or more digits representing seconds job run duration slimit ( string ) This attribute specifies an estimate as to how long the job will need to remain in a running state to complete. This attribute is intended to assist the scheduler. If the time specified in insufficient, the drmaa-implementation MAY impose a scheduling penalty. This is a reserved attribute named drmaa_run_duration_slimit The value of the attribute SHALL be of the form [[h:]m:]s where h is one or more digits representing hours m is one or more digits representing minutes s is one or more digits representing seconds Job Submission Routines drmaa_run_job(job_id, jt, drmaa_context_error_buf ) OUT job_id /* job identifier (string) */ IN jt /* job template (implementation-defined handle) */ Submit a job with attributes defined in the job template 'jt'. The job identifier 'job_id' is a printable, NULL terminated string, identical to that returned by the underlying DRM system. The call SHOULD return after the DRMAA implementation submits the job request to the underlying DRM system. drmaa_run_job routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_TRY_LATER, DRMAA_ERRNO_DENIED_BY_DRM, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_AUTH_FAILURE. drmaa-wg@ogf.org 21

22 drmaa_run_bulk_jobs(job_ids, jt, start, end, incr, drmaa_context_error_buf ) OUT job_ids /* job identifiers (array of strings) */ IN jt /* job template (implementation-defined handle) */ IN start /* beginning index (unsigned integer)*/ IN end /* ending index (unsigned integer) */ IN incr /* loop increment (integer)*/ Submit a set of parametric jobs, dependent on the implied loop index, each with attributes defined in the job template 'jt'. The job identifiers 'job_ids' SHALL be all printable, NULL terminated strings, identical to those returned by the underlying DRM system. Nonnegative loop bounds SHALL NOT use file names that start with minus sign like command line options. The call SHOULD return after the DRMAA implementation submits the job request to the underlying DRM system. The special index placeholder is a DRMAA defined string drmaa_incr_ph /* == $incr_pl$ */ that is used to construct parametric job templates. Due to DRM system differing implementations job working directory, input stream, output stream, and error stream are the only attributes that are allowed to have the index placeholder. For example: drmaa_set_attribute(pjt, "stderr", drmaa_incr_ph + ".err" ); /*C++/java string syntax used */ drmaa_run_bulk_jobs routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_TRY_LATER, DRMAA_ERRNO_DENIED_BY_DRM, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_AUTH_FAILURE Job Control Routines drmaa_control(job_id, action, drmaa_context_error_buf ) IN job_id /* job identifier (string) */ IN action /* control action (const) */ Start, stop, restart, or kill the job identified by 'job_id'. If 'job_id' is DRMAA_JOB_IDS_SESSION_ALL, then this routine SHALL act on all jobs submitted during this DRMAA session, at the moment it is called. If 'job_id' is DRMAA_JOB_IDS_SESSION_ALL, then a call on an empty session SHALL result to DRMAA_ERRNO_SUCCESS for all control operations. To avoid thread races in multithreaded application the user of DRMAA implementation should explicitly synchronize this call with any other job submission call or control call that changes the number of remote jobs. The legal values for 'action' and their meanings SHALL be: drmaa-wg@ogf.org 22

23 DRMAA_CONTROL_SUSPEND: DRMAA_CONTROL_RESUME: DRMAA_CONTROL_HOLD: DRMAA_CONTROL_RELEASE: DRMAA_CONTROL_TERMINATE: stop the job, (re)start the job, put the job on-hold, release the hold on the job, and kill the job. This routine SHALL return once the action has been acknowledged by the DRM system, but does not necessarily wait until the action has been completed. If there are multiple kinds of errors the routine SHALL return INTERNAL_ERROR error. The error description string SHOULD contain a good explanation of the problems. drmaa_control routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_AUTH_FAILURE, DRMAA_ERRNO_RESUME_INCONSISTENT_STATE, DRMAA_ERRNO_SUSPEND_INCONSISTENT_STATE, DRMAA_ERRNO_HOLD_INCONSISTENT_STATE, DRMAA_ERRNO_RELEASE_INCONSISTENT_STATE, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_INVALID_JOB. drmaa_synchronize(job_ids, timeout, dispose, drmaa_context_error_buf ) IN job_ids /* job identifiers (array of strings) */ IN timeout /* how long we block in this call (signed long) */ IN dispose /* dispose reaping information (boolean)*/ Wait until all jobs specified by 'job_ids' have finished execution. If an invalid or already waited job id is specified, the routine SHALL fail with a DRMAA_ERRNO_INVALID_JOB error. If 'job_ids' is DRMAA_JOB_IDS_SESSION_ALL, then this routine SHALL wait for all jobs submitted during this DRMAA session, at the moment it is called. If the session contains no jobs, the routine MUST immediately return with DRMAA_ERRNO_SUCCESS, regardless of the dispose parameter value. Because a DRMAA implementation is not required to retain information about jobs which have been reaped, the routine is not required to, but MAY distinguish between non-existent and reaped jobs. The routine MUST return DRMAA_ERRNO_INVALID_JOB if a provided job_ids contains a job that is unrecognized. If the routine successfully validates a job_id for an already reaped job, it MAY return DRMAA_ERRNO_SUCCESS. To avoid thread races in multithreaded application the user of DRMAA implementation should explicitly synchronize this call with any other job submission call or control call that changes the number of remote jobs. To prevent blocking indefinitely in this call, the caller MAY use timeout specifying after how many seconds to time out in this call. The value DRMAA_TIMEOUT_WAIT_FOREVER (-1) MAY be specified to wait indefinitely for a result. The value DRMAA_TIMEOUT_NO_WAIT (0) MAY be specified to return immediately if no result is available. If the call exits before timeout, all the jobs have been waited on or there was an interrupt. If the invocation exits on timeout, the return code is DRMAA_ERRNO_EXIT_TIMEOUT. The caller SHOULD check system time before and after this call drmaa-wg@ogf.org 23

24 in order to check how much time has passed. The dispose parameter specifies how to treat reaping of the remote job's system resources consumption and other statistics. If dispose is set to false, the job's information remains available and can be retrieved through drmaa_wait(). If dispose is set to true, the job's information is not retained. drmaa_ synchronize routine SHALL return DRMAA_ERRNO_SUCCESS on success, otherwise DRMAA_ERRNO_NO_MEMORY, DRMAA_ERRNO_INTERNAL_ERROR, DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE, DRMAA_ERRNO_AUTH_FAILURE, DRMAA_ERRNO_EXIT_TIMEOUT, DRMAA_ERRNO_INVALID_ARGUMENT, DRMAA_ERRNO_NO_ACTIVE_SESSION, or DRMAA_ERRNO_INVALID_JOB. drmaa_wait(job_id, job_id_out, stat, timeout, rusage, drmaa_context_error_buf ) IN job_id /* job identifier (string) or DRMAA_JOB_IDS_SESSION_ANY (string) */ OUT job_id_out /* job identifier of ended job (string) or NULL */ OUT stat /* status code of job (integer) */ IN timeout / * how long we block in this call (signed long) */ OUT rusage /* resource usage (string array) */ This routine SHALL wait for a job with job_id to fail or finish execution. If the special string DRMAA_JOB_IDS_SESSION_ANY is provided as the job_id, this routine SHALL wait for any job from the session. In a multithreaded environment, only the active thread gets the status of the finished or failed job in that case, while the rest of the threads continue waiting. drama_wait would wait on the submitted and not yet done/failed jobs at the moment it has been issued, so possible indeterminism is possible in multithreaded environments. If there are no more running or completed jobs the routine SHOULD return DRMAA_ERRNO_INVALID_JOB error. If an invalid or already waited job id is specified, the routine SHOULD fail with a DRMAA_ERRNO_INVALID_JOB error. The timeout value is used to specify the desired behavior when a result is not immediately available. The value DRMAA_TIMEOUT_WAIT_FOREVER (-1) MAY be specified to wait indefinitely for a result. The value DRMAA_TIMEOUT_NO_WAIT (0) MAY be specified to return immediately if no result is available. Alternatively, a number of seconds MAY be specified to indicate how long to wait for a result to become available. If the call exits before timeout, either the job has been waited on successfully or there was an interrupt. If the invocation exits on timeout, the return code is DRMAA_ERRNO_EXIT_TIMEOUT. The caller SHOULD check system time before and after this call in order to check how much time has passed. The routine reaps jobs on a successful call, so any subsequent calls to drmaa_wait SHOULD fail returning an error DRMAA_ERRNO_INVALID_JOB meaning that the job has been already reaped. This error is the same as if the job was unknown. Failing due to an elapsed timeout has an effect that it is possible to drmaa-wg@ogf.org 24

Programming with the DRMAA OGF Standard

Programming with the DRMAA OGF Standard Programming with the DRMAA OGF Standard GridWay HPC SYSADMIN Congreso MEETING'12 Barcelona, Cuidad, Spain October May 15-16, 15, 2007 2012 Dr Ismael Marín Carrión Distributed Systems Architecture Group

More information

Standardization of an API for Distributed Resource Management Systems

Standardization of an API for Distributed Resource Management Systems Standardization of an API for Distributed Resource Management Systems Peter Tröger Hasso-Plattner-Institute 14482 Potsdam, Germany peter@troeger.eu Hrabri Rajic Intel Americas Inc. Champaign, IL 61820

More information

SMOA Computing HPC Basic Profile adoption Experience Report

SMOA Computing HPC Basic Profile adoption Experience Report Mariusz Mamoński, Poznan Supercomputing and Networking Center, Poland. March, 2010 SMOA Computing HPC Basic Profile adoption Experience Report Status of This Document This document provides information

More information

GT GridWay: Developer's Guide

GT GridWay: Developer's Guide GT 4.2.1 GridWay: Developer's Guide GT 4.2.1 GridWay: Developer's Guide Published May, 2008 Copyright 2002-2008 GridWay Team, Distributed Systems Architecture Group, Universidad Complutense de Madrid (dsa-research.org).

More information

HPCP-WG, OGSA-BES-WG March 20, Smoa Computing HPC Basic Profile Adoption Experience Report

HPCP-WG, OGSA-BES-WG March 20, Smoa Computing HPC Basic Profile Adoption Experience Report GFD-E.179 Mariusz Mamoński, Poznan Supercomputing and Networking Center, Poland. HPCP-WG, OGSA-BES-WG March 20, 2011 Smoa Computing HPC Basic Profile Adoption Experience Report Status of This Document

More information

DRMAA v2 - The Next Generation

DRMAA v2 - The Next Generation DRMAA v2 - The Next Generation Peter Tröger Humboldt University of Berlin peter@troeger.eu DRMAA-WG Co-Chair Past GGF / OGF specification since 2001 Job submission and control in a cluster / grid system

More information

DRMAA Python Documentation

DRMAA Python Documentation DRMAA Python Documentation Release 0.7.8 Dan Blanchard, David Ressman, Enrico Sirola Mar 26, 2018 Contents 1 Distributed Resource Management Application API 3 1.1 Starting and Stopping a Session.....................................

More information

OPERATING SYSTEM. Functions of Operating System:

OPERATING SYSTEM. Functions of Operating System: OPERATING SYSTEM Introduction: An operating system (commonly abbreviated to either OS or O/S) is an interface between hardware and user. OS is responsible for the management and coordination of activities

More information

On 17 June 2006, the editor provided the following list via an to the convener:

On 17 June 2006, the editor provided the following list via an  to the convener: ISO/IEC JTC 1/SC 22/WG 9 N 471 List of AIs Approved per Resolution 50-8 James W. Moore, Convener 23 June 2006 Resolution 50-8 reads as follows: "Noting WG9's approval of the amendment to ISO/IEC 8652 and

More information

OPERATING SYSTEMS CS3502 Spring Processor Scheduling. Chapter 5

OPERATING SYSTEMS CS3502 Spring Processor Scheduling. Chapter 5 OPERATING SYSTEMS CS3502 Spring 2018 Processor Scheduling Chapter 5 Goals of Processor Scheduling Scheduling is the sharing of the CPU among the processes in the ready queue The critical activities are:

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Multiprocessor scheduling

Multiprocessor scheduling Chapter 10 Multiprocessor scheduling When a computer system contains multiple processors, a few new issues arise. Multiprocessor systems can be categorized into the following: Loosely coupled or distributed.

More information

A Short Summary of Javali

A Short Summary of Javali A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

Deliverable 3.3 MAPPER Profile

Deliverable 3.3 MAPPER Profile MAPPER - 261507 - FP7/2007-2013 Deliverable 3.3 MAPPER Profile Project acronym: MAPPER Project full title: Multiscale Applications on European e-infrastructures. Grant agreement no.: 261507 Due-Date: 31

More information

Developing Grid-Aware Applications with DRMAA on Globus-based Grids

Developing Grid-Aware Applications with DRMAA on Globus-based Grids Developing Grid-Aware Applications with DRMAA on Globus-based Grids. Herrera 1, E. Huedo 2, R.S. Montero 1, and I.M. Llorente 1,2 1 Departamento de Arquitectura de Computadores y Automática, Universidad

More information

997 Functional Acknowledgment

997 Functional Acknowledgment 997 Functional Acknowledgment VANTAGE GROUP accepts functional acknowledgments for all EDI documents we send. We send functional acknowledgments to trading partners that send us EDI documents. For all

More information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

OSEK/VDX. Communication. Version January 29, 2003

OSEK/VDX. Communication. Version January 29, 2003 Open Systems and the Corresponding Interfaces for Automotive Electronics OSEK/VDX Communication Version 3.0.1 January 29, 2003 This document is an official release and replaces all previously distributed

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

SMOA Computing approach to HPC Basic Profile DRMAA + gsoap

SMOA Computing approach to HPC Basic Profile DRMAA + gsoap OGF25/EGEE User Forum SMOA Computing approach to HPC Basic Profile DRMAA + gsoap Mariusz Mamoński Krzysztof Kurowski {krzysztof.kurowski,mamonski}@man.poznan.pl OpenDSP - Retrospection In the mid 2005

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Chapter 3. Design of Grid Scheduler. 3.1 Introduction

Chapter 3. Design of Grid Scheduler. 3.1 Introduction Chapter 3 Design of Grid Scheduler The scheduler component of the grid is responsible to prepare the job ques for grid resources. The research in design of grid schedulers has given various topologies

More information

OPERATING SYSTEM. The Process. Introduction Process creation & termination Process state diagram Process scheduling & its criteria

OPERATING SYSTEM. The Process. Introduction Process creation & termination Process state diagram Process scheduling & its criteria OPERATING SYSTEM The Process Introduction Process creation & termination Process state diagram Process scheduling & its criteria Process The concept of process is fundamental to the structure of operating

More information

SCXML State Chart XML

SCXML State Chart XML SCXML State Chart XML Previously, in this course... Previously, in this course... Running Example all actions omitted wasn t it supposed to help? Previously, in this course... Running Example all actions

More information

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

Programming Languages for Real-Time Systems. LS 12, TU Dortmund Programming Languages for Real-Time Systems Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 20 June 2016 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 41 References Slides are based on Prof. Wang Yi, Prof.

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

Batches and Commands. Overview CHAPTER

Batches and Commands. Overview CHAPTER CHAPTER 4 This chapter provides an overview of batches and the commands contained in the batch. This chapter has the following sections: Overview, page 4-1 Batch Rules, page 4-2 Identifying a Batch, page

More information

Distributed Resource Management Application API Version 2 (DRMAA) - C Language Binding

Distributed Resource Management Application API Version 2 (DRMAA) - C Language Binding GFD-R-P.198 DRMAA-WG drmaa-wg@ogf.org Peter Tröger, Hasso Plattner Institute 1 Roger Brobst, Cadence Design Systems Daniel Gruber, Univa Mariusz Mamoński, PSNC Andre Merzky, LSU November 2012 Distributed

More information

USB Feature Specification: Shared Endpoints

USB Feature Specification: Shared Endpoints USB Feature Specification: Shared Endpoints SYSTEMSOFT CORPORATION INTEL CORPORATION Revision 1.0 October 27, 1999 USB Feature Specification: Shared Endpoints Revision 1.0 Revision History Revision Issue

More information

Executing Evaluations over Semantic Technologies using the SEALS Platform

Executing Evaluations over Semantic Technologies using the SEALS Platform Executing Evaluations over Semantic Technologies using the SEALS Platform Miguel Esteban-Gutiérrez, Raúl García-Castro, Asunción Gómez-Pérez Ontology Engineering Group, Departamento de Inteligencia Artificial.

More information

Interprocess Communication By: Kaushik Vaghani

Interprocess Communication By: Kaushik Vaghani Interprocess Communication By: Kaushik Vaghani Background Race Condition: A situation where several processes access and manipulate the same data concurrently and the outcome of execution depends on the

More information

Implementing Lightweight Threads

Implementing Lightweight Threads Implementing Lightweight Threads paper Implementing Lightweight Threads by Stein and Shah implementation report thread-specific data, signals and threads signal handling also in Nichols et al. Ch. 5 Library

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

RDGL Reference Manual

RDGL Reference Manual RDGL Reference Manual COMS W4115 Programming Languages and Translators Professor Stephen A. Edwards Summer 2007(CVN) Navid Azimi (na2258) nazimi@microsoft.com Contents Introduction... 3 Purpose... 3 Goals...

More information

BEA WebLogic. Integration. Best Practices in Designing BPM Workflows

BEA WebLogic. Integration. Best Practices in Designing BPM Workflows BEA WebLogic Integration Best Practices in Designing BPM Workflows Release 7.0 Document Date: June 2002 Copyright Copyright 2002 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements Programming Languages Third Edition Chapter 9 Control I Expressions and Statements Objectives Understand expressions Understand conditional statements and guards Understand loops and variation on WHILE

More information

Cache Operation. Version 31-Jul Wireless Application Protocol WAP-175-CacheOp a

Cache Operation. Version 31-Jul Wireless Application Protocol WAP-175-CacheOp a Cache Operation Version 31-Jul-2001 Wireless Application Protocol WAP-175-CacheOp-20010731-a A list of errata and updates to this document is available from the WAP Forum Web site, http://www.wapforum.org/,

More information

CCSDS FILE DELIVERY PROTOCOL (CFDP)

CCSDS FILE DELIVERY PROTOCOL (CFDP) Draft Recommendation for Space Data System Standards CCSDS FILE DELIVERY PROTOCOL (CFDP) Draft Recommended Standard CCSDS 727.0-BP-3.1 BLUE BOOKPink Sheets June 2005October 2006 5 PDU FORMATS 5.1 GENERAL

More information

The Object Model Overview. Contents. Section Title

The Object Model Overview. Contents. Section Title The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group

More information

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3 LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 10 Scope and visibility The rules defining the scope of declarations and the rules defining which identifiers are visible at various points in the

More information

Internet Printing Protocol (IPP): Production Printing Attributes Set1

Internet Printing Protocol (IPP): Production Printing Attributes Set1 A Project of the PWG-IPP Working Group Internet Printing Protocol (IPP): Production Printing Attributes Set1 IEEE-ISTO Printer Working Group Standard 5100.3-2001 February 12, 2001 Abstract This document

More information

Multitasking / Multithreading system Supports multiple tasks

Multitasking / Multithreading system Supports multiple tasks Tasks and Intertask Communication Introduction Multitasking / Multithreading system Supports multiple tasks As we ve noted Important job in multitasking system Exchanging data between tasks Synchronizing

More information

Universal Format Plug-in User s Guide. Version 10g Release 3 (10.3)

Universal Format Plug-in User s Guide. Version 10g Release 3 (10.3) Universal Format Plug-in User s Guide Version 10g Release 3 (10.3) UNIVERSAL... 3 TERMINOLOGY... 3 CREATING A UNIVERSAL FORMAT... 5 CREATING A UNIVERSAL FORMAT BASED ON AN EXISTING UNIVERSAL FORMAT...

More information

Intel Authoring Tools for UPnP* Technologies

Intel Authoring Tools for UPnP* Technologies Intel Authoring Tools for UPnP* Technologies (Version 1.00, 05-07-2003) INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE,

More information

An Introduction to OpenMP

An Introduction to OpenMP An Introduction to OpenMP U N C L A S S I F I E D Slide 1 What Is OpenMP? OpenMP Is: An Application Program Interface (API) that may be used to explicitly direct multi-threaded, shared memory parallelism

More information

Logging. About Logging. This chapter describes how to log system messages and use them for troubleshooting.

Logging. About Logging. This chapter describes how to log system messages and use them for troubleshooting. This chapter describes how to log system messages and use them for troubleshooting. About, page 1 Guidelines for, page 7 Configure, page 8 Monitoring the Logs, page 26 History for, page 29 About System

More information

Open Cloud Computing Interface Service Level Agreements

Open Cloud Computing Interface Service Level Agreements 1 2 3 4 Draft OCCI-WG Gregory Katsaros, Intel February 23, 2016 5 Open Cloud Computing Interface Service Level Agreements 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Status of this Document This document

More information

Intended status: Standards Track Expires: April 27, 2015 Q. Zhao Huawei Technology D. King Old Dog Consulting J. Hardwick Metaswitch October 24, 2014

Intended status: Standards Track Expires: April 27, 2015 Q. Zhao Huawei Technology D. King Old Dog Consulting J. Hardwick Metaswitch October 24, 2014 PCE Working Group Internet-Draft Intended status: Standards Track Expires: April 27, 2015 A. Koushik Brocade Communications Inc. E. Stephan Orange Q. Zhao Huawei Technology D. King Old Dog Consulting J.

More information

Section Software Applications and Operating Systems - Detail

Section Software Applications and Operating Systems - Detail 03/07/2016 16:24:35 EST VPAT for InfoPrint Manager for AIX 4.4.1, 4.5 VPAT comments: For a detailed description of the parent features and benefits, please refer to the following URL: The contents of this

More information

Orchestration Server Developer's Guide. Queue Interface

Orchestration Server Developer's Guide. Queue Interface Orchestration Server Developer's Guide Queue Interface 2/24/2018 Contents 1 Queue Interface 1.1 Target Formats 1.2 Skill Expressions 1.3 Routing Rules 1.4 Object Model 1.5 Functions 1.6 Parameter Elements

More information

EnableBasic. The Enable Basic language. Modified by Admin on Sep 13, Parent page: Scripting Languages

EnableBasic. The Enable Basic language. Modified by Admin on Sep 13, Parent page: Scripting Languages EnableBasic Old Content - visit altium.com/documentation Modified by Admin on Sep 13, 2017 Parent page: Scripting Languages This Enable Basic Reference provides an overview of the structure of scripts

More information

An Approach to VoiceXML Application Modeling

An Approach to VoiceXML Application Modeling An Approach to Application Modeling Xin Ni 1 Meng Ye 2 Lianhong Cai 3 1,3 Tsinghua University, Beijing, China 2 IBM China Research Lab nx01@mails.tsinghua.edu.cn, yemeng@cn.ibm.com, clh-dcs@tsinghua.edu.cn

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

A Generic Multi-node State Monitoring Subsystem

A Generic Multi-node State Monitoring Subsystem A Generic Multi-node State Monitoring Subsystem James A. Hamilton SLAC, Stanford, CA 94025, USA Gregory P. Dubois-Felsmann California Institute of Technology, CA 91125, USA Rainer Bartoldus SLAC, Stanford,

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

SmartSuspend. Achieve 100% Cluster Utilization. Technical Overview

SmartSuspend. Achieve 100% Cluster Utilization. Technical Overview SmartSuspend Achieve 100% Cluster Utilization Technical Overview 2011 Jaryba, Inc. SmartSuspend TM Technical Overview 1 Table of Contents 1.0 SmartSuspend Overview 3 2.0 How SmartSuspend Works 3 3.0 Job

More information

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU BCA-3 rd Semester 030010304-Fundamentals Of Operating Systems Unit: 1 Introduction Short Answer Questions : 1. State two ways of process communication. 2. State any two uses of operating system according

More information

AI Non-Preemptive Dispatching. A new dispatching policy is defined for the non-preemptive execution of Ada tasks.

AI Non-Preemptive Dispatching. A new dispatching policy is defined for the non-preemptive execution of Ada tasks. AI-00298 Non-Preemptive Dispatching!standard D.2.4 (00) 04-05-24 AI95-00298/05!reference AI95-00321!class amendment 02-06-01!status Amendment 200Y 03-07-02!status WG9 Approved 04-06-18!status ARG Approved

More information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18 PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations

More information

5. CTRIP Attributes. 5.1 WithdrawnRoutes. This section defines the syntax and semantics of the CTRIP attributes transported in the UPDATE message.

5. CTRIP Attributes. 5.1 WithdrawnRoutes. This section defines the syntax and semantics of the CTRIP attributes transported in the UPDATE message. 5. CTRIP Attributes This section defines the syntax and semantics of the CTRIP attributes transported in the UPDATE message. 5.1 WithdrawnRoutes Conditional Mandatory: False. Potential Flags: Link-State

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 1 Operating Systems Overview 2 Chapter 2 3 An operating System: The interface between hardware and the user From the user s perspective: OS is a program that controls the execution of application programs

More information

WAP WTAI WAP-170-WTAI Version 07-Jul-2000

WAP WTAI WAP-170-WTAI Version 07-Jul-2000 WAP WTAI WAP-170-WTAI Version 07-Jul-2000 Wireless Application Protocol Wireless Telephony Application Interface Specification Disclaimer: This document is subject to change without notice. WAP-170-WTAI,

More information

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1 Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.1 December 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22

More information

iwarp Transport Specific Extensions for DAT 2.0

iwarp Transport Specific Extensions for DAT 2.0 iwarp Transport Specific Extensions for DAT 2.0 August 2006 Rev 0.7 Contents 1. Requirements... 3 1.1 Consumer Requirement... 3 1.2 Transport Neutral Alternatives... 3 2. Data Structures and Types... 5

More information

The Logical Design of the Tokeniser

The Logical Design of the Tokeniser Page 1 of 21 The Logical Design of the Tokeniser Purpose 1. To split up a character string holding a RAQUEL statement expressed in linear text, into a sequence of character strings (called word tokens),

More information

Chapter 3 Process Description and Control

Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles Chapter 3 Process Description and Control Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The concept of process

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 Operating Systems Overview Chapter 2 Operating System A program that controls the execution of application programs An interface between the user and hardware Masks the details of the hardware Layers and

More information

Programming Languages Third Edition. Chapter 10 Control II Procedures and Environments

Programming Languages Third Edition. Chapter 10 Control II Procedures and Environments Programming Languages Third Edition Chapter 10 Control II Procedures and Environments Objectives Understand the nature of procedure definition and activation Understand procedure semantics Learn parameter-passing

More information

Chapter 8 :: Subroutines and Control Abstraction. Final Test. Final Test Review Tomorrow

Chapter 8 :: Subroutines and Control Abstraction. Final Test. Final Test Review Tomorrow Chapter 8 :: Subroutines and Control Abstraction Programming Language Pragmatics Michael L. Scott Administrative Notes Final Test Thursday, August 3 2006 at 11:30am No lecture before or after the mid-term

More information

Design Principles for a Beginning Programming Language

Design Principles for a Beginning Programming Language Design Principles for a Beginning Programming Language John T Minor and Laxmi P Gewali School of Computer Science University of Nevada, Las Vegas Abstract: We consider the issue of designing an appropriate

More information

Intel Manycore Testing Lab (MTL) - Linux Getting Started Guide

Intel Manycore Testing Lab (MTL) - Linux Getting Started Guide Intel Manycore Testing Lab (MTL) - Linux Getting Started Guide Introduction What are the intended uses of the MTL? The MTL is prioritized for supporting the Intel Academic Community for the testing, validation

More information

IT 540 Operating Systems ECE519 Advanced Operating Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (3 rd Week) (Advanced) Operating Systems 3. Process Description and Control 3. Outline What Is a Process? Process

More information

Tape Channel Analyzer Windows Driver Spec.

Tape Channel Analyzer Windows Driver Spec. Tape Channel Analyzer Windows Driver Spec. 1.1 Windows Driver The Driver handles the interface between the Adapter and the Adapter Application Program. The driver follows Microsoft Windows Driver Model

More information

Tivoli Application Dependency Discovery Manager Version 7.3. Discovery Library Adapter Developer's Guide IBM

Tivoli Application Dependency Discovery Manager Version 7.3. Discovery Library Adapter Developer's Guide IBM Tivoli Application Dependency Discovery Manager Version 7.3 Discovery Library Adapter Developer's Guide IBM Tivoli Application Dependency Discovery Manager Version 7.3 Discovery Library Adapter Developer's

More information

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going

More information

IBM. Enterprise Systems Architecture/ Extended Configuration Principles of Operation. z/vm. Version 6 Release 4 SC

IBM. Enterprise Systems Architecture/ Extended Configuration Principles of Operation. z/vm. Version 6 Release 4 SC z/vm IBM Enterprise Systems Architecture/ Extended Configuration Principles of Operation Version 6 Release 4 SC24-6192-01 Note: Before you use this information and the product it supports, read the information

More information

Hadoop On Demand User Guide

Hadoop On Demand User Guide Table of contents 1 Introduction...3 2 Getting Started Using HOD... 3 2.1 A typical HOD session... 3 2.2 Running hadoop scripts using HOD...5 3 HOD Features... 6 3.1 Provisioning and Managing Hadoop Clusters...6

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More information

Dynamic Invocation Interface 5

Dynamic Invocation Interface 5 Dynamic Invocation Interface 5 The Dynamic Invocation Interface (DII) describes the client s side of the interface that allows dynamic creation and invocation of request to objects. All types defined in

More information

Appendix: Generic PbO programming language extension

Appendix: Generic PbO programming language extension Holger H. Hoos: Programming by Optimization Appendix: Generic PbO programming language extension As explained in the main text, we propose three fundamental mechanisms to be covered by a generic PbO programming

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

Internet Printing Protocol (IPP): Override Attributes for Documents and Pages

Internet Printing Protocol (IPP): Override Attributes for Documents and Pages A Project of the PWG IPP Working Group Internet Printing Protocol (IPP): Override Attributes for Documents and Pages IEEE-ISTO Printer Working Group Standard 5100.4-2001 February 7, 2001 Abstract This

More information

Lecture 3: Concurrency & Tasking

Lecture 3: Concurrency & Tasking Lecture 3: Concurrency & Tasking 1 Real time systems interact asynchronously with external entities and must cope with multiple threads of control and react to events - the executing programs need to share

More information

Category: Standards Track July 2002

Category: Standards Track July 2002 Network Working Group A. Bierman Request for Comments: 3287 Cisco Systems, Inc. Category: Standards Track July 2002 Status of this Memo Remote Monitoring MIB Extensions for Differentiated Services This

More information

CPS Statistics. Bulk Statistics Overview

CPS Statistics. Bulk Statistics Overview Bulk Statistics Overview, page 1, page 2 Bulk Statistics Collection, page 6 Example, page 8 Bulk Statistics Overview Bulk Statistics are the statistics that are gathered over a given time period and written

More information

Introduction CHAPTER. Practice Exercises. 1.1 What are the three main purposes of an operating system? Answer: The three main puropses are:

Introduction CHAPTER. Practice Exercises. 1.1 What are the three main purposes of an operating system? Answer: The three main puropses are: 1 CHAPTER Introduction Practice Exercises 1.1 What are the three main purposes of an operating system? Answer: The three main puropses are: To provide an environment for a computer user to execute programs

More information

Process Description and Control. Chapter 3

Process Description and Control. Chapter 3 Process Description and Control 1 Chapter 3 2 Processes Working definition: An instance of a program Processes are among the most important abstractions in an OS all the running software on a computer,

More information

Precision Routing. Capabilities. Precision Queues. Capabilities, page 1 Initial Setup, page 6

Precision Routing. Capabilities. Precision Queues. Capabilities, page 1 Initial Setup, page 6 Capabilities, page 1 Initial Setup, page 6 Capabilities Precision Queues Precision routing offers a multidimensional alternative to skill group routing: using Unified CCE scripting, you can dynamically

More information

Computer Systems A Programmer s Perspective 1 (Beta Draft)

Computer Systems A Programmer s Perspective 1 (Beta Draft) Computer Systems A Programmer s Perspective 1 (Beta Draft) Randal E. Bryant David R. O Hallaron August 1, 2001 1 Copyright c 2001, R. E. Bryant, D. R. O Hallaron. All rights reserved. 2 Contents Preface

More information

Dynamic Host Configuration (DHC) Internet-Draft Intended status: Standards Track Expires: August 31, 2017 February 27, 2017

Dynamic Host Configuration (DHC) Internet-Draft Intended status: Standards Track Expires: August 31, 2017 February 27, 2017 Dynamic Host Configuration (DHC) Internet-Draft Intended status: Standards Track Expires: August 31, 2017 T. Mrugalski ISC K. Kinnear Cisco February 27, 2017 DHCPv6 Failover Protocol draft-ietf-dhc-dhcpv6-failover-protocol-06

More information

The SPL Programming Language Reference Manual

The SPL Programming Language Reference Manual The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming

More information

Common Lisp Object System Specification. 1. Programmer Interface Concepts

Common Lisp Object System Specification. 1. Programmer Interface Concepts Common Lisp Object System Specification 1. Programmer Interface Concepts Authors: Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon. Draft Dated:

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

ForeScout CounterACT. Configuration Guide. Version 3.4

ForeScout CounterACT. Configuration Guide. Version 3.4 ForeScout CounterACT Open Integration Module: Data Exchange Version 3.4 Table of Contents About the Data Exchange Module... 4 About Support for Dual Stack Environments... 4 Requirements... 4 CounterACT

More information

Unit 3 : Process Management

Unit 3 : Process Management Unit : Process Management Processes are the most widely used units of computation in programming and systems, although object and threads are becoming more prominent in contemporary systems. Process management

More information

Interview Questions of C++

Interview Questions of C++ Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.

More information