scheduling

LinuxでFtraceを使用して予約遅延を取得するには?
scheduling

LinuxでFtraceを使用して予約遅延を取得するには?

ftraceはアクティブですが、.ftraceはアクティブではない組み込みLinux(kernel-5.10.24)システムを開発していますperf。 システムでトレースを確認した結果、次の情報が得られました。 # ls /sys/kernel/tracing/events/sched/ -l total 0 -rw-r--r-- 1 root root 0 Jan 1 1970 enable -rw-r--r-- 1 root root 0 Jan 1 1970 filte...

Admin

CFSはいつ新しいタスクをスケジュールしますか?
scheduling

CFSはいつ新しいタスクをスケジュールしますか?

私は「Three Easy Pieces」を読んでオペレーティングシステムについて学んでいますが、完全に公正なスケジューラに関する章で詰まっています。ここ、血。 8-10)。各ジョブのタイムスライスは、利点/重みに基づいて動的に計算され、各ジョブの実行時は(動的にも計算された)vruntimeを介して追跡され、コンテキスト切り替えが発生すると現在のvruntimeが最も低くなります。次のスケジュールでキャッチしよう 私が理解していないのは、OSがコンテキスト切り替えを実行することを決めた場合です。本の一部では、次のように言います。 CFSは周期的なタイマー...

Admin

コア数と高いnice値でプロセスを実行する能力との間にはどのような関係がありますか?
scheduling

コア数と高いnice値でプロセスを実行する能力との間にはどのような関係がありますか?

8つの高い優先順位(nice = -20)OSスレッド(私が持っているコアの数)でCPUを「フラッディング」すると、明らかな理由でタスクは「一時停止」されますが、それでも使用できます。 「高い優先順位スレッド」とは、同じ高優先順位プロセスによって生成されたスレッドを意味します。 ただし、64のスレッドがあると、コンピュータが完全に利用できなくなります。最大優先順位スレッドとコア間の展開の関係は何ですか?与えられた良い値を達成するためにCPUを完全にフラッディングするには、どのくらいのスレッドを作成する必要があるかを大まかに計算できますか? ...

Admin

スケジューラによるpthreadの中断を防ぐことはできますか?
scheduling

スケジューラによるpthreadの中断を防ぐことはできますか?

私は4コアARM CPUを使用して組み込みリアルタイムLinuxデバイスを作成しています。 10kHzでは周期的な計算が必要です。これはジッタがひどくなりすぎて失われてはなりません。私のPOSIXスレッドは、使用中のループからハードウェアが提供する10kHzトグルレジスタを読み込み、ビットがトグルされたときに計算を実行できます。 SCHED_RRスケジューラがpthreadを中断するのを防ぐために、特にこのスレッドのCPUアフィニティをコア2に設定し、優先順位を99(最大)に設定しました。他のスレッドの中には、CPU アフィニティが 2 以外のコアに設定され...

Admin

隔離されたコアでこれらのプロセスを確認する必要がありますか?
scheduling

隔離されたコアでこれらのプロセスを確認する必要がありますか?

私のLinuxバージョンが期待どおりに実行されていることを確認しようとしています。isolcpusRISC-V SPIKEシミュレータでシミュレートされた2コアシステムの1つのコアを分離するために、カーネルコマンドラインパラメータを使用しました。中断することなく隔離されたコアでプロセスを実行したいと思います。 Linuxから起動すると、予想されるコンテンツが/proc/cmdline含まれます。isolcpus=1ただし、実行中のプロセスのコアアフィニティを確認すると、一部のプロセスがまだCPU1にあることがわかります。 ps -A -o pid,cmd,p...

Admin

Linux Mint:アップデートをインストールする前にタイムシフトが自動的にスナップショットを撮るようにできますか?
scheduling

Linux Mint:アップデートをインストールする前にタイムシフトが自動的にスナップショットを撮るようにできますか?

私は編集証があるので、アップデートを自動的にインストールする直前にTimeshiftがスナップショットを撮りたいと思います。現在、毎日のスナップショットがあり、アップデートを手動でインストールすることを選択していますが、可能であれば自動化を好みます。 Update Managerには、このオプションがないように見え、Timeshiftもないように見えるので、スクリプトを作成する方法があるか(私はスクリプトが初めてです)、またはそのような機能を有効にするために使用できる隠し設定があるかどうか疑問に思います。特徴。アップデートの自動インストール時間を設定するオプ...

Admin

特定の時間に1回実行するようにコマンドをスケジュールし、システムの電源が切れた後に再スケジュールするようにスケジュール
scheduling

特定の時間に1回実行するようにコマンドをスケジュールし、システムの電源が切れた後に再スケジュールするようにスケジュール

at 10:00コマンドは次回10:00に実行するようにスケジュールされています。コンピュータが10時に終了すると、at次回コンピュータの電源を入れると、このコマンドはできるだけ早く実行されます。 コマンドを後で10:00に再スケジュールする方法はありますか?すべてのコマンド/パッケージが可能です。 ...

Admin

夏時間(DST)時間ジャンプと回帰がスケジュールされたタスクに与える影響を防ぐ方法
scheduling

夏時間(DST)時間ジャンプと回帰がスケジュールされたタスクに与える影響を防ぐ方法

タイムゾーンがAEST(オーストラリア東部標準時)であると仮定すると、時間は最初は午前2時から午前3時にジャンプし、最後は午前3時から午前2時に反転します。 オーストラリア政府 - タイムゾーンと夏時間 夏時間は10月の最初の日曜日の午前2時に始まり、時計を1時間前に移動します。 4月の最初の日曜日は午前2時(午前3時夏時間)に終わり、時計は1時間前に移動します。 DST(冬から夏)時間が変更されると、時間は午前2時から午前3時に移動します。ジョブの実行がこの時間範囲内にあるようにスケジュールされている場合、ジョブは実行されません。 01:57:00...

Admin

1ms時間、CPUバインディング、I / Oバインディング操作、コンテキスト切り替え時間ペナルティを持つラウンドロビンスケジューラを使用してCPU使用率を計算します。
scheduling

1ms時間、CPUバインディング、I / Oバインディング操作、コンテキスト切り替え時間ペナルティを持つラウンドロビンスケジューラを使用してCPU使用率を計算します。

10個のI/Oバインディングジョブと1個のCPUバインディングジョブを実行するシステムを考えてみましょう。 I/O 集約ジョブが CPU コンピューティングでミリ秒ごとに I/O ジョブを実行し、各 I/O ジョブを完了するのに 10 ミリ秒かかったとします。また、コンテキスト切り替えオーバーヘッドが0.1ミリ秒で、すべてのプロセスが長期実行ジョブであると仮定します。 ラウンドロビンスケジューラを使用し、時間分割が1ミリ秒の場合、CPU使用率をどのように計算しますか? すでに台無しになっているので、CPU使用率を計算する方法がわかりません。私は正しい方向に...

Admin

異なるユーザー空間プロセスによるpselect遅延
scheduling

異なるユーザー空間プロセスによるpselect遅延

私は以下を持っています前提Linuxの場合: シリアルデバイスからpselectを使用してシリアルデータを読み取るプロセスを使用しています/dev/ttySX。 データは400Hzの安定した周波数で入力されます。 このプロセスの待ち時間を最適化するために、いくつかのアクションを使用しました。 読み取りスレッドは、アフィニティを使用して 1 つのコアに固定されており、そのコアではどのタスクも実行できません。これはcgroups / cpusetを介して行われます。 読み取りスレッドのRT prioは、SCHED_FIFOポリシーを使用して49(IRQプロセ...

Admin

Systemdを使用して一時停止の前後にスクリプトを実行する
scheduling

Systemdを使用して一時停止の前後にスクリプトを実行する

私が見つけたこのブログ投稿はここにあります。systemdを使用してサスペンドする前後にスクリプトを実行するプロセスについて説明します。次のように進んでください。 スクリプトを生成します/usr/lib/systemd/system-sleep/suspend-date.sh。 #!/bin/sh if [ "${1}" == "pre" ]; then # Do the thing you want before suspend here, e.g.: echo "we are suspending at $(date)..." > /t...

Admin

udev by-idでIO問題を予約する
scheduling

udev by-idでIO問題を予約する

タイトルの通り、ルールを使ってさまざまなディスクを挿入し、ブート時からスケジューラを設定しようとしますudev。問題は、ディスクが考慮されていないように、/dev/disk/by-idudevルール(エントリ)でid()としてマークされることです。KERNEL==しかし、挿入しようとすると、古典的な命名法(sda)が機能します。ディスクID /シリアル番号で特定のスケジューラを特定のディスクに接続するにはudev? ...

Admin

特別な作業/プロセスのためのコア予約
scheduling

特別な作業/プロセスのためのコア予約

診断のためにアプリケーション専用に予約されているコアでアプリケーションを実行したいと思います。私は4コア(imx8)CPUを持っています。したがって、これはシステム全体ではなく組み込みデバイスです。だから私はisolcpus = 0,1,2 bootparamを実行しましたが、pid = 1が3ではなく0..2でのみ実行されていることがわかります。これは多くのプロセスに当てはまりますが、すべてではありません。一部のプロセスはこれを気にしないようです。また、ワークセットからそれらを分離することはできません。 core3が他のものによって占有されていないことをど...

Admin

プロセス内およびプロセス間のコンテキスト切り替え頻度
scheduling

プロセス内およびプロセス間のコンテキスト切り替え頻度

私が読んでいる本(2013年)によると、Linuxカーネルは、プロセス内の移行がプロセス間の移行よりもはるかに安いと述べています。同じ CPU で同じプロセスの 2 つのスレッドを切り替えると時間が節約されます。ページテーブルコンバージョンコスト。 したがって、同じプロセスの2つのスレッド/タスク間の切り替えは、関連していないタスク間の切り替えよりも安価です。 Linuxカーネルは、パフォーマンスを向上させるためにプロセス内の移行の可能性を高めるために、どのように(プロセスの好みに加えて)試みますか? そうでない場合、これはどのくらいの頻度で発生しますか?実...

Admin