Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不卤废丝
注释鸿蒙内核源码
提交
b86ae346
注释鸿蒙内核源码
项目概览
不卤废丝
/
注释鸿蒙内核源码
与 Fork 源项目一致
Fork自
鸿蒙内核源码分析 / 注释鸿蒙内核源码
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
注释鸿蒙内核源码
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b86ae346
编写于
10月 22, 2020
作者:
鸿蒙内核源码分析
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
鸿蒙源码分析系列篇
https://blog.csdn.net/kuangyufei
https://my.oschina.net/u/3751245
上级
48e126cb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
16 deletion
+23
-16
kernel/base/core/los_process.c
kernel/base/core/los_process.c
+14
-14
zzz/git/push.sh
zzz/git/push.sh
+9
-2
未找到文件。
kernel/base/core/los_process.c
浏览文件 @
b86ae346
...
...
@@ -61,8 +61,8 @@
extern
"C"
{
#endif
/* __cplusplus */
#endif
/* __cplusplus */
LITE_OS_SEC_BSS
LosProcessCB
*
g_runProcess
[
LOSCFG_KERNEL_CORE_NUM
];
// CPU内核个数
//单核CPU只有并发(Concurrent),多核才会有并行(Parallel) LITE_OS_SEC_BSS 和 LITE_OS_SEC_DATA_INIT 是告诉编译器这些全局变量放在哪个数据段
LITE_OS_SEC_BSS
LosProcessCB
*
g_runProcess
[
LOSCFG_KERNEL_CORE_NUM
];
// CPU内核个数
,这才是真正的并行
LITE_OS_SEC_BSS
LosProcessCB
*
g_processCBArray
=
NULL
;
// 进程池数组
LITE_OS_SEC_DATA_INIT
STATIC
LOS_DL_LIST
g_freeProcess
;
// 空闲状态下可供分配的进程,此时进程白纸一张
LITE_OS_SEC_DATA_INIT
STATIC
LOS_DL_LIST
g_processRecyleList
;
// 需要回收的进程列表
...
...
@@ -89,7 +89,7 @@ LITE_OS_SEC_TEXT_INIT VOID OsTaskSchedQueueDequeue(LosTaskCB *taskCB, UINT16 sta
OS_PROCESS_PRI_QUEUE_DEQUEUE
(
processCB
);
//进程出进程的就绪队列
}
#if (LOSCFG_KERNEL_SMP == YES)
#if (LOSCFG_KERNEL_SMP == YES)
//
if
(
OS_PROCESS_GET_RUNTASK_COUNT
(
processCB
->
processStatus
)
==
1
)
{
#endif
processCB
->
processStatus
|=
status
;
...
...
@@ -622,7 +622,7 @@ STATIC LosProcessCB *OsGetFreePCB(VOID)
return
processCB
;
}
//删除PCB块 其实是 PCB块回归进程池,先进入回收链表
STATIC
VOID
OsDeInitPCB
(
LosProcessCB
*
processCB
)
{
UINT32
intSave
;
...
...
@@ -632,28 +632,28 @@ STATIC VOID OsDeInitPCB(LosProcessCB *processCB)
return
;
}
OsProcessResourcesToFree
(
processCB
);
OsProcessResourcesToFree
(
processCB
);
//释放进程所占用的资源
SCHEDULER_LOCK
(
intSave
);
if
(
processCB
->
parentProcessID
!=
OS_INVALID_VALUE
)
{
LOS_ListDelete
(
&
processCB
->
siblingList
);
LOS_ListDelete
(
&
processCB
->
siblingList
);
//将进程从兄弟链表中摘除
processCB
->
parentProcessID
=
OS_INVALID_VALUE
;
}
if
(
processCB
->
group
!=
NULL
)
{
OsExitProcessGroup
(
processCB
,
&
group
);
OsExitProcessGroup
(
processCB
,
&
group
);
//退出进程组
}
processCB
->
processStatus
&=
~
OS_PROCESS_STATUS_INIT
;
processCB
->
processStatus
|=
OS_PROCESS_FLAG_EXIT
;
LOS_ListHeadInsert
(
&
g_processRecyleList
,
&
processCB
->
pendList
);
processCB
->
processStatus
&=
~
OS_PROCESS_STATUS_INIT
;
//设置进程状态为非初始化
processCB
->
processStatus
|=
OS_PROCESS_FLAG_EXIT
;
//设置进程状态为退出
LOS_ListHeadInsert
(
&
g_processRecyleList
,
&
processCB
->
pendList
);
//
SCHEDULER_UNLOCK
(
intSave
);
(
VOID
)
LOS_MemFree
(
m_aucSysMem1
,
group
);
(
VOID
)
LOS_MemFree
(
m_aucSysMem1
,
group
);
//释放内存
OsWriteResourceEvent
(
OS_RESOURCE_EVENT_FREE
);
return
;
}
//设置进程的名字
STATIC
UINT32
OsSetProcessName
(
LosProcessCB
*
processCB
,
const
CHAR
*
name
)
{
errno_t
errRet
;
...
...
@@ -1649,8 +1649,8 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsUserInitProcess(VOID)
return
LOS_OK
;
ERROR:
(
VOID
)
LOS_PhysPagesFreeContiguous
(
userText
,
initSize
>>
PAGE_SHIFT
);
OsDeInitPCB
(
processCB
);
(
VOID
)
LOS_PhysPagesFreeContiguous
(
userText
,
initSize
>>
PAGE_SHIFT
);
//释放物理内存块
OsDeInitPCB
(
processCB
);
//删除PCB块
return
ret
;
}
...
...
zzz/git/push.sh
浏览文件 @
b86ae346
git add
-A
git commit
-m
"鸿蒙源码分析系列篇 https://blog.csdn.net/kuangyufei https://my.oschina.net/u/3751245"
git push
git commit
-m
'鸿蒙源码分析系列篇 https://blog.csdn.net/kuangyufei
https://my.oschina.net/u/3751245'
git push origin
git push gitee_origin master
git push github_origin master
#git remote add github_origin git@github.com:kuangyufei/kernel_liteos_a_note.git
#git remote add gitee_origin git@gitee.com:weharmony/kernel_liteos_a_note.git
#git remote add csdn_origin git@codechina.csdn.net:kuangyufei/kernel_liteos_a_note.git
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录