コンピュータサイエンス入門覚え書き②

参考文献:電子学園出版局『情報処理基礎講座コンピュータシステムの基礎』

論理演算
0と1の2つの値(論理値)で足したりかけたりをすること。論理値を用いた演算はブール代数と言う。

①OR(論理和)
AとBどちらかが少なくとも1の時、演算結果は1。

②AND(論理積)
AとBの両方が1の時だけ、演算結果は1。

③NOT(論理否定)
0の時は1、1の時は0とあまのじゃくなことをすること。

④EOR(排他的論理和)
エクスクルーシブOR。AとBのどちらか一方が1のときだけ1。つまりどちらも1の場合は0となる。

⑤NOR
NOTとORを組み合わせた演算。AとBどちらかが少なくとも1の時、演算結果は0。

⑥NAND
NOTとANDを組み合わせた演算。AとBの両方が1の時だけ、演算結果は0。

⑦一致回路
AとBがおなじ論理値(0と0、1と1)の場合に1。

⑧フリップフロップ回路
セット、リセットの信号が来るまで、0または1の状態で待機する回路。
つまり情報記憶回路で、コンピュータでは1ビットの情報を記憶する。

半加算器
とどのつまり、コンピュータはこのようなスイッチの組み合わせで演算を行っているのである(ただ電気信号に反応しているだけで、別にう~んと考えて計算しているわけではない)。
例えば、二つのAND回路と、一つのOR回路とNOT回路を組み合わせると、二つの数の足し算ができるようになる。これを半加算器という。
半加算器には二つの入口AとB、二つの出口SとCがある。

OR回路
AとBのどちらかがONだった場合、答えは01なので、答えの出力を担当するSに信号を送る。

AND回路①
AとBのどちらもONだった場合、答えは10となり桁が繰り上がるので、繰り上がりを担当するCに信号を送る。

NOT回路
AND回路がどちらもONだった場合、答えは10となり一桁目は0になるので、Sへの信号を切る。
AND回路がどちらもOFF、もしくはどっちかがONだった場合は、答えは01なのでSに信号を送る。

AND回路②
出口Sの門番で、OR回路とNOT回路がつながっている。
ORとNOTのどちらもONの場合、答えは1なのでSに信号を送る。
それ以外は、答えは0、もしくは10で繰り上がりなので、Sへの信号を切る。

この半加算器を複数組み合わせることで、数ビットの計算ができるようになる。

メモリ
記憶装置はビットデータを電圧の度合いによって記憶できる記憶素子から構成されている。
記憶素子は半導体が用いられているが、いくつか種類がある。

ICメモリ
ICとはインテグレーテッド・サーキットの略で、集積回路のこと。
数ミリのシリコンチップに、トランジスタ(信号の波形は変えずに電気の強さを変える素子)、抵抗器、コンデンサ(電気をためる)、ダイオード(電気の流れを整える)などの素子を組み込んで配線した物。
回路の集積度合いによって、SSI、MSI、LSI、ベリーLSI、ウルトラLSIなどがある。
小型で信頼度が高いわりに価格が安く、量産化ができるため、主流となっている。
ちなみに読み取りしかできない物をROM、読み取りもできて書き込みもできる物をRAMと言う。

ジョセフソン素子
鉛やニオブなどの金属の電極の間に絶縁シートをはさんだ素子。
この素子を-270℃前後まで冷やすと、絶縁シートの電気抵抗が0となり電流が流れる(ジョセフソン効果)。
いわゆる超伝導現象を利用した素子で、処理速度はシリコンの1000倍、消費電力もきわめて小さいため、高い集積化が可能である。ただ冷やさないとダメ。

ガリウムヒ素素子
シリコンの代わりにガリウムヒ素のクリスタルを使用したもの。結晶中の電子の移動速度を利用した物で、シリコンの5~6倍電子移動速度は速い。

HEMT素子
ヘムト素子と呼ぶ。ハイ・エレクトロン・モビリティ・トランジスタ(高電子移動)素子。
ガリウムヒ素素子のパワーアップバージョンで、ガリウムヒ素結晶にアルミニウムガリウムヒ素の層を重ねると、その境界面での電子移動度が液体窒素の温度-196℃で極めて大きくなる現象(シリコンの約50倍)を利用している。

言語プロセッサ(言語処理プログラム)
プログラムの作成は一般的に高級言語で書かれるが、これをコンピュータが解読できるかたち(機械語)にまで変換するためのプログラムのこと。
変換前のプログラムを原始プログラム(ソースプログラム)、変換後のプログラムを目的プログラム(オブジェクトプログラム)と呼ぶ。

マシン語
0と1のみで書かれた言語。最低級言語。

アセンブラ言語
アセンブリとは、ものを集めて組み立て作業をすること。
機械語を記号化して、ある程度プログラミングを容易にできるようにした言語。
とはいえ、人間よりはコンピュータ向けの言語。

高級言語の分類
人間が使う言葉に近いプログラム言語のこと。以下の4つがある。

①手続き型言語
命令を1つずつ記述し、それを順番に実行する。
FORTRANやBASIC、C言語など。

