Golang のGUI Fyneを使ってみる

Menu

検索を信じない。

    https://github.com/fyne-io/fyne

を見ること。

    go get fyne.io/fyne
    go get fyne.io/fyne/cmd/fyne_demo/
    export FYNE_FONT=/Library/Fonts/AppleGothic.ttf
    $GOPATH/bin/fyne_demo 

で動く。自分で必要と思えるレベルまで解いてください。


level 1 Gannt Chart を書く

複数のタスクのスケジューリングを表す時間を横軸としたグラフを書く。

入力は、プログラムに内蔵しても良いし、ファイルから読み込んでも良い。


level 2 パラメータから指標を計算する

Turn around time を計算するようにして、SJF を使った場合と、そうでない場合を比較せよ。


level 3 スケジューラシミュレータを書く

round robin, shortest job first, priority などをサポートするシミュレータを書く。

マルチCPU対応にすること。

与えられたタスクのデータを読み込み、 task のqueue を作成して、 run で実行する。

データの形式は以下のようにする。Jason / YAMLでも良い。

        # type[n/p] clock taskname task-size priority [period]
        n 0 a 110 5
        n non-periodic
        p periodic

cf. https://ie.u-ryukyu.ac.jp/hg/teacher/index.cgi/home/hg/teacher/kono/os/OSQueue/


level 4 Periodical task

Ratemonotonic なスケジューラを書く


level 5 scheduling goroutine

goroutine 自体を schedule する方法を考案し、golang に実装せよ。


Shinji KONO / Thu Jan 2 14:11:07 2020