問題タブ [context-switching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
474 参照

assembly - printfを呼び出すと、segfaultingが防止されます

ここにIT工学の学生。コンテキストの切り替えを試してみるように求められましたが、ある特定の割り当てでは、かなり大雑把な試行/スローシステムを実装しました。これが私たちが書いてきたコードです:

pctxは、2つのintを保持する単純な構造体へのグローバルポインタです。fは、throw()を呼び出して42に#defineされたリターンコードを送信する関数です。main()は、基本的にpctxを割り当て、result = try(f、0)を実行します。結果を出力します。結果は42になると予想しています。

これで、throw()でMAGICPRINTを見つけたかもしれません。完全に明確ではない理由でここにあります; 基本的に、ほとんどの(すべてではない)学生はthrow()内でsegfaultingしていました。この関数内でprintf()を呼び出すと、プログラムは一見正しく機能するように見え、教​​師はシステムコールも同様に機能すると考えています。

あまり説明がつかなかったので、gcc -Sで生成されたアセンブリコードを両方のバージョン(printf()ありとなし)で比較してみましたが、あまり理解できませんでした。throw()の開始中括弧(33行目)にブレークポイントを設定し、gdbで逆アセンブルすると、次のようになります。

printf()なし:

printf()を使用する場合:

どうしたらいいのかよくわかりません。明らかに状況は異なりますが、どちらの場合も何が起こっているのかを理解するのは非常に難しいと感じています...したがって、私の質問は、本質的に、printfを呼び出すとsegfaultではなくthrowを作成する方法です。

0 投票する
0 に答える
220 参照

linux - 私のLinuxサーバー「作成されたプロセスの数」と「コンテキストスイッチ」は信じられないほど速く成長しています

編集: ここでのより詳細な回答: https://serverfault.com/questions/454192/my-linux-server-number-of-processes-created-and-context-switches-are-growing

サーバーで奇妙な動作があります :-/. VPSです。実行するとcat /proc/stat、毎秒約 50 ~ 100 のプロセスが作成され、約 800k ~ 1200k のコンテキスト スイッチが発生することがわかります。その情報はすべて、サーバーが完全にアイドル状態であり、トラフィックもプログラムも実行されていません。

上は負荷平均が 0 で、CPU が 100% アイドル状態であることを示しています。

不要なサービス (httpd、mysqld、sendmail、nagios、named...) をすべて閉じましたが、問題は引き続き発生します。私も毎秒ps -ALfやっていますが、変化は見られません。ps毎回新しいプロセスが作成されるだけで、PIDは以前と同じ+ 1であるため、新しいプロセスは作成されないため、成長するプロセスcat /proc/statはスレッド (はい、次のようprocesses/proc/statスレッドの作成もカウントされているようです: http://webcache.googleusercontent.com/search?q=cache:8NLgzKEzHQQJ:www.linuxhowtos.org/System/procstat.htm&hl=es&tbo=d&gl=es&strip =1 )。

私は/procdirに変更し、 (カーネルのものを含む)でcat [PID]\statusリストされているすべてのPIDを処理し、どのプロセスでも同じ速度で成長していません(わずか数十/秒)。lsvoluntary_ctxt_switchesnonvoluntary_ctxt_switchescat /proc/stat

私はstrace -p PIDすべてのプロセスにも行ったので、プロセスがスレッドなどを作成しているかどうかを確認できますが、少し動きのあるプロセスは唯一のプロセスであり、データが端末に送信されているため、sshその動きはread/操作です。write

その後、私はそれが同じ速度で成長しているのvmstat -sを見ました。http://linux.die.net/man/2/forkが言うように、それぞれが新しい PID を作成しますが、サーバーの PID が増えません!forksprocesses/proc/statfork()

私が考えることができる最後のことはproc/statvmstat -s表示されるすべてのプロセスデータが同じマシンに保存されている他のすべての VPS と共有されているということですが、それが正しいかどうかはわかりません...誰かがこれに光を当てることができれば、私は本当に感謝します。

0 投票する
1 に答える
1064 参照

c - そのプログラムが実行されたときのacプログラムのコンテキストスイッチの数を数えます

プログラムの実行中に Windows OS によって実行されるコンテキスト スイッチの数を出力したいと考えています。

0 投票する
1 に答える
339 参照

sql-server-2008 - カスタム sp_who/sp_whoUsers

開発環境のクライアントがDW SQL 2K8R2プロセスを表示して強制終了できるようにする必要がありますが、この人には許可したくありませんVIEW SERVER STATE(彼は元 SQL データベース管理者であり、潜在的な内部脅威と見なされています)。

以下を実行すると、ユーザーが現在の権限で sp を実行したかのように 1 行が返されます。

「with execute as」を「self」に変更しても(私はシステム管理者です)、同じ結果が返されます。を呼び出す代わりに以下も試しましたが、sp_who1行しか返されません。

select * from sysprocesses プロシージャの実行中、コンテキストが切り替えられていない、または持続していないようです。そして、これは、この人がプロセスを「殺す」ことをどのように許可するかについては言うまでもありません。

この一見ユニークな問題に対する解決策や提案はありますか?

0 投票する
1 に答える
559 参照

c++ - プロセス間のコンテキスト切り替え時間を最小限に抑える

共通のセマフォを共有する4つのプロセスがあり、すべてのプロセスの優先度は同じです。ロック内の重要な領域には、fflush() 呼び出しを含む読み取り/書き込み操作があります。

ログで、特定のプロセスからセマフォを解放した後、他のプロセスがロックを取得するのにかなりの時間がかかることを確認しました。

4 つのプロセスすべてが同じ時点でロックされるため、組み込みデバイスでパフォーマンスの問題が発生します。ロックがスレッド間で共有されている場合、 pthread_cond_t を使用して切り替え時間を最小限に抑えることができます。では、プロセス間の切り替え時間を最小限に抑えるにはどうすればよいでしょうか。

0 投票する
1 に答える
3431 参照

c++ - C ++でのクリティカルセクションとコンテキスト切り替えの入力

私はスレッド プログラミングが初めてで (現在、会社のプロジェクトで win32 と c++ を使用する必要があります)、クリティカル セクションに入ることはコンテキストの切り替えがないことを意味しますか? スレッドがクリティカルセクションを離れるまでリソースをロックするということですか?

また、私は現在「Win32 でのマルチスレッド アプリケーション」の本を読んでいますが、良さそうですが、初心者が win32 でスレッドを学習するための、より読みやすく最新の本はありますか?

よろしくお願いします^_^

0 投票する
2 に答える
838 参照

database - Grails - ユーザーに基づいてデータ ソースを切り替える

さまざまなユーザー (顧客) が組織のデータのみを含むさまざまなデータベースを指す必要がある Grails Web アプリケーションを開発しています。残念ながら、分離されたデータベースは要件であり、全員に対して 1 つの Web アプリケーションのみを使用できるようにするよう求められています。

ただし、Grails は、1 つのデータベースに接続する単一のデータソース プールのみを想定しています。

ログインしているユーザーに基づいて、セッションごとにデータベース接続を切り替えられるようにしたいと考えています。ここでは、異なる接続が BootStrap init() 中にプロパティ ファイルから読み取られます。

これまでのところ、競合状態がないように見える解決策を見つけることができず、見つけることができるプラグインはなく、一般的な問題ではないようです.

私たちの最も有望な方法は、カスタムの動的データ ソースを作成し、Bootstrap でセットアップして組織 -> dataSource のマップを定義し、Bootstrap で定義されたクロージャを利用して GORM 動作の前に適切な dataSource を見つけることでしたが、これは競合状態を引き起こすようです。レイテンシです。

この切り替えを合法的に実行する方法を知っている人はいますか?

ありがとう

0 投票する
2 に答える
107 参照

windows - なぜ1を眠るのですか?

無限ループまたは他の場所で、スリープ(0)してOSを離れてコンテキスト切り替えを実行し、別のスレッドを実行できることを理解しています(存在し、実行する準備ができている場合)。ここで、sleep(0) の代わりに sleep(1) を使用するコードを多数見ました。

これは最適ですか?
それに関するドキュメントはどこにありますか?

0 投票する
2 に答える
455 参照

android - 別のアクティビティを開くことができるように、TextSwitcher でテキストをクリック可能にする方法は?

アプリにテキスト スイッチャーがあります。すべてが機能しています。テキストが切り替わりますが、テキスト スイッチャーのテキストがクリックされたときに別のアクティビティを開きたいです。Androidでこれを達成するにはどうすればよいですか??

前もって感謝します :)

テキストスイッチャーのコードは…