平成28年秋季 問17. CPUの遊休時間
問題文「五つのタスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は、表のとおりである。優先度”高”のタスクと、優先度”低”のタスクのうち一つだけを同時に実行する。実行を開始してから、両方のタスクの実行が完了するまでの間のCPUの遊休時間が最も短いのは、どの優先度”低”のタスクとの組み合わせか。ここで、I/Oは競合せず、OSのオーバヘッドは考慮しないものとする。また、表の()内の数字は処理時間を示すものとする。」
解答群
ぱっとみ解説だけでは理解ができず、ランボー1を見ながらぼーっと眺めていて初めて理解ができた。
この問題ではI/O(Input / Output)が競合しないという点がわかりにくかった様子。I/Oが競合しない、つまり、I/Oの部分は二つのタスクが同時に行えるということだ。
言葉だけではわかりにくいのでまずは表にしてみた。I/Oの競合が発生しないというのは、ここでは2つのタスクが同時にI/Oを行えるということなので、同じ列に重なっていても問題ないことになる。
1つのタスクはCPUを使っているか、I/Oを行っているかのいずれかしかできないので、上の表にある灰色の部分のようにCPUが使われていない時間が発生することになる。
これがCPUの遊休時間ということになる。
もう一つ注意が必要なのは、問題が「最も早く処理が終わる時間」を聞いていないという点だ。このような問題は問いの内容によって答えが変わってくるので注意が必要だと思う。簡単に手書きで答えが導き出せるようにするのが必要だと思う。
2017年3月11日土曜日
2017年3月10日金曜日
トレーニング日誌 2017/3/8~
一連の記事で行っている実験のまとめはこちらのページ、生活実験:トレーニングを参照ください。
ざっくりまとめると忙しい中で一日30分のトレーニングと食事制限で体脂肪を落とせるのか?という実験をやっています。
2017/3/8
体重:74.9kg
体脂肪率:21.2%
基礎代謝量:1646kcal
基礎代謝量:1646kcal
肉体年齢:38歳
シックスパックトレーナー Lv.15
※特にコメントはない。
体重:74.8kg
体脂肪率:22.3%
基礎代謝量:1620kcal
基礎代謝量:1620kcal
肉体年齢:40歳
フレンチプレス(7.5kg) x25
ワンハンドローイング(7.5kg) x20
サイドレイズ+デッドリフト(7.5kg) x10
トライセプスエクステンション x10
トライセプスエクステンション x10
大胸筋アイソメトリック x2
Labels:
生活実験
2017年3月8日水曜日
ガーベジコレクション、その他メモリ配置
平成28年秋季 問16. ガーベジコレクション
問題文「プログラム実行時の主記憶管理に関する記述として適切なものはどれか。」
解答群
ア. 主記憶の空き領域を結合して一つの連続した領域にすることを、可変区画方式という。
イ. プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを、ガーベジコレクションという。
ウ. プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを動的リンキングという。
エ. プログラムの実行中に必要になった時点でモジュールをロードすることを、動的再配置という。
正直なところ、正解がイだとわかったのはガーベジコレクションという言葉を聞いたことがあって、なんとなく間違いではないことだけがわかったからで、その他の解答群についてはさっぱり理解していないので調査対象とした。
まずはそれぞれの用語をしっかりと把握してみよう。
今回検索してみて、絵付きで解説してくれているサイトさんでは断トツにわかりやすく、且つ要領を得たサイトがすぐに見つかった。
Geechs Managineさんの「5分で分かるガーベジコレクションの仕組み」である。
実際Javaを勉強しようとして出てきた用語なのでよく覚えているが、C言語などを教えてもらおうとして挫折した頃は、メモリの解放なんかについて説明を受けた記憶がある。
ざっくりまとめてしまうとプログラムが一旦利用したメモリの領域を、自動で開放する仕組み、ということになる。
Javaなどの高級言語以前はプログラムを書くときにメモリの解放を指定する必要があったとかなんとか・・・ 実際にはそこまでどっぷりプログラムの勉強できなかったのでそんなコードを書いた覚えはまるでないがw
後、これは応用情報にはあまり出てこないかもしれないが今後のために覚えておきたいのが「Scavenge GC」と「Full GC」だ。
こちらも上のリンクである程度教えてくれているが、まとめてしまうとヒープ領域と呼ばれるメモリ領域には二つの種類があり、比較的長い間使われる(つまり複数回参照されるような)オブジェクトは「Old領域」それ以外の命が短いオブジェクトは「New領域」に格納される。この「New領域」と呼ばれるところをざっくり掃除してくれるのが「Scavenge GC(Scavengerでハイエナなどの動物、清掃する・不要物を除去するなどの意)」で「Old・New領域」両方を全部掃除するのが「Full GC」ということだ。
何故覚えておきたいかというと、「Full GC」が頻繁に起こるとプログラム処理時間に影響があるから、とだけ書いておきたい。詳しく知りたい方は上記リンクを参照されたい。
次に可変区画方式について、だが、ググった結果を色々見ていると非常に端的に表現してくれているサイトを見つけた。
京都産業大学 大本教授?の平成14年度システムソフトウェア講義資料の「第7章 記憶管理」である。
おそらくは講義に使用するためにパワーポイント的にまとめた資料だと思われるが、非常に端的にかつ的確に要点をまとめてくれているのでわかりやすい。初めて開いた時は何かの冗談かバグかと思ったぐらいだが・・・
で、可変区画方式というのは、メモリを使う場合にプログラムが必要な分量だけ使う方式、ということになるが、もっと言うとプログラムが必要とするメモリのサイズはプログラムによって違うため、どれだけのサイズを指定するか?という問題が出てくる。
この割り当て方法について、プログラムがどのくらい使用するかは「しらんっ これだけ用意したからこれ使えっ( ゚Д゚)」と指定する方式を「固定区画方式」、
「ここに必要な分の領域があるからここを使ってねぇ(*´▽`*)」と指定する方式を「可変区画方式」というらしい。
他のページも時間があるときに(できればサイトがなくならないうちに)見てみたいが、他に試験で使うような内容を書いてくれているサイトもあったので紹介しておきたい。
it-資格.jpというサイトさんの「実記憶管理」である。
どうやら基本情報か応用情報資格試験用のサイトのようで、関連する用語をまとめてくれてはいる、が、全てが有益か?全てがわかりやすいか?という点では疑問がある。
次に、動的リンキングなのだが、この用語についてはなかなかピンポイントで「それが何を意味するか」という答えが出てこなかった。
ググった結果の多くは試験を受ける人を対象にしたもので、非常にざっくりと用語を説明してくれているだけである。
そこで見つけたのは「基本情報処理技術者になってください」というサイトさんの「動的リンキング」というページである。
このサイトさんはおそらく実際に何かのプログラムを作っているような人が書いているサイトなのか、非常にゆるーく、且つわかりやすく実際に怒っているだろうと思われることを例示して書いてくれている。
ただ、書かれている内容がゆるすぎる感じもあったので、英語でも検索してみた。
そこで見つけたのは「Computer Science from the Bottom Up」というサイトさんの「Chapter 9. Dynamic Linking」というページである。
転載させていただくと、
******************************
Each executable contains a reference essentially saying "I need library foo". When the program is loaded, it is up to the system to either check if some other program has already loaded the code for library foo into memory, and thus share it by mapping pages into the executable for that physical memory, or otherwise load the library into memory for the executable.
******************************
ざっくり訳すと
******************************
実行ファイル(プログラム)は「こんなライブラリが必要だよぉ」と言う情報だけ持っていて、そのプログラムが実行されるときにシステム(OS)側が他のプログラムが同じライブラリをメモリ上にロードして(呼び出して)いるかどうかをチェックし、あればその場所をプログラムに教えなければメモリにロードするということをする。
******************************
ということである。(だいぶ意訳しているので疑わしい場合は自分で訳してほしい。)
そして最後に「動的再配置」だが、これも同じくしっかりとした説明を探すのが難しかった。色々とブラウジングしてここで(全部は当然理解できなかったものの)ある程度納得のいく説明を見つけることができた。
宮城教育大学、(なんの授業かはわからないが)「授業のページ」より「オペレーティングシステム第5-2章 主記憶の管理-2-」
このページ中、「5.8 動的再配置機能を用いるマルチプログラミング」という項目があり、内容を抜粋すると
******************************
メモリフラグメンテーション問題を解決するには、空き領域を結合してーつの連続した大きな空き領域にすればよい。それには、実行中のプロセスをメモリ内で移動させる必要がある。この処理を、メモリコンパクション、この機能を動的再配置機能という。****(中略)****この動的再配置機能によって、プロセスをメモリにロードするための領域の動的作成、削除、拡大、縮小によって生ずるメモリフラグメンテーションを解決できる。
******************************
そろそろ疲れてきたのでフラグメンテーションについては割愛させてもらうが、メモリのフラグメンテーションが発生した場合に、領域を効率的に使うために利用されるのが動的再配置と呼ばれる機能ということになる。
可変区画方式ではメモリが充分に空いている場所を指定してプログラムを配置するため、フラグメンテーションが発生する。このような場合にメモリを有効利用するため実行中のプログラムが利用しているメモリを別の場所に移動することでメモリの利用率を向上させようというものらしい。
ここまで調べて改めて問題を読み返してみると、「ア.ウ.エ.」については明らかに説明している文章と用語が一致していないのがわかる。。。
というか今日の俺は頑張ったっ( ゚Д゚)
問題文「プログラム実行時の主記憶管理に関する記述として適切なものはどれか。」
解答群
ア. 主記憶の空き領域を結合して一つの連続した領域にすることを、可変区画方式という。
イ. プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを、ガーベジコレクションという。
ウ. プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを動的リンキングという。
エ. プログラムの実行中に必要になった時点でモジュールをロードすることを、動的再配置という。
正直なところ、正解がイだとわかったのはガーベジコレクションという言葉を聞いたことがあって、なんとなく間違いではないことだけがわかったからで、その他の解答群についてはさっぱり理解していないので調査対象とした。
まずはそれぞれの用語をしっかりと把握してみよう。
今回検索してみて、絵付きで解説してくれているサイトさんでは断トツにわかりやすく、且つ要領を得たサイトがすぐに見つかった。
Geechs Managineさんの「5分で分かるガーベジコレクションの仕組み」である。
実際Javaを勉強しようとして出てきた用語なのでよく覚えているが、C言語などを教えてもらおうとして挫折した頃は、メモリの解放なんかについて説明を受けた記憶がある。
ざっくりまとめてしまうとプログラムが一旦利用したメモリの領域を、自動で開放する仕組み、ということになる。
Javaなどの高級言語以前はプログラムを書くときにメモリの解放を指定する必要があったとかなんとか・・・ 実際にはそこまでどっぷりプログラムの勉強できなかったのでそんなコードを書いた覚えはまるでないがw
後、これは応用情報にはあまり出てこないかもしれないが今後のために覚えておきたいのが「Scavenge GC」と「Full GC」だ。
こちらも上のリンクである程度教えてくれているが、まとめてしまうとヒープ領域と呼ばれるメモリ領域には二つの種類があり、比較的長い間使われる(つまり複数回参照されるような)オブジェクトは「Old領域」それ以外の命が短いオブジェクトは「New領域」に格納される。この「New領域」と呼ばれるところをざっくり掃除してくれるのが「Scavenge GC(Scavengerでハイエナなどの動物、清掃する・不要物を除去するなどの意)」で「Old・New領域」両方を全部掃除するのが「Full GC」ということだ。
何故覚えておきたいかというと、「Full GC」が頻繁に起こるとプログラム処理時間に影響があるから、とだけ書いておきたい。詳しく知りたい方は上記リンクを参照されたい。
次に可変区画方式について、だが、ググった結果を色々見ていると非常に端的に表現してくれているサイトを見つけた。
京都産業大学 大本教授?の平成14年度システムソフトウェア講義資料の「第7章 記憶管理」である。
おそらくは講義に使用するためにパワーポイント的にまとめた資料だと思われるが、非常に端的にかつ的確に要点をまとめてくれているのでわかりやすい。初めて開いた時は何かの冗談かバグかと思ったぐらいだが・・・
で、可変区画方式というのは、メモリを使う場合にプログラムが必要な分量だけ使う方式、ということになるが、もっと言うとプログラムが必要とするメモリのサイズはプログラムによって違うため、どれだけのサイズを指定するか?という問題が出てくる。
この割り当て方法について、プログラムがどのくらい使用するかは「しらんっ これだけ用意したからこれ使えっ( ゚Д゚)」と指定する方式を「固定区画方式」、
「ここに必要な分の領域があるからここを使ってねぇ(*´▽`*)」と指定する方式を「可変区画方式」というらしい。
他のページも時間があるときに(できればサイトがなくならないうちに)見てみたいが、他に試験で使うような内容を書いてくれているサイトもあったので紹介しておきたい。
it-資格.jpというサイトさんの「実記憶管理」である。
どうやら基本情報か応用情報資格試験用のサイトのようで、関連する用語をまとめてくれてはいる、が、全てが有益か?全てがわかりやすいか?という点では疑問がある。
次に、動的リンキングなのだが、この用語についてはなかなかピンポイントで「それが何を意味するか」という答えが出てこなかった。
ググった結果の多くは試験を受ける人を対象にしたもので、非常にざっくりと用語を説明してくれているだけである。
そこで見つけたのは「基本情報処理技術者になってください」というサイトさんの「動的リンキング」というページである。
このサイトさんはおそらく実際に何かのプログラムを作っているような人が書いているサイトなのか、非常にゆるーく、且つわかりやすく実際に怒っているだろうと思われることを例示して書いてくれている。
ただ、書かれている内容がゆるすぎる感じもあったので、英語でも検索してみた。
そこで見つけたのは「Computer Science from the Bottom Up」というサイトさんの「Chapter 9. Dynamic Linking」というページである。
転載させていただくと、
******************************
Each executable contains a reference essentially saying "I need library foo". When the program is loaded, it is up to the system to either check if some other program has already loaded the code for library foo into memory, and thus share it by mapping pages into the executable for that physical memory, or otherwise load the library into memory for the executable.
******************************
ざっくり訳すと
******************************
実行ファイル(プログラム)は「こんなライブラリが必要だよぉ」と言う情報だけ持っていて、そのプログラムが実行されるときにシステム(OS)側が他のプログラムが同じライブラリをメモリ上にロードして(呼び出して)いるかどうかをチェックし、あればその場所をプログラムに教えなければメモリにロードするということをする。
******************************
ということである。(だいぶ意訳しているので疑わしい場合は自分で訳してほしい。)
そして最後に「動的再配置」だが、これも同じくしっかりとした説明を探すのが難しかった。色々とブラウジングしてここで(全部は当然理解できなかったものの)ある程度納得のいく説明を見つけることができた。
宮城教育大学、(なんの授業かはわからないが)「授業のページ」より「オペレーティングシステム第5-2章 主記憶の管理-2-」
このページ中、「5.8 動的再配置機能を用いるマルチプログラミング」という項目があり、内容を抜粋すると
******************************
メモリフラグメンテーション問題を解決するには、空き領域を結合してーつの連続した大きな空き領域にすればよい。それには、実行中のプロセスをメモリ内で移動させる必要がある。この処理を、メモリコンパクション、この機能を動的再配置機能という。****(中略)****この動的再配置機能によって、プロセスをメモリにロードするための領域の動的作成、削除、拡大、縮小によって生ずるメモリフラグメンテーションを解決できる。
******************************
そろそろ疲れてきたのでフラグメンテーションについては割愛させてもらうが、メモリのフラグメンテーションが発生した場合に、領域を効率的に使うために利用されるのが動的再配置と呼ばれる機能ということになる。
可変区画方式ではメモリが充分に空いている場所を指定してプログラムを配置するため、フラグメンテーションが発生する。このような場合にメモリを有効利用するため実行中のプログラムが利用しているメモリを別の場所に移動することでメモリの利用率を向上させようというものらしい。
ここまで調べて改めて問題を読み返してみると、「ア.ウ.エ.」については明らかに説明している文章と用語が一致していないのがわかる。。。
というか今日の俺は頑張ったっ( ゚Д゚)
Labels:
応用情報処理技術者試験
2017年3月7日火曜日
トレーニング日誌 2017/3/6~
一連の記事で行っている実験のまとめはこちらのページ、生活実験:トレーニングを参照ください。
ざっくりまとめると忙しい中で一日30分のトレーニングと食事制限で体脂肪を落とせるのか?という実験をやっています。
2017/3/6
体重:74.8kg
体脂肪率:20.9%
基礎代謝量:1648kcal
基礎代謝量:1648kcal
肉体年齢:38歳
シックスパックトレーナー Lv.15
※今日は珍しく海外と打ち合わせがあった。
生来声がでかいのもあるだろうが、英語でしゃべると決まってその後に「聞かなければならないのか?」と思うほど問われることがある。
「英語ぺらぺらですか?」
この問いはいついただいても非常に困る。
この問いを俺の頭の中で変換すると、「英語はネイティブ並みに話せますか?」ということになるのだが、聞いてる側からするとその辺の違いはあまり関係ないらしい。
生来声がでかいのもあるだろうが、英語でしゃべると決まってその後に「聞かなければならないのか?」と思うほど問われることがある。
「英語ぺらぺらですか?」
この問いはいついただいても非常に困る。
この問いを俺の頭の中で変換すると、「英語はネイティブ並みに話せますか?」ということになるのだが、聞いてる側からするとその辺の違いはあまり関係ないらしい。
多分英語が全く話せない日本人の人から俺がしゃべってるのを聞くと区別はつかないと思うが、わかる人には明らかに日本人だとわかるぐらいの違いがあるらしい。
これは昔、大学を卒業してから日本に英語講師をしに来ていた中国系アメリカ人(母国語:英語)の友達が言っていたことだが、まず母音の発音が微妙らしい。
それと、利用する単語や言い回しが少しネイティブに言わせると妙だということだ。
つまり、ネイティブ並みではないっ ⇒ ぺらぺらではないっ( ゚Д゚)
体重:74.7kg
体脂肪率:20.5%
基礎代謝量:1656kcal
基礎代謝量:1656kcal
肉体年齢:37歳
フレンチプレス(7.5kg) x25
ワンハンドローイング(7.5kg) x20
サイドレイズ+デッドリフト(7.5kg) x10
トライセプスエクステンション x10
トライセプスエクステンション x10
大胸筋アイソメトリック x2
※昨日は連日のストレスを言い訳にまたもや酒を飲んだ。が、やはり食べるものと塩分を調整すればそこまで大きな影響がないことは、ほぼ確信に変わってきた。
毎日ここに書くことはその日にある程度ネタを考えるのだが、仕事の、しかも愚痴ばかりなのでたまには趣向を変えてみようと思い、晩飯を写真に撮ってみた。
箸が二膳あるのは二人いるわけではなく、納豆のねばねば対策である。
左上がいつも話題に上がる鶏ゴボウサラダである。最近はほとんどマヨネーズを入れず(というかマヨネーズを入れる意味があまりなくなっているぐらいちょっとだけなのだが)、胡麻とレモン汁で味をつけている。
まだ摂取塩分まで計算できていないが、塩分を極力摂らないようにするためだ。
そして右下が高野豆腐を入れた味噌汁である。高野豆腐で一品作っても良いのだろうが、そこまで凝ってもそこまで食事に喜びを感じる方ではないので、味とかは二の次である。時間を優先するとこういう形になるのは当たり前である。
ちなみに最近は減塩味噌を使い、塩分無添加の出汁スティックを倍量入れることでこちらも塩分を少なくする対策を施してある。
前にも書いたが、米を入れないと不思議なことに食べてからそんなに時間をおかなくても深い眠りにつけることがわかっている。現段階では個人の感想に過ぎないが、血糖値が上がることが睡眠を妨げるのではないかと想像している。
毎日ここに書くことはその日にある程度ネタを考えるのだが、仕事の、しかも愚痴ばかりなのでたまには趣向を変えてみようと思い、晩飯を写真に撮ってみた。
箸が二膳あるのは二人いるわけではなく、納豆のねばねば対策である。
左上がいつも話題に上がる鶏ゴボウサラダである。最近はほとんどマヨネーズを入れず(というかマヨネーズを入れる意味があまりなくなっているぐらいちょっとだけなのだが)、胡麻とレモン汁で味をつけている。
まだ摂取塩分まで計算できていないが、塩分を極力摂らないようにするためだ。
そして右下が高野豆腐を入れた味噌汁である。高野豆腐で一品作っても良いのだろうが、そこまで凝ってもそこまで食事に喜びを感じる方ではないので、味とかは二の次である。時間を優先するとこういう形になるのは当たり前である。
ちなみに最近は減塩味噌を使い、塩分無添加の出汁スティックを倍量入れることでこちらも塩分を少なくする対策を施してある。
前にも書いたが、米を入れないと不思議なことに食べてからそんなに時間をおかなくても深い眠りにつけることがわかっている。現段階では個人の感想に過ぎないが、血糖値が上がることが睡眠を妨げるのではないかと想像している。
Labels:
生活実験
2017年3月6日月曜日
MIPS
平成28年秋季 問15. MIPS
問題文「オンライントランザクション処理システムにおいて、1分当たりの平均トランザクション数が1,200件であり、1件のトランザクション処理で100万命令を実行する場合、CPU性能が100MIPSのコンピュータを使用した時のCPUの平均利用率は何%か。」
解答群
ア. 5
イ. 10
ウ. 15
エ. 20
不正解だったので調査対象にしたのだが、改めて考えてみると非常に簡単な問題だった。
逆に、こういう問題こそ取りこぼしが無いようにしたいものだ。
まず、MIPSとは、
Million Instructions per second の略とのこと。これは問題文に「100万命令を実行」とあるので、知らなくてもなんの略なのかはわかりそうなものである。
しっかりと文章を読み解くと、まず
「1件のトランザクション処理で100万命令を実行」し、利用しているCPUが
「CPU性能が100MIPS」つまり100万命令を1秒で実行する
というところから、100件のトランザクションを1秒で処理できることがわかる。
ここまで書いてきて、解答が当たったけども根本的な間違いを犯していたことに気づいた。
1秒で1件の処理だから1,200件を60秒で割ると答えは「20」だっ( ゚Д゚)
大間違いである。
100MIPSはつまり、100×100万命令を1秒で実行する(Million = 1,000,000)なので、1分当たりの処理能力は60秒×100で6,000命令となる。
1,200/6,000は「0.2」となるので、20%が正解となる。
問題の要点としては100MIPSが「100×100万命令」であるところだ。
時間がない状態で考えると間違えやすい(英語・技術両面で恥ずかしい限りだが)問題なので、特に自分の肝に銘じておきたいと思う。
問題文「オンライントランザクション処理システムにおいて、1分当たりの平均トランザクション数が1,200件であり、1件のトランザクション処理で100万命令を実行する場合、CPU性能が100MIPSのコンピュータを使用した時のCPUの平均利用率は何%か。」
解答群
ア. 5
イ. 10
ウ. 15
エ. 20
不正解だったので調査対象にしたのだが、改めて考えてみると非常に簡単な問題だった。
逆に、こういう問題こそ取りこぼしが無いようにしたいものだ。
まず、MIPSとは、
Million Instructions per second の略とのこと。これは問題文に「100万命令を実行」とあるので、知らなくてもなんの略なのかはわかりそうなものである。
しっかりと文章を読み解くと、まず
「1件のトランザクション処理で100万命令を実行」し、利用しているCPUが
「CPU性能が100MIPS」つまり100万命令を1秒で実行する
というところから、100件のトランザクションを1秒で処理できることがわかる。
ここまで書いてきて、解答が当たったけども根本的な間違いを犯していたことに気づいた。
1秒で1件の処理だから1,200件を60秒で割ると答えは「20」だっ( ゚Д゚)
大間違いである。
100MIPSはつまり、100×100万命令を1秒で実行する(Million = 1,000,000)なので、1分当たりの処理能力は60秒×100で6,000命令となる。
1,200/6,000は「0.2」となるので、20%が正解となる。
問題の要点としては100MIPSが「100×100万命令」であるところだ。
時間がない状態で考えると間違えやすい(英語・技術両面で恥ずかしい限りだが)問題なので、特に自分の肝に銘じておきたいと思う。
Labels:
応用情報処理技術者試験
2017年3月5日日曜日
トレーニング日誌 2017/3/4~
一連の記事で行っている実験のまとめはこちらのページ、生活実験:トレーニングを参照ください。
ざっくりまとめると忙しい中で一日30分のトレーニングと食事制限で体脂肪を落とせるのか?という実験をやっています。
2017/3/4
体重:74.6kg
体脂肪率:19.9%
基礎代謝量:1664kcal
基礎代謝量:1664kcal
肉体年齢:36歳
シックスパックトレーナー Lv.15
※今日は出社時点で落ち着かない一日だった。
忙しかったか?と言われると気ぜわしいだけでムカつくだけの不健康な一日だと言ってみる。
ストレスがたまった日は、飲むべしってことで今酒を飲んでいる。
体脂肪率はついに20%を切る領域になったが、どうせ上がったり下がったりするだろう。その内恒常的に20%を切れるようにはなるだろうが、なんかあるたびに酒飲んでると遠のくばかりだ。
仕事の愚痴を書いても仕方がないのだが、1日で終わる分量を整理して割り振るような役割の人が派遣社員を雇う場合はあってしかるべきだ。
まあ金もらっているし働いた分はもらえるからあまり文句は言うまい。。。
忙しかったか?と言われると気ぜわしいだけでムカつくだけの不健康な一日だと言ってみる。
ストレスがたまった日は、飲むべしってことで今酒を飲んでいる。
体脂肪率はついに20%を切る領域になったが、どうせ上がったり下がったりするだろう。その内恒常的に20%を切れるようにはなるだろうが、なんかあるたびに酒飲んでると遠のくばかりだ。
仕事の愚痴を書いても仕方がないのだが、1日で終わる分量を整理して割り振るような役割の人が派遣社員を雇う場合はあってしかるべきだ。
まあ金もらっているし働いた分はもらえるからあまり文句は言うまい。。。
体重:74.8kg
体脂肪率:20.3%
基礎代謝量:1662kcal
基礎代謝量:1662kcal
肉体年齢:37歳
フレンチプレス(7.5kg) x25
ワンハンドローイング(7.5kg) x20
サイドレイズ+デッドリフト(7.5kg) x10
トライセプスエクステンション x10
トライセプスエクステンション x10
大胸筋アイソメトリック x2
※今日は昨日と打って変わって静かな一日。
人それぞれ色んな悩みがあるもんだ。
しかし俺は18歳以降、精神的に歳を取っている気がしていない、というのが普通だと思っていたら20代にして40歳まで年老いてしまっている人がいるらしい。
そのまま年取ってしまったら60歳で80歳になってしまうではないかっ( ゚Д゚)
いや、違うな・・・
精神年齢が2倍の速度で40代までに年老いているわけだから・・・ Y=2X で60歳までに120歳になれる計算になれるわけだ・・・
すごいな・・・前人未踏まで歳を取るがよいっ( ゚Д゚)
人それぞれ色んな悩みがあるもんだ。
しかし俺は18歳以降、精神的に歳を取っている気がしていない、というのが普通だと思っていたら20代にして40歳まで年老いてしまっている人がいるらしい。
そのまま年取ってしまったら60歳で80歳になってしまうではないかっ( ゚Д゚)
いや、違うな・・・
精神年齢が2倍の速度で40代までに年老いているわけだから・・・ Y=2X で60歳までに120歳になれる計算になれるわけだ・・・
すごいな・・・前人未踏まで歳を取るがよいっ( ゚Д゚)
Labels:
生活実験
2017年3月4日土曜日
仮想サーバの冗長化設計
平成28年秋季 問13. 仮想サーバの冗長化設計
問題文「仮想サーバの冗長化設計における可用性評価に関する記述のうち、クラスタソフトウェアを用いた評価として、適切なものはどれか。」
解答群
ア. OS、アプリケーションおよびハードウェアの障害に対応し、障害時に障害が発生していないサーバに自動的に処理を引き継ぐので、切替え時間の短い安定した運用が求められる場合に有効である。
イ. 仮想サーバを停止させずに物理サーバ間で仮想サーバを移動することが可能となるので、メンテナンスなど業務移行の際も含めて業務の停止が全く許容できない場合に有効である。
ウ. 物理サーバに備わっている機能を利用するので、ハードウェアの障害にだけ対応し、障害時に業務停止が許容される場合に有効である。
エ. 物理サーバのリソース(CPU、メモリなど)をブロック単位に物理的に分割し、あるブロックの障害が他のブロックに影響しないようにするので、障害時に業務の停止が許容できない場合に有効である。
まず、多少チート気味だが解答群のそれぞれの用語を見てみることにする。
ア. クラスタリング方式
イ. ライブマイグレーション方式
ウ. 仮想マシン方式
エ. パーティショニング方式
で、答えであるクラスタリング方式というものから調査を始めたところ・・・見事にラビリンスに迷い込んだ。
ただし、この分野の迷宮は実際に仕事で接する機会も多かったりするので恐怖のラビリンスというよりかはワクワクしながらあっちこっち見回っている感じである。
クラスタリングから仮想サーバ、そしてそもそもの仮想化に至るまで迷宮内部に入り込んだ時点で非常に時間を浪費していることに気がついた。そして、都合4日間お気に入り保存せずにブラウジングした結果を酔っぱらって間違ってシャットダウンしてしまった。。。
そこで、まずは「サーバ仮想化」という言葉でGoogle先生に聞いてみた。
広告を除く検索結果2位に目を引くタイトルが表示された。「5分で絶対にわかるサーバ仮想化-IT」というサイトだ。
流し読みしてみたが、具体的な名詞は少なく、概念的に仮想化というのを捉えるのであればよいのかもしれないが、では俺基準で「絶対に理解できたか?」と言うとそうは言い難い。あくまで俺基準ではあるが・・・
かなり長いシリーズで仮想化を詳述してくれていたサイトがあったのだが、シャットダウンしてしまったのが悔やまれる。。。
と・・・しばらく自分が考えそうなキーワード検索したところ、あったっ(*´▽`*)
これは久しぶりに自分をほめてあげたい。
検索ワード「仮想化 パーティショニング」で検索したところ、ASCII.jpさんの「パーティショニングによる仮想化とは?」というサイトが引っ掛かった。
このサイトさんでは、仮想化技術についてかなり詳細に取り扱っていてくれていて、第一回は「さまざまな仮想化技術の基本を理解する」となっている。ここを読み始めたが結構な分量になるのでシリーズ3分の1ぐらいで、
ハッ( ゚Д゚) 結局問題の解答を得られていないっ( ゚Д゚)
と思ったわけである。
上のシリーズは問題を解くだけでなく、最近の大規模な基幹システムなどでは普通に使われている(今働いている企業でも使われている)ものなので、時間があったら読んでみたいと思う。
では、俺が犯した間違いを繰り返さないように、必要な情報だけ拾って問題に解答できる力のみつけれるように、拾い読みして理解できるようにまとめると以下のようになる。
まず、サーバの仮想化によるクラスタリング方式について、言葉の意味は
Wikipediaによると「英語で『房』『集団』『群れ』のこと。」
英語で検索すると次のような意味になる
Dictionary.comより「a number of things of the same kind, growing or held together; a bunch: "a cluster of grapes"
となっている。ブドウの房をイメージすればよいようだ。
これを踏まえて、Enterprise Zin?さんの「クラスタサービスとは?」というサイトを見ると、かなりまとめて書いてくれている。
書いてあることをまとめると、クラスタリング方式には大きく分けて二つ、「アクティブ・スタンバイクラスタ」と呼ばれる方式と「負荷分散クラスタ」という方式に分かれている。
アクティブ・スタンバイクラスタは別の用語でいうと「ホットスタンバイ」と呼ばれる冗長化方式でサーバを2つ用意し、一つは待機系として、稼働系サーバに問題が発生した際にサービスを継続して提供するように構成されたものである。
この方式をさらに発展させたもの(だと思われるのが)負荷分散クラスタと呼ばれるもので、それこそブドウの房のようにいくつものサーバを「ロードバランサー」と呼ばれる負荷分散装置に接続して、ユーザからの要求に対して別々のサーバを割り当てる方法のことを言うそうだ。
次にライブマイグレーション方式と呼ばれる方法はどうだろう?
英語で書くと「Live Migration」で、どうやら言葉だけからすると「生きたまま移植する」みたいな意味であると想像できる。死んだ状態で移植手術が行われたら人間だったら単なる解剖になってしまうが・・・
こちらの内容については「@IT」さんの「Hyper-V 2.0のライブ・マイグレーションの基礎知識」というサイトが非常によくまとめて下さっている。
このサイトでは、ライブマイグレーションという技術の前身である「クイック・マイグレーション」という方式も含めて触れてくれており、いかにしてサーバ業務の移行に伴うシステム停止の時間を短くしているかを教えてくれている。
簡単にまとめてしまうと、ある一つのサーバの業務を完全に他のサーバに引き継ぐことを考えるとクイックマイグレーションでは
1.サーバで稼働しているメモリの内容をコピーする
2.サーバで稼働しているストレージ(HDDなど)の内容をコピーする
3.業務を引き継ぐ
という内容になるが、1.と2.を行うためにはサービスの要求を停止しないと同期が取れないのでシステムの停止がその分必要になる。
そこで、ライブマイグレーションでは、
上の2.で行っているストレージのコピーを必要なくするためにストレージをさらに別の場所に分けてしまう ということを行い、
1.についてはコピー作業を段階的に行って完全に同期が取れたタイミングで業務を引き継ぐということを行っている
ということらしい。
上手くまとまっているかわからないが、これ以上詳しい内容(もしくは俺が言っている内容が間違っている場合)は上のサイトに詳しく載っているので参照してほしい(つまり丸投げである)。
最後にパーティショニング方式については・・・
Think ITというサイトさんから「仮想化~実装技術は様々」というページに書かれているパーティショニングの項目がわかりやすい。
今日でこの項目については終わりにしたいためやっつけてしまうが、Partitionに分けて仮想化を行っているものだと思われ、サーバ資産を物理的にせよ論理的にせよ、分けて機能を提供するものらしい。
実務で色々な技術に触れる機会が多い人は、ASCIIさんの「パーティショニングによる仮想化とは?」を参照するとわかりやすいと思う。
はっきり言って俺にはわからなかったが・・・w
ここまで調べて問題を見返してみると、確かに書いてあることは全く別の内容を示していることはわかった。
ただし、問題文のウ.だけは本当に理解不能だ。
******************************
物理サーバに備わっている機能を利用するので、ハードウェアの障害にだけ対応し、障害時に業務停止が許容される場合に有効である。
******************************
一体何の役に立っているというのだろうか・・・
問題文「仮想サーバの冗長化設計における可用性評価に関する記述のうち、クラスタソフトウェアを用いた評価として、適切なものはどれか。」
解答群
ア. OS、アプリケーションおよびハードウェアの障害に対応し、障害時に障害が発生していないサーバに自動的に処理を引き継ぐので、切替え時間の短い安定した運用が求められる場合に有効である。
イ. 仮想サーバを停止させずに物理サーバ間で仮想サーバを移動することが可能となるので、メンテナンスなど業務移行の際も含めて業務の停止が全く許容できない場合に有効である。
ウ. 物理サーバに備わっている機能を利用するので、ハードウェアの障害にだけ対応し、障害時に業務停止が許容される場合に有効である。
エ. 物理サーバのリソース(CPU、メモリなど)をブロック単位に物理的に分割し、あるブロックの障害が他のブロックに影響しないようにするので、障害時に業務の停止が許容できない場合に有効である。
まず、多少チート気味だが解答群のそれぞれの用語を見てみることにする。
ア. クラスタリング方式
イ. ライブマイグレーション方式
ウ. 仮想マシン方式
エ. パーティショニング方式
で、答えであるクラスタリング方式というものから調査を始めたところ・・・見事にラビリンスに迷い込んだ。
ただし、この分野の迷宮は実際に仕事で接する機会も多かったりするので恐怖のラビリンスというよりかはワクワクしながらあっちこっち見回っている感じである。
クラスタリングから仮想サーバ、そしてそもそもの仮想化に至るまで迷宮内部に入り込んだ時点で非常に時間を浪費していることに気がついた。そして、都合4日間お気に入り保存せずにブラウジングした結果を酔っぱらって間違ってシャットダウンしてしまった。。。
そこで、まずは「サーバ仮想化」という言葉でGoogle先生に聞いてみた。
広告を除く検索結果2位に目を引くタイトルが表示された。「5分で絶対にわかるサーバ仮想化-IT」というサイトだ。
流し読みしてみたが、具体的な名詞は少なく、概念的に仮想化というのを捉えるのであればよいのかもしれないが、では俺基準で「絶対に理解できたか?」と言うとそうは言い難い。あくまで俺基準ではあるが・・・
かなり長いシリーズで仮想化を詳述してくれていたサイトがあったのだが、シャットダウンしてしまったのが悔やまれる。。。
と・・・しばらく自分が考えそうなキーワード検索したところ、あったっ(*´▽`*)
これは久しぶりに自分をほめてあげたい。
検索ワード「仮想化 パーティショニング」で検索したところ、ASCII.jpさんの「パーティショニングによる仮想化とは?」というサイトが引っ掛かった。
このサイトさんでは、仮想化技術についてかなり詳細に取り扱っていてくれていて、第一回は「さまざまな仮想化技術の基本を理解する」となっている。ここを読み始めたが結構な分量になるのでシリーズ3分の1ぐらいで、
ハッ( ゚Д゚) 結局問題の解答を得られていないっ( ゚Д゚)
と思ったわけである。
上のシリーズは問題を解くだけでなく、最近の大規模な基幹システムなどでは普通に使われている(今働いている企業でも使われている)ものなので、時間があったら読んでみたいと思う。
では、俺が犯した間違いを繰り返さないように、必要な情報だけ拾って問題に解答できる力のみつけれるように、拾い読みして理解できるようにまとめると以下のようになる。
まず、サーバの仮想化によるクラスタリング方式について、言葉の意味は
Wikipediaによると「英語で『房』『集団』『群れ』のこと。」
英語で検索すると次のような意味になる
Dictionary.comより「a number of things of the same kind, growing or held together; a bunch: "a cluster of grapes"
となっている。ブドウの房をイメージすればよいようだ。
これを踏まえて、Enterprise Zin?さんの「クラスタサービスとは?」というサイトを見ると、かなりまとめて書いてくれている。
書いてあることをまとめると、クラスタリング方式には大きく分けて二つ、「アクティブ・スタンバイクラスタ」と呼ばれる方式と「負荷分散クラスタ」という方式に分かれている。
アクティブ・スタンバイクラスタは別の用語でいうと「ホットスタンバイ」と呼ばれる冗長化方式でサーバを2つ用意し、一つは待機系として、稼働系サーバに問題が発生した際にサービスを継続して提供するように構成されたものである。
この方式をさらに発展させたもの(だと思われるのが)負荷分散クラスタと呼ばれるもので、それこそブドウの房のようにいくつものサーバを「ロードバランサー」と呼ばれる負荷分散装置に接続して、ユーザからの要求に対して別々のサーバを割り当てる方法のことを言うそうだ。
次にライブマイグレーション方式と呼ばれる方法はどうだろう?
英語で書くと「Live Migration」で、どうやら言葉だけからすると「生きたまま移植する」みたいな意味であると想像できる。死んだ状態で移植手術が行われたら人間だったら単なる解剖になってしまうが・・・
こちらの内容については「@IT」さんの「Hyper-V 2.0のライブ・マイグレーションの基礎知識」というサイトが非常によくまとめて下さっている。
このサイトでは、ライブマイグレーションという技術の前身である「クイック・マイグレーション」という方式も含めて触れてくれており、いかにしてサーバ業務の移行に伴うシステム停止の時間を短くしているかを教えてくれている。
簡単にまとめてしまうと、ある一つのサーバの業務を完全に他のサーバに引き継ぐことを考えるとクイックマイグレーションでは
1.サーバで稼働しているメモリの内容をコピーする
2.サーバで稼働しているストレージ(HDDなど)の内容をコピーする
3.業務を引き継ぐ
という内容になるが、1.と2.を行うためにはサービスの要求を停止しないと同期が取れないのでシステムの停止がその分必要になる。
そこで、ライブマイグレーションでは、
上の2.で行っているストレージのコピーを必要なくするためにストレージをさらに別の場所に分けてしまう ということを行い、
1.についてはコピー作業を段階的に行って完全に同期が取れたタイミングで業務を引き継ぐということを行っている
ということらしい。
上手くまとまっているかわからないが、これ以上詳しい内容(もしくは俺が言っている内容が間違っている場合)は上のサイトに詳しく載っているので参照してほしい(つまり丸投げである)。
最後にパーティショニング方式については・・・
Think ITというサイトさんから「仮想化~実装技術は様々」というページに書かれているパーティショニングの項目がわかりやすい。
今日でこの項目については終わりにしたいためやっつけてしまうが、Partitionに分けて仮想化を行っているものだと思われ、サーバ資産を物理的にせよ論理的にせよ、分けて機能を提供するものらしい。
実務で色々な技術に触れる機会が多い人は、ASCIIさんの「パーティショニングによる仮想化とは?」を参照するとわかりやすいと思う。
はっきり言って俺にはわからなかったが・・・w
ここまで調べて問題を見返してみると、確かに書いてあることは全く別の内容を示していることはわかった。
ただし、問題文のウ.だけは本当に理解不能だ。
******************************
物理サーバに備わっている機能を利用するので、ハードウェアの障害にだけ対応し、障害時に業務停止が許容される場合に有効である。
******************************
一体何の役に立っているというのだろうか・・・
Labels:
応用情報処理技術者試験
登録:
投稿 (Atom)