はじめに 簡単なタスク管理機能と、タイマレジスタによる割り込み管理機能を持つ簡易なリアルタイムOSをRustで自作しました。 Aruduino Unoボードに搭載されるATmega328Pマイコン上で動かすことを想定していますが、https://github.com/Rahix/avr-hal でサポートされているAVRマイコンであれば、ほぼ同様の実装ができそうです。 本記事では環境構築については割愛し、実装の詳細について解説を行いたいと思います。 リアルタイムOSの設計 今回作成したリアルタイムOSは、技術書店13でサークル出展した書籍、cistLT Bookで作成したOS(https://github.com/yud0uhu/ChocottoOS)を、Rustで再実装したものになります。 書籍同様、ITRON4.0仕様に準拠するための五項目をOSの機能要件として定めました。 (a) タ
はじめに スラブアローケータ Linuxのスラブアローケータ slabアローケータ slobアローケータ slubアローケータ スラブオブジェクトの管理 使用中リスト スラブのマージ機能 Chache Coloring スラブの不活性化 frozen状態 スラブキャッシュの情報 slubアローケータのデータ構造 データの関連 slubアローケータで使用するデータの関連 スラブのライフサイクル スラブアローケータの機能 スラブキャッシュの作成 スラブキャッシュ生成時に設定するフラグ 空きオブジェクトの管理 空きスラブオブジェクトの設定 スラブオブジェクトの確保 スラブオブジェクトの解放 kmem_cache_cpu構造体のデータクリア スラブの不活性化 スラブの削除 スラブキャッシュの削除 スラブキャッシュのセットアップ slubアローケータで使用するヘルパー関数 __cmpxchg_dou
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
ロベールのC++入門講座 05-15 newでメモリを動的確保した場合、非常に稀ではありますがメモリ確保に失敗する場合があります。 メモリ確保に失敗するとどうなるかは以前例外機構の勉強の時にチラッと出てきましたが、bad_allocという例外を発生させます。 しかしこの例外の発生を抑制する方法が存在します。それがnew(nothrow)です。 使い方を見てみましょう。 #include <iostream> #include <new> using namespace std; class CSample { public: }; int main () { CSample* p = new(nothrow) CSample; if ( p == NULL ) { cout << "メモリ確保に失敗しました" << endl; } return 0; } placement newのときに
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く