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 periodiccf. 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 に実装せよ。