| Cormack, G. V. 1988. A micro-kernel for concurrency in C. Software---Practice and Experience, 18(5):485--92. |
....and invoking the scheduler. It is necessary for the interrupt handler to be aware of atomic thread operations. For example, a thread should not be interrupted in the middle of a memory allocation operation. Our framework adopts the critical sections approach described in Cormack s micro kernel [1]. When the current running thread enters a critical region, it sets a global static variable CRITICAL . The interrupt handler checks the value of CRITICAL , and if it is set, returns immediately and thus ignores the current timer interrupt. It is safe to multiplex the current thread if it is ....
....counter and see if it falls within the range of the region. If it does, the thread is in an atomic operation and should not be interrupted. All the functions to be put in the region can be implemented by the front end writer as front end services. This technique is mentioned in the Cormack paper [1], also the Hanson book [2] Our interrupt handler can be easily modified to support this synchronization technique as follows : void interrupt handler(int sig, int code, struct sigcontext scp) check if the thread is in a critical section if (scp sc pc = unsigned long) MONITOR ....
Cormack, G. V. 1988. A micro-kernel for concurrency in C. Software---Practice and Experience, 18(5):485--92.
....register. The page fault will be caught by the hardware and handed to the operating system, which can then pass control to the user process. The user process then has to find all the registers of the faulting procedure; these registers are the roots of the accessible data. Appel[3] and Cormack[13] both describe schemes for finding these registers; Cormack s is simpler and more reliable. The ML program and the garbage collector behave like two processes (threads) running in the same address space: while one thread executes, the other s registers are saved. When ML suspends itself (either ....
G. V. Cormack. A micro-kernel for concurrency in C. Software---Practice/Experience, 18(5):485--492, 1988.
....to the new beginning of the free space region, and it clears the assignment list pointer. Finally, the trap handler returns. The saved registers are popped back into the machine registers, and the mutator resumes at the beginning of the instruction that trapped. This time it succeeds. Cormack[12] describes another good scheme for access to registers by user processes. Conclusion Generational garbage collection is a great thing for languages that don t have too many assignments. The garbage collector becomes so fast that the overhead of creating records can dominate the overhead of ....
G. V. Cormack, "A micro-kernel for concurrency in C," Software --- Practice/Experience, vol. 18, no. 5, pp. 485-492.
....Most of the nub is machine independent, but it has a few machine dependencies. The target architecture determines the type of the signal handler and whether, as on the MIPS and SPARC, the struct sigcontext can serve as a context or, as on the VAX and 68020, another representation must be used [8]. On a big endian MIPS, nub code for doubleword fetches and stores of saved floating point registers must swap the words. 3 Each machine has a different one line pause procedure, which stops the target program before it calls main. The VAX and 68020 require assembly code to save and restore ....
G. V. Cormack. A micro-kernel for concurrency in C. Software---Practice & Experience, 18(5):485--491, May 1988.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC