一个作业进入系统到运行结束,一般要经历进入、后备、运行和完成四个阶段,相应地,作业亦有进入、后备、运行和完成四种状态。
① 进入状态:作业的信息从输入设备上预输入到输入井,此时称为作业处于进入状态。
② 后备状态:当作业的全部信息都已输入,且由操作系统将其存放在输入井中,此时称作业处于后备状态。系统将所有处于后备状态的作业组成后备作业队列,等待作业调度程序的调度。
③ 运行状态:一个后备作业被作业调度程序选中,分配了必要的资源,调入内存运行,称作业处于运行状态。
④ 完成状态:当作业正常运行完毕或因发生错误非正常终止时,作业进入这完成状态。
20、用fork创建新进程,它要做哪些工作?
由fork创建新进程的主要工作有:
① 在进程表proc[ ]中为子进程找一个空闲的表项,用来存放子进程的proc结构;
② 为子进程分配一个唯一的标识号;
③ 把父进程中的字段复制到子进程的proc中,并把p – pid置为分配到的进程标识号,把p-pid置为父进程的标识号,把p-stat置为创建状态;
④ 按父进程中p-size所示的长度为子进程申请分配内存。若有足够的内存,则把父进程的user结构、栈和用户数据区全部复制到子进程的空间中;若无足够的内存,则在磁盘对换区中分配存储空间,然后复制到对换区中,置于进程状态为就绪状态。
21、为什么说批处理多道系统能极大地提高计算机系统的工作效率?
① 多道作业并行工作,减少了处理器的空闲时间。
② 作业调度可以合理选择装入主存储器中的作业,充分利用计算机系统的资源。
③ 作业执行过程中不再访问低速设备,而直接访问高速的磁盘设备,缩短执行时间。
④ 作业成批输入,减少了从操作到作业的交接时间。
22、操作系统为用户提供哪些接口?
操作系统为用户提供两种类型的使用接口:
一是操作员级的,它为用户提供控制作业执行的途径;
二是程序员级的,它为用户程序提供服务功能。
23、什么是线程?多线程技术具有哪些优越性?
线程是进程中可独立执行的子任务,一个进程可以有一个或多个线程,每个线程都有一个惟一的标识符。线程与进程有许多相似之处,往往把线程又称为“轻型进程”,线程与进程的根本区别是把进程作为资源分配单位,而线程是调度和执行单位。
多线程技术具有多个方面的优越性:
① 创建速度快、系统开销小:创建线程不需要另行分配资源;
② 通信简洁、信息传送速度快:线程间的通信在统一地址空间进程,不需要额外的通信机制;
③ 并行性高:线程能独立执行,能充分利用和发挥处理器与外围设备并行工作的能力。
24、UNIX系统中的优先权和优先数有什么关系?如何确定进程的优先权和优先数?
UNIX中每个进程都有一个优先数,就绪进程能否占用处理器的优先权取决于进程的优先数,优先数越小则优先权越高。
UNIX以动态方式确定优先权,如核心的进程优先权高于进入用户态的进程;降低用完一个时间片的进程的优先权;对进入睡眠的进程,其等待事件越急优先数越高;降低使用处理器时间较长的进程的优先权。
UNIX中确定进程优先数的方法有两种:设置方法和计算方法。前者对要进入睡眠状态的进程设置优先数,若等待的事件急迫,则设置较小的优先数;后者用户进程正在或即将转入用户状态运行时确定优先数。