Monday, June 27, 2005

Minor improvements

I have started reading the CSP book. In summary it covers a mathematical description of processes and interaction of processes. There are also extension papers/books to it; one of them adding a timing factor, and the other a priority factor. There's also the occam language that implements the CSP model, it is said to be similar to handel-C. Hopefully I will finish reading it soon, and understand concurrency better.

I am also reading Advanced Programming in the Unix Environment. Because I am already familiar with many of the concepts, and it would make sense to skip definitions of syscalls like setuid(), mkdir() etc. I'm almost in the middle now. I need to read more on process interaction/shared memory, which shouldn't be difficult. Then I'm gonna look at L4 IPC implementation.

I have also thought of a way to install an IRQ handler in a one-liner, simply store the already-encoded MOV PC [r0] instruction in 0x18, where r0 contains some address into which you also store a pointer to your handler function. I just learned if you do a cast like (unsigned int) func_name, you get the address of the function. It makes sense, but I didn't think you could do that for a function symbol. Also this would work only for the simplest cases (not for an OS) since for a global handler, you would want your interrupt handler text be seperately copied to some location in low-memory. This is because otherwise your interrupt handler would come embedded within the single application that you load. You wouldn't have a global interrupt handler for multiple tasks.

I'll see how Unix and CSP goes, and then get back to L4, interrupts, assembler etc.

0 Comments:

Post a Comment

<< Home