14...

6
1 MULTICS34ビット仮想アドレス Operating System 2016 18 6 10 0..00110(=6) 6 0xC00 0..000(=0) 0 PF2 クイズ解答 MULTICSでの仮想アドレス(2進)が、000000000000000110 000000 0000100010とする(先頭から順にセグメント番号、ページ番号、オフセットとする)時、以下の説明文 の空欄を埋めよ。その際にカッコ内の指示に従った語句又は数字で答える事。ページサイズ 4KBとする。 セグメント番号がであるので、まずそのセグメント番号のセグメントディスクリプタを参 照する。ここではその内容の上位18ビットが000000110000000000であったとしよう。こ の時、このセグメントのページテーブルの開始アドレスは0x00C00である。ここで仮想 ページと物理ページフレームの対応がそれぞれ、(0,2),(1,3),(2,1),(3,X)だったとする(前者が 仮想ページ番号)と、求めるページは、仮想ページ番号がであるのでページフレーム2ある。ここにオフセットを加え、最終的にアクセスするアドレスは8226(8192+3 4) 0x2022になる。 0..0100010(=34) 34 0x22 8192 0x2000 8226 0x2022 セグメント番号 ページ番号 オフセット オペレーティングシステム14 6.3 ファイルシステムの実装(途中) 6.3.1 ファイルシステムの配置 ファイルシステムはディスク上に置く ディスクの多くは複数の区画に分割される 各区画はそれ自身がファイルシステムである Operating System 2016 3 ブート情報 区画情報 OSをロードす るプログラム ファイルシステム の重要な情報 ファイルシステム中 のファイル実体 ファイルシステムとOSロード ディスクのセクタ0は”MBR”と呼ばれ,コンピュータ のブート時に,ロードするOSに関する情報を保持 MBRに続く領域は区画テーブル 各区画の開始位置,終了位置を与える テーブル中に“アクティブ印”があると,ブート時にBIOS がこの区画からOSをロードする MBRは最初にアクティブな区画を見つけ,ブートブ ロックと呼ぶ最初のブロックを読み出し,実行する ブートブロックはその区画にあるOSをロードする Operating System 2016 4

Upload: others

