CN115033472A - Interrupt driver model detection method based on thread circular scheduling serialization - Google Patents

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

Info

Publication number
CN115033472A
CN115033472A CN202210402661.1A CN202210402661A CN115033472A CN 115033472 A CN115033472 A CN 115033472A CN 202210402661 A CN202210402661 A CN 202210402661A CN 115033472 A CN115033472 A CN 115033472A
Authority
CN
China
Prior art keywords
interrupt
program
thread
serialization
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.)
Granted
Application number
CN202210402661.1A
Other languages
Chinese (zh)
Other versions
CN115033472B (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

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The invention discloses an interrupt driver model detection method based on thread circular scheduling serialization, and belongs to the field of software model detection. First, the interrupt related information of the input interrupt driver, such as the interrupt type, number, priority, etc. contained in the software, is collected. The initial source-to-source conversion process converts the interrupt driver into a standard multi-threaded program, and then uses a key step thread circular scheduling serialization process to realize the serialization of random interrupt, periodic interrupt and event-triggered interrupt. And finally, selecting detection properties, and inputting the sequencing program to a boundary model detection tool to obtain a detection result. The program serialization process of the method realizes the serialization processing of the three types of interrupts and supports the automatic analysis of the multi-level nesting and interrupt disabling of the interrupts. The method can be used for detecting defects of real aerospace embedded software, such as group boundary crossing, zero error removal and the like, and has strong practicability.

Description

Interrupt driver model detection method based on thread circular 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 circular scheduling serialization.
Background
The interrupt driver is widely applied in the field of aerospace, and particularly, an interrupt mechanism is a main means for realizing real-time interaction between the interrupt driver and hardware and is an important part for realizing real-time performance of an embedded system. In the security critical area, software security of the interrupt driver is of particular importance.
Some conventional model detection methods for an interrupt driver include a method of converting the interrupt driver into a serialization program. The sequencing method is realized by inserting random interrupt calling functions into program points which can be interrupted in an interrupt driver, and can only be used for simulating the execution condition of random interrupts, and can not carry out accurate semantic modeling on periodic interrupts and event-triggered interrupts. And the traditional serialization method cannot be well analyzed and modeled in terms of interrupt disabling in the interrupt driver and nested execution of interrupts of different priorities. Thus, this coarse sequencing approach results in a large number of false positives for the resulting detection results.
Furthermore, interrupt drivers have similar multi-threaded program concurrency, but there is a large difference in the manner of concurrency. The difference in concurrency is mainly reflected in that the interaction states of similar threads of the interrupt driver are asymmetric due to different priorities of different interrupts. It is also because of the concurrency difference that the current better model detection method for processing multithread program is not suitable for interrupt driver.
Disclosure of Invention
The invention aims to design a model detection method of an interrupt driver based on thread circular scheduling serialization, so as to prevent the situation of harmful concurrency, state complexity and unpredictable occurrence of an embedded system caused by interrupt introduction and solve the software defects of malignant data competition, atomicity violation and the like which threaten the safety and stability of the system in the interrupt-driven embedded system.
The technical scheme of the invention is as follows:
a detection method of an interrupt driver model based on thread circular scheduling serialization comprises the following specific steps:
1) the user selects and inputs an interrupt driving program to be detected;
2) automatically analyzing the interrupt type contained in the interrupt driving program, and inputting interrupt related information and a designated sequential parameter value by a user;
3) calculating the number of threads to be created according to the collected interruption related information;
4) converting an interrupt driving program into a standard multithreading program by using a source-to-source conversion method according to the calculated thread number required to be created and an event for triggering the interrupt provided by a user;
5) converting the obtained standard multithreading program into a sequencing program based on thread circular scheduling sequencing by using thread circular scheduling sequencing processing;
6) selecting a detected program property;
7) the serialization procedure is input to the bound model detection tool: detecting the resulting sequenced program using a bounded model detection tool according to the selected detected program properties and parameter settings;
8) and outputting a result: when software defects exist in the input interrupt-driven embedded software, outputting a result UNSAFE and a counter example path of the defects; and conversely, when no defect exists in the software, outputting the result SAFE.
In the step 2), the interrupt type included in the interrupt driver is automatically analyzed, and the user inputs the interrupt related information and specifies the sequencing parameter value, and the specific process includes:
2-1) parsing out interrupts and the number of interrupts included in the interrupt driver using a parser;
2-2) the user fills the interruption relevant information for the analyzed interruption, wherein the interruption relevant information comprises an interruption type S, an interruption priority P, a time constraint C of random interruption and a period T of periodic interruption pi And an Event that can trigger an Event-triggered interrupt;
2-3) a user specifies a sequencing parameter value, wherein the sequencing parameter value refers to a parameter unwind and a parameter round which are required for generating a sequencing program and are set to be proper values, the parameter unwind is used for setting the expansion times of the loop in the interrupt driving program when the sequencing program is converted, and the parameter round is used for setting the obtained times of the loop scheduling thread in the main function in the sequencing program when the sequencing program is converted;
in step 3), calculating the number of threads to be created according to the collected interrupt related information, wherein the specific process comprises the following steps:
3-1) for each random interrupt in the interrupt driver, the number of interrupt threads created in the sequencers correspondingly is at least equal to the value of the parameter round, wherein the interrupt threads represent threads of the same function body as the corresponding interrupt;
3-2) for each cycle interrupt in the interrupt driver, the calculation formula of the number of the cycle interrupt threads correspondingly created in the sequencing program is as follows:
Figure BDA0003600895510000031
wherein, C pi Indicating the number of periodic interrupts, T, that need to be created w Representation of all function inlining and all loop unrolling in the interrupt driver main taskThe total number of code lines contained in the post-main task, U represents the value of the parameter unwind, T pi A period representing a periodic interruption;
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 multithreading program by using a source-to-source conversion method, which comprises the following steps:
4-1) correspondingly taking a main task part in the interrupt driving program as a thread in the standard multithreading program after conversion through a source-to-source conversion method;
4-2) adding a corresponding interrupt thread creating function in the standard multithread program according to the calculated number of the threads to be created;
in step 5), the obtained standard multithread program is converted into a serialization program of an interrupt driver by using thread circular scheduling serialization processing, and the specific process comprises the following steps:
5-1) converting the standard multithreading program obtained in the step 4) into a corresponding sequencing program by using source-to-source conversion processing, wherein the source-to-source conversion processing adopts a conversion method in a model detection tool Lazy-CSeq, and the Lazy-CSeq is a context-bound model detection tool and is mainly used for verifying a concurrent program written by using C language and is based on a sequencing technology for converting the concurrent program into a non-determined sequencing program. The sequencing program does not contain priority information, and any threads can be mutually interrupted to execute.
5-2) perform three types of interrupt handling processes. Taking the sequencerization program output in the step 5-1) as input, modifying and adding corresponding thread creating functions and constraint conditions for each thread in the sequencerization program according to the second-level nesting relation of different types of interrupt execution semantics and priorities, and outputting the sequencerization program containing priority information; the thread creating function is a function which is used for creating a thread without priority information and is arranged in the tool Lazy-CSeq, and the position of the function inserted into the code is modified according to the type of the interrupt, so that different triggering modes of simulating three types of interrupts are realized. The constraint conditions ensure that different priority threads satisfy second level nested execution conditions.
5-3) performing interrupt disable processing. Identifying an interrupt masking function, and adding interrupt masking constraint conditions for corresponding interrupt threads in the sequentialization program output in the step 5-2) to obtain a sequentialization program based on thread circular scheduling serialization; the interrupt mask constraint conditions ensure that when the mask function corresponding to the interrupt is executed in the program statement, the corresponding interrupt thread cannot be executed.
In step 6), selecting the detected program properties, including:
selecting the software defect properties such as group boundary crossing, zero error removing and user-defined assertion in the interrupt-driven embedded software which is desired to be detected.
In step 7), the boundary model detection tool CBMC.
Compared with the prior art, the invention has the advantages that:
1) the invention accurately models the program execution semantics of three interrupt types, and solves the problem of false alarm easily caused by the execution semantics of a rough modeling interrupt driver in the interrupt driver model detection method;
2) the method can verify software defects such as malignant data competition and atomicity violation, improves the accuracy of the detection result while avoiding false alarm, and effectively improves the efficiency of manual inspection by outputting counter-example paths of the verified competition relationship;
3) the invention has high automation degree, is provided with a tool UI page, and is convenient and practical.
Drawings
FIG. 1 is a flow diagram of the present invention.
Detailed Description
The following further describes a specific embodiment of the present invention with reference to the drawings and technical solutions.
As shown in fig. 1, the specific implementation steps of the interrupt driver model detection method based on thread round-robin scheduling serialization according to the present invention are as follows:
step 1: the user enters the detected interrupt driver source file. The interrupt driving source program generally includes a source code of a main task formed by a plurality of functions and a source code of an interrupt processing program corresponding to an interrupt related to the task.
And 2, step: 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 within the interrupt-driven source program, the round and unwind parameters of the sequencing program, and the 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 parser.
Step 22: the user enters the type of interrupt, priority, random interrupt time constraints and interrupt period, the round and unwind parameters of the sequencing program, and the nature of the desired authentication. And storing the parameters input by the user into an interrupt operation list, wherein the interrupt operation list is initialized to be empty.
Step 23: the interrupt action list and the round and unwind parameters entered by the user, as well as the various properties that are desired to be verified, are passed to the tool as a character stream.
And 3, step 3: calculating the number of threads to be created according to the collected interruption related information, wherein 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 sequencers is at least equal to the value of a parameter round, and the interrupt threads represent threads of the same function body as the corresponding interrupt;
step 32: calculating the interrupt period of each period in the interrupt driver, and calculating the parameter T w U and T pi Inputting a calculation formula
Figure BDA0003600895510000061
Obtaining a periodic interruption 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 event-triggered interrupt and are input by a user, and ensuring that the number of the event-triggered interrupt threads correspondingly created in the sequencing program is at least equal to the value of a parameter round;
and 4, step 4: and performing source-to-source conversion processing on the source file of the detected interrupt driver to obtain a standard multithreading program. The specific process of the step 4 is as follows:
step 41: the multithreading program is initialized to null.
Step 42: and opening an interrupt driver source program, reading source file data line by taking a function body as a unit, and judging the type of the function body by syntax analysis to perform different processing when reading one function body of the source program. The function types comprise an initialization function part and a polling function part of a main function of the interrupt driver and service function bodies of interrupts with different priorities.
Step 43: if the function is the initialized function part in the main function, the function is converted into an original initialized function part and a thread creating part of the multithreading program; the polling function part in the main function is converted into a polling function body part meeting the detection requirement; converting the service function of the low-priority interrupt into a thread with low-priority information; the high priority service function translates into a thread with high priority information.
Step 44: the standard multithreaded program into which the source program is translated is output.
And 5: and processing the standard multithreading program output in the step 4 by using a thread-based circular scheduling mechanism to obtain a sequencing program of the interrupt driving program. The specific process of the step 5 is as follows:
step 51: and converting the standard multithreading program 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 be mutually interrupted and executed.
Step 52: three types of interrupt handling processes are performed. Taking the sequencerization program output in the step 51 as input, modifying and adding corresponding thread creating functions and constraint conditions for each thread in the sequencerization program according to the second-level nesting relation of different types of execution semantics and priorities of the interrupt, wherein the thread creating functions are functions which are used for creating threads without priority information and are arranged in the tool Lazy-CSeq, and the position of the function inserted into the code is modified according to the type of the interrupt in the step. If the sequencing program comprises random interruption, the thread creating function corresponding to the random interruption is not modified; if the sequencing program contains periodic interruption, a thread creating function corresponding to the periodic interruption thread is inserted behind each statement of the main task thread, a main _ thread function in the sequencing program is processed according to an interruption period set by a user, and interruption period counting is added behind each label; if the sequenced program contains event-triggered interrupt, the thread creating function corresponding to the event-triggered interrupt is inserted into the event code of the triggered interrupt in the main task thread. The constraint condition related to the priority is used for judging whether the current interrupt meets the execution condition or not, the principle of inserting the constraint condition ensures that the thread with high priority executes atomically, the thread with medium priority can be interrupted by the interrupt thread with high priority but not by the thread with low priority, and the thread with low priority can be interrupted by the thread with medium priority and the thread with high priority. Furthermore, the same priority interrupts may not interrupt execution from each other.
Step 53: interrupt disable enabling processing is performed. The serialization procedure output from step 52 is traversed. When an interruption disabling enabling statement exists in the main function of the sequencing program, inserting a corresponding interruption constraint after a shielding statement, and removing the constraint of the corresponding interruption after the shielding statement is removed. A condition is added at the corresponding interrupt thread in the main function, and the shielded interrupt thread can not be scheduled to execute when the interrupt has a constraint.
And 6: the user selects the nature of the inspection, such as group out-of-bounds, divide by zero errors, user-defined assertions, etc., the selected nature being supported by the boundary model inspection tool.
And 7: and detecting whether a series of user-specified detection problems such as data competition and the like exist in the sequenced interrupt driver by using a boundary model detection tool CBMC.
The bounding model checking tool CBMC supports checking programs of most compiler extensions provided by C89, C99, most C11, and gcc and Visual Studio. The CBMC may verify memory security (including array boundary checking and pointer safe usage checking), check for exceptions, check for variations of undefined behavior, and user-specified assertions. In addition, it can check the consistency of C and C + + with other languages (such as Verilog).
The specific process of step 8 is as follows:
step 81: the sequenced program that has handled different priority interrupts and disable enable operations is input to the CBMC and the counter output is set.
Step 82: CBMC outputs the detection result, if the assertion of violation property exists, returns UNSAFE, and outputs a visual counter-example path; if there is no false assertion, SAFE is returned.

