タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

SystemCallに関するtanakaBoxのブックマーク (9)

  • 排他制御の基礎の基礎

    はじめに システムに存在するリソースには同時にアクセスしてはいけないものが多々あります。身近な例を挙げると、Ubuntuのパッケージ管理システムのデータベースがあります。aptコマンドの動作によってこのデータベースは更新されるのですが、同時に2つ以上のaptが動作できたとすると、データベースが破壊されてシステムが危機的状況に陥ります。 このような問題を避けるために、あるリソースに同時に1つの処理しかアクセスできなくする排他制御というしくみがあります。排他制御はOSが提供する重要な機能の一つです。 排他制御が必要なケース 排他制御は直感的ではなく非常に理解が難しいのですが、ここでは比較的理解が簡単なファイルロックというしくみを使って説明します。説明には、あるファイルの中身を読みだして、その中に書いてある数字に1を加えて終了するincというという単純なプログラムを使います。

    排他制御の基礎の基礎
  • チュートリアル – システムコールの書き方 | プログラミング | POSTD

    しばらく前に私は、「 C言語でシェルを書く方法 」というタイトルで、皆さんが日常的に使っているツールの内部動作を理解するのに役立つチュートリアルを書きました。単純なシェルであっても、数例を挙げるだけでも read 、 fork 、 exec 、 wait 、 write それから chdir など多数のシステムコールが呼び出されていました。この探索に続く次なる旅として、今回はLinux環境においてシステムコールがどのように実装されているのかについて学んでいきましょう。 システムコールとは何か システムコールを実装するに当たって、それが何なのかをまずきちんと理解しておきましょう。そう遠くない昔の私がそうでしたが、素直なプログラマならシステムコールをCライブラリで提供されている関数のことだと定義するかもしれません。しかしこれは全く正しくありません。確かにCライブラリに含まれる関数群はシステムコ

    チュートリアル – システムコールの書き方 | プログラミング | POSTD
  • 連載記事 「知ってトクするシステムコール」

    システムコールについてどれくらいご存じですか? 連載:知ってトクするシステムコール(1)  難しいものと思われがちなシステムコール。しかし、学べばトクすることがいろいろあるんですよ

  • http://1978th.net/tech/promenade.cgi?id=31

  • mmap (メモリマップトファイル) : kei@sodan

    Linux/Unixのメモリ周りで大活躍のシステムコール、mmapの解説です。 スライド(pdf), (pptx), (ppt) 上記スライド及びこのページの内容の大部分は、(僕が受けた) 田浦先生 の授業オペレーティングシステムの6回目のスライドと同じです。 あと、malloc中のmmap()まわりを調べてくれてありがとう>研究室のkennyくん ファイルとメモリ mmap()のAPI・使い方 (mallocの中身の話題) mmap()の実装

  • pthreadについて(概要・生成):CodeZine

    はじめに スレッド(thread)は、代表的な非同期処理の仕組みの1つで、例えるならプロセスの中で動くプロセスという感じで、軽量プロセス(lightweight process)と呼ばれたりもします。pthreadはPOSIXが仕様化したスレッドモデルで、POSIX仕様を満たしているOS間では基的には移植が可能ですが、個人的な感想では、主にUNIX系OSで使用されているようです。 大変便利なんですが、しかし複数のスレッドを矛盾無く動かす事はとても難しく、またデバックも困難で、作りを誤ると環境次第で動きが違ったりします。有用な実装方法はネット上でもそれ程見当たらず、も少ないうえに英文を強引に訳してるだけの古いばかりで、なかなか理解が困難だと思います。 当レポートはpthreadに関する調査・試行錯誤した結果、躓きやすい箇所、実装依存と思われる箇所等、独断と偏見と誤解とたくさんのサンプル

    tanakaBox
    tanakaBox 2008/01/21
    pthreadの基礎。スタックが共有されていないというのがポイント。
  • livepatch - concepts and techniques

    19:45 <g****> というよりこの前のカーネルカンファレンス 19:45 <g****> あれを発表したコムウェアは勇者だとまじでおもった(わら 19:46 <g****> いやこう 技術的に もうやりたい放題? 19:47 <g****> ありえねえ ということをやってた 19:50 <g****> あれをやれといわれたら 洩れは逃亡するな 19:50 <g****> まああれはむごかった 19:51 <g****> developer.osdl.jp/projects/pannus/ 19:51 <g****> これですよ 19:51 <k****> キャリアグレードか 19:51 <g****> メモリイメージを直接書き換えるために mmap3 を追加したとか 19:52 <g****> タスクをとめるために直接スケジューラいじったりとか 19:52 <g****> SMP

    tanakaBox
    tanakaBox 2008/01/11
    ptrace(2)を使うと、プロセスにアタッチしてメモリやら、レジスタを書き換えられる→デバッガが作れる→おぉぉぉ。
  • Linux Development - IBM Developer

    LinuxThe open source operating system that runs the world.The open source operating system that runs the world.

    Linux Development - IBM Developer
    tanakaBox
    tanakaBox 2007/04/23
    システムコールプログラミング。
  • システムコール・ライブラリルーチン

    UNIX の関数群の説明です。関数にはシステムコールとライブラリ関数があります。システムコールとは、 各プログラムが OS の提供する機能を利用するための関数で、これが呼ばれると UNIX のカーネルが処理を行い実行します。一方、ライブラリ関数には2つのタイプがあり、 最終的にはシステムコールを呼び出すもの。直接システムコールを使うより便利な造りになっている 文字列操作や計算をおこないメモリ領域を操作するだけで、OS の提供する機能を使わないものがあります。簡単に言うと、ライブラリ関数というのは「便利だから、よかったら使ってね」というもので、システムコールは「〜したいならこれを使うしかないよ」というものです。例えば、open・read・write はシステムコールです。一方、fopen・fread・fgets などは、ライブラリ関数です。どちらの関数の機能も「ファイルの読み書きを行うこと」

    tanakaBox
    tanakaBox 2007/03/14
    一覧になっていてみやすい。詳しくはman 2で。
  • 1