Mach研究


資料

Machメモリ管理

インターフェース名機能Monaに同様のI/Fがあるか?Monaに追加する
host_page_sizeページサイズを返す×
vm_allocateタスクのアドレス空間にVirtual Memoryをaddress, size指定で割り当てる。zerofill。指定されたアドレスが予約領域であるエラー。リニアアドレスがあまっていないエラーをきちんと返す×
vm_behavior_setカーネルにそのメモリ領域のアクセスのパターンを知らせる。引数はタスク,address,size××
vm_copy同一空間でdest to srcでaddress, size指定でコピーする。src,destが重なっていてもよい vm_read, vm_writeしている感じ×
vm_deallocateタスク内の空間からアドレス、サイズ指定でdeallocateする。ほかのタスク内から参照されているものには影響がない。out-lineメッセージの消去に使われている×
vm_inherit親タスクのregionを、子タスクから同一参照・コピー参照できるかをセットする。引数はアドレス、サイズ。Monaカーネルにはタスクに親子関係がないので不必要?××
vm_machine_attributevm領域の属性をset/getできる。マシン依存。pmapモジュール依存××
vm_mapmemory objectをvmにマップする。MonaでいうところのSharedMemoryObject
vm_msyncバッキングストアとVMの同期を取る。動機が取れていない場合というのはどういう場合?⇒00:08 (Yas0) 要はメモリが余ってるとスワップファイル(バッキングストア)にタスクのメモリイメージを書き出す必要がないので。00:09 (Yas0) まぁ、大体の場合そうですね>物理ディスク00:09 (higepon) なるほど。00:09 (higepon) それをsyncしたい場合ってのはどういう場合なんですかね?00:09 (Yas0) ん〜00:10 (Yas0) 物理メモリをこれから大量に確保する可能性があって00:10 (Yas0) その時になって急激な速度低下を起こされると困る場合とかかな×
vm_protect特定タスクのaddress,sizeにread/write/executeの属性をつける
vm_read特定のタスクのvmを特定のタスクから読む。自分のアドレスに強制的に読み込んだり。カーネルに割り当てを任せることも出来る。×
vm_regionvmの情報を返す×
vm_remapvmをtask同士でコピー×
vm_wire特定範囲のvmに物理ページを割り当てて固定する。⇒フォルトの心配がなくなる×
vm_writetaskのvmにデータを書く×
   vm_region_basic_info - Defines the attributes of a task's memory region.
   vm_statistics - Defines statistics for the kernel's use of virtual memory.

External Memory Management Interface

   The External Memory Management Interface (EMMI) is undergoing significant change in the Darwin system. For this reason, the interface is not currently available to user-level programs. Even for kernel extensions, use of these interfaces in not supported. Instead, the BSD filesystem's Universal Buffer Cache (UBC) mechanism should be used.
   memory_object_change_attributes - Modify subset of memory object attributes.
   memory_object_destroy - Shut down a memory object.
   memory_object_get_attributes - Return current attributes for a memory object.
   memory_object_lock_request - Restrict access to memory object data.
   memory_object_synchronize_completed - Synchronized data has been processed.
   Data Structures
   memory_object_attr_info - Defines memory object attributes.
   memory_object_perf_info- Specifies performance-related memory object attributes.
   External Memory Manager Interface Callbacks
   memory_object_create - Assign a new memory object to the default memory manager.
   memory_object_data_initialize - Provide initial data for a new memory object.
   memory_object_data_request - Request that memory manager page-in specified data.
   memory_object_data_return - Return memory object data to the appropriate memory manager.
   memory_object_data_unlock - Request a memory manager release the lock on specific data.
   memory_object_init - Inform a memory manager on first use of a memory object.
   memory_object_synchronize - Request synchronization of data with backing store.
   memory_object_terminate - Relinquish access to a memory object.
   EMMI Callback Server Helpers
   memory_object_default_server - Handle kernel operation request targeted for the default pager.
   memory_object_server - Handle kernel operation request aimed at a given memory manager.

Default Memory Management Interface

   default_pager_add_segment - Add additional backing storage for a default pager.
   default_pager_backing_store_create - Create a backing storage object.
   default_pager_backing_store_delete - Delete a backing storage object.
   default_pager_backing_store_info - Return information about a backing storage object.
   default_pager_info - Furnish caller with information about the default pager.
   default_pager_object_create - Initialize a non-persistent memory object.
   host_default_memory_manager - Register/Lookup the host's default pager.

MENU

now: 7

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2647, today: 1, yesterday: 1

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:47:54 (3887d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.031 sec.