Claims (7)

1. A detection method of an interrupt driver model based on thread circular scheduling serialization is characterized by comprising the following steps:
1) the user selects and inputs an interrupt driving program to be detected;
2) automatically analyzing the interrupt type contained in the interrupt driving program, and inputting interrupt related information and a designated sequential parameter value by a user;
3) calculating the number of threads to be created according to the collected interruption related information;
4) converting an interrupt driving program into a standard multithreading program by using a source-to-source conversion method according to the calculated thread number required to be created and an event for triggering the interrupt provided by a user;
5) converting the obtained standard multithreading program into a sequencing program based on thread circular scheduling sequencing by using thread circular scheduling sequencing processing;
6) selecting a detected program property;
7) the serialization procedure is input to the bound model detection tool: detecting the obtained sequenced program by using a boundary model detection tool according to the selected detected program property and parameter setting;
8) and outputting a result: when software defects exist in the input interrupt-driven embedded software, outputting a result UNSAFE and a counter example path of the defects; and conversely, when no defect exists in the software, outputting the result SAFE.
2. The method for detecting the interrupt driver model based on the thread round robin scheduling serialization according to claim 1, wherein in the step 2), the specific process includes:
2-1) parsing out the interrupts and the number of interrupts included in the interrupt driver using a parser;
2-2) the user fills the interruption relevant information for the analyzed interruption, wherein the interruption relevant information comprises an interruption type S, an interruption priority P, a time constraint C of random interruption and a period T of periodic interruption pi And an Event that can trigger an Event-triggered interrupt;
2-3) a user appoints a sequencing parameter value, wherein the sequencing parameter value refers to a parameter unwind and a parameter round which are required for generating a sequencing program, the parameter unwind is used for setting the expansion times of circulation in an interrupt driving program when the sequencing program is converted, and the parameter round is used for setting the obtained times of circulation scheduling threads in a main function in the sequencing program when the sequencing program is converted.
3. The method for detecting the interrupt driver model based on the thread circular scheduling serialization according to claim 1 or 2, wherein in the step 3), the specific process comprises:
3-1) for each random interrupt in the interrupt driver, the number of interrupt threads created in the sequencers correspondingly is at least equal to the value of the parameter round, wherein the interrupt threads represent threads of the same function body as the corresponding interrupt;
3-2) for each cycle interrupt in the interrupt driver, the calculation formula of the number of the cycle interrupt threads correspondingly created in the sequencing program is as follows:
Figure FDA0003600895500000021
wherein, C pi Indicating the number of periodic interrupts, T, that need to be created w Representing the total code line number contained in all function inlines and all loop-expanded main tasks in the interrupt driver main task, U representing the value of the parameter unwind, T pi A period representing a periodic interruption;
3-3) for each event-triggered interrupt in the interrupt driver, the number of event-triggered interrupt threads that are correspondingly created in the sequencer is at least equal to the value of the parameter round.
4. The method for detecting the interrupt driver model based on the thread circular scheduling serialization according to claim 1 or 2, wherein in the step 4), the method specifically comprises:
4-1) using a source-to-source conversion method to take a main task part in an interrupt driver as a thread in a standard multithreading program, wherein the source-to-source conversion processing refers to modifying the input interrupt driver according to a standard multithreading program mode;
4-2) adding a corresponding interrupt thread creating function in the standard multithreading program according to the calculated number of threads required to be created.
5. The method for detecting the interrupt driver model based on the thread round robin scheduling serialization according to claim 1 or 2, wherein in the step 5), the specific process includes:
5-1) converting the standard multithreading program obtained in the step 4) into a corresponding sequential program by using source-to-source conversion treatment; 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, and any threads can be mutually interrupted and executed;
5-2) perform three types of interrupt handling processes: taking the sequencerization program output in the step 5-1) as input, modifying and adding corresponding thread creating functions and constraint conditions for each thread in the sequencerization program according to the second-level nesting relation of different types of interrupt execution semantics and priorities, and outputting the sequencerization program containing priority information; the thread creating function is a function which is used for creating a thread without priority information and is arranged in the tool Lazy-CSeq, and the position of the function inserted into a code is modified according to the type of the interrupt, so that different triggering modes of simulating three types of interrupts are realized; the constraint condition ensures that threads with different priorities meet a second-level nested execution condition;
5-3) performing interrupt disabling processing: identifying an interrupt masking function, and adding interrupt masking constraint conditions for corresponding interrupt threads in the sequentialization program output in the step 5-2) to obtain a sequentialization program based on thread circular scheduling serialization; the interrupt mask constraint conditions ensure that when the mask function corresponding to the interrupt is executed in the program statement, the corresponding interrupt thread cannot be executed.
6. The method for detecting the interrupt driver model based on the thread cycle scheduling serialization is characterized in that in the step 6), the software defect properties including array boundary crossing, zero error removal and user-defined assertion in the interrupt-driven embedded software which is desired to be detected are selected.
7. The method for detecting the interrupt driver model based on the thread round robin scheduling serialization according to claim 1 or 2, wherein in step 7), the bound 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 true CN115033472A (en) 2022-09-09
CN115033472B 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 (16)

* 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
US20120192147A1 (en) * 2011-01-25 2012-07-26 Argen Wong Develop real time software without an RTOS
CN102696045A (en) * 2009-07-10 2012-09-26 塞尔蒂卡姆公司 System and method for performing serialization of devices
US20160275024A1 (en) * 2015-03-20 2016-09-22 International Business Machines Corporation Preventing software thread blocking due to interrupts
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
US20190121760A1 (en) * 2017-10-25 2019-04-25 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
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
US20210072995A1 (en) * 2019-09-11 2021-03-11 Redpine Signals, Inc. Multi-Threaded Processor with Thread Granularity
CN112631925A (en) * 2020-12-29 2021-04-09 北京轩宇信息技术有限公司 Method for detecting single variable atom violation defect
CN112817787A (en) * 2021-01-28 2021-05-18 南京大学 Automatic detection method for data competition of interrupt-driven embedded system
CN113783721A (en) * 2021-08-20 2021-12-10 大连理工大学 Credibility modeling and verifying method for industrial control network protocol

Patent Citations (16)

* 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
US20120192147A1 (en) * 2011-01-25 2012-07-26 Argen Wong Develop real time software without an RTOS
US20160275024A1 (en) * 2015-03-20 2016-09-22 International Business Machines Corporation Preventing software thread blocking due to interrupts
US20190121760A1 (en) * 2017-10-25 2019-04-25 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
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
US20210072995A1 (en) * 2019-09-11 2021-03-11 Redpine Signals, Inc. Multi-Threaded Processor with Thread Granularity
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
CN112817787A (en) * 2021-01-28 2021-05-18 南京大学 Automatic detection method for data competition of interrupt-driven embedded system
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
DE OLIVEIRA等: ""A thread synchronization model for the PREEMPT_RT Linux kernel"", 《22ND IEEE INTERNATIONAL SYMPOSIUM ON REAL-TIME DISTRIBUTED COMPUTING》, 1 July 2020 (2020-07-01) *
KIDD等: ""One Stack to Run Them All Reducing Concurrent Analysis to Sequential Analysis under Priority Scheduling"", 《17TH INTERNATIONAL SPIN WORKSHOP ON MODEL CHECKING SOFTWARE》, 1 January 2010 (2010-01-01) *
张媛: ""锥形光纤Bragg光栅制备及其传感特性研究"", 《中国优秀博硕士学位论文全文数据库 信息科技辑》, 15 May 2009 (2009-05-15) *
高猛等: ""航天嵌入式软件整数溢出的形式化验证方法"", 《软件学报》, 15 October 2021 (2021-10-15) *

Also Published As

Publication number Publication date
CN115033472B (en) 2024-03-22

Similar Documents

Publication Publication Date Title
Siegel et al. CIVL: the concurrency intermediate verification language
Gotsman et al. Proving that non-blocking algorithms don't block
Passos et al. A study of non-boolean constraints in variability models of an embedded operating system
Droste et al. MPI-checker: static analysis for MPI
Dwyer et al. Filter-based model checking of partial systems
Burnim et al. Specifying and checking semantic atomicity for multithreaded programs
Wang et al. Symbolic pruning of concurrent program executions
Havelund et al. Runtime verification logics a language design perspective
Avrunin et al. Analyzing partially-implemented real-time systems
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
Long et al. Checking linearizability with fine-grained traces
Dwyer Modular flow analysis for concurrent software
Deshmukh et al. Symbolic modular deadlock analysis
Mammo Reining in the functional verification of complex processor designs with automation, prioritization, and approximation
Jia et al. VeriLin: A Linearizability Checker for Large-Scale Concurrent Objects
Beckman A survey of methods for preventing race conditions
Huang et al. A denotational model for interrupt-driven programs
Wang Efficient model-checking of dense-time systems with time-convexity analysis
Xing et al. Differencing labeled transition systems
Tan et al. Heuristic-based model refinement for FLAVERS
Shen et al. Interruption-driven resource competition defect model and testing methodology
Van Gastel et al. Deadlock and starvation free reentrant readers–writers: A case study combining model checking with theorem proving

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