MentOS  0.8.0
The Mentoring Operating System
Classes | Macros | Typedefs | Functions
process.h File Reference

Process data structures and functions. More...

Go to the source code of this file.

Classes

struct  sched_entity_t
 This structure is used to track the statistics of a process. More...
 
struct  thread_struct_t
 Stores the status of CPU and FPU registers. More...
 
struct  task_struct
 this is our task object. Every process in the system has this, and it holds a lot of information. It’ll hold mm information, it’s name, statistics, etc.. More...
 

Macros

#define TASK_NAME_MAX_LENGTH   100
 The maximum length of a name for a task_struct.
 
#define DEFAULT_STACK_SIZE   (1 * M)
 The default dimension of the stack of a process (1 MByte).
 

Typedefs

typedef struct sched_entity_t sched_entity_t
 This structure is used to track the statistics of a process. More...
 
typedef struct thread_struct_t thread_struct_t
 Stores the status of CPU and FPU registers.
 
typedef struct task_struct task_struct
 this is our task object. Every process in the system has this, and it holds a lot of information. It’ll hold mm information, it’s name, statistics, etc..
 

Functions

int init_tasking (void)
 Initialize the task management. More...
 
task_structprocess_create_init (const char *path)
 Create and spawn the init process. More...
 

Detailed Description

Process data structures and functions.

Typedef Documentation

◆ sched_entity_t

This structure is used to track the statistics of a process.

While the other variables also play a role in CFS decisions'algorithm, vruntime is by far the core variable which needs more attention as to understand the scheduling decision process.

The nice value is a user-space and priority 'prio' is the process's actual priority that use by Linux kernel. In linux system priorities are 0 to 139 in which 0 to 99 for real time and 100 to 139 for users. The nice value range is -20 to +19 where -20 is highest, 0 default and +19 is lowest. relation between nice value and priority is : PR = 20 + NI.

Function Documentation

◆ init_tasking()

int init_tasking ( void  )

Initialize the task management.

Returns
1 success, 0 failure.

◆ process_create_init()

task_struct* process_create_init ( const char *  path)

Create and spawn the init process.

Parameters
pathPath of the init program.
Returns
Pointer to init process.