bluuebunny/crossref_metadata_2025 huggingface dataset:
Surfing the net for software engineering notes
Authors: Doernhoefer Mark
Published: November 2005

Remember the good old days when your computer science professor assigned you a programming task that required you to turn in the source code (usually FORTRAN) and a flowchart? You'd run off, code up the assignment, get it to run correctly, then go back and write up the flowchart to match the program. That's how most of us learned to design software.
Report of the International Symposium on Component-Based Software Engineering
Authors: Crnkovic Ivica , Reussner Ralf , Schmidt Heinz , Simons Kevin , Stafford Judith , Wallnau Kurt
Published: November 2005

The International Symposium on Component-Based Software Engineering (CBSE7) was held at 28
th
International Conference on Software Engineering in Edinburgh, Scotland, May 24-25, 2004. The Symposium brought together researchers and practitioners from several communities: component technology, composition languages, compositional analysis, software architecture, software certification and scientific computing. The primary goal of the symposium was to continue clarifying the concepts, identifying the main challenges and findings of predictable assembly of software components. This report gives a comprehensive summary of the position papers, of the symposium, its findings, and its results.
Collaboration, conflict and control
Authors: Feller Joseph , Fitzgerald Brian , Hissam Scott , Lakhani Karim
Published: November 2005

Building on the success of the first three workshops in the series, which were held at ICSE 2001 (Toronto), ICSE 2002 (Orlando) and ICSE 2003 (Portland), the 4
th
Workshop on Open Source Software Engineering, ("Collaboration, Conflict and Control") brought together researchers and practitioners for the purpose of discussing the platforms and tools, techniques and processes, and the organizational structures that are used to support and sustain communication, collaboration and conflict resolution within and between open source software communities.
Implicit heterogeneous and parallel programming
Authors: Chiang Chia-Chu
Published: November 2005

Programmers are often required to develop parallel programs using new parallel languages or parallel extensions to existing languages that are different from the languages they used previously on sequential machines. As a consequence, programmers are faced with unfamiliar programming models and are often compelled to program at a low level with specific target machines. In this paper, we are going to introduce an implicit parallel programming method that allows programmers to use their favorite sequential programming languages for heterogeneous and parallel programming. Implicit parallelism relieves programmers since they do not have to worry about the details of parallel execution.
Software reuse guidelines
Authors: Ramachandran Muthu
Published: November 2005

In this paper, we discuss the general area of software development for reuse and reuse guidelines. We identify, in detail, language-oriented and domain-oriented guidelines whose effective use affects component reusability. This paper also proposes a tool support which can provide advise and can generate reusable components automatically and it is based on domain knowledge (reuse guidelines represented as domain knowledge).
Priority inversion in multi processor systems due to protected actions
Authors: Naeser Gustaf
Published: November 2005

The use of multiple processors give rise to new issues regarding old problems of the Ada95 design.In this paper we discuss how serviceing of protected actions, due to unspecified dispatching, can lead to unbounded priority inversion in systems with multiple processors. We also discuss different ways to resolve the problem.
Granular differentiated queueing services for QoS
Authors: Jiang Shengming
Published: November 2005

One weakness of DiffServ is the lack of granularity for QoS guaranteed services, which makes it difficult to cost-effectively support end-to-end (e2e) QoS according to the e2e situation (e.g., path lengths) of applications. With the conventional packet-level QoS mechanisms for the regulated traffic, i.e., buffer admission control plus output schedulers in general, increasing service granularity may inevitably complicate implementation and/or impact scalability since sophisticated output schedulers seem necessary in this case. In this paper, a new structure, Differentiated Queueing Services (DQS), is discussed to handle the above issue. DQS tries to provide granular and scalable QoS guaranteed services to be selected by users according to their QoS requirements and e2e situation. Its basic idea is to convert packet delay guarantee into packet loss ratio guarantee with either dropping or marking the packets whose e2e delays are perceived unable to be guaranteed. Packets are queued according to their e2e delay requirements so that various delay bounds can be guaranteed without using sophisticated output schedulers while different packet loss ratios are mainly controlled by call admission control (CAC). To this end, the e2e QoS requirement is carried by each packet to avoid storing such information in network units for scalability. On the other hand, differentiated services should also be accomplished with a differentiated cost model for pricing, not only for the profits of both the service provider and the user, but also to prevent good services from being abused. So, a cost model for differentiated QoS services provided by DQS is also discussed with a possible CAC based on the exponentially bounded burstiness traffic.
Notes on burst mitigation for transport protocols
Authors: Allman Mark , Blanton Ethan
Published: November 2005

