首页 > 试题广场 >

linux 中的内核线程和普通进程有哪些区别?

[问答题]
linux 中的内核线程和普通进程有哪些区别?

1 内核线程没有用户地址空间,只能使用大于 PAGE_OFFSET(3G) 的地址空间,这通过将 mm 指针设为 NULL 来实现。也就是说内核线程是没有用户上下文的进程。而普通进程不管在用户态还是内核态,可以使用 4GB 的地址空间。

2 )内核线程只工作在内核空间,不会切换至用户空间运行。但是,内核线程同样是可调度的 (schedulable) 和可抢占的 (preemptable) 而普通进程既可在内核态工作,也可以在用户态工作。

3 )内核线程执行内核函数,普通进程只能通过系统调用才能执行内核函数。

发表于 2017-05-16 19:55:42 回复(1)