②関数型言語
関数の組み合わせを用いることで、バグの原因になりやすい代入文を極力使わないようにしている。LISPなど。

③論理型言語
問題を述語論理で記述するとそれがプログラムとして働く。人工知能の分野で利用。
Prologなど。

④オブジェクト指向型言語
データと手続き(メソッド)をセットにしたオブジェクトという単位でシステムを記述する。また、各オブジェクトにヒエラルキーをつけることで、システムの構築および管理がしやすく、システム開発に利用されている。
C++やJavaなど。

マークアップ言語
文字そのもの以外に文字の色やサイズを記述して、画面や印刷物の体裁を整える。

スクリプト言語(マクロ)
高級言語。ソフトウェアの実行を自動化するための言語。そのため機械語への翻訳を飛ばして、ソフトウェアがそのまま解釈できる。
javaスクリプトなど。エクセルなどの表計算ソフトではマクロと呼ばれる。

インタプリタ言語
アセンブラやコンパイラのようにソースコードを一括して翻訳するのではなく、1命令ごとに解読し実行していく言語。
そのため、プログラムをすべて完成させなくても実行ができる。しかし、処理速度はコンパイラ言語に劣る。
BASICなど。

データ処理
大きく分けて二つの方法がある。

バッチ処理
一括処理という意味。
会社のタイムカードのように、毎日の勤務状況を記録していき、月末にそれを一括処理するしくみ。
処理するデータが全て集まってから作業を行うため効率がよい。
しかし、その時々で状況が変わるような現象を把握する際には向かない。

リアルタイム処理
データの入力があったら即座に処理を行うこと。
銀行のATMや新幹線の座席予約のように、データ処理・データ更新の一連の処理手続きをオンラインで行う、オンライン・トランザクション処理や、ジェット旅客機の自動操縦といったあらかじめ設定された飛行経路のデータに沿って処理を行う、リアルタイム制御処理などがある。

ページング
メインメモリと仮想メモリ(外部記憶装置)の間で、ある程度の大きさに小分けされたデータ(ページ)をやりとりすること。
そのままではメインメモリが処理しきれない大きなプログラムを複数処理する場合に行う。

スラッシング
もうこれ以上ページをメインメモリに格納できなくなったら、格納されているどれかをページアウト(メインメモリから仮想メモリに移動させる)して、新たに処理したいページをページインする。これをページ置き換えアルゴリズムという。
このページ置き換えが頻繁に起こると、その置き換えにCPU時間が費やされてしまい、動かしたいユーザプログラムが止まってしまう。この現象をスラッシングという。

フラグメンテーション
断片化という意味。メモリの編集を繰り返すうちに、割り付けられない断片が多数できて、徐々にプロセスを格納するためのまとまったエリアが確保できなくなり、それがまた割り付けられないメモリの断片を生むといった悪循環のこと。
こういった無駄な空き領域を防ぐアルゴリズムには以下のようなものがある。

①最初適合アルゴリズム
最初にみつかったプロセスを格納できる空間を割り当てる。

②最適適合アルゴリズム
格納できる空間のうち最小の領域のものを割り当てる。

③最悪適合アルゴリズム
格納できる空間のうち最大の領域のものを割り当てる。かなりもったいない。なぜ考案されたのか。

ぱっと見て①が一番良い方法のような感じがするが、クヌースのシミュレーションによれば②が意外といいらしい。

デフラグメンテーション
通称デフラグ。フラグメンテーションが進行すると、ファイルの分割保存、OSの処理量増大等を招き、処理速度の低下、ディスクトラブルを誘発する。
そこで、デフラグソフトを使って、ディスク内のファイルを先頭から並べ直してファイルの分割状態を解消し連続した空き領域を増やすと、処理速度が改善したりする。

危機管理対策
自然を管理することはできない。これこそカオスの核心だよ。

フォールト・トレラント
失敗に寛容ということ。アクシデントは起こる物だと見越して対策を取ること。
対照的な2つのシステム、考え方がある。

①フェール・ソフト
システムの一部が故障しても全体はダウンさせず、性能が低下してでもある程度の処理は遂行するシステム。

②フェール・セーフ
システムの一部に故障や誤作動が起きた場合、システムの暴走を防ぐため全システムを停止させてしまうこと。信号機や原子炉がこれを採用している。

フォールト・アボイダンス
失敗を禁忌するということ。アクシデント(システム停止)は絶対あってはならないという考え方。
現実では、フォールト・トレラントとの両面作戦でシステム設計は行われている。

フール・プルーフ
バカによる使用を防ぐという意味。
正しい使い方でなければ動かないようにするという考え方。
例えば、ドアを開けたまま電子レンジはチンできない、ギアがパーキングに入ってないと車はエンジンがかからない、といったもの。
Calendar
<< February 2020 >>
SunMonTueWedThuFriSat
      1
2345678
9101112131415
16171819202122
23242526272829
search this site.
tags
archives
recent comment
recent trackback
others
にほんブログ村 科学ブログへ にほんブログ村 科学ブログ 恐竜へ カウンター
admin
  • 管理者ページ
  • 記事を書く
  • ログアウト