CN102722388A - 一种实现图形界面程序与cpu绑定的系统和方法 - Google Patents

一种实现图形界面程序与cpu绑定的系统和方法 Download PDF

Info

Publication number
CN102722388A
CN102722388A CN2012101739774A CN201210173977A CN102722388A CN 102722388 A CN102722388 A CN 102722388A CN 2012101739774 A CN2012101739774 A CN 2012101739774A CN 201210173977 A CN201210173977 A CN 201210173977A CN 102722388 A CN102722388 A CN 102722388A
Authority
CN
China
Prior art keywords
program
load
graphical interface
execution
cpu
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.)
Pending
Application number
CN2012101739774A
Other languages
English (en)
Inventor
王泽华
李永成
郑臣明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN2012101739774A priority Critical patent/CN102722388A/zh
Publication of CN102722388A publication Critical patent/CN102722388A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种实现图形界面程序与CPU绑定的系统和方法,系统包括fork建立单元,exec加载执行单元和exit退出单元。方法包括:所述方法包括如下步骤:(1).fork建立;(2).exec加载执行程序;(3).exit退出。本发明提供的实现图形界面程序与CPU绑定的系统和方法,在建立、加载执行程序的内核代码中添加进程绑定代码,将X程序绑定在主CPU的四个核上,提高了系统响应速度和性能。

Description

