阿里云有域名之后怎么建设网站,江苏建设厅网站首页,网站错误页面模板,企业cms网站建设考试题(1) 为什么程序并发执行会产生间断性特征#xff0c;并失去封闭性和可再现性#xff1f;
解#xff1a;
之所以产生间断性特征是因为多个程序在并发执行时#xff0c;需要为了完成同一项任务而相互合作#xff0c;并发执行的程序间的这种相互制约导致了“暂停—执行—暂…
(1) 为什么程序并发执行会产生间断性特征并失去封闭性和可再现性
解
之所以产生间断性特征是因为多个程序在并发执行时需要为了完成同一项任务而相互合作并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。
失去封闭性是因为程序在并发执行时多个程序需要共享系统中的多种资源。所以这些资源的状态是由多个程序改变的从而使程序的运行失去了封闭性。
失去可再现性是因为程序在并发执行时由于失去了封闭性从而导致其失去可再现性。
(2) 什么是进程为什么要在操作系统中引入进程
解
进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程它是操作系统进行资源分配和调度的基本单位。“进程”概念是人们为了使程序能够并发执行并且能对并发的程序加以描述和控制而引入的。
(3) 试从并发性、独立性、动态性上比较程序和进程的不同。
解
并发性是进程的重要特征同时也是OS 的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行而程序是不能并发执行的。独立性是指进程实体是一个能独立运行的基本单位同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序都不能作为一个独立的单位参加运行。动态性是进程最基本的特性可表现为由创建而产生由调度而执行因得不到资源而暂停执行以及由撤销而消亡因而进程有一定的生命期而程序只是一组有序指令的集合是静态实体。 (4) 什么是PCB它具有什么作用为什么说PCB是进程存在的唯一标识
解
进程控制块(Process Control BlockPCB)是操作系统为了管理进程而设置的一个专门的数据结构用它来记录进程的外部特征描述进程的运动变化过程。
它的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位一个能和其它进程并发执行的进程.
因为系统利用PCB来控制和管理进程所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的。
(5) 进程有哪些基本状态这些状态具有什么特征
解
进程的三种基本状态分别是就绪状态、运行状态、阻塞状态。
就绪状态进程已获取到除CPU之外的所有必要资源只要再得到CPU就可以马上投入运行。运行状态处于就绪状态的进程被调度程序选中后将得到CPU控制权此时该进程就可以使用处理器进行数据运算和处理。阻塞状态当一个进程正在等待某个事件的发生(如等待I/O的完成)而暂停执行这时即使分配有CPU时间它也无法执行。
(6) 为什么要引入挂起状态该状态有什么特性
解
引入挂起状态时为了满足四种需要调节系统负荷的需要、用户的需要、父进程的需要、系统的需要。
挂起状态的特点交换到磁盘上的进程不让其参与进程调度以达到平衡系统负荷的目的。
(7) 说明进程基本状态的转换关系及引起这些状态间转换的典型原因。
解
处于就绪状态的进程在调度程序为之分配了处理器之后就可以投入运行。同时进程的状态也由就绪状态转变为运行状态在采用时间片机制的操作系统中分配给当前进程的时间片用完之后它会暂停执行其状态也由运行状态转换到就绪状态如果由于某事件发生(比如进程需要访问某I/O设备而该设备正在被别的进程访问)而使进程运行受阻不能再继续向下执行时它的状态会由运行状态转变为阻塞状态当进程期望的某事件发生时(比如需要访问的I/O设备已可用)进程将从阻塞状态转变为就绪状态
(8) 说明在加入了挂起状态的操作系统中进程状态间的转换关系及引发转换的典型原因。
解
在引入挂起状态的操作系统中又增加了静止就绪和静止阻塞两个新的进程状态。调用挂起原语把处于活动就绪状态的进程挂起后该进程就会由活动就绪状态转变为静止就绪状态。调用挂起原语把处于活动阻塞的进程挂起后它的状态就转换为静止阻塞。调用激活原语激活后又可以转换到活动阻塞状态。
(9) 试说明引起进程创建的典型事件。
解
引起进程创建的典型事件有用户登录、作业调度、提供服务、应用请求。
(10) 试说明引起进程撤销的典型事件。
解
引起进程撤销的典型事件有正常结束、异常结束、外界干预。
(11) 试说明引起进程阻塞和唤醒的典型事件。
解
引起进程阻塞和唤醒的典型事件有请求系统服务、启动某种操作、新数据尚未到达、无新工作可做。.
(12) 试说明进程创建的过程。
解
创建进程的操作必须调用创建原语来实现。创建原语首先为新进程申请获得惟一的数字标示符并从PCB集合中获取一个空白PCB为新进程的程序和数据以及用户栈分配必要的内存空间然后对PCB进程初始化最后将新进程插入就绪队列中等待被调度执行。
(13) 试说明进程撤销的过程。
解
系统调用进程终止原语来终止进程。首先根据被终止进程的标示符从PCB集合中查找到该进程的PCB从中读出该进程的状态终止该进程的执行如果该进程还有子孙进程应该将它的所有子孙进程终止防止它们成为不可控进程然后回收进程所拥有的资源最后将被终止进程(它的PCB)从所在队列(或链表)中移出等待其它程序来搜集信息。
(14) 什么是线程请比较它与进程的异同。
解
线程是进程中的一个实体是被系统独立分配和调度的基本单位。线程基本上不拥有资源只需要一些必不可少的资源(如程序计数器、一组寄存器和栈)。
进程和线程的差异
在传统的OS中进程是拥有资源和独立调度分派的基本单位在加入线程的OS中线程是代替进程成为独立调度和分派的基本单位进程则仍是拥有资源的基本单位。并发粒度不同。除了不同进程的线程之外同一个进程里的不同线程之间也可以并发执行所以线程拥有更好的并发性。拥有资源数量不同。进程是拥有资源的基本单位线程除了一些在运行过程中必不可少的资源外基本上不拥有系统资源它可以访问自己所在的进程的资源。管理开销不同。创建、撤销进程时系统都要为之分配和回收资源所以进程切换用的时间开销相对要多于线程。进程间通信很麻烦而同一进程的线程则通过共享进程的资源很方便地通信和同步同步开销小得多。
进程和线程有着很多相似的地方都可以并发执行都有就绪、执行、阻塞这些基本状态也都可以在这些基本状态之间转换状态从创建到撤销都有一定的生命周期都需要同步工具。
(15) 处理器调度的层次有哪些各层次的主要工作是什么
解
处理器调度的层次分为三级调度高级调度、中级调度和低级调度。
高级调度它需要做出两个决定一个是要从驻留在外存后备队列中调入多少个作业二是要调入哪几个作业然后为被选中的作业创建进程并分配必要的系统资源如内存、外设等然后把新创建的进程放入就绪队列中等待被调度执行。中级调度中级调度主要涉及进程在内存和外存之间的交换。当系统中的内存使用情况紧张时中级调度把内存中暂时不能运行的进程调到外存中等待等内存有足够的空闲空间时再由中级调度决定将外存上的某些具备了运行条件的就绪进程调入内存把其状态修改为就绪状态并挂在就绪队列中等待进程调度。低级调度按照一定的算法从就绪队列中选择一个进程然后将处理器分配给它。执行低级调度功能的程序称作进程调度程序由它实现处理器在进程间的切换。
(16) 抢占式调度的原则是什么请简要说明。
解系统使用抢占方式进行进程调度时需要遵循一定的原则主要有以下几个方面
时间片原则。各进程按系统分配给的一个时间片运行当该时间片用完或由于该进程等待某事件发生而被阻塞时系统就停止该进程的执行而重新进行调度。优先级原则。每个进程均被赋于一个调度优先级通常一些重要和紧急的进程被赋于较高的优先级。当一个新的紧迫进程到达时或者一个优先级高的进程从阻塞状态变成就绪状态时如果该进程的优先级比当前进程的优先级高OS就停止当前进程的执行将处理器分配给该优先级高的进程使之执行。短进程优先原则。当新到达的作业对应的进程比正在执行的作业对应进程的运行时间明显短时系统剥夺当前进程的执行而将处理器分配给新的短进程使之优先执行。
(17) 在批处理系统、分时系统、实时系统中应分别采用哪种作业(进程)调度算法
解
批处理系统采用先来先服务调度算法分时系统采用时间片轮转法实时系统采用高响应比优先调度算法。
(18) 说明时间片轮转调度算法的基本思路。
解
在采用时间片轮转调度算法的系统中将系统中所有的就绪进程按照FCFS原则排成一个队列。每次调度时将CPU分派给队首进程让其执行一个时间片。时间片的长度从几个ms到几百ms。在一个时间片结束时发生时钟中断。调度程序暂停当前进程的执行将其送到就绪队列的末尾并通过CPU现场切换执行当前的队首进程当然进程可以未使用完一个时间片就让出CPU(如阻塞)。这样可以保证就绪队列中的所有进程都有机会获得处理器而运行的机会可以提高进程并发性和响应时间特性从而提高资源利用率。
(19) 试说明多级反馈队列调度算法思想。
解多级反馈队列调度算法则不必事先知道各进程的执行时间又可以满足各种类型进程的调度需要它是一种目前公认较好的进程调度算法。它的算法思想如下(设采用抢占式调度)
需要设置多个就绪队列并且为它们分别赋予不同的优先级。每队列分配不同的时间片规定优先级越低则时间片越长。新进程就绪后先插入队列1的末尾按FCFS算法调度。若一个时间片未能执行完则降低插入到队列2的末尾依此类推降低到最后的队列则按“时间片轮转”算法调度直到完成。进程由于等待事件而放弃CPU后, 进入等待队列, 一旦等待的事件发生, 则回到原来的就绪队列。只有当较高优先级的队列为空时才调度较低优先级队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列则需要重新调度抢先执行新进程并把被抢先的进程插入原队列的末尾。
(20) 什么是静态和动态优先级如何确定静态优先级
解
静态优先级是在系统创建时确定的一经确定之后在整个进程运行期间不再改变。
动态优先级是在进程运行前先确定一个优先级进程运行过程中根据进程等待时间的长短、执行时间的多少、输入输出信息量的大小等通过计算得到新的优先级。
(21) 在一个单道批处理系统中一组作业的到达时间和运行时间如下表所示。试计算使用先来先服务、短作业优先、高响应比优先算法时的平均周转时间和平均带权周转时间。 作业 到达时间 运行时间 1 8.0 1.0 2 8.5 0.5 3 9.0 0.2 4 9.1 0.1
解
用T表示周转时间用W表示带权周转时间
FCFS的作业调度情况如下 作业 提交时间 运行时间 开始时间 结束时间 周转时间 带权周转时间 1 8.0 1.0 8.0 9.0 1.0 1.0 2 8.5 0.5 9.0 9.5 1.0 2.0 3 9.0 0.2 9.5 9.7 0.7 3.5 4 9.1 0.1 9.7 9.8 0.7 7.0
FCFS的T 1.01.00.70.7/ 4 0.85 W 1.02.03.57.0/ 4 3.375
SJF的作业调度情况如下 作业 提交时间 运行时间 开始时间 结束时间 周转时间 带权周转时间 1 8.0 1.0 8.0 9.0 1.0 1.0 2 8.5 0.5 9.3 9.8 1.3 2.6 3 9.0 0.2 9.0 9.2 0.2 1.0 4 9.1 0.1 9.2 9.3 0.2 2.0
SJF的T1.01.30.20.2/ 4 0.675 W 1.02.61.02.0/ 4 1.65
高响应比优先的作业调度情况如下 作业 提交时间 运行时间 开始时间 结束时间 周转时间 带权周转时间 1 8.0 1.0 8.0 9.0 1.0 1.0 2 8.5 0.5 9.0 9.5 1.0 2.0 3 9.0 0.2 9.6 9.8 0.8 4.0 4 9.1 0.1 9.5 9.6 0.5 5.0
高响应比算法的T1.01.00.80.5/ 4 0.825 W 1.02.04.05.0/ 4 3.0
(22) Linux进程有几个状态简述各状态的转换条件。 解1)运行状态2) 可中断睡眠状态 3)不可中断睡眠状态4)暂停状态 5)跟踪状态 6)僵死状态 7)退出状态 进程创建时的状态为不可中断睡眠状态在do_fork()结束前被父进程唤醒后变为执行状态适当时候获得CPU。 获得CPU且正在运行的进程若申请不到某个资源时进入睡眠状态如果调用sleep_on()则其状态变为不可中断睡眠状态如果调用interruptible_sleep_on()则其状态变为可中断睡眠状态当进程获取所申请的资源时睡眠进程进入运行状态。当系统调用do_exit()时进程进入僵死状态。若进程通过系统调用设置标志PF_SYSTRACE则在系统调用返回前进入函数syscall_trace()状态改为暂停。只有通过其他进程发送的信号SIG_KILL或SIG_CONT才能把暂停状态进程唤醒重新进入run-queue队列。
(23) Linux中的线程调度算法有几种简述之
解调度策略有三种 (1)SCHED_OTHER(普通分时调度策略)它是缺省调度策略适用于优先级为0的线程它为链表中的每个线程分配时间片保证链表中的每个线程有公平的执行时间。 (2)SCHED_FIFO(先进先出调度策略)适用于优先级高于0的线程当SCHED_FIFO中有可运行线程时该线程会抢先任何当前运行的SCHED_OTHER线程称为当前运行线程。当有优先级更高的线程抢先时该进程保留在对应链表的头部在高优先级线程结束后立即投入运行。
(3)SCHED_RR(循环调度策略)它是SCHED_FIFO策略的简单增强增加了时间片限制。如果某个SCHED_RR 运行的线程等于或超过分配给它时间片结束运行排到对应链表的尾部。