In this note we explore the various causes of micro-bursting in TCP connections and also the behavior of several mitigations that have been suggested in the literature along with extensions we develop herein. This note methodically sketches the behavior of the mitigations and presents the tradeoffs of various schemes as a data point in the ongoing discussion about preventing bursting in transport protocols.
Efficient security for IPv6 multihoming
Authors: Bagnulo Marcelo , García-Martínez Alberto , Azcorra Arturo
Published: November 2005

In this note, we propose a security mechanism for protecting IPv6 networks from possible abuses caused by the malicious usage of a multihoming protocol. In the presented approach, each multihomed node is assigned multiple prefixes from its upstream providers, and it creates the interface identifier part of its addresses by incorporating a cryptographic one-way hash of the available prefix set. The result is that the addresses of each multihomed node form an unalterable set of intrinsically bound IPv6 addresses. This allows any node that is communicating with the multihomed node to securely verify that all the alternative addresses proposed through the multihoming protocol are associated to the address used for establishing the communication. The verification process is extremely efficient because it only involves hash operations.
Feature article introduction
Authors: Partridge Craig
Published: November 2005

Vint Cerf and Bob Kahn are this year's recipients of the ACM Turing Award (the highest award in Computer Science) for their pioneering work in internetworking. To commemorate their award, and with the gracious consent of IEEE (which originally published the paper) and the authors, SIGCOMM is reprinting their famous early paper on internetworking, "A Protocol for Packet Network Interconnection," from IEEE Transactions on Communications of May 1974.When the paper was written, Bob was early in his thirteen year-career at the US Defense Advanced Research Projects agency and Vint was a junior professor at Stanford. Bob eventually left DARPA and has continued in a distinguished career of nurturing research through the not-for-profit Corporation for National Research Initiatives (CNRI), which he founded in 1986 and has led ever since. Vint soon left Stanford to spend several years at DARPA. After DARPA, Vint worked at MCI, leading the development of MCI Mail, then worked with Bob at CNRI, then rejoined MCI in 1994, where he is senior vice president for technology strategy.Throughout this time, both Vint and Bob have been actively involved in Internet activities. For many years, Vint served on (and for some years, chaired) the Internet Activities Board. Vint is currently chairman of the board of the Internet Corporation for Assigned Names and Numbers (ICANN). Bob, Vint and CNRI have provided essential support services for the Internet Engineering Task Force (IETF) for many years.Closer to home, both Bob and Vint have served as chairs of SIGCOMM. And both have received the ACM SIGCOMM Award: Bob in 1993 and Vint in 1996.I continue to find reading this paper intellectually rewarding, both for what it contains and what it does not. What it contains, of course, is a lot of the ideas that eventually became TCP and IP. It is somewhat astonishing to see how much was known in 1974, only 5 years after ARPANET was turned on. Equally interesting are things that were missing, such as congestion coordination with routers (e.g. the TCP congestion window). And there are also a few (not many) ideas that turned out to be bad (such as shrinking the receiver window from the right). All in all a rewarding read and I hope you'll agree, worth reprinting 31 years later.
A protocol for packet network intercommunication
Authors: Cerf Vinton G. , Icahn Robert E.
Published: November 2005

A protocol that supports the sharing of resources that exist in different packet switching networks is presented. The protocol provides for variation in individual network packet sizes, transmission failures, sequencing, flow control, end-to-end error checking, and the creation and destruction of logical process-to-process connections. Some implementation issues are considered, and problems such as internetwork routing, accounting, and timeouts are exposed.
Future and emerging technologies
Authors: Sestini Fabrizio , Van der Pyl Thierry
Published: November 2005

FET (Future and Emerging Technologies) is a part of the EU-funded research activities which addresses emerging ICT-related research domains, explores options in ICT technology roadmaps where road blocks are anticipated but where "no known solutions" are available and evaluates these options. FET activities have proved very efficient in feeding the core of the IST programme with emerging concepts or radically new technological paradigms, often arising at the crossroads of existing disciplines. In the coming years these activities, which are expected to be complemented by an envisaged European Research Council, will continue nurturing and stimulating creativity and excellence in ICTs research also in combination with other relevant S&T fields.
802.11 "decrypted"
Authors: Stephens Adrian
Published: November 2005

This short paper introduces wireless IEEE 802 standards and activities with a focus on explaining the purpose of the many 802.11 amendments.
The effect of decision style on the use of a project management tool
Authors: Fox Terry L. , Spence J. Wayne
Published: November 2005

Managing a software development project presents many difficulties. Most software development projects are considered less than successful, and many are simply cancelled. Ineffective project management has been cited as a major factor contributing to these failures. Project management tools can greatly assist managers in tracking and controlling their projects. However, their structured and analytical nature does not necessarily match the decision-making styles of project managers.This paper presents the results of an empirical laboratory study that examined the influence of decision style on a project manager's use of the project management tool, Microsoft Project. Project managers from eight companies participated in the study, and generated an interesting pattern indicating that significant differences exist with respect to the use made of a project management tool when the project manager's decision style is taken into consideration. The results clearly indicate that when completing certain tasks, such as developing an initial project plan, project managers preferring a more directive or analytical approach to decision making significantly outperformed those project managers preferring a more conceptual or behavioral approach, both in regard to the time taken to complete the plan, and the accuracy of the plan.
Competitive intelligence systems
Authors: Sauter Vicki L.
Published: November 2005

Technologies such as decision support systems (DSS) are helpful in solving many kinds of problems, especially those that are based on quantitative data and/or are tactical in scope. For strategic decisions, however, decision makers can benefit greatly from a tool that tracks and organizes qualitative and other nebulous information. Such a tool would help cultivate and leverage an organization's intellectual assets to help users address decision making in a more informed fashion. While DSS technologies have not commonly been used in such situations, they can be adapted to do so. This paper addresses the development of a qualitative DSS in a health care setting that allowed hospital administrators to exploit the qualitative information obtained by its network of field representatives for strategic benefit. This type of system, and its corresponding benefits, can be extended to other business situations.
If you spoke as she does, sir, instead of the way you do
Authors: Gefen David , Ridings Catherine M.
Published: November 2005

This study examines virtual community quality through sociolinguistics theory. According to sociolinguistics, in oral discourse men communicate to establish superior social standing, while women communicate with the undertone of rapport, compassion, and empathy. The study shows that these differences carry over to the asynchronous written environment of virtual communities and affect men's and women's respective perceptions of community quality. Women go to virtual communities to give and to get social support and have a more favorable assessment of the capability of others. This pattern generally holds even when comparing mostly single-gender communities and mixed-gender communities. However, a closer look at these differences reveals a more complex picture, with undertones in mixed-gender communities being less than in their respective mostly single-gender communities.
Industrial strength exception freedom
Authors: Amey Peter , Chapman Roderick
Published: November 2005

Ada is unique amongst modern high-level languages in the degree to which it allows programming errors to be trapped at the compilation stage. Using a tool like the SPARK Examiner amplifies this effect and can provide a high degree of confidence that a program is well formed before we try and verify that its behaviour is correct. Despite this progress a less tractable class of errors remain: run-time exceptions. For safety-related systems a run-time error may be just as hazardous as any other logical error. For secure systems, guarding against the deliberate generation of such errors-through buffer overflow attacks for example-is vital. The paper explains how automated techniques based on formal verification or proof techniques have now matured and provide an industrial strength solution.
Development of a distributed, cross-platform simulator
Authors: Brooke Thomas C.
Published: November 2005

In developing real-time mission control software for terminals in a large satellite communications system, my team realized that a script-based stimulus/response tool was inadequate for developmental testing and training. As an initial proof-of-concept, we first designed a monolithic, single-user system simulator for engineering development. During the project, the requirements expanded to include the addition of a multi-user, cross-platform capability, and later distribution in a two-tier client/server system.
Weaving Ada 95 into the .net environment
Authors: Carlisle Martin C. , Sward Ricky E. , Humphries Jeffrey W.
Published: November 2005

This paper explains our efforts to add Ada to Microsoft's family of .NET languages. There are several advantages to weaving Ada into the Common Language Environment provided by the .NET environment. This paper explains our approach and current progress on the research. We provide the means to extract Ada specification files from Microsoft Intermediate Language (MSIL) code and compile Ada programs into MSIL.
Visual Ada developer
Authors: Dulman Leonid
Published: November 2005

Programming language popularity depends not only on its properties and quality, but also on service which the user gets in its environment. Gui and visual developer are important components of IDE (Integrated-Development Environment).Visual Ada Developer (VAD) helps Ada programmers easily create OS independent application, using standard set of components, such as GUI elements, Multimedia elements, Network connections, DB connections and others.
The essence of information assurance and its implications for the Ada community
Authors: McEvilley Michael
Published: November 2005

There is a growing need to engineer and operate critical systems with some level of measurable trust in the functions that make these systems secure. The term Information Assurance (IA) is now widely used to refer to the general concept of system security and this establishment of trust, but IA has yet to receive a precise definition. This paper discusses the concepts and principles that are essential to achieving IA objectives as a means to provide insights to the safety-critical Ada community regarding opportunities to impact the development of trusted security solutions.
The anatomy of an FAA-qualifiable Ada subset compiler
Authors: Santhanam V.
Published: November 2005

To date, compilers used in the construction of FAA-certified software have not been specially qualified for use in safety-critical applications. This has resulted in costly test procedures that attempt to verify the correctness and achieve structural coverage of the object code program rather than the source program. The FAA has adapted the criteria set forth in the document RTCA DO-178B for the design, development, and verification of tools used in the construction of safety-critical software. Tools meeting those criteria can be qualified as code development tools, and their output can be used without additional verification. This paper describes the internals of a compiler for a subset of Ada that is designed to meet the qualification criteria. Use of the qualified compiler will reduce the test burden for certifying flight software at the highest levels of criticality.
XML and Ada complement each other
Authors: Leif Robert C. , Leif Suzanne B. , Leif Stephanie H.
Published: November 2005

XML has become a major Internet technology. The programing language that has the best fit with XML is Ada. XML and Ada have similar typing systems, visibility and scoping rules. A mutually beneficial symbiosis requires the creation of applications in Ada that use and support XML, as well as, the use of XML to create Ada environments including XML based tools. Ada and XML. A small example of this relationship will be illustrated with results from the development of an XML based biomedical standard, CytometyML.
Developing a generic genetic algorithm
Authors: Neville Melvin , Sibley Anaika
Published: November 2005

Genetic and evolutionary algorithms, inspired by biological processes, provide a technique for programs to "automatically" improve their parameters. We discuss the basics of the algorithms and introduce our own hybrid. The development of this hybrid and its application to a simplified problem, evolving the coefficients for the sine function in a Taylor series, presents opportunities for computer science education with respect to model-building, data structures, and language features. Students must decide upon the representation of the chief mechanisms of genetic algorithms: mutation to alter the values of parameters directly and crossover to vary the groupings of co-evolved parameters in order to break away from local fitness maxima. They must examine the meaning of fitness itself as well as make many other modeling decisions. Ada itself provides both challenges and advantages: linked-lists must be well understood to be updated in an object-oriented context and hard-typing produces mixed reactions in students used to C++, but generics provide a powerful way to generalize the algorithm and incorporating different problem domains.
Experimental performance analysis of the Ada95 and Java parallel program on SMP systems
Authors: Korochkin Dmitry , Korochkin Sergey
Published: November 2005

In this paper, we describe the results of experimental performance analysis of Ada and Java parallel program on SMP systems. Speed up of Ada and Java set programs to solving some linear algebra problems are presented.
What should computer science students learn from mathematics?
Authors: Tay Y. C.
Published: November 2005

There is an important difference between the title and "What Mathematics should Computer Science students learn?" This talk addresses both questions. To do so, it brings together some examples that illustrate the current state of computer science and information technology.
Algorithmic foundations of the internet
Authors: López-Ortiz Alejandro
Published: November 2005

In this paper we survey the field of Algorithmic Foundations of the Internet, which is a new area within theoretical computer science. We consider six sample topics that illustrate the techniques and challenges in this field.
The CAP filing system
Authors: Needham R. M. , Birrell A. D.
Published: November 2005

The filing system for the CAP is based on the idea of preservation of capabilities: if a program has been able to obtain some capability then it has an absolute right to preserve it for subsequent use. The pursuit of this principle, using capability-oriented mechanisms in preference to access control lists, has led to a filing system in which a preserved capability may be retrieved from different directories to achieve different access statuses, in which the significance of a text name depends on the directory to which it is presented, and in which filing system 'privilege' is expressed by possession of directory capabilities.
The CAP project - an interim evaluation
Authors: Needham R. M.
Published: November 2005

The CAP project has included the design and construction of a computer with an unusual and very detailed structure of memory protection, and subsequently the development of an operating system which fully exploits the protection facilities. The present paper passes the work in review and draws conclusions about good and bad aspects of the system. The basic architecture of the CAP machine is described in [1] and a largely prospective description of the protection system is given in [2].

The project was started as an experiment in hardware memory protection. A computer was to be designed in which operating system development was easy, in which ruggedness was produced by a much more fine-grained network of firewalls than was (or is) usual, and in which the full range of protection facilities was available to the writers of subsystems. Simplicity of mechanism was a very important goal, although some emphasis was placed on flexibility of protection policy.
Task communication in DEMOS
Authors: Baskett Forest , Howard John H. , Montague John T.
Published: November 2005

