mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
60 lines
3.2 KiB
Plaintext
Executable File
60 lines
3.2 KiB
Plaintext
Executable File
SITS CONVENTIONS
|
||
|
||
THIS FILE CONTAINS INTERNAL CONVENTIONS IN SITS. SHOULD NOT ONLY CONTAIN THE CONVENTION
|
||
BUT ALSO A SHORT JUSTIFICATION, AND WHAT WOULD HAVE TO BE CHANGED IF THE CONVENTION IS
|
||
CHANGED. THE ENTRIES SHOULD BE SORTED BY TOPIC.
|
||
|
||
UPT'S:
|
||
1. THE IN CORE BIT IS NOT NECESARILY ACCURATE ON THE INTERRUPT LEVEL. THIS WAS
|
||
ADOPTED BECAUSE IT CAUSES LESS PROCESSING ON THE UPT AT INTERRUPT LEVEL. TO
|
||
CHANGE IT, IT IS ONLY NECESSARY TO MOVE THE INSTRUCTION IN DSKRQ, TO BE BEFORE
|
||
RESTORING PRIORITY LEVEL.
|
||
|
||
2. THE CIRCULAR LIST STRUCTURE OF UPT'S CANNOT BE DELETED FROM ON THE INTERRUPT
|
||
LEVEL. THIS IS TO AVOID THE PROBLEM OF A PROCESS LINKING THROUGH THE CIRCULAR
|
||
LIST, AND GETTING ISOLATED IN A UPT THAT WAS LINKED OUT. THIS CANNOT BE CHANGED
|
||
UNLESS SOME WAY IS DEVISED TO INDICATE WHO IS LINKING THROUGH A GIVEN LIST
|
||
AT A PARTICULAR TIME.
|
||
|
||
3. THE A AND W BITS ARE UPDATED WHENEVER THE SEGMENTATION REGISTERS ARE UNLOADED.
|
||
THIS IS ONLY IN SPHERES. FOR FUPT'S THE BITS MUST BE SET MANUALLY (WHENEVER
|
||
A WRITE IS DONE INTO THE PAGE, OR BEFORE THE PAGE IS UNLOADED. THE M (MODIFIED)
|
||
BIT IS THE INCLUSIVE OR OF THE W BITS, AND IS ONLY CLEARED WHEN THE PAGE IS
|
||
SWAPPED OUT TO SOURCE. IT INDICATES IF THE PAGE HAS BEEN MODIFIED SINCE
|
||
BEING WRITTEN TO SOURCE. THE N BIT TELLS IF A PAGE HAS JUST COME FROM SOURCE.
|
||
IT INHIBITS THE INCLUSIVE OR OF THE W BIT, INTO THE M BIT.
|
||
|
||
4. THE UPT STRUCTURE MAY NOT BE ACCURATE ON THE INTERRUPT LEVEL. THIS THEN
|
||
PREVENTS AN INTERRUPT ROUTINE FROM LINKING THROUGH THE UPTS.
|
||
ANY GIVEN UPT, HOWEVER WILL BE AT LEAST PARTIALLY ACCURATE.
|
||
|
||
5. BEFORE CREATING A UPT TO HANG OFF OF A FPT THE FPTLCK BIT MUST BE LOCKED.
|
||
THIS IS SO THAT THE FPT WILL NOT BE DELETED AND SO THAT THE COMMON START
|
||
AND LEGNTH FIELDS WILL NOT CHANGE.
|
||
|
||
6. THE A, W, M, AND N BITS ARE ONLY ACCURATE FOR THE GIVEN PAGE. FOR SWAPPING
|
||
PURPOSES, ALL THE UPT'S BITS IN THE CIRCULAR LIST MUST BE INCLUSIVE OR'ED
|
||
TO GET THE CORRECT STATUS. THIS LETS THE BIT MUNGING GO ON AT THE INTERRUPT
|
||
LEVEL. ALSO SINCE HOPEFULLY THERE WILL BE MORE UNLOADING OF THE SEGMENTATION
|
||
REGISTERS, THAN SWAPPING, THIS SHOULD SAVE TIME.
|
||
|
||
CAPABILITIES:
|
||
1. BEFORE A CAPABILITY CAN BE DELETED FROM THE C-LIST OF A SPHERE, THE SCLSLK MUST
|
||
BE LOCKED WITH A MINUS 1. THEN WHEN IT IS LOCKED, THE PROCESS NO. OF THE
|
||
LOCKER MUST BE PLACED INTO THAT LOCATION. THEN THE ENTIRE SPHERE MUST BE
|
||
STOPPED. THIS IS TO KEEP THE C-LIST IN A CONSISTENT STATE, WHILE THE DELETION
|
||
IS OCCURING. AN ALTERNATIVE IS TO REQUIRE EACH SYSTEM CALL TO ONLY DEPEND ON
|
||
THE CAPABILITY'S STATE AT THE START OF THE CALL.
|
||
|
||
2. A CAPABILITY SLOT THAT IS ABOUT TO BE USED, BUT THE CAPABILITY HASN'T ACTUALLY
|
||
BEEN CREATED YET, HAS A TYPE WORD OF -1. THIS IS TO KEEP THAT SLOT FROM BEING
|
||
USED, WHILE THE CAPABILITY IS IN THE PROCESS OF BEING CREATED. AN ALTERNATIVE
|
||
TO THIS IS CAUSING EACH CAPABILITY CREATE ROUTINE TO BE IN A PCLOSERABLE STATE
|
||
WHENEVER IT ACTUALLY IS READY TO PUT THE CAPABILITY INTO THE C-LIST.
|
||
|
||
DISKS:
|
||
1. IN ORDER TO SWAP SOMETHING OUT TO SOURCE, IT IS NECESSARY FOR THE ROUTINE THAT
|
||
MAKES THE REQUEST TO SET THE W BIT IN THE UPT'S IF THE PAGE HAS BEEN MODIFIED.
|
||
THIS IS BECAUSE THE DISK ROUTINES WILL JUST ASSUME THE PAGE AT SOURCE IS THE
|
||
SAME AS THE CURRENT ONE, AND NOT INITIATE THE TRANSFER.
|
||
|