|Author:||Chan, Chi-fai Manfred|
|Title:||Concurrent program development environment|
|Subject:||Parallel programming (Computer science)|
Hong Kong Polytechnic -- Dissertations
|Department:||Department of Electronic Engineering|
|Pages:||vii, 157 leaves : ill. ; 30 cm|
|Abstract:||Concurrent programming becomes more and more important today. Advances in technology provide the possibility of building very powerful super-computers. However, the hardware of the computer can be improved whereas the software cannot follow in order to utilize the full speed of the computer. Therefore new programming methods have to be developed to reduce the gap between software and hardware. One way of solving it is by means of concurrent programming. Traditional software design methodology is good for sequential programming only. Up to now, concurrent programming still needs to seek a better methodology for helping program development. An approach is to use a graphical method to write concurrent program. This approach is good for program design because graphical notation provides system specification more clearly and reduces misunderstanding between user and analyst that would be happened using text-based documentation tools. Among all models for sequential programming, structure chart is a good candidate for developing concurrent program. However, the traditional structure chart notation cannot be used to represent concurrent program. Thus, another graphical model DFD is used for the representation of concurrent program. Concurrent program development environment is a tool that adopts the notation of DFD as well as structure chart to model concurrent program in graphical format. However, new elements have to be added in order to map the structure chart to the concurrent program. This new version of structure chart is called concurrent structure chart in this project. In order to represent concurrent structure chart graphically, the CDFD is devised to write concurrent program. The project requires the modification of DFD to make it become presentably for concurrent program. For example, in the OCCAM language, there are mainly four different type of processes, namely independent parallel process (no relationship among parallel processes), while process, alternate process and if process. The CDFD notation thus assumes that all processes are formed under these four main categories. Processes can be communicated through channels only. If shared variables are required, sequential pointers have to be specified. Otherwise, indeterminacy anomaly will occur. For example, the result of two parallel assignment statements with one for updating and one for referencing the same variable, are determined by the order of the execution sequence. Different execution sequence results in different values of the shared variable. In addition, the calling sequence of processes can be determined by a sequential pointer. Two processes are said to be in sequential order if a process is linked with another process by sequential pointer. In the project, a sequence of processes is represented by the dashed arrow from one process to another process. For sequential process, the source process can connect to one and only one destination process. Otherwise, error will occur. The calling sequence is that source process is invoked first and then it invokes the destination process. Besides, the channel is represented by the solid arrow from one process to another process. The channels, just like dataflow in DFD, are used to communicate between processes. Thus, process can use as many channels as possible to connect other processes. The project assumes the first three stages of the system design cycle have been done. Once the DFD is collected, the traditional transaction and transform analysis are conducted. The output of the transaction and transform analysis is the traditional structure chart. The structure chart is then converted into the CDFD by some guidelines. Since the guidelines require human intervention, this step will not be automated. After writing the CDFD, concurrent structure chart has to be built. Some adjustments on the traditional structure chart have to be made in order to represent concurrent language. For concurrent structure chart, a new concept called manager is created to show the control information of the system. A manager is a master controller that can be used to replace the calling module in the conventional structure chart. It can also determine the execution order of several modules. There are five managers, namely PAR, SEQ, ALT, IF, WHILE manager. Through these managers, the modules can then be related together to form a whole system. The managers are connected with each other to form a hierarchical tree. Each manager manages one or more modules according to the manager type. The manager helps to allocate the control flow of the modules, for example, PAR manager controls several modules that are executed in parallel, whereas SEQ manager controls several modules that are running in sequential order. ALT manager controls the guard/module pairs while IF manager provides boolean/module pairs. And finally, the WHILE manager represents the looping. Based on the CDFD notation and concurrent structure chart model, a prototype of CPDE is implemented. The CPDE is an X Window application that provides a user-friendly environment for OCCAM program generation. The application includes a graphical editor for writing CDFD. Upon completion of designing the CDFD, it is checked for CDFD balance and deadlock. If there is no error, concurrent structure chart is created. According to the concurrent structure chart, the source code is generated. A case study, a huffman encoder and decoder, is implemented by using the CPDE. The CPDF is proved to be a good tool for writing concurrent program. It improves the readability and understandability of the documents generated from traditional system design approach. The CPDE helps writing OCCAM language by using CDFD notation and demonstrates the possibility of using this method to generate source code for OCCAM program. This idea can also be further extended to write other concurrent languages such as concurrent C or parallel C, etc.|
As a bona fide Library user, I declare that:
- I will abide by the rules and legal ordinances governing copyright regarding the use of the Database.
- I will use the Database for the purpose of my research or private study only and not for circulation or further reproduction or any other purpose.
- I agree to indemnify and hold the University harmless from and against any loss, damage, cost, liability or expenses arising from copyright infringement or unauthorized usage.
By downloading any item(s) listed above, you acknowledge that you have read and understood the copyright undertaking as stated above, and agree to be bound by all of its terms.
Please use this identifier to cite or link to this item: