Added Note 4/24/97 -- since there may be various types of machines, allow the user to request a "type" (e.g. extra disk, special processors if we ever get that far, perhaps special software). will allow easier growth of the system in the future. Additionally, consider providing "screen" functionality (allows easy access). may want to consider "cleanup" phase - user says "I'm done" with system. Cleanup checks some basic stuff (may declare reinstall needed if the system is too far out of norm), runs cleanup on tmp files etc., then turns over system to server for scheduling next user. I.e., put a phase in here for making sure the system is reasonably ready for the next user. Subject: preliminary design of long jobs scheduler Date: Thu, 30 Jan 1997 19:25:31 EST From: Mike Barker 1. Client for requesting time sends name and # of hours via kerberized channel to 2. server for making list add name to list with # of hours requested reports back how many entries in list (note: may want to provide a "I'll skip it" option -- i.e., take me out of the list. may also want to provide a "how many are in the list" option.) This could also be the place for enforcing any kind of administrative rules. E.g., if a person is only allowed to sign up for N machines, this could check that their name wasn't in the list too many times. Or if we have people who have been kicked off for misuse--this could refuse to let them sign up. But be careful--adding configurable controls here boosts the programming effort. We should think carefully about whether there are controls we really need (the max # of machines one person can request is a fairly obvious one) 3. client for saying "I'm done" sends name and machine name via kerberized channel to 4. the real scheduler a. get next name from list b. tell machine control server (5) to correct password files c. send mail/zephyr to next name telling them they have machine xxxx 5. machine control server a. copy in standard password files (from afs land) b. add new user (if any) to password files (note: we should probably provide abilities in the real scheduler to 1. remind the user when they have been using the machine for longer than scheduled 2. notify the admin when the user has really overrun 3. track requested time versus actuals (minimal statistics) 4. track bins of requested time? 5. accept an "override" from a specific list of administrators to force return of machine to use We may also want to do the "class schedule" variation--given a set of machines and a schedule of use (e.g., name, machine, start, duration; repeat) at those times, force the changeover of users. Probably also want to provide some basic admin tools -- view the list? maybe a "kill this entry in the list"? change the machine list can probably be an AFS file--just edit it. Anyway, some tools.