赞
踩
进程是正在执行的程序。
进程也可以描述为:由一组元素组成的实体。进程的组成元素:程序代码,代码相关联的数据集和进程控制块。
标识符:进程唯一ID。
状态:运行,阻塞,就绪。
优先级:相对于其他进程的优先级
程序计数器:即将被执行的下一条指令。
内存地址:包括程序代码和进程相关数据的指针,
上下文数据:进程执行时处理器中寄存器的数据。
I/O状态信息:I/O请求,分配给进程的IO设备,被进程使用的文件列表。
记账信息:处理器时间总和,使用的时钟数总和 时间限制,记账号。
进程控制块内容可以分为如下三部分,在后边章节一一讲到。
现在操作系统中,把进程的程序计数器和上下文数据加载到处理器寄存器中,这个进程就可以运行了。
进程执行指令的序列的顺序就是进程轨迹,举例如下:
内存中进程A B C内存中的分派器就是调度器
整个程序执行顺序:先执行进程A的6条指令,超时后,调度器执行6条调度指令(每调度一次都要执行),接着开始切换到进程B,B执行4条指令后,需要请求IO,处理器停止执行进程B,开始调度C,处理器执行C的6条指令后,返回A进程继续执行。当再次执行B时,还在等待IO,因此处理器直接调度C程序执行。
新建状态:进程需要的信息在内存的进程表中,但是进程没有在内存中。
挂起是出于内存的考虑,内存中没有足够的空间时,可以将内存中的进程换出到磁盘中。
换出:当内存中没有就绪的进程时,需要将内存中阻塞的进程换出到磁盘中“挂起队列”中,暂时保存内存中被阻塞的进程。
挂起是一个IO操作。
还有一些导致进程挂起的原因:
操作系统为处理器执行进程而进行调度和分派。操作系统是如何管理进程和资源呢?
操作系统为了管理进程必须掌握每个进程和资源当前的状态。操作系统维护这四张表,内存表,IO表,文件表,进程表,管理结构如下:
内存表:内存表包括内存和虚拟内存的使用情况,分配给进程的内存和受保护的内存。
IO表:管理计算机的IO设备和通道,如某个进程正在使用IO情况。
文件表:文件是否存在,文件在外存位置等。
一个进程至少包括一个或一组程序,程序中有局部变量或全局变量(数据)。并且需要足够的空间来保存内存和数据,还有运行程序时过程调用过程见传递参数需要的栈。还有描述这个进程的属性的集合,整个这些程序,数据,栈和属性集合称为进程映像。
内核的典型功能:进程管理,内存管理,IO管理和中断等。
用户态和内核态切换:处理器状态寄存器(PSR)里边包涵CPL(当前特权级别,0表示内核态,1表示用户态)当中断发生时,处理器清空PSR寄存器中的值(包括CPL值),中断结束后,最后一个指令iret(中断返回)恢复了程序的特权级别。
进程切换就是把处理器控制权交给操作系统。通常如下三种情况,中断,陷阱,系统调用。
操作系统如何执行呢?有如下三种情况。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。