小编Kar*_*uru的帖子

106
推荐指数
8
解决办法
11万
查看次数

条件变量与信号量

什么时候应该使用信号量,什么时候应该使用条件变量(CondVar)?

multithreading synchronization operating-system semaphore mutual-exclusion

92
推荐指数
4
解决办法
7万
查看次数

基于轮询或中断的方法

什么时候应该使用轮询方法什么时候应该使用基于中断的方法?是否存在可以使用两者的情况?

embedded operating-system processor rtos interrupt

39
推荐指数
4
解决办法
4万
查看次数

29
推荐指数
3
解决办法
2万
查看次数

27
推荐指数
5
解决办法
4万
查看次数

预取指令

看起来预取用法的一般逻辑是,如果代码忙于处理直到预取指令完成其操作,则可以添加预取.但是,似乎如果使用过多的预取指令,那么它会影响系统的性能.我发现我们需要先获得没有预取指令的工作代码.稍后我们需要在各种代码位置中进行预取指令的各种组合,并进行分析以确定由于预取而实际可能改进的代码位置.有没有更好的方法来确定应该使用预取指令的确切位置?

embedded assembly arm mips prefetch

19
推荐指数
2
解决办法
7459
查看次数

避免C程序中的主(入口点)

是否可以避免C程序中的入口点(主).在下面的代码中,是否可以在func()不通过main()以下程序调用via的情况下调用该调用?如果是,如何做,何时需要,为什么要给出这样的规定?

int func(void)
{
     printf("This is func \n");
     return 0;
}

int main(void)
{
     printf("This is main \n");
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

c compiler-construction operating-system function entry-point

17
推荐指数
3
解决办法
7874
查看次数

Linux内核模块中module_init和init_module有什么区别?

我一直试图移植一些Linux驱动程序,并意识到Linux的内核版本2.4和2.6之间存在很大差异.

在2.4版本的内核中,模块编程如下 -

#define MODULE
#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)      
{ 
printk(KERN_INFO "Hi \n"); 
return 0; 
}

void cleanup_module(void)  
{ 
printk(KERN_INFO "Bye \n"); 
}
Run Code Online (Sandbox Code Playgroud)

但是,对于2.6版本的内核,必须对模块进行以下操作 -

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>

static int hi_init(void)
{
    printk(KERN_ALERT "Hi \n");
    return 0;
}

static void hi_exit(void)
{
    printk(KERN_ALERT "Bye \n");
}

module_init(hi_init);
module_exit(hi_exit);
Run Code Online (Sandbox Code Playgroud)

Kernel 2.6中这种更改的优点是什么?为什么Linux内核2.6需要进行更改?

linux operating-system kernel linux-device-driver linux-kernel

11
推荐指数
2
解决办法
1万
查看次数

谁决定了角色的排序

我有一个基于以下程序的查询 -

char ch;
ch = 'z';
while(ch >= 'a')
{
    printf("char is  %c and the value is %d\n", ch, ch);
    ch = ch-1;
}
Run Code Online (Sandbox Code Playgroud)

为什么在上述程序中不保证打印整套小写字母.如果C对内部形式的字符排序没有多少保证,那么实际上是谁以及如何做?

c operating-system char

9
推荐指数
1
解决办法
352
查看次数

为什么 MATLAB 使用列主序?

我知道 C 语言使用行优先顺序来存储数组,而 MATLAB 使用列优先顺序。

MATLAB 选择列优先顺序有什么具体原因吗?通过选择在内存中按列排列多维数组(即列是连续的),MATLAB 是否会显着获益?

c matlab matrix multidimensional-array

5
推荐指数
1
解决办法
1329
查看次数