The language should have few implementation dependencies and should be simple, so that interactions between language features do not give unexpected b

Size: px
Start display at page:

Download "The language should have few implementation dependencies and should be simple, so that interactions between language features do not give unexpected b"

Transcription

1 Using Analytical Approaches for High Integrity Ada95 Systems Stephen Michell Maurya Software 29 Maurya Court, Ottawa, Ontario K1G 5S3 Canada Dan Craigen, Mark Saaltink ORA Canada Richmond Road Ottawa, Ontario K1Z 6X3 Canada dan, Abstract The paper reports on a recently completed analysis of the suitability of Ada95 for use in high integrity systems, describes the status of real-time features in this analysis, and identies how the analysis could be extended to admit more features needed for real-time programs. 1. Introduction The authors have recently completed an analysis of Ada95 for use in high integrity systems. This work used an analytical approach to assess Ada95 language features according to a specic set of criteria. When considering the results of the analysis, one nds that much of the Ada95 language that is of interest to realtime and embedded systems is excluded. We believe that, even with further traditional analysis, many of the desired constructs would be unsuitable for a variety of reasons. In order to consider the incorporation of such features, it is necessary to rethink the premises on which the original analysis was based, and to nd ways of extending the language analysis to include the implementation and the application. 2. The Analysis Framework Our analysis of Ada95 began with a review of several signicant standards for critical systems: DO-178B, MoD 00-55, MoD 00-56, and the Canadian Trusted Computer Product Evaluation Criteria. In this review, we identied four themes that are required of software for high integrity software, and further developed ten analytical categories and ratings in each category to enable us to evaluate any language used in the development of such systems. These categories and ratings within the categories are described in detail in [3] and summarized below Themes The suitability of any language to ll a specied role is determined by its ability to meet the criteria that role imposes. For high integrity systems, our analysis of various development standards identied four broad criteria: predictability, analysability, traceability, and engineering. These criteria provide the litmus test of suitability for any language to be used in the development of high integrity systems. As described in detail in [3], these criteria demand: Predictability: The language must be well-dened, so that the eect of a program can be determined.

2 The language should have few implementation dependencies and should be simple, so that interactions between language features do not give unexpected behaviours. Analysability: To support tractable analysis, the language should provide encapsulation and protection mechanisms that allow parts of programs to be analysed independently. Traceability: At the highest levels of integrity, it is necessary to trace source code to object code. This discourages the use of sophisticated language features that require extensive run-time support or that may be implemented by discontiguous code. Engineering: The safety standards we reviewed all stress the importance of good software engineering practices, and furthermore allow for the use of engineering approaches that contain the most critical parts of a system within a subsystem. An ideal language for use in high integrity systems therefore supports encapsulation, and supports software engineering by preventing or detecting programming errors, providing abstraction and encapsulation mechanisms, and restricting the use of any \loopholes" such as potentially unsafe operations or violation of encapsulation mechanisms Categories and Ratings In order to determine if an individual language feature is suitable for use in high integrity systems, the feature is evaluated in ten categories which represent the needs of high integrity software. Each category has a three-way scale that evaluates a feature's \goodness" in that category. Each language feature was rated in two ways. The feature was restricted to achieve the best possible ratings, and the feature was evaluated as part of the full and unrestricted language. The detailed analysis of Ada95 features follows the organization of the Ada95 Reference Manual [1]. The categories used during the analysis phase are discussed below. We have not included the possible ratings for each category; these are available in [2], in [3], and at Run-time Support Needed This category attempts to assess the run-time support needed for each topic area. Support code makes traceability more dicult to achieve, because it is dicult to determine from the source code where such code would exist in the object code. The run-time support code used by an Ada system can be additional code generated by a compiler to implement language requirements while a module is being compiled, or additional (pre-compiled) code which is linked into the execution module Functional Predictability This category rates the predictability of the values of outputs or, for concurrent systems, the sequence of interactions or outputs Timing Predictability This category rates the predictability of the time required for certain computations. It is important to know whether a given operation will nish before its deadline. This is aected by data-dependent calculations, such as series expansions, complexity of an algorithm, or inexact schedulability due to tasking or interrupts Space Usage Predictability This category rates the predictability of the amount of storage space required for a computation. This includes stack space, heap space, statically allocated space, and any other storage used in the implementation Formal Denition A formal denition of a language (or language subset) provides an unambiguous description of the eect of each language construct, and can be used to determine the result of executing a program. Formal denitions promote predictability of language features Integrity and Security Issues There are two major areas of concern. First, integrity violations occur when a user gains access to a module which was intended to be hidden, in order to update or alter data. Examples are the private child library package, written by the user after the system is written, gaining unintended access to parent \private" components; and erroneous execution violating the integrity of the program, data, or les. Secondly, security or access violations occur when data can be covertly copied from a protected area to a less restricted area without going through normal checks.

3 2.2.7 Reliability and Engineering Support This category attempts to rate the contribution of each language feature, or combination of features, to reliability and safe software design. Some language constructs enhance the safe construction of software systems. Language features such as the enforcement of type conformance rules in assignment and subprogram calls, or the modularity enforced by packages, package bodies and private parts, reduce errors and improve the compiler's ability to detect the misuse of objects, parameters, or attempted access to non-local items. Other language constructs are believed to be error-prone in that they are hard to use, dicult to understand, or complex (e.g., the \goto" statement and unchecked conversion) Robustness Robustness is the ability to proceed with the primary functions of an application, despite errors in portions of the application. The opposite of robustness, fragility, is the susceptibility of the primary software functions to errors in data, time (such as an overrun in a real-time application) or subcomponents. Some language constructs are intended to assist in developing code which tolerates faults or bad data. For example, protected types control the access to shared data structures, hence prevent errors associated with reentrant code and shared variables. Some language constructs contribute to the fragility of a program. Global variables in the presence of tasking or interrupts may become corrupted unless they are further constrained by mechanisms to serialize access. Similarly, a composite object can be corrupted by an exception during assignment Static Analysis Static analysis is the process of evaluating software without executing the software. It comprises a range of analyses, such as subset analysis, metrics analysis, control ow analysis, data use analysis, information ow analysis, and semantic analysis or path function analysis. Static analysis is usually performed, using software tools, on source code to verify each software component against the lowest levels of the design. It may require annotation of the source code. In many cases, analysis is theoretically possible, but may be intractable in the general case. We therefore evaluate the tractability of analysis in the major static analysis domains Dynamic Analysis Dynamic analysis is the verication of software through the examination of the computer system (inputs, outputs, memory, processor states, and timing) as the program is executing. Tools are used to examine many aspects against predictions made before execution. Coverage analysis, memory usage, data monitoring, output monitoring, resource monitoring, and intrusive testing are some of the techniques used in dynamic analysis. As with static analysis, analysis may be theoretically possible, but intractable in the general case. We therefore evaluate the tractability of analysis in the major dynamic analysis domains. 3. Results of Analysis The analysis of Ada95 employed a section-by-section study of the Ada Reference Manual, analysing each language feature in all categories identied in the framework phase. Most features were given two ratings: rst, the best possible rating (with an explanation of what restrictions allow this rating to be attained), followed by the rating for the unrestricted feature. Where there are many interactions involving a feature, it was sometimes given additional intermediate ratings. The detailed analysis is described in [4]. We conclude that Ada95 is suitable for the development of high integrity systems, if its use is restricted to those features (and combinations of features) that achieved good ratings in our analysis. The language features identied result in a subset of Ada95 that we believe is suitable for the development of high integrity systems. This subset retains support for good software engineering practice while eliminating those features or combinations of features that impede the predictability, analysability, or traceability of programs. The details of this subset are described in [4] and briey as follows: Objects: Types: { Use static initializing expressions whenever possible. { Do not declare stand-alone objects with indenite subtypes (e.g., class-wide types or unconstrained composite subtypes). { Avoid access types. { Avoid discriminants. { Derived types can be used with restrictions. { Floating point must be used with caution; precision analysis is dicult.

