1K Views
December 17, 21
スライド概要
トピックス:オペレーティングシステム, プロセッサ, メモリ, 2進数, アドレス, 文字コード, 論理演算, 2の補数
コンピューターサイエンス
URL: https://www.kkaneko.jp/cc/cs/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
cs-13. プロセッサ,メモリ,文 字コード,論理演算と足し算 (コンピューターサイエンス) URL: https://www.kkaneko.jp/cc/cs/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1
アウトライン • OS • プロセッサ • コンピュータの構成 • メモリとアドレス • メモリの仕組み • 文字コード • 論理積と論理和 • 論理演算と足し算 • 2の補数 2
コンピュータ 操作,活用 プログラミング 基礎の理解,仕組みの理解 3
• OS: 「基本ソフトウェア」などともいう.基本的な機能を 提供(プロセス管理,メモリ管理,タイマー,デバイスド ライバなど) • プロセッサ: コンピュータの頭脳にあたる部分 • メモリ: コンピュータの中で記憶を行う • 文字コード: 「A」や「0」や「!」や「あ」などの文字を, 数字に置き換えるルール • 論理演算:「ビット」に関する演算.AND, OR, NOT など. 足し算や掛け算の基礎. 4
13-1 OS 5
OS の特徴 • コンピュータを起動したときに,最初に実行 されるソフトウェア • Windows, Linux などさまざまな種類がある 6
OS の機能 • コンピュータの操作のときに使うもの ソフトの起動や終了.ファイルの操作. ソフトのインストール • OS に他のソフトが付属していることも (Web ブラウザなど) 7
OS の機能 • コンピュータでは,複数のソフトウエアが同時 に動くのは当たり前 • すべてのソフトウエアは,OSの配下にある 他のソフト 他のソフト 他のソフト OS 基本的な機能を提供 プロセス管理,メモリ管理, タイマー,デバイスドライバなど 8
13-2 プロセッサ 9
13-2 プロセッサ プロセッサは,コンピュータの中で, 計算,制御を担う コンピュータの頭脳とも呼ばれること も 10
プロセッサ(CPU)は,精密なデジタル 電子回路である インテル Core i7 プロセッサ 精密なデジタル電子回路 11
13-3 コンピュータの構成 12
コンピュータの入力と出力 人間や 他のコンピュータ 入力 出力 コンピュータ 13
ハードウエアとソフトウエア ソフトウエア アプリケーション オペレーティングシステム ハードウエア プロセッサ,メモリ その他,入力装置,出力装置など 14
コンピュータのハードウエア構成 プロセッサ 入 力 装 置 メモリ 出 力 装 置 補助記憶装置 15
プロセッサ 出 入 力 力 装 装 コンピュータの中で,計 置 置 算,制御を担う メモリ 補助記憶装置 16
データの記憶を行うチップ CPU データの書き込み,データの読 (プロセッサ) み出し機能がある 入 力 装 置 メモリ 出 力 装 置 補助記憶装置 17
13-4 メモリとアドレス 18
プロセッサ 入 力 装 置 プロセッサ,メモリ 出 間でデータが 力 装 やり取りされる メモリ 置 補助記憶装置 19
プロセッサ 入 アドレス 力 装 置 メモリ 出 データ 力 装 置 メモリからプロセッサへの読み出し 補助記憶装置 20
プロセッサ 入 アドレス 力 装 置 メモリ 出 データ 力 装 置 プロセッサからメモリへの書き込み 補助記憶装置 21
メモリとは • メモリは,データの記憶を行う • データを覚えさせたり(書き込み),取り 出したり(読み出し)の機能がある 22
デジタル • コンピュータでは,すべてのデータ,プログ ラムを,0,1(デジタル)で表現 23
情報とデータ 情報 人間にとって意味の ある意味内容そのもの あの人の電話番号は 「123-4567」だ 明日は晴れだ 気象情報,個人情報,にせ情報 情報活動,外交情報,情報機関 データ コンピュータの処理できるよう に,情報をコード化したもの 1234567 (数値データ) 晴れ(文字列データ) データ通信,データベース 電子メールのデータ WWWのデータ 24
デジタル • デジタルの世界では,すべてが,「0」,「1」 の列 • 1個の「0」,「1」は,1ビット(ビットは情 報の単位) 00101110100101001010010101001 25
2進数とビット • 2進数では,「0」,「1」 だけを使う 例) 0011010111101110101011 • ビット: 2進数の1桁のこと 例) 00110101 の下から4ビット目は 0 26
メモリとアドレス • メモリはバイト(8ビット)単位に区切ら れている • 各バイトには0から始まる通し番号が付け られている。 アドレスという(番地ともいう) メモリ内のデータ 00101110100101001010010101001 8ビット 8ビット 8ビット 27
メモリへの操作 • 読み出し 読み出したい データのアドレス データ メモリ • 書き込み 書き込みたい データのアドレス とデータそのもの メモリ 28
読み出し アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス 0 1 2 3 4 5 6 7 8 ?? ?? ?? ?? ?? ?? ?? ?? ?? アドレス4番地,5番地 から2バイト分 読み出すとき メモリの値は変化 しない メモリの各区画は1バイト (16進数で2桁) 29
書き込み アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス 0 1 2 3 4 5 6 7 8 ?? ?? ?? ?? ?? ?? ?? ?? ?? アドレス6番地, 7番地に 「0400」を 書き込むと メモリの各区画は1バイト (16進数で2桁) ?? ?? ?? ?? ?? ?? 0 4 0 0 ?? 前の値は消える 30
13-5 メモリの仕組み 31
メモリの仕組み ア ド レ ス ア ド レ ス デ アドレス信号が コ 通る信号線 (アドレスバス) ー ダ アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス アドレス 0 1 2 3 4 5 6 7 8 デ ー タ データ信号が 通る信号線 (データバス) メモリ 32
アドレス4,5番地から,2バイト分読み出す ア ド レ ス 「 4 」 アドレス4,5 のメモリをオンに アドレスが 入る 必要なメモリを オンに ( 2 2 バ バ イ イ ト ト の 分 デ を ー 一 タ 括 読 み 出 し ) データが 出る 33
アドレス6,7番地に,2バイト分書き込む ア ド レ ス 「 6 」 アドレス6,7 のメモリをオンに アドレスが 入る 必要なメモリを オンに ( 2 2 バ バ イ イ ト ト の 分 デ を ー 一 タ 括 書 き 込 み ) データが 入る 34
13-6 文字コード 35
16進数 • 16個の記号0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F を使 う 例) 0065FDF0 36
2進数と16進数の対応 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 37
2進数と16進数の関係 • 2進数 4桁は,16進数の 1桁 0011 0101 1001 1100 3 5 9 C 16桁の2進数は,4桁の16進数 38
10進数と16進数の対応 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A 10 B 11 C 12 D 13 E 14 F 15 39
ASCIIコード表 「文字1文字」は, 数字(16進数2桁)にコード化 0 1 2 3 4 5 6 7 0 NULL DEL SP 0 @ P 1 SOH DC1 ! 1 A Q a q 2 STX DC2 “ 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAK % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB ’ 7 G W g w 8 (BS) CAN ( 8 H X h x 9 (HT) EM ) 9 I Y i y A (LF) SUB * : J Z j z B (VT) ESC + ; K [ k { C (FF) (FS) , < L ¥ l | D (CR) (GS) - = M ] m } E SO (RS) . > N ^ n ~ F SI (US) / ? O _ o DEL p 太字は特別用途
13-7 論理積と論理和 41
二進数は 0 または 1 右手が下がっている 右手が上がっている 二通り 42
二進数は 0 または 1 右手が下がっている 0 右手が上がっている 1 ※ 0 と 1 が逆になる場合もある 43
変数が2つ 右手と左手の 両方を考えると 4通り 44
変数が2つ 0と0 1 と0 0と1 1と1 45
論理積 0と0 0と1 1 と0 1と1 論理積は 両方とも1 46
論理和 0と0 0と1 1 と0 1と1 論理和は 少なくとも 片方には 1がある 47
論理和と「選択」は違う ・焼き芋大会があるんだけど、 ・土曜日と日曜日、どっちが良い? 両方、申し込んでよ ♡ 日曜日 落選:0 当選:1 土曜日 落選:0 当選:1 両方参加しても OK! 土曜日と日曜日の選択では無 い 48
論理積と論理和のまとめ 0 1 0 0 0 1 0 1 論理積 AND 0 1 0 0 1 1 1 1 論理和 OR 49
複数のビットを一括して論理積、論理和を 求める場合があります x y 0011 クイズ 0101 x と y の論理積は? 論理和は? 全部で4ビット 50
複数のビットを一括して論理積、論理和を 求める場合があります x 0011 0011 y 0101 0101 0001 0111 論理積 AND 論理和 OR 51
多数決 Aさん,Bさん,Cさんは 「0」か「1」に投票 A 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 C 0 0 0 0 1 1 1 1 多数決 0 0 0 1 0 1 1 1 52
多数決は,論理積(AND)と論理和(OR)の 組み合わせでできる A 0 1 0 1 0 1 0 1 A AND B 0 0 0 1 0 0 0 1 ① B AND C 0 0 0 0 0 0 1 1 ② B 0 0 1 1 0 0 1 1 C 0 0 0 0 1 1 1 1 C AND A 0 0 0 0 0 1 0 1 ③ ① OR ② 0 0 0 1 0 0 1 1 ④ 多数決 0 0 0 1 0 1 1 1 ③ OR ④ 0 0 0 1 0 1 1 1 53
13-8 論理演算と足し算 54
論理積と論理和 0 1 0 0 0 1 0 1 論理積 AND 0 1 0 0 1 1 1 1 論理和 OR 55
否定(NOT) NOT(0) = 1 NOT(1) = 0 否定 NOT 56
足し算 0 + 0 = 00 0 + 1 = 01 1 + 0 = 01 1 + 1 = 10 2つのビットから 2ビットができる 57
足し算 0 + 上位ビット 下位ビット 0 = 00 0 + 1 = 01 1 + 0 = 01 1 + 1 = 10 0 0 0 1 0 1 0 1 上位ビット x AND y 足し算は AND, OR, NOT の組み合わせで可能 0 1 0 0 1 1 1 0 下位ビット AND((x OR y), NOT(x AND y)) 58
13-92の補数 59
2の補数 • 2の補数は,負の整数も扱いたいときに便利 • 2の補数では,最上位ビットが符号ビット 0 → 正の整数または0 1 → 負の整数 8ビットの整数データの場合 10進数の2 0 0 0 0 0 0 1 0 10進数の1 0 0 0 0 0 0 0 1 10進数の0 0 0 0 0 0 0 0 0 10進数の-1 1 1 1 1 1 1 1 1 10進数の-2 1 1 1 1 1 1 1 0 60
-45 と 45 を足すと 0 8ビットの2の補数 45 0 0 1 0 1 1 0 1 -45 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 45 + (-45) 0 2の補数では, マイナスの数は 最上位ビットが1 1繰り上がる 61
パソコン演習 ① ウェブブラウザを起動する ② python tutor を使いたいので,次の URL を開く http://www.pythontutor.com/ ※ Internet Explorer でうまく動かない場合があります → うまく動かないときは Google Chrome を試してください ※ 日本語モードはないので,英語で使う 62
① 次のように書く print( format( -2 & 0xff, 'b' ) ) print( format( -1 & 0xff, 'b' ) ) print( format( 0 & 0xff, 'b' ) ) print( format( 1 & 0xff, 'b' ) ) print( format( 2 & 0xff, 'b' ) ) print( format( 3 & 0xff, 'b' ) ) 63
②「Visualize Execution」をクリック 64
③「Last」ボタンをクリック 65
④ 結果を確認 -2 -1 0 1 2 3 10進数 66