当一个应用程序执行系统调用而陷入内核代码执行时,则处于内核态,此时CPU执行处于特权0级的内核代码,内核代码使用当前进程的内核栈(每个进程都有自己的内核栈)。 当一个应用程序执行自己的代码时,则处于用户态,此时CPU执行处于特权3级用户代码。 从目态转换为管态的唯一途径是中断, 从管态到目态可以通过... ...
分类:
其他好文 时间:
2017-12-09 14:51:31
阅读次数:
282
转载:https://kb.cnblogs.com/page/531409/ 什么是线程 什么是线程?线程与进程有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲得好,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把它讲通俗一点,讲得明白一点, ...
分类:
编程语言 时间:
2017-12-04 15:32:09
阅读次数:
202
time命令可以获取一个程序的执行时间(实际运行时间real time, 程序运行在用户态时间user time, 内核的时间sys time),real!=user+sys,即程序不占用cpu也统计时间。而user+sys是程序占用cpu的总时长,因此real>=user+sys $time ./ ...
分类:
其他好文 时间:
2017-11-27 21:49:24
阅读次数:
209
一、学习笔记: 1.中断处理过程:包括时钟中断、I/O中断、系统调用和异常。直接调用schedule()函数,在队列中找到进程并分配CPU或返回用户态时根据need_resched标记调用schedule()。 2. 内核线程只有内核态没有用户态,可以直接调用schedule()进行进程之间的切换, ...
分类:
系统相关 时间:
2017-11-26 21:04:22
阅读次数:
255
进程的切换和系统的一般执行过程 1.知识总结 (1)进程调度的时机: 中断处理过程直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule()。 内核线程是一个特殊的进程,只有内核态没有用户态,可以直接调用schedule()进行进程切换,也可以在中断处理过 ...
分类:
系统相关 时间:
2017-11-25 21:43:40
阅读次数:
154
理解进程调度时机 ==================================== 进程调度时机 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(); 内核线程可以直接调用sche ...
分类:
系统相关 时间:
2017-11-25 17:26:13
阅读次数:
193
1. 什么是 Netlink 1. 什么是 Netlink 什么是Netlink?Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式,一般不用Netlink。 ...
分类:
Web程序 时间:
2017-11-25 14:30:01
阅读次数:
205
一.操作系统基础 操作系统概念:协调、管理和控制计算机硬件资源和软件资源的控制程序 1. 操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成 2. 操作系统的功能: 1. 为调用硬件资源提供更好,更简单,更清晰的模型 ...
分类:
系统相关 时间:
2017-11-18 11:22:52
阅读次数:
155
一、虚拟机字节码执行引擎概述 虚拟机字节码执行引擎主要就是研究字节码指令具体怎样被执行。对于物理机器,指令的执行是直接建立在OS和硬件的基础上 对于字节码指令的执行就是直接建立在JVM上,然后通过JVM完成具体的字节码指令到机器指令的过程。一般来说虚拟机的执行的 字节码指令是基于栈的不是采用寄存器, ...
分类:
其他好文 时间:
2017-11-11 18:46:04
阅读次数:
176
1、应用程序有时需要内核协助完成一些处理,但是应用程序不可能执行内核代码(主要是安全性考虑), 那么,应用程序需要有一种机制告诉内核,它现在需要内核的帮助,这个机制就是系统调用。 2、系统调用的本质是,应用程序主动触发软中断,这个软中断异常立即被系统捕获到(cpu指令产生异常,触发异常处理程序),在 ...
分类:
其他好文 时间:
2017-11-05 13:15:56
阅读次数:
341