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.