オペレーティングシステム

Size: px
Start display at page:

Download "オペレーティングシステム"

Transcription

1 1.PFLab( 加藤研 ) のウェブサイトからダウンロードできます 2. 紙資料も配布します オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 2018/5/14 第 5 回オペレーティングシステム 1

2 講義概要 受講生に求める基礎知識 C 言語の理解 コンピュータアーキテクチャの基礎の理解 メモリ管理 割り込み CPUモード 参考図書 Silberschatz, Galvin, and Gagne, Operating System Concepts 8th Edition, Wiley 成績 試験の点数で決定 試験は持ち込み不可 授業に出席していた人で試験の結果が悪い人は追試験あり 出席をとるが出席点はなし 2018/5/14 第 5 回オペレーティングシステム 2

3 講義スケジュール ( 予定 ) 1. OS の概要 (4/9) 2. プロセス管理 (4/16) 3. プロセス間交信 & スレッド (4/23) 4. プロセス同期 (5/7) 5. プロセス同期 (5/14) 6. CPU スケジューリング (5/21) 7. CPU スケジューリング (5/28) 8. メモリ管理 (6/4) 9. メモリ管理 &I/O システム (6/11) 10. I/O システム (6/18) 11. ファイルシステム (6/25) 12. プロテクション & セキュリティ (7/2) 13. バッチシステム & 分散システム & まとめ (7/9) 14. 試験 (7/23) 論文も読んでみましょう ACM SOSP USENIX OSDI USENIX ATC USENIX NSDI ACM ASPLOS 2018/5/14 第 5 回オペレーティングシステム 3

4 デッドロック 資源を排他的利用しているプロセス集合において あるプロセスが 他のプロセスが排他的利用している資源を確保しようとして待ち状態になること S と Q を初期値が 1 であるセマフォア P 0 P 1 wait(s); wait(q); wait(q); signal(s); signal(q) wait(s); signal(q); signal(s); 2018/5/14 第 5 回オペレーティングシステム 4

5 飢餓状態 (Starvation) 半永久的なブロッキング プロセスが停止したままセマフォアのキューから取り除かれることがない状態 P0 P1 P2 while(1) { Wait(S) Signal(S) } while(1) { Wait(S) Signal(S) } while(1) { Wait(S) Signal(S) } P0 と P1 がセマフォ S をとりあうと P2 は永遠に wait このような P2 の状態が飢餓状態 これは飢餓状態の一例である 実行したくても実行できない場合を飢餓状態と呼ぶ CPU スケジューリングにおいても飢餓状態が発生する場合がある 2018/5/14 第 5 回オペレーティングシステム 5

6 共有資源とは? 共有資源問題 プロセス スレッド間で交信のために使用するメモリ領域 ファイル プリンタ グラフィックス 共有資源に対する排他的利用 Bounded-Buffer 問題 Readers and Writers 問題 複数共有資源の排他的利用 Dining-Philosophers 問題 2018/5/14 第 5 回オペレーティングシステム 6

7 Bounded-Buffer 問題 共有メモリ semaphore full=0, empty=n, mutex=1; do { produce an item in nextp wait(empty); wait(mutex); add nextp to buffer signal(mutex); signal(full); } while (1); do { wait(full) wait(mutex); remove an item from buffer to nextc signal(mutex); signal(empty); consume the item in nextc } while (1); 2018/5/14 第 5 回オペレーティングシステム 7

8 共有データ semaphore mutex=1, wrt=1; int readcount = 0; wait(wrt); writing is performed signal(wrt); Readers-Writers 問題 Reader Processes は同時に実行 Writer Processes は共有資源の修正なので 排他的に実行 Writer Processes だけでなく Reader Processes とも排他的実行 wait(mutex); readcount++; if (readcount == 1) wait(wrt); signal(mutex); reading is performed wait(mutex); readcount--; if (readcount == 0) signal(wrt); signal(mutex): このプログラムでは Writer Processがwriteしたくても reader processが次から次に実行されると 待たされてしまう! 2018/5/14 第 5 回オペレーティングシステム 8

9 Dining-Philosophers 問題 複数資源を同時に取得しなければいけないような場合 ナイーブなプログラムだとデッドロックが発生 共有データ semaphore chopstick[5]; 初期値は 全て 1 これはデッドロックを起こすプログラム 解決は後ほど Philosopher i: do { wait(chopstick[i]) wait(chopstick[(i+1) % 5]) eat signal(chopstick[i]); signal(chopstick[(i+1) % 5]); think } while (1); 2018/5/14 第 5 回オペレーティングシステム 9

10 同期構文導入の動機 セマフォアによるプログラミングは煩雑 Bounded-Buffer 問題 Readers-Writers 問題 Dining-Philosophers 問題 セマフォアによるプログラミングは構造化されていないためにプログラマが使用を間違えるとバグの温床 例えば wait(s);. と書くべきところを signal(s); signal(s); wait(s); このような問題を如何に容易にエレガントに記述できる言語機能を提供できるか研究. 2018/5/14 第 5 回オペレーティングシステム 10

11 Critical Regions タイプ T を持つ共有メモリ領域 v を以下のように宣言 : v: shared T 変数 v は以下のような文 S の中でのみアクセス可能 region v when B do S B は boolean 式 B が偽の時 真になるまで待機 S を実行中他のプロセスは v をアクセス不可能 struct buffer { int pool[n]; int count, in, out; }; region buffer when (count < n) { pool[in] = nextp; in = (in+1) % n; count++; } region buffer when (count > 0) { nextc = pool[out]; out = (out+1) % n; count--; } 2018/5/14 第 5 回オペレーティングシステム 11

12 Monitors モニタ内の手続きは 一時期に一つのプロセスのみ実行 monitor monitor-name { shared variable declarations procedure body P1 ( ) {... } procedure body P2 ( ) {... } procedure body Pn ( ) {... } { initialization code } } 2018/5/14 第 5 回オペレーティングシステム 12

13 Monitors モニタ内で実行しているプロセスが wait するために condition 変数を使用 condition x, y; Condition 変数には wait, signal 操作が定義 x.wait(); 他のプロセスにより x.signal() 操作が実行されるまで wait x.signal(); wait しているプロセスが動作 プロセスが wait していなければ何もしない 2018/5/14 第 5 回オペレーティングシステム 13

14 補足 モニタ buffer 内で使用する局所データ ( 共有データ等 ) の宣言 monitor buffer { int no_of_data; condition empty, full; get() { if (no_of_data == 0) empty.wait; バッファからデータを取り出す ; full.signal; put() { if (no_of_data >= N) full.wait; バッファにデータを格納する ; empty.signal; } no_of_data = 0; } } 共有データ等を操作する関数の定義 同時に複数のプロセスが実行できないようになっている ( モニタに入るのは 1 プロセスのみ ) 初期化コード C++/Java 風に記述 2018/5/14 第 5 回オペレーティングシステム 14