一种实现图形界面程序与CPU绑定的系统和方法
技术领域
本发明属于计算机处理领域,具体涉及一种实现图形界面程序与CPU绑定的系统和方法。
背景技术
龙芯刀片采用两片龙芯3A CPU结点作为系统核心,以AMD RS780E和AMDSB710为南北桥芯片互联而成。龙芯3A CPU结点采用四核设计,对于进程而言,龙芯刀片系统提供了八核的执行环境。相比单核执行环境,龙芯刀片的多核环境支持进程的并行执行,能极大地提高系统的工作效率。龙芯3A CPU结点的四个核共享四个二级cache,进程在3A CPU结点内迁移时不会造成cache失效,进程迁移对系统性能的影响不大,而当进程在3A CPU结点之间进行频繁迁移时,将导致大量cache失效进而影响系统性能。
龙芯刀片系统加载执行内核进入中标操作系统图形界面时,由于内核调度器的不足,图形界面X程序以及子进程在不同的3A CPU结点频繁迁移,由于cache的频繁失效使得系统进入图形界面迟缓或者进入图形界面后响应不及时,严重影响了用户的体验。系统可以通过脚本将图形界面X程序绑定在主CPU结点的4个核上。中标操作系统版本更新速度快,不同版本启动时读取文件的顺序有差别,常常是不同的操作系统版本需要将脚本放在不同的目录下,这为用户升级操作系统版本时带来了诸多不便。如果在内核代码中实现将图形界面X程序绑定在主CPU结点上,能提高系统代码的耦合性,减轻用户升级系统时的繁杂操作。同时,相比在应用程序调用脚本来绑定,内核层绑定操作能节省从应用程序层到内核层的时间开销,能提高系统的响应速度。
发明内容
为克服上述缺陷,本发明提供了一种实现图形界面程序与CPU绑定的系统和方法,在建立、加载执行新进程的内核代码中添加进程绑定代码,将图形界面程序绑定在主CPU的四个核上,提高了系统响应速度和性能。
为实现上述目的,本发明提供一种实现图形界面程序与CPU绑定的系统,其改进之处在于,所述系统包括fork建立单元、exec加载执行单元和exit退出单元;所述exec加载执行单元替换掉fork建立单元建立的子进程,加载执行程序;程序执行完毕后进入exit退出单元完成退出。
本发明提供的优选技术方案中,所述fork建立单元根据父进程的内容建立子进程,此时父进程与子进程具有共享相同的程序代码、相同的资源,资源包括文件和内存。
本发明提供的第二优选技术方案中,所述exec加载执行单元将建立的子进程内容加载替换成图形界面程序的内容并执行。
本发明提供的第三优选技术方案中,所述exec加载执行单元按照执行流程,依次包括准备模块、加载模块和执行模块。
本发明提供的第四优选技术方案中,所述准备模块打开要加载执行的程序所对应的文件,拷贝程序运行环境和执行参数;所述加载模块释放旧进程的信号和文件资源,并判断当前加载的程序是否是图形界面程序,如果是则将图形界面程序绑定到主CPU的四个核上,如果不是则不做绑定操作,最后加载图形界面程序替换掉fork建立的子进程;所述执行模块执行加载的程序。
本发明提供的第五优选技术方案中,在所述执行模块完成程序的执行后,所述exit退出单元执行退出操作。
本发明提供的第六优选技术方案中,所述CPU是龙芯3A CPU。
本发明提供的第七优选技术方案中,提供一种实现图形界面程序与CPU绑定的方法,其改进之处在于,所述方法包括如下步骤:
(1).fork建立;
(2).exec加载执行程序;
(3).exit退出。
本发明提供的第八优选技术方案中,在所述步骤1中,建立图形界面程序。
本发明提供的第九优选技术方案中,所述步骤2包括如下具体步骤:
(2-1).打开要加载的程序文件;
(2-2).拷贝运行环境和执行参数;
(2-3).寻找可执行文件装载函数;
(2-4).将程序的文件名拷贝到进程描述符;
(2-5).释放旧程序的信号和文件资源;
(2-6).对加载的程序是否是图形界面程序进行判断,如果是则进行步骤2-7,否则进行步骤2-9;
(2-7).根据图形界面程序的名称找到图形界面程序的PID;
(2-8).将图形界面程序绑定在主CPU的四个核上;
(2-9).加载程序,建立内存空间映射;
(2-10).改变程序指针和堆栈指针,执行程序。
与现有技术比,本发明提供的一种实现图形界面程序与CPU绑定的系统和方法,使中标操作系统图形界面程序在建立、加载执行新程序的内核代码中添加进程绑定代码,将图形界面程序绑定在主CPU的四个核上;而且CPU绑定具有继承性,图形界面程序fork出的子进程也将绑定在主CPU的四个核,因此与图形界面相关的进程都将在主CPU的四个核上执行,避免频繁的进程迁移而带来的性能损失,提高了系统响应速度和性能。
附图说明
图1为实现图形界面模块与CPU绑定的方法的流程图。
具体实施方式
一种实现图形界面与CPU绑定的系统,包括fork建立单元,exec加载执行单元和exit退出单元。
所述fork建立单元根据父进程的内容建立子进程。所述exec加载执行单元加载图形界面程序替换掉新建的子进程。在所述执行模块完成程序的执行后,所述exit退出单元执行退出操作。
所述exec加载执行单元包括准备模块、加载模块和执行模块。
所述准备模块打开要加载执行的新程序所对应的文件,拷贝程序运行环境和执行参数为加载执行新程序作准备;所述加载模块释放旧进程的信号和文件资源,并判断当前加载的程序是否是图形界面程序,如果是则将图形界面程序绑定到主CPU的四个核上,如果不是则不做绑定操作,最后加载图形界面程序替换掉fork新建的子进程。所述执行模块执行刚加载的新程序。
所述CPU是龙芯3A CPU。
如图1所示,提供一种实现图形界面程序与CPU绑定的方法,所述方法包括如下步骤:
(1).fork建立;
(2).exec加载执行程序;
(3).exit退出。
在所述步骤1中,建立图形界面程序。
在所述步骤2包括如下具体步骤:
(2-1).打开要加载的新程序文件;
(2-2).拷贝运行环境和执行参数;
(2-3).寻找可执行文件装载函数;
(2-4).将新程序的文件名拷贝到进程描述符;
(2-5).释放旧程序的信号和文件资源;
(2-6).对加载的程序是否是图形界面程序进行判断,如果是则进行步骤2-7,否则进行步骤2-9;
(2-7).根据图形界面程序的名称找到图形界面程序的PID;
(2-8).将图形见面绑定在主CPU的四个核上;
(2-9).加载程序,建立内存空间映射;
(2-10).改变程序指针和堆栈指针,执行程序。
在Linux内核中,进程可以用进程描述符task_struct来表示,其中的pid字段可以用来标识进程,cpus_allowed字段可以用来将进程绑定特定的CPU上执行,即设置进程的CPU亲和性,comm字段保存了进程的可执行文件名。对于大部分进程来说,都要经历fork建立、exec加载执行新程序和exit退出三个阶段。
系统调用进入exec后打开将要加载的新程序,拷贝运行环境和执行参数为执行新程序作准备。寻找合适的可执行文件装载函数,在装载函数函数里,将新程序的文件名拷贝到进程描述符的comm字段后,释放旧进程申请的信号量和打开的文件资源,判断当前加载的新程序是否为中标操作系统图形界面X程序,如果是,遍历进程描述符链表,根据进程名获取X程序的进程ID,调用系统调用setaffinity将X程序绑定在主CPU的四个核上,从而实现X程序绑定。最后通过改变程序指针和堆栈指针开始执行新程序。
最后,通过如下方式来验证中标操作系统图形界面X程序是否已绑定在主CPU的四个核上:
#ps-CX //查看X程序的pid
#taskset-cpX程序的pid //输出结果为0~3,表明已将X程序绑定在主CPU的四个核上。
需要声明的是,本发明内容及具体实施方式意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理启发下,可作各种修改、等同替换、或改进。但这些变更或修改均在申请待批的保护范围内。

