Saturday, October 2, 2010

The Minix Startup Sequence Call Flow



2 comments:

  1. This is really cool. Can you add some more detail into what GDT is, and what you mean when you say "initializes the slots in the process table".

    Also would like to see a similar diagram on how scheduling works. Not the all familiar algorithm but how minix does it.

    ReplyDelete
  2. I will explain GDT and scheduling in upcoming posts. Regarding the process table, please refer to my earlier post: http://vishy-ranganath.blogspot.com/2009/12/minix-process-table.html

    The process table is the central data structure managed jointly by the kernel, process manager (pm) and the file system (fs). The process table is an array of 'proc' structs in which there is one 'proc' struct for each running process in the system. When minix starts up, the first few processes come from the boot image. During startup, the process table is set up with these processes. That is what I mean by 'initializing the slots'. Almost everything that happens in the Minix OS (including context switching) depends on the data in the process table. That is why it is important to set it up as early as possible during startup.

    ReplyDelete