エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
プリエンプト - Linuxの備忘録とか・・・(目次へ)
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
プリエンプト - Linuxの備忘録とか・・・(目次へ)
プロセスは自らスリープしたりロック待ち等でschedule()をコールする事で、他のプロセスへ切り替えます... プロセスは自らスリープしたりロック待ち等でschedule()をコールする事で、他のプロセスへ切り替えます。プリエンプトとは、カーネルモード下で非同期にプロセス切替えの事を言います。これは割り込みに起因する物で、例えば、タイマ割り込み発生毎に、カレントプロセスの実行時間を超えていないかチェックし、使い切っているならpreempt_schedule()をコールしプロセス切り替えを行います。 プリエンプトは、static変数を参照/更新する掛かる関数内の処理下で問題となります。その実装途中でプロセスが切り替わり、他のプロセスが同じstatic変数を更新する場合です。gccはstatic変数をレジスタにセットし、以降のstatic変数での処理は、このレジスタを参照するコード展開いたします。gccは関数内での記述ロジックに基づいて最適化を行い、この変数が他のプロセス等により変更される事など知る由も