|
||||
Programs and Process |
Process | Note that, in Clicker, processes are quite heavy objects, that deal with a whole "private" address space, personnal files and other memory objecs, etc. Processes may be local (on your machine) or remote (on another machine). Clicker Network Server will manage "remote control" for each remote process you deal with. A process is mainly a running program so, the main system call you'll get to create a process is to run a program |
Thread | In one process, you may have several thread, each one running its own instruction flow, with a personnal stack and register bank. Because they are part of the same process, threads are supposed to work cooperatively rather than concurently. This means thread are not protected from each other by the system unless the program is in *SUSPICIOUS* mode. Clicker Scheduler deals only with thread. A process-scheduler may be added if you - for example - want to swap back a whole program you're not using from a while. (called a long-term scheduler). |
Job | Jobs are "logic unit of work", such as requests to a server, or some computations. Jobs are not immediately supported by kernel but require a library to run. A job is consisting of a instruction list and a state. This State is more general that a processor state: it's made with each local var the job uses. Jobs should be a migrable stuff, which means you might be able to define a job on one machine and execute it on another. Jobs will probably be interpreted rather than binaries, for security and communication purpose. |