タグ

Unixに関するyyamanoのブックマーク (127)

  • fcntl

    yyamano
    yyamano 2011/09/09
  • Unixに置けるfile lock | SZMの日記 | スラド

    static void *_locktest1(void *); static void *_locktest(void *); int main() { pthread_t thr[5]; int thi[5]; static int fp; fp = open("hoge", O_WRONLY); thi[0] = pthread_create(&thr[0], NULL, _locktest, &fp); pthread_detach(thr[0]); thi[1] = pthread_create(&thr[1], NULL, _locktest1, &fp); pthread_join(thr[1], NULL); return 0; } static void * _locktest(void *n) { int d = *(int *)n; flock(d, LOCK_EX)

    yyamano
    yyamano 2011/09/09
    SZMの日記: Unixに置けるfile lock
  • flock(2)はスレッドも排他するか?(2) - moratorium

    flock(2)はスレッドも排他するか?(2) 2007-05-27 (Sun) 19:46 Unix flock(2)ではなくlockf(3)だとメールを頂いた。 確かにlockf(3)に変えてみると(lenは0)、排他してくれない。なんで挙動が違うんだ・・・。 2つの違いが分かったらまた書きます。 Similar Posts: flock(2)はスレッドも排他するか? 指きたっす マリオカート Newer: Tx: Succinct Trie Data Structure Older: 係り受け解析: 論文読み Comments:1 jun0 07-05-28 (Mon) 1:14 ああ、なるほろ。納得。Thread 同士だとどうせ普通に殺し合い (SEGV etc) とかできるし、協調性が無いことがありえないので flock(2) + 各種 mutex しか使わんという事だと思われ。

    yyamano
    yyamano 2011/09/09
    lockf(3)はスレッド排他しない
  • flock(2)はスレッドも排他するか? - moratorium

    flock(2)はスレッドも排他するか? 2007-05-26 (Sat) 6:02 Unix 以前人づてに、flock(2)がプロセス間排他はするけどスレッド間排他はしないという話を聞いた。 これが当だと、今まで自分が書いたマルチスレッドアプリケーションのファイルを扱う部分の根幹が揺らいでしまう。特にファイルが壊れたりするような現象は見られなかったので今まで放置してきたが、非常に心配になってきたので調べてみた。 実験環境と検証用コードは以下の通り。 [code] dylan% uname -a Linux dylan 2.6.17-10-generic #2 SMP Tue Dec 5 22:28:26 UTC 2006 i686 GNU/Linux dylan% gcc –version gcc (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.

    yyamano
    yyamano 2011/09/09
    flock(2)はスレッドも排他する
  • Story of Your Life » Blog Archive » fcntlを使ったアドバイザリロックはスレッド排他しない。

    yyamano
    yyamano 2011/09/09
    fcntlを使ったアドバイザリロックはスレッド排他しない。
  • 実行中のアプリケーションを外から観察するコマンド。 - こせきの技術日記

    strace システムコールをトレース。カーネルと何を話しているか。 strace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 straceを使ったデバッグ - SourceForge.JP Magazine : オープンソースの話題満載 Linuxカーネルの作り出す世界 − @IT自分戦略研究所 - ふつうのLinuxプログラミング 青木峰郎 システムコールとライブラリ関数 − @IT自分戦略研究所 システムコール・ライブラリルーチン - UNIX の部屋 ltrace 共有ライブラリの呼び出しをトレース。*.soと何を話しているか。 ltrace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ 404 - エラー: 404 - Linux JF ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŠ

  • Sleep sort « Otaku – Cedric's blog

    yyamano
    yyamano 2011/06/16
    forkして、最終行のwaitで待ち合わせ
  • The Elements Of Style: UNIX As Literature

    Original article: http://www.wenet.net/~scoville/PCarticle.html If there's nothing different about UNIX people, how come so many were liberal-arts majors? It's the love of words that makes UNIX stand out. Thomas Scoville In the late 1980s, I worked in the advanced R&D arm of the Silicon Valley's regional telephone company. My lab was populated mostly by Ph.D.s and gifted hackers. It was, as you mi

    yyamano
    yyamano 2011/06/13
  • Multicsを振り返ってみたい - Plan9日記

    Coders at Workという業界の有名人に対するインタビュー集を読んでいるが、プログラミング寄りの切り口が面白い。さて、書のインタビューイの1人としてKen Thompsonが登場する。ベル研でProject MACに関わる以前の話から、現在Googleで何をやっているかという話まで触れられている。もちろんPlan 9の話題も(Linuxへの評価に関連して)出てきて、Plan 9のドライバを書くときは、Linuxのドライバを参考にしたと答えている。 ベル研のProject MAC撤退に伴い、kenとdmrらはMulticsの開発をやめ、そのアンチテーゼとしてUNIXを作り始めたというのは、歴史としてよく語られる。が、MulticsとUNIXの間の技術の連続性にもっと着目してもよいのではないだろうか。Multicsは技術的には非常に野心的な、怪物システムであったが*1、UNIXを設計

    Multicsを振り返ってみたい - Plan9日記
  • findとgrepの合わせ技 - Plan9日記

    カーネルなど大規模なソースコードを検索したい場合、findとgrepを使ったり、タグジャンプを使うだろう。Eclipse使う場合とか異論はあると思うけど、今日はfindとgrepの合わせ技について調べてみた。 普段はxargsを噛ませて、 $ find . -name \*.c | xargs grep hogehogeとかやるんだけど、findの-execオプションを使った場合とどれくらい性能差があるのだろうか? 評価環境はVMWare Fusion上のUbuntu 11.04。Linux kernel 2.6.28.10のfs以下で、まずは次の3パターンを比較してみた。3回測定してtimeの最良値を示す。おそらく対象ファイルはファイルキャッシュに載っている思う。 $ time find . -name \*.c -exec grep wait_event_interruptible {

    findとgrepの合わせ技 - Plan9日記
    yyamano
    yyamano 2011/05/12
    "-execオプションの最後に「+」と書くことでxargs同様の挙動になるようだ"。知らなかった。netbsd 4以降でサポートされてる。
  • fork/execモデルの起源 - Plan9日記

    UNIXを勉強すると、forkとexecが分離されていることに疑問を持ち、パイプやリダイレクトを使ってシェルを作り、その合理性に感動するというのが、お決まりのパターンになっているが、なぜこんな実装が生まれてきたのだろう。 WindowsのネイティブAPIであるNtCreateProcessや、その祖先とも言える*1VMSのsys$creprcは、意味的にはforkとexecが一体化されている。まぁ、こっちの方がプロセス生成という意味では自然なアプローチに感じられるが、sys$creprcの山のような引数を見ると、これを使ってプログラムを書く気は萎えてくる。input、output、errorって標準入出力のバインディングを変えるためだろうか。そうだとすると、UNIXモデルの方がシンプルで理に適っている。 fork、execはUNIX V1のころから存在するのだが、「The Evolutio

    fork/execモデルの起源 - Plan9日記
  • シグナルの誕生 - Plan9日記

    今日はシグナルの歴史を調べてみたいと思う。シグナルというのはUNIXにおけるプロセス間通信の一手段であるが、CPUにおける例外のように、プロセスにとって非同期に発生するものなので、その実装はいろいろ面倒くさい。したがっていろいろ問題もあり、長年の改良の歴史を経て、今のシグナルの仕様に落ち着いた*1。BSDやSVR、そしてPOSIX標準になるまでのシグナルの拡張については文献が多いが、V6/V7以前は知られていないのでは。ということで、私の出番w まぁ、わかったところで喜ぶのは相当な好事家だろうが*2。 いきなりV7以前の話を始めるのも何なので、前提知識として、FreeBSD版悪魔「4.7.1 シグナルの歴史」からちょっと長いけど引用する。 シグナルは、ユーザが暴走したプログラムを強制終了する場合など、例外的なイベントをモデルとして当初設計された。それは、汎用のプロセス間通信として使われる

    シグナルの誕生 - Plan9日記
    yyamano
    yyamano 2011/04/28
  • PDP-11のブートストラップ - Plan9日記

    年の瀬も押し迫った頃、なぜかPDP-11のブートストラップが気になってしまったので、simhとPDP-11のプロセッサハンドブックを見ながら、調べてみた。 今回は実機のイメージがあった方が理解しやすいと思い、Wikipediaから写真引用。これは2基のDECtapユニット(TU56)を装備したPDP-11/40である。TU56はブロックアドレッシング可能なテープで、144K 18 bit wordの記憶容量を持っていた。ブロックサイズは256 18 bit word。余談だが、TU11という9トラックのテープユニットもあった。こちらはPCの外部記憶媒体にカセットテープを使っていた頃を思い出すなぁ。また、この頃のハードディスクはプラッタとヘッダが分離されていて、プラッタのみを取り替えることができた。これがDECpack(RK05)で、ヘッダがある方のコントローラはRK11と呼ばれた。容量は2

    PDP-11のブートストラップ - Plan9日記
    yyamano
    yyamano 2010/12/28
  • ソニーグループポータル | Sony History 第12章 苦闘する新分野への進出

    1986年のビジネスショーに、光ディス クなどを活用した電子ファイリングシ ステム「SIOS」を出品 ソニーのデジタル技術、そして、デジタル技術を必要とするコンピューターへの取り組みは、意外に古い。 1967年に発売したSOBAX(ソバックス)という電卓が、いわばソニーのコンピューターの芽生えとなるものだったが、1972年に他社との価格競争の中で電卓ビジネスからの撤退を決意し、その芽は摘み取られた形となった。トランジスタをスイッチング素子に利用したSOBAX自体は、ポータブルコンピューターへの取り組みへのきっかけとなったものの、ソニーの中でビジネスとして育たなかったのである(第1部第13章2話参照)。 世の中では、1971年にビジコン社と米インテル社がマイクロプロセッサーを共同開発。その後パーソナルコンピューター(以下パソコン)が登場するなど、デジタル化傾向が着実に進んでいくのだが、ソニー

    ソニーグループポータル | Sony History 第12章 苦闘する新分野への進出
    yyamano
    yyamano 2010/12/28
    社内ベンチャーから生まれた「NEWS」
  • Ghosts of Unix Past: a historical search for design patterns | Lambda the Ultimate

    Not strictly PLT-related, but Neil Brown has contributed an amazing series of articles to Linux Weekly News: Ghosts of Unix Past: a historical search for design patterns Ghosts of Unix past, part 2: Conflated designs Ghosts of Unix past, part 3: Unfixable designs Ghosts of Unix past, part 4: High-maintenance designs For this series we try to look for patterns which become visible only over an exte

  • pre K&R Cコンパイラ - Plan9日記

    UNIX V6のソースコードを読むときにネックになるものの一つがK&R以前のC言語の仕様である。これをpre K&Rと呼ぶ。マニュアル(「C Reference Manual」)も存在するので、興味のある人はどうぞ。ちなみにUNIX V7では、後にも触れるポータブルCコンパイラを使って書き直された。LionsがV7ベースだったらもっと読みやすかったのにね。 と言っても仕方ないので、pre K&Rの世界に飛び込んでみよう。さっそくコードを見ていく。まずはmalloc、mfreeで空き領域管理に使われてる構造体mapの定義とその実体である。 0141 #define CMAPSIZ 100 0142 #define SMAPSIZ 100 0203 int coremap[CMAPSIZ]; 0204 int swapmap[SMAPSIZ]; 2515 struct map 2516 {

    pre K&R Cコンパイラ - Plan9日記
    yyamano
    yyamano 2010/11/07
    pre K&R Cコンパイラ
  • why GNU grep is fast

    Mike Haertel mike at ducky.net Sat Aug 21 03:00:30 UTC 2010 Previous message: Latest intr problems Next message: why GNU grep is fast Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] Hi Gabor, I am the original author of GNU grep. I am also a FreeBSD user, although I live on -stable (and older) and rarely pay attention to -current. However, while searching the -current mailing list f

    yyamano
    yyamano 2010/08/24
  • The Low Point -- Jeremy Allison Column Archive

    Presentations, tutorials, etc. by Samba Team members are listed in our: Samba Team Calendar Jeremy Allison Column Archives A Tale of Two Standards as Published in Open Sources 2.0 "It was the best of protocols, it was the worst of protocols, it was the age of monopoly, it was the age of Free Software, it was the epoch of openness, it was the epoch of proprietary lock-in, it was the season of GNU,

    yyamano
    yyamano 2010/06/30
    A Tale of Two Standards。
  • Things UNIX can do atomically — Crowley Code!

    Things UNIX can do atomically 2010/01/06 This is a catalog of things UNIX-like/POSIX-compliant operating systems can do atomically, making them useful as building blocks for thread-safe and multi-process-safe programs without mutexes or read/write locks.  The list is by no means exhaustive and I expect it to be updated frequently for the foreseeable future. The philosophy here is to let the kernel

    yyamano
    yyamano 2010/05/13
  • Dirty UNIX Joke - NYT Facebook Rivals | Geekosystem

    yyamano
    yyamano 2010/05/13
    “unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep.”