2024-03-28T20:22:49Zhttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_oaipmhoai:ipsj.ixsq.nii.ac.jp:000169502020-10-27T05:02:43Z00934:00935:00978:00981
細粒度スレッド対応デバッガのポータブルな実装方式Portable Implementation of Debuggers for Fine - grain Multithreading Systemsjpn通常論文http://id.nii.ac.jp/1001/00016950/Articlehttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=16950&item_no=1&attribute_id=1&file_no=1Copyright (c) 2000 by the Information Processing Society of Japan神戸大学大学院自然科学研究科神戸大学工学部情報知能工学科神戸大学工学部情報知能工学科大西勇次鎌田十三郎瀧, 和男紬粒度スレッド機構は,高コストなプロセス生成や切替えを極力抑えるもので,多くの並列言語に実装されている.また,これらの並列言語の多くは高い移植性を獲得するため,既存の言語を介した2段組のコンパイル構成を採用している.本研究の目的は,細粒度スレッド機構を備えた並列言語に移植性の高いデバッガを提供することである.このようなデバッガを実現するには,各処理系の細粒度スレッド機構に対応したスレッド管理部をポータブルに実装することが重要である.これらのスレッド機構の多くは,スタックアーキテクチャ上での効率的実行を目的として,遅延タスク生成などの技術を用いている.このため,既存デバッガによって得られる中間言語上のスレッド情報は,言語上のスレッN青報と対応していない.本研究は,既存デバッガの改変を必要としない,細粒度スレッド対応デバッガのポータブルな実装法を提案する.本方式におけるスレッド管理は,言語上のスレッドの実行状況を把握するための少数のランタイムフックと,既存デバッガの実行を制御しスレッドのトレースを実現するインタフェース部から実現される.本方式の有効性は,並列言語Cilkを対象とした実装例を通して確認した.Many concurrent language systems adopt their own fine-grain multithreading system to allow efficient execution of thread creation and context switch. Many of these language systems also adopt a compiler implementation technique to achieve portability that is two-step compilation framework. In these systems, a source code is usually transformed into C code, and then object code is produced by using an ordinary C compiler. Our goal is to provide a portable implementation of a symbolic debugger for these concurrent languages. To provide such a debugger, it is important to portably implement the debugger component that manages their thread mechanism for the specific multithreading systems. These language systems usually adopt fine-grain multithreading systems that work efficiently on stack architecture using techniques such as lazy task creation. This implies that a thread in the underlying C language does not naively correspond to that of the target language. This paper presents a portable implementation scheme of a symbolic debugger for fine-grain multithreading systems. This scheme does not require customization of the existing C debugger, instead supposes a few runtime hooks on the thread scheduler and an interface unit between the C debugger and the programmer. The runtime hooks are used to recognize thread status of the target language, and the interface unit controls the underlying C debugger to manage the program execution during tracing a thread. We show the effectiveness of our implementation scheme by applying it to a parallel language Cilk.AA11464814情報処理学会論文誌プログラミング(PRO)41SIG02(PRO6)78882000-03-151882-78022009-06-30