A new data structure for the multi-user text editors
Thesis DisciplineComputer Science
Degree GrantorUniversity of Canterbury
Degree NameMaster of Science
This thesis describes the design and implementation of a new and efficient data structure used for the workfiles of multiuser line-oriented text editors. One of the design objectives is the ability to use the editor (i.e. CHEF) as an editing server in a local ring network with a dedicated disk for the storage of users' workfiles. This objective is facilitated because the data structure allows random disk blocks to be used for the workfiles. This allows the editor to exist stand-alone without the need for an underlying file system. The structure of the workfiles is a determining factor for the efficiency of storage and speed of any editor and it is just as important as the command language and other user level features of editors historical development of such data structures in a number of editors is described, and 6 general categories are developed. The advantages and disadvantages of each category are discussed and the main problems in the design of editor data structures are distinguished. The CHEF editor data structure, which solves most of these problems, is studied in detail. The new data structure, which is in fact a logical development of the CHEF data structure, brings further improvements and increases the performance. This is shown by experimental results. Some advanced features which are facilitated by the new data structure are: backup of pointers for undoing a command, garbage collection of text storage space and unused pointer values, and a recovery technique. The data structure can be used in two different environments: on top of a file system, and with a dedicated disk. However it will show a better performance with a dedicated disk.