プロセスとマルチタスクの実現 Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。 psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 また、これらのプロセス全てが同時に平行して動作しているように見えます。 これはどのようにして実現されているのでしょうか。 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません1。 そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 プロセスの切り替え CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替
Microsoftの最高経営責任者(CEO)であるSatya Nadella氏は「MicrosoftはLinuxが大好き」だと宣言し、実際にデータセンタースイッチ向けのLinuxベースOS「Azure Cloud Switch」を開発しているが、それでもMicrosoftのLinuxに対するラブコールを真に受ける人々はあまりいなかった。そうした中、Microsoftは「HDInsight on Linux」の正式リリースを発表した。 MicrosoftはCanonicalおよびHortonworksとパートナーシップを締結している。Azureを開発および運用するMicrosoft、Ubuntuの開発元であるCanonical、ビッグデータの分散処理ソフトウェアHadoopの主要デベロッパーであるHortonworksの3社が密接に協力することで、Azure上のUbuntuでHDInsigh
問題は表題の通りで、下記のようにps出力のコマンド部分が途中で切れる。 root:~# ps -ef | grep -i java agentuse 7626 10046 0 11月 12日 ? 0:00 /u02/app/oracle/Middleware/agent/core/12.1.0.1.0/jdk/bin/sparcv9/java -Xmx128M agentuse 24384 10046 0 11月 06日 ? 0:00 /u02/app/oracle/Middleware/agent/core/12.1.0.1.0/jdk/bin/sparcv9/java -Xmx128M agentuse 10046 10037 0 11月 05日 ? 180:55 /u02/app/oracle/Middleware/agent/core/12.1.0.1.0/jdk/bin/spar
const修飾子についてまとめてみます。 const修飾子とは const修飾子とは、その変数の値を変更してはいけない(つまりは定数である)、ということを示す修飾子です。宣言の型名の部分の前か後につけて使います。例えば、次のような感じになります。 int test() { const int x=3; printf("%d\n",x); //定数を書き換えるわけではないので問題なし x=4; //定数を書き換えようとしているのでコンパイルエラー(error: assignment of read-only variable ‘x’) return x; } なお、個人的な感覚としては、const修飾子は前につけるのが一般的なのではないかと思います。 ポインタ変数におけるconst修飾子とは ポインタ変数におけるconst修飾子は付ける位置によって、次の3つに分かれます。 ポインタ変数からの
FILE *fp = fopen(filepath, "r"); if(fp == NULL){ // エラーハンドリング }else{ // ファイルを開いてなんか処理する fclose(fp); } fopenは失敗したときにNULLを返しますが、 これだけですと何故失敗したのかを判断できません。 この問題は、失敗時に-1やNULLを返すシステムコールや関数では常に起きうる問題です。 このような問題が起きた場合には、errnoを利用することでエラーの種類を特定できる場合があります。 エラーを判断するerrno errnoは内でグローバルに定義された整数値です。 errno.h内にはエラーに対応した定数が定義されており、 エラーが起きた場合にerrnoに値を設定するシステムコールや関数があります。 何かしらの処理に失敗した場合にはこの値を確認することで、 エラーの種類を特定できる場合があ
何に関連して記事を書こうと思った訳でもないです。たんなる一人コードリーディングです。 GNU CoreUtils に入ってる rm を読みました。 GNU Project Archives http://ftp.gnu.org/gnu/coreutils/ 読んだのは coreutils-8.17.tar.xz に入ってる src/rm.c preserve_root 変数は 203行目にある main で int main (int argc, char **argv) { bool preserve_root = true; struct rm_options x; true に初期化されていて319行目 if (x.recursive && preserve_root) { static struct dev_ino dev_ino_buf; x.root_dev_ino = get
some.cpp の113行目にbreakを打ちます. 113行目に有効なコードが存在しない場合でも、 付近の有効なコードにbreakを打ち込んでもらえます。 break-point 一覧表示 Current breakpoints: 4: name = 'main', locations = 1, resolved = 1, hit count = 1 4.1: where = gsh`main + 30 at gshell.cpp:545, address = 0x00000001000031ee, resolved, hit count = 1 5: name = 'Doc2Win::UpdateView()', locations = 1, resolved = 1, hit count = 0 5.1: where = gsh`Doc2Win::UpdateView() + 12
#include <stdio.h> int main(int argc, char **argv) { char *test = "This is a debug demo."; char *name = "edo"; int age = 20; printf("Name: %s, Age: %d\n", name, age); return 0; } そしてこれをコンパイルするとhogeファイルができるのでここからデバッグ開始です。 ファイル名を指定してlldbを起動 lldbの起動にはいくつかあるみたいですが、一番シンプルなのはデバッグ対象のファイルを指定することでしょう。 以下のように、先ほどコンパイルしたファイルを指定して実行してみます。
前回に続き、今度はC言語でコマンドを作ってみた。既存のコマンドにはない新しい機能が欲しかったら、多分、C言語で実装することになるのだと思う。OSXのAPIを利用するにも、ObjectiveC(ベースがC言語)の流儀でアクセスすることになるし。 作業環境 MacBook OSX 10.6.2 Developer Toolsをインストール済 基本(Xcode利用) Xcodeを起動する。 新規 Xcode プロジェクトを作成。 Mac OSXのApplication >> Command Line Toolを選択して、右下の[選択...]ボタン。 プロジェクト名にhelloと名前を付けて保存した。 プロジェクトが開いたら、ビルドと実行ボタンを押す。 デバッガコンソールが開いて「Hello, World!」と表示された。 すでに、helloコマンドは出来上がっていた! コンパイルされた実行コード
size_tが何bitになるかは環境によって定義が異なります。 そのため、以下のコードは多くの32bit下で上手くいきますが、64bit化などで環境が変わると動かなくなります。 #include <string> int main () { std::string test = "test text"; unsigned int pos = 0; printf("size_t %lu\n", sizeof(size_t)); pos = test.find("ms"); printf("pos %lu, %lu\n", (size_t)pos, std::string::npos); if(pos != std::string::npos){ std::string text = test.substr(pos); printf("%s\n", text.c_str()); } retur
size_t型 C言語では、長さ、大きさ、サイズを表現する型として、 size_t の名前の型が使われます。 sizeof演算子や、strlen関数など、byte数や長さを表現するところで使われる型です。 この型は、<stddef.h>で定義される型ですが、通常は<stdio.h>や<stdlib.h>をインクルードすれば使えるようになる型です。 unsigned int をtypedef で、size_t の名前に定義されることが多いようですが、処理系依存の型でそう決まっているわけでもありません。 極端に大きな値でないと分かっている場合は、int型の変数で管理しても構いません。 ですが、その場合型が合わないので警告(warning)が指摘されることがあります。 その場合は、キャスト演算(int)で警告を抑えてください。 以下にその例を示します。 strlen、sizeof、fwriteの
結婚指輪などの原材料として人気のプラチナが大きく値下がりしている。中国の景気減速などで、使い道の大半を占める工業用の需要が減退。代表的な貴金属の金を下回る価格が続き、貴金属店ではプラチナの「延べ棒」を買い求める個人客が増えている。 「今が買い時だ」。60代の男性は9月中旬、東京都内の大手貴金属店を訪れ、プラチナの延べ棒100グラム(約43万円)を現金で買った。株式投資もしているが、「投資の一環」でプラチナを買ったという。 金やプラチナを販売する田中貴金属工業では、今年1~6月のプラチナの販売量が前年比2・2倍の4・2トンにのぼる。全国で最も来客数が多い銀座本店では7月、前年の32倍も売れた。同店の伊藤隆弘チーフマネージャーは「予想以上の売れ行き。地金の製造量を増やして対応している」と話す。売れ筋は50グラムと100グラムの延べ棒で、資産目的で購入する60代以上が多いという。 江戸時代から続
不妊治療のクリニックに勤めて早5年。看護師歴8年。 不妊治療歴が長い患者は多い。 転院を繰り返している患者も多い。 当院の平均年齢は40歳を超えている。 採卵がうまくいかない。 受精がうまくいかない。 受精卵がうまく成長しない。 移植しても妊娠しない。 妊娠しても卒業できない。 女性は35歳を過ぎると、妊娠率は下がりはじめ流産率は上がっていく。 超えなけらばいけないハードルは多く、そして高い。 「不妊カウンセラー」という資格をご存じだろうか。 不妊治療を行うカップルに対して、適切な医療情報とカウンセリング支援を行うというものだ。 なぜ「糖尿病カウンセラー」はいないのか。 なぜ「透析カウンセラー」はいないのか。 なぜ不妊治療は「心を病んで」しまうのか。 「心を病んで」いる患者の中には、医療者に攻撃的になることでSOSを発信する患者もいる。 異常にクレームが多い。医療者に対して攻撃的な態度をと
四式戦闘機 @ki84type4 なんか組体操のピラミッドの話題が続いてるが、中学の頃、組体操からピラミッドが廃止されたことがある。事故が起きたのではなく、理科の先生(若い女性)が授業中にふと言ったことが発端だった。 四式戦闘機 @ki84type4 「運動会の組体操の練習してたねー、あれ大変そうだね」という話の後、先生は急に黒板にピラミッドの図を描き始め計算しはじめた。授業の終わりごろだったのでチャイムが鳴ると、先生は挨拶もそこそこに飛び出していった。 四式戦闘機 @ki84type4 その次の日、体育の先生から「組体操のピラミッドはやらないことにした」と通達があった。何があったのかは結局聞かされなかったが、噂では例の理化の先生が体育の先生に直談判し、ピラミッドがいかに危険か納得させたらしい。俺はいまでもあの先生のことは尊敬している。あまり美人ではなかったが。
お疲れ様です。ディレクターの鮫島です。 今年もあと2ヵ月で終わりですね。来月になれば後1ヵ月。1年経てばやはり後2ヵ月です。 そうして人は歳をとり、一生を終えていくのですね。人は死んだら一体どうなるのでしょうか… さて、今回はサイト内に設置されるFacebookいいね等のソーシャルボタンをまとめてみました。もはやFacebookいいねとTweetボタンはほぼ必須になったこのご時世、その他にも様々なソーシャルボタンがあるのですが、色々ありすぎてボタンの役割とか種類がごちゃごちゃになっていませんか? そんなあなたはこの記事を見て、「あ、今はこんなのがあるのね」と多分大体ざっくりとわかってもらえると思います。 シェア系 Facebook もうほとんどのWebサイトで見かけますね。ここ1年で携わったプロジェクトで拡散がNGなクローズドのサイト以外ではいいねボタンを付けなかった事はありません。 名称
Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise. Git LFS has reached the 1.0 milestone. Download today at https://git-lfs.github.com/.
deppbot ensures that your Ruby applications are kept updated, always! Based on your configured schedule, deppbot will run bundle update on your Ruby app and send the result as a Pull Request to GitHub. deppbot will also check your app periodically for any RubyGem vulnerabilities and fix it automagically. Update Your App Now Do, Don't TellYour time is precious. deppbot doesn't just tell you that yo
我々日本人は世界的に見て、まだまだオンラインゲームを遊ぶ人間の中で、マイノリティだ。 必然的に、海外の人々と一緒に遊ぶことを余儀なくされるし、少なくとも、我が物顔で母語の中国語やタイ語でチャット欄を占領することは、まずもってない。 肩を寄せあい、小声で「hi」とか「gj」とか「brb」とか、典型的なスラングを使っては、外国人同士の本格的な会話になるとつい萎縮してしまう、悲しい流浪の民なのだ。 (日本人の英語はぎこちなさの中に、妙な律儀さがある) では何故、我々はタイ人や中国人、韓国人のように、ゲーム内で自国の言葉で話せないのだろうか?別に英語以外はマナー違反というはずはない。『MGSV』ではないが、人は国語に住むというじゃないか。 しかし、恐らく日本語がチャット欄を占領する日は、もう訪れないと思う。 というのも、迅速なコミュニケーションが必要なオンラインゲームにおいて、日本語で会話しようと
米Googleの新Nexus端末、「Nexus 5X」と「Nexus 6P」の担当チームが9月30日(現地時間)、米ソーシャルニュースサイトredditで「Ask Me Anything(AMA、なんでも質問して、という意味)」で多数の質問に答えた。 質問に答えたのは、Androidのエンジニアリング担当副社長のヒロシ・ロックハイマー氏とデイブ・バーク氏(29日の発表イベントにも登壇した)、Nexus 5X担当のクリシュナ・クマー氏、Nexus 6P担当のサンディープ・ウラチ氏の4人。 Nexus 5XのXとNexus 6PのPの意味は? XはNexusブランドのコア(中心部、核心)という意味(それにかっこいいし)、PはPremium(高品質な)という意味だ。 LG ElectronicsとHuaweiをパートナーに選んだ理由は? Nexus 5(LG Electronics製)のファンが
2015年9月に開かれたZabbix Conference 2015の後にZabbixの本社を訪ね、CEOであるアレクセイ・ウラジシェフ氏、日本法人であるZabbix Japan LLCの代表、寺島広大氏にインタビューを行った。 まず最初の質問は、ZabbixがいわゆるアメリカなどのIT企業とかなり異なる特異な企業であるその理由だ。今回のカンファレンスでも大げさなプレゼンテーションも無く淡々と次期バージョンの説明を行い、会場からの質問に答え、時に反省し、ユーザーの意見を取り入れる様は大仰な演出が当たり前のIT系カンファレンスとは様子が異なっていた。 ーーーなぜZabbixは普通のアメリカのIT企業のようでは無いのでしょう? それは私たちが普通の会社だからです(笑)。実際に私たちがやっていることは、良い製品を作る、これだけで、これは創業の時から何も変わっていないのです。毎年の売り上げを報告し
古臭い決済サービスの定義:煽る用のHPには決済手数料を掲載せず、個人情報を与えないと手数料すら教えてくれないサービス。だいたいのサービスの料金体系が複雑すぎて、騙されやすい。 今時の決済サービスの定義:HPに決済手数料を明白に掲載している。 そういう古臭い決済サービスは使わない方がオススメです。さて、今時の決済サービスも幾つかあるので、それぞれの違いがあって、ここでリストして比較してみる。 注意: すべての手数料は調べた現時点(2015-10-02)のものです Update 1: 2016-02-01 WebPayの情報を追加した Update 2: 2016-02-01 あらゆる決済手数料のリスト@おちゃのこのページ Stripe シンプル!簡単!分かりやすい!JCB以外のメジャーのクレカを全部サポートしている。JCBをサポートしていないのはちょっと残念。 トランザクションごとの手数料は
ここからstatic buildをとってくる 最近のffmpegはすごくてlibcその他のライブラリをすべてstatic linkして環境非依存にしたバイナリを配ってる。 したがって以下のようにwgetして解凍して/usr/local/binにでも置けばそれで動いてしまう。 $ wget http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz $ tar xvf ffmpeg-release-64bit-static.tar.xz $ sudo cp ./ffmpeg-release-64bit-static/ffmpeg /usr/local/bin なお、標準のlibcと結合していない関係でDNS resolutionができないという問題があり、これはインターネット上の動画を直接指定してダウ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く