You are on page 1of 2

CRITICAL REVIEW Of The Structure of the THEMultiprogramming System

Tayyaba Sohail COMSATS Institute of Information Technology, Attock

Introduction
This critical review is about the progress report given by Edsger W. Dijkstra about the THE multiprogramming system. This system was designed for a Dutch machine EL XS. His report not only covers what he has done in the construction and design of the system but also formulates what he has learnt from it.

Summary
The paper starts with an introduction where the author describes the goals of the project and gives guiding principles to achieve those goals. Next he gives a progress report where he shares few of his mistakes and the lesson learnt from them. Further he gives an overview of his system structure starting with the storage allocation. In THE system Dijkstra is introducing software based memory segmentation. An independent segment identification mechanism is being introduced which results in the fast access to segment variable. The author continues and tells about the process allocation. The whole THE system is designed on abstract sequential processes. For each user program, input and output peripherals there are independent sequential processes. Dijkstra then explains the system hierarchy. The whole system follows a strict layered approach. Each layer from 0 to 5 performs its own hardware or software related tasks independent of other layers. This approach makes complete abstraction achievable. After giving an overview of the system author shares his experience of designing, constructing and verification and also how different levels of abstractions had helped the team in testing. The author then concludes by expressing few of his disappointments regarding the mixed reaction of the industrial software makers.

Analysis
I start my analysis by saying that it was not an easy peace of work to understand, as this report was being represented in front of some very intellectual people with sound background of operating systems but for a person with average knowledge a mere definition of multiprogramming systems is not enough. The author should have given some comparative knowledge of some current operating systems of that time before representing a brand new technology. Furthermore, as it was a progress report and as the word (progress) itself explains the work done in a particular time period, it never discussed in it, how much work was done before the last progress report was given and how much is done in between? A big section of this report covers what they did in the system instead of when they did and whether they achieved the goals which the author mentioned in the beginning.

I must appreciate few points that author shared being a team leader, regarding the project management. While working on a project, one can learn from his experiences and mistakes that what should be considered important and what should not be. As he says in his report the project should be selected as early as possible, care should be taken while selecting the appropriate machine and learning from previous experience is also very important. Instead of just giving attention to the perfect outcome one should also pay attention to the causes and the effects of the errors encountered. The structure should be made with keeping the debugging problem in mind. At the first glance of this paper what surprises me the most is that the paradigm of multiprogramming is as old as it started in around 1968. Further the Storage Allocation section was very interesting as author introduced the first forms of software-based memory segmentation freeing programmers from being forced to use actual physical locations on the drum memory. It seems to have much in common with modern virtual memory implementations. But the lack of detail prevents this section from being more useful. For an average person many questions are still unanswered. The use of society of sequential processes was very impressive and the word society is used at its best meaning as they are cooperating sequential processes. The design principles given in the paper are quite relevant today. The layering approach used is a core principle of modern software engineering. The higher" layers only depend on "lower'" layers making the system more tractable, and also facilitates building and testing the system incrementally. Having interest in software engineering field one thing that I strongly disagree with when the author says, At the time this was written the testing had not yet been completed, but the resulting system is guaranteed to be flawless. As it seems to go against the conventional software verification process. It is interesting how he mentions that they did not allocate enough resources to debugging, as this is what we spend a lot of time. I wonder what made him so confident about his design and implementation. Information given in this paper is no doubt, very useful but due to lack of further elaboration and mixed ideas, one gets entangled in it. I kept on asking myself what he wants to say? May be a pictorial elaboration can well explain his idea about segments and process cooperation. Testing phase was also quite confusing as author jumps from one idea to another. But in this context the idea of giving the appendix is also good. But again due to lack of knowledge at my side, that thing even confused me more. Many ifs and buts again rise due to that, as half of the information is given and half is not. However the harmonious cooperation part is explained well and it increases the interest of the reader.

Conclusion
Despite of all the difficulties I faced while reading this paper, I must admit that it is a good piece of work. A person with a strong background of operating system and coding techniques can benefit from it and also enjoy reading it. It would be more beneficial for an average person if some more information had been given. I would recommend everyone who wants to increase their learning and wants to get an insight that how this multiprogramming emerged and how work over it was being done in the beginning, to read this paper.

Critical Review

Page 2

You might also like