Place : Joe's house
People attended : Joe, SAP, Bala, Mani, Keyan, Bara
The different tasks we have decided to write now are
(0) Task 0 (root task, still unnamed!!)
(1) Memory manager
(2) Pager and Physical memory management
(3) Process Manager
The detailed functionalities of different tasks are below.
Task 0 :
- Has to maintain a table whose entries are the different modules to be loaded. The base addresses of these modules can be obtained from the resource table that is provided by the kernel.
- Has to load (start) all the modules.
- Has to put an entry in the task table after a process has been scheduled to run by the Process Manager.
Memory Manager :
- Has to process the requests for memory from the Process Manager while creating a new process.
- Has to assign (not allocate) virtual memory pages for the requested process.
- Has to maintain a structure that maps the different pages allocated to different processes.
- Has to define policies on which processes can access which pages and how many number of pages can be allocated to the different processes.
- Has to maintain the memory map (forgot whats this, someone please explain).
- Has to free the entries in the structure defined above, when a process is done (completed).
Pager :
- Has to handle the page faults.
- Has to maintain information of which pages should not be swapped out (for examples, the pages of this Pager, pages of the swap device, etc).
- Has to maintain the information abt which sections in the secondary storage belongs to which process. This is used when a new process is started to run (the next point says abt this).
- Has to allocate pages when the page fault occurs (when the process is loaded to run for the first time).
- Has deallocate pages when a process is done.
Process Manager :
- Maintains the process table.
- Scheduling of processes is done here.
- Has to make an ITC (to make an entry in the task table), when a process is scheduled to run.
- Has to receive fork requests and process them.
- Setting the priorities for different processes.
- A process table entry caotains the following fields
pid
uid, gid
euid, eguid
status
registers
stack
priority
is this process has an entry in the task table
PS : I have written all those that have come to to my mind. Its now like a scrap. You need to make changes so that the final copy is proper