ARCS6 AR6-REV.24062600
読み取り中…
検索中…
一致する文字列を見つけられません
SFthread.hh ファイル

SCHED_FIFOリアルタイムスレッドクラス(sleep使用不使用テンプレート可変版, 関数オブジェクト版) [詳解]

#include <sys/mman.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <pthread.h>
#include <functional>
#include <cfenv>
#include <cstdint>
#include <cmath>
#include <string>
#include <fstream>
#include <iostream>
#include "CPUSettings.hh"
#include "LinuxCommander.hh"
SFthread.hh の依存先関係図:
被依存関係図:

[ソースコード]

クラス

class  ARCS::SFthread< SFA, SFK >
 実時間スレッド生成・破棄クラス [詳解]
 

マクロ定義

#define arcs_assert(a)   (assert(a))
 
#define PassedLog()
 
#define EventLog(a)
 
#define EventLogVar(a)
 

列挙型

enum class  ARCS::SFalgorithm { INSERT_ZEROSLEEP , WITHOUT_ZEROSLEEP }
 リアルタイムアルゴリズムのタイプの定義 解説: 時間ゼロのスリープを入れるとLinuxが安定動作できるが,リアルタイム性は犠牲になる。 古い低速の処理系では INSERT_ZEROSLEEP を推奨する。 新しい高速の処理系では WITHOUT_ZEROSLEEP に設定するとリアルタイム性が改善する。 [詳解]
 
enum class  ARCS::SFkernelparam : uint8_t { NO_SETTINGS = 0b00000000 , CFS_DISABLED = 0b00000001 , PREEMPT_DYNFULL = 0b00000010 }
 カーネルパラメータのタイプの定義 [詳解]
 

詳解

SCHED_FIFOリアルタイムスレッドクラス(sleep使用不使用テンプレート可変版, 関数オブジェクト版)

pthreadのSCHED_FIFOで実時間スレッドを生成&管理&破棄する。実際に計測された制御周期や計算消費時間も提供する。

日付
2024/05/02
著者
Yokokura, Yuki

列挙型詳解

◆ SFalgorithm

enum class ARCS::SFalgorithm
strong

リアルタイムアルゴリズムのタイプの定義 解説: 時間ゼロのスリープを入れるとLinuxが安定動作できるが,リアルタイム性は犠牲になる。 古い低速の処理系では INSERT_ZEROSLEEP を推奨する。 新しい高速の処理系では WITHOUT_ZEROSLEEP に設定するとリアルタイム性が改善する。

列挙値
INSERT_ZEROSLEEP 

リアルタイムループに時間ゼロのスリープを入れる

WITHOUT_ZEROSLEEP 

スリープは一切入れない

◆ SFkernelparam

enum class ARCS::SFkernelparam : uint8_t
strong

カーネルパラメータのタイプの定義

列挙値
NO_SETTINGS 

何も設定しない場合

CFS_DISABLED 

CFS(Completely Fair Scheduler)を無効にする

PREEMPT_DYNFULL 

PREEMPT_DYNAMICの場合にFULLモードにする