Claims (10)

1.一种实现图形界面程序与CPU绑定的系统,其特征在于,所述系统包括fork建立单元、exec加载执行单元和exit退出单元;所述exec加载执行单元替换掉fork建立单元建立的子进程,加载执行程序;程序执行完毕后进入exit退出单元完成退出。
2.根据权利要求1所述的系统,其特征在于,所述fork建立单元根据父进程的内容建立子进程,此时父进程与子进程具有共享相同的程序代码、相同的资源,资源包括文件和内存。
3.根据权利要求1所述的系统,其特征在于,所述exec加载执行单元将建立的子进程内容加载替换成图形界面程序的内容并执行。
4.根据权利要求3所述的系统,其特征在于,所述exec加载执行单元按照执行流程,依次包括准备模块、加载模块和执行模块。
5.根据权利要求4所述的系统,其特征在于,所述准备模块打开要加载执行的程序所对应的文件,拷贝程序运行环境和执行参数;所述加载模块释放旧进程的信号和文件资源,并判断当前加载的程序是否是图形界面程序,如果是则将图形界面程序绑定到主CPU的四个核上,如果不是则不做绑定操作,最后加载图形界面程序替换掉fork建立的子进程;所述执行模块执行加载的程序。
6.根据权利要求4所述的系统,其特征在于,在所述执行模块完成程序的执行后,所述exit退出单元执行退出操作。
7.根据权利要求1所述的系统,其特征在于,所述CPU是龙芯3A CPU。
8.一种实现图形界面程序与CPU绑定的方法,其特征在于,所述方法包括如下步骤:
(1).fork建立;
(2).exec加载执行程序;
(3).exit退出。
9.根据权利要求8所述的方法,其特征在于,在所述步骤1中,建立图形界面程序。
10.根据权利要求8所述的方法,其特征在于,所述步骤2包括如下具体步骤:
(2-1).打开要加载的程序文件;
(2-2).拷贝运行环境和执行参数;
(2-3).寻找可执行文件装载函数;
(2-4).将程序的文件名拷贝到进程描述符;
(2-5).释放旧程序的信号和文件资源;
(2-6).对加载的程序是否是图形界面程序进行判断,如果是则进行步骤2-7,否则进行步骤2-9;
(2-7).根据图形界面程序的名称找到图形界面程序的PID;
(2-8).将图形界面程序绑定在主CPU的四个核上;
(2-9).加载程序,建立内存空间映射;
(2-10).改变程序指针和堆栈指针,执行程序。
CN2012101739774A 2012-05-30 2012-05-30 一种实现图形界面程序与cpu绑定的系统和方法 Pending CN102722388A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101739774A CN102722388A (zh) 2012-05-30 2012-05-30 一种实现图形界面程序与cpu绑定的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101739774A CN102722388A (zh) 2012-05-30 2012-05-30 一种实现图形界面程序与cpu绑定的系统和方法

Publications (1)

Publication Number Publication Date
CN102722388A true CN102722388A (zh) 2012-10-10

Family

ID=46948167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101739774A Pending CN102722388A (zh) 2012-05-30 2012-05-30 一种实现图形界面程序与cpu绑定的系统和方法

Country Status (1)

