アプリ版:「スタンプのみでお礼する」機能のリリースについて

バックグラウンドでの処理について

TVを録画して編集したり、エンコードなどをすることに
パソコンを使用しております。

自分が使用しているパソコンが非力ですので、エンコー
ドやTVを録画する際には家族のパソコンを使用しており
ます。(家族のPCはAthlon2400、自分のPCはPentiumiii


ただ家族のパソコンなので家族があまり使用しない、夜
間にエンコードをするようにしているのですがエンコー
ドが長引くと日中までかかってしまうこともあります。
以前長時間動かしていたエンコーダを落とされてしまっ
たこともあり、エンコードをかけるときは神経を使いま
す。

そこでバックグラウンドでエンコーダを走らせたいので
すがWindowsXPでこれは可能でしょうか。

Unixやサーバ系Windowsなどでは同時に複数のユーザを
ログインさせることが可能なようですが、WindowsXPで
すと複数ユーザの登録は可能ですが、平行してログイン
することは制限されているようです。
(片方のユーザーは強制的にログオフされる)

ためしに家族のユーザーでログインし、「別資格で実
行」をしてみたのですが、これですとユーザーの実行権
限は確かに家族のユーザー以外で動くのですが、エンコ
ーダの画面が出てきてしまうのでうまくいきませんでし
た。
うまくバックグランドで動かす方法はありますでしょう
か。

※上に書いたようにXPで同時にログインした場合、片方
のユーザーは強制的にログオフされますが、このときロ
グオフしたほうのタスクそのものは動いているのでしょ
うか?それとも一時的にストップしてしまう?のでしょ
うか。

A 回答 (4件)

■音について



当方でテストに使用したプログラムは「5秒ごとに画面に1行ずつ時刻を表示し、同時にビープ音を鳴らす」というものです。

ユーザAでログオンしこれを実行した状態で簡易切り替えを行い別のユーザBでログオンすると、デスクトップはユーザBのものですが、5秒おきにビープ音が鳴りました。

そして、ユーザBをログオフさせユーザAに復帰すると、画面には切り替え前から5秒おきの時刻表示が途切れずに表示されていました。

ですので、DVDを再生したまま簡易切り替えを行えば、別のユーザに切り替わってもDVDの音声は出たままになると思われます。


■「簡易切り替え」と「別のユーザとして実行」のメモリ消費量

細かく見れば、おそらく簡易切り替えのほうがメモリの消費量が数MB~十数MB程度多いと思います。

ユーザに関係なくシステム自体が消費するメモリ量は同じですし、どのような方法であっても別のユーザの権限でプログラムを実行する場合はそのユーザに関する情報はメモリ上に展開されるので、ここまでは必要とするメモリの量は同じです。

しかし「別のユーザとして実行」では単一のデスクトップを使用するのに対して、「簡易切り替え」ではユーザごとに別々のデスクトップを使用するので、個々のデスクトップの状態を覚えておくためのメモリが余分に必要になります。

この回答への補足

xcrOSgS2wYさん丁寧なご返事ありがとうございます。

エンコーダを動作させますと場合によっては100MB超のメモリを消費すること
がありましたので、少しでもメモリ消費量が少ない方がよい(家族が途中で
パソコンを使用する際極端遅くなっては困ると思い)、と思って先の投稿い
たしました。

xcrOSgS2wYさんのレスを見てよくわかりました。
簡易切替だと別ユーザーとして実行よりもかなりメモリを消費するのでは?
と思っておりましたが、もしも数MB程度の消費量の違いということならば簡
易切替でも何とかなりそうです。

ところで簡易切替でも実際にはプログラムが継続されるということはXPと2000
Server、2003Serverが違うのは同時にログインできるかどうか、の1点なので
しょうか。

またXPの別資格で実行を選択した際、完全にバックグラウンドで実行すること
は無理なのでしょうか。
現在試した感じでは、別資格で実行した場合は別ユーザーのデスクトップで
も操作が可能なようです。
特定のユーザーで実行できないソフトを動かす場合にはよさそうですが、
バックグラウンドで動かすのはなんとなく難しそうです。

補足日時:2005/07/18 12:23
    • good
    • 0

■XPと2000 Server/2003 Serverの違いについて



Windows 2000 ServerやWindows 2003 Serverでは、Terminal Servicesという機能で同時に複数のユーザがそれぞれ個別のデスクトップを占有して操作することができます。

Windows XPの簡易切り替え機能はこのTerminal Servicesの簡易版で、同時に複数のユーザがそれぞれ個別のデスクトップを占有できるところまでは同じですが、「操作」できるユーザはそのうち1人だけに限られます。


■バックグラウンドでの実行について

Windowsのプログラムを実行すると、プログラムはユーザに対してウィンドウ等を使って情報を表示したりユーザから入力を受け取ったりします。このことを「対話的に動作する」と言います。(一部には対話的な動作を行わないプログラムもあります。)

プログラムは対話的に動作する際、必ず、そのときにアクティブな「デスクトップ」を使用します。つまり、プログラムが情報を表示する場合、その情報はアクティブなデスクトップに表示されるということです。この動作は(プログラム自体にデスクトップ切り替え機能が内蔵されているのでない限り)変えることはできません。

プログラムがウィンドウ等を表示するのを全く見えないようにしたい場合、そのウィンドウ等が表示されているのとは別のデスクトップに画面を切り替えるしかありません。Windows XPでは、簡易切り替えを行うとそれぞれのユーザごとに個別のデスクトップが作成されるので、いったんプログラムを起動してから簡易切り替えを行い別のユーザでログオンすれば、別のデスクトップ画面に切り替わります。

「別の資格で実行」では、デスクトップはその時点で使用しているものを使うため、ウィンドウが見えてしまうことは避けられません。それさえ気にしなければ、実行自体は停止することなくバックグラウンドで行われます。

この回答への補足

xcrOSgS2wYさん度々のご返事ありがとうございます。

>Windows XPの簡易切り替え機能はこのTerminal Servicesの簡易版で、同時に複数のユーザがそれぞれ個別のデスクトップを占有でき
>ところまでは同じですが、「操作」できるユーザはそのうち1人だけに限られます。

XPは家庭用?ということで機能が削られているのですね。
ターミナルサービスのような機能は家庭用でも有用だと思うのですが(現在誰かログインし
ているかどうか気にすることなく外出先からログインしたり)、こういった機能がXPにも機
能追加できるといいのですが。


>プログラムがウィンドウ等を表示するのを全く見えないようにしたい場合、そのウィンドウ等が表示されているのとは別のデスクトッ
>プに画面を切り替えるしかありません。Windows XPでは、簡易切り替えを行うとそれぞれのユーザごとに個別のデスクトップが作成され
>るので、いったんプログラムを起動してから簡易切り替えを行い別のユーザでログオンすれば、別のデスクトップ画面に切り替わります。

「別の資格で実行」では画面上に出てしまうんですね。
とりあえずエンコーダを画面に出さないようにしたかったので、簡易切り替えで対応したい
と思います。
出来たら簡易切り替えでメモリがどの程度消費されるのかも確認してみようと思います。

補足日時:2005/07/19 09:06
    • good
    • 0

そもそも、バックグラウンドでエンコーディングをすること自体 熟考が必要です。


エンコーディングは CPU にとってかなり負担の掛かる作業です。ユーザーの切り替えなどをしても、裏でエンコーダーが働いていればメインの作業の速度に支障をきたす可能性があります。
エンコーディングプログラムの優先度を下げるとか、あるいは日中はエンコーディングを中断して夜に再開するとか、何らかの対策は必要だと思います。

> WindowsXPですと複数ユーザの登録は可能ですが、平行してログインすることは制限されているようです。

厳密に言うと、複数ユーザが同時に「ログオン」することは可能ですが、一度に一人しか「接続」することはできないということです。「接続」を「切断」しても「ログオフ」しなければそのユーザのプログラムは裏で動き続けています。
ただし「ユーザーの簡易切り替え」を無効にすると、一度に一人しか「ログオン」できなくなります。この場合、「ログオン」と「接続」はイコールです。

この回答への補足

UKYさんご返事ありがとうございます。

>そもそも、バックグラウンドでエンコーディングをすること自体 熟考が必要です。

エンコーダの占有度がかなり高いので、フォアグラウンドの快適性に
かなり影響が出ることはわかっているのですが、エンコーダの中には
中断が出来ないものが多いのでとりあえずパソコンを頻繁に使わなさ
そうな夜間、日にちを選んで実行しております。

少し話題から外れるのですが、
WindowsMediaエンコーダ、AVIUTLなどを使用しておりますがこれらを
途中で一時的に中断させることは可能でしょうか。
(さらに出来ればその状態でスタンバイをしても再開が可能な方が時
間の調整がつくのですが・・・)


>エンコーディングプログラムの優先度を下げるとか、あるいは日中はエンコーディングを中断して>夜に再開するとか、何らかの対策は必要だと思います。

使用しているAVIUTLなどでは優先度の設定がありますが、Windows
Mediaエンコーダなどでは特に優先度の設定はありません。
タスクマネージャ上で優先度が設定できますが、これでフォアグラウ
ンドに影響が無いくらいに優先度を落とすことは出来ますか。

またAVIUTLのようにソフト自体に優先度の設定がある場合、プロセス
の優先度とは個別なのでしょうか。


>厳密に言うと、複数ユーザが同時に「ログオン」することは可能ですが、一度に一人しか「接続」>することはできないということです。「接続」を「切断」しても「ログオフ」しなければそのユー>ザのプログラムは裏で動き続けています

これはXPの制限なのでしょうか。
Windowsのサーバー系OSでは同時に接続することが可能なようですが、
家庭用のWindowsではこれは出来ないことなのでしょうか?

また簡易切替と別資格で実行の場合最大でどの程度のメモリ消費量の
違いがあるのでしょうか。

補足日時:2005/07/18 12:56
    • good
    • 0

Windows XPの「ユーザの簡易切替」を使用すると一時的に他のユーザをログオンさせることができます。



このとき、元のユーザはログオフさせられますが、現在実行しているプログラムはそのまま動作し続けます。一時的に使用しているその「他のユーザ」がログオフし元のユーザに切り替われば、再度操作ができるようになります。

なお、ユーザ切替により一時的にログオフした場合、それまでに実行していたプログラムの「画面」は見えなくなりますが、「音」は出続けます。音の出るプログラムの場合はちょっとびっくりしてしまうかもしれないので、ユーザ切替の前にプログラムから音が出ないようにしておいたほうがいいかもしれません。

「ユーザの簡易切替」を使用するには、「コントロールパネル→ユーザーアカウント→ユーザーのログオンやログオフの方法を変更する」で「ようこそ画面を使用する」と「ユーザーの簡易切り替えを使用する」にチェックを入れてください。

この回答への補足

xcrOSgS2wYさんありがとうございます。

>元のユーザはログオフさせられますが、現在実行しているプログラムはそのまま動作し続けます。

ということは簡易切替でもプログラムが中断させられるわけではないのですね。
疑問なのは音が出てしまう、という件なのですが、たとえばDVDを再生したまま
簡易切替をした場合、切り替えたユーザー側にも音が出続けるんでしょうか(笑)。

使用しているエンコーダは特に音は出ないのですが、エンコードが終了したとき
の画面も一切出なければよいのでもしそれが出来そうならば簡易切替でもいけそ
うですね。

簡易切替ということでひとつ疑問なのですが、簡易切替の場合、複数のユーザー
がログインすることで各々が実行しているプログラムはもちろんですが、それぞ
れのユーザーの環境もメモリに読み込むことになると思うのです。
前述した方法「別のユーザーとして実行」の場合ですと現在ログインしているユ
ーザーの環境上で"別資格として"そのプログラムを実行する分メモリが節約され
るように感じるのですが、この考え方は正しいでしょうか。

補足日時:2005/07/18 00:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!