15 Dining Philosophers 問題 monitor dp { enum {thinking, hungry, eating} state[5]; condition self[5]; void pickup(int i) // following slides void putdown(int i) // following slides void test(int i) // following slides void init() { for (int i = 0; i < 5; i++) state[i] = thinking; } } 2018/5/14 第 5 回オペレーティングシステム 15

16 Dining Philosophers 問題 void pickup(int i) { state[i] = hungry; test(i); if (state[i]!= eating) self[i].wait(); } void putdown(int i) { state[i] = thinking; // test left and right neighbors test((i+4) % 5); test((i+1) % 5); } void test(int i) { if ( (state[(i + 4) % 5]!= eating) && (state[i] == hungry) && (state[(i + 1) % 5]!= eating)) { } state[i] = eating; self[i].signal(); 2018/5/14 第 5 回オペレーティングシステム 16 } dp.pickup(0);. eat dp.putdown(0); このプログラムでは ある哲学者は飢餓状態になりうる どういう場合か考えてみよう dp.pickup(1);. eat dp.putdown(1);

17 デッドロック問題 資源を排他的利用しているプロセス集合において あるプロセスが 他のプロセスが排他的利用している資源を確保しようとして待ち状態になること 例セマフォアA,Bは1で初期化している P 0 P 1 wait (A); wait(b) wait (B); wait(a) System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock Handling 2018/5/14 第 5 回オペレーティングシステム 17

18 補足 複数の資源 R1, R2 を同時に要求するプロセス P1 と P2 R1 と R2 を同時に使用できない場合は待ち状態に P1 が R2 を P2 が R1 を使用する時, 両者とも永久に待ち状態 P1: P(r2); P(r1); R1 と R2 の使用 ; V(r1); V(r2) P2: P(r1); P(r2); R1 と R2 の使用 ; V(r2); V(r1) void thead1() { P(r1); P(r2); /* R1とR2を使用 */ V(r2); V(r1); } thead2 { P(r2); P(r1); /* R1とR2を使用 */ V(r1); V(r2); } 2018/5/14 第 5 回オペレーティングシステム 18

19 補足 複数の資源 R1, R2 を同時に要求するプロセス P1 と P2 R1 と R2 を同時に使用できない場合は待ち状態 P1 が R2 を P2 が R1 を使用する時, 両者とも永久に待ち状態 P1: P(r2); P(r1); R1 と R2 の使用 ; V(r1); V(r2) P2: P(r1); P(r2); R1 と R2 の使用 ; V(r2); V(r1) 資源 R1 プロセス P1 循環待機 資源 R2 資源 プロセス資源がプロセスに割付けられている状態 プロセス P2 プロセス 資源プロセスが資源を要求しているが, まだ未割当て 2018/5/14 第 5 回オペレーティングシステム 19

20 システムモデル リソース型 : R 1, R 2,..., R m CPU cycles, memory space, I/O devices リソース型 R i に対して W i がインスタンス 各プロセスは以下のプリミティブでリソースを使用 request use release 2018/5/14 第 5 回オペレーティングシステム 20

21 デッドロックの性質 以下の 4 つの状態が同時に満たされているときデッドロックが生じる Mutual exclusion: 一つのプロセスのみがリソースを使用できること状態 Hold and wait: 一つのプロセスが一つ以上のリソースを保持したうえで 他のプロセスが保持するリソースを獲得するために wait している状態 No preemption: あるリソースは それを保持するプロセスがタスクを完了したのちに自発的に行うことでのみ開放できるという状態 Circular wait: 次の条件をみたすプロセスの集合 {P 0, P 1,, P n } が存在する状態 P 0 が P 1 の保持するリソースを wait しており P 1 は P 2,, P n 1 が保持するリソースを wait し P 2 は P n は P 0 のもつリソースを wait 2018/5/14 第 5 回オペレーティングシステム 21

22 リソース割り当てグラフ 頂点の集合 V と辺の集合 E V は二種類に分かれる P = {P 1, P 2,, P n }: システム内すべてのプロセスからなる集合 R = {R 1, R 2,, R m }: システム内すべてのリソースからなる集合 P i による R j の要求を表す辺 :P i R j R j の P i への割り当てを表す辺 : R j P i 2018/5/14 第 5 回オペレーティングシステム 22

23 プロセス リソース割り当てグラフ 4 つのインスタンスをもつリソース P i が R j を要求 P i P i は R j を保持している R j P i Rj 2018/5/14 第 5 回オペレーティングシステム 23

24 リソース割り当てグラフの例 2018/5/14 第 5 回オペレーティングシステム 24

25 デッドロック状態 2018/5/14 第 5 回オペレーティングシステム 25

26 循環グラフになっているがデッドロック状態ではない場合 2018/5/14 第 5 回オペレーティングシステム 26

27 基本性質 グラフに閉路あり デッドロックなし グラフに閉路あり リソースの種類一つにつき それらのインスタンスはただ一つの場合 デッドロック リソースの種類一つにつき それらのインスタンスは複数ある場合 デッドロックの可能性あり. 2018/5/14 第 5 回オペレーティングシステム 27

28 デッドロック問題に対する手法 デッドロック予防 (Deadlock Prevention) デッドロック状態にならないように共有資源の使い方を決定 デッドロック回避 (Deadlock Avoidance) デッドロック状態になると検知したらそれを回避 多くのシステムではデッドロック回避手法は実装されていない OS 自身はデッドロックが生じないように注意深く設計 プログラムがデッドロックするかどうかをソースプログラム ( あるいは仕様 ) からあらかじめ検査する研究 モデル検査 2018/5/14 第 5 回オペレーティングシステム 28

29 Deadlock Prevention 4 つの状態が同時に生じないようにプログラミング Mutual Exclusion 資源によっては Mutual Exclusion を回避することは不可能 Hold and Wait この状態を作らないようにするには プロセスが資源を要求する時は そのプロセスは他の資源を占有しない 方法 1 実行前に使用する資源全てを占有 方法 2 プロセスが資源を要求する時は そのプロセスは何も資源を占有していないときに限定 問題点 リソースが利用性が低下 飢餓状態になる可能性 2018/5/14 第 5 回オペレーティングシステム 29

30 Deadlock Prevention (Cont.) No Preemption いくつかの資源を占有しているプロセスが ある資源を占有しようとして失敗したら 占有していた資源を解放 開放された資源は このプロセスの資源リストに追加 このプロセスは必要とする資源が開放されたら 再度資源の占有を実行 Circular Wait 全ての資源の total ordering を決め その順番に資源を占有 2018/5/14 第 5 回オペレーティングシステム 30

31 Circular Wait!= 十分条件 循環待ち デッドロック発生 R1 が 2 個の資源を持つ場合 プロセス P1 プロセス P3 資源 R1 資源 R2 P3 が終われば P1 が動作... P1 が R2 を解放する可能性 プロセス P2 2018/5/14 第 5 回オペレーティングシステム 31

32 デッドロックの回避 システムは いくつかのアプリオリな情報を利用可能であることが必要 それぞれのプロセスが必要なリソースの最大値をあらかじめ宣言 ( 単純かつ最も有用 ) Circular-wait 状態をさけるため リソースの確保状況を動的に検査 リソースの確保状況とは 利用可能な数とすでに確保されている数 プロセスからの要求の最大値によって定義 ここでは 詳細な話はしない 2018/5/14 第 5 回オペレーティングシステム 32

33 デッドロックの回避 スケジューリングによってデッドロックを回避 銀行家のアルゴリズム デッドロックを起こさない資源のプロセスへの割付け順を決定 ( 銀行家が資源の貸し出しを制御 ) 例 : 資源 A は 5 個, 資源 B は 2 個存在現在の空き資源数 F=(2 0) 残りの必要な資源数 R=((1 2) (2 0) (1 1)) 必要な資源の最大数 - 保持している資源数 = 残りの必要な資源数 R Ri F な Pi があれば安全 プロセス ある時点の実行状態 保持している資源数 U 必要な資源の最大数 N A B A B P P P /5/14 第 5 回オペレーティングシステム 33

34 デッドロックの回避 例 : 資源 A は 5 個, 資源 B は 2 個存在 現在の空き資源数 F=(2 0) 残りの必要な資源数 R=((1 2) (2 0) (1 1)) F= 初期値 :W=(2 0), S=( 偽偽偽 ) 1. WとRから要求を満足できるプロセスを探索 P2のみ 2. WとSを更新しP2 実行後の状態を計算 W=W+(0 1)=(2 0)+(0 1)=(2 1) S=( 偽真偽 ) 3. 1へ. ただし,P2を除く プロセス 保持している資源数 U 必要な資源の最大数 N A B A B P P P /5/14 第 5 回オペレーティングシステム 34

35 デッドロックの回避 例 : 資源 A は 5 個, 資源 B は 2 個存在 現在の空き資源数 F=(2 0) 残りの必要な資源数 R=((1 2) (2 0) (1 1)) W=(2 1), S=( 偽真偽 ) 1. WとRから要求を満足できるプロセスを探索 P3のみ 2. WとSを更新 プロセス 保持している資源数 U 必要な資源の最大数 N A B A B W=W+(1 1)=(2 1)+(1 1)=(3 2) S=( 偽真真 ) 3. 1 へ. ただし,P2,P3 を除く P P P1 にも割付可能 P S の要素全てが真になればシステムは安全 (P2, P3, P1 の順に実行すればよい ) 割付できないときは, 前の状態に戻して別の候補について調べる 2018/5/14 第 5 回オペレーティングシステム 35

36 デッドロックを回避する割り当て 通常はプロセスが実行に合わせて資源要求を出してくる それを受け入れて良いかどうかの判断が必要 資源を与えてなお デッドロック回避が可能 (= 安全 ) な実行順があるか? 手順 要求が残り必要な資源数 R を超えていないことを確認 要求が利用可能な資源数 F を超えていたら そのプロセスは待ち そうでなければ次ステップの確認 要求を割り当てた後の残り必要資源 R を計算 利用可能資源 F から 要求の分を引いて W を初期化 デッドロック回避が可能な実行順があるか調査 なければ そのプロセスは待ちにして残り必要資源 R の状態を元に戻す 2018/5/14 第 5 回オペレーティングシステム 36

37 デッドロックを回避する割り当て 総資源数 :A 5 個 B 2 個 プロセス 保持している資源数 U 必要な最大資源数 N 残り必要資源数 R A B A B A B P 資源要求列 P3: A 1 個 P2: A 1 個 待 1 P2 終了 3 P3 終了 P P1: A 1 個 待 4 P 残り資源 :A 個 B 個 P1: B 1 個 P3: B 1 個 P2: A 1 個 待待 2 待 5 6 ここでは 必要最大資源数が割り当てられたらすぐにプロセスが終了 P1: B 1 個 /5/14 第 5 回オペレーティングシステム 37

38 デッドロック検出と回復 P5 P1 R1 R2 P2 P3 R3 P4 R4 P6 検出 システムがデッドロック状態か? 資源割付グラフ 要求 (P R) 割付 (R P) 左図の一番下はデッドロック R5 2018/5/14 第 5 回オペレーティングシステム 38

39 デッドロックの検出 P1 R1 P2 グラフの簡約 あるプロセスの資源要求が満足されるとき, グラフは当該プロセスにより簡約可能という P4 R2 P3 矢印を削除可能 それでも循環待ちが残ればデッドロック状態 2018/5/14 第 5 回オペレーティングシステム 39

40 デッドロックからの回復 デッドロックを検出 循環待ちを解除しデッドロックから回復 具体的手法は以下のどちらか 1. デッドロック状態のプロセスを 1 つ異常終了 リスクはあるが最悪の事態は回避 2. デッドロック状態のプロセスを 1 つ前の状態に戻し (rollback), やり直し プログラムの実行状態を時々保存 ( チェックポインティング ) 2018/5/14 第 5 回オペレーティングシステム 40

41 演習問題銀行家のアルゴリズム 資源 A:10 個,B:5 個,C:7 個 ある実行時点の状態 プロセス 保持している資源数 必要な資源の最大数 A B C A B C P P P P P 途中の計算過程を必ず示すこと 2018/5/14 第 5 回オペレーティングシステム 41

42 ライブロック デッドロック状態になっていないが どのプロセスも資源を獲得できない状態 プロセス P0 が R0 をロック プロセス P1 が R1 をロック プロセス P0 が R1 をロックできないから R0 をリリースして R1 をロックしようとする プロセス P1 が R0 をロックできないから R1 をリリースして R0 をロックしようとする 2018/5/14 第 5 回オペレーティングシステム 42

オペレーティングシステム

オペレーティングシステム PFLab( 加藤研 ) のウェブサイトからダウンロードできます http://www.pf.is.s.u-tokyo.ac.jp/ja/classes/ オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 2019/5/13 第 4 回オペレーティングシステム 1 講義概要 受講生に求める基礎知識 C 言語の理解 コンピュータアーキテクチャの基礎の理解

More information

Microsoft PowerPoint - OS06.pptx

Microsoft PowerPoint - OS06.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 並行プロセス モニタ パワーポイント 2007 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 排他制御の枠組み

More information

POSIXスレッド

POSIXスレッド POSIX スレッド (3) システムプログラミング 2011 年 11 月 7 日 建部修見 同期の戦略 単一大域ロック スレッドセーフ関数 構造的コードロッキング 構造的データロッキング ロックとモジュラリティ デッドロック 単一大域ロック (single global lock) 単一のアプリケーションワイドの mutex スレッドが実行するときに獲得, ブロックする前にリリース どのタイミングでも一つのスレッドが共有データをアクセスする

More information

オペレーティングシステム

オペレーティングシステム 1.PFLab( 加藤研 ) のウェブサイトからダウンロードできます http://www.pf.is.s.u-tokyo.ac.jp/ja/classes/ 2. 紙資料も配布します オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 2018/5/14 第 5 回オペレーティングシステム 1 講義概要 受講生に求める基礎知識

More information

Microsoft PowerPoint - OS04.pptx

Microsoft PowerPoint - OS04.pptx この資料は 情報工学レクチャーシリーズオペレーティングシステム松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました オペレーティングシステム #4 並行プロセス : 排他制御基礎 パワーポイント 2007 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ

More information

05-scheduling.ppt

05-scheduling.ppt オペレーティングシステム ~ スケジューリング ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2014/06/01 復習 : プロセス 実行状態にあるプログラムのこと プログラムの実行に必要なものをひっくるめて指す テキスト領域 データ領域 スタック領域 CPU のレジスタ値 プログラムカウンタ など OS はプロセス単位で管理する メモリ Hard Disk CPU プロセス execute

More information

01-introduction.ppt

01-introduction.ppt オペレーティングシステム ~ イントロダクション ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/04/10 オペレーティングシステム 担当 : 山田浩史 ( やまだひろし ) mail: hiroshiy @ cc.tuat.ac.jp 質問等ありましたら気軽にメールをしてください 専門分野 オペレーティングシステムや仮想マシンモニタといった システムソフトウェア と呼ばれる分野

More information

CPUスケジューリング

CPUスケジューリング 10-12 並行プロセス 1 順序グラフ 今まで, プログラムの逐次的実行 これから, プログラム内の並行実行 1 2 3 4 a:=x+y; b:=z+1; c:=a-b; w:=c+1; 上記の文を平行に実行したい! 1 と 2 は, 並列に実行できる. 3 は,1 の後 4 は,3 の後 2 順序グラフの定義 S1 循環のあるグラフは考えない. S2 S3 S1 S4 S2 S5 S6 S3

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 前回の出席確認演習 #include int main() { FILE *fp; int c, linecount, length, maxlength; fp=fopen("/usr/share/dict/words","r"); if (fp == NULL) return 1; linecount=0; length=0;

More information

Microsoft PowerPoint - C4(反復for).ppt

Microsoft PowerPoint - C4(反復for).ppt C 言語プログラミング 繰返し ( for 文と while 文 ) 例題 (10 個のデータの平均を求める ) 手順 入力データをx1,x2,,x10 として, (x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)/10 を計算する データ数が,1000 個,10000 個, となったらどうする? データ数個分の 変数の宣言, scanf 関数の呼出し, 加算式の記述 が必要 1 総和を求めること

More information

スレッド

スレッド POSIX スレッド システムプログラミング 2007 年 10 月 22 日 建部修見 スレッドとは? プロセス内の独立したプログラム実行 メモリは共有 ファイルディスクリプタなどプロセス資源は共有 一般にスレッド生成はプロセス生成より軽い プロセス vs スレッド 生成 実行オーバヘッド スレッド小 プロセス大 メモリ 共有 別々 プロセス資源 共有 別々 データ共有 メモリのポインタ渡し (

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体

More information

オペレーティングシステム 2014

オペレーティングシステム 2014 オペレーティングシステム 2019/6/13 海谷治彦 1 目次 安全性 生存性 干渉 デッドロック 2 互いに邪魔しない点からの性質 安全性 (safety): 好ましくない状態にならない 干渉 (interfere) がおきない. デッドロック (dead lock) が無い. 生存性 (liveness): やろうとしたことは, いつかは処理される. 永遠に待たされることは無い 例えば高層ビルに多数のエレベータがあるが,

More information

Program Design (プログラム設計)

Program Design  (プログラム設計) 7. モジュール化設計 内容 : モジュールの定義モジュールの強度又は結合力モジュール連結モジュールの間の交信 7.1 モジュールの定義 プログラムモジュールとは 次の特徴を持つプログラムの単位である モジュールは 一定の機能を提供する 例えば 入力によって ある出力を出す モジュールは 同じ機能仕様を実装しているほかのモジュールに置き換えられる この変化によって プログラム全体に影響をあまり与えない

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy オブジェクト指向プログラミング演習 2010/10/27 演習課題 スレッド ( その 2) 同期処理 結果不正 デッドロック 前回のスレッドの演習では 複数のスレッドを実行し 一つのプログラムの中の違う処理を同時に実行し た ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする )

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 5 回 繰り返し (while ループ ) 授業開始前に ログオン後 不要なファイルを削除し て待機してください Java 1 第 5 回 2 参考書について 参考書は自分にあったものをぜひ手元において自習してください 授業の WEB 教材は勉強の入り口へみなさんを案内するのが目的でつくられている これで十分という訳ではない 第 1 回に紹介した本以外にも良書がたくさんある

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード] 第 3 回 Java 基本技術講義 クラス構造と生成 33 クラスの概念 前回の基本文法でも少し出てきたが, オブジェクト指向プログラミングは という概念をうまく活用した手法である. C 言語で言う関数に似ている オブジェクト指向プログラミングはこれら状態と振る舞いを持つオブジェクトの概念をソフトウェア開発の中に適用し 様々な機能を実現する クラス= = いろんなプログラムで使いまわせる 34 クラスの概念

More information

PowerPoint Presentation

PowerPoint Presentation コンピュータ科学 II 担当 : 武田敦志 http://takeda.cs.tohoku gakuin.ac.jp/ 今日の話 オペレーティングシステム コンピュータを利用するための基本ソフト オペレーティングシステムの役割 プロセスの管理主記憶の管理出入力の管理ファイルの管理 タイムシェアリングシステム仮想記憶排他制御ディレクトリ構造

More information

10-vm1.ppt

10-vm1.ppt オペレーティングシステム ~ 仮想記憶 (1) ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/06/19 OS の目的 裸のコンピュータを抽象化 (abstraction) し より使いやすく安全なコンピュータとして見せること OS はハードウェアを制御し アプリケーションの効率的な動作や容易な開発を支援する OS がないと メモリをアプリケーション自身が管理しなければならない

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 高性能計算基盤 第 7 回 CA1003: 主記憶共有型システム http://arch.naist.jp/htdocs-arch3/ppt/ca1003/ca1003j.pdf Copyright 2019 奈良先端大中島康彦 1 2 3 4 マルチスレッディングとマルチコア 5 6 7 主記憶空間の数が 複数 か 1 つ か 8 ただしプログラムは容易 9 1 つの主記憶空間を共有する場合 10

More information

データ構造

データ構造 アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド

More information

21 章のお話

21 章のお話 21 章のお話 オブジェクトヘッダ 型オブジェクトポインター (4byte, 8byte) 型の構造体へのポンタ 同期ブロックインデックス (4byte, 8byte) ロックとか COM で利用する フィールド マネージヒープ NextObjPtr マネージヒープ NextObjPtr オブジェクト A を割り当てたい! 同期ブロック 同期ブロックインデックス ~ フィールドまでが入るようにする

More information

プレポスト【問題】

プレポスト【問題】 コース名 : サーブレット /JSP/JDBC プログラミング ~Eclipse による開発 ~ 受講日 氏名 1 JDBC の説明として 間違っているものを 1 つ選びなさい 1. JDBC を使用してデータベースへアクセスするときには JDBC API が必要である 2. JDBC API は java.lang パッケージとして提供されている 3. JDBC には JDBC API JDBC

More information

プログラミングI第10回

プログラミングI第10回 プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 CMT コンペアマッチタイマ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ CMT の概要 プログラムサンプル プログラムサンプルのカスタマイズ 2 CMT の概要 3 CMT の仕様 CMT ユニット 0 チャネル 16ビットタイマ CMT0 CMT1 ユニット 1 CMT2 CMT3

More information

スレッド

スレッド POSIX スレッド (1) システムプログラミング 2009 年 10 月 19 日 建部修見 組込機器における並行処理 GUI における反応性向上 ダイナミックな Wait カーソル 各イベントを別制御で実行 Auto save 機能 サーバの反応性向上 各リクエストを別制御で実行 マルチコア マルチプロセッサでの並列実行 スレッドとは? プロセス内の * 独立した * プログラム実行 同一プロセス

More information

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - kougi9.ppt C プログラミング演習 第 9 回ポインタとリンクドリストデータ構造 1 今まで説明してきた変数 #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE*

More information

PowerPoint Template

PowerPoint Template プログラミング演習 Ⅲ Linked List P. Ravindra S. De Silva e-mail: ravi@cs.tut.ac.jp, Room F-413 URL: www.icd.cs.tut.ac.jp/~ravi/prog3/index_j.html 連結リストとは? 一つひとつの要素がその前後の要素との参照関係をもつデータ構造 A B C D 連結リストを使用する利点 - 通常の配列はサイズが固定されている

More information

スライド 1

スライド 1 Keal H. Sahn A R. Crc: A dual teperature sulated annealng approach for solvng blevel prograng probles Coputers and Checal Engneerng Vol. 23 pp. 11-251998. 第 12 回論文ゼミ 2013/07/12( 金 ) #4 M1 今泉孝章 2 段階計画問題とは

More information

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1 4. ソート ( 教科書 p.205-p.273) 整列すなわちソートは アプリケーションを作成する際には良く使われる基本的な操作であり 今までに数多くのソートのアルゴリズムが考えられてきた 今回はこれらソートのアルゴリズムについて学習していく ソートとはソートとは与えられたデータの集合をキーとなる項目の値の大小関係に基づき 一定の順序で並べ替える操作である ソートには図 1 に示すように キーの値の小さいデータを先頭に並べる

More information

S-maqs利用の手引きver1.0

S-maqs利用の手引きver1.0 関西大学 1 S-maqs [ Smart mobile attendance- and quiz-taking system (= スマートケータイ出席確認 小テスト実 施システム )] は 学生が所持する携帯電話を利用し 従来の IC カード型端末 ( クリッカ ) と同じ操作を 可能にするシステムです 特徴 CEAS/Sakai システムで教材を作成 管理 S-maqs で実施する小テスト

More information

人工知能入門

人工知能入門 藤田悟 黄潤和 探索とは 探索問題 探索解の性質 探索空間の構造 探索木 探索グラフ 探索順序 深さ優先探索 幅優先探索 探索プログラムの作成 バックトラック 深さ優先探索 幅優先探索 n 個の ueen を n n のマスの中に 縦横斜めに重ならないように配置する 簡単化のために 4-ueen を考える 正解 全状態の探索プログラム 全ての最終状態を生成した後に 最終状態が解であるかどうかを判定する

More information

memo

memo 計数工学プログラミング演習 ( 第 4 回 ) 2016/05/10 DEPARTMENT OF MATHEMATICA INFORMATICS 1 内容 リスト 疎行列 2 連結リスト (inked ists) オブジェクトをある線形順序に並べて格納するデータ構造 単方向連結リスト (signly linked list) の要素 x キーフィールド key ポインタフィールド next x->next:

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション ネットワークプログラミング 演習 第 12 回 Web サーバ上で動作するプログラム 2 今日のお題 PHPのプログラム例 おみくじ アクセスカウンタ ファイルの扱い lock ファイルの所有者 許可と権限 PHP の文法 ( の一部 ) if, for, while の制御の構文は C 言語と似ている 型はあるが 明示的な宣言はしなくてよい 変数には型がない 変数の宣言はしなくてよい 変数名には

More information

SoftBank 403ZT ユーザーガイド

SoftBank 403ZT ユーザーガイド SoftBank 403ZT Utility で各種設定をする 自動接続 ( 日本のみ ) / 自動接続 ( 日本 / 海外 ) 自動接続を設定する SoftBank 403ZT Utility の起動と同時に 設定していたアクセスポ イントでインターネット接続されます 接続モードが自動接続になります 自動接続( 日本のみ ) を選択した場合 海外では自動接続されません 海外で設定しているアクセスポイントにインターネット接続する場合は手動で接続してください

More information

Microsoft PowerPoint - algo ppt [互換モード]

Microsoft PowerPoint - algo ppt [互換モード] ( 復習 ) アルゴリズムとは アルゴリズム概論 - 探索 () - アルゴリズム 問題を解くための曖昧さのない手順 与えられた問題を解くための機械的操作からなる有限の手続き 機械的操作 : 単純な演算, 代入, 比較など 安本慶一 yasumoto[at]is.naist.jp プログラムとの違い プログラムはアルゴリズムをプログラミング言語で表現したもの アルゴリズムは自然言語でも, プログラミング言語でも表現できる

More information

2006年10月5日(木)実施

2006年10月5日(木)実施 2010 年 7 月 2 日 ( 金 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

Insert your Title here

Insert your Title here マルチコア マルチスレッド環境での静的解析ツールの応用 米 GrammaTech 社 CodeSonar によるスレッド間のデータ競合の検出 2013 GrammaTech, Inc. All rights reserved Agenda 並列実行に起因する不具合の摘出 なぜ 並列実行されるプログラミングは難しいのか データの競合 デッドロック どのようにして静的解析ツールで並列実行の問題を見つけるのか?

More information

Microsoft PowerPoint - 06.pptx

Microsoft PowerPoint - 06.pptx アルゴリズムとデータ構造第 6 回 : 探索問題に対応するデータ構造 (2) 担当 : 上原隆平 (uehara) 2015/04/22 内容 スタック (stack): 最後に追加されたデータが最初に取り出される 待ち行列 / キュー (queue): 最初に追加されたデータが最初に取り出される ヒープ (heap): 蓄えられたデータのうち小さいものから順に取り出される 配列による実装 連結リストによる実装

More information

Microsoft PowerPoint - 5_2-3IPC.pptx

Microsoft PowerPoint - 5_2-3IPC.pptx 2.3.1 競合状態 (race condition) オペレーティングシステム 5 2.3 プロセス間通信 Example Process A Process B i=0 i=0 while(i-10){ i++ i-- print A finished print B finished プロセス A スプーラディレクトリ ( ファイル印刷の待ち配列 ) ここまで印刷した

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 6 回 Switch 文 プロジェクトの持ち運び 授業開始前に ログオン後 不要なファイルを削除し て待機してください Java 1 第 6 回 2 前回のテーマ while 文を用いた繰り返し実行 for 文との使い分け 複雑な条件判定 && かつ または を使って Java 1 第 6 回 3 復習 : while 文はfor 文から 初期化式 を外に出し ステップを進める式

More information

NUMAの構成

NUMAの構成 メッセージパッシング プログラミング 天野 共有メモリ対メッセージパッシング 共有メモリモデル 共有変数を用いた単純な記述自動並列化コンパイラ簡単なディレクティブによる並列化 :OpenMP メッセージパッシング 形式検証が可能 ( ブロッキング ) 副作用がない ( 共有変数は副作用そのもの ) コストが小さい メッセージパッシングモデル 共有変数は使わない 共有メモリがないマシンでも実装可能 クラスタ

More information

Microsoft PowerPoint - kougi11.ppt

Microsoft PowerPoint - kougi11.ppt C プログラミング演習 中間まとめ 2 1 ソフトウエア開発の流れ 機能設計 外部仕様 ( プログラムの入力と出力の取り決め ) 構成設計 詳細設計 論理試験 内部データ構造や関数呼び出し方法などに関する取り決めソースプログラムの記述正しい入力データから正しい結果が得られるかテスト関数単位からテストをおこなう 耐性試験 異常な入力データに対して, 異常を検出できるかテスト異常終了することはないかテスト

More information

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1 7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 10001 番地とすると, そこから int 型のサイズ, つまり 4 バイト分の領域が確保される.1

More information

C#の基本2 ~プログラムの制御構造~

C#の基本2 ~プログラムの制御構造~ C# の基本 2 ~ プログラムの制御構造 ~ 今回学ぶ事 プログラムの制御構造としての単岐選択処理 (If 文 ) 前判定繰り返し処理(for 文 ) について説明を行う また 整数型 (int 型 ) 等の組み込み型や配列型についても解説を行う 今回作るプログラム 入れた文字の平均 分散 標準偏差を表示するプログラム このプログラムでは calc ボタンを押すと計算を行う (value は整数に限る

More information

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが

More information

Microsoft PowerPoint - OpenMP入門.pptx

Microsoft PowerPoint - OpenMP入門.pptx OpenMP 入門 須田礼仁 2009/10/30 初版 OpenMP 共有メモリ並列処理の標準化 API http://openmp.org/ 最新版は 30 3.0 バージョンによる違いはあまり大きくない サポートしているバージョンはともかく csp で動きます gcc も対応しています やっぱり SPMD Single Program Multiple Data プログラム #pragma omp

More information

スライド 1

スライド 1 Dispatch 0 年後学期 計算機アーキテクチャ第二 (O) アウトオブオーダ実行プロセッサとバックエンド フロントエンド 命令ウィンドウ : 命令を格納するバッファ ALU Dispatch 命令フェッチ, デコード, リネーミング バックエンド ディスパッチ (dispatch) : 命令ウィンドウに命令を格納する動作 発行 (issue, fire) : 命令ウィンドウから, データ依存が解消された命令を機能ユニットに送り出す動作

More information

Taro-ポインタ変数Ⅰ(公開版).j

Taro-ポインタ変数Ⅰ(公開版).j 0. 目次 1. ポインタ変数と変数 2. ポインタ変数と配列 3. ポインタ変数と構造体 4. ポインタ変数と線形リスト 5. 問題 問題 1 問題 2-1 - 1. ポインタ変数と変数 ポインタ変数には 記憶領域の番地が格納されている 通常の変数にはデータが格納されている 宣言 int *a; float *b; char *c; 意味ポインタ変数 aは 整数型データが保存されている番地を格納している

More information

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft PowerPoint - handout07.ppt [互換モード] Outline プログラミング演習第 7 回構造体 on 2012.12.06 電気通信大学情報理工学部知能機械工学科長井隆行 今日の主眼 構造体 構造体の配列 構造体とポインタ 演習課題 2 今日の主眼 配列を使うと 複数の ( 異なる型を含む ) データを扱いたい 例えば 成績データの管理 複数のデータを扱う 配列を使う! 名前学籍番号点数 ( 英語 ) 点数 ( 数学 ) Aomori 1 59.4

More information

CPUスケジューリング

CPUスケジューリング 5-6 プロセス管理と CPU スケジューリング 1 多重プログラミングの概念 CPU を無駄なく使いたい ジョブ A ジョブ B 開始遊休状態 : 入力 開始遊休状態 : 入力 遊休状態 : 入力 遊休状態 : 入力 停止 停止 図 4.1 二つの上部 A,B の実行 2 多重プログラミングの概念 ジョブ A 開始遊休状態 : 入力 遊休状態 : 入力 停止 ジョブ B 待ち 開始遊休状態 : 入力

More information

第2回

第2回 第 4 回基本データ構造 1 明星大学情報学科 2 3 年前期 アルゴリズムとデータ構造 Ⅰ 第 4 回 Page 1 配列 スタック キューとその操作 4-1. 配列とその操作 配列型 同じ型の変数を並べたもの 配列にする型は 基本型 配列型 構造体 ポインタいずれでもよい 要素の並べ方を 次元 という 1 次元配列 ( 直線状 ) 2 次元配列 ( 平面状 ) 3 次元配列 ( 立体状 ) a[5]

More information

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - os ppt [互換モード] 2. プロセス 概要 マルチプログラミング プロセスの管理 スケジューリング方式 2008/5/13 プロセス 1 複数の仕事を処理する つの 法 論 執筆メール処理データ整理会議 論 執筆論 執筆論 執筆論 執筆 時間 メール処理メール処理メール処理メール処理 仕事が捗るのはどちらの方法か 人を待たせないのはどちらか データ整理 データ整理 データ整理 データ整理 会議 会議 会議 2008/5/13

More information

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点について 理解したうえで使っているでしょうか? アプリケーション プログラムでファイナライザを使用する場合は

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 独習 Java ( 第 3 版 ) 6.7 変数の修飾子 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 Object クラスと Class クラス 6.7 変数の修飾子 (1/3) 変数宣言の直前に指定できる修飾子 全部で 7 種類ある キーワード final private protected public static transient volatile 意味定数として使える変数同じクラスのコードからしかアクセスできない変数サブクラスまたは同じパッケージ内のコードからしかアクセスできない変数他のクラスからアクセスできる変数インスタンス変数ではない変数クラスの永続的な状態の一部ではない変数不意に値が変更されることがある変数

More information

最近の CPU (ARM の一種 ) Nvidia 社製 Tegra 3 の省電力技術 4-PLUS-1 メインである 4 つのコアに加え 低性能 低消費電力のコンパニオンコアを状況に応じて活用する技術 端末のパフォーマンスが必要なときは 4 つのコアから必要な数のコアを使い 不要なときは低消費電力

最近の CPU (ARM の一種 ) Nvidia 社製 Tegra 3 の省電力技術 4-PLUS-1 メインである 4 つのコアに加え 低性能 低消費電力のコンパニオンコアを状況に応じて活用する技術 端末のパフォーマンスが必要なときは 4 つのコアから必要な数のコアを使い 不要なときは低消費電力 システムソフトウェア講義の概要 1. 計算機システムの復習 : 中央演算処理装置 (CPU), プログラムの実行, 主記憶装置, 補助記憶装置 2. 時分割処理 : プロセス, スレッド, スケジューリング 3. スレッド間の排他制御 : フラグ, セマフォ, モニタ, デッドロック 4. デバイス管理,HDD へのアクセス制御 5. 記憶管理 : メモリ割り当て, ページング, セグメンテーション

More information

program7app.ppt

program7app.ppt プログラム理論と言語第 7 回 ポインタと配列, 高階関数, まとめ 有村博紀 吉岡真治 公開スライド PDF( 情報知識ネットワーク研 HP/ 授業 ) http://www-ikn.ist.hokudai.ac.jp/~arim/pub/proriron/ 本スライドは,2015 北海道大学吉岡真治 プログラム理論と言語, に基づいて, 現著者の承諾のもとに, 改訂者 ( 有村 ) が加筆修正しています.

More information

PowePoint Free Design Template

PowePoint Free Design Template MADOCA II データ収集 フレームワークの開発 松本崇博 古川行人 濱田洋輔 ( 公財 ) 高輝度光科学研究センター 2016/08/09 第 13 回加速器学会年会幕張メッセ 国際会議場 Outline MADOCA とは? SPring-8データ収集 MADOCA II データ収集フレームワーク SPring-8 制御系への導入状況 まとめ 2 MADOCA とは? 制御フレームワーク (SPring-8/SACLA

More information

Prog1_12th

Prog1_12th 2013 年 7 月 4 日 ( 木 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

Prog1_10th

Prog1_10th 2012 年 6 月 20 日 ( 木 ) 実施ポインタ変数と文字列前回は, ポインタ演算が用いられる典型的な例として, ポインタ変数が 1 次元配列を指す場合を挙げたが, 特に,char 型の配列に格納された文字列に対し, ポインタ変数に配列の 0 番の要素の先頭アドレスを代入して文字列を指すことで, 配列そのものを操作するよりも便利な利用法が存在する なお, 文字列リテラルは, その文字列が格納されている領域の先頭アドレスを表すので,

More information

文法と言語

文法と言語 一昨年の CPU (ARM の一種 ) Nvidia 社製 Tegra 3 の省電力技術 4-PLUS-1 メインである 4 つのコアに加え 低性能 低消費電力のコンパニオンコアを状況に応じて活用する技術 端末のパフォーマンスが必要なときは 4 つのコアから必要な数のコアを使い 不要なときは低消費電力のコンパニオンコアだけで動作して全体の消費電力を削減する ビデオ再生時では最大 61% Web 閲覧では最大

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 9 回 メソッド (3) 授業の前に自己点検 以下の質問に答えられますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか 戻り値はどのように利用しますか 変数のスコープとは何ですか

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

メモリ管理

メモリ管理 並行プログラムと同期 スレッドとプロセス CPU の数だけ同時に実行 CPU 数を越えるスレッド プロセスは OS によって交互に実行 2CPU の場合の図 : t スレッド プロセスの利用目的 性能と記述性の向上 並列処理 : マルチプロセッサ ( 複数 CPU を持つ計算機 ), マルチコアプロセッサでの性能向上 I/O 遅延隠蔽 : I/O によってブロックするスレッドを複数実行して CPU

More information

Taro-2分探索木Ⅰ(公開版).jtd

Taro-2分探索木Ⅰ(公開版).jtd 2 分探索木 Ⅰ 0. 目次 1. 2 分探索木とは 2. 2 分探索木の作成 3. 2 分探索木の走査 3. 1 前走査 3. 2 中走査 3. 3 問題 問題 1 問題 2 後走査 4. 2 分探索木の表示 - 1 - 1. 2 分探索木とは 木はいくつかの節点と節点同士を結ぶ辺から構成される 2 つの節点 u,v が直接辺で結ばれているとき 一方を親節点 他方を子節点という ある節点の親節点は高々

More information

アルゴリズムとデータ構造

アルゴリズムとデータ構造 講義 アルゴリズムとデータ構造 第 3 回基本的なデータ構造 ( リスト スタック キュー ) 大学院情報科学研究科情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/5/23 今日の内容 基本的なデータ構造リスト : 最も基本的なデータ集合の表現 配列 / 連結リスト / 双連結リストによる実装 スタック : 積み上げ式のデータ格納方式キュー : 入れた順に取り出せるデータ格納方式

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - mp11-06.pptx 数理計画法第 6 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 第 5 章組合せ計画 5.2 分枝限定法 組合せ計画問題 組合せ計画問題とは : 有限個の もの の組合せの中から, 目的関数を最小または最大にする組合せを見つける問題 例 1: 整数計画問題全般

More information

POSIXプログラミング Pthreads編

POSIXプログラミング Pthreads編 POSIXプログラミング Pthreads 編 デジタルビジョンソリューション 中山一弘佐藤史明 参考図書 Pthreads プログラミング, Bradford Nichols, Dick Buttlar, Jacqeline Proulx Farrell, ISBN4-900900-66-4 Pthreads POSIX スレッド標準を実装したライブラリを Pthreads と呼ぶ C 言語のデータ型

More information

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n を入力してもらい その後 1 から n までの全ての整数の合計 sum を計算し 最後にその sum

More information

プレポスト【問題】

プレポスト【問題】 1/5 ページ プレポスト データベース基礎 受講日程受講番号氏名 1 データベースの特徴で間違っているものを選びなさい 1. データの一元管理が可能 2. データの重複が少ない 3. プログラムとの関係が1 対 1 4. データの整合性の確保 2 ANSI/SPARC による 3 層スキーマについて正しいものを選びなさい 1. 外部スキーマ : プログラムに必要な部分のデータ構造を定義概念スキーマ

More information

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do 8 構造体と供用体 ( 教科書 P.71) 構造体は様々なデータ型,int 型,float 型や char 型などが混在したデータを一つのまとまり, 単位として扱える.( 配列は一つのデータ型しか扱えない.) 構造体は柔軟なデータ構造を扱えるので, プログラムを効率よく開発できる. つまり構造体を使用すると, コード量を抑え, バグを少なくし, 開発時間を短くし, 簡潔なプログラムが作れる. 共用体は,

More information

WebCaster600MNファームウェアバージョンアップ手順 (Windows編)

WebCaster600MNファームウェアバージョンアップ手順 (Windows編) ADSL ファームウェアバージョンアップ手順書 (Windows 編 ) ファームウェアバージョンアップを行う前に 本書をよくお読みのうえ 内容を理解してからバージョンアップを行ってください はじめに 本書では Web Caster 600MN のファームウェアバージョンアップ手順について説明します ファームウェアバージョンアップ手順 WebCaster600MN ファームウェアのバージョンアップは次のような手順で行います

More information

memo

memo 計数工学プログラミング演習 ( 第 6 回 ) 2016/05/24 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : 再帰呼び出し 2 分探索木 深さ優先探索 課題 : 2 分探索木を用いたソート 2 再帰呼び出し 関数が, 自分自身を呼び出すこと (recursive call, recursion) 再帰を使ってアルゴリズムを設計すると, 簡単になることが多い

More information

データ構造

データ構造 アルゴリズム及び実習 3 馬青 1 バブルソート 考え方 : 隣接する二つのデータを比較し データの大小関係が逆のとき 二つのデータの入れ替えを行って整列を行う方法である 2 バブルソートの手順 配列 a[0],a[1],,a[n-1] をソートする場合 ステップ 1: 配列 a[0] と a[1],a[1] と a[2],,a[n-2] と a[n-1] と となり同士を比較 ( 大小が逆であれば

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 部内向けスキルアップ研修 組込み OS 自作入門 2014 年 2 月 10st ステップ担当 : 中村 目次 はじめに OSの役割 メモリ管理 メモリ管理実装 プログラムの実行 まとめ はじめに 前回やったこと OS の原型を作成 今回やること 9th ステップでは CPU 時間 という資源管理 本ステップでは メモリ という資源管理 10.1 OS の役割 10.1.1 コンピュータの 3 大要素

More information

概要 プログラミング論 変数のスコープ, 記憶クラス. メモリ動的確保. 変数のスコープ 重要. おそらく簡単. 記憶クラス 自動変数 (auto) と静的変数 (static). スコープほどではないが重要.

概要 プログラミング論 変数のスコープ, 記憶クラス. メモリ動的確保. 変数のスコープ 重要. おそらく簡単. 記憶クラス 自動変数 (auto) と静的変数 (static). スコープほどではないが重要. 概要 プログラミング論 変数のスコープ, 記憶クラス. メモリ動的確保. 変数のスコープ 重要. おそらく簡単. 記憶クラス 自動変数 (auto) と静的変数 (static). スコープほどではないが重要. http://www.ns.kogakuin.ac.jp/~ct13140/progc/ C-2 ブロック 変数のスコープ C 言語では, から をブロックという. for( ) if( )

More information

プログラミングA

プログラミングA プログラミング A 第 5 回 場合に応じた処理 繰り返し 2019 年 5 月 13 日 東邦大学金岡晃 場合に応じた処理 1 こういうプログラムを作りたい 5 教科のテスト 100 点以上各科目の点数の合計が 100 点未満 おめでとう! これで 100 点越えのプレゼントを獲得! というメッセージを出力 残念!100 点越えのプレゼントまであと ** 点! というメッセージを出力 5 教科の点数の合計が

More information

メモリ管理

メモリ管理 メモリ管理 (2) 思い出そ ~~ う 物理アドレスと論理アドレス 論理アドレス空間 アドレス変換 メモリ管理ユニット (MMU) ページ ページテーブル,TLB 保護違反, ページフォルト ページング APP CPU OS OS が提供するメモリ関連 API (1) 1. 論理アドレス空間生成 = プロセスの生成 プロセスの作成 ( プログラムの起動 ) 2. 論理的なメモリ ( 仮想メモリ )

More information

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS07.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS

More information

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先 第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先頭の要素要素から最後までが直線的に直結している構造 Set 同じものは含まないという構造. 要素間につながりはない

More information

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

Taro-スタック(公開版).jtd

Taro-スタック(公開版).jtd 0. 目次 1. 1. 1 配列によるの実現 1. 2 再帰的なデータ構造によるの実現 1. 3 地図情報処理 1. 4 問題 問題 1 グラフ探索問題 - 1 - 1. は データの出し入れが一カ所で行われ 操作は追加と削除ができるデータ構造をいう 出入口 追加 削除 操作 最初 111 追加 111 222 追加 111 222 333 追加 111 222 333 444 追加 111 222

More information

マルチコア時代の並列プログラミング

マルチコア時代の並列プログラミング マルチコア時代の 並列プログラミング ~ ロックとメモリオーダリング ~ 中村実 nminoru@nminoru.jp http://www.nminoru.jp/~nminoru/ まずは自己紹介を 電機メーカー勤務のエンジニア Java VM 特に並列 GC JIT コンパイラの研究 開発 Java 系雑誌にときどき寄稿 最近は IA-64 と戯れる日々 趣味で Web に細々とプログラミングのメモを綴る日々

More information

オペレーティングシステム

オペレーティングシステム PFLab( 加藤研 ) のウェブサイトからダウンロードできます http://www.pf.is.s.u-tokyo.ac.jp/ja/classes/ オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 2019/4/15 第 2 回オペレーティングシステム 1 講義概要 受講生に求める基礎知識 C 言語の理解 コンピュータアーキテクチャの基礎の理解

More information

C5

C5 システムソフトウェア講義の概要 1. 計算機システムの復習 : 中央演算処理装置 (CPU), プログラムの実行, 主記憶装置, 補助記憶装置 2. 時分割処理 : プロセス, スレッド, スケジューリング 3. スレッド間の排他制御 : フラグ, セマフォ, モニタ, デッドロック 4. デバイス管理,HDD へのアクセス制御 5. 記憶管理 : メモリ割り当て, ページング, セグメンテーション

More information

HotSpot のロック A Peek Under the Hood

HotSpot のロック A Peek Under the Hood HotSpot のロック A Peek Under the Hood David Buck 日本オラクル JJUG ナイトセミナ JVM 特集 自己紹介 バックデイビッド Java SE サステイニングエンジニアリング JVM のバグを直す人 趣味 : プログラミング 予定 はじめに Java ロックの復習 HotSpot のロックの実装 プロファイリング & チューニング その他 はじめに カバーする内容

More information

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

コンピュータ中級B ~Javaプログラミング~  第3回 コンピュータと情報をやりとりするには? Copyright (C) Junko Shirogane, Waseda University 2016, All rights reserved. 1 プログラミング初級 (Java) 第 10 回オブジェクト指向って? 白銀純子 Copyright (C) Junko Shirogane, Waseda University 2016, All rights reserved. 2 第 10

More information

NUMAの構成

NUMAの構成 共有メモリを使ったデータ交換と同期 慶應義塾大学理工学部 天野英晴 hunga@am.ics.keio.ac.jp 同期の必要性 あるプロセッサが共有メモリに書いても 別のプロセッサにはそのことが分からない 同時に同じ共有変数に書き込みすると 結果がどうなるか分からない そもそも共有メモリって結構危険な代物 多くのプロセッサが並列に動くには何かの制御機構が要る 不可分命令 同期用メモリ バリア同期機構

More information

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

kiso2-03.key

kiso2-03.key 座席指定はありません Linux を起動して下さい 第3回 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第2回の復習課題(rev02) 第3回の基本課題(base03) 第2回課題の回答例 ex02-2.c include int main { int l int v, s; /* 一辺の長さ */ /* 体積 v

More information

Microsoft PowerPoint - C_Programming(3).pptx

Microsoft PowerPoint - C_Programming(3).pptx H23 年度秋学期情報スキル活用 入門 担当 : 田中基彦 ( 工学部共通教育科 ) Email: ak_tanaka@isc.chubu.ac.jp 授業のホームページ学術情報センター > 教育支援 > 情報リテラシー 授業の日程 講義内容提出課題 連絡事項を掲載 > 定期的にアクセスして確認する C 言語によるプログラミング (3) 制御文 繰り返し文 if, while, switch, for,

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ 8 タイマ割り込みを使ってみよう割り込み (Interrupt) とは, 言葉の意味の通り, ある作業中に割り込むことである. マイコンにおいてはとても重要な機能の一つである. 例えば, インスタントカップ麺にお湯を入れて 3 分間待ってから食べることを想像してみよう. お湯を入れてカップ麺ができるまでの 3 分間, 時計の針だけを見つめ続けて, 他には何にもせずに待ち続ける人はほとんどいないだろう.

More information