Country Link
CN (1) CN102722388A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020971A (zh) * 2016-05-10 2016-10-12 广东睿江云计算股份有限公司 云主机系统中的cpu调度方法及装置
WO2016197441A1 (zh) * 2015-06-09 2016-12-15 宇龙计算机通信科技(深圳)有限公司 基于多核处理器的资源调度方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1773412A (zh) * 2004-11-10 2006-05-17 中国人民解放军国防科学技术大学 数据完整性保护方法
CN101667138A (zh) * 2008-09-04 2010-03-10 国际商业机器公司 混合计算环境以及混合计算环境中的数据处理方法
US20100146254A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute Method for binarizing initial script on operating system and operating method of binary script
CN101901167A (zh) * 2010-07-22 2010-12-01 网御神州科技(北京)有限公司 一种多cpu架构下的多网络安全审计方法和系统
CN102045199A (zh) * 2010-12-17 2011-05-04 天津曙光计算机产业有限公司 一种多路服务器多缓冲区并行发包的性能优化方法
US8078910B1 (en) * 2008-12-15 2011-12-13 Open Invention Network, Llc Method and system for providing coordinated checkpointing to a group of independent computer applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1773412A (zh) * 2004-11-10 2006-05-17 中国人民解放军国防科学技术大学 数据完整性保护方法
CN101667138A (zh) * 2008-09-04 2010-03-10 国际商业机器公司 混合计算环境以及混合计算环境中的数据处理方法
US20100146254A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute Method for binarizing initial script on operating system and operating method of binary script
US8078910B1 (en) * 2008-12-15 2011-12-13 Open Invention Network, Llc Method and system for providing coordinated checkpointing to a group of independent computer applications
CN101901167A (zh) * 2010-07-22 2010-12-01 网御神州科技(北京)有限公司 一种多cpu架构下的多网络安全审计方法和系统
CN102045199A (zh) * 2010-12-17 2011-05-04 天津曙光计算机产业有限公司 一种多路服务器多缓冲区并行发包的性能优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
史蒂文斯: "《UNIX网络编程 卷1:套接字联网API》", 31 July 2010, 人民邮电出版社 *
张荣亮: "Linux操作系统内核分析与研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
骆耀祖: "《Linux操作系统分析教程》", 31 May 2004, 清华大学出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016197441A1 (zh) * 2015-06-09 2016-12-15 宇龙计算机通信科技(深圳)有限公司 基于多核处理器的资源调度方法及装置
CN106020971A (zh) * 2016-05-10 2016-10-12 广东睿江云计算股份有限公司 云主机系统中的cpu调度方法及装置
CN106020971B (zh) * 2016-05-10 2020-01-31 广东睿江云计算股份有限公司 云主机系统中的cpu调度方法及装置

Similar Documents

Publication Publication Date Title
US9904527B1 (en) Optimizing API implementer programs using fine-grained code analysis
EP2115582B1 (en) Controlling instruction execution in a processing environment
CN102053831B (zh) 一种Linux操作系统的定制方法及系统
AU2012203277B2 (en) Methods and systems for executing software applications using hardware abstraction
US9098653B2 (en) Verifying processor-sparing functionality in a simulation environment
JP2006018814A (ja) 仮想マシン環境におけるエミュレートされたデバイスの開発のためのシステムおよび方法
CN102662740B (zh) 非对称多核系统及其实现方法
CN104598841B (zh) 一种面向终端安全的双系统引导方法和装置
CN103365668B (zh) 一种动态链接库装载和链接的方法、装置
CN105204913A (zh) 一种在Android操作系统上运行Linux应用程序的方法及系统
CN105975816A (zh) 移动终端下基于虚拟技术的代码保护方法及系统
CN105955239B (zh) 一种基于共享内存的通用测试平台快速构建方法
KR101691063B1 (ko) 콜백을 이용하는 isa 브리징
CN104182234A (zh) 一种业务处理方法和业务系统
CN101777007A (zh) 片上多核处理器的并行功能仿真系统及其方法
CN103440457A (zh) 基于进程模拟的二进制程序分析系统
CN112487092B (zh) 一种基于区块链的智能合约调用方法及装置
CN104834504A (zh) 基于mcu和dsp主从协同工作的soc双核架构及其工作方法
CN102722388A (zh) 一种实现图形界面程序与cpu绑定的系统和方法
CN102331961A (zh) 并行模拟多个处理器的方法及系统、调度器
CN105094870A (zh) 64位Linux操作系统兼容32位应用软件的方法
CN101866314A (zh) 一种软件测试的方法及软件测试系统
CN113419820B (zh) 实时虚拟机的部署方法和云平台
US7882336B2 (en) Employing a buffer to facilitate instruction execution
US11163575B2 (en) Widening memory access to an aligned address for unaligned memory operations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121010