Unix Operating System では、同期機構としては以下のようなものが 用意されている。
ファイルをロックする標準的な機構
歴史的な理由で存在するロック、fcntl は /dev/tty* をlockするのに使う
これらのsystem callが使えない時には、ln を使ってsymbolic linkが 作成されたかどうかをチェックすることによってlockを実現することができる
複数のstreamからただ一つを選び出す。daemon / server が monitor として 機能することをこれにより実現できる
TCP socket 上のselect。複数のTCP socket connection の要求からただ 一つを選び出す。 Unix daemon は、これを使う方が普通である。
UDP socket 上のselect。複数のUDP socket connection の要求からただ 一つを選び出す。 信頼性が保証されてないのが欠点
同期機構としてはかなり限られたものであるが、仕事の待ち合わせには便利
System V の機能。ipcs というprogramで外から制御することができる。 あまり使っている人はいない。
System V の機能。ipcs というprogramで外から制御することができる。 あまり使っている人はいない。
情報実験では新城先生が作った thread library を用いる。これらは、 thread 上での同期機構を提供する。
情報工学実験Iの6 プロセス間の同期・通信を おこなうこと。この実験は Sun で行います。desgin1 または、 fish1 に rlogin して実験して下さい。レポートはメールで
Subject: Operating System Lecture 6/6というように、課題を出した日付をサブジェクトに入れたメールで 提出して下さい。しめきりは、2週間後(6/19)とします。既にレポートで 提出した人は、そのむね同じサブジェクトのメールで連絡して下さい。
コンピュータにはメモりが付き物である。このメモリは、どのように使われている のだろうか? メモリは、
さらにメモリは、OS下の複数のプロセス、ユーザから要求されている。この時に、
個々のプロセスでは、あたかも自分一人がCPUとmemoryを専用している下のように
見えた方が良い。これは仮想プロセッサと呼ばれるものであった。仮想プロセッサの
メモリと実際のメモリを結びつけるには、アドレス変換(Address Translation)
という技術を用いる。
アドレス変換は、基本的には表引きで行われる。
frame size を2kbyte とした時に、32bit memory spaceで必要なpage table の大きさを求めよ。64bit ではどうか? 一つのpage table entry の大きさは8byteとする。
そこで、この変換を2重3重にしておこなう。
32bit address に対して、 3重の変換を行った時に、frame size 2kbyte, p1 のbit幅8とする時に、 p2 のbit 幅はいくつか? この時に必要な page table entry の大きさは いくつか?
この変換は結構 hard ware にとっても重いので、このpage entry を
cache するという技術が使われる。これを、TLB (Traslation lookup
buffer) という。