This paper describes the fundamentals and some of the details of task communication in DEMOS, the operating system for the CRAY-1 computer being developed at the Los Alamos Scientific Laboratory. The communication mechanism is a message system with several novel features. Messages are sent from one task to another over
links
. Links are the primary protected objects in the system; they provide both message paths and optional data sharing between tasks. They can be used to represent other objects with capability-like access controls. Links point to the tasks that created them. A task that creates a link determines its contents and possibly restricts its use. A link may be passed from one task to another along with a message sent over some other link subject to the restrictions imposed by the creator of the link being passed. The link based message and data sharing system is an attractive alternative to the semaphore or monitor type of shared variable based operating system on machines with only very simple memory protection mechanisms or on machines connected together in a network.
The DEMOS file system
Authors: Powell Michael L.
Published: November 2005

This paper discusses the design of the file system for DEMOS, an operating system being developed for the CRAY-1 computer at Los Alamos Scientific Laboratory. The goals to be met, in particular the performance and usability considerations, are outlined. A description is given of the user interface and the general structure of the file system and the file system routines. A simple model of program behavior is used to demonstrate the effect of buffering data by the file system routines. A disk space allocation strategy is described which will take advantage of this buffering. The last section outlines how the performance mechanisms are integrated into the file system routines.
Measurements of sharing in Multics
Authors: Montgomery Warren A.
Published: November 2005

There are many good arguments for implementing information systems as distributed systems. These arguments depend on the extent to which interactions between machines in the distributed implementation can be minimized. Sharing among users of a computer utility is a type of interaction that may be difficult to provide in a distributed system.

This paper defines a number of parameters that can be used to characterize such sharing. This paper reports measurements that were made on the M.I.T. Multics system in order to obtain estimates of the values of these parameters for that system. These estimates are upper bounds on the amount of sharing and show that although Multics was designed to provide active sharing among its users, very little sharing actually takes place. Most of the sharing that does take place is sharing of system programs, such as the compilers and editors.
A domain structure for distributed computer systems
Authors: Casey L. , Shelness N.
Published: November 2005

The successful implementation of generalized multiple computer systems will require attention both to the form of physical architecture and to the choice and implementation of a suitable systems environment in which to construct and run applications. This paper argues for the use of a multi-computer physical architecture in preference to a multi-processor architecture, and for dynamic distribution of functions and control as opposed to static allocation of functions and hierarchical control. A systems environment which is based on a domain structure is then described. The domain structure restricts sharing of items. This alleviates the main problem in implementing a capability mechanism to support domains in a system without shared memory, which is that a central table of capabilities is required. It also makes the management of the non shared items easier since they can be required only at one computer at a time. Essential sharing is also handled without central control but at the cost of some complexity. Considerable attention is paid to the handling of interdomain jumps as they provide the opportunity for the dynamic allocation of functions. It is conjectured that the resulting system would be capable of smooth expansion in size from one to twenty five computers. In operation it would exhibit dynamic load balancing as well as having the protection advantages of domain structure.
Analysis of demand paging policies with swapped working sets
Authors: Potier Dominique
Published: November 2005

The performance improvements brought by demand paging policies with swapped working-sets depend on several factors, among which the scheduling policy, the behaviour of the programs running in the system and the secondary memory latency characteristics are the more noticeable. We present in this paper a modelling approach to quantify the effects of these factors on the performance of a system running with a swapped working-sets policy. A preliminary analysis, conducted in the virtual time of the programs, shows their influence on the paging behaviour of programs. The results of this analysis are then used within a detailed queueing network of a multiprogrammed system. Computationnaly simple expressions for the CPU time spent in user state and in supervisor state are obtained for a class of paging policies ranging from pure demand paging to demand paging with swapped working-sets. Numerical examples illustrate the analysis, and these results are compared with measurements made on a real system running with swapped working-sets policies.
On the synthesis and analysis of protection systems
Authors: Snyder Lawrence
Published: November 2005

The design of a protection system for an operating system is seen to involve satisfying the competing properties of richness and integrity. Achieving both requires the interplay of analysis and synthesis. Using a formal model from the literature, three designs are developed whose integrity (with the help of the model) can be shown.
Indeterminacy, monitors, and dataflow
Authors: Arvind  , Gostelow Kim P. , Plouffe Wil
Published: November 2005

