JP2004334384A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2004334384A
JP2004334384A JP2003126891A JP2003126891A JP2004334384A JP 2004334384 A JP2004334384 A JP 2004334384A JP 2003126891 A JP2003126891 A JP 2003126891A JP 2003126891 A JP2003126891 A JP 2003126891A JP 2004334384 A JP2004334384 A JP 2004334384A
Authority
JP
Japan
Prior art keywords
memory card
task
message
removal
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003126891A
Other languages
English (en)
Inventor
Takehiko Ogura
健彦 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon I Tech Inc
Original Assignee
Canon I Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon I Tech Inc filed Critical Canon I Tech Inc
Priority to JP2003126891A priority Critical patent/JP2004334384A/ja
Publication of JP2004334384A publication Critical patent/JP2004334384A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】メモリカード未装着時のメモリカードのアクセス要求の発生を抑止する。
【構成】ハンドラ202は、メモリカード10の挿抜をメッセージ210でメディア検出タスク204に伝えると共に、フラグレジスタ206に挿抜状態を格納する。メディア検出タスク204は、ハンドラ202から複数のメッセージ210を受け取った場合に、最後に受け取ったメッセージのみを抽出し、フラグレジスタ206を参照して抽出したメッセージが有効性を判定し、有効であった場合にのみ、メッセージ212をメディア利用タスク209に通知する。メディア利用タスク208は、メディア検出タスク204とセマフォを介して排他動作し、受け取ったメッセージ212が示すメモリカードの状態とフラグレジスタ206が示すメモリカードの状態が共に装着で一致した場合にのみ、メモリカード10のファイルアクセスを行う。
【選択図】図2

Description

【0001】
【発明の属する技術分野】
本発明は、脱着可能なメモリカードを利用するデータ処理装置における、メモリカード装着時におけるメモリカードアクセスを制御する技術に関するものである。
【0002】
【従来の技術】
オペレーティングシステムを備えたデータ処理装置において、アプリケーションタスクのメモリカード内のファイルへのアクセスにおける、メモリカードへの実際のアクセスの制御はオペレーティングシステムによって行われる。そして、メモリカードが装着されていない状態において行われたアプリケーションタスクのメモリカードアクセスに対するエラー処理の機能として、メモリカードアクセス完了が所定時間内に完了しないタイムアウトが生じてからアクセスエラーをアプリケーションタスクに返す機能しか備えていないオペレーティングシステムが存在する。
【0003】
なお、メモリカードのデータ処理装置への装着を検出する技術としては、メモリカード装着スロットに、メモリカード挿入によってオン状態となるメカニカルなスイッチを設け、当該スイッチの状態に応じて、メモリカードがデータ処理装置に装着されているかどうかを検出する技術が知られている(たとえば、特開2002−366919号公報)。
【0004】
【特許文献1】
特開2002−366919号公報
【0005】
【発明が解決しようとする課題】
さて、前述のように、タイムアウトを用いたエラー処理の機能しか備えないオペレーティングシステムを用いる場合、メモリカードが装着されていない状態においてアプリケーションタスクがメモリカードアクセスを行うと、処理がアプリケーションタスクに戻るまでに長時間を要してしまい、その間、データ処理装置の動作が凍結してしまう問題が生じる。
【0006】
このような問題の発生を回避するために、にメモリカードの装着/抜去を検知するタスクを設け、このタスクからアプリケーションタスクに、メモリカードの装着/抜去時にその旨を通知するようにし、アプリケーションタスクにおいて、メモリカードアクセスを行うときに、通知されている装着/抜去の内容に応じてメモリカード装着の有無を確認し、メモリカードが装着されていない場合には、メモリカードのアクセスをしないようにすることが考えれる。
【0007】
しかしながら、タスク間の情報伝達の仕組みとしてオペレーティングシステムによってハンドリングされるメッセージを用いる場合、オペレーティングシステムのマルチタスク環境では、メッセージ送信から受信までの間にタスクの優先順位の影響で遅延が生じることが考えられる。また、アプリケーションタスクが、到達したメッセージを一つづつ実行するため、シーケンシャルな処理には適しているが、タイミングを重視する処理には適していない。
【0008】
例えば、ユーザがメモリカードを装着後、すぐに抜去したときなどには、アプリケーションタスクが、メモリカード抜去のメッセージの到着前に、その前に到着したメモリカード装着のメッセージに従って、メモリカードのアクセスを実行してしまう。このような場合には、メモリカード抜去の処理において、前述したように、タイムアウト発生まで、データ処理装置の動作が凍結してしまう問題が生じることになる。
【0009】
そこで、本発明は、メモリカード未装着時に、アプリケーションタスクによるメモリカードのアクセスが行われないよう抑止することを課題とする。
【0010】
【課題を解決するための手段】
前記課題達成のために、本発明は、メモリカードを脱着可能に装着するデータ処理装置に、タスクのスケジューリングとタスク間メッセージの中継を行うオペレーティングシステムと、フラグを格納するフラグ格納手段と、前記メモリカードの挿抜を検知するハンドラと、第1のタスクと、前記メモリカードに格納されたデータを利用する第2のタスクとを備え、前記ハンドラにおいて、前記メモリカードの挿抜を検知した場合に、前記フラグ格納手段のフラグに検知した前記メモリカードの挿抜状態を示す値を設定し、検知した前記メモリカードの挿抜状態を通知するメッセージを前記第1のタスクに送信し、前記第1のタスクにおいて、前記メモリカードの挿抜をメッセージで通知された場合に、その時点で受信可能な全てのメッセージ内の最後のメッセージが示す挿抜状態と、前記フラグ格納手段に格納されたフラグが示す挿抜状態が一致する場合にのみ、メッセージで通知されたメモリカードの挿抜状態を前記第2のタスクにメッセージで通知し、前記第2のタスクにおいて、前記メモリカードの挿抜状態をメッセージで通知された場合に、受信したメッセージが示す挿抜状態と、前記フラグ格納手段に格納されたフラグが示す挿抜状態が共に、メモリカードの装着を示している場合にのみ前記メモリカードのデータに対するアクセスを行うようにしたものである。
【0011】
このようなデータ処理装置によれば、伝達に遅延が生じる可能性のあるメッセージとは別に、フラグを用いて、メモリカードにアクセスする第2のタスクにメモリカードの挿抜の有無を通知するようにしたので、第2のタスクはメモリカード装着の有無を遅延なく認識し、メモリカードが装着されていない場合には、メモリカードのアクセスを行わないようにすることができる。また、第1のタスクにおいて、ハンドラが最後に送信したメッセージ以外の過去に送信したメッセージを破棄すると共に、ハンドラが最後に送信したメッセージとフラグが示す現在のメモリカードの挿抜の状態が一致しない場合には、第2のタスクにメッセージを送信しないようにしたので、処理の効率化と応答の高速化を図ることができる。
【0012】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図1に本実施形態に係るデータ処理装置の構成例を示す。
図示するように、本データ処理装置は、CPU1、メモリ2、表示装置3、入力装置4、外部記憶装置5、プリンタ6を備えている。また、データ処理装置は、メモリカード10のアクセスを制御するカードコントローラ7、メモリカード10を装着するためのカードスロット8、カードスロット8へのメモリカード10の装着を検知する装着検知部9とを有する。このような構成において、CPU1は外部記憶装置5からメモリ2にロードしたプログラムを実行することによりデータ処理装置上でオペレーティングシステムと各種タスクを稼働する。そして、各アプリケーションプロセスは、オペレーティングシステムにアクセス要求を発行することにより、メモリカード10内のデータにアクセスする。オペレーティングシステムは、カードコントローラ7を介して、タスクからの要求に応じたメモリカード内データのアクセス処理を実行する。
【0013】
図2に、このようなデータ処理装置の機能構成例を示す。
図示するように、本データ処理装置は、オペレーティングシステム200上で、メディア検出タスク204とメディア利用タスク208が、オペレーティングシステム200のタスクスケジュールに従って稼働する構成を有している。また、装着検知部9のメモリカード10のカードスロット8への装着/抜去の検知信号による割り込み処理として実行されるハンドラ202と、メディア検出タスク204とメディア利用タスク208の双方が随時アクセス可能なフラグレジスタ206が設けられている。
【0014】
そして、このような構成において、ハンドラ202、メディア検出タスク204、メディア利用タスク208は、オペレーティングシステム200を介してメッセージ210又はメッセージ213を送受し、メディア検出タスク204、メディア利用タスク208はオペレーティングシステム200を介してセマフォ214をやり取りする。
【0015】
さて、ハンドラ202は、装着検知部9のメモリカード10のカードスロット8への装着の検知信号による割り込みがあると、メディア検出タスク204に装着メッセージ210を送信し、フラグレジスタ206に装着状態を格納する。また、装着検知部9のメモリカード10のカードスロット8への抜去の検知信号による割り込みがあると、メディア検出タス204クに抜去メッセージ210を送信し、フラグレジスタ206に抜去状態を格納する。ここで、装着状態と抜去状態を格納する領域は、同じ場所であるため、フラグレジスタ206には、常に排他的にどちらかの状態が格納されることになる。なお、フラグレジスタ206の初期状態は抜去状態を格納した状態である。
【0016】
一方、メディア検出タスク204、メディア利用タスク208は、図3に示す処理を実行する。
すなわち、図3aに示すようにメディア検出タスク204は、セマフォを獲得すると(ステップ302)、ハンドラ202からの装着メッセージの受信を待つ(ステップ304)。なお、初期状態において、セマフォはメディア検出タスク204に与える。
【0017】
そして、装着メッセージを受信したならば(ステップ304)、メッセージキューの全ての情報を取得したかどうかを調べる(ステップ306)。ここで、通常は、1回のメッセージ受信の際には、ハンドラ202からメッセージ検出タスク204へ送信されたメッセージが格納されるメッセージキューには1個のメッセージのみが格納されるが、メモリカード10の挿抜が頻繁に行われた場合、ハンドラ202が割り込み処理によってメッセージ検出タスク204に優先して動作するため、複数のメッセージがメッセージキューに溜まっている場合がある。そして、このような場合には、必要なメッセージ、すなわち、現在のメモリカード10の挿抜状態を示すメッセージは最後に受信したメッセージである。そこで、最後に受信したメッセージ以外の不要なメッセージを読み捨てる処理を(ステップ304、306)を行うことにより、メディア利用タスク208に不要なメッセージを送信することを排除すると共に、負荷低減と応答性の高速化を図る。
【0018】
次に、メッセージキューから取得した最後のメッセージ210が示すメモリカード10の挿抜状態とフラグレジスタ206が示すメモリカード10の挿抜状態が一致しているかを確認する(ステップ308)。ここで、フラグレジスタ206はハンドラ102が割り込みに応じてセットし、メッセージ210はオペレーティングシステム200のスケジューリングに従ってメディア検出タスク204に通知されるため、両者が示す挿抜状態には、メッセージ210伝達の遅延による不一致が生じる場合がある。そこで、両者が示すメモリカード10の挿抜状態が一致した場合にのみ、メディア利用タスク208にメモリカード10の挿抜状態を通知するメッセージ212の送信(ステップ312)を行う。そして、両者が示すメモリカード10の挿抜状態が不一致である場合には、所定のメディア処理異常終了通知(ステップ310)を行い、メディア利用タスク208にはメッセージを通知は行わない。
【0019】
さて、その後、メディア検出タスク204が、セマフォを解放すると(ステップ314)、図3bに示すように、メディア利用タスク208がセマフォを獲得する(ステップ352)。
そして、メディア利用タスク208は、セマフォを獲得すると、メディア検出タスク204からメッセージ212を受信する(ステップ354)。そして、メッセージ212が示すメモリカード10の挿抜状態とフラグレジスタ206が示すメモリカード10の挿抜状態が一致しているかを確認する(ステップ366)。そして、一致していない場合には、所定のメディア処理異常終了通知(ステップ360)を行い、メモリカード10のアクセスは一切行わないことにより、データ処理装置の動作が凍結してしまう問題を解決する。
さて、メッセージ212が示すメモリカード10の挿抜状態とフラグレジスタ206が示すメモリカード10の挿抜状態が一致した場合には、メッセージ212の示す示すメモリカード10の挿抜状態によって処理が別れ、メッセージ212がメモリカード10の装着を示す場合には、メディアマウント処理(ステップ362)でハードウエアの設定を行いメモリカード10をレディ状態にし、メディアファイルの処理(ステップ368)で、実際のデータアクセスを行う。一方、メッセージ212がメモリカード10の抜去を示す場合には、メディアアンマウント処理(ステップ364)で、メモリカード10等のハードウエア資源からの解放を行う。
【0020】
そして、以上の処理が終了したならばセマフォを解放する(ステップ368)。ここで、ステップ366で行う処理は、たとえば、オペレーティングシステム200を介してメモリカード10に記録されている画像ファイルを読み込んで、読み込んだ画像ファイルの画像を表示装置3に表示したり、プリンタ6から印刷出力する処理である。
【0021】
上述した実施形態によれば、伝達に遅延が生じる可能性のあるメッセージとは別に、フラグレジスタ206を用いてメディア検出タスク204からメディア利用タスク208にメモリカード10の抜去の有無を通知するようにしたので、メディア利用タスク208はメモリカード装着の有無を遅延なく認識し、メモリカード10が装着されていない場合には、メモリカード10のアクセスを行わないようにすることができる。
【0022】
【発明の効果】
以上のように、本発明によれば、メモリカード未装着時に、アプリケーションタスクによるメモリカードのアクセスが行われないよう抑止することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るデータ処理装置の構成を示す図である。
【図2】本発明の実施形態に係るデータ処理装置の機能構成を示す図である。
【図3】本発明の実施形態に係るデータ処理装置におけるタスクの処理を示すフローチャートである。
【符号の説明】
1…CPU、2…メモリ、3…表示装置、4…入力装置、5…外部記憶装置、6…プリンタ、7…カードコントローラ、8…カードスロット、9…装着検知部、10…メモリカード、200…オペレーティングシステム、202…ハンドラ、204…メディア検出タスク、206…フラグレジスタ、208…メディア利用タスク。

