CN115033472B - Interrupt driver model detection method based on thread cyclic scheduling serialization - Google Patents

Interrupt driver model detection method based on thread cyclic scheduling serialization Download PDF

Info

Publication number
CN115033472B
CN115033472B CN202210402661.1A CN202210402661A CN115033472B CN 115033472 B CN115033472 B CN 115033472B CN 202210402661 A CN202210402661 A CN 202210402661A CN 115033472 B CN115033472 B CN 115033472B
Authority
CN
China
Prior art keywords
interrupt
program
thread
sequencing
driver
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.)
Active
Application number
CN202210402661.1A
Other languages
Chinese (zh)
Other versions
CN115033472A (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.)
Beijing Sunwise Information Technology Ltd
Dalian University of Technology
Original Assignee
Beijing Sunwise Information Technology Ltd
Dalian University of Technology
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 Beijing Sunwise Information Technology Ltd, Dalian University of Technology filed Critical Beijing Sunwise Information Technology Ltd
Priority to CN202210402661.1A priority Critical patent/CN115033472B/en
Publication of CN115033472A publication Critical patent/CN115033472A/en
Application granted granted Critical
Publication of CN115033472B publication Critical patent/CN115033472B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Abstract

The invention discloses an interrupt driver model detection method based on thread cyclic scheduling serialization, and belongs to the field of software model detection. Interrupt-related information of the input interrupt driver, such as interrupt type, number, priority, etc., contained in the software is first collected. The preliminary source-to-source conversion process converts the interrupt driver into a standard multithread program, and then uses a critical-step thread-round-robin scheduling serialization process to achieve serialization of random interrupts, periodic interrupts, and event-triggered interrupts. And finally, selecting detection properties, and inputting a sequencing program to a limit model detection tool to obtain a detection result. The program sequencing process of the method realizes the sequencing processing of three types of interrupts and supports the multi-stage nesting of interrupts and the automatic analysis of interrupt disabling. The method can be used for detecting the defects of real space embedded software, such as crossing of a plurality of borders, zero debugging and the like, and has strong practicability.

Description

