【技术实现步骤摘要】
一种用户进程与系统服务之间的通信方法、装置
本专利技术属于计算机
,尤其涉及一种用户进程与系统服务之间的通信方法、装置。
技术介绍
目前,处理器已进入多核/众核时代,然而,目前的操作系统仅以对称多处理器(SymmetricMulti-Processing,SMP)方式使用多核/众核处理器,并不能充分利用多核/众核处理器的并行处理能力。实验证明,当处理器超过16个核,现有Linux的性能不再线性增长反而降低。因此,有必要设计一种新的操作系统。微内核操作系统(MicrokernelOperatingSystem)结构,是20世纪80年代后期发展起来的。现代操作系统设计中的一个突出思想是把操作系统中更多的成分和功能放到更高的层次(及用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,这种技术被称为微内核技术。微内核的设计目标是将系统服务的实现和系统的基本操作规则分离开来,微内核将许多系统服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用系统服务。这些非常模块化的用户态服务用于完成操作系统中比较高级的操作,这样的设计使内核中最基本的部分的设计更简单。一个服务组件的出错并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分。基于微内核的操作系统具有如下特征:1)足够小的内核在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:实现与硬件紧密相关的处理;实现一些较基本的功能;负责客户和服务器之间 ...
【技术保护点】
一种用户进程与系统服务之间的通信方法,其特征在于,应用于多核平台,所述多核平台包括至少一个第一物理核以及至少一个第二物理核,所述第一物理核上运行有第一内核,所述第一内核上运行有第一代理模块以及一个或多个用户进程,所述第二物理核上运行有第二内核,所述第二内核上运行有第二代理模块以及系统服务,所述第一代理模块上保存有所述系统服务与所述用户进程共享的共享内存地址信息,所述方法包括:所述用户进程通过第一内核向所述第一代理模块发送第一请求,所述第一请求中携带有所述用户进程需要所述系统服务处理的第一数据;所述第一代理模块接收到第一请求后,通过所述第一内核将所述第一请求中携带的所述第一数据写入到与保存的所述共享内存地址信息对应的第一内存空间;所述系统服务通过所述第二内核以轮询的方式从所述第一内存空间读取所述第一数据,并进行处理,得到处理后的第一数据,并将所述处理后的第一数据写入到所述第一内存空间;所述第一代理模块通过所述第一内核以轮询的方式从所述第一内存空间读取所述处理后的第一数据,并通过所述第一内核将所述处理后的第一数据发送给所述用户进程。
【技术特征摘要】
1.一种用户进程与系统服务之间的通信方法,其特征在于,应用于多核平台,所述多核平台包括至少一个第一物理核以及至少一个第二物理核,所述第一物理核上运行有第一内核,所述第一内核上运行有第一代理模块以及一个或多个用户进程,所述第二物理核上运行有第二内核,所述第二内核上运行有第二代理模块以及系统服务,所述第一代理模块上保存有所述系统服务与所述用户进程共享的共享内存地址信息,所述方法包括:所述用户进程通过第一内核向所述第一代理模块发送第一请求,所述第一请求中携带有所述用户进程需要所述系统服务处理的第一数据;所述第一代理模块接收到第一请求后,通过所述第一内核将所述第一请求中携带的所述第一数据写入到与保存的所述共享内存地址信息对应的第一内存空间;所述系统服务通过所述第二内核以轮询的方式从所述第一内存空间读取所述第一数据,并进行处理,得到处理后的第一数据,并将所述处理后的第一数据写入到所述第一内存空间;所述第一代理模块通过所述第一内核以轮询的方式从所述第一内存空间读取所述处理后的第一数据,并通过所述第一内核将所述处理后的第一数据发送给所述用户进程;在所述第一代理模块通过所述第一内核以轮询的方式从所述第一内存空间读取所述处理后的第一数据,并通过所述第一内核将所述处理后的第一数据发送给所述用户进程之后,还包括:所述第一代理模块通过所述第一内核将所述共享内存地址信息发送给所述用户进程;所述用户进程根据所述共享内存地址信息建立与所述系统服务的连接,并保存所述用户进程与所述系统服务之间建立连接时所用的连接信息,所述连接信息包括所述系统服务的服务标识、所述共享内存地址信息。2.如权利要求1所述的方法,其特征在于,在所述用户进程通过第一内核向所述第一代理模块发送第一请求之前,还包括:判断所述用户进程和所述系统服务之间是否已经建立连接;如果否,则执行所述用户进程通过第一内核向所述第一代理模块发送第一请求以及该步骤之后的后续步骤,实现所述用户进程与所述系统服务之间的通信,并建立两者之间的连接;如果是,则所述用户进程根据所述连接信息,写入需要所述系统服务处理的第一数据到与所述连接信息中保存的共享内存地址信息对应的第一内存空间;所述系统服务从所述第一内存空间读取所述第一数据,并进行处理,得到处理后的第一数据,并将所述处理后的第一数据写入到所述第一内存空间;所述用户进程从所述第一内存空间读取所述处理后的第一数据。3.如权利要求1所述的方法,其特征在于,所述第一代理模块上保存有所述系统服务与所述用户进程共享的共享内存地址信息包括:所述系统服务通过所述第二内核向操作系统申请共享内存;所述系统服务通过所述第二内核向所述第二代理模块通知所述系统服务申请到的共享内存地址信息;所述第二代理模块向所述第一代理模块广播所述共享内存地址信息;所述第一代理模块保存所述共享内存地址信息。4.如权利要求1所述的方法,其特征在于,所述用户进程根据所述共享内存地址信息建立与所述系统服务的连接包括:所述系统服务将所述共享内存地址信息对应的第一内存空间映射至所述系统服务的虚拟地址空间;所述第一代理模块将所述共享内存地址信息对应的第一内存空间映射至所述第一代理模块的虚拟地址空间;所述用户进程将所述共享内存地址信息对应的第一内存空间映射至所述用户进程的虚拟地址空间。5.如权利要求1所述的方法,其特征在于,所述第一代理模块、所述用户进程、所述第二代理模块以及所述系统服务均为用户态程序。6.一种用户进程与系统服务...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。