cpu在内核态与用户态下执行,进程数的差别
来源:互联网 发布:淘宝上买电动车靠谱吗 编辑:程序博客网 时间:2024/06/03 16:41
当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。在内核时,也可以不是进程而是中断程序,因此有一个进程数的差别。
其实处理机同一时刻只能执行一个进程。而要让处理机同时去执行多个进程,怎么办? 进程调度程序会把处理机划分成长短相同且很小的时间块,每个时间块执行一个进程,某个进程时间块用完后,回到就绪状态,换到下一个进程执行。这样轮流来执行,实现了处理机能一起一起执行多个进程。 当某个进程申请资源被占用或者启动I/O传输未完成,就处于等待状态。(此时它和其它进程不一样,它不再去争夺时间块,就相当于睡着了一样)当它所请求的资源被释放,或者启动I/O传输完成,那么就会由继续进行就绪状态,(这就好比它被唤醒了,回到就绪状态里,同其它里程争夺处理机的时间块。你的问题就是这个进程从睡着了,然后又被唤醒了。被唤醒后你不能马上就要求执行啊,因为处理机还要执行其它进程,而这个进程就要回到就绪状态,和其它进程一样却争夺处理机的执行时间块)
0 0
- cpu在内核态与用户态下执行,进程数的差别
- 在内核态执行用户空间程序
- 内核线程和用户态进程的cpu利用率过高时的调试方法
- linux内核地址空间与用户地址空间的差别
- Linux 环境下的内核态与用户态
- linux下用户态与内核态的区别
- linux下的内核态与用户态
- 用户态进程如何在堆栈执行代码
- cpu-hogs 的 systemtap 工具,可以实时统计某段时间内实际消耗掉的 CPU 时间在所有用户进程及内核线程之间的比例分布。
- 进程与线程的差别
- 进程与线程的差别
- 有关Linux内核态以及用户级进程、内核级进程的学习笔记
- 进程从用户态到内核态的那些事
- Windows创建进程的用户态和内核态交互
- 进程的内核态和用户态有什么区别?
- 内核态与用户态的区别
- 内核态与用户态的区别
- 内核态与用户态的区别
- java 入门书籍(java7)
- Android软Watchdog源码分析
- java事务处理
- JDBC
- 云计算大会有感—MapReduce和UDF
- cpu在内核态与用户态下执行,进程数的差别
- MySQL添加字段和删除字段
- ubuntu 64bit “arm-linux-gcc: No such file or directory”问题的解决方法
- 操作系统死锁避免的两个方法
- GridView事件分析
- 有关Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1问题的解法
- C++ 数据写入文件与读回
- spring中集成使用jedis(1)
- Nios II 系统时钟timestamp的应用