M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Therac-25 Hands-On Assignment

Hands-on 3b: Therac-25

Now that you have had a bit more experience with systems and a better understanding of concurrency issues, we revisit the Therac-25. As you may already know, Nancy Leveson, the author of the Therac-25 paper, is now a professor at MIT studying software safety. While not the focus of her current research, she does maintain the Therac Evaluation and Analysis Laboratory. The TEAL has an original unmodified Therac-25, which allows the situations described in the paper to be reproduced in a controlled setting.

Important: You will need a partner to do the second half of this hands on.

Part A: Practice with the Interface

As you should remember from the paper, the Therac-25 has an operator interface where key input parameters are entered. The interface looks something like this:

+------------------------------------------------------------------------------+
| PATIENT NAME: TEST                                                           |
| TREATMENT MODE: FIX            BEAM TYPE:       ENERGY (KeV):       0        |
|                                                                              |
|                                ACTUAL           PRESCRIBED                   |
|         UNIT RATE/MINUTE         0.000000         0.000000                   |
|         MONITOR UNITS          200.000000         0.000000                   |
|         TIME(MIN)                0.270000         0.000000                   |
|                                                                              |
|                                                                              |
| GANTRY ROTATION (DEG)            0.000000         0.000000                   |
| COLLIMATOR ROTATION (DEG)      359.200000         0.000000                   |
| COLLIMATOR X (CM)               14.200000         0.000000                   |
| COLLIMATOR Y (CM)               27.200000         0.000000                   |
| WEDGE NUMBER                     1.000000         0.000000                   |
| ACCESSORY NUMBER                 0.000000         0.000000                   |
|                                                                              |
|                                                                              |
|                                                                              |
|                                                                              |
| DATE: 2007-03-22      SYSTEM: DATA ENTRY        OP.MODE: TREAT        AUTO   |
| TIME: 12:45:07        TREAT: TREAT PAUSE                 X-RAY        173777 |
| OPR ID: 033-benmv     REASON: OPERATOR          COMMAND:                     |
+------------------------------------------------------------------------------+

Simulator commands:

Before continuing further, re-familiarize yourself with the interface by re-reading the sidebar "The operator interface." You may also find the description on page 27 (hardcopy) useful.

Question 1: What is the sequence of events necessary to trigger the Malfunction 54 error?

Question 2: How difficult do you believe this triggering condition to be?

In order for you to get a firm grasp on the specifics of this process, we have supplied a Therac-25 Operator Console Simulator, called therac. It may be accessed on Athena (via dialup) or you can download therac.c and compile it with gcc -o therac therac.c -lcurses.

Question 3: Attempt to trigger the Malfunction 54 error in the simulator. Is it easier or harder than you anticipated?


Part B: Experiments with an actual Therac-25

To complete the second part of the lab, you must go to Leveson's TEAL room with a partner. There you will find instructions for the remainder of the hands-on, along with liability release forms. The partner need not be in 6.033, or even an MIT student. Please direct any questions or problems to the 6.033 course staff instead of Prof. Leveson.

Question 4: How many rads did you receive in doing this project?