首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
针对嵌入式应用领域对操作系统在重构、扩展、移植、交互、安全、高效等方面日趋苛刻的现实需求及Forth系统所固有的特性,采用Forth虚拟机技术,对基于Forth虚拟机架构的嵌入式操作系统关键技术进行探索,提出一种具有良好扩展和移植特性、高效精简的基于Forth虚拟机架构的嵌入式多任务操作系统调度算法。该算法采用了以Forth虚拟机指令同步的协同式多任务调度机制,缩短了任务切换时间,将上下文切换操作简化为只需保存数据堆栈指针。实验结果表明,基于Forth虚拟机架构的多任务调度算法发挥了Forth系统所固有的特性,针对特定应用,提高了效率,适合资源有限的嵌入式环境。  相似文献   

2.
针对堆栈处理器特殊架构,为提高实时性,引入多任务堆栈技术,采用Forth自生成器技术,提出一种基于堆栈处理器的抢占式与时间片轮转调度方法,实现了在Forth堆栈处理器中实时多任务的运行,弥补了Forth堆栈处理器在实时多任务操作系统方面的的不足.实验表明,与当前基于寄存器处理器的嵌入式Forth实时系统相比,本文方法在最大关中断时间、任务上下文切换时间和任务响应时间三项重要的实时任务性能指标方面,实时性能有明显提升,从而保证了Forth系统应用的高效性和安全性,满足人们对Forth堆栈处理器实时多任务操作系统方面的应用需求.  相似文献   

3.
For each basic language operation we define its “unique” counterpart as being the operation that results in a language whose words can be obtained uniquely through the given operation. These unique operations can arguably be viewed as combined basic operations, placing this work in the popular area of state complexity of combined operations on regular languages. We study the state complexity of unique rational operations and we provide upper bounds and empirical results meant to cast light into this matter. Equally important, we hope to have provided a generic methodology for estimating their state complexity.  相似文献   

4.
We present the design and implementation of Arachne, a threads system that can be interfaced with a communications library for multithreaded distributed computations. In particular, Arachne supports thread migration between heterogeneous platforms, dynamic stack size management, and recursive thread functions. Arachne is efficient, flexible, and portable-it is based entirely on C and C++. To facilitate heterogeneous thread operations, we have added three keywords to the C++ language. The Arachne preprocessor takes as input code written in that language and outputs C++ code suitable for compilation with a conventional C++ compiler. The Arachne runtime system manages all threads during program execution. We present some performance measurements on the costs of basic thread operations and thread migration in Arachne and compare these to costs in other threads systems  相似文献   

5.
An instruction set is given for an abstract machine which uses a pushdown stack as its principal memory. The proposed instructions serve the similar purposes of (1) defining the dynamic semantics of programming languages by describing the operations of programs on the abstract machine and (2) describing an intermediate language to be used in compiling programming languages into machine language. It is shown how the intermediate language can be used in the translation of the programming languages ADA, FORTRAN and PASCAL into IBM 360 assembly language and advantages over other intermediate languages such as three-address code and P-code.  相似文献   

6.
汇编语言是一种面向计算机硬件的符号化的机器语言,通过对汇编语言的学习可以加深对计算机内部原理的理解。文章借助汇编语言详细分析了高级语言中计算机实现函数调用的一些技术细节,包括调用过程中计算机做了哪些具体动作。实践表明,借助汇编语言有助于理解函数调用和堆栈的关系以及函数调用的内在机理,进而加深对一些相关算法和高级语言的理解。  相似文献   

7.
《Parallel Computing》1987,4(2):215-219
We present a pipeline-interval-optimum systolic implementation of stack which can handle usual stack operations at every cycle.  相似文献   

8.
It is fairly easy to use a language like ALGOL W1 for event- or activity-oriented simulation. A method is described to use such a language for process-oriented simulation. The illusion of co-routines necessary in this type of simulation is maintained by low-level language procedures which alter the run-time stack. Two new scheduling procedures are also described.  相似文献   