Interrupt driver model detection method based on thread cyclic scheduling serialization
Technical Field
The invention belongs to the field of software model detection, and particularly relates to an interrupt driver model detection method based on thread cyclic scheduling serialization.
Background
Interrupt drivers are widely used in the aerospace field, and in particular, an interrupt mechanism is a main means for realizing real-time interaction between an interrupt driver and hardware, and is an important part of the realization of real-time performance of an embedded system. In the field of security concerns, software security of interrupt drivers is particularly important.
Some existing model detection methods for interrupt drivers include a method of converting an interrupt driver into a sequencer. The sequencing method is realized by inserting a random interrupt calling function into a program point which is possibly interrupted in an interrupt driver, can only be used for simulating the execution condition of random interrupt, and cannot accurately and semantically model periodic interrupt and event-triggered interrupt. And conventional sequencing methods also do not analyze and model well in terms of interrupt disabling in interrupt drivers and nested execution of interrupts of different priorities. Thus, this coarse sequencing approach leads to a large number of false positives in the resulting test results.
Furthermore, interrupt drivers have similar multi-threaded program concurrency, but there are large differences in the manner of concurrency. The difference in concurrency is mainly represented by the fact that the interrupt drivers are asymmetric in interaction state of similar threads due to the different priorities of different interrupts. It is also because of the concurrent differences that the better model detection methods of current processing multithreaded programs are not applicable to interrupt driven programs.
Disclosure of Invention
The invention aims to design a model detection method of an interrupt driver based on thread cyclic scheduling sequencing to prevent the situation that the interrupt is introduced to cause the embedded system to have harmful concurrency, state complexity and unpredictable, and solve the software defects of malignant data competition, atomic violation and the like which threaten the safety and the stability of the system and exist in the interrupt driven embedded system.
The technical scheme of the invention is as follows:
a method for detecting an interrupt driver model based on thread cyclic scheduling serialization comprises the following specific steps:
1) The user selects and inputs an interrupt driver to be detected;
2) Automatically analyzing the interrupt type contained in the interrupt driving program, and inputting interrupt related information and appointed sequencing parameter values by a user;
3) Calculating the number of threads to be created according to the collected interrupt related information;
4) According to the calculated number of threads to be created and an event of triggering interruption by a trigger event provided by a user, converting an interrupt driver into a standard multithread program by using a source-to-source conversion method;
5) Converting the obtained standard multi-thread program into a sequenced program based on thread cyclic scheduling sequencing by using thread cyclic scheduling sequencing processing;
6) Selecting a detected program property;
7) Inputting the sequenced program into the bounding model detection tool: detecting the obtained sequenced program by using a limit model detection tool according to the selected detected program property and parameter setting;
8) Outputting a result: when the input interrupt driven embedded software has a software defect, outputting a result UNSAFE and a counterexample path of the defect; otherwise, when no defect exists in the software, outputting a result SAFE.
In the step 2), the interrupt driver automatically analyzes the interrupt type, and inputs interrupt related information and specified sequenced parameter values by a user, and the specific process includes:
2-1) resolving interrupts and the number of interrupts contained in the interrupt driver using a syntax analyzer;
2-2) the user fills out interrupt related information for the parsed interrupt, wherein the interrupt related information comprises interrupt type S, interrupt priority P, time constraint C of random interrupt, period T of periodic interrupt pi And Event events that can trigger Event-triggered interrupts;
2-3) designating a sequencing parameter value by a user, wherein the sequencing parameter value refers to a parameter unlock and a parameter round required by a generation sequencing program, the parameter unlock is used for setting the unfolding times of a cycle in an interrupt driver when the sequencing program is converted, and the parameter round is used for converting the times of a cycle scheduling thread in a main function in the obtained sequencing program when the sequencing program is converted;
in step 3), according to the collected interrupt related information, calculating the number of threads to be created, wherein the specific process comprises the following steps:
3-1) for each random interrupt in the interrupt driver, the number of interrupt threads correspondingly created in the sequencing program is at least equal to the value of the parameter round, said interrupt threads representing threads of the same function body as the corresponding interrupt;
3-2) for each periodic interrupt in the interrupt driver, the calculation formula for the number of periodic interrupt threads correspondingly created in the serialization procedure is:
wherein C is pi Representing the number of periodic interrupts that need to be created, T w Representing interrupt driver master tasksThe total code line number contained in the main task after all functions are connected in an inlined way and all loops are unfolded, U represents the value of a parameter unwind, T pi A period representing a period interrupt;
3-3) for each event-triggered interrupt in the interrupt driver, the number of event-triggered interrupt threads correspondingly created in the serialization procedure is at least equal to the value of the parameter round;
in step 4), the interrupt driver is converted into a standard multithreaded program using a source-to-source conversion method, comprising:
4-1) using a main task part in the interrupt driver as one thread in the standard multithreaded program after conversion through a source-to-source conversion method;
4-2) adding corresponding interrupt thread creation functions into the standard multithreading program according to the calculated number of threads to be created;
in step 5), the obtained standard multithread program is converted into a sequencing program of an interrupt driver by using thread cyclic scheduling sequencing processing, and the specific process comprises the following steps:
5-1) converting the standard multithreaded program obtained in step 4) into a corresponding sequenced program using a source-to-source conversion process employing a conversion method in a model detection tool Lazy-CSeq, a context-bounded model detection tool mainly used for verifying concurrent programs written in the C language, based on a sequencing technique that converts concurrent programs into non-deterministic sequenced programs. The sequencing program does not contain priority information, and any threads can interrupt execution mutually.
5-2) three types of interrupt handling procedures are performed. Taking the sequenced program output in the step 5-1) as input, modifying and adding corresponding thread creation functions and constraint conditions for each thread in the sequenced program according to the second-level nested relation of the execution semantics and the priorities of different interrupt types, and outputting the sequenced program containing the priority information; the thread creation function is a function which is provided in the tool Lazy-CSeq and used for creating threads without priority information, and the position of the function inserted into codes is modified according to the type of interrupt, so that different triggering modes for simulating three types of interrupt are realized. The constraint condition ensures that threads with different priorities meet the secondary nested execution condition.
5-3) performing interrupt disable enabling processing. Identifying an interrupt mask function, and adding interrupt mask constraint conditions for corresponding interrupt threads in the sequenced program output in the step 5-2) to obtain a sequenced program based on thread cyclic scheduling sequencing; the interrupt mask constraint ensures that when a mask function corresponding to an interrupt is executed in a program statement, the corresponding interrupt thread cannot be executed.
In step 6), selecting the detected program property, comprising:
the nature of the software defect in the interrupt driven embedded software that is desired to be detected, such as a group out of range, debug, user-defined assertions, etc., is selected.
In step 7), the bounding model detection tool CBMC.
Compared with the prior art, the invention has the advantages that:
1) According to the invention, the program execution semantics of three interrupt types are accurately modeled, so that the problem of false alarm easily caused by the rough modeling interrupt driver execution semantics in the interrupt driver model detection method is solved;
2) The invention can verify software defects such as malignant data competition, atomic violation and the like, improves the accuracy of detection results while avoiding false report, and carries out counterexample path output on verified competition relationship, thereby effectively improving the efficiency of manual inspection;
3) The invention has high automation degree, is provided with the tool UI page, and is convenient and practical.
Drawings
FIG. 1 is a flow chart of the present invention.
Detailed Description
The following describes the embodiments of the present invention further with reference to the drawings and technical schemes.
As shown in fig. 1, the specific implementation steps of the interrupt driver model detection method based on thread loop scheduling serialization according to the present invention are as follows:
step 1: the user inputs the detected interrupt driver source file. The interrupt driving source program generally comprises source codes of a main task formed by a plurality of functions and source codes of interrupt processing programs corresponding to interrupts related to the task.
Step 2: the number of interrupts in the interrupt driver is automatically resolved and the configuration parameters for the test are specified by the user. The parameters configured are the type, priority, random interrupt time constraint and interrupt period of each interrupt in the interrupt driven source program, the round and unbind parameters of the sequenced program, and various properties that the user wishes to verify. The specific process of the step 2 is as follows:
step 21: the interrupts and the number of interrupts contained in the interrupt driver are parsed using a syntax parser.
Step 22: the user inputs the type of interrupt, priority, random interrupt time constraints and interrupt period, the round and unbind parameters of the sequenced program, and the nature of the verification desired. And saving the parameters input by the user into an interrupt operation list, and initializing the interrupt operation list to be empty.
Step 23: the interrupt operation list and the round and unbind parameters entered by the user are passed to the tool as character streams for various properties that it is desired to verify.
Step 3: according to the collected interrupt related information, the number of threads to be created is calculated, and the specific process is as follows:
step 31: for each random interrupt in the interrupt driver, the number of interrupt threads correspondingly created in the sequencing program is at least equal to the value of a parameter round, and the interrupt threads represent threads of the same functional body as the corresponding interrupt;
step 32: calculating the period of each period interrupt in the interrupt driver, and setting the parameter T w U and T pi Inputting a calculation formulaObtaining a period interrupt period C pi
Step 33: determining the number of event-triggered interrupt threads to be created according to the number of events which can trigger the event-triggered interrupt and are input by a user, and ensuring that the number of the event-triggered interrupt threads to be created correspondingly in a sequencing program is at least equal to the value of a parameter round;
step 4: and performing source-to-source conversion processing on the detected interrupt driver source file to obtain a standard multithreaded program. The specific process of the step 4 is as follows:
step 41: the initialization multithreading process is null.
Step 42: the interrupt driver source program is opened, source file data is read row by row in function body units, and each time a function body of the source program is read, the type of the function body is judged through grammar analysis to carry out different processing. The function types include an initialization function portion and a polling function portion of a main function of the interrupt driver, and service function volumes of different priority interrupts.
Step 43: if the function is an initialized function part in the main function, converting the function into an original initialized function part and a creation thread part of the multi-thread program; the polling function part in the main function is converted into a polling function body part meeting the detection requirement; the service function of the low priority interrupt is converted into a thread with low priority information; high priority service functions translate into threads with high priority information.
Step 44: the standard multithreaded program converted by the source program is taken as output.
Step 5: and (3) processing the standard multithreaded program output in the step (4) by using a thread-based round robin scheduling mechanism to obtain a sequenced program of the interrupt driver. The specific process of the step 5 is as follows:
step 51: the standard multithread program is converted into a corresponding sequencing program by using a source-to-source conversion processing method, wherein the sequencing program does not contain priority information, and any threads can interrupt execution mutually.
Step 52: three types of interrupt handling procedures are performed. The output sequence program in the step 51 is taken as input, corresponding thread creation functions and constraint conditions are modified and added for each thread in the sequence program according to the two-level nested relation of the execution semantics and the priority of interrupt different types, wherein the thread creation functions are functions of the threads for creating no priority information, which are arranged in a tool Lazy-CSeq, and the positions of the functions inserted into codes are modified according to the interrupt types in the step. If the sequencing program contains random interrupt, the thread creation function corresponding to the random interrupt is not modified; if the sequenced program contains periodic interrupt, a thread creation function corresponding to the periodic interrupt thread is inserted behind each statement of the main task thread, and the main_thread function in the sequenced program is processed according to the interrupt period set by a user, and interrupt period count is added behind each tag; if the sequenced program contains event trigger interrupt, the thread creation function corresponding to the event trigger interrupt will be inserted into the event code of the main task thread for triggering interrupt. The constraint related to priority will be used to determine whether the current interrupt meets the execution condition, and the rule of inserting the constraint ensures that threads with high priority execute atomically, threads with medium priority can be interrupted by interrupt threads with high priority, but not by low priority, and threads with medium and high priority can be interrupted by interrupt threads with low priority. Furthermore, the same priority interrupts may not interrupt execution with each other.
Step 53: interrupt disable enabling processing is performed. The output of step 52 is traversed. When an interrupt disable enabling statement exists in the sequenced program main function, the corresponding interrupt constraint is inserted after the masking statement, and the constraint of the corresponding interrupt is released after the masking statement is released. And adding a condition at a corresponding interrupt thread in the main function, wherein when constraint exists in the interrupt, the masked interrupt thread cannot be scheduled to be executed.
Step 6: the user selects a property to be detected, such as a group crossing, zero debugging, user-defined assertions, etc., the selected property being supported by the bounding model detection tool.
Step 7: and detecting whether the sequenced interrupt driver has a series of user-specified detection problems such as data competition or not by using a limit model detection tool CBMC.
The boundary model detection tool CBMC supports the detection of C89, C99, most C11, and most compiler-extended programs provided by gcc and Visual Studio. CBMC can verify memory security (including array boundary checking and pointer security usage checking), check for anomalies, check for variations of undefined behavior, and user-specified assertions. In addition, it can check consistency of C and C++ with other languages (such as Verilog).
The specific process of the step 8 is as follows:
step 81: the sequenced program that processes interrupts of different priorities and disable operations is input to the CBMC and the counterexample output is set.
Step 82: the CBMC outputs a detection result, returns UNSAFE if violation property assertion exists, and outputs a visualized counterexample path; if there is no false assertion, the SAFE is returned.

