ikemonn's blog

技術ネタをちょこちょこと

2015-01-01から1年間の記事一覧

コンピュータアーキテクチャのエッセンス 12章

CPU

キャッシュとキャッシュ機構 キャッシュ技術はコンピュータシステム全体において基本となる最適化技術 アクセス要求を検知 自動的に値を格納 可能な限り高速にアクセス要求に答える 多重レベルキャッシュ階層や、先読みキャッシュがある キャッシュ技術は物…

コンピュータアーキテクチャのエッセンス 11章

仮想メモリの技術と仮想アドレス 仮想メモリシステム 抽象的なアドレス空間をプロエッサとプロセサ上で稼働するアプリケーションプログラムに提供する 下層の物理メモリの詳細を隠ぺいする ワードのアドレス付の詳細を隠蔽する アドレス空間を均質に見せるこ…

コンピュータアーキテクチャのエッセンス 10章

物理メモリと物理アドレス 現在多くのメモリ技術が存在する 永続性(RAMやROM) クロック同期 リード、ライトサイクル時間 物理メモリはワードとして構造化され、コントローラを通してアクセスされる プログラマにとってはびとアドレッシングが使いやすいがワ…

コンピュータアーキテクチャのエッセンス 9章

CPU

メモリと記憶装置 メモリのキーとなる概念 技術 揮発性か不揮発性か ランダムアクセスか逐次アクセスか 永続的か? 一次的か二次的か 構造 小容量の高性能メモリと大容量の低性能メモリ 参考 コンピュータアーキテクチャのエッセンス (IT Architects Archive…

コンピュータアーキテクチャのエッセンス 8章

CPU

アセンブリ言語とプログラミングパラダイム アセンブリ言語 命令セット、オペランドの番地付け、レジスタなどのプロセッサの特徴を含んだ低レベルな言語 多くのアセンブリ言語が存在する 各プロセッサにつき一つ以上のアセンブリ言語がある アセンブリ言語の…

コンピュータアーキテクチャのエッセンス 7章

CPU

CPU:マイクロコード、保護、およびプロセッサモード 実行モードは許可された処理や現在の特権レベルのような操作上のパラメタを決定する 大抵のCPUには特権と保護において2つ以上のレベルがある OSのためのもの アプリケーションプログラムのためのもの 内部…

コンピュータアーキテクチャのエッセンス 6章

CPU

オペランドアドレッシングと命令表現 プロセッサを設計するとき、アーキテクトはオペランドの数と型を各命令ごとに選択する オペランドを効率的に取り扱うために、大抵のプロセッサはその数を3つ以下に制限する オペランド数と型の選択には、機能性、プログ…

コンピュータアーキテクチャのエッセンス 5章

CPU

さまざまなプロセッサと命令セット 各プロセッサではサポートする演算群から構成される命令セットが定義されている プログラマへの利便性とハードウェアコストの間で妥協しながら選択される たいていのプロセッサには高速な記憶機構である汎用レジスタが備わ…

コンピュータアーキテクチャのエッセンス 4章

CPU

さまざまなプロセッサと計算エンジン プロセッサは多数の命令からなる計算を実行できるデジタル機器 下記の論理を使い分けられる 固定論理 選択可能論理 パラメータ化された論理 プログラム可能論理 プロセッサは様々な役割において下記のように分類される …

コンピュータアーキテクチャのエッセンス 3章

CPU

データやプログラムの表現 基礎となるディジタルハードウェアには0,1の出力がある これをビットとし、データやプログラムを表現するのに複数のビットを使う コンピュータは各々でバイトのサイズを定義していて、現行システムでは通常8ビット = 1バイトである…

コンピュータアーキテクチャのエッセンス 2章

CPU

ディジタル論理回路の基礎 フリップフロップ ちょうど電源スイッチのように働く、状態を扱う電子回路 入力の過程に対して反応し、現在の入力値に対しては単純には反応しない 入力が最初に1になると出力をオンにし、入力が次に(0になったあと)1になると出力を…

はじめて読む486 12章

CPU

DOSエクステンダー MS-DOS上でプロテクトモードを活用するプログラムの実行を可能にする リアルモードの状態でMS-DOSメモリ領域にプロテクトモードプログラムファイルを読み込み、プロテクトモードに移行してからそれをプロテクトモードメモリに転送する MS-…

はじめて読む486 11章

CPU

仮想8086モード プロテクトモードではセグメントの扱いが違うので、プログラムをそのまま実行できない 286ではMS-DOS用のアプリを実行する際には、いったんリアルモードに戻した リアルモードだとプロテクトモードの保護機能が全く使えない 386では「仮想808…

はじめて読む486 10章

CPU

OSのセキュリティ 特権レベルとスタック切り替え 486は特権レベルによって、アプリケーションソフトウェアの権限を制限し、セキュリティを実現する アプリケーションを実行している状態からコールゲート、割り込み、例外によってOSが呼び出されると、CPUの動…

はじめて読む486 9章

CPU

ページング メモリ管理方式の一つ メモリを「ページ」と呼ばれる固定長の単位に区分けする方法 本来フラットなメモリ空間のアドレス割り当てのまま、全メモリに連続したアドレスが割り付けられる ページングとアドレス変換 ページ単位でアドレス変換を行う …

はじめて読む486 8章

CPU

タスク タスク(プロセス)とは 独立した資源を保持するプログラムの実行単位 実行単位 = プログラムが起動して処理を行い、終了するまでの一連の流れの実行 資源 = メモリ空間やファイルやデバイスの操作状況、それらを処理するプログラムの実行時間 各タスク…

はじめて読む486 7章

CPU

割り込み 割り込みとは 仕組み プログラムの実行を何らかのきっかけで中断し、一時的に他のプログラムを実行すること 流れ 割り込みの発生 割り込み処理ルーチンの呼び出し 割り込み処理ルーチンの実行 割り込み処理の終了 種類 ハードウェア割り込み 周辺機…

はじめて読む486 6章

CPU

保護機能 プロテクトモードでは下記のチェックをCPU内部で行っている セグメントの属性 セグメントリミット 特権レベル タスク セグメントリミット アクセスしようとするメモリのオフセットアドレスがリミット値を超えていないかをチェックする セグメントの…

はじめて読む486 5章

CPU

セグメント メモリの区画割り 8086のセグメント機構は64Kバイトに制限されていたため有害無益と言われていた プロテクトモードではセグメント機構が持つメリットを十分に発揮できるようになっている セグメント方式 メモリを区画割りする方式の一種 8086のセ…

はじめて読む486 4章

CPU

プロテクトモード リアルモードからプロテクトモードに移行するには システムレジスタのCR0(コントロールレジスタ0)の最下位ビットPE(プロテクションイネーブル)を1にする セグメントの設定→割り込みの設定→アドレス制限の解除→プロテクトモードへ移行

はじめて読む486 3章

CPU

OSの役割 プロセス管理 メモリ管理 ファイルシステム 入出力管理 マルチタスク 複数のタスクを順番に少しずつ実行していく タスク切り替えの実現方法 タスク1を2に切り替える方法 タスク1の状態を保存するために、レジスタの内容をすべてメモリに保存する メ…

はじめて読む486 2章

CPU

486の位置づけ CPUはCISCとRISCに分類される 486はCISCに属する86系 8080というインテル製の8ビットCPUを源流としている 86系CPUの発展 8086 16ビットCPU 8ビットCPUである8080からの移行を容易にすることを主眼に作られた セグメント方式やレジスタの種類に…

はじめて読む486 1章

CPU

3つの動作モード 486は下記の3つの動作モードをもっている リアルモード プロテクトモード 仮想8086モード リアルモード 従来との互換性を保っているモードで、MS-DOSを利用できる 8086とほぼまったく同じ動作をする プロテクトモード MS-DOSからWindowsを起…

Laravel HomesteadにSequel Proを使う

概要 $ homestead up した後に、下記のように設定すればよい。 参考 Using Sequel Pro with Laravel Homestead Vagrant Environment

VagrantとHomesteadでLaravel5.Xを楽しむ

概要 Laravel Homestead - Laravel - The PHP Framework For Web Artisansを使うと簡単です。 やり方 // 予めLaravelのプロジェクトを作っておく $ larval new yourProject $ vagrant box add laravel/homestead $ composer global require "laravel/homeste…

【Git】間違ってpushしたコミットを履歴も残さず削除したい

状況 間違ってcommitしたものをpushしてしまったので、リモートブランチから履歴を消したい。 revertで履歴が残るのも困る。 解決方法 手元のローカルブランチをreset --hardで戻りたい位置まで戻す リモートブランチに強制的にpushする $ git reset --hard …

【Haskell】SortByを使う

Ninety-Nine Haskell Problems Haskellの勉強をしていて、(Ninety-Nine Haskell Problems)https://wiki.haskell.org/99_questionsを解いている。 そこで、sortの問題が出てきたので解いた。 Problem 28 Sorting a list of lists according to length of subl…

【書評】春風夏雨

春風夏雨 (角川ソフィア文庫)作者: 岡潔出版社/メーカー: KADOKAWA / 角川学芸出版発売日: 2014/06/12メディア: Kindle版この商品を含むブログを見る この本との出会い 大学時代の友達が「春宵十話」をオススメしてくれて、その時に数学者、岡潔を知った。 …