小编Pav*_*ath的帖子

OS调度与RTOS调度的区别

考虑功能/过程,

void task_fun(void) { while(1) } 如果这个过程是在普通的PC操作系统上运行的话,它会很乐意永远运行.但是在手机上,随着硬件监视器到期并重置系统,它肯定会在几分钟内崩溃整个手机.在PC上,此过程在其到期后的规定时间片将被安排出来,并且将安排新的可运行过程运行.

我怀疑为什么我们不能在RTOS上应用相同的策略?如果在RTOS上实施这样的调度策略,所涉及的性能限制是什么?

另一个疑问是我检查了schedule()我的PC OS(Ubuntu)和我的手机的功能,它也运行Linux内核.我发现它们几乎都是一样的.看门狗在我手机上的处理方式在哪里?我的假设是调度程序是在让进程运行之前启动监视程序的人.有人能指出我在代码中的位置吗?

linux operating-system scheduling rtos linux-kernel

7
推荐指数
1
解决办法
5022
查看次数

列出所有不以数字开头的文件

我想检查一下我的所有关键文件/proc.但是/proc有无数的目录对应于正在运行的进程.我不希望列出这些目录.所有这些目录的名称只包含数字.由于我在正则表达式中很差,有人能告诉我regex我需要发送的内容,ls以便搜索名称中包含数字的文件/目录吗?

更新:感谢所有的回复!但我希望有一个ls单独的解决方案而不是ls+grep解决方案.ls到目前为止提供的独立解决方案似乎不起作用!

regex linux shell ls

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

计算加泰罗尼亚数字mod素数

以下是问题描述:

c[n]是加泰罗尼亚数量np是一个大素如.1000000007

我需要计算范围c[n] % p从哪里来n{1,2,3,...,1000}

我遇到的问题是,在32位计算机上,当你为这么大的整数计算加泰罗尼亚数时会出现溢出.我熟悉模运算.也

(a.b) % p = ((a % p)(b % p)) % p 
Run Code Online (Sandbox Code Playgroud)

这个公式可以帮助我分别逃脱分子中的溢出,但我不知道如何处理分母.

c c++ 32-bit

7
推荐指数
1
解决办法
2706
查看次数

插入外部交叉编译的SPARC Linux模块时重定位错误

首先:我不是专家,所以请原谅我试图解释自己的任何错误.

我正在尝试使用Sparc-为SPARC机器交叉编译外部Linux模块Linux-GCC-4.4.2.Linux内核的版本是2.6.36.4-00037-g059aa91-dirty.它已经使用LEON处理器中的一些文件进行了修补.构建流程提供给我和它使用LinuxBuild,BuildrootBusybox.我正在尝试制作32位操作系统.

一切似乎都有效,但在我编译模块并尝试将其发送到SPARC系统后,我收到此错误:

module hellok:  Unknown relocation: 6
Run Code Online (Sandbox Code Playgroud)

这个错误来自于~/linuxbuild-1.0.3/linux/linux-2.6-git/arch/sparc/kernel/module.c 我将为完整性提供整个方法:

int apply_relocate_add(Elf_Shdr *sechdrs,
           const char *strtab,
           unsigned int symindex,
           unsigned int relsec,
           struct module *me)
{
unsigned int i;
Elf_Rela *rel = (void *)sechdrs[relsec].sh_addr;
Elf_Sym *sym;
u8 *location;
u32 *loc32;

for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
    Elf_Addr v;

    /* This is where to make the change */
    location = (u8 *)sechdrs[sechdrs[relsec].sh_info].sh_addr
        + …
Run Code Online (Sandbox Code Playgroud)

sparc cross-compiling relocation kernel-module linux-kernel

7
推荐指数
1
解决办法
687
查看次数

为什么包含main方法的类没有实例化,在Java中仍然可以?

我开始编写我的第一个Java程序.

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,程序运行正常.但根据我的OOP知识,a class只是一个抽象的概念,并没有生出来,直到你创造了一个同类的对象.然后,通过该对象,我们调用类中的方法/函数.

但是在这个特定的例子中,似乎main即使没有创建对象也会调用该方法class HelloWorldApp

对象是否在其他地方创建?如果是这样,那部分代码如何知道我的class名字HelloWorldApp

java oop methods program-entry-point

7
推荐指数
1
解决办法
2335
查看次数

如何在UNIX上使用带有env变量名的特殊字符和目录删除目录名

我在这个存储库中搜索过,我没有找到任何类似的问题或者我的搜索结果不正确.

我在客户端环境中遇到此问题,自定义应用程序正在创建具有环境变量"$ SRCDIR"和"$ HOME"的目录以及创建这些目录的目录,本身就是HOME目录路径.如果我说rm -rf $HOME那么当前目录的$ HOME下的所有文件和子目录都将被删除.如何删除这些不需要的目录.

-rw-r--r--  1 grp domain users 418051450 Apr 18 18:09 $SRCDIR
-rw-r--r--  1 grp domain users 418051450 Apr 18 18:09 $HOME
Run Code Online (Sandbox Code Playgroud)

还有一些目录是垃圾字符,如下例所示.

-rwxr-xr-x  1 grp domain users  0 Feb  7  2106 ??????w?O???*????_6??t??Ó¡?>?tP??Ñ?|?C
Run Code Online (Sandbox Code Playgroud)

我该如何删除它们?

unix linux special-characters

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

为什么我必须使用close()来关闭文件?

我正在学习一些文件功能,因此有疑问.

我很好奇为什么有必要打电话close()来关闭文件?如果我close()在读/写文件后没有打电话,会发生什么事情?如果我打电话close(),我仍然可以使用文件描述符吗?

c operating-system

7
推荐指数
1
解决办法
7901
查看次数

什么是windows中的lstat()替代品?

在linux中,当stat()与断开的链接文件一起使用时,它会失败-1.所以我用了lstat()哪个成功了.

对于Windows中的相同情况,_stat()失败的快捷方式失败,但_lstat()在Windows中没有.请帮助lstat()在Windows中找到替代方案.

c stat

7
推荐指数
2
解决办法
7635
查看次数

如何在 C 中接收未命名结构作为函数参数?

昨天在解决这个问题时,我发现了一个奇怪的情况,即传递和接收未命名的结构作为函数参数。

例如,如果我有这样的结构,

int main ()
{
    struct {
        int a;
    } var;

    fun(&var);
}
Run Code Online (Sandbox Code Playgroud)

现在,原型应该是什么fun?我如何将该结构用作函数中的结构(指针)fun

c struct function-parameter function-prototypes

6
推荐指数
1
解决办法
2478
查看次数

ARM处理器上的BP寄存器(帧指针)相当于什么?

在intel平台上,BP用于指向堆栈帧的开头并访问参数[bp+0x??]和局部变量[bp-0x??].

ARM中使用哪个寄存器?或者,仅基于SP的寻址?

[我没有自行编译和反汇编的基础设施.参考AAPCS对我没有帮助]

assembly arm calling-convention

6
推荐指数
1
解决办法
8172
查看次数