好的性能测试工程师一定是对操作系统有一定的了解的。对于底层的了解越深,越有实力去分析和参透各种性能问题,快速的找出性能的瓶颈。以下是我学习过程中的学习笔记,记录下我的理解过程,也欢迎大家纠正!
第一篇:基础概念篇
1. 操作系统中的系统调用、中断、上下文切换概念的含义
系统调用
在操作系统上如果想要运行你的程序,就得靠自己从面向底层硬件的代码编起,但这件事太枯燥,且不是每个人都能做到,这样操作系统就替我们做这些事情,把硬件封装,统一提供一套接口,这些接口就是系统调用;
系统调用把应用程序的请求传给内核,当操作系统接收到系统调用请求后,会让处理器进入内核模式,调用相应的内核函数完成所需的处理,当处理完成后,操作系统会让处理器返回用户模式,来执行用户代码,提高了我们写程序的效率,所以系统调用此时充当的角色就是一个接口,外面由用户程序调用,内部连接内核的其他部分,共同实现用户的请求;
中断
中断是为了设备与CPU之间的通信,是实现多道程序设计的必要条件,是CPU对系统发生的某个事件作出一种反应,CPU暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序;例如:读盘,读一半,盘有问题,无法读了,产生中断,解决后,程序恢复,软件错误也会中断;
特点:中断是随机的,可恢复的,自动进行处理的;
上下文切换
上下文简单来说就是一个环境,相对于进程而言,就是进程执行时的环境,具体来说就是各个变量和数据,包括进程打开的文件,内存信息等;当发生进程调度时,导致进程切换时,进程的运行环境也应及时切换,CPU切换到另外一个进程需要保存当前进程的状态并恢复另一个进程的状态:当前运行任务转为就绪状态,另一个被选定的就绪任务成为当前任务,上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境;允许CPU记录并恢复各种正在运行程序的状态,使它能够完成切换操作;
通常在三种情况下可能会发生上下文切换:中断处理,多任务处理,用户态切换;
2. 操作系统中的进程的概念, 进程都有哪些状态
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
进程状态
1)就绪状态(Ready)
进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
2)运行状态(Running)
进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
3)阻塞状态(Blocked)
由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器资源分配给该进程,也无法运行.