9.
Trace-based derivation of a scalable lock-free stack algorithm   总被引:1,自引:1,他引:0  
We show how a sophisticated, lock-free concurrent stack implementation can be derived from an abstract specification in a series of verifiable steps. The algorithm is based on the scalable stack algorithm of Hendler et al. (Proceedings of the sixteenth annual ACM symposium on parallel algorithms, 27–30 June 2004, Barcelona, Spain, pp 206–215), which allows push and pop operations to be paired off and eliminated without affecting the central stack, thus reducing contention on the stack, and allowing multiple pairs of push and pop operations to be performed in parallel. Our algorithm uses a simpler data structure than Hendler, Shavit and Yerushalmi’s, and avoids an ABA problem. We first derive a simple lock-free stack algorithm using a linked-list implementation, and discuss issues related to memory management and the ABA problem. We then add an abstract model of the elimination process, from which we derive our elimination algorithm. This allows the basic algorithmic ideas to be separated from implementation details, and provides a basis for explaining and comparing different variants of the algorithm. We show that the elimination stack algorithm is linearisable by showing that any execution of the implementation can be transformed into an equivalent execution of an abstract model of a linearisable stack. Each step in the derivation is either a data refinement which preserves the level of atomicity, an operational refinement which may alter the level of atomicity, or a refactoring step which alters the structure of the system resulting from the preceding derivation. We verify our refinements using an extension of Lipton’s reduction method, allowing concurrent and non-concurrent aspects to be considered separately.  相似文献   

10.
W. Pauli  M. L. Soffa 《Software》1980,10(3):189-204
Algorithms using retentive control are currently being developed in operating systems, simulation, artificial intelligence and language implementation. This paper investigates two aspects of a form of retentive control, namely coroutines. The behaviour of coroutines and language primitives that express the operations on coroutines are explored by surveying the literature for coroutine usage. Secondly, the area of control implementation of coroutines is investigated by considering the Bobrow and Wegbreit spaghetti stack as a viable data structure for managing run-time storage. Changes in the basic model of the spaghetti stack, tailoring its use in a strictly coroutine environment with subsequent implementation alternatives, are explored. An investigation through experimentation is made of the effect control-related aspects of coroutines have on the revised spaghetti stack models. An analysis of the empirical results obtained provides a useful barometer for selecting appropriate storage management schemes based on coroutine design and usage.  相似文献   

11.
针对目前嵌入式Forth操作系统中缺乏实时调度机制的问题,对基于Forth虚拟机架构的嵌入式操作系统中多任务调度的关键技术进行了研究。采用Forth虚拟机技术,新定义了一种中断任务类型来处理实时突发事件,并给出了一种新的任务调度算法来调度 Forth系统中终端任务、后台任务以及中断任务顺利运行。实验结果表明,改进后的 Forth 系统能够通过实时调度处理突发事件,并且实时响应度高,尤其适用于对实时性有要求的嵌入式环境中,以满足日趋复杂的嵌入式环境对高效操作系统和 Forth 技术的应用需求。  相似文献   

12.
将结合量值和内存的模型,对堆与栈结构与特点做出比较分析,希望对于高级编程语言(如Java,C,C++等)的学习与内存模型的理解提供一定的帮助。  相似文献   

13.
This paper describes theoretical and practical aspects of a partial evaluator that treats a parallel lambda language.The parallel language presented is a combination of lambda calculus and message passing communication mechanism.This parallel language can be used to write a programming language‘s denotational semantics which extracts the paallelism in the program.From this denotational definition of the programming language,the partial evaluator can generate parallel compiler of the language by self-application. The key technique of partial evaluation is binding time analysis that determines in advance which parts of the source program can be evaluated during partial evaluation,and which parts cannot,A binding time analysis is described based upon type inference.A new type chcode in introduced into the type system,which denotes the type of those expressions containing residual channel operations.A well-formedness criterion is given which ensures that partial evaluation not only doesn‘t commit type errors but also doesn‘t change the sequence of channel operations.Before binding time analysis,channel analysis is used to analyze the communication relationship between send and receive processes.  相似文献   

14.
Recent work by Siegelmann has shown that the computational power of recurrent neural networks matches that of Turing Machines. One important implication is that complex language classes (infinite languages with embedded clauses) can be represented in neural networks. Proofs are based on a fractal encoding of states to simulate the memory and operations of stacks.In the present work, it is shown that similar stack-like dynamics can be learned in recurrent neural networks from simple sequence prediction tasks. Two main types of network solutions are found and described qualitatively as dynamical systems: damped oscillation and entangled spiraling around fixed points. The potential and limitations of each solution type are established in terms of generalization on two different context-free languages. Both solution types constitute novel stack implementations—generally in line with Siegelmann's theoretical work—which supply insights into how embedded structures of languages can be handled in analog hardware.  相似文献   

