SlideShare a Scribd company logo
1 of 29
Download to read offline
コンピューターって
    どう動いているの?
2020/06/08 たなかひかる
Holyday技術基礎勉強会
今日のお話
・コンピューターって何?
・ハードな話
・ソフトな話
・質疑応答
そもそもコンピューターって何?
そもそもコンピューターって何?
困った時のwikipedia
https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF
コンピュータ(英: computer)は、主にトランジスタを含む電子回路を応用し、数値計算、情報処理、デー
タ処理、文書作成、動画編集、遊戯など、複雑な(広義の)計算を高速・大量におこなうことを目的として
開発された機械である。
そもそもコンピューターって何?
コンピューター
サーバー
パソコン
コンピューターは何で構成されているの?
コンピューターでは演算を行うために以下の要素が組み込まれていることが多い
・CPU(演算処理装置)
・HDD/SSD(不揮発性記憶媒体)
・メモリ(揮発性記憶媒体)
・入力装置(キーボード/マウス等)
・出力装置(ディスプレイ等)
・電源装置
コンピューターは何で構成されているの?
コンピューターでは演算を行うために以下の要素が組み込まれていることが多い
・CPU(演算処理装置)
・HDD/SSD(不揮発性記憶媒体)
・メモリ(揮発性記憶媒体)
・入力装置(キーボード/マウス等)
・出力装置(ディスプレイ等)
・電源装置
今日は上の3つの関係性に焦点を当ててお話をしていきます
基本的なお仕事の流れ
HDD/SSDのお仕事
CPUのお仕事
メモリのお仕事
基本的なお仕事の流れの振り返り
記憶媒体の差について
お名前 電源を落とすと
データが消える
読み書きの速さ お値段
HDD × × ◎
SSD × 〇 〇
メモリ 〇 ◎ ×
※但し値段については近況では一概に言えない状況にある
ここまでがハードなお話
ここからソフトなお話
コンピューターは人間ほど賢く無い?!
コンピューターは0と1でお仕事をしています
そのため、0と1で判断出来ないものについてとても弱いです
プログラムを書く上では常に「Closed Question」を意識しなければなりません
コンピューターは
人の書いたプログラムを読めない?!
コンピューターは0と1でお仕事をしています
そのため、実行するプログラムは0と1で表現されたバイナリデータの必要があります
プログラムファイルは人が読める形で書かれるためバイナリデータではありません
プログラム言語をマシン語に変換する
プログラマーが書いた「プログラム言語」は
OSが実行出来る形式「マシン語」に変換する必要がある
・プログラム言語を読みながら変換しつつ実行する
・事前に変換しておいて実行ファイルを作っておく
・どのOSでも実行出来る中間ファイルを作っておく
インタプリタ言語
実行ファイルがプログラム言語を読み込みながら実行出来る形式に変換しつつ実行する
主な言語
・PHP
・nodejs
・Ruby
・Python
・etc...
コンパイル言語
プログラムファイルを事前にマシン語へ変換(コンパイル)して実行ファイルを生成し
実行ファイルを実行する
主な言語
・C
・C#
・C++
・Objective-C
・Go
・etc...
VM系言語
プログラムファイルをVMが実行出来る形式へ変換(コンパイル)して実行ファイルを生成し
実行ファイルをVM上で実行する
主な言語
・Java
・Scaler
・Hack
・etc...
言語の実行方法による差
実行までの早さ 実行速度 プログラム上の
制約の少なさ
実行環境の多さ
インタプリタ言語 ◎ × ◎ △
コンパイル言語 × ◎ × △
VM系言語 × 〇 × ◎
プロセスとスレッド
凄く雑に説明すると
・プロセスはCPUに直接命令するプログラムの実行単位
・スレッドはプロセスに複数ぶら下がってプログラムを実行する単位
になります
マルチプロセスって?
プロセスはCPUに対して原則1つの仕事しか依頼できません
そのためメインプロセス(親プロセス)が複数のサブプロセスを持つ事によって
並列してたくさんの仕事を捌く方法です
マルチスレッドって?
プロセスはCPUに対して原則1つの仕事しか依頼できません
そのためメインプロセス(親プロセス)が複数のスレッドを持つ事によって
並列してたくさんの仕事を捌く方法です
マルチスレッドって?
プロセスはCPUに対して原則1つの仕事しか依頼できません
そのためメインプロセス(親プロセス)が複数のスレッドを持つ事によって
並列してたくさんの仕事を捌く方法です
但しスレッドはプロセスで確保したメモリを他のスレッドと共有することがあります
(スレッドセーフではない状態)
マルチスレッドって?
プロセスはCPUに対して原則1つの仕事しか依頼できません
そのためメインプロセス(親プロセス)が複数のスレッドを持つ事によって
並列してたくさんの仕事を捌く方法です
但しスレッドはプロセスで確保したメモリを他のスレッドと共有することがあります
(スレッドセーフではない状態)
プロセスとスレッドの注意点
プロセスはスレッドと比べて起動と終了の負荷が高い
プロセスを実行しているのはCPUなので
プロセスの実行数はCPUのCore数を超えない方が効率が良い
スレッドはプロセス内でメモリを共有する事がある(プログラムによる)
ちなみに・・・
最近のwebブラウザはマルチプロセス形式が取られている事が多く
その点に置いて悪名高き有名なGoogleChromeは大量の子プロセスを発生させます
PCの動作が重くなった時にはプロセス数の制限をかけたり
不要な実行プロセスを削除するなどの対応をしましょう
質疑応答

More Related Content

Similar to 20200608コンピューターってどうやって動いているの?

LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ Masanori Saito
 
Computer vision, human vision, and your vision
Computer vision, human vision, and your visionComputer vision, human vision, and your vision
Computer vision, human vision, and your visionMasayuki Tanaka
 
2016 0316 io tlt勉強会_掲載用
2016 0316 io tlt勉強会_掲載用2016 0316 io tlt勉強会_掲載用
2016 0316 io tlt勉強会_掲載用yasuyuki_suzuki
 
2016 0422 io tlt勉強会
2016 0422 io tlt勉強会2016 0422 io tlt勉強会
2016 0422 io tlt勉強会yasuyuki_suzuki
 
0からコンピュータを作ってみた
0からコンピュータを作ってみた0からコンピュータを作ってみた
0からコンピュータを作ってみたYuuOkano
 
20190413 Joetsu TechMeetup 03
20190413 Joetsu TechMeetup 0320190413 Joetsu TechMeetup 03
20190413 Joetsu TechMeetup 03Kazuki Ueki
 
2016 0531 iotlt勉強会資料
2016 0531 iotlt勉強会資料2016 0531 iotlt勉強会資料
2016 0531 iotlt勉強会資料yasuyuki_suzuki
 
【Tokyowebmining】open compute project
【Tokyowebmining】open compute project 【Tokyowebmining】open compute project
【Tokyowebmining】open compute project Junichiro Tani
 
量子コンピュータとその未来について
量子コンピュータとその未来について量子コンピュータとその未来について
量子コンピュータとその未来についてyumi_chappy
 
量子コンピュータとその未来について
量子コンピュータとその未来について量子コンピュータとその未来について
量子コンピュータとその未来についてyumi_chappy
 
量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記Satoyuki Tsukano
 
コンピュータの構成と設計 第3版 第1章 勉強会資料
コンピュータの構成と設計 第3版 第1章 勉強会資料コンピュータの構成と設計 第3版 第1章 勉強会資料
コンピュータの構成と設計 第3版 第1章 勉強会資料futada
 
データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』
データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』
データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』The Japan DataScientist Society
 
ITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せにITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せにsuno88
 
システムと情報の数理・ネットワーク概論
システムと情報の数理・ネットワーク概論システムと情報の数理・ネットワーク概論
システムと情報の数理・ネットワーク概論shigaoki
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714swkagami
 
201110 01 Polytech Center 1
201110 01 Polytech Center 1201110 01 Polytech Center 1
201110 01 Polytech Center 1openrtm
 
量子オートマトンの計算能力
量子オートマトンの計算能力量子オートマトンの計算能力
量子オートマトンの計算能力YuuOkano
 

Similar to 20200608コンピューターってどうやって動いているの? (20)

LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ
 
Computer vision, human vision, and your vision
Computer vision, human vision, and your visionComputer vision, human vision, and your vision
Computer vision, human vision, and your vision
 
Embeded2020318
Embeded2020318Embeded2020318
Embeded2020318
 
2016 0316 io tlt勉強会_掲載用
2016 0316 io tlt勉強会_掲載用2016 0316 io tlt勉強会_掲載用
2016 0316 io tlt勉強会_掲載用
 
2016 0422 io tlt勉強会
2016 0422 io tlt勉強会2016 0422 io tlt勉強会
2016 0422 io tlt勉強会
 
0からコンピュータを作ってみた
0からコンピュータを作ってみた0からコンピュータを作ってみた
0からコンピュータを作ってみた
 
20190413 Joetsu TechMeetup 03
20190413 Joetsu TechMeetup 0320190413 Joetsu TechMeetup 03
20190413 Joetsu TechMeetup 03
 
2016 0531 iotlt勉強会資料
2016 0531 iotlt勉強会資料2016 0531 iotlt勉強会資料
2016 0531 iotlt勉強会資料
 
【Tokyowebmining】open compute project
【Tokyowebmining】open compute project 【Tokyowebmining】open compute project
【Tokyowebmining】open compute project
 
量子コンピュータとその未来について
量子コンピュータとその未来について量子コンピュータとその未来について
量子コンピュータとその未来について
 
量子コンピュータとその未来について
量子コンピュータとその未来について量子コンピュータとその未来について
量子コンピュータとその未来について
 
量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記
 
cs-13. 中間まとめ
cs-13. 中間まとめcs-13. 中間まとめ
cs-13. 中間まとめ
 
コンピュータの構成と設計 第3版 第1章 勉強会資料
コンピュータの構成と設計 第3版 第1章 勉強会資料コンピュータの構成と設計 第3版 第1章 勉強会資料
コンピュータの構成と設計 第3版 第1章 勉強会資料
 
データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』
データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』
データサイエンティスト協会 木曜勉強会 #02 講演2:『ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~』
 
ITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せにITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せに
 
システムと情報の数理・ネットワーク概論
システムと情報の数理・ネットワーク概論システムと情報の数理・ネットワーク概論
システムと情報の数理・ネットワーク概論
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
201110 01 Polytech Center 1
201110 01 Polytech Center 1201110 01 Polytech Center 1
201110 01 Polytech Center 1
 
量子オートマトンの計算能力
量子オートマトンの計算能力量子オートマトンの計算能力
量子オートマトンの計算能力
 

More from Hikaru Tanaka

20200831 教育と学習
20200831 教育と学習20200831 教育と学習
20200831 教育と学習Hikaru Tanaka
 
20200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その220200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その2Hikaru Tanaka
 
20200803 プログラミングの基礎
20200803 プログラミングの基礎20200803 プログラミングの基礎
20200803 プログラミングの基礎Hikaru Tanaka
 
20200727 コミュニケーションの技術
20200727 コミュニケーションの技術20200727 コミュニケーションの技術
20200727 コミュニケーションの技術Hikaru Tanaka
 
20200720 最新の技術事情の解説_チャットサービスの舞台裏_
20200720 最新の技術事情の解説_チャットサービスの舞台裏_20200720 最新の技術事情の解説_チャットサービスの舞台裏_
20200720 最新の技術事情の解説_チャットサービスの舞台裏_Hikaru Tanaka
 
20200706 技術に興味を持った人がすぐに読むべき技術書紹介
20200706 技術に興味を持った人がすぐに読むべき技術書紹介20200706 技術に興味を持った人がすぐに読むべき技術書紹介
20200706 技術に興味を持った人がすぐに読むべき技術書紹介Hikaru Tanaka
 
20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~Hikaru Tanaka
 
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~Hikaru Tanaka
 
20200615 webってどうやって表示しているの?
20200615 webってどうやって表示しているの?20200615 webってどうやって表示しているの?
20200615 webってどうやって表示しているの?Hikaru Tanaka
 
Holydayエンジニアチームの 評価制度について
Holydayエンジニアチームの 評価制度についてHolydayエンジニアチームの 評価制度について
Holydayエンジニアチームの 評価制度についてHikaru Tanaka
 
2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!
2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!
2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!Hikaru Tanaka
 
3年で6回リプレースをした エンジニアが語る! システムリプレースの極意
3年で6回リプレースをした エンジニアが語る! システムリプレースの極意3年で6回リプレースをした エンジニアが語る! システムリプレースの極意
3年で6回リプレースをした エンジニアが語る! システムリプレースの極意Hikaru Tanaka
 
教育とチームビルドの勘所
教育とチームビルドの勘所教育とチームビルドの勘所
教育とチームビルドの勘所Hikaru Tanaka
 

More from Hikaru Tanaka (13)

20200831 教育と学習
20200831 教育と学習20200831 教育と学習
20200831 教育と学習
 
20200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その220200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その2
 
20200803 プログラミングの基礎
20200803 プログラミングの基礎20200803 プログラミングの基礎
20200803 プログラミングの基礎
 
20200727 コミュニケーションの技術
20200727 コミュニケーションの技術20200727 コミュニケーションの技術
20200727 コミュニケーションの技術
 
20200720 最新の技術事情の解説_チャットサービスの舞台裏_
20200720 最新の技術事情の解説_チャットサービスの舞台裏_20200720 最新の技術事情の解説_チャットサービスの舞台裏_
20200720 最新の技術事情の解説_チャットサービスの舞台裏_
 
20200706 技術に興味を持った人がすぐに読むべき技術書紹介
20200706 技術に興味を持った人がすぐに読むべき技術書紹介20200706 技術に興味を持った人がすぐに読むべき技術書紹介
20200706 技術に興味を持った人がすぐに読むべき技術書紹介
 
20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~20200629 データベース基礎~データベースの扱いとデータ設計~
20200629 データベース基礎~データベースの扱いとデータ設計~
 
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
20200622 webエンジニアのお仕事 ~開発手法と開発フロー~
 
20200615 webってどうやって表示しているの?
20200615 webってどうやって表示しているの?20200615 webってどうやって表示しているの?
20200615 webってどうやって表示しているの?
 
Holydayエンジニアチームの 評価制度について
Holydayエンジニアチームの 評価制度についてHolydayエンジニアチームの 評価制度について
Holydayエンジニアチームの 評価制度について
 
2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!
2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!
2017/04/12 mac/win対応の 仮想環境構築で複数インスタンスをぶん回せ!
 
3年で6回リプレースをした エンジニアが語る! システムリプレースの極意
3年で6回リプレースをした エンジニアが語る! システムリプレースの極意3年で6回リプレースをした エンジニアが語る! システムリプレースの極意
3年で6回リプレースをした エンジニアが語る! システムリプレースの極意
 
教育とチームビルドの勘所
教育とチームビルドの勘所教育とチームビルドの勘所
教育とチームビルドの勘所
 

20200608コンピューターってどうやって動いているの?