MIT 6.828 Lab 2 — メモリ管理の実装
本Labでは、JOSカーネル向けにメモリ管理コードを実装する。物理メモリの割り当てを4096バイト単位(ページ)で行うアロケータと、仮想メモリの管理機能を開発する。
準備
Lab 1のブランチにLab 2のコードをマージする。新たに追加されるファイルは以下の通り:
inc/memlayout.h
kern/pmap.c
kern/pmap.h
kern/kclock.h
kern/kclock.c
特にmemlayout.hとpmap.hには本Lab ...
10月12日 23:07 投稿
動的配列を用いた連絡先管理システムの設計と実装
データ構造の基本:線形リストとその応用
現代のソフトウェア開発において、データを効率的に管理するための手法は不可欠です。特に、一連の要素を順序立てて扱う必要がある場合、線形データ構造が広く利用されます。代表的な例として、配列に基づく動的配列(Dynamic Array)があり、これはC言語でのメモリ管理を活かして柔軟なデータ格納を実現します。
線形リストの特 ...
10月4日 02:13 投稿
C言語における二次元配列と文字配列の宣言・初期化・操作
二次元配列の基本概念
宣言とメモリ構造
C言語における二次元配列は、以下のような構文で宣言します。
データ型 配列名[行数][列数];
厳密には、C言語のメモリモデルにおいて真の多次元配列は存在せず、二次元配列は「一次元配列の要素として一次元配列を持つ」構造、すなわち連続したメモリブロックとして実装されています。
初期化の方法
一次元配列と同様に、二次元配 ...
9月21日 06:02 投稿
vLLMと模力方舟による高スループットAIアプリケーションの構築
vLLMと模力方舟による高スループットAIアプリケーションの構築
大規模モデルの実装が進む中で、新たな課題が浮き彫りになっています。より強力な言語モデルを学習できたにもかかわらず、「処理が追いつかない」問題が起きています。ユーザーのリクエストが急増すると、応答遅延が増加し、VRAMがオーバーフローし、処理能力が低下します。これはモデルの性能不足ではなく、 ...
9月9日 08:21 投稿
Linuxシステムにおけるキャッシュメモリの解放手法
Linuxシステムは、未使用のメモリ領域をバッファやキャッシュとして活用するメモリ管理機構を備えています。これにより、アプリケーションが必要とするデータへの高速アクセスが可能となり、システム全体の効率性が向上します。通常、freeコマンドで表示される空きメモリ容量は少なく見えますが、実際の利用可能なメモリ容量はfree + buff/cacheの合計値として考えることが ...
9月4日 09:17 投稿
Oracleデータベースのメモリ構造とプロセス管理の基礎
Oracleデータベースのメモリ構造とプロセス管理の基礎
Oracleデータベースシステムを効果的に運用し、その性能を最大限に引き出すためには、内部のメモリ構造とプロセス管理の理解が不可欠です。本稿では、主要なメモリコンポーネント、プロセスの役割、およびそれらがどのように連携して機能するかについて解説します。
システムグローバル領域 (SGA) の構成要素
SGA(Sy ...
8月24日 12:02 投稿
JVMにおけるオブジェクトの状態とガベージコレクション
Java仮想マシン(JVM)のヒープ領域には、ほぼすべてのオブジェクトインスタンスが格納されています。ガベージコレクタがメモリを回収する前に、どのオブジェクトがまだ「生存」しており、どのオブジェクトが「死亡」しているかを判断する必要があります。この判定には主に以下の2つの方法があります。
参照カウント方式
アルゴリズムの概念:各オブジェクトに参照カウン ...
8月23日 12:03 投稿
Javaにおける配列の基本操作とメモリ管理
配列の概念と特性
配列(Array)は、同一データ型の複数の値を格納するためのコンテナです。データ格納時には暗黙的な型変換を考慮する必要があります。
配列の宣言方法
形式1:データ型[] 配列名
int[] numbers;
形式2:データ型 配列名[]
int numbers[];
静的初期化
int[] numbers = new int[]{10, 20, 30, 40};
// 簡略化形式
int[] values = {15, 25, 35, 45};
動的 ...
8月17日 11:15 投稿
iOSにおける@propertyの仕組みと属性修飾子の完全解説
@propertyの本質
@propertyはアクセサメソッド(getter/setter)の宣言であり、コンパイラが自動的にアクセサとバッキングインスタンス変数(ivar)を合成します。ドット構文での呼び出しも可能になります。
例:
@property (nonatomic) NSInteger userAge;
コンパイラは以下と等価なコードを自動生成します:
{
NSInteger _userAge;
}
- (NSInteger)userAge {
...
8月9日 17:49 投稿
リンクリストの基本操作:要素削除・設計・反転をC言語で徹底解説
1. 問題203:リンクリストの特定要素削除
// ヘッダノードを使用しない実装(移動操作で削除)
struct ListNode* removeElements(struct ListNode* head, int val) {
// 先頭ノードが削除対象の場合
while (head != NULL && head->val == val) {
head = head->next;
}
// 先頭以外のノードを削除
struct ListNode* current = head;
while ...
8月9日 12:37 投稿