CN100336019C - Operating system based on server / execution stream model - Google Patents
Operating system based on server / execution stream model Download PDFInfo
- Publication number
- CN100336019C CN100336019C CNB2004100809949A CN200410080994A CN100336019C CN 100336019 C CN100336019 C CN 100336019C CN B2004100809949 A CNB2004100809949 A CN B2004100809949A CN 200410080994 A CN200410080994 A CN 200410080994A CN 100336019 C CN100336019 C CN 100336019C
- Authority
- CN
- China
- Prior art keywords
- service
- communication
- message
- address space
- service body
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
Description
技术领域technical field
本发明涉及用于计算机系统中的基础软件,特别涉及一种基于服务体/执行流模型的操作系统。The invention relates to basic software used in computer systems, in particular to an operating system based on a service body/execution flow model.
背景技术Background technique
目前操作系统均采用进程/线程模型,如图1所示,其一个线程对应一个虚拟CPU,从而对用户隐藏了物理CPU的相关信息,提供了一个清晰的编程模型,当系统增加物理CPU的个数时可以得到较好的加速比。但是,由于进程/线程模型将数据的存储和对数据的计算紧密耦合在一起,而且采用了虚拟CPU的概念,从而导致了如下主要的缺点:At present, the operating system adopts the process/thread model. As shown in Figure 1, one thread corresponds to one virtual CPU, thus hiding the relevant information of the physical CPU from the user and providing a clear programming model. A better speedup ratio can be obtained when counting. However, because the process/thread model tightly couples data storage and data calculation, and adopts the concept of virtual CPU, it leads to the following main disadvantages:
(1)线程之间的通信是异步的,不可避免的会带来信息处理的延时或丢失,延时的不确定性又限制了系统的实时性。当发生事件的重入时,由于通信是异步的,线程无法感知该事件被再次激活,从而会造成事件的丢失或延迟。在现有操作系统的进程/线程模型下很难有效的解决这个问题。(1) The communication between threads is asynchronous, which will inevitably lead to delay or loss of information processing, and the uncertainty of delay limits the real-time performance of the system. When the event reentrance occurs, because the communication is asynchronous, the thread cannot perceive that the event is activated again, which will cause the loss or delay of the event. It is difficult to effectively solve this problem under the process/thread model of the existing operating system.
(2)线程/进程抽象忽略了线程之间大量的同步关系,一律采用异步方式,通过共享内存的方法来运行逻辑上的同步,其结果是给系统造成大量不必要的睡眠、唤醒以及调度等复杂的操作,增加了运行开销,降低了系统的效率,还使得分布式系统中的进程的迁移成为难以解决的问题。(2) The thread/process abstraction ignores a large number of synchronization relationships between threads, and all use asynchronous methods to run logical synchronization through shared memory. The result is a lot of unnecessary sleep, wake-up, and scheduling for the system. Complicated operations increase operating overhead, reduce system efficiency, and make process migration in a distributed system a difficult problem to solve.
(3)进程/线程模型屏蔽了物理CPU的相关信息,不利于编写高效的程序,特别是对于多处理器系统,用户编程时不知道系统中真实处理器的数量,从而丧失了对线程调度的参与机会,线程调度只能靠调度器采用预测方法决定,而预测方法使系统更复杂而很难得到预期的效率。(3) The process/thread model shields the relevant information of the physical CPU, which is not conducive to writing efficient programs, especially for multi-processor systems, users do not know the number of real processors in the system when programming, thus losing the ability to schedule threads Participation opportunities and thread scheduling can only be determined by the scheduler using predictive methods, and predictive methods make the system more complicated and it is difficult to obtain the expected efficiency.
基于进程/线程模型构造操作系统的具体方法可分为单一大内核和微内核两种构造方法。The specific methods of constructing the operating system based on the process/thread model can be divided into two construction methods: a single large kernel and a microkernel.
如图2所示,单一大内核结构的操作系统在内核部分通过函数调用表达执行流,而在内核之外用户程序使用的则仍是进程/线程模型,单内核强调的是引导物理CPU执行内核代码,并通过简单的函数调用而不是通过进程/线程间通信使执行流在模块间流动。As shown in Figure 2, the operating system with a single large kernel structure expresses the execution flow through function calls in the kernel part, while the user program outside the kernel still uses the process/thread model. The single kernel emphasizes guiding the physical CPU to execute the kernel code and have execution flow flow between modules through simple function calls rather than through inter-process/thread communication.
单一大内核操作系统的显著优点是高效率,因此被广泛使用,但其缺点也日益显露出来,主要表现在:The significant advantage of a single large-core operating system is high efficiency, so it is widely used, but its shortcomings are increasingly revealed, mainly in:
(1)由于系统模块间高度耦合,而且进程间缺乏有效的交互手段,所以功能的扩充只能通过在内核中增加相应的模块实现,这就要求系统开发人员深入掌握内核的数据结构和算法,而这是普通用户很难做到的,因此这种操作系统的可扩展性很差。(1) Due to the high coupling between system modules and the lack of effective means of interaction between processes, the expansion of functions can only be realized by adding corresponding modules in the kernel, which requires system developers to have a deep understanding of the data structure and algorithms of the kernel, And this is difficult for ordinary users to do, so the scalability of this operating system is very poor.
(2)所有内核模块都运行在核心态,都处于同一个内核空间,各部分缺乏保护,因此,内核模块中的错误可以导致整个系统崩溃,难以保证系统的高可靠性,而且,难以实现内核的升级。(2) All kernel modules run in the core state, all in the same kernel space, and each part lacks protection. Therefore, errors in kernel modules can cause the entire system to crash, and it is difficult to ensure high reliability of the system. Moreover, it is difficult to implement kernel upgrade.
(3)由于内核模块之间不具备隔离性,因此一个模块所造成的错误很有可能以一种不易察觉的方式传播给其他模块,这种错误可能在发生后经过相当长的时间以多种形式反映出来,错误的排查、定位十分困难,因此,系统的健壮性较差。(3) Since there is no isolation between kernel modules, errors caused by one module are likely to be propagated to other modules in an imperceptible way, and such errors may occur in various forms after a considerable period of time. Reflected in the form, it is very difficult to troubleshoot and locate errors, so the robustness of the system is poor.
(4)由于所有的模块通过连接器相互连接,所以当一方的参数、语义发生变化时往往要影响系统的很多部分都要进行相应的改变,否则就容易造成难以排查的错误,构造一个系统只有约定了版本号的组件才可能一起正常的协作,这给内核组件的归档、维护、发布、移植等都带来很大的困难,因此,系统的可维护性较差。(4) Since all modules are connected to each other through connectors, when the parameters and semantics of one party change, many parts of the system will often be affected and corresponding changes must be made, otherwise it will easily cause errors that are difficult to troubleshoot. To construct a system, only Only components with agreed version numbers can work together normally, which brings great difficulties to the archiving, maintenance, release, and transplantation of kernel components. Therefore, the maintainability of the system is poor.
(5)由于内核各部分的通信是基于函数调用的方式,在实现分布式处理上难以将一个模块提供的服务透明的传播给其他的处理机,因此,系统难以有效的支持分布式服务。(5) Since the communication of each part of the kernel is based on function calls, it is difficult to transparently propagate the services provided by a module to other processors in realizing distributed processing. Therefore, it is difficult for the system to effectively support distributed services.
如图3所示,微内核模型是卡耐基梅隆大学针对单内核结构的上述缺点,尤其是在支持分布式计算等方面遇到的困难提出的,与单内核模型相比,微内核模型在结构上也有一个为系统内所有进程所共享的内核,所不同的是几乎所有的系统服务都从内核中移出,由内核外的用户级进程实现。As shown in Figure 3, the microkernel model was proposed by Carnegie Mellon University in response to the above-mentioned shortcomings of the single-kernel structure, especially the difficulties encountered in supporting distributed computing. There is also a kernel shared by all processes in the system. The difference is that almost all system services are removed from the kernel and implemented by user-level processes outside the kernel.
微内核结构在可扩展性、可维护性等方面具有明显的优越性,并可通过位置无关的进程间通信机制将服务透明扩展到分布环境中。其缺点是,由于引发了频繁的进程间通信导致了运行的低效率,尽管采用诸如Hand-off调度、高速IPC、调用门等技术可以在一定程度上提高效率,但这些技术都因破坏了执行流、进程/线程间的层次关系,又无法摆脱进程/线程模型的约束,无法实现所期望的目的。The microkernel structure has obvious advantages in terms of scalability and maintainability, and can transparently extend services to distributed environments through a location-independent inter-process communication mechanism. Its disadvantage is that the low efficiency of operation is caused by frequent inter-process communication. Although technologies such as Hand-off scheduling, high-speed IPC, and call gates can improve efficiency to a certain extent, these technologies are all due to damage to execution. The hierarchical relationship between streams and processes/threads cannot get rid of the constraints of the process/thread model, and cannot achieve the desired purpose.
学术界已经认识到了进程/线程模型的内在缺陷,为克服或弥补该缺陷所做的主要研究工作已有:The academic community has recognized the inherent flaws of the process/thread model, and major research efforts to overcome or compensate for this flaw have been:
(1)CMU的mach研究组提出了续体(Continuations)的概念,以减少线程切换和堆栈的开销,并采用优化IPC以加快消息的传递。在一定程度上将进程间通信同步化,减少了通信开销。但续体只能用在内核中,而且只能在某些特殊的环境下才能实现优化,也无法满足分布式计算的性能需求。(1) The mach research group of CMU proposed the concept of Continuations to reduce the overhead of thread switching and stacks, and optimized IPC to speed up message delivery. To a certain extent, the inter-process communication is synchronized, which reduces the communication overhead. But continuations can only be used in the kernel, and can only be optimized in some special environments, and cannot meet the performance requirements of distributed computing.
(2)主动消息(Active Message)的提出旨在降低大型并行机中的通信开销。其方法是将通信过程和计算过程连接起来,以避免线程调度所带来的延迟、数据的缓存和拷贝。但这种方法受到如下限制:1)处理例程在运行的过程中不能阻塞;2)可能引起死锁;3)处理例程的运行时间不能过长,否则可能阻塞其他网络上发来的消息。(2) The proposal of Active Message aims to reduce the communication overhead in large parallel machines. The method is to connect the communication process and the calculation process to avoid the delay caused by thread scheduling, data caching and copying. But this method is subject to the following limitations: 1) the processing routine cannot be blocked during operation; 2) it may cause deadlock; 3) the running time of the processing routine cannot be too long, otherwise it may block messages sent from other networks .
(3)跨地址空间调用已发展为微内核模型下的过程式IPC。其基本原理是:通过由服务进程提供调用点,客户程序可直接进入服务进程,从而可有效地降低线程模型所带来的系统开销。但为了维护线程模型不被破坏,必须付出的额外代价是:1)线程/进程的从属关系必须随着进出调用点而改变,以免破坏原有线程模型的语义。2)跨地址空间的同步调用只能通过上层协议的异步功能实现。这些代价不但给程序员带来困难,也不利于错误处理。(3) Calling across address spaces has developed into a procedural IPC under the microkernel model. The basic principle is: through the service process providing the calling point, the client program can directly enter the service process, which can effectively reduce the system overhead brought by the thread model. However, in order to maintain the thread model from being destroyed, the additional price that must be paid is: 1) The affiliation of the thread/process must change with the entry and exit of the call point, so as not to destroy the semantics of the original thread model. 2) The synchronous call across the address space can only be realized through the asynchronous function of the upper layer protocol. These costs are not only difficult for programmers, but also bad for error handling.
(4)澳大利亚Adelaide大学和悉尼大学联合提出的Container/Loci概念取代了传统的线程概念,以Container为唯一代表数据存储的抽象、以Loci为执行的抽象。Container/Loci模型已抛弃了进程/线程模型中的很多内容,实现了存储和计算的分离,但他们仍停留在永久存储和单地址空间的研究上,而使用虚拟性的Loci,显然仍会影响系统效率。(4) The Container/Loci concept jointly proposed by the University of Adelaide in Australia and the University of Sydney replaces the traditional thread concept, with Container as the only abstraction representing data storage and Loci as the abstraction of execution. The Container/Loci model has abandoned a lot of content in the process/thread model and realized the separation of storage and computing, but they still stay in the research of permanent storage and single address space, and the use of virtual Loci will obviously still affect system efficiency.
发明内容Contents of the invention
本发明的目的在于,提出一种更合理的新型操作系统,以克服当前操作系统发展遇到的障碍,解决其依赖的构造模型——进程/线程模型的内在缺陷所导致的系统在效率、实时性、结构灵活性等方面的限制。The purpose of the present invention is to propose a more reasonable new operating system, to overcome the obstacles encountered in the development of the current operating system, and to solve the problems caused by the internal defects of the structural model it relies on - the process/thread model. performance, structural flexibility, etc.
本发明的基于服务体/执行流模型的操作系统,采用服务体/执行流结构,该结构由服务体和执行流两类机制构成;所述操作系统由一组服务体组成,每个服务体均具有自己的服务体地址空间,服务体之间采用消息推动通信;所述执行流是物理CPU沿着指令计数器指示的指令执行顺序执行指令而形成的轨迹,该执行流是连续的;The operating system based on the service body/execution flow model of the present invention adopts a service body/execution flow structure, which is composed of two types of mechanisms: service body and execution flow; the operating system is composed of a group of service bodies, and each service body Each has its own server address space, and messages are used between servers to promote communication; the execution flow is a trajectory formed by the physical CPU executing instructions in the instruction execution sequence indicated by the instruction counter, and the execution flow is continuous;
所述服务体按照相同规范构造,包括功能代码、数据集合、服务体地址空间、若干端口以及端口所包含的若干小端口,所述代码和数据保存在服务体地址空间中,用于实现操作系统相应功能组件,执行流通过小端口进入服务体;系统中其他系统软件和用户程序也以服务体形式加载到操作系统上;The service body is structured according to the same specification, including function code, data collection, service body address space, several ports and several small ports contained in the port, and the code and data are stored in the service body address space for implementing the operating system Corresponding functional components, the execution flow enters the service body through the small port; other system software and user programs in the system are also loaded into the operating system in the form of the service body;
所述服务体的端口和小端口均采用统一的规范设计,以便于支持系统中各服务体之间的通信;The ports and portlets of the service body adopt a unified specification design, so as to facilitate the communication between the various service bodies in the support system;
所述系统服务体中设置一个核心服务体,用于提供执行流引导、服务体与执行流管理、消息推动通信、中断与异常管理以及并发控制基础服务。A core service body is set in the system service body, which is used to provide execution flow guidance, service body and execution flow management, message push communication, interruption and exception management, and concurrency control basic services.
所述操作系统中的服务体在功能上自底向上划分为基本机制层、服务层、运行环境层三个层次,所述基本机制层是系统运行的基础机制;所述服务层,用于提供系统主要的服务功能;所述运行环境层,用于提供用户程序的编程模型和运行环境。上述功能层次的划分用来指导操作系统的设计实现者进行系统功能组件服务体的分划和设计。The service body in the operating system is functionally divided into three levels: the basic mechanism layer, the service layer, and the operating environment layer. The basic mechanism layer is the basic mechanism for system operation; the service layer is used to provide The main service function of the system; the operating environment layer is used to provide the programming model and operating environment of the user program. The division of the above functional levels is used to guide the designer and implementer of the operating system to divide and design the system function component service body.
在所述运行环境层中,还可以构造模拟其他操作系统运行环境的服务体,用来将所述其他操作系统所支持的系统软件或用户程序引导、加入到本操作系统中运行。In the operating environment layer, a service body simulating the operating environment of other operating systems can also be constructed to guide and add system software or user programs supported by the other operating systems to run in the operating system.
所述服务体的端口对应于一个消息处理例程,该例程所能处理的所有消息接口的集合构成端口界面;所述消息接口,用于定义该消息特定的语义和接口参数信息的类型以及消息号。The port of the service body corresponds to a message processing routine, and the set of all message interfaces that the routine can handle constitutes a port interface; the message interface is used to define the specific semantics of the message and the type of interface parameter information and message number.
所述服务体的端口界面有统一规范的定义;服务体的端口界面的标识由主版本号、次版本号和全局唯一标识符三部分组成,其中,主版本号和次版本号用以支持版本的升级和兼容。The port interface of the service body has a unified and standardized definition; the identification of the port interface of the service body consists of three parts: the major version number, the minor version number and the globally unique identifier, wherein the major version number and the minor version number are used to support the version upgrades and compatibility.
所述服务体地址空间是多维的,包括基本空间和扩展空间;所述的基本空间包括私有段和共享段两个部分;所述服务体可以有多个扩展空间,用于分别加载不同的程序,以实现多地址空间的语义。The address space of the service body is multi-dimensional, including a basic space and an extended space; the basic space includes two parts: a private segment and a shared segment; the service body can have multiple extended spaces for loading different programs respectively , to implement the semantics of multiple address spaces.
所述的服务体地址空间可实现单地址空间管理模式、分组单地址空间管理模式或/和私有多地址空间管理模式;The address space of the service body can realize a single address space management mode, a group single address space management mode or/and a private multiple address space management mode;
所述单地址空间管理模式,使不同服务体在基本空间和扩展空间的使用上分别占用不同的地址空间,如同在同一地址空间内分配,从而简单直接地实现了单地址空间管理模式。The single-address space management mode enables different service bodies to occupy different address spaces in the use of the basic space and the extended space, as if they are allocated in the same address space, thereby simply and directly realizing the single-address space management mode.
所述分组单地址空间管理模式,将有共享数据行为的服务体划分在一组,组内按单地址模式进行空间管理。由于一个组内的服务体是有限的,因此可以在32位体系结构上实现。The group single-address space management mode divides the service bodies with shared data behavior into a group, and performs space management in a single-address mode within the group. Since the number of servers within a group is limited, it can be implemented on 32-bit architectures.
所述私有多地址空间管理,使扩展空间为服务体所私有,对扩展空间按分页方式进行管理。因此,可以根据需要将当前页交换到后备存储器中,以优化系统内存的使用和提高效率。由于一个服务体可以拥有多个私有空间,因此可以使所管理数据的容量能够超过处理器字长对虚存空间的限制。The private multi-address space management makes the expansion space private to the server, and manages the expansion space in a paging manner. Therefore, the current page can be swapped into the backing store as needed to optimize the use of system memory and increase efficiency. Since a server can have multiple private spaces, the capacity of the managed data can exceed the limitation of the processor word length on the virtual memory space.
所述消息推动通信,通过将消息从源信息主体的地址空间直接推入目的通信主体的地址空间,实现通信主体之间的通信。The message pushes the communication, and the communication between the communication subjects is realized by directly pushing the message from the address space of the source information subject to the address space of the destination communication subject.
所述消息推动通信的通信方式包括同步连续通信方式、同步分离通信方式或/和异步通信方式;The communication mode of message push communication includes synchronous continuous communication mode, synchronous separation communication mode or/and asynchronous communication mode;
所述同步连续通信方式是指:源通信主体A的同步通信消息从自己的地址空间经由目的通信主体B的通信接口直接推入目的通信主体B的地址空间,该消息立即被目的通信主体B中的相应处理例程处理,处理完成后立即发送一条返回消息经由上述源通信主体A的发送该同步消息的通信接口返回至源通信主体A,继续执行源通信主体A的任务;The synchronous continuous communication mode refers to: the synchronous communication message of the source communication subject A is directly pushed into the address space of the destination communication subject B via the communication interface of the destination communication subject B from its own address space, and the message is immediately received by the destination communication subject B. After the processing is completed, immediately send a return message to return to the source communication subject A through the communication interface of the above-mentioned source communication subject A that sends the synchronization message, and continue to execute the task of the source communication subject A;
所述同步分离通信方式是指:源通信主体A的同步通信消息从自己的地址空间经由目的通信主体B的通信接口直接推入目的通信主体B的地址空间,同时在该消息中还指明第三通信主体C的一个通信接口作为应答接口,当目的通信主体B处理完所推入的消息后,执行流将通过上述应答接口进入所指明的第三通信主体C;所述第三通信主体也可以是源通信主体A;The synchronous separation communication method refers to: the synchronous communication message of the source communication subject A is directly pushed into the address space of the destination communication subject B from its own address space via the communication interface of the destination communication subject B, and at the same time, the message also indicates the third A communication interface of the communication subject C is used as a response interface. After the destination communication subject B has processed the pushed message, the execution flow will enter the specified third communication subject C through the above response interface; the third communication subject can also is the source communication subject A;
所述异步通信方式是指:源通信主体A将消息经由目的通信主体B的通信接口推入目的通信主体B的地址空间后,执行流立即返回源通信主体A,目的通信主体B将在以后适当的时机再对该消息进行处理。The asynchronous communication method refers to: after the source communication subject A pushes the message into the address space of the destination communication subject B through the communication interface of the destination communication subject B, the execution flow immediately returns to the source communication subject A, and the destination communication subject B will properly Then process the message at the right time.
本发明的优点在于,本发明基于服务体/执行流结构提供了一种更合理的操作系统,其优点有:The advantage of the present invention is that the present invention provides a more reasonable operating system based on the service body/execution flow structure, and its advantages are as follows:
①明显提高运行效率,对服务体而言:①Obviously improve the operating efficiency, for the service body:
●用同步的执行流作为系统计算行为的抽象,申请服务时执行流直接将消息带入目的服务体空间,避免了消息拷贝和进出队列的开销;●Using synchronous execution flow as the abstraction of system computing behavior, when applying for services, the execution flow directly brings messages into the destination server space, avoiding the overhead of message copying and queue entry and exit;
●在执行上,执行流直接激活目的服务体的小端口进入服务体,避免了采用线程时的睡眠、唤醒以及线程调度而带来的开销(调度开销在线程数量比较大的时候是很可观的);在上下文保存方面,激活目的小端口不必恢复其任何寄存器,当执行流发送应答消息的时候也不必保存任何寄存器,整个过程只需保存和恢复系统的Preserve寄存器集合;●In terms of execution, the execution flow directly activates the small port of the destination service body to enter the service body, avoiding the overhead caused by sleep, wake-up and thread scheduling when using threads (scheduling overhead is very considerable when the number of threads is relatively large ); In terms of context preservation, the activation destination portlet does not need to restore any of its registers, nor does it need to save any registers when the execution flow sends a response message, the whole process only needs to save and restore the system's Preserve register set;
●当消息的发送方使用的是同步分离机制的时候,整个过程甚至一个寄存器都不必保存和恢复,其效率与进程间通信相比有极大的提高。我们在原型系统MiniCore性能测试也证明了这一点。●When the sender of the message uses the synchronization separation mechanism, the entire process and even a register do not need to be saved and restored, and its efficiency is greatly improved compared with inter-process communication. Our prototype system MiniCore performance test also proved this point.
②降低系统资源的消耗②Reduce the consumption of system resources
在进程/线程模型中,虽然线程是轻量级的调度单位,但仍占有可观的系统资源,这种资源主要是来自于内核堆栈以及与调度相关的一些资源。In the process/thread model, although a thread is a lightweight scheduling unit, it still occupies considerable system resources, which mainly come from the kernel stack and some resources related to scheduling.
在服务体模型中,由于取消了进程/线程的抽象,每个服务体的小端口都有自己的堆栈,中断处理过程被模拟成向核心服务体发送一个消息。系统的所有部件都是平等的,没有内核空间的概念,不存在维护内核堆栈的问题,从而完全消除了所述进程/线程模型面临的困难。In the server model, since the process/thread abstraction is cancelled, each portlet of the server has its own stack, and the interrupt handling process is simulated as sending a message to the core server. All parts of the system are equal, there is no concept of kernel space, and there is no problem of maintaining kernel stacks, thereby completely eliminating the difficulties faced by the process/thread model.
③语义完备性维护与系统的健壮性方面的优势③Advantages in semantic completeness maintenance and system robustness
在微内核模型中,线程通过消息队列来交换数据。为了保证模型的正确性,一个消息队列只允许一个线程具有接收权,其余线程只能拥有发送权。内核在运行过程需要对此进行检查和处理以保证语义的完备性。In the microkernel model, threads exchange data through message queues. In order to ensure the correctness of the model, a message queue only allows one thread to have the right to receive, and the rest of the threads can only have the right to send. The kernel needs to check and process this during operation to ensure the completeness of semantics.
在服务体模型中,该语义是自然的成立。因为一个端口对应于一个消息处理例程,仅有该处理例程才能处理传递给该端口的消息。因此在服务体模型中避免了不必要的检查开销,同时也避免了用户因为设计上的失误而引发的错误,增强了系统的健壮性。In the server model, this semantics is naturally established. Because a port corresponds to a message processing routine, only the processing routine can process the message delivered to the port. Therefore, unnecessary inspection overhead is avoided in the service body model, and errors caused by users due to design mistakes are also avoided, and the robustness of the system is enhanced.
④实时性有明显的提高④ The real-time performance has been significantly improved
现有模型的线程之间仅能通过共享内存实现通信,在消息的通知方面具有先天的缺陷,对处理异步发生的事件来说,线程模型往往会带来很大的处理时间延迟。The threads of the existing model can only communicate through shared memory, which has inherent defects in message notification. For processing asynchronous events, the thread model often brings a large processing time delay.
对于服务体模型而言,由于执行流的同步性,小端口是直接被激活的,所以启动时间微乎其微;当一个服务体请求其他服务体提供的服务时,执行流直接流入目的服务体,通过设置小端口选项可以使执行流的优先级保持不变,此时高优先级事务的请求优先得到了处理,避免了服务体优先级设置而带来的优先级反转等问题;同样由于执行流直接通过小端口进入服务体,是同步的而且是可重入的,因此当更高优先级的事件被激活时,对应的一个空闲小端口立即被激活,不会因为该端口正在处理低优先级的事件而造成高优先级事件被滞后处理。由于服务体在实时性的优势,非常适合应用在对实时性有严格要求的场合。For the service body model, due to the synchronization of the execution flow, the small port is directly activated, so the startup time is very small; when a service body requests services provided by other service bodies, the execution flow directly flows into the destination service body, by setting The small port option can keep the priority of the execution flow unchanged. At this time, requests for high-priority transactions are processed first, avoiding problems such as priority inversion caused by the priority setting of the service body; also because the execution flow directly Entering the service body through a small port is synchronous and reentrant, so when a higher priority event is activated, a corresponding idle small port is activated immediately, and it will not be because the port is processing a low priority event Events cause high-priority events to be delayed. Due to the real-time advantages of the service body, it is very suitable for applications that have strict requirements on real-time performance.
⑤有效支持分布式处理⑤Effectively support distributed processing
在基于进程/线程模型的分布式系统中,为了实现资源的优化使用或是为了提高系统的冗余度所采取的技术是进程迁移。进程迁移的困难在于进程/线程模型中对数据的计算和存储是紧密结合的,不能独立存在。所以必须将进程从源结点完全迁往目的结点,并在目的结点重新构造整个进程空间的内容,整个过程的开销是很大的。In a distributed system based on the process/thread model, process migration is the technique adopted to optimize the use of resources or improve the redundancy of the system. The difficulty of process migration is that the calculation and storage of data in the process/thread model are closely combined and cannot exist independently. Therefore, the process must be completely moved from the source node to the destination node, and the contents of the entire process space must be reconstructed at the destination node. The overhead of the whole process is very large.
而服务体/执行流模型将计算能力和数据存储能力进行了分离,从而可以更加容易的实现分布式的处理。由于服务体和执行流彼此独立,因此一个服务体可以同时存在于多个结点上。当计算发生迁移的时候,服务体已经在目的结点了,只要通过对象管理器更新相应的端口权利即可将所有的服务推到新的结点中。服务体使用新结点的执行流进行工作,初始的时候可能会发生数据的远程调页,随着服务体不断的运行,Cache管理器会逐渐将其工作集页面缓冲在本地,其运行效率将很快达到正常水平,从而对分布式计算提供有效地支持。The service body/execution flow model separates computing power and data storage capacity, making it easier to implement distributed processing. Since the service body and the execution flow are independent of each other, a service body can exist on multiple nodes at the same time. When the calculation is migrated, the service body is already at the destination node, and all services can be pushed to the new node as long as the corresponding port rights are updated through the object manager. The service body uses the execution flow of the new node to work. At the beginning, remote paging of data may occur. As the service body continues to run, the Cache manager will gradually buffer its working set pages locally, and its operating efficiency will increase. It will soon reach the normal level, thus providing effective support for distributed computing.
⑥对持久性存储的支持⑥Support for persistent storage
在进程/线程模型中,进程地址空间的生命期和进程的执行能力是联系在一起的,因此进程地址空间的本质是临时性的,这种临时性为系统实现持久存储、分布式计算以及高可靠性都带来很大的困难。In the process/thread model, the lifetime of the process address space and the execution capability of the process are linked together, so the essence of the process address space is temporary, which provides persistent storage, distributed computing and high performance for the system. Reliability poses great difficulties.
在服务体模型中,服务体是数据存储的基本抽象,它的存在不依赖于执行流,从本质上来说服务体具有持久性。因此,实现持久化更简洁更高效。In the service body model, the service body is the basic abstraction of data storage, and its existence does not depend on the execution flow. In essence, the service body is persistent. Therefore, implementing persistence is simpler and more efficient.
此外,服务体模型将单地址空间技术与私有多地址空间技术相结合,为数据共享和数据存储提供了高效的实现支撑,可以更自然、更有效的实现数据查询和更新。由此带来的潜在优势是巨大的。在服务体模型的基础上,很容易构造出新型的与操作系统真正融合的、高效的数据库管理系统服务体。In addition, the service body model combines single-address space technology with private multi-address space technology to provide efficient implementation support for data sharing and data storage, and can realize data query and update more naturally and effectively. The potential advantages that result from this are enormous. On the basis of the service body model, it is easy to construct a new and efficient database management system service body that is truly integrated with the operating system.
⑦对主动网络的支持⑦Support for active network
对于进程/线程模型来说,其抽象的是若干个虚拟的CPU。这种抽象决定了以进程作为网络的接收端只能从网络节点上去“拉”数据,对于发送方“推”过来的数据只能先放在一个缓冲区中,然后由接收方再从缓冲区中将数据“拉”到自己的进程地址空间中进行处理。因此采用进程/线程模型只能在“拉”的基础上实现“推”,无法完全实现“推”的概念。这种以“拉”为“推”的实现方式阻碍了主动网络优越性的发挥。For the process/thread model, it abstracts several virtual CPUs. This abstraction determines that the process as the receiving end of the network can only "pull" data from the network node. For the data "pushed" by the sender, it can only be placed in a buffer first, and then the receiver will read from the buffer. "pull" the data into its own process address space for processing. Therefore, the process/thread model can only realize "push" on the basis of "pull", and cannot fully realize the concept of "push". This implementation method of "pull" as "push" hinders the exertion of the advantages of the active network.
在服务体模型中,由于端口实际上代表了一段处理例程,因此对处理“推”机制有着天然的优势,可以完全克服进程模型的这种缺陷。由于服务体模型在通信机制和消息处理方面与主动网络的思想在本质上是一致的,服务体之间的消息传递过程实际上就是一个“推”的过程,由执行流将消息通过小端口直接带入到目的服务体中。以服务体为基础实现主动网络可以看成是将服务体的这种消息传递的手段推广到网络报文的传递和处理,因此,可以获得更好的效率以及更加自然、和谐的系统体系结构。In the service body model, because the port actually represents a processing routine, it has a natural advantage in the processing "push" mechanism, which can completely overcome this defect of the process model. Since the service model is essentially consistent with the idea of the active network in terms of communication mechanism and message processing, the message passing process between the service bodies is actually a "push" process, and the execution flow sends the message directly through the small port. brought into the target service body. Realizing the active network based on the service body can be seen as extending the message delivery method of the service body to the transmission and processing of network packets, so better efficiency and a more natural and harmonious system architecture can be obtained.
⑧对操作系统可裁剪性与开放性的支持⑧Support for the tailorability and openness of the operating system
服务体/执行流模型从根本上打破了进程/线程模型的约束,服务体各部分之间所具有的良好的隔离性和模块化的结构特征,可以充分支持操作系统的剪裁和扩充。尤其在服务体模型中没有内核的概念,所有的服务体都是平等的。即使是核心服务体所提供的管理服务,也可以由其他服务体替换和扩充,因此具有良好的灵活性和可重构性,从而具有很好的开放性。此外,新颖的服务体/执行流模型的同步通信机制可以充分支持集群间的并行控制,以及分布式环境的分布计算服务体的唯一性和网络间透明传播。The service body/execution flow model fundamentally breaks the constraints of the process/thread model, and the good isolation and modular structure characteristics between the various parts of the service body can fully support the tailoring and expansion of the operating system. In particular, there is no core concept in the service body model, and all service bodies are equal. Even the management services provided by the core service body can be replaced and expanded by other service bodies, so it has good flexibility and reconfigurability, and thus has good openness. In addition, the synchronous communication mechanism of the novel service body/execution flow model can fully support the parallel control between clusters, as well as the uniqueness of distributed computing service bodies in distributed environments and transparent communication between networks.
综上所述,执行流是CPU运算能力的最原始的抽象,它像CPU推动的传送带沿着PC寄存器给出的指令序列前进,形成一条指令执行的轨迹,它描述的是一个连续的、实在的物理CPU运行过程,从CPU的上电复位到关机,中途不会像虚拟CPU那样被阻塞、挂起和停止,也不会于某个特定的地址空间绑定,当执行流流过某个服务体的代码序列时,该服务体的程序被执行,当一个服务体需要调用另一个服务体时,通过消息将执行流引向被调用服务体,此时执行流就会跨越地址边界在两个服务体间流动,行为简单而又自然,而不必像线程切换那样,将物理CPU在两个虚拟CPU间切换。To sum up, the execution flow is the most primitive abstraction of the CPU's computing power. It is like a conveyor belt driven by the CPU and advances along the instruction sequence given by the PC register to form a trajectory of instruction execution. It describes a continuous, real The running process of the physical CPU, from power-on reset to shutdown of the CPU, will not be blocked, suspended and stopped like a virtual CPU, nor will it be bound to a specific address space. When the execution flow flows through a certain When the code sequence of the service body is executed, the program of the service body is executed. When a service body needs to call another service body, the execution flow is directed to the called service body through a message. At this time, the execution flow will cross the address boundary between the two The flow between two service bodies is simple and natural, without switching the physical CPU between two virtual CPUs like thread switching.
核心服务体是系统的一个关键组件,它通过服务体间的通信机制和并发调度来控制和管理执行流和服务体,主要提供服务体间通信、服务体与执行流的管理、中断和异常等基础服务,实现多个服务体间的并发控制。一个CPU提供一个执行流,多个CPU提供多个执行流,核心服务体具有识别和调度单流并发,多流并行的能力,从而可以有效地支持并行与分布式计算。The core service body is a key component of the system. It controls and manages the execution flow and the service body through the communication mechanism and concurrent scheduling between the service bodies. It mainly provides communication between the service bodies, management of the service body and the execution flow, interruption and exception, etc. The basic service realizes concurrency control between multiple service bodies. One CPU provides one execution stream, and multiple CPUs provide multiple execution streams. The core server has the ability to identify and schedule single-stream concurrency and multi-stream parallelism, thus effectively supporting parallel and distributed computing.
由于服务体模型将运行模型和存储模型分离,而且摒弃了虚拟CPU的概念,因此可以采用同步消息传递作为服务体间的通信方式,从而可以有效提高系统的效率和支持主动网络,同时从构造原理上保证了系统的可扩展性和可维护性。Since the server model separates the operation model from the storage model and abandons the concept of virtual CPU, synchronous message passing can be used as the communication method between servers, which can effectively improve the efficiency of the system and support the active network. At the same time, from the construction principle This ensures the scalability and maintainability of the system.
因此,本发明的服务体/执行流模型在实时性、多处理机支持、系统资源的消耗、语义完备性的维护、对分布式处理和对主动网络的支持等方面,比现有的进程/线程模型具有明显优势。Therefore, the service body/execution flow model of the present invention is better than the existing process/execution flow model in terms of real-time performance, multi-processor support, consumption of system resources, maintenance of semantic integrity, support for distributed processing and active networks, etc. The threading model has clear advantages.
附图说明Description of drawings
图1是现有技术的进程/线程模型示意图。FIG. 1 is a schematic diagram of a process/thread model in the prior art.
图2是现有技术的单一大内核操作系统构造示意图。FIG. 2 is a schematic diagram of the structure of a single large-kernel operating system in the prior art.
图3是现有技术的微内核操作系统构造示意图。FIG. 3 is a schematic diagram of the structure of a microkernel operating system in the prior art.
图4是本发明操作系统的服务体/执行流结构的示意图。Fig. 4 is a schematic diagram of the service body/execution flow structure of the operating system of the present invention.
图5是本发明操作系统的基于消息推动的通信的示意图。FIG. 5 is a schematic diagram of the message-driven communication of the operating system of the present invention.
图6是本发明消息推动通信的同步连续通信方式的示意图。Fig. 6 is a schematic diagram of a synchronous continuous communication mode of message-driven communication in the present invention.
图7是本发明消息推动通信的同步分离通信方式的示意图。Fig. 7 is a schematic diagram of a synchronous separation communication method of message push communication in the present invention.
图8是本发明消息推动通信的异步通信方式的示意图。FIG. 8 is a schematic diagram of an asynchronous communication method of message-driven communication in the present invention.
图9是本发明操作系统的服务体端口和小端口构造的示意图。Fig. 9 is a schematic diagram of the server port and portlet structure of the operating system of the present invention.
图10是本发明服务体多维地址空间示意图。Fig. 10 is a schematic diagram of the multi-dimensional address space of the server in the present invention.
图11是本发明单地址空间管理模式的示意图。FIG. 11 is a schematic diagram of a single address space management mode of the present invention.
图12是本发明分组单地址空间管理模式的示意图。Fig. 12 is a schematic diagram of the group single address space management mode of the present invention.
图13是本发明私有多地址空间管理模式的示意图。Fig. 13 is a schematic diagram of the private multi-address space management mode of the present invention.
图14是本发明文件系统的持久化的示意图。Fig. 14 is a schematic diagram of the persistence of the file system of the present invention.
图15是本发明文件系统持久化的提交算法的示意图。FIG. 15 is a schematic diagram of a commit algorithm for file system persistence in the present invention.
图16是本发明操作系统总体结构示意图。Fig. 16 is a schematic diagram of the overall structure of the operating system of the present invention.
图17是本发明核心服务体模块和结构示意图。Fig. 17 is a schematic diagram of the core service body module and structure of the present invention.
图18是本发明对象管理服务体结构示意图。Fig. 18 is a schematic diagram of the structure of the object management service body of the present invention.
图19是本发明虚存管理子系统结构的示意图。FIG. 19 is a schematic diagram of the structure of the virtual memory management subsystem of the present invention.
图20是本发明I/O管理服务体对分层驱动的管理的示意图。FIG. 20 is a schematic diagram of management of layered drivers by the I/O management service body of the present invention.
图21是本发明堆叠文件系统的工作过程的示意图。Fig. 21 is a schematic diagram of the working process of the stacked file system of the present invention.
图22是本发明Linux运行环境服务体结构示意图。Fig. 22 is a schematic diagram of the structure of the Linux operating environment service body of the present invention.
具体实施方式Detailed ways
下面就对本发明具体实施实例进行详细说明。The specific implementation examples of the present invention will be described in detail below.
本发明的基于服务体/执行流模型的操作系统采用服务体/执行流结构,该结构由服务体和执行流两类机制构成;操作系统由一组服务体组成,每个服务体均具有自己的服务体地址空间,服务体之间采用消息推动通信;执行流是物理CPU沿着指令计数器指示的指令执行顺序执行指令而形成的轨迹,该执行流是连续的;服务体按照相同规范构造,包括功能代码、数据集合、服务体地址空间、若干端口以及端口所包含的若干小端口,代码和数据保存在服务体地址空间中,用于实现操作系统相应功能组件,执行流通过小端口进入服务体;系统中其他系统软件和用户程序也以服务体形式加载到操作系统上;服务体的端口和小端口均采用统一的规范设计,以便于支持系统中各服务体之间的通信;系统服务体中设置一个核心服务体,用于提供执行流引导、服务体与执行流管理、消息推动通信、中断与异常管理以及并发控制基础服务。The operating system based on the service body/execution flow model of the present invention adopts the service body/execution flow structure, which is composed of two types of mechanisms: the service body and the execution flow; The address space of the service body, the message is used to promote communication between the service bodies; the execution flow is the track formed by the physical CPU executing instructions along the instruction execution order indicated by the instruction counter, and the execution flow is continuous; the service body is constructed according to the same specification, Including function code, data collection, service body address space, several ports and several small ports contained in the port, the code and data are stored in the service body address space, used to realize the corresponding functional components of the operating system, and the execution flow enters the service through the small port body; other system software and user programs in the system are also loaded on the operating system in the form of a service body; the ports and portlets of the service body adopt a unified specification design to facilitate the communication between various service bodies in the system; system services A core service body is set in the body to provide basic services for execution flow guidance, service body and execution flow management, message push communication, interruption and exception management, and concurrency control.
本发明是以图4所示的服务体/执行流结构作为基础结构、以消息推动通信为关键技术、以一系列相关的具体构造方法为辅助方法而综合构成的操作系统。The present invention is an operating system comprehensively composed of the service body/execution flow structure shown in FIG. 4 as the basic structure, message-driven communication as the key technology, and a series of related specific construction methods as auxiliary methods.
具体而言,本发明的基于服务体/执行流模型的操作系统中的服务体具有静态和持久的性质,它具有自己的地址空间,只有当执行流通过端口被引入服务体时,该服务体的程序才被执行,服务体具有通信功能,它通过消息推动方式达到与其他服务体通信目的;服务体的每一个端口对应了一个消息处理例程,而端口则是服务体与外界通信的唯一合法出/入口。因此,服务体间是相互隔离的,低耦合的;一个端口可以包括若干个小端口,小端口提供相应的消息例程运行时堆栈,并记录运行时所需的上下文相关信息。小端口数量决定了该服务体的并发度;服务体的端口是可重入的,因此,它允许高优先级的消息立即被处理。Specifically, the service body in the operating system based on the service body/execution flow model of the present invention has static and persistent properties, and it has its own address space. Only when the execution flow is introduced into the service body through a port, the service body The program is executed, and the service body has a communication function. It communicates with other service bodies through message promotion; each port of the service body corresponds to a message processing routine, and the port is the only communication between the service body and the outside world. Legal exit/entry. Therefore, the service bodies are mutually isolated and low-coupling; a port can include several portlets, and the portlets provide the corresponding message routine runtime stack and record the context-related information required at runtime. The number of small ports determines the concurrency of the server; the ports of the server are reentrant, thus allowing high priority messages to be processed immediately.
本发明的基于服务体/执行流模型的操作系统中的执行流是连续的,从机器上电复位到关机中途不会被阻塞、挂起或中止,也不会与某个特定的地址空间绑定;执行流通过服务体的一个小端口进入服务体,执行该服务体的相应程序。当一个服务体需要调用另一个服务体的程序时,通过消息将执行流推入被调用的服务体,此时执行流就跨越地址空间边界流入被调用服务体。The execution flow in the operating system based on the service body/execution flow model of the present invention is continuous, and will not be blocked, suspended or terminated from the power-on reset to the shutdown of the machine, and will not be bound to a specific address space. The execution flow enters the service body through a small port of the service body, and executes the corresponding program of the service body. When a service body needs to call the program of another service body, the execution flow is pushed into the called service body through a message, and at this time, the execution flow flows into the called service body across the address space boundary.
本发明的基于服务体/执行流模型的操作系统中的核心服务体在逻辑上相当于微内核操作系统的内核,核心服务体与其他服务体的地位是平等的,因此不存在内核态的概念。The core service body in the operating system based on the service body/execution flow model of the present invention is logically equivalent to the kernel of the microkernel operating system, and the status of the core service body and other service bodies is equal, so there is no concept of kernel state .
本发明的基于服务体/执行流模型的操作系统中的消息推动通信是指将消息从源信息主体的地址空间直接推入目的通信主体的地址空间通信的方式,如图5所示,每个通信主体拥有各自的地址空间和通信接口,通信接口中包含消息处理例程入口及相关信息;消息推动通信的通信方式包括同步连续通信、同步分离通信和异步通信三种通信方式;The message push communication in the operating system based on the service body/execution flow model of the present invention refers to the method of directly pushing the message from the address space of the source information subject to the address space communication of the destination communication subject, as shown in FIG. 5 , each The communication subject has its own address space and communication interface, and the communication interface contains the entry of the message processing routine and related information; the communication mode of message-driven communication includes three communication modes: synchronous continuous communication, synchronous separation communication and asynchronous communication;
当依据服务体/执行流结构和利用消息推动通信技术来构造操作系统时,还需要提供下述具体的构造方法作为辅助方法。When constructing the operating system based on the service body/execution flow structure and using the message-driven communication technology, the following specific construction methods need to be provided as auxiliary methods.
A、服务体构造方法:系统中每个服务体都必须以统一规范的方法来构造。该构造方法的关键在于服务体通信接口的规范化设计,如图9所示,具体说明如下:A. Service body construction method: Each service body in the system must be constructed in a unified and standardized way. The key to this construction method lies in the standardized design of the communication interface of the service body, as shown in Figure 9, and the specific description is as follows:
服务体提供若干个端口作为其通信接口。端口定义了服务体的合法入口,对应于服务体提供的服务例程以及相应的描述信息;The server provides several ports as its communication interface. The port defines the legal entry of the service body, corresponding to the service routine provided by the service body and the corresponding description information;
每个上述端口包含一个或多个小端口,小端口记录了服务例程运行时堆栈和与运行相关的其他上下文信息。小端口的数量决定了该端口的并发度;Each of the above ports contains one or more portlets that record the service routine's runtime stack and other contextual information relevant to its operation. The number of small ports determines the concurrency of the port;
执行流只能从端口的某个小端口进入服务体,并根据端口和小端口中的信息进行状态和资源的切换。The execution flow can only enter the service body from a small port of the port, and switch the state and resources according to the information in the port and the small port.
B、多维地址空间构造方法:该方法所组织的服务体的地址空间划分成基本空间和扩展空间两个部分,基本空间又划分为私有段和共享段两部分,如图10所示;不同服务体的共享段之间互不重叠,具有互斥性;私有段则由其所在虚拟空间的拥有者根据需要来独立分配;一个服务体的地址空间可以拥有一个或多个扩展空间,每个扩展空间具有唯一的名字。由上述方法构造的地址空间是多维的。本发明利用上述的多维地址空间构造方法来构造系统中所有服务体的地址空间。B. Multi-dimensional address space construction method: the address space of the service body organized by this method is divided into two parts: basic space and extended space, and the basic space is divided into two parts: private segment and shared segment, as shown in Figure 10; different services The shared segments of the service body do not overlap with each other and are mutually exclusive; the private segment is allocated independently by the owner of the virtual space where it is located; the address space of a service body can have one or more extension spaces, each extension Spaces have unique names. The address space constructed by the above method is multi-dimensional. The present invention uses the above multi-dimensional address space construction method to construct the address spaces of all service bodies in the system.
C、服务体端口界面定义规范:一个服务体端口对应于一个消息处理例程,该例程所能处理的所有消息的接口的集合称为端口界面。操作系统的设计者必须制定服务体端口界面的规范定义来约束服务体的实现者和使用者;每个消息接口定义了该消息特定的语义和接口参数等信息的类型和消息的名字(消息号);服务体端口界面由主版本号、次版本号和全局唯一标识符UUID(Universal Unique Identifier)三部分标识。主版本号和次版本号用以支持版本的升级和兼容,UUID在分布式系统中具有全局唯一性。C. Definition specification of service body port interface: a service body port corresponds to a message processing routine, and the collection of interfaces of all messages that this routine can handle is called port interface. The designer of the operating system must formulate the specification definition of the port interface of the service body to constrain the implementer and user of the service body; each message interface defines the specific semantics of the message and the type of information such as interface parameters and the name of the message (message number ); The port interface of the service body is identified by three parts: the major version number, the minor version number and the universal unique identifier UUID (Universal Unique Identifier). The major and minor version numbers are used to support version upgrades and compatibility, and UUID is globally unique in a distributed system.
D、服务体间的通信机制:消息推动通信。每个服务体都必须以消息推动通信为基本的服务体间通信方法,每个服务体提供若干个端口作为消息推动通信接口,执行流随着消息的推动而流动。D. Communication mechanism between service bodies: messages promote communication. Each service body must use message-driven communication as the basic inter-service communication method. Each service body provides several ports as message-driven communication interfaces, and the execution flow flows with the push of messages.
所述消息是有类型数据的集合,具有确定的格式,由消息头部、数据描述区和在线数据区三部分组成,大小为一个物理页。(1)消息头部:定长,指明消息的类型、数据的个数、目的/应答端口等信息;(2)数据描述区:为每个数据提供一个数据描述条目,数据描述条目使用类型域指明数据的类型如普通数据、在线数据、脱机数据和端口权力;(3)在线数据区:在线数据就是存储在在线数据区的数据,对于在线数据,数据描述条目中使用偏移量和存储量来指明在线数据的地址和大小。The message is a collection of typed data with a definite format, consisting of three parts: a message header, a data description area and an online data area, and the size is one physical page. (1) Message header: fixed length, indicating the type of message, the number of data, destination/response port and other information; (2) Data description area: provide a data description entry for each data, and the data description entry uses the type field Indicate the type of data such as normal data, online data, offline data and port authority; (3) online data area: online data is the data stored in the online data area, for online data, offset and storage are used in the data description entry Quantity to indicate the address and size of online data.
消息推动通信的通信方式包括同步连续通信、同步分离通信和异步通信三种通信方式;The communication methods of message-driven communication include three communication methods: synchronous continuous communication, synchronous separation communication and asynchronous communication;
1)同步连续通信方式,其通信步骤是:作为源通信主体的服务体A将同步通信消息从自己的地址空间经由作为目的通信主体的服务体B的通信接口直接推入服务体B的地址空间,该通信消息立即被服务体B中相应处理程序处理,处理完成后立即发送一个返回信息到服务体A,由服务体A发送前述同步消息的通信接口接收,如图6所示;1) Synchronous continuous communication method, the communication steps are: service body A as the source communication subject directly pushes the synchronous communication message from its own address space to the address space of service body B via the communication interface of service body B as the destination communication subject , the communication message is immediately processed by the corresponding processing program in the server B, and immediately after the processing is completed, a return message is sent to the server A, and is received by the communication interface where the server A sends the aforementioned synchronization message, as shown in Figure 6;
2)同步分离通信方式,其通信步骤为:在作为源通信主体的服务体A所发出的消息中,除了要指明作为目的通信主体的服务体B的通信接口之外,还需指明一个称为应答端口的某个服务体(如服务体C)的通信接口。当服务体A将消息通过指定的服务体B的通信接口推入服务体B的地址空间后,立即被服务体B的相应处理程序处理,处理完成后,由服务体B通过所指明的应答端口将执行流推入该应答端口所属的某一服务体(如服务体C)中,如图7所示;2) Synchronous separation communication method, the communication steps are: in the message sent by the service body A as the source communication subject, in addition to specifying the communication interface of the service body B as the destination communication subject, it is also necessary to specify a communication interface called The communication interface of a server (such as server C) that responds to the port. When service body A pushes the message into the address space of service body B through the specified communication interface of service body B, it will be processed by the corresponding processing program of service body B immediately. After the processing is completed, service body B will pass the specified response port Push the execution flow into a certain service body (such as service body C) to which the response port belongs, as shown in Figure 7;
3)异步通信方式,其通信步骤是:作为源通信主体的服务体A将同步通信消息从自己的地址空间经由作为目的通信主体的服务体B的通信接口推入服务体B的地址空间后,立即返回服务体A,服务体B将在以后适当的时机再对前述消息进行处理,如图8所示。3) The asynchronous communication method, the communication steps are: after the service body A as the source communication subject pushes the synchronous communication message from its own address space into the address space of the service body B via the communication interface of the service body B as the destination communication subject, Immediately return to server A, and server B will process the aforementioned message at an appropriate time in the future, as shown in Figure 8.
E、操作系统构造框架。利用本发明的方法来构造操作系统时必须按该构造框架来设计操作系统,该框架包括以下规则和约定:E. Operating system construction framework. When utilizing the method of the present invention to construct the operating system, the operating system must be designed according to the construction framework, and the framework includes the following rules and conventions:
以服务体作为操作系统的基本组成单位,所有操作系统功能组件、系统软件和用户程序都必须以服务体的形式加入到系统中;With the service body as the basic unit of the operating system, all operating system functional components, system software and user programs must be added to the system in the form of service bodies;
操作系统中所有的服务体都必须按统一的服务体构造方法、统一的地址空间构造方法和统一的服务体端口界面规范来设计;All services in the operating system must be designed according to a unified service body construction method, a unified address space construction method, and a unified service body port interface specification;
操作系统的功能组件在功能上自底向上划分为基本机制层、服务层和运行环境层三个层次。基本机制层提供系统运行所依赖的基础机制;服务层提供系统主要的服务功能;运行环境层提供用户程序的编程模型和运行环境。上述功能层次的划分用来指导操作系统的设计实现者进行系统功能组件服务体的划分和设计;The functional components of the operating system are divided into three levels from the bottom up: the basic mechanism layer, the service layer and the operating environment layer. The basic mechanism layer provides the basic mechanism on which the system operates; the service layer provides the main service functions of the system; the operating environment layer provides the programming model and operating environment of user programs. The division of the above functional levels is used to guide the designers and implementers of the operating system to divide and design the system function components and service bodies;
本操作系统直接支持的系统软件和用户程序都以服务体的形式加载到操作系统上;依赖于其它运行环境的系统软件和用户程序则加载到相应的运行环境上。The system software and user programs directly supported by this operating system are loaded on the operating system in the form of services; the system software and user programs that depend on other operating environments are loaded on the corresponding operating environment.
当操作系统扩充功能时,需要将所扩充的功能按上述统一规范组织成服务体,加入到操作系统中。系统的基本机制层提供服务体注册/撤销、动态加载和在线升级等功能。When the operating system expands its functions, the expanded functions need to be organized into service bodies according to the above-mentioned unified specification and added to the operating system. The basic mechanism layer of the system provides functions such as service body registration/revocation, dynamic loading and online upgrade.
F、三种可任选的地址空间管理模式:F. Three optional address space management modes:
单地址空间管理模式。使不同的服务体的基本空间的共享段占用不同的地址空间,如同在统一地址空间内进行分配,因此在基于服务体/执行流结构的操作系统中可以简单而直接地实现单地址空间管理模式,如图11所示;Single address space management mode. Make the shared segments of the basic space of different service bodies occupy different address spaces, as if allocating in a unified address space, so the single address space management mode can be implemented simply and directly in the operating system based on the service body/execution flow structure , as shown in Figure 11;
分组单地址空间管理模式。将有数据共享行为的服务体划分在一组,组内采用单地址模式进行空间管理,组间则采用多地址模式进行空间管理,如图12所示。分组单地址空间管理模式既可在32位CPU计算平台上实现,又可具备单地址模式的主要优点,如可支持复杂数据结构的共享。这种方式在嵌入式应用中尤为实用;Group single address space management mode. Divide the service bodies with data sharing behavior into a group, use single address mode for space management within the group, and use multi-address mode for space management between groups, as shown in Figure 12. The group single-address space management mode can be implemented on a 32-bit CPU computing platform, and can also have the main advantages of the single-address mode, such as supporting the sharing of complex data structures. This approach is especially useful in embedded applications;
私有多地址空间管理模式:如图13所示,该模式将服务体私有的扩展空间分页管理,可按需要与后备存储器交换以优化内存的使用;一个服务体的地址空间可以拥有多个私有空间,从而可使其所管理的数据的容量超过处理器字长对虚存空间的限制。使用该模式时可将大的私有数据和运行库加载到扩展空间中,而把对效率有特别意义的需共享的数据加载到基本空间中。Private multi-address space management mode: As shown in Figure 13, this mode manages the private expansion space of the server by paging, and can be exchanged with the backing memory as needed to optimize the use of memory; the address space of a server can have multiple private spaces , so that the capacity of the data it manages can exceed the limit of the processor word length on the virtual memory space. When using this mode, large private data and runtime libraries can be loaded into the extended space, and shared data that is of special significance to efficiency can be loaded into the basic space.
G、文件系统的持久化方法:通过在磁盘上为文件系统建立影子区域,如图14所示,并提供严格保持一致的提交算法,如图15所示,便可实现文件系统的持久化,从而为实现操作系统的持久性奠定了基础。G. Persistence method of the file system: By establishing a shadow area for the file system on the disk, as shown in Figure 14, and providing a strictly consistent submission algorithm, as shown in Figure 15, the persistence of the file system can be realized. Thus laying the foundation for realizing the persistence of the operating system.
基于消息推动的通信机制在基于服务体/执行流模型的操作系统中的应用:基于消息推动的服务体间通信机制以服务体为通信主体,以端口/小端口为通信接口,提供同步连续、同步分离和异步通信方式。执行流将消息从源服务体A经由目的服务体B的端口推入服务体B,并进入B的端口的消息处理程序处理该消息。服务体/执行流模型只提供一个消息推动原语实现同步连续、同步分离和异步的通信方式,其中:Application of the message-driven communication mechanism in the operating system based on the server/execution flow model: The message-driven inter-service communication mechanism uses the server as the communication subject and the port/portlet as the communication interface, providing synchronous, continuous, Synchronous separation and asynchronous communication methods. The execution flow pushes the message from the source service body A to the service body B via the port of the destination service body B, and the message handler entering the port of B processes the message. The service body/execution flow model only provides a message-driven primitive to realize synchronous continuous, synchronous separation and asynchronous communication methods, among which:
同步连续方式:源服务体仅仅在消息中指定目的服务体端口,由消息推动原语隐含地为源服务体生成一个应答端口,执行流通过指定的目的端口的某个空闲小端口进入相应的目的服务体,由目的端口的消息处理程序处理该消息,消息处理结束后从上述应答端口返回源服务体。Synchronous continuous mode: the source service body only specifies the port of the destination service body in the message, and the message push primitive implicitly generates a response port for the source service body, and the execution flow enters the corresponding port through an idle port of the specified destination port The destination service body, the message processing program of the destination port processes the message, and returns to the source service body from the above-mentioned response port after the message processing is completed.
同步分离方式:在源服务体A所发出的消息中,除了要指明目的服务体B的端口之外,还需指明某个服务体的端口作为应答端口。当服务体A将消息通过目的端口推入服务体B的地址空间后,立即被服务体B的相应消息处理程序处理,处理完成后,由服务体B通过上述消息指明的应答端口将执行流推入该应答端口所属的服务体中;Synchronous separation method: In the message sent by the source server A, in addition to specifying the port of the destination server B, the port of a certain server needs to be specified as the response port. When server A pushes the message into the address space of server B through the destination port, it will be processed by the corresponding message processing program of server B immediately. After the processing is completed, server B will push the execution flow through the response port specified by the above message Enter the service body to which the response port belongs;
异步方式:消息被绑定到目的服务体端口的一个空闲小端口上,同时该小端口被挂到端口调度队列中,执行流继而返回源服务体继续执行,而不是立刻通过该小端口进入目的服务体完成消息的处理。核心服务体会根据其优先级通过端口调度机制处理该被绑定的异步消息。Asynchronous mode: the message is bound to an idle small port of the destination server port, and the small port is hung in the port scheduling queue at the same time, and the execution flow then returns to the source server to continue execution, instead of entering the destination through the small port immediately The service body completes the processing of the message. The core service body processes the bound asynchronous message through the port scheduling mechanism according to its priority.
多维地址空间在服务体/执行流结构的操作系统中的应用:服务体地址空间采用多维地址空间,一个服务体只有一个基本空间,但是可以根据需要拥有一个或多个扩展空间。扩展空间位于地址空间的低端,基本空间位于地址空间的高端。基本空间的共享段位于基本空间的高端,作为系统资源统一分配,具有互斥性。也就是说,如果某个服务体申请了基本空间共享段的一段地址区间A,则其他服务体就不可能从基本空间共享段中申请到与A有重叠的地址区间。不同服务体在基本空间共享段的使用上分别占用不同的地址区间,互不重叠,如同在同一个地址空间内分配一样。而基本空间私有段的分配则完全独立于其他服务体,每个服务体都可以根据需要使用这段地址空间,不同的服务体之间不具有互斥性。The application of multi-dimensional address space in the operating system of the server/execution flow structure: the address space of the server adopts the multi-dimensional address space, and a server has only one basic space, but can have one or more extended spaces as needed. Extended space is at the low end of the address space, and base space is at the high end of the address space. The shared segment of the basic space is located at the high end of the basic space and is allocated uniformly as system resources with mutual exclusion. That is to say, if a certain server applies for an address range A of the basic space sharing segment, it is impossible for other servers to apply for an address range overlapping with A from the basic space sharing segment. Different service bodies occupy different address ranges in the use of the basic space sharing segment, which do not overlap each other, just like being allocated in the same address space. The allocation of the private segment of the basic space is completely independent of other service bodies. Each service body can use this address space as needed, and different service bodies are not mutually exclusive.
基本空间共享段互斥分配的特性使得共享段地址空间中的内容很容易映射到另一个服务体的共享段地址空间中:因为目的地址区间必然是空闲的。根据这个特点可以将运行时刻需要与其他服务体共享的复杂数据结构(包括图、树、链表等)以及代码(代码也可以理解成一种复杂的数据结构)加载到基本空间共享段中,并在不同的服务体间有效的共享这些数据和代码。在基于消息推动的服务体间通信中,可以使用映射机制直接将消息或数据映射到目的服务体空间中,以减少消息拷贝、降低通信开销。The feature of mutually exclusive allocation of the shared segment of the basic space makes it easy for the content in the shared segment address space to be mapped to the shared segment address space of another server: because the destination address range must be free. According to this feature, complex data structures (including graphs, trees, linked lists, etc.) and codes (codes can also be understood as a complex data structure) that need to be shared with other service bodies at runtime can be loaded into the basic space sharing segment, and in These data and codes are effectively shared between different service bodies. In message-based inter-server communication, the mapping mechanism can be used to directly map messages or data to the destination server space to reduce message copying and communication overhead.
消息界面技术在基于服务体/执行流结构的操作系统中的应用:服务体的每个端口可以处理若干个消息,使用消息界面技术能够对端口处理的消息进行规范化定义,使用消息界面的版本管理对服务体或端口进行版本升级的管理。The application of message interface technology in the operating system based on the service body/execution flow structure: each port of the service body can process several messages, and the message processed by the port can be standardized and defined by using the message interface technology, and the version management of the message interface is used Manage the version upgrade of the server or port.
使用本专利设计并实现操作系统:Use this patent to design and implement an operating system:
a)如图16所示的操作系统总的体系结构,划分为基本机制层、服务层和运行环境层三个层次。其中,a) The overall architecture of the operating system as shown in Figure 16 is divided into three levels: the basic mechanism layer, the service layer and the operating environment layer. in,
基本机制层提供系统运行所依赖的基础机制,包括核心服务体、对象管理服务体、内存管理子系统、IO管理子系统、权能服务体和安全服务体。内存管理子系统实现系统的存储模型,提供物理内存管理和虚拟内存管理;IO管理子系统实现系统的驱动程序和设备管理模型,实现IO设备管理和文件系统管理;对象管理服务体实现对系统中的各种对象、端口的全局统一管理;核心服务体实现底层系统机制,提供服务体/执行流模型的抽象,包括端口调度、服务体管理、消息传递等;权能服务体和安全服务体实现对系统的安全管理。The basic mechanism layer provides the basic mechanism on which the system runs, including core service body, object management service body, memory management subsystem, IO management subsystem, capability service body and security service body. The memory management subsystem implements the storage model of the system, providing physical memory management and virtual memory management; the IO management subsystem implements the system driver and device management model, and realizes IO device management and file system management; The global and unified management of various objects and ports; the core service body realizes the underlying system mechanism, and provides the abstraction of the service body/execution flow model, including port scheduling, service body management, message delivery, etc.; System security management.
服务层提供一些基本的系统服务功能,包括Cache管理服务体、文件系统服务体、驱动程序服务体、网络服务体、网络协议驱动服务体以及GUI服务体等。The service layer provides some basic system service functions, including Cache management service body, file system service body, driver program service body, network service body, network protocol driver service body and GUI service body, etc.
运行环境层为用户提供编程模型,提供用户程序的运行环境,一部分用于实现对其他操作系统所支持的二进制应用程序的兼容,另一部分用于提供面向本操作系统的用户编程环境。The operating environment layer provides users with a programming model and an operating environment for user programs. Part of it is used to achieve compatibility with binary applications supported by other operating systems, and the other part is used to provide a user programming environment for this operating system.
b)系统功能组件服务体的设计:b) Design of system functional component service body:
如图17所示的核心服务体,提供了底层基础控制机制,如中断/异常管理、同步机制、服务体间通信机制、端口管理和小端口调度等。此外,核心服务体对服务体进行管理,因此又扮演了服务体管理器的角色。核心服务体提供的服务体间通信的安全控制是实现系统安全性的基础机制,也正是通过服务体间通信机制实现了对象服务的统一的、强制性的访问控制。The core service body shown in Figure 17 provides the underlying basic control mechanism, such as interrupt/exception management, synchronization mechanism, communication mechanism between service bodies, port management and portlet scheduling, etc. In addition, the core service body manages the service body, so it plays the role of the service body manager. The security control of inter-service communication provided by the core service is the basic mechanism to realize system security, and it is through the inter-service communication mechanism that the unified and mandatory access control of object services is realized.
如图18所示的对象管理服务体,统一维护系统中的各种对象或端口,例如文件对象、内存对象等,提供一个统一机制实现服务的注册、查询等操作。为其它服务体提供统一的对象管理服务,如创建对象、返回对象的句柄,扮演了名字服务器的角色。在服务体模型中,端口、服务和对象是等价的概念,使用对象管理服务体统一控制对对象的访问。每个服务体提供若干服务,每种服务等价为一个对象,服务体通过服务所对应的端口对外提供服务。对象管理服务体统一管理所有对象,并将其组织成树状结构。对象管理器通过查找上述树状结构找到被访问对象。The object management service body shown in Figure 18 uniformly maintains various objects or ports in the system, such as file objects, memory objects, etc., and provides a unified mechanism to realize service registration, query and other operations. It provides unified object management services for other service bodies, such as creating objects and returning object handles, playing the role of a name server. In the service body model, ports, services and objects are equivalent concepts, and the object management service body is used to uniformly control access to objects. Each service body provides several services, and each service is equivalent to an object, and the service body provides external services through the port corresponding to the service. The object management service body manages all objects uniformly and organizes them into a tree structure. The object manager finds the accessed object by searching the above tree structure.
内存管理子系统由物理存储管理服务体和虚存管理子系统两个部分组成。The memory management subsystem consists of two parts: the physical storage management server and the virtual memory management subsystem.
物理存储管理服务体主要提供物理页面的分配、回收和查询等服务。该服务体在基本空间的共享段预留了相应尺寸的空间,以映射所有可分配的物理内存供该服务体使用。同时,将空闲的物理内存按其存储尺寸组织成不同的空闲链表,以支持高效的查询服务。The physical storage management service body mainly provides services such as allocation, recycling, and query of physical pages. The service body reserves a space of corresponding size in the shared segment of the basic space to map all the allocatable physical memory for use by the service body. At the same time, the free physical memory is organized into different free linked lists according to its storage size to support efficient query services.
虚存管理子系统包括虚存管理服务体、Pager服务体和Memory服务体,并定义了与虚存管理相关的四个对象:space对象代表服务体的虚存空间;pager对象负责数据的管理;memory对象按照用户的访问权限提供pager对象的不同视图;cache对象则是对pager对象中的数据进行缓冲。这四个对象之间的关系如图19所示。The virtual memory management subsystem includes virtual memory management service body, Pager service body and Memory service body, and defines four objects related to virtual memory management: the space object represents the virtual memory space of the service body; the pager object is responsible for data management; The memory object provides different views of the pager object according to the user's access rights; the cache object buffers the data in the pager object. The relationship between these four objects is shown in Figure 19.
Pager服务体负责页面数据的管理,包括:调入一个页面、写回并从cache对象中移出一个页面、写回修改过的页面数据以及设定、修改页面权限等。The Pager service body is responsible for the management of page data, including: calling a page, writing back and removing a page from the cache object, writing back modified page data, and setting and modifying page permissions.
Memory服务体负责memory对象的管理,包括:权限检查、确定与memory对象相关联的pager对象、根据权限设定memory视图,以及针对基本空间共享所提供如下四种服务:①将一个memory对象映射到共享段中;②根据权限提供memory对象的共享服务;③分配和④释放服务体的保留空间。The Memory service body is responsible for the management of the memory object, including: permission checking, determining the pager object associated with the memory object, setting the memory view according to the permission, and providing the following four services for basic space sharing: ①Map a memory object to In the shared section; ②Provide shared services of memory objects according to permissions; ③Allocate and ④Release the reserved space of the service body.
虚存管理服务体VMSB则主要管理cache对象和space对象。该服务体在物理内存管理服务体所提供服务的基础上,对memory对象和pager对象之间的交互提供映射、缓冲和共享等虚存服务。The virtual memory management service body VMSB mainly manages cache objects and space objects. Based on the services provided by the physical memory management service body, the service body provides virtual memory services such as mapping, buffering, and sharing for the interaction between the memory object and the pager object.
I/O管理服务体:实现各个设备和驱动程序之间的管理与协调等功能。为文件系统和驱动程序提供了统一的基础机制,以支持各种文件系统,从而简化文件系统的设计,同时提供了相当灵活的驱动程序模型,为可堆叠的文件系统和分层的驱动程序提供了强有力的支持。IO管理服务体使用设备对象和驱动程序对象来表示系统中的所有设备和驱动程序。IO管理服务体支持的分层驱动结构图和可堆叠文件系统结构图,分别如图20和21所示。I/O management service body: realize the functions of management and coordination among various devices and drivers. Provides a unified basic mechanism for file systems and drivers to support various file systems, thereby simplifying the design of file systems, and provides a fairly flexible driver model for stackable file systems and layered drivers. strong support. The IO management server uses device objects and driver objects to represent all devices and drivers in the system. The hierarchical driver structure diagram and the stackable file system structure diagram supported by the IO management service body are shown in Figures 20 and 21 respectively.
Cache管理服务体:为了提高IO的效率,系统中单独提供Cache管理服务体,它与IO管理服务体、内存管理服务体和对象管理服务体共同协作,为各种文件系统和驱动程序的IO请求提供统一的缓存机制。Cache management service body: In order to improve the efficiency of IO, the Cache management service body is provided separately in the system. It cooperates with the IO management service body, memory management service body and object management service body to provide IO requests for various file systems and drivers. Provide a unified caching mechanism.
文件系统服务体:实现各种具体的文件系统驱动,例如FAT、EXT2、NTFS等。并且如果需要可以实现支持持久存储的文件系统。File system service body: implement various specific file system drivers, such as FAT, EXT2, NTFS, etc. And a filesystem that supports persistent storage can be implemented if desired.
如图22所示的Linux运行环境服务体为用户程序提供Linux运行环境,为用户提供与Linux相同的编程模型,同时实现了Linux应用程序的二进制兼容,可以重用已有的Linux应用程序,利用已有投资。Linux运行环境用端口来实现Linux的进程/线程抽象和捕获Linux应用程序的系统调用,同时利用服务体的扩展空间来实现Linux的进程地址空间。The Linux operating environment service body as shown in Figure 22 provides a Linux operating environment for user programs, provides users with the same programming model as Linux, and at the same time realizes binary compatibility of Linux applications, and can reuse existing Linux applications. There is investment. The Linux operating environment uses ports to realize Linux process/thread abstraction and capture system calls of Linux applications, and utilizes the expansion space of the service body to realize the Linux process address space.
服务体运行环境:提供一组规范、标准和编程环境,供用户实现自己的服务体(用户服务体),这也是在服务体/执行流模型中设计用户程序的标准方法,使用这种方式编写的用户程序能充分发挥服务体/执行流模型的优势,达到最好的效率。Service body operating environment: provide a set of norms, standards and programming environment for users to implement their own service body (user service body), which is also a standard method for designing user programs in the service body/execution flow model, written in this way The user program can give full play to the advantages of the service body/execution flow model to achieve the best efficiency.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100809949A CN100336019C (en) | 2004-10-26 | 2004-10-26 | Operating system based on server / execution stream model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100809949A CN100336019C (en) | 2004-10-26 | 2004-10-26 | Operating system based on server / execution stream model |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1667573A CN1667573A (en) | 2005-09-14 |
CN100336019C true CN100336019C (en) | 2007-09-05 |
Family
ID=35038685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100809949A Expired - Fee Related CN100336019C (en) | 2004-10-26 | 2004-10-26 | Operating system based on server / execution stream model |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100336019C (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662480B (en) * | 2009-09-01 | 2012-03-07 | 卡斯柯信号有限公司 | Log system based on access control |
CN101976203B (en) * | 2010-09-26 | 2013-04-10 | 清华大学 | Parallelized simulation multithread management method |
EP3365774B1 (en) | 2015-10-23 | 2022-04-06 | Oracle International Corporation | System and method for booting application servers in parallel |
CN108243056B (en) * | 2016-12-27 | 2020-11-20 | 大唐移动通信设备有限公司 | Method and device for acquiring abnormal information |
CN108304168A (en) * | 2018-02-27 | 2018-07-20 | 苏州商合仕物联科技有限公司 | A kind of edge calculations machine operating system |
CN111596962B (en) * | 2019-02-20 | 2023-05-30 | 中标软件有限公司 | Real-time microkernel system based on high-speed protocol channel and initialization method thereof |
CN113835863B (en) * | 2021-09-28 | 2024-07-09 | 深圳Tcl新技术有限公司 | Data communication method and software platform thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598562A (en) * | 1989-06-29 | 1997-01-28 | Digital Equipment Corporation | System and method for adding new waitable object types to object oriented computer operating system |
JP2000222197A (en) * | 1999-01-28 | 2000-08-11 | Nec Corp | Efficient system development method utilizing two templates |
CN1514354A (en) * | 2002-12-31 | 2004-07-21 | ����̩ƽ | Progress pole/linear procedure pole management method of construction member oriented backbone system internal core |
CN1519712A (en) * | 2003-01-22 | 2004-08-11 | 北京科泰世纪科技有限公司 | Method for running threaded/process in-local/remote based on task/leading routines and ageney components |
-
2004
- 2004-10-26 CN CNB2004100809949A patent/CN100336019C/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598562A (en) * | 1989-06-29 | 1997-01-28 | Digital Equipment Corporation | System and method for adding new waitable object types to object oriented computer operating system |
JP2000222197A (en) * | 1999-01-28 | 2000-08-11 | Nec Corp | Efficient system development method utilizing two templates |
CN1514354A (en) * | 2002-12-31 | 2004-07-21 | ����̩ƽ | Progress pole/linear procedure pole management method of construction member oriented backbone system internal core |
CN1519712A (en) * | 2003-01-22 | 2004-08-11 | 北京科泰世纪科技有限公司 | Method for running threaded/process in-local/remote based on task/leading routines and ageney components |
Also Published As
Publication number | Publication date |
---|---|
CN1667573A (en) | 2005-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996401B2 (en) | Task processing method and virtual machine | |
WO2020108303A1 (en) | Heterogeneous computing-based task processing method and software-hardware framework system | |
US8972699B2 (en) | Multicore interface with dynamic task management capability and task loading and offloading method thereof | |
JP4526412B2 (en) | Task management method and apparatus in multiprocessor system | |
CN100573456C (en) | A kind of paralleling multi-processor virtual machine system | |
CN101901207B (en) | Operating System and Working Method of Heterogeneous Shared Memory Multiprocessor System | |
CN102779047B (en) | A kind of embedded software supports platform | |
CN1867891A (en) | Method and apparatus for real-time multithreading | |
EP1880289B1 (en) | Transparent support for operating system services | |
CN1910554A (en) | Methods and apparatus for processor task migration in a multi-processor system | |
Barr et al. | Jist: Embedding simulation time into a virtual machine | |
CN101685391A (en) | Methods and system for managing computational resources of a coprocessor in a computing system | |
CN1967487A (en) | Cooperative scheduling using coroutines and threads | |
CN1991768A (en) | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource | |
CN101149728A (en) | A kind of multi-core processing system and its management method | |
CN102521024A (en) | Job scheduling method based on bioinformation cloud platform | |
Asmussen et al. | {M³x}: Autonomous Accelerators via {Context-Enabled}{Fast-Path} Communication | |
JPH0855035A (en) | Method and equipment for separation of transmission control for microkernel data processing system | |
Grasso et al. | A uniform approach for programming distributed heterogeneous computing systems | |
CN100336019C (en) | Operating system based on server / execution stream model | |
CN1945541A (en) | Processing operation information transfer control system and method | |
Penna et al. | On the performance and isolation of asymmetric microkernel design for lightweight manycores | |
Karau et al. | Scaling Python with Ray | |
Cowie | Scalable simulation framework API reference manual | |
JP2888420B2 (en) | Communication method between processes in multitasking architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070905 Termination date: 20151026 |
|
EXPY | Termination of patent right or utility model |