キャッシュとスクラッチパッド

キャッシュ

キャッシュはメインメモリの内容をその名の通りキャッシュしておくわけだが、メリットとしては主記憶からわざわざ近くに持って来なくてもアクセス先の周辺やそれ自身がアクセスされたことがあるといつのまにか近くにデータが持って来られているという算段だ。同じ変数を頻繁にアクセスする時間的局所性と近くのデータにアクセスしやすい空間的局所性を利用することで効率的に動作する。

スクラッチパッドメモリ(データメモリ)

スクラッチパッドメモリのことを知らない人は多いかもしれないが、先ほど説明した通り、スクラッチパッドメモリは小さなキャッシュではない普通のメモリに見える。これを普通のメモリとして変数を割り当てたりするのはナンセンスな使い方だ。せっかくの高速なメモリなのでキャッシュと同じように頻繁にアクセスされるような使い方が望ましい。

ネットワークスペシャリスト合格体験記

今年はもうネットワークスペシャリストの申し込みが終わったようだ。
ブログのネタが無くなって来たので昨年のネスペの合格について書いてみようと思う。

まずネスペを受けるに当たって一番大事にして欲しいのは過去問だ。
教科書を完璧にするという考え方はネットワークスペシャリストには通用しないように思える。なぜなら完璧にしようとすると暗記量が爆発してしまうからだ。一方で過去問を見ていると出題される分野がある程度偏っていることが見て取れると思う。特にセキュリティとシステムの冗長化に関しては毎年必ず出ると考えて良いだろう。

とは言いつつ、最初から過去問を解くことが出来るわけではない。従って、最初は教科書的なものを利用することになると思う。

最初に利用して欲しいテキストは”応用情報技術者”のネットワークに関する項だ。
この部分は丸暗記で良い。応用情報で出るようなネットワークの話はネスペを取るためには必要最低限暗記しなくてはならない骨格となるからだ。

おそらく応用情報のネットワークが出来るようになるとネスペの午前問題の4割程度は出来るようになるのではないか(当然応用情報のテキストは沢山あるのでどれを使うかによって大きく変わるだろうが)。

次はいわゆる道場で午前問題を完璧にするべきだ。問題を解くのは楽しい故、モチベーション維持に大変有効となる。
解くときは解説付きに限定すると良いだろう。
自分は通学中(片道一時間以上)に計算問題抜きで、自宅では計算問題ありで行なっていた。
大体合格点くらいの割合(6割)正解できるようになって来たら午後問題も並行して勉強し始めると良いと思う。

午後対策は初めに教科書について来た過去問の演習を行なった。さすがにお金を払っているだけの価値はある(Bookoffで200円だったがw)。数年分みっちりやるとなんとなくの感覚は掴めるようになるのではないだろうか。
しかしながらこれだけだと当然演習量が不足する。そこでIPAから過去問をダウンロードして何年分も演習することで補う。IPAは解説がそこまで十分でないのでわからないままになってしまう時がいくつかあった。そんなときは教科書を眺めたりネットで検索するなどして適宜解消していくことになるだろう。

試験前は道場で90%、午後で得意分野は80%、そうでない分野は60%くらい取れるように仕上げると…

合格できる。

なんだかんだある程度余裕を持った合格でした。
それでも最短の努力で済んだかなという印象です。

イキリたかっただけです。ごめんなさい。
これから受験する方、頑張ってください。

CentOSとUbuntuとWindowsのトリプルブート(デュアルブート)

元々Windowsがインストールされている環境からUbuntuをインストールすれば簡単にデュアルブートさせることができた。

しかしCentOSをここに入れたら詰まったのでメモ

元々OSがインストールされているということと、パーティションは自分で設定したかったので手動で設定することにした。

しかし「partition で ext4 ファイルシステム を 使用する場合、grub2によって組込まれる core.img用領域 が sda には不足している可能性があります。」というエラーがどうしても解決できなかった。

どうやらgrubが問題ということでブートローダのインストールをしないことで解決することができる。

おそらく新しいパーティーションだとここまでで済むはずだが、自分は元々ubuntuが2個入っているうちの1つを潰してCentOSをインストールした関係で間違えてgrubを潰してしまった。そのせいでlive cdから修復させざるを得なかった。この方法は以下を参考にしてほしい。

https://askubuntu.com/questions/145241/how-do-i-run-update-grub-from-a-livecd

コンピュータアーキテクチャ界隈におけるプログラマビリティの定量的評価

研究をしていて壁に行き詰まった。
自分の先行はコンピュータアーキテクチャなのだが、コンピュータアーキテクチャを変えようとすると大体今の汎用プロセッサよりプログラミング、コンパイルが難しくなる。
プログラミング、コンパイルの容易さを表す指標がプログラマビリティなのだが、論文を読んでいてもプログラマビリティが定量的に評価されていない。

定量的に評価されていないものが良くなった、悪くなった、あれより良い、これより良いと言われたところでそれを証明することが出来ない。定性的な評価はされていてもどの程度信頼性を置いて良いものか分からない(これは定量的評価が可能であっても)。

自分としてはプログラマビリティの高いアーキテクチャが作れたつもりなのだが、そのアーキテクチャのプログラマビリティがどうなのか人に説明することが難しい。

こんなんでは新しいISAの形を考える分野が縮小してしまうのではないか。