4 { Record types are acceptable. { Arrays can be used if their bounds are static. { Tagged types can be used if derivation is con- ned to a single scope. Expressions: { Avoid most type conversions, allocators, concatenation. { Analyse numeric operations for overow and precision. Statements: { Other than \for" loops, timing of loops is hard to analyse. { Avoid \return" or \exit" from any block with an exception handler or local declaration requiring nalization. { Avoid tasking statements (\abort", \select",...) and \goto" statements. Subprograms: { Avoid aliased parameters, indenite return types, propagation of exceptions, default expressions, anonymous access types, and sideeects in functions. Packages: Tasks: { Private types and operations are usable with slight restrictions. { Child packages can be used, but slightly complicate analysis. { Avoid controlled types. { Tasks cannot be used, but research is suggesting a very limited subset. { Entryless protected objects might be usable for interrupt handling. Program Structure: { Avoid dependence on elaboration order. { Keep bodies close to declarations. { Use pragma Elaborate_Body. Exceptions: { Explicitly raised exceptions can be used, but at a cost. { Exceptions raised by failures of languagedened checks should be avoided. Generics: { Usable in limited ways in some implementations (but not in \shared" implementations). Representation Clauses: { Avoid if possible. If needed, conne their effects to a small region of code (ideally, in a subprogram or package body). As can be seen, many features needed for real-time systems are not allowed or are highly restricted in this subset. Annexes D and H of the Ada Reference Manual provide various restrictions that can be imposed on a partition. These restrictions are not fully in agreement with the restrictions suggested by our analysis, although there is signicant overlap (such as Max_Tasks=>0 and No_Implicit_Heap_Allocation). 4. Application to Real-time Systems The analysis that we did on this project leads us to conclude that signicant portions of the language must be avoided or severely restricted for high integrity real-time or embedded systems. Nevertheless, the recommended portion of the language includes many of the features needed by in real-time programs (although sometimes in a restricted form): representation clauses are permitted so long as their denition is kept inside a package body or subprogram body and composite objects that have representations applied are not type-converted to a related type using the predened language mechanisms. generalized access types can be used along with aliased arrays of records to implement user-dened storage management, as long as aliased objects are not also subjected to other representation specications and the algorithms that access and manipulate the objects can be statically analysed. a limited form of OOP is permitted, as long as there are no partial views of tagged types, no derivation outside the package that contains the ultimate ancestor, and no private dispatching operations. The language subset we dene is larger than SPARK, Penelope, or any other one dened for Ada83.

5 This is because Ada95 is more static, has tightened language rules and made language syntax more independent of other features, and because Ada95 provides explicit mechanisms, such as pragma Restrictions, to eliminate language features and their run-time effect from a program. Timing of program segments and the static prediction of timing bounds are important considerations in real-time systems. The constructs recommended in our guidance document have bounded behaviours that assist in such analysis. Many constructs can have hardto-predict behaviours, such as recursive calls or loops based on dynamically bounded ranges, but the language features recommended have well-dened timing behaviours in themselves, hence should not introduce surprises. 5. Outstanding Challenges In many ways, the recommended language subset falls short of the requirements of real-time systems. There are several challenges to be faced in expanding this subset Restrictions too Heavy The pragma Restrictions choices were often directly applicable to the constraints that we recommended. Sometimes, however, we had to conclude that the restriction was too heavy to be as useful as we wanted. For example, the restriction No_Unchecked_Conversion must be applied as a conguration pragma, forbidding the generic routine Unchecked_Conversion in any user code. Many projects will decide that they need to use Unchecked_Conversion in a very limited way under tight management controls. Such projects will be forced to drop the restriction, and develop sourcebased analysis tools to monitor the usage on their own. There are several restrictions, such as No_Exceptions or No_Nested_Finalization, that could be applied to individual compilation units, possibly simplifying the implementation. There should be some mechanism to allow for such \local" application of the restriction pragmas Syntax Extension The analysis done was performed in the context of the Ada language as dened by the Ada95 ARM. When the underlying implementation is known, it is possible to permit more of the language to be used. For example, if one knows how objects of indenite types are handled, it may be possible to permit some classes of unconstrained or indenite types, such as unconstrained function returns or type conversions of composite objects with dierent representations. The detailed analysis done on Ada95 is publicly accessible and projects thinking about using features that we did not recommend can examine our premises and conclusions in light of the known implementation Concurrency The management of concurrency is a major challenge for most real-time or embedded systems. Realworld inputs are almost always faster than, or asynchronous to, the coding cycles of the program. Handling them requires interrupt service routines, completion routines, threads, or tasks, although current high integrity language subsets forbid all expressions of concurrency. There appear to be a number of ways that concurrency can be introduced into high integrity Ada programs: 1. Permit protected objects with no Ada tasks. Protected objects are the Ada language-dened mechanism to capture interrupts and deliver them safely to the program's execution environment. When an interrupt-based protected object is used without tasking or protected entries, the main procedure must poll a protected subprogram to collect data deposited by interrupt-level protected subprograms. The protected object semantics guarantee sequential access to the critical region and provide the facility to express the interrupt service routine code in a high level language. 2. Minimal Ada tasks. A subset tasking environment appears possible where the following scenario is provided. Library-level tasks are declared. Each task has its own unique priority, and will run until blocked at that priority level. No preemption is permitted; priority only serves to control the choice between tasks becoming unblocked and competing for a resource. All tasks voluntarily block within a bounded time, which is statically predictable or bounded. The maximal wait time for any task is then predictable. Communication with other tasks or ISRs is through protected subprograms and variables declared inside protected objects.

6 This scenario will require a minimal Ada95 tasking run-time system. It is anticipated that a specialpurpose task dispatching policy will be required Examination of Other Pragmas Pragmas Restrictions, Task Dispatching - Policy, Locking Policy, and others dened in the appendices of the Standard, furnish ways to constrain an implementation or a program's use of features. An implementation might take advantage of such a pragma to eliminate some run-time calls or simplify the implementation of the restricted features. An analysis tool could take advantage of such a pragma to reduce the number of cases that must be considered. This simplied implementation and easier analysis might allow some features needed for real-time programs to be allowed in high integrity systems when the appropriate pragmas are applied. We recommend studying classes of features needed in real-time systems, studying the restrictions needed to allow the corresponding Ada construct in a critical system, and assessing the ability of the languagedened pragmas to enforce these restrictions. We expect our analysis framework to be applicable to such a study. References [1] ANSI/ISO/IEC 8652 International Standard. Ada95 Reference Manual, Intermetrics, January [2] Dan Craigen, Mark Saaltink, and Steve Michell. Ada95 and Critical Systems: An Analytical Approach. Ada Europe, [3] Dan Craigen, Mark Saaltink, and Steve Michell. Ada95 Trustworthiness Study: A Framework for Analysis. ORA Canada Report TR , November [4] Mark Saaltink and Steve Michell. Ada95 Trustworthiness Study: Analysis of Ada95 for Critical Systems. ORA Canada Report TR , July [5] Mark Saaltink and Steve Michell. Guidance on the use of Ada95 in the Development of High Integrity Systems. ORA Canada Report TR , August New Pragmas An interesting possibility also exists to propose new pragmas, or restrictions to pragmas, that would permit the inclusion of functionality which we currently exclude. An example is the denition of a new category of run-time dispatching policy for pragma Task_Dispatching_Policy, as described in Section 5.3. Several other new restriction pragmas are suggested by the results of the analysis. 6. Conclusions High integrity real-time systems are challenging; for high integrity, one needs a simple, predictable, welldened, and easily analysed language; for real-time systems, one needs features that give access to the underlying hardware, allow external devices to be controlled, and support concurrency or interrupts. Our analysis of Ada95 systems has identied portions of the language that are suitable for the construction of high integrity systems. This subset includes some, but not all, the features required for real-time systems. We have discussed several approaches to expanding this subset. Further analysis and research is required.

2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is

2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is Extendable, Dispatchable Task Communication Mechanisms Stephen Michell Maurya Software 29 Maurya Court Ottawa Ontario, Canada K1G 5S3 steve@maurya.on.ca Kristina Lundqvist Dept. of Computer Systems Uppsala

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

Certification Authorities Software Team (CAST) Position Paper CAST-25

Certification Authorities Software Team (CAST) Position Paper CAST-25 Certification Authorities Software Team (CAST) Position Paper CAST-25 CONSIDERATIONS WHEN USING A QUALIFIABLE DEVELOPMENT ENVIRONMENT (QDE) IN CERTIFICATION PROJECTS COMPLETED SEPTEMBER 2005 (Rev 0) NOTE:

More information

Green Hills Software, Inc.

Green Hills Software, Inc. Green Hills Software, Inc. A Safe Tasking Approach to Ada95 Jim Gleason Engineering Manager Ada Products 5.0-1 Overview Multiple approaches to safe tasking with Ada95 No Tasking - SPARK Ada95 Restricted

More information

Ada's approach to Software Vulnerabilities

Ada's approach to Software Vulnerabilities Ada's approach to Software Vulnerabilities Stephen Michell Maurya Software Ottawa Canada 25/06/06 Outline Introduction, History Rationale Approach Language Analysis Assessment of Approach Introduction

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

An Information Model for High-Integrity Real Time Systems

An Information Model for High-Integrity Real Time Systems An Information Model for High-Integrity Real Time Systems Alek Radjenovic, Richard Paige, Philippa Conmy, Malcolm Wallace, and John McDermid High-Integrity Systems Group, Department of Computer Science,

More information

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995 ICC++ Language Denition Andrew A. Chien and Uday S. Reddy 1 May 25, 1995 Preface ICC++ is a new dialect of C++ designed to support the writing of both sequential and parallel programs. Because of the signicant

More information

GNAT Pro Innovations for High-Integrity Development

GNAT Pro Innovations for High-Integrity Development GNAT Pro Innovations for High-Integrity Development José F. Ruiz Senior Software Engineer Ada Europe 2010, Valencia 2010-06-15 www.adacore.com Index Development environment Tools Static

More information

The Deadline Floor Protocol and Ada

The Deadline Floor Protocol and Ada The Deadline Floor Protocol and Ada Alan Burns and Andy Wellings University of York, UK. emails: alan.burns,andy.wellings@york.ac.uk Abstract This short paper summarises the current status of the proposal

More information

The Ravenscar Tasking Profile for High Integrity Real-Time Programs

The Ravenscar Tasking Profile for High Integrity Real-Time Programs Aonix The Ravenscar Tasking Profile for High Integrity Real-Time Programs A Paper Presented at Reliable Software Technologies -- Ada-Europe 98 Uppsala, Sweden, June 1998 The Ravenscar Tasking Profile for

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

0. Overview of this standard Design entities and configurations... 5

0. Overview of this standard Design entities and configurations... 5 Contents 0. Overview of this standard... 1 0.1 Intent and scope of this standard... 1 0.2 Structure and terminology of this standard... 1 0.2.1 Syntactic description... 2 0.2.2 Semantic description...

More information

Hybrid Verification in SPARK 2014: Combining Formal Methods with Testing

Hybrid Verification in SPARK 2014: Combining Formal Methods with Testing IEEE Software Technology Conference 2015 Hybrid Verification in SPARK 2014: Combining Formal Methods with Testing Steve Baird Senior Software Engineer Copyright 2014 AdaCore Slide: 1 procedure Array_Indexing_Bug

More information

The Lexical Structure of Verdi TR Mark Saaltink. Release date: July 1994

The Lexical Structure of Verdi TR Mark Saaltink. Release date: July 1994 The Lexical Structure of Verdi TR-94-5463-06 Mark Saaltink Release date: July 1994 ORA Canada 267 Richmond Road, Suite 100 Ottawa, Ontario K1Z 6X3 CANADA Verdi Compiler Project TR-94-5463-06 1 This report

More information

Schedulability Analysis of AADL Models

Schedulability Analysis of AADL Models Schedulability Analysis of AADL Models Oleg Sokolsky Insup Lee University of Pennsylvania Duncan Clarke Fremont Associates Overview AADL modeling language Why is it useful and what it has Formal schedulability

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

A Framework for Real-Time Utilities for Ada 2005

A Framework for Real-Time Utilities for Ada 2005 A Framework for Real-Time Utilities for Ada 2005 A.J. Wellings and A. Burns Department of Computer Science University of York, UK {andy,burns}@cs.york.ac.uk Abstract Modernlarge real-time systems are becoming

More information

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n* Information Needs in Performance Analysis of Telecommunication Software a Case Study Vesa Hirvisalo Esko Nuutila Helsinki University of Technology Laboratory of Information Processing Science Otakaari

More information

Expressing Fault Tolerant Algorithms with MPI-2. William D. Gropp Ewing Lusk

Expressing Fault Tolerant Algorithms with MPI-2. William D. Gropp Ewing Lusk Expressing Fault Tolerant Algorithms with MPI-2 William D. Gropp Ewing Lusk www.mcs.anl.gov/~gropp Overview Myths about MPI and Fault Tolerance Error handling and reporting Goal of Fault Tolerance Run

More information

Programming Language Vulnerabilities within the ISO/IEC Standardization Community

Programming Language Vulnerabilities within the ISO/IEC Standardization Community Programming Language Vulnerabilities within the ISO/IEC Standardization Community Stephen Michell International Convenor JTC 1/SC 22 WG 23 Programming Language Vulnerabilities stephen.michell@maurya.on.ca

More information

A3. Programming Languages for Writing Safety-Critical Software

A3. Programming Languages for Writing Safety-Critical Software A3. Programming Languages for Writing Safety-Critical Software (a) Overview. (b) SPARK Ada. Critical Systems, CS 411, Lent term 2002, Sec. A3 A3-1 (a) Overview Important Factors for Programming Languages

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Document Generation using ASIS Tools

Document Generation using ASIS Tools Document Generation using ASIS Tools Steven V. Hovater 1 Rational Software Lexington, Massachusetts, USA svh@rational.com Abstract. The Ada Semantic Interface Specification offers a unique capability to

More information

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Give your application the ability to register callbacks with the kernel. by Frédéric Rossi In a previous article [ An Event Mechanism

More information

Elaboration The execution of declarations

Elaboration The execution of declarations Elaboration The execution of declarations Examples Elaboration of a variable declaration sets up space for that variable. Elaboration of a task variable creates, initializes, and runs the task. Elaboration

More information

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Outline of the talk. The egg and the hen Or, Which comes first: the problem or the solution? Challenges (2/6) Challenges (1/6) Recall of basics

Outline of the talk. The egg and the hen Or, Which comes first: the problem or the solution? Challenges (2/6) Challenges (1/6) Recall of basics The egg and the hen Or, Which comes first: the problem or the solution? Tullio Vardanega 2001-2002 Outline of the talk Challenges of embedded real-time systems Design for verifiability Problem modelling,

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

Suggestions for Stream Based Parallel Systems in Ada

Suggestions for Stream Based Parallel Systems in Ada Suggestions for Stream Based Parallel Systems in Ada M. Ward * and N. C. Audsley Real Time Systems Group University of York York, England (mward,neil)@cs.york.ac.uk Abstract Ada provides good support for

More information

Exception Handling: Control. Exception handling is the control of error conditions or other unusual events during the execution of a program.

Exception Handling: Control. Exception handling is the control of error conditions or other unusual events during the execution of a program. Exception Handling: Control Exception handling is the control of error conditions or other unusual events during the execution of a program. 1 In a language without exception handling: When an exception

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

Network. Department of Statistics. University of California, Berkeley. January, Abstract

Network. Department of Statistics. University of California, Berkeley. January, Abstract Parallelizing CART Using a Workstation Network Phil Spector Leo Breiman Department of Statistics University of California, Berkeley January, 1995 Abstract The CART (Classication and Regression Trees) program,

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information

Ada 2005 An introduction for TTK4145

Ada 2005 An introduction for TTK4145 Ada 2005 An introduction for TTK4145 Kristoffer Nyborg Gregertsen Department of Engineering Cybernetics 21-10-2009 2 Contents Introduction Language basics Variables, scope and types Program flow Routines

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

Software architecture in ASPICE and Even-André Karlsson

Software architecture in ASPICE and Even-André Karlsson Software architecture in ASPICE and 26262 Even-André Karlsson Agenda Overall comparison (3 min) Why is the architecture documentation difficult? (2 min) ASPICE requirements (8 min) 26262 requirements (12

More information

Algorithmic "imperative" language

Algorithmic imperative language Algorithmic "imperative" language Undergraduate years Epita November 2014 The aim of this document is to introduce breiy the "imperative algorithmic" language used in the courses and tutorials during the

More information

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY Programming In Ada 2005 JOHN BARNES... TT ADDISON-WESLEY An imprint of Pearson Education Harlow, England London New York Boston San Francisco Toronto Sydney Tokyo Singapore Hong Kong Seoul Taipei New Delhi

More information

Question 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures

Question 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures Comp 104: Operating Systems Concepts Revision Lectures Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects you want to know about??? 1

More information

Ada Issue Support for Deadlines and Earliest Deadline First Scheduling

Ada Issue Support for Deadlines and Earliest Deadline First Scheduling Ada Issue 00357 Support for Deadlines and Earliest Deadline First Scheduling!standard D.02.6 (01) 05-03-13 AI95-00357/09!class amendment 03-09-27!status Amendment 200Y 04-12-02!status ARG Approved 10-0-0

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

RTC: Language Support for Real-Time Concurrency

RTC: Language Support for Real-Time Concurrency RTC: Language Support for Real-Time Concurrency Insup Lee, Susan Davidson, and Victor Wolfe 1 Introduction The RTC (Real-Time Concurrency) programming concepts and language constructs for expressing timing

More information

COMPILER DESIGN. For COMPUTER SCIENCE

COMPILER DESIGN. For COMPUTER SCIENCE COMPILER DESIGN For COMPUTER SCIENCE . COMPILER DESIGN SYLLABUS Lexical analysis, parsing, syntax-directed translation. Runtime environments. Intermediate code generation. ANALYSIS OF GATE PAPERS Exam

More information

Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify

Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify http://cs.lth.se/eda040 Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify Klas Nilsson 2016-09-20 http://cs.lth.se/eda040 F4: Monitors: synchronized, wait and

More information

Introduction to Embedded Systems. Lab Logistics

Introduction to Embedded Systems. Lab Logistics Introduction to Embedded Systems CS/ECE 6780/5780 Al Davis Today s topics: lab logistics interrupt synchronization reentrant code 1 CS 5780 Lab Logistics Lab2 Status Wed: 3/11 teams have completed their

More information

Concurrent and Real-Time Programming in Java

Concurrent and Real-Time Programming in Java 064202 Degree Examinations 2003 DEPARTMENT OF COMPUTER SCIENCE Concurrent and Real-Time Programming in Java Time allowed: One and one half (1.5) hours Candidates should answer not more than two questions.

More information

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers) Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects

More information

EL6483: Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo

EL6483: Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo : Basic Concepts of Embedded System Modeling and Hardware-In-The-Loop Simulation Spring 2016 : Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo 2016 1 / 26 Overall system : Basic

More information

(Preliminary Version 2 ) Jai-Hoon Kim Nitin H. Vaidya. Department of Computer Science. Texas A&M University. College Station, TX

(Preliminary Version 2 ) Jai-Hoon Kim Nitin H. Vaidya. Department of Computer Science. Texas A&M University. College Station, TX Towards an Adaptive Distributed Shared Memory (Preliminary Version ) Jai-Hoon Kim Nitin H. Vaidya Department of Computer Science Texas A&M University College Station, TX 77843-3 E-mail: fjhkim,vaidyag@cs.tamu.edu

More information

Solve the Data Flow Problem

Solve the Data Flow Problem Gaining Condence in Distributed Systems Gleb Naumovich, Lori A. Clarke, and Leon J. Osterweil University of Massachusetts, Amherst Computer Science Department University of Massachusetts Amherst, Massachusetts

More information

The Ravenscar Tasking Profile for High Integrity Real-Time Programs

The Ravenscar Tasking Profile for High Integrity Real-Time Programs The Ravenscar Tasking Profile for High Integrity Real-Time Programs Brian Dobbing Aonix-Europe Ltd Partridge House, Newtown Road Henley-on-Thames RG9 1EN UK +44 1491 415016 brian@uk.aonix.com Alan Burns

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

Automated Freedom from Interference Analysis for Automotive Software

Automated Freedom from Interference Analysis for Automotive Software Automated Freedom from Interference Analysis for Automotive Software Florian Leitner-Fischer ZF TRW 78315 Radolfzell, Germany Email: florian.leitner-fischer@zf.com Stefan Leue Chair for Software and Systems

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers)

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers) Comp 204: Computer Systems and Their Implementation Lecture 25a: Revision Lectures (separate questions and answers) 1 Today Here are a sample of questions that could appear in the exam Please LET ME KNOW

More information

G Programming Languages Spring 2010 Lecture 13. Robert Grimm, New York University

G Programming Languages Spring 2010 Lecture 13. Robert Grimm, New York University G22.2110-001 Programming Languages Spring 2010 Lecture 13 Robert Grimm, New York University 1 Review Last week Exceptions 2 Outline Concurrency Discussion of Final Sources for today s lecture: PLP, 12

More information

COS 320. Compiling Techniques

COS 320. Compiling Techniques Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly

More information

2 3. Syllabus Time Event 9:00{10:00 morning lecture 10:00{10:30 morning break 10:30{12:30 morning practical session 12:30{1:30 lunch break 1:30{2:00 a

2 3. Syllabus Time Event 9:00{10:00 morning lecture 10:00{10:30 morning break 10:30{12:30 morning practical session 12:30{1:30 lunch break 1:30{2:00 a 1 Syllabus for the Advanced 3 Day Fortran 90 Course AC Marshall cuniversity of Liverpool, 1997 Abstract The course is scheduled for 3 days. The timetable allows for two sessions a day each with a one hour

More information

Real-time CORBA 2.0: Dynamic Scheduling Specification

Real-time CORBA 2.0: Dynamic Scheduling Specification Real-time CORBA 2.0: Dynamic Scheduling Specification This OMG document replaces the draft adopted specification and submission (orbos/01-06-09). It is an OMG Final Adopted Specification, which has been

More information

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake Sample ISTQB examination 1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake 2 Regression testing should

More information

By V-cubed Solutions, Inc. Page1. All rights reserved by V-cubed Solutions, Inc.

By V-cubed Solutions, Inc.   Page1. All rights reserved by V-cubed Solutions, Inc. By V-cubed Solutions, Inc. Page1 Purpose of Document This document will demonstrate the efficacy of CODESCROLL CODE INSPECTOR, CONTROLLER TESTER, and QUALITYSCROLL COVER, which has been developed by V-cubed

More information

Operating Systems : Overview

Operating Systems : Overview Operating Systems : Overview Bina Ramamurthy CSE421 8/29/2006 B.Ramamurthy 1 Topics for discussion What will you learn in this course? (goals) What is an Operating System (OS)? Evolution of OS Important

More information

Transport protocols are of practical. login, le transfer, and remote procedure. calls. will operate on and therefore are generally

Transport protocols are of practical. login, le transfer, and remote procedure. calls. will operate on and therefore are generally Hazard-Free Connection Release Jennifer E. Walter Department of Computer Science Texas A&M University College Station, TX 77843-3112, U.S.A. Jennifer L. Welch Department of Computer Science Texas A&M University

More information

Chapter 5. Names, Bindings, and Scopes

Chapter 5. Names, Bindings, and Scopes Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative

More information

Real-Time Programming with GNAT: Specialised Kernels versus POSIX Threads

Real-Time Programming with GNAT: Specialised Kernels versus POSIX Threads Real-Time Programming with GNAT: Specialised Kernels versus POSIX Threads Juan A. de la Puente 1, José F. Ruiz 1, and Jesús M. González-Barahona 2, 1 Universidad Politécnica de Madrid 2 Universidad Carlos

More information

Experience with Processes and Monitors in Mesa p. 1/1

Experience with Processes and Monitors in Mesa p. 1/1 Experience with Processes and Monitors in Mesa Authors: Butler W. Lampson, David D. Redell Presented by: John McCall rjmccall@cs.pdx.edu Experience with Processes and Monitors in Mesa p. 1/1 Star and Pilot

More information

The Structuring of Systems Using Upcalls

The Structuring of Systems Using Upcalls CS533 - Concepts of Operating Systems, Winter 2012 The Structuring of Systems Using Upcalls David D. Clark Presented by: Peter Banda Agenda Layers and Upcalls Example Multi-task Modules Problems with Upcalls

More information

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract Reverse Engineering with a CASE Tool Bret Johnson Research advisors: Spencer Rugaber and Rich LeBlanc October 6, 994 Abstract We examine using a CASE tool, Interactive Development Environment's Software

More information

fa0 fa1 fa2 a(0) a(1) a(2) a(3) cin a b sum(0) sum(1) sum(2) sum(3) sum cout cin cin cout a b sum cout cin a b sum cout cin b(0) b(1) b(2) b(3)

fa0 fa1 fa2 a(0) a(1) a(2) a(3) cin a b sum(0) sum(1) sum(2) sum(3) sum cout cin cin cout a b sum cout cin a b sum cout cin b(0) b(1) b(2) b(3) Introduction to Synopsys and VHDL on Solaris c Naveen Michaud-Agrawal for Dr. Pakzad's CSE 331 Honor class September 25, 2000 1 Introduction VHDL is an acronym which stands for VHSIC Hardware Description

More information

Programming Languages, Summary CSC419; Odelia Schwartz

Programming Languages, Summary CSC419; Odelia Schwartz Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design

More information

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples Multicore Jukka Julku 19.2.2009 1 2 3 4 5 6 Disclaimer There are several low-level, languages and directive based approaches But no silver bullets This presentation only covers some examples of them is

More information

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 Overview Objective: To explore the principles upon which

More information

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to:

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to: F2007/Unit5/1 UNIT 5 OBJECTIVES General Objectives: To understand the process management in operating system Specific Objectives: At the end of the unit you should be able to: define program, process and

More information

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Operating Systems Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

CPS 506 Comparative Programming Languages. Programming Language

CPS 506 Comparative Programming Languages. Programming Language CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support

More information

Curriculum for the Bachelor's Degree Programme in Software Development National section

Curriculum for the Bachelor's Degree Programme in Software Development National section Curriculum for the Bachelor's Degree Programme in Software Development National section Contents 1. Programme structure... 3 2. Core areas of study... 3 2.1 Large-scale system development... 3 2.2 Databases

More information

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5 Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5 Multiple Processes OS design is concerned with the management of processes and threads: Multiprogramming Multiprocessing Distributed processing

More information

Acknowledgments 2

Acknowledgments 2 Program Slicing: An Application of Object-oriented Program Dependency Graphs Anand Krishnaswamy Dept. of Computer Science Clemson University Clemson, SC 29634-1906 anandk@cs.clemson.edu Abstract A considerable

More information

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result.

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result. Every program uses data, either explicitly or implicitly to arrive at a result. Data in a program is collected into data structures, and is manipulated by algorithms. Algorithms + Data Structures = Programs

More information

PL/SQL Block structure

PL/SQL Block structure PL/SQL Introduction Disadvantage of SQL: 1. SQL does t have any procedural capabilities. SQL does t provide the programming technique of conditional checking, looping and branching that is vital for data

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

which a value is evaluated. When parallelising a program, instances of this class need to be produced for all the program's types. The paper commented

which a value is evaluated. When parallelising a program, instances of this class need to be produced for all the program's types. The paper commented A Type-Sensitive Preprocessor For Haskell Noel Winstanley Department of Computer Science University of Glasgow September 4, 1997 Abstract This paper presents a preprocessor which generates code from type

More information

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given MUHAMMAD FAISAL MIT 4 th Semester Al-Barq Campus (VGJW01) Gujranwala faisalgrw123@gmail.com MEGA File Solved MCQ s For Final TERM EXAMS CS508- Modern Programming Languages Question No: 1 ( Marks: 1 ) -

More information

PRIVACY POLICY Let us summarize this for you...

PRIVACY POLICY Let us summarize this for you... PRIVACY POLICY Let us summarize this for you... We promise to never sell your personal information. This site collects usage information to provide a better web experience for our users. If you purchase

More information

such internal data dependencies can be formally specied. A possible approach to specify

such internal data dependencies can be formally specied. A possible approach to specify Chapter 6 Specication and generation of valid data unit instantiations In this chapter, we discuss the problem of generating valid data unit instantiations. As valid data unit instantiations must adhere

More information

Design. Introduction

Design. Introduction Design Introduction a meaningful engineering representation of some software product that is to be built. can be traced to the customer's requirements. can be assessed for quality against predefined criteria.

More information

Establishing the overall structure of a software system

Establishing the overall structure of a software system Architectural Design Establishing the overall structure of a software system Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13 Slide 1 Objectives To introduce architectural design and

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

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

Java: Just Another Version of Ada an overview of Ada 2005

Java: Just Another Version of Ada an overview of Ada 2005 Topics To Be Covered!Introduction Java: Just Another Version of Ada an overview of Ada 2005 Jorge L. Díaz-Herrera, Ph.D. Professor of Computer Science B. Thomas Golisano College of Computing and Information

More information

A Model-Based Reference Workflow for the Development of Safety-Related Software

A Model-Based Reference Workflow for the Development of Safety-Related Software A Model-Based Reference Workflow for the Development of Safety-Related Software 2010-01-2338 Published 10/19/2010 Michael Beine dspace GmbH Dirk Fleischer dspace Inc. Copyright 2010 SAE International ABSTRACT

More information

Scaling Tuple-Space Communication in the Distributive Interoperable Executive Library. Jason Coan, Zaire Ali, David White and Kwai Wong

Scaling Tuple-Space Communication in the Distributive Interoperable Executive Library. Jason Coan, Zaire Ali, David White and Kwai Wong Scaling Tuple-Space Communication in the Distributive Interoperable Executive Library Jason Coan, Zaire Ali, David White and Kwai Wong August 18, 2014 Abstract The Distributive Interoperable Executive

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

UNIT - 5 EDITORS AND DEBUGGING SYSTEMS

UNIT - 5 EDITORS AND DEBUGGING SYSTEMS UNIT - 5 EDITORS AND DEBUGGING SYSTEMS 5.1 Introduction An Interactive text editor has become an important part of almost any computing environment. Text editor acts as a primary interface to the computer

More information

Rationale for TR Extension to the programming language C. Decimal Floating-Point Arithmetic

Rationale for TR Extension to the programming language C. Decimal Floating-Point Arithmetic WG14 N1161 Rationale for TR 24732 Extension to the programming language C Decimal Floating-Point Arithmetic Contents 1 Introduction... 1 1.1 Background... 1 1.2 The Arithmetic Model... 3 1.3 The Encodings...

More information

ISO/IEC : 1994(E) ITU-T Rec. X.200 (1994 E) Information Processing Systems OSI Reference Model The Basic Model

ISO/IEC : 1994(E) ITU-T Rec. X.200 (1994 E) Information Processing Systems OSI Reference Model The Basic Model ISO/IEC 7498-1 : 1994(E) ITU-T Rec. X.200 (1994 E) Information Processing Systems OSI Reference Model The Basic Model Table of content 1 SCOPE... 3 2 DEFINITIONS... 5 3 NOTATION... 6 4 INTRODUCTION TO

More information

Microsoft. [MS20762]: Developing SQL Databases

Microsoft. [MS20762]: Developing SQL Databases [MS20762]: Developing SQL Databases Length : 5 Days Audience(s) : IT Professionals Level : 300 Technology : Microsoft SQL Server Delivery Method : Instructor-led (Classroom) Course Overview This five-day

More information