ウェブアプリ, メモリ管理, Queue, 図で理解, OpenVPN, C言語
その他
ここでは, C言語に関する詳細を説明します.
タスクを管理するにあたり, 各タスクの情報を保持しておく必要があります. このような情報の塊をタスクコントロールブロック(TCB)と呼びます.
C言語には, マクロと呼ばれるものがあります. マクロとは, コンパイル前にある規則に従って文字を置き換える機能を持ちます[1].
ここでは, マクロの詳しい機能の説明を行います.
QR-Universal Scanner は, ブラウザ上で動作する, インストール不要で多くの入力方法(カメラとクリップボード)に対応したQRコード[注 1]読み取りWebアプリです. PWAに対応しておりオフラインでも動作します.
QRコードを標準で読み取れるデバイスがありますが, 主にモバイル端末に多く[1][2], PC上でQRコードを読み込むためにはアプリをインストールする必要があります[3][4][5][6][7].
インストール不要のQRコード読み取りアプリもあります[8][9][10][11][12]が, ファイルのみ, もしくはカメラのみからの読み込みであったりと, 入力方法が限定されています.
本稿では, インストール不要で多くの入力方法に対応したQRコード読み取りWebアプリ QR-Universal Scanner を紹介します. PWAに対応しており, オフラインでも動作します.
本来手動でメモリ管理しなければならない動的なオブジェクトを、スコープによって自動でメモリ管理するもの。
PortMacro.hで宣言されているOSコア部分の関数をここで定義します. このファイルはAVRマイコン専用です.
本来手動でメモリ管理しなければならない動的なオブジェクトを、スコープによって自動でメモリ管理するもの。
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
本来手動でメモリ管理しなければならない動的なオブジェクトを、スコープによって自動でメモリ管理するもの。
OSはタスクごとにメモリを動的に割り当てる必要があります(タスクが保有するメモリに関することはのちに説明します). というのも, これらのタスクはアプリケーション実行中に生成, 削除される可能性があるからです.
今回では, このメモリ管理をOSが行うことにします. OSがメモリ管理を行うことで, OS動作の理解がしやすくなるからです.
このページでは, OSによるメモリ管理をどのように実装するのか説明します.
ここでは, 実際にタスクが作成されたときのメモリの構造を示していきたいと思います. メモリでの各領域の説明, この構造によるmallocの問題を示します.
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
線形代数にある線形写像, 基底の変換行列, 表現行列などを理解するとき, 今どこの座標系にいるのか, 基底は変わったのか, ここはベクトル空間かという悩みに会います.
本稿では, 変換行列や表現行列を図で理解することを目的にします. 行列の掛け算が点の移動であることを意識すると, 理解しやすくなります.
線形代数にある線形写像, 基底の変換行列, 表現行列などを理解するとき, 今どこの座標系にいるのか, 基底は変わったのか, ここはベクトル空間かという悩みに会います.
本稿では, 変換行列や表現行列を図で理解することを目的にします. 行列の掛け算が点の移動であることを意識すると, 理解しやすくなります.
OSがタスクの切り替えを行うためには, 定期的にOSが現在実行中のタスクの処理を中断してタスク切り替え処理を行う必要があります.
ここでは, このようなOSが定期的に割り込み処理を行う方法を説明します. また, 割り込み時の処理について説明します.
ここでは, 実際にタスクが作成されたときのメモリの構造を示していきたいと思います. メモリでの各領域の説明, この構造によるmallocの問題を示します.