タグ

QiitaとCPUに関するmsakamoto-sfのブックマーク (4)

  • ハイパーバイザを作ってみた - Qiita

    仮想マシンがどのように実現されているか気になったので、勉強がてら簡単なハイパーバイザを作ってみました。ソースコードはGitHubで公開しています。 方針 RaspberryPi3で動作するAArch64向けのType-1(ベアメタル)ハイパーバイザを作ることにしました。名前は"raspvisor"とします。 スクラッチから作り始める気力はなかったので、なるべく流用できるものは使っていくことにしました。そこで、RaspberryPiのOS開発教材であるRPi OSをハイパーバイザに改造していくことにしました。RPi OSはコード量が少なく読みやすい上、割り込み処理、プロセススケジューラ、ユーザプロセス、システムコール、仮想メモリといった機能が一通り実装されています。OSを改造することにしたのは、プロセス管理や仮想メモリ、割り込み処理といった部分を、ハイパーバイザの実装に流用できそうだと思った

    ハイパーバイザを作ってみた - Qiita
  • Pythonのthreadingとmultiprocessingを完全理解 - Qiita

    現代の主なOSと言ったら、Mac OS,UNIX,LinuxWindowsなどがあります。これらのOSは「マルチタスク」機能をサポートしています。 マルチタスクとは?と思うかもしれませんが、例えばブラウザーを立ち上げて、音楽聴きながら、Wordでレポートを書くというシチュエーションでは、少なくとも3つのタスクが同時進行しています。そして、表のタスク以外に、裏ではOS関連の様々なタスクがこっそり動いています。 マルチコアのCPUで、マルチタスクが処理できるのは理解しやすいですが、シングルコアのCPUでもマルチタスクが可能です。OSはそれぞれのタスクを交替に実行しています。例えば、タスク1を0.01秒、タスク2を0.01秒、タスク3を0.01秒、タスク1を0.01秒......繰り返して実行していきます。CPUは速いので、ほぼ同時進行のように感じます。この交替実行のことをしばしば「並行処理(

    Pythonのthreadingとmultiprocessingを完全理解 - Qiita
  • このKernel、どんなKernel? - Qiita

    はじめに この記事は、Linux Advent Calendar 2019 - Qiitaの8日目です。 この記事では、今使っているLinux Kernelがどんなkernelなのか、どんな設定で動いているのかを確認する方法を紹介します。 Linux Kernelは様々な用途に使われています。 そのため、ひとくちにLinux Kernelと言っても、動作はシステムによって全然違います。 現状を把握する手段を知ることで、効率的にKernelのコードリーディングやより良い設定を探す一助になれば幸いです。 また、コメント大歓迎ですので、なんでもお気づきのことがありましたらぜひお気軽にお願いします。 この記事で書くこと Linux Kernelの素性を確認する方法 Linux Kernelの設定値を確認する方法 この記事で書かないこと 各プロセスや各ユーザなどに対する設定(ulimitやniceや

    このKernel、どんなKernel? - Qiita
  • アセンブラへの道 coding(42) - Qiita

    事例(case study) アセンブラで覗くコンピュータの質 https://qiita.com/shm_ut/items/d27e6b80a5561a74d20f 前書き(preface Cコンパイラで生成したコードを、アセンブラで書き直したことがある。 コンパイラの最適化がまだ進んでいないころ、 Microsoft Cでコンパイルすると、NOPが結構入っていた。 単にNOPを外すだけでなく、マクロで簡潔にしてみた。 通信エミュレータで、NOPがなくなるとタイミングがずれてうまく動かないことが分かった。 ああ、Cコンパイラの作り方を覚えようと思った。 Cコンパイラは電総研(産総研)言語システム研究室の研究生で滞在した頃、Small Cコンパイラを写経し、Pascalで書かれたコンパイラをC言語に移植し、OBJという抽象データ型の言語のシンタックスチェッカをC言語で作成した。 C言語を

    アセンブラへの道 coding(42) - Qiita
  • 1