The work described in this paper began with a desire to include some linguistic concept of a resource manager within a dataflow language we have been designing [AGP76]. In doing so, we discovered that
dataflow monitors
(resource managers) provide a natural way of thinking about resources and especially their scheduling. Dataflow semantics are based upon a program composed of asynchronous operators interconnected by lines along which data tokens (messages) flow, such that when all of the input tokens for a given operator have arrived then that operator may
fire
(execute) by absorbing the input tokens, computing, and producing an output token as its result. These operations closely match one's intuitive model of resource managers (operators) passing signals (tokens) to one another for the purpose of synchronizing and scheduling resource usage. Previously though, dataflow languages [D73, K73, W75] have dealt only with the expression of highly asynchronous yet determinate computations; however, resource management characteristically involves indeterminate computation. The introduction here of dataflow monitors and an explicit nondeterministic merge operator for dataflow streams makes dataflow very well suited for expressing interprocess communication and operations on resources.
Proving real-time properties of programs with temporal logic
Authors: Bernstein Arthur , Harter Paul K.
Published: November 2005

Wirth [Wi77] categorized programs into three classes. The most difficult type of program to understand and write is a real-time program. Much work has been done in the formal verification of sequential programs, but much remains to be done for concurrent and real-time programs. The critical nature of typical real-time applications makes the validity problem for real-time programs particularly important. Owicki and Lamport [OL80] present a relatively new method for verifying concurrent programs using temporal logic. This paper presents an extension of their work to the area of real-time programs. A model and proof system are presented and their use demonstrated using examples from the literature.
Design and verification of secure systems
Authors: Rushby J. M.
Published: November 2005

This paper reviews some of the difficulties that arise in the verification of kernelized secure systems and suggests new techniques for their resolution.

It is proposed that secure systems should be conceived as distributed systems in which security is achieved partly through the physical separation of its individual components and partly through the mediation of trusted functions performed within some of those components. The purpose of a security kernel is simply to allow such a 'distributed' system to actually run within a single processor; policy enforcement is not the concern of a security kernel.

This approach decouples verification of components which perform trusted functions from verification of the security kernel. This latter task may be accomplished by a new verification technique called 'proof of separability' which explicitly addresses the security relevant aspects of interrupt handling and other issues ignored by present methods.
Observations on the development of an operating system
Authors: Lauer Hugh C.
Published: November 2005

The development of Pilot, an operating system for a personal computer, is reviewed, including a brief history and some of the problems and lessons encountered during this development. As part of understanding how Pilot and other operating systems come about, an hypothesis is presented that systems can be classified into five kinds according to the style and direction of their development, independent of their structure. A further hypothesis is presented that systems such as Pilot, and many others in widespread use, take about five to seven years to reach maturity, independent of the quality and quantity of the talent applied to their development. The pressures, constraints, and problems of producing Pilot are discussed in the context of these hypotheses.
The Felix File Server
Authors: Fridrich M. , Older W.
Published: November 2005

This paper describes Felix - a File Server for an experimental distributed multicomputer system. Felix is designed to support a variety of file systems, virtual memory, and database applications with access being provided by a local area network. Its interface combines block oriented data access with a high degree of crash resistance and a comprehensive set of primitives for controlling data sharing and consistency. An extended set of access modes allows increased concurrency over conventional systems.
A comparison of two network-based file servers
Authors: Mitchell James G. , Dion Jeremy
Published: November 2005

This paper compares two working file servers in terms of their design goals, implementation issues, performance, and service experience. One server, the Xerox Distributed File System (XDFS) [10], was built at the Xerox Palo Alto Research Center; the other, the Cambridge File Server (CFS) [2, 3, 4], was built at the Cambridge University Computer Laboratory.

Both file servers support concurrent random access to files over a network, and each offers an atomic transaction mechanism covering modifications to files.
A reliable object-oriented data repository for a distributed computer system
Authors: Svobodova Liba
Published: November 2005

The repository described in this paper is a component of a distributed data storage system for a network of many autonomous machines that might run diverse applications. The repository is a server machine that provides very large, very reliable long-term storage for both private and shared data objects. The repository can handle both very small and very large data objects, and it supports atomic update of groups of objects that might be distributed over several repositories. Each object is represented as a history of its states; in the actual implementation, an object is a list of immutable versions.

The core of the repository is stable append-only storage called Version Storage (VS). VS contains the histories of all data objects in the repository as well as all information needed for crash recovery. To maintain the current versions of objects online, a copying scheme was adopted that resembles techniques of real-time garbage collection. VS can be implemented with optical disks.
Sequencing computation steps in a network
Authors: Herbert A. J. , Needham R. M.
Published: November 2005

It is sometimes necessary in the course of a distributed computation to arrange that a certain set of operations is carried out in the correct order and the correct number of times (typically once). If several sets of operations are performed on different machines on the network there is no obvious mechanism for enforcing such ordering constraints in a fully distributed way. This lack basically stems from the difficulty of preventing copying and repetition of messages by machines and from the impossibility of constraining externally the actions of machines in response to messages that come into their hands.

This paper presents a possible method for ensuring the integrity of sequences of operations on different machines. The technique may be thought of as a means of enabling machines to ensure that requests made of them are valid and timely, not as means of centralized control of services.
Performing remote operations efficiently on a local computer network
Authors: Spector Alfred Z.
Published: November 2005

This paper discusses communication among computers connected by a very high speed local network and focuses on ways to support distributed programs that require efficient interprocessor communication. It is motivated by the availability of increasingly high speed local networks and inefficiencies in existing communication subsystems.

Mechanisms such as remote procedure calls, monitor calls, and message passing primitives are bases for interprocessor communication at high levels (i.e., within a programming language). At lower levels, interprocessor communication occurs via the transmission of data over some communication medium. On a local network, this basic communication mechanism is the transmission of packets.

This paper is concerned with an intermediate communication layer for high speed local networks. To provide overall efficiency, this layer should provide communication primitives that (1) are a good basis on which to implement high level primitives and (2) are specialized enough to be implemented efficiently; for example, in a combination of microcode and hardware.

To analyze communication primitives for this intermediate layer, we present a communication model called the
remote reference/remote operation
model in which a taxonomy of communication primitives is defined. We illustrate the model by describing an implementation of simple communication primitives on Xerox Alto computers interconnected with a 3 megabit Ethernet.
Converting a swap-based system to do paging in an architecture lacking page-referenced bits
Authors: Babaoglu Özalp , Joy William
Published: November 2005

This paper discusses the modifications made to the UNIX operating system for the VAX-11/780 to convert it from a swap-based segmented system to a paging-based virtual memory system. Of particular interest is that the host machine architecture does not include page-referenced bits. We discuss considerations in the design of page-replacement and load-control policies for such an architecture, and outline current work in modeling the policies employed by the system. We describe our experience with the chosen algorithms based on benchmark-driven studies and production system use.
WSCLOCK—a simple and effective algorithm for virtual memory management
Authors: Carr Richard W. , Hennessy John L.
Published: November 2005

A new virtual memory management algorithm WSCLOCK has been synthesized from the local working set (WS) algorithm, the global CLOCK algorithm, and a new load control mechanism for auxiliary memory access. The new algorithm combines the most useful feature of WS—a natural and effective load control that prevents thrashing—with the simplicity and efficiency of CLOCK. Studies are presented to show that the performance of WS and WSCLOCK are equivalent, even if the savings in overhead are ignored.
A study of file sizes and functional lifetimes
Authors: Satyanarayanan M.
Published: November 2005

The performance of a file system depends strongly on the characteristics of the files stored in it. This paper discusses the collection, analysis and interpretation of data pertaining to files in the computing environment of the Computer Science Department at Carnegie-Mellon University (CMU-CSD). The information gathered from this work will be used in a variety of ways:

1. As a data point in the body of information available on file systems.

2. As input to a simulation or analytic model of a file system for a local network, being designed and imlemented at CMU-CSD [1].

3. As the basis of implementation decisions and parameters for the file system just mentioned.

4. As a step toward understanding how a user community creates, maintains and uses files.
Hierarchical Take-Grant Protection systems
Authors: Bishop Matt
Published: November 2005

The application of the Take-Grant Protection Model to hierarchical protection systems is explored. The proposed model extends the results of Wu [7] and applies the results of Bishop and Snyder [2] to obtain necessary and sufficient conditions for a hierarchical protection graph to be secure. In addition, restrictions on the take and grant rules are developed that ensure the security of all graphs generated by these restricted rules.
A distributed UNIX system based on a virtual circuit switch
Authors: Luderer G. W.R. , Che H. , Haggerty J. P. , Kirslis P. A. , Marshall W. T.
Published: November 2005

The popular UNIX
TM
operating system provides time-sharing service on a single computer. This paper reports on the design and implementation of a distributed UNIX system. The new operating system consists of two components: the S-UNIX subsystem provides a complete UNIX process environment enhanced by access to remote files; the F-UNIX subsystem is specialized to offer remote file service. A system can be configured out of many computers which operate either under the S-UNIX or the F-UNIX operating subsystem. The file servers together present the view of a single global file system. A single-service view is presented to any user terminal connected to one of the S-UNIX subsystems.