15.
This article builds on a tutorial introduction to universal algebra for language theory (Courcelle, Theoret. Comput. Sci. 163 (1996) 1–54) and extends it in two directions. First, nondeterministic operations are considered, i.e., operations which give a set of results instead of a single one. Most of their properties concerning recognizability and equational definability carry over from the ordinary case with minor modifications. Second, inductive sets of evaluations are studied in greater detail. It seems that they are handled most naturally in the framework presented here. We consider the analogues of top-down and bottom-up tree transducers. Again, most of their closure properties are maintained. We relate them to the logical theory of finite relational structures and hypergraphs. Our central theorem says that every transduction which is definable in counting monadic second-order logic is a bottom-up transduction on term representations. Finally, several examples indicate that one cannot hope for decidable logical theories in the presence of unbounded nondeterminism.  相似文献   

16.
Asynchronous method calls have been proposed to better integrate object orientation with distribution. In the language, asynchronous method calls are combined with so-called processor release points in order to allow concurrent objects to adapt local scheduling to network delays in a very flexible way. However, asynchronous method calls complicate the type analysis by decoupling input and output information for method calls, which can be tracked by a type and effect system. Interestingly, backwards type analysis simplifies the effect system considerably and allows analysis in a single pass. This paper presents a kernel language with asynchronous method calls and processor release points, a novel mechanism for local memory deallocation related to asynchronous method calls, an operational semantics in rewriting logic for the language, and a type and effect system for backwards analysis. Source code is translated into runtime code as an effect of the type analysis, automatically inserting inferred type information in method invocations and operations for local memory deallocation in the process. We establish a subject reduction property, showing in particular that method lookup errors do not occur at runtime and that the inserted deallocation operations are safe.  相似文献   

17.
Networked computers are finding their way into a broader range of environments, from corporate offices to schools, homes, and shirt pockets. This new computing model fosters the development of distributed software components that communicate with one another across the underlying networked infrastructure. A distributed software component can be plugged into distributed applications that may not have existed when it was created. The intention is that many developers will reuse distributed software components to build new systems. An interface definition language usually is used to describe a distributed software component's interface. However, a notable limitation of current IDLs is that they generally only describe the names and type signatures of the component's attributes and operations. Current IDLs don't formally specify the behavior of the software component's operations. To help solve these problems, the authors have developed Biscotti (behavioral specification of distributed software component interfaces), a Java extension that enhances Java remote method invocation interfaces with Eiffel-style preconditions, postconditions, and invariants  相似文献   

18.
In this paper, we explore the problem of creating emph{vulnerability signatures}. A vulnerability signature is based on a program vulnerability, and is not specific to any particular exploit. The advantage of vulnerability signatures is that their quality can be guaranteed. In particular, we create vulnerability signatures which are guaranteed to have zero false positives. We show how to automate signature creation for any vulnerability that can be detected by a runtime monitor. We provide a formal definition of a vulnerability signature, and investigate the computational complexity of creating and matching vulnerability signatures. We systematically explore the design space of vulnerability signatures. We also provide specific techniques for creating vulnerability signatures in a variety of language classes. In order to demonstrate our techniques, we have built a prototype system. Our experiments show that we can, using a single exploit, automatically generate a vulnerability signature as a regular expression, as a small program, or as a system of constraints. We demonstrate techniques for creating signatures of vulnerabilities which can be exploited via multiple program paths. Our results indicate that our approach is a viable option for signature generation, especially when guarantees are desired.  相似文献   

19.
We consider the space complexity of stack languages. The main result is: if a language is accepted by a deterministic (nondeterministic) one-way stack automaton then it is the image under a nonerasing homomorphism of a language accepted by a deterministic (nondeterministic) Turing machine that operates within space log n.  相似文献   

20.
A language to support the incremental design of the conceptual schemata of data bases is presented. Abstractions are expressed in terms of high-evel constructs and operations on these abstractions allow the definition of other abstractions. Both abstractions and operations on them are totally independent from the underlying internal representation of the schema, which is created consistently by applying the operators of the language. In addition, the language offers a. number of support facilities for type checking of relationships and graphical displays of the conceptual schemata for easier understanding.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号