进程模块注释完善

    鸿蒙研究站 | http://weharmonyos.com (国内)
              | https://weharmony.github.io (国外)
    论坛 | http://bbs.weharmonyos.com
    文档中心 | http://open.weharmonyos.com
    参考手册 | http://doxygen.weharmonyos.com
上级 31b2b250
......@@ -289,7 +289,6 @@
据说喜欢 **点赞 + 分享** 的,后来都成了大神。:) [ >> 查看捐助名单](./donate.md)
![](https://weharmonyos.oss-cn-hangzhou.aliyuncs.com/resources/common/so1so.png)
```
互联网从业十五年,计算机硕士,技术副总裁
关注我,持续更新四十年,即聊技术也谈人生
......
......@@ -33,13 +33,13 @@
#include "los_process_pri.h"
#include "internal.h"
STATIC Container g_rootContainer;
STATIC ContainerLimit g_containerLimit;
STATIC Atomic g_containerCount = 0xF0000000U;
STATIC Container g_rootContainer;//根容器
STATIC ContainerLimit g_containerLimit;//所有类型容器上限
STATIC Atomic g_containerCount = 0xF0000000U;//容器数量
#ifdef LOSCFG_USER_CONTAINER
STATIC Credentials *g_rootCredentials = NULL;
#endif
//获取一个容器
UINT32 OsAllocContainerID(VOID)
{
return LOS_AtomicIncRet(&g_containerCount);
......@@ -108,7 +108,7 @@ UINT32 OsContainerLimitCheck(ContainerType type, UINT32 *containerCount)
SCHEDULER_UNLOCK(intSave);
return LOS_OK;
}
//设置容器上限
UINT32 OsSetContainerLimit(ContainerType type, UINT32 value)
{
UINT32 intSave;
......
......@@ -36,7 +36,7 @@
#ifdef LOSCFG_PID_CONTAINER
STATIC UINT32 g_currentPidContainerNum;
STATIC UINT32 g_currentPidContainerNum;//进程类容器当前数量
STATIC LosProcessCB *g_defaultProcessCB = NULL;
STATIC LosTaskCB *g_defaultTaskCB = NULL;
......@@ -252,7 +252,7 @@ VOID OsPidContainerDestroyAllProcess(LosProcessCB *curr)
}
}
}
//创建一个新的进程容器
STATIC PidContainer *CreateNewPidContainer(PidContainer *parent)
{
UINT32 index;
......
......@@ -168,14 +168,14 @@ UINT32 OsProcessAddNewTask(UINTPTR processID, LosTaskCB *taskCB, SchedParam *par
*/
ProcessGroup *OsCreateProcessGroup(LosProcessCB *processCB)
{
ProcessGroup *pgroup = LOS_MemAlloc(m_aucSysMem1, sizeof(ProcessGroup));
ProcessGroup *pgroup = LOS_MemAlloc(m_aucSysMem1, sizeof(ProcessGroup));//分配一个进程组
if (pgroup == NULL) {
return NULL;
}
pgroup->pgroupLeader = (UINTPTR)processCB;
LOS_ListInit(&pgroup->processList);
LOS_ListInit(&pgroup->exitProcessList);
pgroup->pgroupLeader = (UINTPTR)processCB;//指定进程组负责人
LOS_ListInit(&pgroup->processList);//初始化组员链表
LOS_ListInit(&pgroup->exitProcessList);//初始化僵死进程链表
LOS_ListTailInsert(&pgroup->processList, &processCB->subordinateGroupList);
processCB->pgroup = pgroup;
......@@ -617,8 +617,8 @@ STATIC VOID SystemProcessEarlyInit(LosProcessCB *processCB)
#ifdef LOSCFG_KERNEL_CONTAINER
OsContainerInitSystemProcess(processCB);
#endif
if (processCB == OsGetKernelInitProcess()) {
OsSetMainTaskProcess((UINTPTR)processCB);
if (processCB == OsGetKernelInitProcess()) {//2号进程
OsSetMainTaskProcess((UINTPTR)processCB);//将内核根进程设为主任务所属进程
}
}
/*! 进程模块初始化,被编译放在代码段 .init 中*/
......@@ -662,7 +662,7 @@ UINT32 OsProcessInit(VOID)
#ifdef LOSCFG_KERNEL_PLIMITS
OsProcLimiterSetInit();
#endif
SystemProcessEarlyInit(OsGetIdleProcess());
SystemProcessEarlyInit(OsGetIdleProcess());//初始化 0,1,2号进程
SystemProcessEarlyInit(OsGetUserInitProcess());
SystemProcessEarlyInit(OsGetKernelInitProcess());
return LOS_OK;
......@@ -2435,7 +2435,7 @@ LITE_OS_SEC_TEXT LosProcessCB *OsGetKernelInitProcess(VOID)
{
return &g_processCBArray[OS_KERNEL_ROOT_PROCESS_ID];
}
/// 获取空闲进程,0号进程为空闲进程,该进程不干活,专给CPU休息的。
LITE_OS_SEC_TEXT LosProcessCB *OsGetIdleProcess(VOID)
{
return &g_processCBArray[OS_KERNEL_IDLE_PROCESS_ID];
......
......@@ -57,10 +57,10 @@
typedef enum {
CONTAINER = 0,
PID_CONTAINER,
PID_CHILD_CONTAINER,
PID_CONTAINER, //进程容器
PID_CHILD_CONTAINER, //子进程容器
UTS_CONTAINER,
MNT_CONTAINER,
MNT_CONTAINER, //挂载容器
IPC_CONTAINER,
USER_CONTAINER,
TIME_CONTAINER,
......
......@@ -77,7 +77,7 @@ typedef struct {
#endif
/*! 进程组结构体*/
typedef struct ProcessGroup {
UINTPTR pgroupLeader; /**< Process group leader is the the process that created the group */
UINTPTR pgroupLeader; /**< Process group leader is the the process that created the group | 负责创建进程组的进程首地址*/
LOS_DL_LIST processList; /**< List of processes under this process group | 属于该进程组的进程链表*/
LOS_DL_LIST exitProcessList; /**< List of closed processes (zombie processes) under this group | 进程组的僵死进程链表*/
LOS_DL_LIST groupList; /**< Process group list | 进程组链表,上面挂的都是进程组*/
......@@ -138,13 +138,13 @@ typedef struct ProcessCB {
#endif
struct rlimit *resourceLimit; ///< 每个进程在运行时系统不会无限制的允许单个进程不断的消耗资源,因此都会设置资源限制。
#ifdef LOSCFG_KERNEL_CONTAINER
Container *container;
Container *container; ///< 内核容器
#ifdef LOSCFG_USER_CONTAINER
struct Credentials *credentials;
struct Credentials *credentials; ///< 用户身份证
#endif
#endif
#ifdef LOSCFG_PROC_PROCESS_DIR
struct ProcDirEntry *procDir;
struct ProcDirEntry *procDir; ///< 目录文件项
#endif
#ifdef LOSCFG_KERNEL_PLIMITS
ProcLimiterSet *plimits;
......@@ -320,19 +320,19 @@ STATIC INLINE BOOL OsProcessIsPGroupLeader(const LosProcessCB *processCB)
* @ingroup los_process
* ID of the kernel idle process
*/
#define OS_KERNEL_IDLE_PROCESS_ID 0U
#define OS_KERNEL_IDLE_PROCESS_ID 0U //0号进程为空闲进程
/**
* @ingroup los_process
* ID of the user root process
*/
#define OS_USER_ROOT_PROCESS_ID 1U
#define OS_USER_ROOT_PROCESS_ID 1U //1号为用户态根进程
/**
* @ingroup los_process
* ID of the kernel root process
*/
#define OS_KERNEL_ROOT_PROCESS_ID 2U
#define OS_KERNEL_ROOT_PROCESS_ID 2U //1号为内核态根进程
#define OS_TASK_DEFAULT_STACK_SIZE 0x2000 ///< task默认栈大小 8K
#define OS_USER_TASK_SYSCALL_STACK_SIZE 0x3000 ///< 用户通过系统调用的栈大小 12K ,这时是运行在内核模式下
#define OS_USER_TASK_STACK_SIZE 0x100000 ///< 用户任务运行在用户空间的栈大小 1M
......
......@@ -34,7 +34,7 @@
STATIC ProcIPCLimit *g_rootIPCLimit = NULL;
#define PLIMIT_IPC_SHM_LIMIT_MAX 0xFFFFFFFF
//IPC限额初始化
VOID OsIPCLimitInit(UINTPTR limite)
{
ProcIPCLimit *plimite = (ProcIPCLimit *)limite;
......
......@@ -40,17 +40,17 @@ extern "C" {
#endif /* __cplusplus */
typedef struct ProcIPCLimit {
UINT32 mqCount;
UINT32 mqCount;//当前队列个数
UINT32 mqFailedCount;
UINT32 mqCountLimit;
UINT32 shmSize;
UINT32 mqCountLimit;//队列个数上限
UINT32 shmSize;//
UINT32 shmFailedCount;
UINT32 shmSizeLimit;
UINT32 shmSizeLimit;//共享内存上限
} ProcIPCLimit;
enum IPCStatType {
IPC_STAT_TYPE_MQ = 0,
IPC_STAT_TYPE_SHM = 3,
IPC_STAT_TYPE_MQ = 0,//消息队列
IPC_STAT_TYPE_SHM = 3,//共享内存
IPC_STAT_TYPE_BUT // buttock
};
......
......@@ -65,19 +65,19 @@ enum ProcLimiterID {
#ifdef LOSCFG_KERNEL_IPC_PLIMIT
PROCESS_LIMITER_ID_IPC,
#endif
PROCESS_LIMITER_COUNT,
PROCESS_LIMITER_COUNT,//进程
};
//容器限额情况
typedef struct {
#ifdef LOSCFG_KERNEL_MEM_PLIMIT
UINT64 memUsed;
UINT64 memUsed;//内存使用情况
#endif
#ifdef LOSCFG_KERNEL_IPC_PLIMIT
UINT32 mqCount;
UINT32 shmSize;
UINT32 mqCount;//
UINT32 shmSize;//共享内存大小
#endif
#ifdef LOSCFG_KERNEL_SCHED_PLIMIT
UINT64 allRuntime;
UINT64 allRuntime;//调度运行时情况
#endif
} PLimitsData;
......
git add -A
git commit -m ' 增加支持网络容器和容器限额功能
git commit -m ' 进程模块注释完善
鸿蒙研究站 | http://weharmonyos.com (国内)
| https://weharmony.github.io (国外)
论坛 | http://bbs.weharmonyos.com
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册