1 03/31/83 Absentee facility
2
3
4 A facility for requesting absentee processes is available to users.
5 A user can request that a process be created that executes commands
6 from a segment and places its output into a segment.
7
8
9 To request an absentee computation, one first constructs an absentee
10 control segment that is similar in syntax to an exec_com segment. The
11 absentee process when it is created for the user reads from this
12 control segment. The suffix of the control segment must be ".absin".
13 Then the command enter_abs_request ear requests that an absentee
14 process be created on behalf of the user. The output of this absentee
15 process goes into an absentee output segment. The name of this output
16 segment can be specified in the ear command. If the name is not
17 specified, then the pathname of the control segment is used, except
18 that its suffix is .absout. The user can delay the creation of the
19 absentee process until after a specified time by means of the -time
20 control argument to the ear command. If this option is not selected,
21 at an arbitrary time in the future an absentee process is created for
22 the requestor. Type "help enter_abs_request" or "help ear" for
23 further discussion of this command.
24
25
26 The resulting process is identical to an interactive process except
27 that:
28 1) read operations from user_input are done from the absentee
29 input segment.
30 2) write operations to user_output are directed to the absentee
31 output segment.
32 3) special condition handlers are established for record_quota_overflow
33 and cput.
34 4) any error intercepted by the standard unclaimed signal handler,
35 except for command_error and command_question, logs out the
36 absentee process.
37
38
39 Two other commands are installed as part of the absentee facility--
40 1) list_abs_requests lar--a command that gives the user information
41 on the requests for absentee processes that the user has made.
42 Type "help list_abs_requests" or "help lar" for more information.
43 2) cancel_abs_request car--a command that can be used to delete a
44 request for an absentee process. For further details, type "help
45 cancel_abs_request" or "help car".
46
47
48 Examples:
49 Suppose that a user wants to request an absentee computation to
50 perform an offline compilation. The user creates a control segment
51 called absentee_pl1.absin containing:
52
53 cwd current
54 pl1 x -table -source -symbols
55 dp -dl x.list
56 logout
57
58
59 The command line--
60
61 enter_abs_request absentee_pl1.absin
62
63 causes an absentee process to be created some time in the future
64 that:
65 1) sets the working directory to a directory named current
66 inferior to the user's default working directory.
67 2) compiles a pl1 program named x.pl1 with three control arguments
68 3) dprints one copy of the list segment.
69 4) logs out.
70
71 The output of these tasks appears in the same directory as
72 absentee_pl1.absin in a segment called absentee_pl1.absout.
73
74
75 Notes:
76 1) The enter_abs_request command checks for the existence of the
77 absentee control segment and refuses the request if it is not
78 present.
79 2) An absentee process can be requested only for the Person_id and
80 Project_id of the user submitting the request.
81 3) The facility is designed so that more than one absentee process
82 can run at one time. The user should take care, when submitting
83 several requests that use the same control segment, that the output
84 of each request is directed to a different output segment see
85 enter_abs_request -output_file.
86 4) There can be both an interactive and an absentee process for the
87 same user at the same time.
88 5) The who command denotes absentee users by placing an asterisk
89 directly after person.project, for example "Green.Multics*".
90
91
92 6) The cancel_abs_request command can cancel a request for an absentee
93 process that is already logged in.
94 7) The user can ask operations to bump or to cancel an absentee
95 process. The difference is as follows. Bumping destroys the
96 absentee process but allows the computation to begin again.
97 Cancelling an absentee process prevents it from ever being
98 restarted. This distinction is relevant only if the absentee
99 computation was declared to be restartable via the -restart
100 -rt control argument of the ear command. The user who
101 contacts operations to destroy an absentee process should be sure
102 to specify which function is wanted.
103 8) The new_proc command is an undefined command in an absentee
104 process. It results in the termination of the absentee process.
105
106
107 9) For an absentee process to end properly, logout should be the last
108 command encountered in the absentee control segment. If this
109 condition is not met, an error message indicating that the input
110 is exhausted is printed.
111 10) The absentee control segment should not be edited or its bit count
112 changed during the course of the absentee process. This action
113 causes unpredictable results.
114 11) Since the syntax of the absentee control segment is the same as an
115 exec_com segment, the user should be aware of a few deviations.
116 Certain exec_com requests are ignored in an absentee environment.
117 Currently these are:
118 1) &attach
119 2) &detach
120 3) &command_line
121 4) &ready
122
123
124 The reasons for these differences are--
125 1 & 2) Input is already attached to the absentee input segment.
126 3) In an absentee process, command lines cannot be distinguished
127 from input lines.
128 4) Unlike exec_com, control of the ready message can be
129 achieved only by the ready_on and ready_off commands. All
130 other control requests work normally.
131 12) The absentee facility provides a number of priority queues.
132 The absentee commands ear lar car have a -queue control
133 argument that allows the user to specify the particular queue
134 desired. There are four queues. Site administrators can control
135 the default queue used to submit requests when -queue isn't given
136 to ear, pl1_abs, etc.; the cost of using each queue; scheduling
137 parameters for absentee processes in each queue; and the lowest
138 priority queue serviced on each shift.
139
140
141 13) The answering service enforces a limit stop defined by the
142 installation on the cpu time that can be used by an absentee
143 process. A user is able to specify a per-job time limit less than
144 or equal to this maximum. Specification of a time limit causes a
145 cpu timer to be established in the absentee process. Resetting all
146 cpu timers makes the limit ineffective.
147 14) A user cannot convert his interactive process to an absentee
148 process, nor his absentee process to an interactive one.
149 15) If a record quota overflow occurs during the execution of an
150 absentee process, in some cases the end of the absentee output
151 segment can be overwritten with a short message.
152
153
154 16) In an absentee process, cu_$set_cl_intermediary is invoked to set
155 the procedure called by the standard unclaimed signal handler after
156 outputting diagnostics. Thus, after getting a signalled error
157 except command_error or command_question, the standard
158 unclaimed signal handler passes control to a procedure equivalent
159 to logout.
160 17) An argument is passed to start_up.ec to indicate which type of
161 process is being created. Type "help start_up.ec" for further
162 details.
163
164
165 18) A resetread on user_input results in the termination of the
166 absentee process. Procedures currently performing a resetread when
167 handling errors include the following:
168 basic
169 debug
170 edm
171 qedx