Skip to content

Commit

Permalink
ARCHITECTURE.md を少し改善 (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
nuta authored May 28, 2023
1 parent 9d1a54e commit ab8ecd5
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

イベントが発生すると、CPUは予めカーネルが設定しておいたイベントハンドラ (`riscv32_trap_handler`) に処理を移行します。カーネルは実行状態を保存した後にイベントに応じた処理を行い、ユーザータスクに処理を戻します。実行中タスクがブロック状態に入ったり、割り当てられたCPU時間を使い切ったりした場合は、コンテキストスイッチを行い、別のタスクを実行します。

また、カーネルの処理を始める際に「カーネルロック」と呼ばれる単一ロックを取ります。そのため、カーネルのコードは基本的に1つのCPUでしか実行されません。この単純な仕組みのおかげで、ロックを意識せずにカーネルを書けるようになっています。
また、カーネルの処理を始める際に「ビッグカーネルロック ([Wikipedia](https://ja.wikipedia.org/wiki/ジャイアントロック))」と呼ばれる単一ロックを取ります。そのため、カーネルのコードは基本的に1つのCPUでしか実行されません。この単純な仕組みのおかげで、ロックを意識せずにカーネルを書けるようになっています。

## アプリケーション・サーバの基本動作

Expand Down

0 comments on commit ab8ecd5

Please sign in to comment.