ここから本文です

タスクとトランザクションとジョブの関連性について教えてください。 私の中で...

ko_********さん

2017/4/2818:00:47

タスクとトランザクションとジョブの関連性について教えてください。

私の中では
複数のタスクをコミットするかロールバックするかがトランザクションで、
コミットしたトランザクションを

まとめたもの(1〜多個)がジョブ
というイメージなのですが、あってますでしょうか?

閲覧数:
75
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nora1962jpさん

2017/4/2820:10:39

ジョブとタスクはプラグラムの実行に関わる概念ですが、Windowsなどだと「タスクマネージャー」「タスクスケジューラ」「タスクバー」などのように言葉が使われていていらぬ混乱の元になっていると感じています。

プログラムを起動・実行する単位は「プロセス」です。
一連の「プロセス」をまとめてコントロールできるものを「ジョブ」と呼びます。これはメインフレームでもUnix/Linuxでも同じです。ただ、メインフレームなどだと「ジョブ」が処理優先度やその処理がどの部署に関するものなのかなどによる「課金単位」の管理などにも関係していました。プログラム実行も基本ジョブを介して行われていました。
ジョブは複数のプログラムステップで構成でき、それについて起動・一時停止・強制終了を行えます。

Unix/Linuxではシェルから起動したプログラムやシェルスクリプトについてバックグラウンド実行させたり一時停止させることが出来ます。通常これを「ジョブ」と呼んでいます。

Windowsにはこうした機能はなかったと思います。

「タスク」はコンピュータから見た時の実行単位です。マルチタスクと言った場合は、複数のプログラムが同時進行するものを言いました。
ただし、一つのプロセス内で複数の実行単位が動くという仕組みも出て来ました。プロセスは基本的には各プロセスごとに独立したメモリ空間やリソースを持っていますが、それらを共有する「スレッド」というものです。
Windowsなどは「マルチスレッド」が基本です。
最近はUnixやLinuxなどでもOSレベルでマルチスレッドで動作できるようになっています。
現在はスレッド、プロセスなどの実行単位を合せて「タスク」と呼ぶ場合が多いと思います。

トランザクションという概念はこうしたコンピュータの処理・実行単位と異なり、データの参照・更新で異常が発生しないようにするための処理単位です。
典型的な考え方からすれば「ACID特性」を持つものです。
automicity 原子性
consistency 一貫性
isolation 独立性
durability 永続性

の頭文字を取ったものです。

トランザクションをどう実装するかはプログラムやシステムしだいです。
RDBMSなどでは「BEGIN TRANSACTION」で開始して「COMMIT」「ROLLBACK」で終了するものも多いですが、「SAVEPOINT」やトランザクションの入れ子が出来るものもあります。

データベースやトランザクションマネージャーが関わらないプログラムも多いのでトランザクションの集まりがタスクやジョブになるわけではありません。

質問した人からのコメント

2017/4/28 21:16:17

わかりやすい説明ありがとうございました

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

原沢信道さん

2017/4/2820:05:00

RDBMSの世界では特にタスクやジョブは登場しません。一般的な解釈ではジョブは人間から見たコンピュータの処理の単位で、タスクはコンピュータから見た処理の単位を指します。通常は、複数のタスクをコミットす事やロールバックする事は有りません、1個のタスクの中でトランザクションを開始し最後にコミットするかロールバックをする方法が一般的です。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる