The authors talked about to adapt new environment for Unix system; Multiprocessing, in this paper. They briefly introduced the current Unix system and the possible ways to adapt a new hardware environment. There are two big possible ways to adapt a new environment, which is either designing a completely new system or adapt an existing operating system for the new hardware configuration. In this paper, the authors examined the second method.
When the Unix system is running with a multitasking environment, there is only one processor so there is no problem dealing with multiprocessors. However, if the Unix system adapts this new environment, there will be some major problems. When two processors share one variable, the problem will be occurred in user mode and kernel mode with a little bit different situation.
The first problem is when two processors access a shared variable and return the result value at the same time, the system would not get the right result. For instance, the user wants to add 1, two times to the shared variable ˇ°sharvarˇ± and to get ˇ°sharvar + 2ˇ± after execution. So Unix system execute this command with two processors but two processors executed at the same time and got result ˇ°shavar + 1ˇ± which is an undesirable result. Similar problems will be occurred in different mode such as two kernel modes, a kernel mode with an interruption, and so on.
Fortunately, these problems could be solved using some protections. The authors introduced to use lock() and unlock() to prevent two processors to access the command at the same time. Also, disable interrupt, enable interrupt, and using flag could solve other problems, too. However, these suggestions unfortunately produce a side problem. It is easy to determine the beginning of the critical section, but it is very difficult to find the end of the critical section. This problem is not about mechanisms but actually to detect and protect the critical sections.
As a result, the authors suggested the other ways to adapt a multiprocessing environment.
The paper showed that two companies adopted the third solution but none of them is very expedient.
The paper was very easily explained a little bit difficult topic with a lot of examples and the authors went all over the explanation from the old and the new environments. They showed all solution for all problems that they introduced in this paper. However, when they introduced new problem, which is not related to mechanism, the authors seemed to try to evade their responsibility to show the solutions. Of course, there is no perfect answer for the problem but they could, at least, show their preference of the solutions.