April 23, 2008 5 Comments
Following up on my previous post about Life Thrash I have carried on thinking about the parallels between operating systems and life. The two suggestions so far “switch off and on again” and “upgrade to a newer model” are a bit tricky to implement – however a software upgrade does not seem out of the question! Sticking with process control in particular I feel that I am currently running a poor algorithm that loses processes, can fail to complete, and works best when simply just doing one thing (but not necessarily the right thing). In OS terms this is like an old version of DOS and things would be a whole lot better if I was running Unix.
So what is a decent process management system. A quick Google for Unix process management shows that there are likely to be some good guides out there, and I may even see if I still have my lecture notes (in troff) on a CD somewhere, but for the moment I want to just describe it from memory so apologies if there are some mismatches here.
Useful concepts are: processes, priorities, nice, running, sleeping, zombie, time slice. Each thing that can be run is a process, the priority is how much you would like it to run, nice is a way to lower (or raise) that priority. Processes can be running, sleeping waiting their turn to run, or a zombie which is something left around that can’t do anything anymore. Just had a check – I left out stopped, which I think is something that needs to be started again.
The key then is to apply a decent algorithm that gives each process a turn, but while a process is having its turn the priority reduces so that no process will miss out for long. Swapping processes in and out switches the context and the OS will try to do this fast enough so multi-tasking appears to work even though the reality may well be that the machine only has one processor.
OK well my time slice on this task is now up and I will switch to something else (sleeping). I hope that there is enough here to help me think about how actions in life can also be viewed as processes. I want to explore what can be done to help control these: process lists, contexts, priorities and time slices. I think the answer will look a lot like David Allen’s Getting Things Done and that will be good as that opens up some tools that can be used to help.