我有一个关于linux调度程序和一些其他类似的内核系统调用的一般性问题.
linux调度程序是否被视为"进程",并且对调度程序的每次调用都需要上下文切换,就像它只是另一个进程一样?
假设我们有一个时钟标记,它会中断当前正在运行的用户模式进程,现在我们必须调用调度程序.对调度程序本身的调用是否会引发上下文切换?调度程序是否有自己的一组寄存器和U区域以及每次调用时必须恢复的内容?
并且所述问题适用于许多其他系统调用.内核进程在上下文切换方面的行为类似于常规进程,唯一的区别是它们拥有更多权限并可以访问cpu吗?
我问这个是因为上下文切换开销很昂贵.调用调度程序本身会激发上下文切换以恢复调度程序状态听起来很奇怪,之后调度程序调用另一个进程来运行并再次调用另一个上下文切换.
我有一个日期类型定义为typedef char*DateTime; 格式为"dd/mm/yyyy-hh:mm",例如"08/08/2012-12:00"
我想分配n个字符串,即"日期".以下是什么问题?
DateTime* dates = (DateTime* ) malloc(sizeof(char*) * n);
for (int i = 0; i <= n; i++) {
dates[i] = malloc(sizeof(char)*16);
if (dates[i] == NULL) {
free(dates);
return NULL;
}
}
Run Code Online (Sandbox Code Playgroud)