3871712
CPU reservations and time constraints: efficient, predictable scheduling of independent activities
Workstations and personal computers are increasingly being used for applications with real-time characteristics such as speech understanding and synthesis, media computations and I/O, and animation, often concurrently executed with traditional non-real-time workloads. This paper presents a system that can schedule multiple independent activities so that: . activities can obtain minimum guaranteed execution rates with application-specified reservation granularities via CPU Reservations, CPU Reservations, which are of the form reserve X units of time out of every Y units, provide not just an average case execution rate of X/Y over long periods of time, but the stronger guarantee that from any instant of time, by Y time units later, the activity will have executed for at least X time units, . applications can use Time Constraints to schedule tasks by deadlines, with on-time completion guaranteed for tasks with accepted constraints, and . both CPU Reservations and Time Constraints are implemented very efficiently. In particular, . CPU scheduling overhead is bounded by a constant and is not a function of the number of schedulable tasks. Other key scheduler properties are: . activities cannot violate other activities' guarantees, . time constraints and CPU reservations may be used together, separately, or not at all (which gives a round-robin schedule), with well-defined interactions between all combinations, and . spare CPU time is fairly shared among all activities. The Rialto operating system, developed at Microsoft Research, achieves these goals by using a precomputed schedule, which is the fundamental basis of this work.
9636203
Two case studies in predictable application scheduling using Rialto/NT
This paper analyzes the results of two case studies in applying the Rialto/NT scheduler to real Windows 2000 applications. The first study is of a soft modem-a modem whose signal processing work is performed on the host CPU, rather than on a dedicated signal processing chip. The second is of an audio player application. Both of these are frequently used real-time applications-ones running on systems that were not designed to support predictable real-time execution. To function correctly, both applications require that ongoing computations be performed in a timely manner. In both cases, we first measured an original version designed to run on Windows 2000, and then modified the application to take advantage of ongoing CPU reservations provided by the Rialto/NT scheduler. We report on the benefits and problems observed when using reservations in these real-world scenarios. In both cases, we found that a real-time scheduler can provide the needed predictability for the application in the presence of competing applications, while also providing other benefits, such as minimizing the soft modem's impact on the scheduling predictability of other computations in the system. We also describe the methodologies we used to analyze the real-time behavior of the operating system and applications during these studies, including the use of instrumented kernels to produce execution traces.
39305576
Adaptive real-time resource management supporting composition of independently authored time-critical services
This paper describes ongoing investigations at Microsoft Research into algorithms for adaptive real-time scheduling and resource management. We are implementing a system which will allow sets of independently authored real-time applications to be scheduled, providing both initial resource negotiation and dynamic feedback to applications about their resource consumption. Instead of relying on human beings to pre-compute scheduling and resource requirements, applications will be able to dynamically adapt their run-time behavior to the resources available. Under overload conditions, user preferences and policies will be applied in order to bring the total resource requirements within available resources. This will permit chosen applications to continue executing perfectly even while others execute with dynamically renegotiated resource grants or are gracefully shut down, as per user preferences. We believe that this approach will lead to real-time scheduling and resource management algorithms which are appropriate for workstation and home multi-media environments.<<ETX>>
15786317
Bringing the C Libraries With Us into a Multi-Threaded Future
Textile materials such as fiber and cloth can be dyed more satisfactorily with sulfur dyes or sulfurized vat dyes by allowing an organic mercapto compound and/or an organic sulfur compound capable of generating mercapto groups under dyeing conditions to be present in dye baths. Still more improved dyeing results may be obtained by allowing a sulfite salt compound to be further present in such dye baths.
9095312
Overlook: scalable name service on an overlay network
This paper indicates that a scalable fault-tolerant name service can be provided utilizing an overlay network and that such a name service can scale along a number of dimensions: it can be sized to support a large number of clients, it can allow large numbers of concurrent lookups on the same name or sets of names, and it can provide name lookup latencies measured in seconds. Furthermore, it can enable updates to be made pervasively visible in times typically measured in seconds for update rates of up to hundreds per second. We explain how many of these scaling properties for the name service are obtained by reusing some of the same mechanisms that allowed the underlying overlay network to scale. Finally, we observe that the overlay network is sensitive to bandwidth and CPU limitations.
6816342
SkipNet: A Scalable Overlay Network with Practical Locality Properties
Scalable overlay networks such as Chord, CAN, Pastry, and Tapestry have recently emerged as flexible infrastructure for building large peer-to-peer systems. In practice, such systems have two disadvantages: They provide no control over where data is stored and no guarantee that routing paths remain within an administrative domain whenever possible. SkipNet is a scalable overlay network that provides controlled data placement and guaranteed routing locality by organizing data primarily by string names. SkipNet allows for both fine-grained and coarse-grained control over data placement: Content can be placed either on a pre-determined node or distributed uniformly across the nodes of a hierarchical naming sub-tree. An additional useful consequence of SkipNet's locality properties is that partition failures, in which an entire organization disconnects from the rest of the system, can result in two disjoint, but well-connected overlay networks.
7232664
Designing in the dark: the changing user-developer relationship in information systems development
Although user involvement can be problematic for all types of information systems development, the situation has become even more difficult with the recent spread of information technology to senior organizational levels. Better theoretical conceptualization of the dynamic relationship between developers and users in systems development is needed to understand how this relationship shapes, and is shaped by, various constraints. Drawing on Giddens’ work on constraints on human action and interaction, a theoretical conceptualization of the dynamic relationship between developers and executive users is proposed. This is grounded in empirical studies of the executive information systems development process in two organizations. The paper seeks to illustrate the “enabling” properties of the constraints and their ongoing production and reproduction. Such constraints may vary in their malleability and some appear to be relatively resistant to change by developers. Nevertheless, through improvisation and ingenuity, developers can often find ways to overcome them.
3325969
Improving web search on small screen devices
Abstract Small handheld devices—mobile phones, Pocket PCs etc.—are increasingly being used to access the web. Search engines are the most used web services and are an important factor of user support. Search engine providers have begun to offer their services on the small screen. This paper presents a detailed evaluation of the how easy to use such services are in these new contexts. An experiment was carried out to compare users' abilities to complete search tasks using a mobile phone-sized, handheld computer-sized and conventional, desktop interface to the full Google™ index. With all three interfaces, when users succeed in completing a task, they do so quickly (within 2–3 min) and using few interactions with the search engine. When they fail, though, they fail badly. The paper examines the causes of failures in small screen searching and proposes guidelines for improving these interfaces. In addition, we present and discuss novel interaction schemes that put these guidelines into practice.
38777515
Mobile interaction design tutorial
The tutorial explores interesting and empowering mobile design philosophies, principles and methods as well as giving specific guidance on key emerging consumer application areas such as image browsing and information access.
13870178
Simplifying and improving qualified types
Qualified types provide a general framework for constrained type systems, with applications including type class overloading, subtyping and record calculi. This paper presents an extended version of the type inference algorithm used in previous work, that can take account of the satisfiability of constraints to obtain more accurate principal types. The new algorithm is obtained by adding two new rules, one for simplification and one for improvement of constraint sets. In particular, it permits a better treatment for the previously troublesome multiple parameter extensions of Haskell type classes. For example, a form of parametric type classes, proposed by Chen, Hudak and Odersky, can be viewed as a special case of this work.
1424753
Monad transformers and modular interpreters
We show how a set of building blocks can be used to construct programming language interpreters, and present implementations of such building blocks capable of supporting many commonly known features, including simple expressions, three different function call mechanisms (call-by-name, call-by-value and lazy evaluation), references and assignment, nondeterminism, first-class continuations, and program tracing.
The underlying mechanism of our system is monad transformers, a simple form of abstraction for introducing a wide range of computational behaviors, such as state, I/O, continuations, and exceptions.
Our work is significant in the following respects. First, we have succeeded in designing a fully modular interpreter based on monad transformers that incudes features missing from Steele's, Espinosa's, and Wadler's earlier efforts. Second, we have found new ways to lift monad operations through monad transformers, in particular difficult cases not achieved in Moggi's original work. Third, we have demonstrated that interactions between features are reflected in liftings and that semantics can be changed by reordering monad transformers. Finally, we have implemented our interpreter in Gofer, whose constructor classes provide just the added power over Haskell's type classes to allow precise and convenient expression of our ideas. This implementation includes a method for constructing extensible unions and a form of subtyping that is interesting in its own right.