Claims (2)

1. An interrupt driver model detection method based on thread cyclic scheduling serialization is characterized by comprising the following steps:
1) The user selects and inputs an interrupt driver to be detected;
2) Automatically analyzing the interrupt type contained in the interrupt driving program, and inputting interrupt related information and appointed sequencing parameter values by a user;
3) Calculating the number of threads to be created according to the collected interrupt related information;
4) According to the calculated number of threads to be created and an event of triggering interruption by a trigger event provided by a user, converting an interrupt driver into a standard multithread program by using a source-to-source conversion method;
5) Converting the obtained standard multi-thread program into a sequenced program based on thread cyclic scheduling sequencing by using thread cyclic scheduling sequencing processing;
6) Selecting a detected program property;
7) Inputting the sequenced program into the bounding model detection tool: detecting the obtained sequenced program by using a limit model detection tool according to the selected detected program property and parameter setting;
8) Outputting a result: when the input interrupt driven embedded software has a software defect, outputting a result UNSAFE and a counterexample path of the defect; otherwise, when no defect exists in the software, outputting a result SAFE; in the step 2), the specific process comprises the following steps:
2-1) resolving interrupts and the number of interrupts contained in the interrupt driver using a syntax analyzer;
2-2) the user fills out interrupt related information for the parsed interrupt, wherein the interrupt related information comprises interrupt type S, interrupt priority P, time constraint C of random interrupt, period T of periodic interrupt pi And an Event triggering an Event-triggered interrupt;
2-3) designating a sequencing parameter value by a user, wherein the sequencing parameter value refers to a parameter unwrand and a parameter round set value required by a generation sequencing program, the parameter unwrand is used for setting the unfolding times of a cycle in an interrupt driver when the sequencing program is converted, and the parameter round is used for setting the times of a cycle scheduling thread in a main function in the obtained sequencing program when the sequencing program is converted;
in the step 3), the specific process comprises the following steps:
3-1) for each random interrupt in the interrupt driver, the number of interrupt threads correspondingly created in the sequencing program is at least equal to the value of the parameter round, the interrupt threads representing threads of the same function body as the corresponding interrupt;
3-2) for each periodic interrupt in the interrupt driver, the calculation formula for the number of periodic interrupt threads correspondingly created in the serialization procedure is:
wherein C is pi Representing the number of periodic interrupts that need to be created, T w Representing the total code line number contained in the main task after all functions in the main task of the interrupt drive program are inlined and all loops are unfolded, U represents the value of a parameter unwind, T pi Representation ofA period of the period interrupt;
3-3) for each event-triggered interrupt in the interrupt driver, the number of event-triggered interrupt threads correspondingly created in the serialization procedure is at least equal to the value of the parameter round;
in step 4), specifically, the method includes:
4-1) using a source-to-source conversion method to take a main task part in an interrupt driver as one thread in a standard multithreading program, wherein the source-to-source conversion method refers to modifying an input interrupt driver according to a standard multithreading program mode;
4-2) adding corresponding interrupt thread creation functions into the standard multithreading program according to the calculated number of threads to be created;
in step 5), the specific process comprises:
5-1) converting the standard multithreaded program obtained in step 4) into a corresponding sequenced program using a source-to-source conversion process; the source-to-source conversion treatment adopts a conversion method in a model detection tool Lazy-CSeq; the sequencing program does not contain priority information;
5-2) performing three types of interrupt handling procedures: taking the sequenced program output in the step 5-1) as input, modifying and adding corresponding thread creation functions and constraint conditions for each thread in the sequenced program according to the second-level nested relation of the execution semantics and the priorities of different interrupt types, and outputting the sequenced program containing the priority information; the thread creation function is a function which is provided in the tool Lazy-CSeq and used for creating threads without priority information, and the position of the function inserted into codes is modified according to the type of interrupt, so that different triggering modes of simulating three types of interrupt are realized; the constraint conditions ensure that threads with different priorities meet the secondary nested execution conditions;
5-3) performing interrupt disabling processing: identifying an interrupt mask function, and adding interrupt mask constraint conditions for corresponding interrupt threads in the sequenced program output in the step 5-2) to obtain a sequenced program based on thread cyclic scheduling sequencing; the interrupt shielding constraint condition ensures that when a shielding function corresponding to the interrupt is executed in a program statement, the corresponding interrupt thread cannot be executed;
in step 6), the nature of the software defect in the interrupt driven embedded software to be detected is selected, including array out-of-range, debug, and user-defined assertions.
2. The method for detecting a model of an interrupt driver based on thread loop scheduling serialization according to claim 1, wherein in step 7), the boundary model detection tool CBMC.
CN202210402661.1A 2022-04-18 2022-04-18 Interrupt driver model detection method based on thread cyclic scheduling serialization Active CN115033472B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210402661.1A CN115033472B (en) 2022-04-18 2022-04-18 Interrupt driver model detection method based on thread cyclic scheduling serialization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210402661.1A CN115033472B (en) 2022-04-18 2022-04-18 Interrupt driver model detection method based on thread cyclic scheduling serialization

Publications (2)

Publication Number Publication Date
CN115033472A CN115033472A (en) 2022-09-09
CN115033472B true CN115033472B (en) 2024-03-22

Family

ID=83119031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210402661.1A Active CN115033472B (en) 2022-04-18 2022-04-18 Interrupt driver model detection method based on thread cyclic scheduling serialization

Country Status (1)

Country Link
CN (1) CN115033472B (en)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063328A (en) * 2010-12-17 2011-05-18 北京控制工程研究所 System for detecting interrupt-driven type program data competition
CN102696045A (en) * 2009-07-10 2012-09-26 塞尔蒂卡姆公司 System and method for performing serialization of devices
CN109086215A (en) * 2018-10-18 2018-12-25 北京轩宇信息技术有限公司 A kind of embedded software unit testing case generation method and system
CN109388573A (en) * 2018-10-23 2019-02-26 北京轩宇信息技术有限公司 A kind of driving program Runtime error checking method and system of the interruption that nothing is failed to report
CN109635568A (en) * 2018-11-26 2019-04-16 华中科技大学 A kind of concurrent leak detection method combined based on static analysis and fuzz testing
CN109710488A (en) * 2018-12-14 2019-05-03 北京工业大学 A kind of time series generation method based on block chain technology
CN110704065A (en) * 2019-10-09 2020-01-17 大连理工大学 Compiler front-end differential test method based on illegal program input
CN111159022A (en) * 2019-12-20 2020-05-15 北京轩宇信息技术有限公司 Interrupt data access conflict detection method and device based on univariate access sequence mode
CN112134859A (en) * 2020-09-09 2020-12-25 上海沈德医疗器械科技有限公司 Control method of focused ultrasound treatment equipment based on ARM architecture
CN112631925A (en) * 2020-12-29 2021-04-09 北京轩宇信息技术有限公司 Method for detecting single variable atom violation defect
CN113783721A (en) * 2021-08-20 2021-12-10 大连理工大学 Credibility modeling and verifying method for industrial control network protocol

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120192147A1 (en) * 2011-01-25 2012-07-26 Argen Wong Develop real time software without an RTOS
US10019391B2 (en) * 2015-03-20 2018-07-10 International Business Machines Corporation Preventing software thread blocking due to interrupts
US10423550B2 (en) * 2017-10-25 2019-09-24 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
US11288072B2 (en) * 2019-09-11 2022-03-29 Ceremorphic, Inc. Multi-threaded processor with thread granularity
CN112817787B (en) * 2021-01-28 2023-03-10 南京大学 Automatic detection method for data competition of interrupt-driven embedded system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102696045A (en) * 2009-07-10 2012-09-26 塞尔蒂卡姆公司 System and method for performing serialization of devices
CN102063328A (en) * 2010-12-17 2011-05-18 北京控制工程研究所 System for detecting interrupt-driven type program data competition
CN109086215A (en) * 2018-10-18 2018-12-25 北京轩宇信息技术有限公司 A kind of embedded software unit testing case generation method and system
CN109388573A (en) * 2018-10-23 2019-02-26 北京轩宇信息技术有限公司 A kind of driving program Runtime error checking method and system of the interruption that nothing is failed to report
CN109635568A (en) * 2018-11-26 2019-04-16 华中科技大学 A kind of concurrent leak detection method combined based on static analysis and fuzz testing
CN109710488A (en) * 2018-12-14 2019-05-03 北京工业大学 A kind of time series generation method based on block chain technology
CN110704065A (en) * 2019-10-09 2020-01-17 大连理工大学 Compiler front-end differential test method based on illegal program input
CN111159022A (en) * 2019-12-20 2020-05-15 北京轩宇信息技术有限公司 Interrupt data access conflict detection method and device based on univariate access sequence mode
CN112134859A (en) * 2020-09-09 2020-12-25 上海沈德医疗器械科技有限公司 Control method of focused ultrasound treatment equipment based on ARM architecture
CN112631925A (en) * 2020-12-29 2021-04-09 北京轩宇信息技术有限公司 Method for detecting single variable atom violation defect
CN113783721A (en) * 2021-08-20 2021-12-10 大连理工大学 Credibility modeling and verifying method for industrial control network protocol

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"A thread synchronization model for the PREEMPT_RT Linux kernel";de Oliveira等;《22nd IEEE International Symposium on Real-Time Distributed Computing》;20200701;全文 *
"One Stack to Run Them All Reducing Concurrent Analysis to Sequential Analysis under Priority Scheduling";Kidd等;《17th International SPIN Workshop on Model Checking Software》;20100101;全文 *
"航天嵌入式软件整数溢出的形式化验证方法";高猛等;《软件学报》;20211015;全文 *
"锥形光纤Bragg光栅制备及其传感特性研究";张媛;《中国优秀博硕士学位论文全文数据库 信息科技辑》;20090515;全文 *

Also Published As

Publication number Publication date
CN115033472A (en) 2022-09-09

Similar Documents

Publication Publication Date Title
US8527976B2 (en) System and method for generating error traces for concurrency bugs
Betts et al. GPUVerify: a verifier for GPU kernels
Burnim et al. Specifying and checking semantic atomicity for multithreaded programs
Bensalem et al. Confirmation of deadlock potentials detected by runtime analysis
Chen et al. Formal modeling and validation of stateflow diagrams
Wang et al. Symbolic pruning of concurrent program executions
Maeoka et al. Depth-first heuristic search for software model checking
Sun et al. Model checking a model checker: A code contract combined approach
CN115033472B (en) Interrupt driver model detection method based on thread cyclic scheduling serialization
Miné Static analysis of embedded real-time concurrent software with dynamic priorities
Kim et al. A two-step approach for pattern-based API-call constraint checking
Liang et al. Effective verification for low-level software with competing interrupts
Kim et al. Model checking embedded control software using OS-in-the-loop CEGAR
Majumdar et al. D-cube: tool for dynamic design discovery from multi-threaded applications using pin
Kusano et al. Dynamic generation of likely invariants for multithreaded programs
Nokovic et al. Verification and code generation for timed transitions in pCharts
Long et al. Checking linearizability with fine-grained traces
Dwyer Modular flow analysis for concurrent software
Mammo Reining in the functional verification of complex processor designs with automation, prioritization, and approximation
Abdelqawy et al. A survey on testing concurrent and multi-threaded applications tools and methodologies
Kim et al. Light-weight api-call safety checking for automotive control software using constraint patterns
Beckman A survey of methods for preventing race conditions
Matsubara et al. Model checking of automotive control software: An industrial approach
Long Testing concurrent Java components
Huang et al. A denotational model for interrupt-driven programs

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
GR01 Patent grant
GR01 Patent grant