- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
メモリ管理-home-tauralaboratory
ページテーブルの構造 ?ほとんど空」の論理アドレス空間を小さく表現する 多段のページテーブル 多段のページテーブル a1 a2 10 bit 10 bit o 12 bit a1 a2 64bitアドレス? Madhusudhan Tallurl, Mark D. Hill, Yousef A. Khalidi. A New Page Table for 64-bit Address Spaces. SOSP 1995 メモリアクセス時のCPUの動作: まとめ (read) read(a) { p,attr = lookup_TLB(a); if (!found) p,attr = lookup_page_table(a); if (!found) raise page fault; if (!attr.readable) raise protection fault; if (!attr.user CPU_mode == user) raise protection fault; read p; /* in cache or memory */ set reference bit for a;} Writeの場合 write(a, v) { p,attr = lookup_TLB(a); if (!found) p,attr = lookup_page_table(a); if (!found) raise page fault; if (!attr.writable) raise protection fault; if (!attr.user CPU_mode == user) raise protection fault; write v to p; /* in cache or memory */ set reference/dirty bit for a;} 余談:セグメンテーションページング以前の仮想記憶 セグメント: (ページよりも大きな)連続したアドレスの範囲 必要に応じて伸ばせる 各論理アドレス空間で割り当て中のメモリは,少数(数個)のセグメントとする 必要に応じてセグメントを丸ごと移動,ディスクに退避 テキスト セグメント データ セグメント スタック セグメント そういえばセグメンテーションフォルトって何だっけ セグメントを越えたアクセス 今日的には,protection fault, access violation * メモリ管理(1) メモリ?思い出そう プログラムの実行のために,ありとあらゆるものがメモリに格納されなくてはならなかったことを グローバル変数,配列 局所変数?配列(スタック) 実行中に確保される領域(malloc, new) プログラムのコード メモリの「管理」とは 「誰が」,メモリの「どの部分を」,「今」,使ってよいかを記憶しておき, 「メモリ割り当て要求」にこたえることができるようにすること 5000バイトくださいな えっと,じゃ,12300番地から17300番地までがあいてるのでそこをどうぞ 帳簿 メモリ使用状況 ???? ??? あらゆるメモリ管理に共通の概念 割り当て(allocation)と解放(deallocation) 1000バイトくださいな 30000番地をどうぞ 30000番地返します オッケー 500バイトくださいな また30000番地をどうぞ 割り当て 解放 割り当て OSのメモリ管理API Unix : brk, sbrk, mmap, etc. Win32 : VirtualAlloc, VirtualFree, MapViewOfFile, etc. 詳しくは後述する 普段良く使っているメモリ割り当てプリミティブ?APIの実例 C グローバル変数, スタック, malloc/free, strdup, etc. C++ グローバル変数, スタック, new/delete, STLの諸操作, … Java, C# new, Stringの連結などの諸操作 Garbage Collection Python リスト, 辞書, オブジェクト生成, 文字列連結などの諸操作 Garbage collection Perl, シェルスクリプト,Visual Basic, … 注: OSのAPIとプログラミング言語のAPIの関係 malloc/freeなどはOSとアプリケーションプログラムの仲介屋(問屋?小売店?客) OS メモリ管理 ライブラリ (malloc/freeなど) アプリケーション malloc/ free OSのAPI (sbrk, brk, etc.) そもそ
您可能关注的文档
最近下载
- 专升本语文资料.docx VIP
- 西南15G701-2-混凝土结构轻质填充墙构造图集.pdf
- 《在祖国怀抱里课件》小学音乐冀少2011课标版三年级上课件.ppt
- 烹饪专业调研报告.pdf
- 城市轨道交通安全管理项目2城市轨道交通危险源辨识与安全标志.pptx VIP
- 铁工电〔2023〕54号 国铁集团关于印发《普速铁路工务安全规则》的通知.docx VIP
- 新人教版(部编)一年级语文上册《文语文园地六和大人一起读》优质课教案_20.pdf
- 燃气管道第三方施工管理安全技术规范.pdf
- 生活中的位置(课件)2024-2025-学年度苏教版(2024)数学一年级上册.pptx VIP
- 说课评价量表.doc VIP
文档评论(0)