CN114020481A - 一种防止多个进程访问同一任意波形发生器的方法 - Google Patents
一种防止多个进程访问同一任意波形发生器的方法 Download PDFInfo
- Publication number
- CN114020481A CN114020481A CN202111232380.8A CN202111232380A CN114020481A CN 114020481 A CN114020481 A CN 114020481A CN 202111232380 A CN202111232380 A CN 202111232380A CN 114020481 A CN114020481 A CN 114020481A
- Authority
- CN
- China
- Prior art keywords
- waveform generator
- arbitrary waveform
- accessed
- state
- file
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000005259 measurement Methods 0.000 description 9
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种防止多个进程访问同一任意波形发生器的方法,属于仪器技术领域,进程在访问由机箱号和槽位号指定的任意波形发生器之前,查看由机箱号和槽位号标识的任意波形发生器状态文件,确定该任意波形发生器是否正被或者曾被其他进程访问,如果未被访问则向任意波形发生器状态文件写入当前进程ID,并打开该任意波形发生器,如果正被或者曾被访问则尝试取消占用或者曾经占用该任意波形发生器的进程,删除与该任意波形发生器具有相同进程ID的所有任意波形发生器状态文件,创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程ID,并打开该任意波形发生器,之后可进行对该任意波形发生器的访问。
Description
技术领域
本发明涉及仪器技术领域,尤其涉及一种防止多个进程访问同一任意波形发生器的方法。
背景技术
在某些前沿科技研究领域,需要大量任意波形发生器协同工作,使用PXIe机箱的方式可以满足相关研究领域对于任意波形发生器数量的需求。但是当任意波形发生器数量增多以后,用户编写控制程序时会出现不同程序访问同一任意波形发生器的情况,这会导致设备可能的混乱,需要用户在编写程序时加以避免,因此提供一种不需要用户干预就能防止多个进程访问同一任意波形发生器的方法是一个需要解决的技术问题。
发明内容
为了解决以上技术问题,本发明提供了一种防止多个进程访问同一任意波形发生器的方法。
本发明的技术方案是:
本发明的技术方案包括:
一种防止多个进程访问同一任意波形发生器的方法,进程在访问由机箱号和槽位号指定的任意波形发生器之前,查看由机箱号和槽位号标识的任意波形发生器状态文件,确定该任意波形发生器是否正被或者曾被其他进程访问,如果未被访问则向任意波形发生器状态文件写入当前进程ID,并打开该任意波形发生器,如果正被或者曾被访问则尝试取消占用或者曾经占用该任意波形发生器的进程,删除与该任意波形发生器具有相同进程ID的所有任意波形发生器状态文件,创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程ID,并打开该任意波形发生器,之后可进行对该任意波形发生器的访问。
进一步的,
包括以下步骤:
(1)创建或者打开任意波形发生器状态锁文件;
其中,任意波形发生器状态锁文件用于同步多个进程对任意波形发生器的打开操作以及对任意波形发生器状态文件的访问;
(2)加锁任意波形发生器状态锁文件;
其中,持有锁的进程可以打开任意波形发生器并访问任意波形发生器状态文件;
(3)尝试访问由机箱号和槽位号标识的任意波形发生器状态文件;
(4)如果任意波形发生器状态文件不存在,表示该任意波形发生器未曾被访问,创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程的进程ID,打开由机箱号和槽位号指定的任意波形发生器,之后可访问该任意波形发生器;
(5)如果任意波形发生器状态文件存在,表示该任意波形发生器正被或者曾被其他进程访问,读取任意波形发生器状态文件中的进程ID;
其中,任意波形发生器状态文件中的进程ID是正在访问或者曾经访问该任意波形发生器的进程的进程ID;
其中,存在存储着曾经访问该任意波形发生器的进程的进程ID的任意波形发生器状态文件是由于各种原因导致的未执行关闭任意波形发生器的操作;
(6)向读取到的进程ID所指示的进程发送取消进程的信号;
其中,如果读取到的进程ID所指示的进程已退出,执行发送信号函数时会返回进程已退出错误,忽略由进程已退出导致的错误;
其中,进程被取消后,系统会释放与该任意波形发生器相关的资源;
(7)删除存储着与读取到的进程ID相同的进程ID的所有任意波形发生器状态文件;
其中,由于具有与读取到的进程ID相同的进程ID的进程已被取消,这一进程所访问的其他任意波形发生器已经处于未被访问的状态,需要删除相应的任意波形发生器状态文件;
其中,执行关闭任意波形发生器的操作时需要删除相应的任意波形发生器状态文件;
(8)创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程的进程ID,打开由机箱号和槽位号指定的任意波形发生器,之后可访问该任意波形发生器;
(9)解锁任意波形发生器状态锁文件;
(10)关闭任意波形发生器状态锁文件;
(11)访问该任意波形发生器。
附图说明
图1是本发明的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种防止多个进程访问同一任意波形发生器的方法,进程在访问由机箱号和槽位号指定的任意波形发生器之前,查看由机箱号和槽位号标识的任意波形发生器状态文件,确定该任意波形发生器是否正被或者曾被其他进程访问,如果未被访问则向任意波形发生器状态文件写入当前进程ID,并打开该任意波形发生器,如果正被或者曾被访问则尝试取消占用或者曾经占用该任意波形发生器的进程,删除与该任意波形发生器具有相同进程ID的所有任意波形发生器状态文件,创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程ID,并打开该任意波形发生器,之后可进行对该任意波形发生器的访问。
如图1所示,由测控计算机、PXIe机箱和任意波形发生器组成测控系统,测控计算机通过Jupyter Notebook运行Python测控程序经Python接口、C库函数和驱动程序实现对任意波形发生器的访问。
Jupyter Notebook在启动一个Python测控程序时创建一个页面,对应一个进程,不同的Python测控程序可能会访问系统中的同一个任意波形发生器。使用JupyterNotebook打开两个完全相同的Python测控程序,但Python测控程序文件名不同,对应两个进程。
用户使用创建进程1的Python测控程序先访问由机箱号和槽位号指定的一个任意波形发生器,当用户使用创建进程2的Python测控程序再访问由机箱号和槽位号指定的同一个任意波形发生器时,按照本发明提出的方法,进程2会向进程1发送取消进程的信号,导致进程1退出并释放与该任意波形发生器相关的资源,防止多个进程访问同一任意波形发生器。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种防止多个进程访问同一任意波形发生器的方法,其特征在于
进程在访问由机箱号和槽位号指定的任意波形发生器之前,查看由机箱号和槽位号标识的任意波形发生器状态文件,确定该任意波形发生器是否正被或者曾被其他进程访问,如果未被访问则向任意波形发生器状态文件写入当前进程ID,并打开该任意波形发生器,如果正被或者曾被访问则尝试取消占用或者曾经占用该任意波形发生器的进程,删除与该任意波形发生器具有相同进程ID的所有任意波形发生器状态文件,创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程ID,并打开该任意波形发生器,之后可进行对该任意波形发生器的访问。
2.根据权利要求1所述的方法,其特征在于,
包括以下步骤:
(1)创建或者打开任意波形发生器状态锁文件;
(2)加锁任意波形发生器状态锁文件;
(3)尝试访问由机箱号和槽位号标识的任意波形发生器状态文件;
(4)如果任意波形发生器状态文件不存在,表示该任意波形发生器未曾被访问,创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程的进程ID,打开由机箱号和槽位号指定的任意波形发生器,之后可访问该任意波形发生器;
(5)如果任意波形发生器状态文件存在,表示该任意波形发生器正被或者曾被其他进程访问,读取任意波形发生器状态文件中的进程ID;
(6)向读取到的进程ID所指示的进程发送取消进程的信号;
(7)删除存储着与读取到的进程ID相同的进程ID的所有任意波形发生器状态文件;
(8)创建由机箱号和槽位号标识的任意波形发生器状态文件,写入当前进程的进程ID,打开由机箱号和槽位号指定的任意波形发生器,之后可访问该任意波形发生器;
(9)解锁任意波形发生器状态锁文件;
(10)关闭任意波形发生器状态锁文件;
(11)访问该任意波形发生器。
3.根据权利要求1所述的方法,其特征在于,
步骤1)中,任意波形发生器状态锁文件用于同步一个以上进程对任意波形发生器的打开操作以及对任意波形发生器状态文件的访问。
4.根据权利要求1所述的方法,其特征在于,
步骤2)中,持有锁的进程可以打开任意波形发生器并访问任意波形发生器状态文件。
5.根据权利要求1所述的方法,其特征在于,
步骤5)中,任意波形发生器状态文件中的进程ID是正在访问或者曾经访问该任意波形发生器的进程的进程ID。
6.根据权利要求5所述的方法,其特征在于,
存在存储着曾经访问该任意波形发生器的进程的进程ID的任意波形发生器状态文件是由于各种原因导致的未执行关闭任意波形发生器的操作。
7.根据权利要求1所述的方法,其特征在于,
步骤6)中,如果读取到的进程ID所指示的进程已退出,执行发送信号函数时会返回进程已退出错误,忽略由进程已退出导致的错误;
进程被取消后,系统会释放与该任意波形发生器相关的资源。
8.根据权利要求1所述的方法,其特征在于,
步骤7)中,由于具有与读取到的进程ID相同的进程ID的进程已被取消,这一进程所访问的其他任意波形发生器已经处于未被访问的状态,需要删除相应的任意波形发生器状态文件;
执行关闭任意波形发生器的操作时需要删除相应的任意波形发生器状态文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111232380.8A CN114020481A (zh) | 2021-10-22 | 2021-10-22 | 一种防止多个进程访问同一任意波形发生器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111232380.8A CN114020481A (zh) | 2021-10-22 | 2021-10-22 | 一种防止多个进程访问同一任意波形发生器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020481A true CN114020481A (zh) | 2022-02-08 |
Family
ID=80057200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111232380.8A Withdrawn CN114020481A (zh) | 2021-10-22 | 2021-10-22 | 一种防止多个进程访问同一任意波形发生器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020481A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648939A (zh) * | 2016-12-30 | 2017-05-10 | 上海寰视网络科技有限公司 | 用于进程间资源共享的方法与设备 |
CN109033359A (zh) * | 2018-07-26 | 2018-12-18 | 北京天地和兴科技有限公司 | 一种多进程安全访问sqlite的方法 |
CN110399227A (zh) * | 2018-08-24 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 一种数据访问方法、装置和存储介质 |
CN112015525A (zh) * | 2019-05-29 | 2020-12-01 | 上海哔哩哔哩科技有限公司 | 任务进程阻塞管理方法 |
CN113419597A (zh) * | 2021-07-12 | 2021-09-21 | 山东浪潮科学研究院有限公司 | 一种任意波形发生器工作方法、设备及介质 |
-
2021
- 2021-10-22 CN CN202111232380.8A patent/CN114020481A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648939A (zh) * | 2016-12-30 | 2017-05-10 | 上海寰视网络科技有限公司 | 用于进程间资源共享的方法与设备 |
CN109033359A (zh) * | 2018-07-26 | 2018-12-18 | 北京天地和兴科技有限公司 | 一种多进程安全访问sqlite的方法 |
CN110399227A (zh) * | 2018-08-24 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 一种数据访问方法、装置和存储介质 |
CN112015525A (zh) * | 2019-05-29 | 2020-12-01 | 上海哔哩哔哩科技有限公司 | 任务进程阻塞管理方法 |
CN113419597A (zh) * | 2021-07-12 | 2021-09-21 | 山东浪潮科学研究院有限公司 | 一种任意波形发生器工作方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2500831A1 (en) | Method and apparatus for accessing database, database application system | |
KR20130115995A (ko) | 파일 시스템에 대한 체크포인트 | |
JPH06505819A (ja) | 並列使用マルチユーザ・リレーショナル・データベース管理システム及びその方法 | |
CN105183915B (zh) | 减少索引维护开销的多版本管理方法 | |
US10394797B2 (en) | Method and computing apparatus for managing main memory database | |
EP2945072A1 (en) | Method and apparatus for processing redo data of database | |
US20090055397A1 (en) | Multi-Dimensional Access Control List | |
CN107402821A (zh) | 共享资源的访问控制方法、装置和设备 | |
CN113448938A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115374759B (zh) | 在线文档编辑区域定位方法、装置、服务器及存储介质 | |
US8005872B2 (en) | Method for fast deletion of physically clustered data | |
US20080295145A1 (en) | Identifying non-orthogonal roles in a role based access control system | |
CN114356856A (zh) | 一种数据删除方法、装置、设备以及存储介质 | |
US20080010632A1 (en) | Processing large sized relationship-specifying markup language documents | |
CN114020481A (zh) | 一种防止多个进程访问同一任意波形发生器的方法 | |
CN112306980A (zh) | 日志处理方法及终端设备 | |
CN106557572A (zh) | 一种安卓应用程序文件的提取方法及系统 | |
WO2022267676A1 (zh) | 共享内存的数据处理方法、装置、设备和介质 | |
US9454556B2 (en) | Indexing using a lockless burst trie | |
CN112395141B (zh) | 一种数据页管理方法、装置、电子设备及存储介质 | |
CN113971977A (zh) | 存储器的读干扰影响检测方法、装置、设备及存储介质 | |
CN110874273B (zh) | 一种数据处理方法及装置 | |
EP4296870A1 (en) | Method for maintaining meta information of secure document, apparatus for the same, computer program for the same, and recording medium storing computer program | |
US20090157774A1 (en) | Character pattern-based file storage tool | |
CN114675968A (zh) | 一种线程运行方法、系统、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220208 |
|
WW01 | Invention patent application withdrawn after publication |