Claims (3)

  1. メモリカードを脱着可能に装着するデータ処理装置であって、
    タスクのスケジューリングとタスク間メッセージの中継を行うオペレーティングシステムと、
    フラグを格納するフラグ格納手段と、前記メモリカードの挿抜を検知するハンドラと、第1のタスクと、前記メモリカードに格納されたデータを利用する第2のタスクとを備え、
    前記ハンドラは、前記メモリカードの挿抜を検知した場合に、前記フラグ格納手段のフラグに検知した前記メモリカードの挿抜状態を示す値を設定し、検知した前記メモリカードの挿抜状態を通知するメッセージを前記第1のタスクに送信し、
    前記第1のタスクは、前記メモリカードの挿抜をメッセージで通知された場合に、その時点で受信可能な全てのメッセージ内の最後のメッセージが示す挿抜状態と、前記フラグ格納手段に格納されたフラグが示す挿抜状態が一致する場合にのみ、メッセージで通知されたメモリカードの挿抜状態を前記第2のタスクにメッセージで通知し、
    前記第2のタスクは、前記メモリカードの挿抜状態をメッセージで通知された場合に、受信したメッセージが示す挿抜状態と、前記フラグ格納手段に格納されたフラグが示す挿抜状態が共に、メモリカードの装着を示している場合にのみ前記メモリカードのデータに対するアクセスを行うことを特徴とするデータ処理装置。
  2. 請求項1記載のデータ処理装置であって、
    前記第1のタスクと第2のタスクは交互にセマフォを獲得して処理を行うタスクであって、
    前記セマフォを獲得した前記第1のタスクは、前記メッセージを前記第2のタスクに送信してセマフォを解放することを特徴とするデータ処理装置。
  3. タスクのスケジューリングとタスク間メッセージの中継を行うオペレーティングシステムが稼働するコンピュータによって読みとられ実行されるコンピュータプログラムであって、
    当該コンピュータプログラムは、前記コンピュータに、
    前記メモリカードの挿抜を検知するハンドラと、前記メモリカードに格納されたデータを利用するタスクとを実行させ、
    前記ハンドラは、前記メモリカードの挿抜を検知した場合に、所定のフラグに、検知した前記メモリカードの挿抜状態を示す値を設定し、検知した前記メモリカードの挿抜状態を通知するメッセージを前記タスクに送信し、
    前記タスクは、前記メモリカードの挿抜をメッセージで通知された場合に、その時点で受信可能な全てのメッセージ内の最後のメッセージが示す挿抜状態と、前記フラグが示す挿抜状態が共に、メモリカードの装着を示している場合にのみ前記メモリカードのデータに対するアクセスを行うことを特徴とするコンピュータプログラム。
JP2003126891A 2003-05-02 2003-05-02 データ処理装置 Pending JP2004334384A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003126891A JP2004334384A (ja) 2003-05-02 2003-05-02 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003126891A JP2004334384A (ja) 2003-05-02 2003-05-02 データ処理装置

Publications (1)

Publication Number Publication Date
JP2004334384A true JP2004334384A (ja) 2004-11-25

Family

ID=33503638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003126891A Pending JP2004334384A (ja) 2003-05-02 2003-05-02 データ処理装置

Country Status (1)

Country Link
JP (1) JP2004334384A (ja)

Similar Documents

Publication Publication Date Title
CN100504791C (zh) 多cpu对临界资源进行互斥访问的方法和装置
KR101915198B1 (ko) 프로세서간 메시지처리장치 및 방법
CN107273141B (zh) 嵌入式实时操作系统
US7870296B2 (en) High availability system and execution state control method
US5946498A (en) Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out
EP2472355B1 (en) Graceful out-of-band power control of remotely-managed computer systems
CN108701055B (zh) 车辆控制装置和车辆系统
CN115361451B (zh) 一种网络通信并行处理方法及系统
US7200781B2 (en) Detecting and diagnosing a malfunctioning host coupled to a communications bus
CN111142813A (zh) 打印机连接状态的检测方法及装置
JP2004334384A (ja) データ処理装置
CN114257492B (zh) 智能网卡的故障处理方法、装置、计算机设备和介质
CN114785714B (zh) 一种报文传输时延检测方法、存储介质及设备
JP2021524092A (ja) 割込みコントローラ
JP5262418B2 (ja) タスクスケジューリング装置およびタスクスケジューリング方法
CN109660322B (zh) 一种数据处理方法、装置及计算机存储介质
US7076585B2 (en) System bus controller and the method thereof
JP4773715B2 (ja) チェックポイント取得方法
JP2001022718A (ja) 並列処理装置
JPH11345099A (ja) 印刷順序管理装置、及び印刷順序管理方法
JP2981618B2 (ja) パイプラインコンピュータシステムでの書き込み順序保存方法
JPH06274436A (ja) データ転送方式
JP2005004356A (ja) メッセージキュー制御システム
JP2001344119A (ja) トランザクション実行制御方式およびトランザクション実行制御方法
JP2002366451A (ja) マルチプロセッサシステム