セグメント方式

セグメント方式(セグメントほうしき、: memory segmentation)は、メモリ管理の方式の一つ。プログラムデータセグメントまたはセクションという「使用目的に応じた、可変な」大きさのまとまりで管理する。セグメントは、メモリ空間上で、情報の属性などによって分類されたグループである。セグメント方式でメモリ位置を参照するには、セグメントを識別する値とセグメント内のオフセットを指定する。セグメントまたはセクションはプログラムをコンパイルした際に生成されるオブジェクトファイルでも使われており、それらがリンクされて実行ファイルが生成され、そのイメージがメモリにロードされる。

セグメントは仮想記憶メモリ保護機能を実現する方式の一つである。プログラムのモジュール毎やメモリ使用法の異なるクラス毎に「コードセグメント」や「データセグメント」といった各種セグメントが生成される。1つのセグメントを複数のプログラムが共有することもある[1]

仮想記憶におけるセグメント方式

オペレーティングシステムは、必要なプログラムやデータを主記憶上に読み込み(ロールイン)、セグメントとして管理する。読み込む際に、空き領域が足りないときは、不要なセグメントを補助記憶装置に退避(ロールアウト)して必要な空き領域をつくる。

各セグメントは、セグメントテーブルで管理され、セグメント番号とセグメントの開始物理アドレスが保管されている。各セグメントに属するプログラムやデータの実アドレスは、セグメントテーブル内の開始アドレスとそこからの相対アドレスから算出する。

セグメントは、実記憶上に連続した領域として割り当てられる。セグメントの大きさが可変長なため、場合によっては、実記憶上には空き領域の合計が十分あるのに連続領域が空いていないことがある(フラグメンテーション)。

ページ化セグメンテーション(多重仮想記憶)

多重仮想記憶の概念図

セグメント方式とページング方式を組み合わせた方式。この方式では、プログラムコード用、データ用などの各セグメントが複数のページで構成される。これによって、1つのセグメントが連続した実メモリに存在する必要が無く、外部断片化を防ぎ、効率的にメモリを使用することができる。さらに、プログラムコード用のセグメントの書き換えを禁止するといったアクセス制限や、リードオンリーのセグメントをプログラム間で共有することによりメモリ消費を抑えるといったことができる。

ページ化セグメンテーションはMULTICS[2]ACOS-4のメモリ管理に採用されている。

フラットメモリモデルにおけるセグメンテーション

ページングに対応したシステムにおいても、一つの(仮想)アドレス空間を区切ることでセグメントを実現する場合もある。たとえば、プロセスが使用するコードデータスタックをそれぞれ、0x1000から0x2000までのコードセグメント、0x2000から0x4000までのデータセグメント、0xe000から0xffffffまでのスタックセグメント、に配置して使うことである。ハードウェアがこうした方式のセグメンテーションに対応していれば、それぞれの領域に対してデータ実行防止のような保護をセグメントごとに行うことができる。

この場合、CPUアーキテクチャの互換性が高くなるが、プロセス間でセグメントを共有するときに、ページテーブルを共有してメモリ使用量を削減するというメリットはなくなる。

Linuxはこの方式を採用している。[3]

ハードウェア実装

セグメントはメモリ保護を実装する方式の1つである。ページ単位のメモリ保護もあり、両者を組み合わせることもできる。セグメントの大きさは可変であり、最小の場合1バイトとすることもできる[4]。セグメントは通常、ルーチン群やデータテーブル群といったプログラム上の自然な領域に対応しており、プログラマから見えるようになっていることが多い[1]

セグメントには長さとパーミッションがある。プロセスがあるセグメントを参照しようとしたとき、その参照の種類がパーミッションで許可されていて、その際のオフセットがセグメントの長さの範囲内であるときのみ参照できる。さもなくば、セグメンテーション違反などの例外処理が呼び出される。

セグメントには、それがメモリ上のどこに配置されているかを示す情報も付属している。それは、セグメントの先頭アドレスという場合もあるし、ページ化セグメンテーションならページテーブルのアドレスの場合もある。前者の場合、あるセグメントの範囲内の位置への参照は、セグメント内オフセットをセグメントの先頭位置のアドレスに加算して参照すべきメモリアドレスを算出する、後者の場合はセグメント内オフセットとページテーブルの内容から参照すべきメモリアドレスを算出する。

セグメントには、そのセグメントが主記憶上にあるか否かを示すフラグも付属している。主記憶にないセグメントへの参照が発生すると、オペレーティングシステムが二次記憶装置からそのセグメントの内容を読み込む。

セグメントが対応するページテーブルをもたない場合、セグメントの先頭アドレスは一般に主記憶内のアドレスである。その場合ページングは全く関与しない。80386およびそれ以降においては、ページングを使わずにそのようなアドレッシングを行う場合と、ページングを使ってページ化アドレス空間内のアドレッシングを行う場合がある。

メモリ管理ユニット (MMU) は、セグメントとセグメント内オフセットからメモリアドレスを求める処理を行い、そのアクセスが許可されているものかどうかをチェックする役目を担っている。

歴史

一般に言うセグメント方式を実装した初期のコンピュータとしてバロース B5000 があり、セグメント方式で仮想記憶を提供した最初期の商用コンピュータの1つとされている"[5]。B5000は、Program Reference Table (PRT)と呼ばれるセグメント情報テーブルを持ち、該当セグメントに関して、主記憶上にあるか否かを示す情報、サイズ、ベースアドレス英語版の保持などに利用された[6]。このアーキテクチャの改良版は、Unisys ClearPath Libra サーバで2012年現在も使われている。

GE-635を改造したGE-645はセグメントとページングを追加サポートしており、1964年のMulticsのために設計された。

Intel iAPX 432[7]は1975年に開発が始まったが、マイクロプロセッサ上で真のセグメント・アーキテクチャによるメモリ保護を実装することを意図していた。

プライム英語版ストラタスアポロといったコンピュータはいずれもセグメント方式を採用している[8]

x86

リアルモード

リアルモードx86(8086、および80286以後のプロセッサのリアルモード)におけるプログラミングモデルでは、「セグメントレジスタ」と呼ばれるレジスタが存在するが、その振舞は上記で説明したアドレッシング手法とは全く異なる。また、メモリ保護や仮想アドレスは無い。

これらのプロセッサ、あるいはリアルモードにおけるプログラミングモデルでは、アドレス空間は20ビット(1MiB)だが、アドレスレジスタ幅や通常の命令フォーマットにおけるアドレス指定フィールドは16ビットであり、これらの値は「オフセット」と呼ばれる。また、セグメントレジスタの幅も16ビットである。そして「セグメントレジスタの値×16 + オフセット」が実アドレスとなり、1MiBの全アドレス空間へアクセスする機構が8086における「セグメント」と称されたものである。

8086にはCS/DS/SS/ESの4つの16ビットの「セグメントレジスタ」があり、メモリアクセスの種類に応じて暗黙のうちにセグメントレジスタが選択される。命令フェッチならCS、データの読み書きならDS、スタックへのアクセスならSSが選ばれる。以上のようなアクセス種別による暗黙の選択の他、セグメント・オーバーライド・プレフィックスという命令の前置修飾機能があり、どれかのセグメントレジスタを明示的に選択することもできる。

メモリーモデル

8086のC言語における「メモリーモデル」は、以上のような命令セット・アーキテクチャ的な仕様に対応するための規約のようなもの[9]で、「複数のオブジェクトファイル間でセグメントを共有する際の規約」とか「セグメントの使用法や結合法が規定されている」といったような一般的な概念で説明されるようなものではない。前の節で説明でわかるように、8086ではセグメントを跨がずにアクセスできるメモリの範囲は64KiB(65,536バイト)であるので、コード量あるいはデータ量がその範囲に収まるならば収めてしまい、暗黙のセグメント指定のみでアドレッシングするようなコードにすると、ビルドされたプログラムが効率的になる。そこで、明示的にfarなどと指定されないアドレスについて、コードとデータのそれぞれのどちらも64KiB以内の「スモール」、片方だけが64KiBより大きい「コンパクト」と「ミディアム」、両方とも64KiBより大きい「ラージ」、さらに、1個の配列などが64KiBより大きくなることも考慮する「ヒュージ」のような各EXEファイルと、COMファイルのようにコードもデータも同一の64KiBに入る「タイニー」、といったようなモデルに分けられており、アプリケーションの規模等によって使い分けていた、というのが、8086のC言語における「メモリーモデル」である。

プロテクトモード

x86ファミリが、「一般的なセグメントの仕組み」を持つようになったのは、80286(のプロテクトモード)からである。

80286で、セグメント方式によるメモリ保護機能を持つプロテクトモードが追加された。プロテクトモードにおけるセグメントレジスタは、グローバルディスクリプタテーブル (GDT)・ローカルディスクリプタテーブル (LDT) 等により示されるセグメントを選択するセグメントセレクタとされた。全体のアドレス空間は24ビット (16MiB) に拡大されたが、オフセットは16ビットのままだった。

80386 (IA-32) のプロテクトモードは、ページング方式も取り入れられ(ページ化セグメンテーション)、物理・論理とも32ビット仮想記憶機能を持つようになった。オフセットは32ビットに拡張された。FSとGSというセグメントレジスタが追加された。

(以上とは異なり、インテルの先導により策定されたアーキテクチャではないが)x64では、Microsoft Windowsのx64版は、GSセグメントレジスタがスレッド局所記憶へのポインタを指すようになっている。LinuxカーネルではGSがCPU単位のデータを指している。

オブジェクトファイル

セグメントまたはセクションはオブジェクトファイルでも定義されている。異なるオブジェクトファイルにあるセグメント群は、セグメント定義時に指定されたルールに従ってリンケージエディタによって結合される。

ELFでは、実行ファイルおよび共有ライブラリを実行する目的でロードする際に用いるプログラムヘッダにてセグメントという用語を用いている。これはリンク時などに使用するセクションとは異なる抽象度を持つもので、セグメント方式に由来した名称となっている。

脚注

  1. ^ a b Englander, Irv (2003), The architecture of computer hardware and systems software (3rd ed.), Wiley, ISBN 0-471-07325-3 
  2. ^ The Multics Virtual Memory”. 2012年2月12日閲覧。 5.2 Paging 参照
  3. ^ 新城 靖. “情報科学類 オペレーティングシステム II 授業内容メモ 「メモリ管理、アドレス空間、ページテーブル」 (筑波大学情報工学研究科)”. 2012年2月12日閲覧。
  4. ^ Intel Corporation (2012). Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3 (3A, 3B & 3C): System Programming Guide. pp. 3–13. http://download.intel.com/products/processor/manual/325384.pdf 
  5. ^ Mayer, Alastair J.W.. “The Architecture of the Burroughs B5000 - 20 Years Later and Still Ahead of the Times?”. 2012年3月15日閲覧。
  6. ^ CompArchOrg & 1978,1979, p. 371.
  7. ^ Intel Corporation (1981). Introduction to the IAPX 432 Architecture. pp. 78. http://www.bitsavers.org/pdf/intel/iAPX_432/171821-001_Introduction_to_the_iAPX_432_Architecture_Aug81.pdf 
  8. ^ Van Vleck, Thomas. “Multics General Info and FAQ”. 2012年3月18日閲覧。
  9. ^ Irvine, Kip R. (1993), Assembly language for the IBM-PC (2nd ed.), New York: Macmillan, ISBN 0-02-359651-1 

参考文献

関連項目

外部リンク

Read other articles:

See also: List of tallest buildings in Europe and List of tallest structures in Europe This list ranks the tallest buildings in the European Union that stand at least 150 metres (492 ft) tall, based on standard height measurement. This means that spires and other architectural details are included in the official height, but not antenna masts, as it is defined by the Council on Tall Buildings and Urban Habitat. Only habitable buildings are ranked, which excludes radio masts and towers, ...

 

Messier 71M71 dari Hubble Space Telescope; 3.35′ Kredit: NASA/STScI/WikiSkyData pengamatan (J2000 epos)KelasX-XIRasi bintangSagittaAsensio rekta 19j 53m 46.49d[1]Deklinasi +18° 46′ 45.1″[1]Jarak13.0 ribu tc[2]Magnitudo tampak (V)+6.1[3]Dimensi tampak (V)7′.2Karakteristik fisikMassa1,7×104[4] M☉Radius13 tahun cahaya[5]MetalisitasTemplat:Fe/H dexPerkiraan umur9-10 GyrNama lainM71, NGC 6838, GCl 1...

 

العلاقات الأفغانية الألبانية أفغانستان ألبانيا   أفغانستان   ألبانيا تعديل مصدري - تعديل   العلاقات الأفغانية الألبانية هي العلاقات الثنائية التي تجمع بين أفغانستان وألبانيا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين:...

Danish footballer (born 1989) Simon Kjær Kjær playing for Sevilla in 2017Personal informationFull name Simon Thorup Kjær[1]Date of birth (1989-03-26) 26 March 1989 (age 35)Place of birth Horsens, DenmarkHeight 1.90 m (6 ft 3 in)[2]Position(s) Centre-backTeam informationCurrent team AC MilanNumber 24Youth career1993–2001 Lund IF2001–2007 FC MidtjyllandSenior career*Years Team Apps (Gls)2007–2008 FC Midtjylland 19 (0)2008–2010 Palermo 62 (5)2010–...

 

Basilika Kepausan Santo Laurensius di luar TembokBasilica Papale di San Lorenzo fuori le muraBasilika Kepausan Santo Laurensius di luar Tembok adalah tempat suci bagi diaken Romawi yang menjadi martir, Santo Laurensius. Pengeboman Sekutu pada tanggal 19 Juli 1943, selama Perang Dunia Kedua, menghancurkan fasad, yang kemudian dibangun kembali.41°54′09″N 12°31′14″E / 41.90250°N 12.52056°E / 41.90250; 12.52056Koordinat: 41°54′09″N 12°31′14″E ...

 

Town in New South Wales, AustraliaGanmainNew South WalesMain Street of Ganmain as it is today- complete with vintage carsGanmainCoordinates34°48′0″S 147°02′0″E / 34.80000°S 147.03333°E / -34.80000; 147.03333Population793 (2021 census)[1]Postcode(s)2702Location 494 km (307 mi) SW of Sydney 486 km (302 mi) N of Melbourne 57 km (35 mi) NW of Wagga Wagga 15 km (9 mi) W of Coolamon LGA(s)Coolamon Shire Counci...

John HumeKCSG Pemimpin Partai Demokrat Sosial dan BuruhMasa jabatan6 Mei 1979 – 6 November 2001WakilSeamus MallonPendahuluGerry FittPenggantiMark DurkanAnggota Majelis Irlandia Utaradapil FoyleMasa jabatan25 Juni 1998 – 1 Desember 2000PendahuluDapil baruPenggantiAnnie CourtneyAnggota Parlemen Britania Raya dapil FoyleMasa jabatan9[1] Juni 1983 – 11 April 2005PendahuluDapil baruPenggantiMark DurkanAnggota Parlemen Eropadapil Irlandia UtaraMasa jabatan10...

 

13th-century Bishop of Lincoln, astrologer, scientist, and philosopher Robert GrossetesteBishop of LincolnAn early 14th-century portrait of Grosseteste[1]Installed1235Term ended1253PredecessorHugh of WellsSuccessorHenry of LexingtonPersonal detailsBornc. 1168–70Stow,[2] SuffolkDied8 or 9 October 1253 (aged about 85)Buckden, HuntingdonshirePhilosophy careerEraMedieval philosophyRegionWestern philosophySchoolScholasticismMain interestsTheology, natural philosophyNotable ...

 

1948 Indian filmKalpanaPosterDirected byUday ShankarScreenplay byAmritlal NagarStory byUday ShankarStarringUday ShankarAmala ShankarLakshmi KantaCinematographyK. RamnothEdited byN. K. GopalMusic byVishnudas ShiraliProductioncompaniesGemini Studios, MadrasDistributed byUday Shankar ProductionRelease date 1 January 1948 (1948-01-01) Running time160 minutesCountryIndiaLanguageHindi Kalpana (transl. Imagination) is a 1948 Indian Hindi-language dance film written and directed...

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

 本表是動態列表,或許永遠不會完結。歡迎您參考可靠來源來查漏補缺。 潛伏於中華民國國軍中的中共間諜列表收錄根據公開資料來源,曾潛伏於中華民國國軍、被中國共產黨聲稱或承認,或者遭中華民國政府調查審判,為中華人民共和國和中國人民解放軍進行間諜行為的人物。以下列表以現今可查知時間為準,正確的間諜活動或洩漏機密時間可能早於或晚於以下所歸�...

 

Theory of discrimination An intersectional analysis considers a collection of factors that affect a social individual in combination, rather than considering each factor in isolation, as illustrated here using a Venn diagram. Part of a series onDiscrimination Forms Institutional Structural Statistical Taste-based Attributes Age Caste Class Dialect Disability Genetic Hair texture Height Language Looks Mental disorder Race / Ethnicity Skin color Scientific racism Rank Sex Sexual orient...

1935 utility aircraft family by Noorduyn This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (April 2008) (Learn how and when to remove this message) Norseman A restored Norseman VI from the Norwegian Spitfire Foundation Role General aviation aircraftType of aircraft Manufacturer Noorduyn Aircraft Ltd Designer Robert B. C. Noorduyn First flight November 14, 1935 S...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Desember 2022. Hanun-DaganShakkanakku dan raja MariBerkuasaskt. 2016-2008 SM Kronologi tengahPendahuluHitlal-ErraShakkanakku dan raja Mari Hanun-Dagan (yang berarti Dagan itu penyayang),[1] merupakan Shakkanakku dan raja (Lugal) dari Mari yang memerintah pad...

 

Dieser Artikel behandelt die ehemalige Gemeinde. Zum Tal des Ketzerbaches siehe Ketzerbach (Elbe). Ketzerbachtal war eine Gemeinde im sächsischen Landkreis Meißen. Sie war Sitz der Verwaltungsgemeinschaft Ketzerbachtal und nach dem sie durchfließenden Ketzerbach benannt. Ketzerbachtal wurde zum 1. Januar 2014 aufgelöst, die früheren Ortsteile kamen zur Stadt Nossen. Inhaltsverzeichnis 1 Geographie 2 Geschichte 2.1 Eingemeindungen 2.2 Einwohnerentwicklung 3 Weblinks 4 Einzelnachweise Geo...

Education and research agency of the U.S. federal courts This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Federal Judicial Center – news · newspapers · books · scholar · JSTOR (April 2010) (Learn how and when to remove this message) Federal Judicial CenterThurgood Marshall Federal Judiciary BuildingAgency overviewFormedDecember 20, 1967JurisdictionUnited...

 

US weekly news and opinion television program This article is about the television show. For the Air America radio show of the same name, see The Rachel Maddow Show (radio program). The Rachel Maddow ShowGenrePolitical news programDirected byRob KatkoPresented byRachel MaddowCountry of originUnited StatesOriginal languageEnglishNo. of episodes1500+ProductionExecutive producerCory GnazzoProducerSteve BenenProduction locationNew York CityCamera setupMulti-cameraRunning time60 minutesOriginal re...

 

Retaria Ammonia tepida hidupTaksonomiSuperkerajaanEukaryotaKerajaanChromistaFilumRetaria Cavalier-Smith, 1999 Subfilum Foraminifera Radiolaria Retaria adalah sebuah klad yang berada pada supergrup Rhizaria, yang mencakup Foraminifera dan Radiolaria.[1] Pada 2019, Retaria diakui sebagai sebuah kelompok Rhizaria basal, sebagai takson saudari dari Cercozoa.[2] Kladogram Supergrup SAR Rhizaria   Cercozoa   Retaria     Foraminifera     Polyc...

TequilaKarakteristikEponimTequila (en) JenisMinuman keras AsalMeksiko KomposisiAgave tequilana BerdasarkanMezcal (en) Kadar alkohol40 [sunting di Wikidata] Tequila (pengucapan bahasa Spanyol: [teˈkila]) adalah minuman distilasi yang terbuat dari tanaman agave yang dibuat di sekitar kota Tequila, 65 kilometer (60 mil) barat laut Guadalajara, di daerah pegunungan (Los Altos) di negara bagian Jalisco di barat Meksiko. Tanah vulkanis di sekitar Tequila dianggap cukup baik bagi pert...

 

LNB awards, statistical leaders, records, and honours Individual Awards MVP Finals MVP Ideal Quintet Best Foreign Player Most Improved Player Revelation of the Year Sixth Man of the Year Coach of the Year Statistics Statistical Leaders vte The Liga Nacional de Básquet Statistical Leaders are the statistical leaders in various different categories of Argentina's top-tier level men's professional club basketball league, the Liga Nacional de Básquet (LNB), or La Liga. Top Scorers by sea...