Post on 06-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    MUL

    TICS

    の34

    ビット仮

    想アドレス

    Operating System

     201

    6

    186

    10

    0..001

    10(=6)

    60xC0

    0

    0..000

    (=0)

    0PF

    2

    クイズ解

    答MULTICSで

    の仮

    想ア

    ドレ

    ス(

    2進

    )が

    、000000000000000110

    000000

    0000100010

    だと

    する

    (先

    頭か

    ら順

    にセ

    グメ

    ント

    番号

    、ペ

    ージ

    番号

    、オ

    フセ

    ット

    とす

    る)

    時、

    以下

    の説

    明文

    の空

    欄を

    埋め

    よ。

    その

    際に

    カッ

    コ内

    の指

    示に

    従っ

    た語

    句又

    は数

    字で

    答え

    る事

    。ペ

    ージ

    サイ

    ズは4KBと

    する

    。セ

    グメ

    ント

    番号

    が6

    であ

    るの

    で、

    まず

    その

    セグ

    メン

    ト番

    号の

    セグ

    メン

    トデ

    ィス

    クリ

    プタ

    を参

    照す

    る。

    ここ

    では

    その

    内容

    の上

    位1

    8ビ

    ット

    が000000110000000000

    であ

    った

    とし

    よう

    。こ

    の時

    、こ

    のセ

    グメ

    ント

    のペ

    ージ

    テー

    ブル

    の開

    始ア

    ドレ

    スは0

    x0

    0C0

    0で

    ある

    。こ

    こで

    仮想

    ペー

    ジと

    物理

    ペー

    ジフ

    レー

    ムの

    対応

    がそ

    れぞ

    れ、(0,2),(1,3),(2,1),(3,X)

    だっ

    たと

    する

    (前

    者が

    仮想

    ペー

    ジ番

    号)

    と、

    求め

    るペ

    ージ

    は、

    仮想

    ペー

    ジ番

    号が

    0で

    ある

    ので

    ペー

    ジフ

    レー

    ム2

    にあ

    る。

    ここ

    にオ

    フセ

    ット

    を加

    え、

    最終

    的に

    アク

    セス

    する

    アド

    レス

    は8

    22

    6(

    81

    92

    +3

    4)

    0x

    20

    22

    になる。

    0..010

    0010

    (=34

    )

    34 0x22

    8192

    0x20

    00

    8226

    0x20

    22

    セグメント番号

    ページ番号

    オフセット

    オペレーティングシステム

    146.

    3 ファイル

    システムの

    実装

    (途

    中)

    6.3.

    1 ファイル

    システムの

    配置

    ファイルシステムはディスク上に置く

    ディスクの多くは複数の区画に分割される

    各区画はそれ自身がファイルシステムである

    Operating System

     201

    63

    ブート情

    区画

    情報

    OSをロードす

    るプログラム

    ファイルシステム

    の重要な情報

    ファイルシステム中

    のファイル

    実体

    ファイル

    システムと

    OSロ

    ード

    ディスクのセクタ0は

    ”MBR

    ”と呼ばれ,コンピュータ

    のブート時に,ロードする

    OSに

    関する情報を保持

    M

    BRに続く領域は区画テーブル

    各区画の開始位置,終了位置を与える

    テーブル

    中に“アクティブ印

    ”が

    あると,ブート時

    にBI

    OS

    がこの

    区画

    から

    OSを

    ロードする

    M

    BRは最初にアクティブな区画を見つけ,ブートブ

    ロックと呼ぶ最初のブロックを読み出し,実行する

    ブートブロックは

    その

    区画

    にある

    OSを

    ロードする

    Operating System

     201

    64

  • 6.3.

    2 ファイル

    の実

    どのディスクブロックがどのファイルに属しているか

    を示す経路の保持は,ファイルシステムの実装にお

    いて重要な問題.

    ディスク上

    のファイル

    をどの

    ように組

    織化

    するか

    ?ディスク上ファイルを保存するための適切なデータ構造は

    何か

    ?実現性のある三つのアプローチ

    Co

    ntig

    uous

    allo

    catio

    n連続割り当て

    Li

    nked

    list

    allo

    catio

    n連結リストの割り当て

    i-n

    ode

    iノード

    Operating System

     201

    65

    連続

    割り当

    ディスク上

    の一

    つの

    連続

    したディスクブロックにファイル

    を保

    ユーザ

    はあらか

    じめ、ファイル

    のサ

    イズを宣

    言しなけれ

    ばなら

    ない

    ある種の適当なアルゴリズムを使用して、ファイルが保存可能

    であるディスクの領域の場所を見つける

    利点

    速い順アクセス

    : 連続

    したディスク・ブロックの

    間でシークが

    少ない

    ランダムアクセスが

    容易

    :ファイル

    ブロックの

    位置

    計算

    が容

    欠点

    ファイル削除による断片化

    大きなディスクスペースの獲得が困難

    り当

    て後

    に成

    長するファイル

    スペース問

    Operating System

     201

    66

    連続

    割り当

    Operating System

     201

    67

    ファイル

    のヘッダは

    とても単

    純な構

    ファイル

    の最

    初の

    ブロックの

    アドレスとブロック数

    (a)

    Con

    tiguo

    us a

    lloca

    tion

    of d

    isk sp

    ace

    for 7

    file

    s(b

    ) St

    ate o

    f the

    disk

    afte

    r file

    s Dan

    d F

    have

    bee

    n re

    mov

    ed

    断片

    断片

    na me

    start

    leng

    th

    A0

    B4

    C7

    D13

    E18

    12

    F30

    G36

    na me

    start

    leng

    th

    A0

    B4

    C7

    E18

    12

    G36

    連結

    リスト割

    り当

    Operating System

     201

    68

    ファイル

    はディスクブロックの

    連結

    リストとして保

    持各

    ブロックの

    最初

    のワードは

    ,次

    のブロックを指

    すポインタ

    ディスク・ブロックは隣接している必要はない

    Allo

    catio

    nSt

    orin

    g a

    file

    as a

    link

    ed li

    st o

    f di

    sk b

    lock

    s

  • 連結

    リストの

    是非

    断片化なし

    順アクセスは高速

    ランダムアクセスは

    非常

    に遅

    データ保存領域が2のべき乗でなくなる(次ポインタ必

    要)

    点の

    克服

    →U

    se F

    ile A

    lloca

    tion

    Tabl

    e (F

    AT)

    インデックス付与

    FA

    Tをメモリに置くので高速

    Operating System

     201

    69

    メモリ上

    のテーブル

    を用

    いた連

    結リスト割

    Operating System

     201

    610

    連結リストは,ファイル割り当てテーブ

    ルとしてメモリ上に置く

    ・テーブル

    をFAT(File Allo

    catio

    n Table)

    と呼ぶ

    ・ブロック全体をデータに割り当て

    (前

    出問

    題の

    解決

    !)

    ・ランダムアクセスが可能。ファイル内

    オフセット検出のためチェーンを

    たどる必要がある

    ・テーブル

    の肥

    大化

    !20

    GB,1KB

    ブロックなら20

    00万

    エントリ

    つまり80

    MB必

    要(4B/エントリ)

    ↓ディスクブロックを大きく,たとえば

    1KBか

    ら32

    KBへして対応

    ・MS‐DO

    Sで採

    ・ディスク容

    量が

    大きくなるとテーブ

    ルをメモリに置

    くの

    が困

    4→7→

    2→10

    →12

    6→3→

    11→14

    ファイル

    Aの終端

    ファイル

    Bの終端

    i-nod

    e on

    Mul

    ti-le

    vel I

    ndex

    ed F

    iles

    i-n

    ode(

    inde

    x no

    de)は

    各ファイルの属性

    とブロックアドレスを列

    挙したもの

    きさが

    決まっている

    使用(オープン)しているファイル分の

    み必要

    ディスクの

    大きさによらない!

    利点

    最後のポインタにより、ファイルを容易

    に伸縮できる

    さいファイル

    は深

    い木

    走査

    のオー

    バーヘッドが無い

    欠点

    大きなファイルは多くのブロックが必要

    Operating System

     201

    611

    An example i‐n

    ode

    6.3.

    3 ディレクトリの

    実装

    (1)

    ディレクトリは

    その

    中にファイル

    に関

    するエントリを含

    たる機

    能は

    ,データの

    場所

    を発

    見するの

    に必

    要な情

    報にファイルの

    ASC

    II名を写

    像することである

    N

    ame ➞

    disk

    add

    ress

    of t

    he e

    ntire

    file

    N

    ame ➞

    the

    num

    ber o

    f firs

    t bl

    ock

    (for l

    inke

    d lis

    t sch

    emes

    )

    Nam

    e➞

    the

    num

    ber o

    f the

    i-n

    ode

    どこに、ファイルの属性を保つか

    ?

    2つの

    方法

    が有

    効:

    ディレクトリのエントリ中

    当する

    i-nod

    e の

    Operating System

     201

    612

  • ディレクトリの

    実装

    (2)

    Operating System

     201

    613

    (a)

    簡単なディレクトリ:固定長のエントリ、ディスクアドレス、属性を保持

    (b)ディレクトリ中の各エントリは対応する

    i-nod

    eの参照に利用

    iノード番

    固定長サイズのフィールド中に入りきれない長いファイル名ではどうなるか?

    ディレクトリ中

    の長

    い名

    前問

    題の

    解決

    法は

    次の

    二つ!

    (a) I

    n-lin

    eブロック内部に保持

    (b) I

    n a

    heap

    ヒープに展開

    ディレクトリの

    実装

    (3)

    長い名前の問題

    M

    S-D

    OS

    :1-8文

    字の

    基本

    名+

    1-3文

    字の付加的な拡張子

    U

    NIX

    V7

    :拡張子も含めて

    1-14

    文字

    に:制

    限を設

    けて

    ~25

    6文字

    解決

    :ディレクトリエントリの

    長さを予

    め決

    めない

    インライン

    ヒープ

    エントリ長

    ●ファイル1へのポインタ

    ファイル属性

    ●ファイルの属性

    ディレクトリ名

    +Ӵ

    0”

    欠点

    :

    ファイルを削除した後の断片化

    ページ境界を跨ることによるページフォルト

    ファイル名の順探索の遅さ

    Operating System

     201

    614

    デイレクトリの

    実装

    (4)

    Operating System

     201

    615

    Two ways o

    f han

    dling long

     file nam

    es in

     dire

    ctor

    In‐line

    In a hea

    p

    長いディレクトリ名の場合,探査の過程を早くするためにさまざまなテクニック

    を使

    うことが

    できる

    ッシュテーブル

    の活

    用探査結果のキャッシング

    6.3.

    4 共

    有ファイル

    二人のユーザがひとつのファイルをリンクで共有

    一方の更新を他方が知り得ないと言う問題

    決案

    :ディスクブロックディレクトリに

    置か

    ずファイル

    自身

    に配

    ディレクトリは

    これ

    を指

    し示

    Bの

    ディレクトリには

    シンボリックを置く

    Operating System

     201

    616

  • 共有

    ファイル

    Operating System

     201

    617

    (a) リ

    ンク前の状況

    (b) リ

    ンク作成後

    (c)元

    の所有者が削除した場合

    ファイル

    は通

    常ディスク上

    に保

    存され

    る.その

    結果

    ,ファイル

    管理

    が必

    要である.

    メモリ空

    間管

    理と同

    様の

    問題

    がある

    連続割り当ては成長するファイルの場合は難しい

    連結リスト割り当ては順アクセスが遅い

    しか

    し,ディスクアクセスが

    はるか

    に遅

    いことが

    より困

    難である

    共有

    ファイル

    i-n

    odeに

    関する課

    所有者がファイルを削除するまでの間,ファイルを残す

    シンボリックリンクに関

    する課

    Extra

    I/O

    ove

    rhea

    d余

    分な

    I/Oオーバーヘッド

    分に

    i-nod

    e an

    d di

    sk b

    lockが

    必要

    共有ファイルに伴う課題

    あるディレクトリ下にリンクされたファイルを複数回発見

    その結果,バックアップ時に同じファイルを何回も記録する

    Operating System

     201

    618

    6.3.

    5 ディスク空

    間の

    管理

    Bloc

    k Si

    ze

    多くの

    ファイル

    システムは

    固定

    サイズの

    ブロック方

    式を採

    ファイル

    ブロックは

    どれ

    くらいの

    大きさか

    ?

    大き過ぎると内部浪費となる

    : 低い空

    間利

    用率

    さすぎとディスクシークの

    頻発

    を誘

    う: 低

    いデータ転

    送レート

    Operating System

     201

    619

    ・Da

    rk line

     (left h

    and scale) gives data rate of a

     disk

    ・Do

    tted lin

    e (righ

    t han

    d scale) gives disk

     space efficiency 

    ・All files 2

    KB

    空きブロックの

    管理

    Operating System

     201

    620

    (a) 空

    きリストを連結リストに格納

    (b) ビ

    ットマップ

    256個

    のブロック

    を保持

  • 空きブロックの

    管理

    きリストの

    ポインタが

    1ブロック分

    だけ必

    ファイル

    が作

    られ

    るとき,ポインタの

    詰まったブロックか

    ら必

    要なブロック

    を取

    ってくる

    それ

    が無

    くなれ

    ば,ディスクか

    らブロックをとってくる

    Operating System

     201

    621

    (a)で

    はメモリ内

    のポインタブロックに空

    きが

    二つしか

    ない.この

    状況

    で3ブ

    ロックの

    大きさの

    ファイル

    が開

    放され

    ると,ポインタブロックが

    溢れ

    ディスクに書

    き出

    され

    (b)に

    なる.これ

    は大

    量の

    入出

    力の

    原因

    となる.こ

    れを防

    ぐには

    ,メモリ上

    のポインタブロックを半

    分に分

    割し片

    方をディスクに書

    き込

    み,残

    りに

    3ブロックを

    追加

    する.

    新たに3

    ブロック

    ディスクの

    クォータ機

    々が

    あまりに多

    くの

    ディスクスペースを得

    るの

    を防

    op

    en fi

    le ta

    ble 構

    造の

    中に第

    二の

    テーブル

    を利

    Operating System

     201

    622

    Quo

    tas for kee

    ping

     track of each user’s disk use

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /CreateJDFFile false /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice