タグ付けされた質問 「operating-system」

オペレーティングシステム(OS)は、リソースのソフトウェア要求と利用可能なハードウェアの間の抽象的な層である役割を持つ基本的なソフトウェアであり、デバイス(他の基本的なタスクの中でも特に)入出力の管理、メモリの割り当て/割り当て解除、ファイルシステムコンピュータ)は行う必要があります。

4
コンピュータプログラムが実行されるとどうなりますか?
私は一般的な理論を知っていますが、詳細に合わせることができません。 プログラムがコンピュータの二次メモリに常駐していることを知っています。プログラムが実行を開始すると、完全にRAMにコピーされます。次に、プロセッサは一度にいくつかの命令(バスのサイズによって異なります)を取得し、それらをレジスターに入れて実行します。 また、コンピュータープログラムは2種類のメモリを使用することも知っています。スタックとヒープは、コンピューターのプライマリメモリの一部でもあります。スタックは非動的メモリに使用され、ヒープは動的メモリに使用されます(たとえば、newC ++の演算子に関連するすべてのもの) 私が理解できないことは、これらの2つのものがどのように関連しているかです。命令の実行にスタックはどの時点で使用されますか?命令は、RAM、スタック、レジスターに行きますか?




6
TeamViewerはどのように高速ですか?
長さについて申し訳ありません、それはちょっと必要です。 前書き 私は、Windows Vista / 7用のC#4.0でリモートデスクトップソフトウェア(楽しみのために)を開発しています。基本的な障害を乗り越えました:堅牢なUDPメッセージングシステム、比較的クリーンなプログラム設計、ミラードライバー(DemoForgeからの無料のDFMirageミラードライバー)が稼働しており、すべてにNATトラバーサルを実装しています対称NATを除くNATタイプ(企業ファイアウォールの状況に存在)。 画面の転送/共有については、ミラードライバーのおかげで、変更された画面領域が自動的に通知され、ミラードライバーの絶えず変化する画面ビットマップを自分のビットマップにマーシャリングできます。次に、画面領域をPNGとして圧縮し、サーバーからクライアントに送信します。物事はかなり良いように見えますが、十分に速くはありません。VNCと同じくらい遅いです(ところで、私はVNCプロトコルを使用せず、カスタムのアマチュアプロトコルを使用しています)。 最も遅いリモートデスクトップソフトウェアから最も速いリモートデスクトップソフトウェアまで、リストは通常​​、すべてのVNCのような実装で始まり、Microsoft Windowsリモートデスクトップ...、そして... TeamViewerまで続きます。CrossLoop、LogMeInについてはよくわかりません-私はそれらを使用していませんが、TeamViewerは非常に高速です。文字通りライブです。treeコマンドプロンプトでコマンドを実行したところ、20ミリ秒の遅延で更新されました。私のラップトップよりも数ミリ秒遅いWebを閲覧できます。Visual Studioでコードを垂直にスクロールすると、ラグ時間が50ミリ秒になります。これをすべて実現するには、TeamViewerの画面転送ソリューションがどれほど堅牢でなければならないかを考えてください。 VNCは、ポーリングベースのフックを使用して、画面の変化を検出し、ブルートフォース画面のキャプチャ/比較を最悪の場合に行います。最高の状態では、DFMirageのようなミラードライバーを使用します。私はこのレベルです。また、RFBプロトコルと呼ばれるものを使用しています。 Microsoft Windowsリモートデスクトップは、明らかにVNCよりも1段階高くなっています。StackOverflowのどこかから、Windowsリモートデスクトップは画面のビットマップを送信せず、実際の描画コマンドを送信すると聞きました。単純なテキストを送信できるため、これは非常に素晴らしいです(この長方形をこの座標で描画し、このグラデーションで色付けします)。リモートデスクトップは非常に高速で、自宅で作業するための標準的な方法です。また、RDPプロトコルと呼ばれるものを使用します。 今、TeamViewerは私にとって完全な謎です。どうやら、彼らはバージョン2のソースコードをリリースしました(TeamViewerは2012年2月現在のバージョン7)。人々はそれを読んで、バージョン2は役に立たないと言った-それは自動NATトラバーサルによるVNCのほんのいくつかの改善だ。 しかし、バージョン7 ...今は途方もなく高速です。つまり、実際にはWindowsリモートデスクトップよりも高速です。TeamViewerでDirectX 3Dゲームをストリーミングしました(1 fpsですが、WindowsリモートデスクトップではDirectXを実行することもできません)。 ちなみに、TeamViewerはミラードライバーなしでこれらすべてを行います。インストールするオプションがあり、少し速くなります。 質問 私の質問は、TeamViewerはどのくらい高速なのですか?それは不可能であってはなりません。24ビットの深さでも1920 x 1080の解像度がある場合(16ビットの深さはかなり醜いでしょう)、それでも未加工の6,220,800バイトです。libjpeg-turbo(大企業で使用されている最速のJPG圧縮ライブラリの1つ)を使用して30KBに圧縮すると(非常に寛大にしましょう)、TeamViewerのサーバーを介してルーティングするのに時間がかかります(TeamViewerは、トラフィックをプロキシするだけで、企業の対称NATをバイパスします彼らのサーバー)。そして、そのlibjpeg-turbo圧縮は圧縮に時間がかかります。高品質のJPG圧縮は、1920 x 1080のフルスクリーンショットで175ミリ秒かかります。そして、ホストのコンピューターがAtomプロセッサーを実行している場合、その数は増えます。TeamViewerが画面転送をどのように最適化したかがわかりません。繰り返しになりますが、小さなサイズの画像は高度に圧縮されている可能性があります。ただし、圧縮には少なくとも数十ミリ秒かかります。大きなサイズの画像は圧縮に時間がかかりませんが、処理に時間がかかります。どういうわけか、TeamViewerはこのプロセス全体を完了して、毎秒約20〜25フレームを取得します。私はネットワークモニタを使用しましたが、TeamViewerは500 Kbpsと1 Mbpsの速度でも遅延がありません(その転送速度ではVNCソフトウェアは数秒間遅延します)。私の中にtreeコマンドプロンプトテストでは、TeamViewerは1 Mbpsの速度でインバウンドデータを受信し、それでも5〜6 fpsを実行していました。VNCとリモートデスクトップはそれを行いません。では、どうやって? 答えはやや複雑で複雑になるため、TCPの代わりにUDPを使用しているためだと言ってはいけない場合は、$ 0.02を投稿しないでください(実際にTCPを同じように使用していると思いますか)。 StackOverflowのどこかにTeamViewer開発者がいることを願っています。 潜在的な答え 人々が返信したら、これを更新します。 私の考えは、まず第一に、TeamViewerは非常に細かいネットワーク制御を持っているということです。たとえば、大きなパケットをMTUサイズのすぐ下に分割し、トリップを無駄にすることはありません。おそらく、非常に高速なXOR画像比較とともに、画面の変化を検出するためのあらゆる種類のファンシーフックがあります。


6
シェルコマンドを直接実行するのではなく、なぜPythonのosモジュールメソッドを使用するのですか?
os.system()またはでコマンドを実行するのではなく、ファイル/ディレクトリの作成、ファイル属性の変更などのOS固有のタスクを実行するためにPythonのライブラリ関数を使用する背後にある動機は何subprocess.call()ですか? たとえば、なぜ私はos.chmod代わりに使用したいのos.system("chmod...")ですか? シェルコマンドを直接実行するのではなく、Pythonの利用可能なライブラリメソッドをできるだけ使用する方が「pythonic」であると理解しています。しかし、機能の観点からこれを行う背後にある他の動機はありますか? ここでは、単純な1行のシェルコマンドの実行についてのみ説明しています。タスクの実行をより詳細に制御する必要がある場合subprocess、たとえば、モジュールを使用するほうが理にかなっていることを理解しています。

5
PythonでPATH環境変数セパレータを取得するにはどうすればよいですか?
実行可能な検索パスのように、複数のディレクトリを連結する必要がある場合は、OSに依存する区切り文字があります。Windowsの場合';'は、Linuxの場合は':'です。Pythonで分割する文字を取得する方法はありますか? この質問のディスカッションで、Pythonを使用して自分のPythonパスを見つけるにはどうすればよいですか?、それos.sepを行うことをお勧めします。その答えは、それがディレクトリやファイル名のコンポーネントの区切りであることから、間違っているとに相当します'\\'か'/'。

2
Windowsスケジュールタスクをバックグラウンドで実行するように設定するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? Stack Overflowのトピックとなるように質問を更新します。 7年前休業。 この質問を改善する Windowsタスクスケジューラを使用して、スケジュールされたタスクをバックグラウンドで実行するように設定する方法を知っている人はいますか? これを行うオプションはないようです。

5
Pythonでオペレーティングシステムを確認するにはどうすればよいですか?
(スクリプトが実行されるコンピューター上の)オペレーティングシステムを確認したい。 os.system('uname -o')Linuxで使用できることはわかっていますが、コンソールにメッセージが表示され、変数に書き込みたいのですが。 スクリプトがMac、Windows、Linuxのいずれであるかを判別できれば問題ありません。どうすれば確認できますか?

11
OSカーネルとは?オペレーティングシステムとどう違うのですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? Stack Overflowのトピックとなるように質問を更新します。 7年前休業。 この質問を改善する カーネルとオペレーティングシステムの違いを理解できません。両者に違いはありません。カーネルはオペレーティングシステムですか?

13
日常の機械はどのようにプログラムされていますか?
日常の機械(電化製品やデジタル時計など、コンピューターやモバイルデバイスではない)はどのようにプログラミングされていますか?コカコーラの自動販売機のプログラミングにはどのようなコードが含まれますか?私のコーヒーメーカーは、事前にプログラムされた時間をどのように受け入れ、その時間が到着した後、コーヒーのポットの醸造をどのように開始しますか? これらの種類のマシンは内部にオペレーティングシステムを持っていますか、それとももっと基本的なものですか?彼らはアセンブリ、C、または他の言語で書かれていますか? そして、これらのオペレーティングシステムまたは基になるコードシステムをリストするリソースを見つけたいと思います。できれば、ソースコードを使用することもできます。誰かがそのようなリソースを知っている場合(検索しても何も得られなかった)、それは素晴らしいことです。

4
具体的には、UNIXの実時間、ユーザーCPU時間、およびシステムCPU時間とは何ですか?
名前に基づいて推測できますが、具体的には、UNIXの実時間、ユーザーCPU時間、およびシステムCPU時間とは何ですか? user-cpu時間は、user-codeの実行に費やされた時間であり、kernel-cpu時間は、特権操作(ディスクへのIOなど)が必要なためにカーネルで費やされた時間ですか? この測定値の単位は何ですか。 そして、実時間は実際にはプロセスがCPUに費やした秒数ですか、それとも名前が誤解を招くだけですか?


14
PHPスクリプト-LinuxまたはWindowsのどちらで実行されているかを検出しますか?
WindowsシステムまたはLinuxシステムに配置できるPHPスクリプトがあります。どちらの場合も異なるコマンドを実行する必要があります。 自分がいる環境をどのように検出できますか?(できれば、巧妙なシステムハッキングではなくPHPを使用することが望ましい) 更新 明確にするために、スクリプトはコマンドラインから実行しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.