进行。用户程序、进程的各种控制表格等都按一定的结构排列在进程空间中。
在有的系统中进程空间被划分为两部分:用户空间和系统空间。
为了防止用户程序访问系统空间,造成访问出错,计算机通过程序状态寄存器等设置不同的执行模式,即用户模式(用户态)和系统模
式(系统态)来进行保护。
3.进程状态及其转换
★进程的三种基本状态:执行状态、就绪状态、等待状态(又称阻塞、挂起、睡眠)
就绪状态(Ready)
存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到 CPU,就立即可以运行,这些进程所取的状态为就绪状态。(有多
个进程处于此状态)
执行状态(Running)
当进程由调度/分派程序分派后,得到 CPU 控制权,它的程序正在运行,该进程所处的状态为执行状态。(在系统中,总只有一个进程处
于此状态)
等待状态(Wait)
若一个进程正在等待某个事件的发生(如等待 I/O 的完成),而暂停执行,这时,即使给它 CPU 时间,它也无法执行,则称该进程处于
等待状态。
★进程状态转换
运行到等待 等待某事件的发生(如等待 I/O 完成)
等待到就绪 事件已经发生(如 I/O 完成)
运行到就绪 时间片到(例如,两节课时间到,下课)
新建进程到就绪 新创建的进程进入就绪状态
就绪到运行 当处理机空闭时,由调度(分派)程序从就绪进程队列中选择一个进程占用 CPU。
进程控制:就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成进程各状态的转换,从而达到多进程高效率并发执行和
协调、实现资源共享的目的。
原语:把系统态下执行的某些具有特定功能的程序段称为原语。
用于进程控制的原语有:创建原语、撤销原语、阻塞原语、唤醒原语。
进程创建方式:由系统程序模块统一创建;由父进程创建。进程创建系统调用: create(name,priority,start-addr) UNIX 系统:fork()
进程撤销:(1)该进程已完成所要求的功能而正常终止(2)由于某种错误导致非正常终止(3)祖先进程要求撤销某个子进程。在一般
操作系统中进程撤消的系统调用是:kill UNIX 系统中是 exit() 如果撤销进程有自己的子进程,则撤销原语先撤销其子进程的 PCB 结构并
释放子进程所释放的资源后,再撤销当前进程的 PCB 结构和释放其资源。
进程的阻塞与唤醒
当一个处在运行状态的进程,因等待某个事件的发生(如等待打印机)而不能继续运行时,将调用进程挂起系统调用,把进程的状态置
为阻塞状态,并调用进程调度程序(等于让出处理机)。
进程从运行状态转换成阻塞状态是由进程挂起原语实现的,因此,调用进程挂起操作是在进程处于运行状态下执行的。它的执行将引起
等待某事件的队列的改变.
一个正在运行的进程会因等待某事件(例如,等待打印机)的发生,由运行状态转换成阻塞状态,当它等待的事件发生后,这个进程将
由阻塞状态转换成就绪状态。这种转换由进程唤醒操作完成。
唤醒一个进程有两种方式:系统进程唤醒、事件发生进程唤醒。
调用进程唤醒操作一般在中断处理、进程通信等过程中。例如,打印机完成中断处理程序, 在完成了打印完成的操作后,就去检查等待
打印机的队列,若不为空,则调用进程唤醒操作,唤醒一个(或多个)等待打印机的进程。
4.进程互斥
产生互斥的原因:资源共享、进程合作
★临界资源:一次仅允许一个进程使用的资源称为临界资源。