タグ

2008年12月1日のブックマーク (9件)

  • 第16回 排他制御機構

    これまでの連載で,Linuxカーネルの基機能についてひと通り解説しました。しかし最近のUNIXカーネルは,ここまで紹介した基機能に加えてさまざまな機能を装備しています。Linuxカーネルも例外ではなく,さまざまな分野で利用されるにつれ,多くの機能が実装されてきました。例えば,カーネルの機能を動的に(動作させたまま)拡張するモジュール機構や,それらのモジュールを自動的に導入するhotplug機構,そして電源管理などを行う APM/ACPI機構などです。 今回はこうした機能のうち,地味ですがとても重要な排他制御機構に関して解説します。 排他制御はなぜ必要か Linuxは,マルチユーザー/マルチタスクのOSです。つまり,複数のユーザーが同時に複数のプログラム(プロセス)を実行できます。この機能は,以前に解説したように,プロセッサで実行するプロセスを細かく切り替える仕組みにより実現されています

    第16回 排他制御機構
  • 第3回 マルチタスクに不可欠な同期の仕組みを学ぶ

    大手コンピュータ・メーカー勤務。入社以来10数年をソフトウェア開発の現場で過ごし,その後ソフトウェア品質部へ異動。現場への技術支援や品質教育開発などを主に行っている。「APIで学ぶWindows徹底理解」(日経BP社)などを執筆。 前回,前々回と,複数のプロセス,複数のスレッドがどのような仕組みで同時に実行できるかについて説明をしてきた。その中でも少し触れたが,複数の処理が並行して実行される場合には,ある重要な問題を考慮しなければならない。「同期」である。 単独で動作するシングル・スレッドのアプリケーションしか書いたことがない人にはなじみのない言葉だろう。しかし同期は,Windowsだけでなく,並列処理が可能なシステムでは,必ず考慮しなければならない事項である。これは,プログラム言語としてマルチスレッドをサポートしているJava言語に,同期を実現するためのキーワードが定義されていることから

    第3回 マルチタスクに不可欠な同期の仕組みを学ぶ
  • AlfredMussetの「されどiPhoneな日々」:あのハマりゲーム【Fieldrunners】を攻略する! - livedoor Blog(ブログ)

    しかしとんでもないゲームアプリが出たものだ。前記事でもご紹介したFieldrunners。とうとうハマってしまってヘトヘトになりながらもようやくHARDをクリアできました(笑)。 ※下記には私なりの攻略法を書いてありますので、アドバイスなしにこのゲームにチャレンジしたい方はどうぞお読み飛ばしくださいませ。 ※各画像はクリックすれば拡大表示されます。 EASYモードをクリアしたときは、下記のような迷路状態で各種砲台を配置しましたが、MIDIUMモードでは通用しないことは前記事の白フォント文字で既に記述しています。そこで閃いたのが敵軍の「最短距離で出口を目指す」という特性を使った単純な「乙文字」配置です。 ※EASYモードで使用した下記の布陣がまずい理由は下記の通りです。

  • 満足せる豚。眠たげなポチ。:Mongrel 生まれの高速(らしい) Web サーバ Thin に関するメモ。

    Ruby Inside で紹介されていた Thin に関するメモ。(なんだけど、試していないので実態は不明。) Thin actually relies on Mongrel, but is ultimately faster than it, even against Mongrel's EventMachine-enhanced guise. とのこと。公式サイトの about を読むと、Mongrel のパーサを使っているので、Mongrel の速さとセキュリティを受け継ぎ、EventMachine を使っているから、安定していてスケーラブル。そして、Rack 対応なので既存アプリも簡単に移行できるということらしい。 公式 リリースに関するブログエントリ Thin の Trac 上記のブログのコメントからいくつか抜粋。 Does Thin run multiple Rails pro

  • [Linux] ebb

    ► 2020 (1) ► 2月 (1) ► 2012 (1) ► 3月 (1) ► 2011 (4) ► 9月 (1) ► 6月 (1) ► 1月 (2) ► 2010 (19) ► 12月 (2) ► 11月 (3) ► 10月 (1) ► 9月 (1) ► 8月 (1) ► 7月 (1) ► 5月 (1) ► 3月 (4) ► 2月 (2) ► 1月 (3) ► 2009 (64) ► 12月 (1) ► 11月 (6) ► 10月 (2) ► 9月 (2) ► 8月 (4) ► 7月 (3) ► 6月 (6) ► 5月 (8) ► 4月 (12) ► 3月 (9) ► 2月 (5) ► 1月 (6) ▼ 2008 (98) ► 12月 (7) ► 11月 (8) ► 10月 (5) ► 9月 (2) ► 8月 (5) ► 7月 (3) ► 6月 (5) ► 5月 (8) ▼ 4月 (

  • libevでechoサーバを作る - so what

    パフォーマンスがよいよいと評判のlibevでechoサーバを書いてみる。 echod_libev.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <ev.h> #define ECHO_PORT 7 #define MAX_BACKLOG 5 #define RCVBUFSIZE 256 #define MAX_EVENTS 1024 #define die(s) do { fprintf(stderr, "%s\n", (s)); exit(1)

    libevでechoサーバを作る - so what
  • memcachedは何故libevではなくlibeventを使っているのか? - rants

    libev? 多くの人がlibevの方がlibeventより早いし安定していると言っているのを聞くし、 3倍速いことを示すベンチマークも見た。libevにする予定はある? という質問に対しての回答。 libevには半信半疑なんだ。pollerの指定をいろいろやる必要があるし、 graceful fallbackは複雑に見える。それに彼らはcronをリライトするのに一生懸命だ。 もし誰かパッチを書いてくれてベンチマークを走らせられるようなら、そのパッチとベンチマークを ポストしてくれれば議論できるよ。それが全然早いようなら、オプションかなにかで動くようにする。 でも僕はlibevにはlibeventスタイルのthreadサポートが欠けていると思ってる。 (ゲットーだけど動くからね)。 僕らには重要なことだ。 libev うまくいってるようには見えないよ。間違ってたら指摘して欲しい。

    memcachedは何故libevではなくlibeventを使っているのか? - rants
  • wpf2008 @ ウィキ - libev::README

  • http://www.ninxit.com/blog/2008/06/21/286