Computers communicate with each other through a high-bandwidth virtual circuit switch. Small front-end processors handle the data and control protocol for error and flow-controlled virtual circuits. Terminals may be connected directly to the computers or through the switch.

Operational since early 1980, the system has served as a vehicle to explore virtual circuit switching as the basis for distributed system design. The performance of the communication software has been a focus of our work. Performance measurement results are presented for user process level and operating system driver level data transfer rates, message exchange times, and system capacity benchmarks. The architecture offers reliability and modularly growable configurations. The communication service offered can serve as the foundation for different distributed architectures.
LOCUS a network transparent, high reliability distributed system
Authors: Popek G. , Walker B. , Chow J. , Edwards D. , Kline C. , Rudisin G. , Thiel G.
Published: November 2005

LOCUS is a distributed operating system that provides a very high degree of network transparency while at the same time supporting high performance and automatic replication of storage. By network transparency we mean that at the system call interface there is no need to mention anything network related. Knowledge of the network and code to interact with foreign sites is below this interface and is thus hidden from both users and programs under normal conditions. LOCUS is application code compatible with Unix
2
, and performance compares favorably with standard, single system Unix. LOCUS runs on a high bandwidth, low delay local network. It is designed to permit both a significant degree of local autonomy for each site in the network while still providing a network-wide, location independent name structure. Atomic file operations and extensive synchronization are supported.

Small, slow sites without local mass store can coexist in the same network with much larger and more powerful machines without larger machines being slowed down through forced interaction with slower ones. Graceful operation during network topology changes is supported.
BRUWIN
Authors: Meyrowitz Norman , Moser Margaret
Published: November 2005

With only one process viewable and operational at any moment, the standard terminal forces the user to continually switch between contexts. Yet this is unnatural and counter-intuitive to the normal working environment of a desk where the worker is able to view and base subsequent actions on multiple pieces of information.

The window manager is an emerging computing paradigm which allows the user to create multiple terminals on the same viewing surface and to display and act upon these simultaneous processes without loss of context. Though several research efforts in the past decade have introduced window managers, they have been based on the design or major overhaul of a language or operating system; the window manager becomes a focus of—rather than a tool of—the system. While many of the existing implementations provide wide functionality, most implementations and their associated designs are not readily available for common use; extensibility is minimal.

This paper describes the design and implementation of BRUWIN, the BRown University WINdow manager, stressing how such a design can be adapted to a variety of computer systems and output devices, ranging from alphanumeric terminals to high-resolution raster graphics displays. The paper first gives a brief overview of the general window manager paradigm and existing examples. Next we present an explanation of the user-level functions we have chosen to include in our general design. We then describe the structure and design of a window manager, outlining the five important parts in detail. Finally, we describe our current implementation and provide a sample session to highlight important features.
An analysis of the performance of the page fault frequency (PFF) replacement algorithm.
Authors: Sadeh E.
Published: November 2005

Most of the replacement algorithms devised and implemented largely depend on program behavior, in other words, to optimally select the parameters of these algorithms program behavior or at least a probability model of it should be known. The page fault frequency (PFF) algorithm adapts to dynamic changes in program behavior during execution. Therefore its performance is expected to be less dependent on prior knowledge of the program behavior during execution. Therefore its performance is expected to be less dependent on prior knowledge of the program behavior and input data.

The PFF algorithm uses the measured page fault frequency (by actually monitoring the inter-page fault interval) as the basic parameter for memory allocation decision process.

In order to analyze the performance of the PFF algorithm, a mathematical model was developed. The resultant random process is the memory space allocation for a program as a function of the processor time (virtual time). This random process can be analyzed using the method of imbedded Markov chains. The parameter obtained from this analysis are the distributions of the memory allocation during processing interval and during page waiting intervals, the average page fault rate and the expected space time product accumulated by the program.

The input parameters for the model were obtained from address traces of two programs. The results of the model were validated by simulation.
Engineering a security kernel for Multics
Authors: Schroeder Michael D.
Published: November 2005

This paper describes a research project to engineer a security kernel for Multics, a general-purpose, remotely accessed, multiuser computer system. The goals are to identify the minimum mechanism that must be correct to guarantee computer enforcement of desired constraints on information access, to simplify the structure of that minimum mechanism to make verification of correctness by auditing possible, and to demonstrate by test implementation that the security kernel so developed is capable of supporting the functionality of Multics completely and efficiently. The paper presents the overall viewpoint and plan for the project and discusses initial strategies being employed to define and structure the security kernel.