auの日記

プログラミング初心者の日記。(auはハンドルネームです)

ポーリングとは

auです。 今回はポーリングについて調べてみました。 ポーリングとは ポーリングとは、複数の機器やプログラムに対して一定時間毎に要求を行い、要求条件を満たしていれば実行する処理方法のことです。 いつ起きるかわからないことを処理するのがこの方法で…

割り込み処理とは

auです。 今回は割り込み処理について調べました。 割り込み処理とは 割り込み処理とは、プログラムの処理の仕方の一つで、何かをするプログラムが動いている中でも、他のプログラムを動かしたいというのが割り込み処理です。 割り込みの要求は外部の機器(キ…

パイプライン処理とは

auです。 今回は命令パイプラインについて調べました。 命令パイプラインとは 命令パイプラインとは、逐次ソフトウェア(順序を追って処理するソフトウェア)の効率を上げるために、タスクを分割することです。 例えば、カレーを作る行程「具材を準備する」「…

LaTeXを使ってみた

auです。 大学の授業でLaTeXを使ってレポートを書きました。HTMLみたいに決まった文を入力すると「改行」や「段落」をつけることができて楽しいし意外と簡単にできました。数式を書くのがWordに比べてすごく楽だったと思います。 そして、昨日の転置行列を書…

C言語の転置

auです。 今回は課題で「転置」が出たので、どんなものなのかを調べてみました。 転置と調べたら、"転置行列"がでてきたのでそれについて書きます。 転置行列とは 例えば""とあったら、""と、値を入れ替えた際のn行m列行列のことです。 3行3列の場合は 上の…

仮想マシンとは

auです。 今回はよく聞く仮想マシンについて調べてみました。 仮想マシンとは 仮想マシンとは、1台のコンピュータで仮想化の技術の用い、複数のコンピュータを1台で動作させることです。 仮想化することで、余っているスペックを振り分けることができるので1…

gccの最適化オプション

auです。 今回はgccを使ってコンパイルする際に、最適化するオプションについて調べてみました。 最適化オプション 今回記述する最適化のオプションは"O1, O2, O3"です。それ以外は授業でまだ習っていないので見なかったことにします。 gcc -O1 ファイル名.c…

プログラムでのキャッシュとは

auです。 昨日のSRAMについて調べていたり、授業でよく「キャッシュ」という言葉を目にします。しかし、意味をよく分かっていないので調べてみました。 キャッシュとは キャッシュとは、CPU内や、CPUとメモリーの間にあり、一時的にメモリのデータをおいてお…

SRAMとは

auです。 今回はSRAMについて調べてみました。 SRAMとは SRAM(Static Random Access Memory)とは、読み込みと書き込みができるメモリです。 内部構造は順序回路になっているため、フリップフロップのように現在の入力だけでなく、過去に入力した情報も利用す…

クリティカルパスとは

auです。 今日はクリティカルパスについて調べてみました。 クリティカルパスとは クリティカルパスとは、 プロジェクトを実行する際に"遅延してしまうと全体に影響がでてしまうところがクリティカルパス"といいます。 プロジェクトを短くするためには、新し…

CPUにおけるCPIとは

CPI

auです。 今回はCPIについて調べてみました。 調べるといろいろなCPIと略される言葉があることを知りました。 今回調べるのはそのなかの"Cycles Per Instruction"です。 CPIとは CPUの処理速度を表す単位です。1命令を処理するのに必要な平均クロック数のこ…

CPUバウンドとは

auです。 今回はCPUバウンドという用語について調べてみました。 CPUバウンドとは 計算を行うプログラムを実行した際にはCPUが働きます。そのCPUを使って行うプログラムで、処理速度がCPUに制約されることを意味します。 CPUによってプログラムの処理が遅く…

C言語のscanf関数でスペースが入っている文字を出力する

auです。 今回はscanf関数でスペースの入った文字を出力してみます。 普通に書こうとすると以下のようになると思います。 #include <stdio.h> int main(void) { char c[30]; printf("Please write words\n"); scanf("%s", c); printf("c = %s\n", c); printf("Please </stdio.h>…

プログラムを書くときに気を付けていること

auです。 明日テストなので最近プログラミングをする際に気を付けていることでも書こうと思います。 1. i + 1など、空白をあけて見やすくする 間違いなども見つかりやすいし、みていて綺麗になる 2. 分からなくなったら誰かに説明をするように勉強する 自分…

MIPSとは

auです。 今回は"MIPS"について調べてみました。 MIPSとは MIPS(みっぷす)とは、Million Instructions Per Secondの略です。 CPUの処理性能のことで、1秒当たり100万回の命令実行回数を意味する言葉です。 分岐がほどんどない命令を実行させた際の性能を示す…

C言語のcontinue文の飛ぶ先

auです。 前回はbreak文の飛ぶ先について書きました。 今回はcotinue文の飛ぶ先について書きたいと思います。 continue文の飛ぶ先 cotinue文はfor文やwhile文のループの中でよく見かけます。continue文が処理されると、それ以下のループの内容は処理せずに、…

C言語のbreak文の飛ぶ先

auです。 今回はループなどの処理を終わりにする"break文"について書こうと思います。 break文の飛ぶ先 C言語を使っていて"break"を使う場合は今はまだ2つしか知りません。それは、「for文、while文のbreak」と「switch、case文のbreak」です。 実際にコード…

C言語で関数ポインタの配列

auです。 今回は関数ポインタを配列で呼び出す関数を変えてみたいと思います。 宣言方法 宣言方法は関数ポインタ名の後ろに配列をつけるだけです。 戻り値の型 (*関数ポインタ名[配列数])(引数の型1, 引数の型2...); これで宣言できます。 実際に使ってみる …

C言語の関数ポインタ

auです。 今回は関数ポインタについて調べました。 関数ポインタとは 関数ポインタとは、関数アドレスを格納するためのポインタ変数のことです。 変数ポインタは以前触れました。それの関数バージョンです。 関数ポインタを宣言する 戻り値の型 (*関数ポイン…

C言語のmath.hをコンパイルする

auです。 今回はヘッダファイルの"stdio.h"や”string.h”をコンパイルする際にオプションはいらないのに、"math.h"をコンパイルする際は"-lm"を付けなければならないのかを調べてみました。 math.hを使う math.h(数学関数)の中には double pow(double x, doub…

VSコードは問題なかった

auです。 昨日VSコードが緑色の波線でエラーかな?と思い記事にしました。 program-shoshinsya.hatenablog.comしかし、これはアップデート直後に起きる仕様みたいで特に問題ないとのことでした。 実際にコンパイルや実行もできますし、テストも全てVSコード…

VSコードのアプデをしたらヘッダファイルに緑色の波線がでるようになった

auです。 明日テストなので軽く書きたいと思います。 今日VSコードを立ち上げてみたのですが、画像のようにヘッダファイルに波線がでていて、メッセージには「#include errors detected. Please update your includePath. IntelliSense features for this tr…

ゼロパディングとは

auです。 今回はゼロパディングについて調べてみました。 ゼロパディングとは パディング(padding)の意味は"詰める、埋める"という意味です。 12桁の数字を出力するプログラムがあるとします。 しかし、実際に表示したい数字は"39"の2桁とします。 これを12…

アラインメントとは

auです。 今回はアラインメントについて調べてみました。 アラインメントとは align: 整列すること アラインメントは"CPUが1度に処理できるデータサイズのこと"です。 1バイトは8ビットであるので、32ビットCPUでは4バイトのデータを一度で読み書きすること…

エンディアンとは

auです。 今回はエンディアンについて調べました。 リトル・エンディアン、ビック・エンディアンがあって、バイトの並び順 関する用語ということだけは授業で軽く教わりました。 エンディアンとは エンディアンとは、1バイト(半角の文字)ではなく、2バイト(…

C言語の列挙型

auです。 今回は列挙型を扱う"enum"について調べてみました。 列挙型とは 例えば、月曜日~日曜日までがあったとします。 enum week {Mon, Tue, Wed, Thu, Fri, Sat, Sun}; 月曜日を0、日曜日が7になるように、それぞれに整数値が振られていきます。 #include <stdio.h></stdio.h>…

アキュムレータとは

auです。 授業受けるたびに意味を知らない単語ばかりでてついていけなくて焦ってます。 今回はアキュムレータについて調べてみました。 アキュムレータとは アキュムレータとは演算装置によって計算された演算結果を累積するときに使うメモリのことです。 CP…

スタックポインタとは

auです。 今回はスタックポインタについて調べました。 前回のスタックの知識を利用します。 program-shoshinsya.hatenablog.com スタックポインタとは スタックポインタとは、スタックで積み上げられた一番上のデータの次アドレスを保持するレジスタのこと…

スタックというデータ構造について

auです。 今回は「スタック」という言葉について調べてみました。 スタックとは スタック(stack)とは日本語で「積み重ね」の意味です。 スタックとはデータ記憶構造の一つで、後から入れたデータが先にでる構造のことです。後入れ先出し(LIFO: Last In First…

リカーシブコールとは

auです。 大学の授業で「リカーシブコール」という単語がでて、何だろうと思ったので調べてみました。 リカーシブコールとは 日本語で「再起呼び出し」という意味だそうです。 これは、Aの関数の中でもう一度Aの関数を呼ぶというプログラムの動きがこのリカ…