操作系统练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四十一、在UNIX系统中运行下面程序,最多可产生多少个进程?画出进

程家族树。P249

main()

{

fork();

fork();

fork();

}

[分析及相关知识]系统调用fork的功能是创建一个新进程,新进程运行与其创建者一样的程序,新创建的进程称为子进程,调用fork的进程称为父进程,父子进程都从fork调用后的那条语句开始执行。

当程序执行时,若所有进程都能成功地执行系统调用fork,则会产生最多数目的进程。为了描述方便起见,将开始执行时的进程称为A进程,此时程序计数器PC,指向第一个fork调用。

main()

{

fork(); /* ←PC,进程A*/

fork():

fork();

}

当进程A成功地执行完第一个fork调用时,它创建了一个子进程,将此子进程称

为进程B。此时,进程A、B的程序计数器PC指向第二个fork调用,进程A派生

了1个子孙进程.

main()

{

fork():

fork(); /* ←PC,进程A*/

fork();

}

main()

{

fork();

fork(); /* ←PC,进程B*/

fork();

}

当进程A、B成功地执行完第二个fork调用时,它们分别创建了一个子进程,将

这些子进程分别称为进程C、D.此时,进程A、B、C、D的程序计数器PC指向第

三个fork调用,进程A派生了3个子孙进程。

main()

{

fork();

fork();

fork(); /* ←PC,进程A*/

}

main()

{

fork();

fork();

fork(); /* ←PC,进程B*/

}

main()

{

fork();

fork();

fork(); /* ←PC,进程C*/

)

main()

{

fork();

fork();

fork(); /* ←PC,进程D*/

)

当进程A、B、C、D成功地执行完第三个fork调用时,它们分别创建了一个子进

程,将这些子进程分别称为进程E、F、C、H.此时,进程A、B、C、D、E、F、G、

H的程序计数器PC指向程序结束处,进程A派生了7个子孙进程。

main()

{

fork();

fork();

fork();

} /* ←PC,进程A*/

main()

{

fork();

fork();

fork();

) /* ←PC,进程B*/

main()

{

fork();

fork():

fork();

} /* ←PC,进程C*/

main()

{

fork();

fork();

fork();

} /* ←PC,进程D*/

main()

{

fork();

fork();

fork():

} /* ←PC,进程E*/

main()

{

fork();

fork();

fork();

} /* ←PC,进程F*/

main()

{

fork();

fork();

fork();

) /* ←PC,进程G*/

main()

{

fork();

fork();

fork();

} /* ←PC,进程H*/

进程家族树是一棵有向树,有向树的节点代表进程,由进程P指向进程Q的边表示由进程P创建了进程Q.我们称进程P是进程Q的父进程,进程Q是进程P的子进程,这样便形成了进程树。

解:从上面的分析过程可以看出,执行第一个fork调用时,进程A 创建了进程B;执行第二个fork调用时,进程A创建了进程C,进程B创建了进程D:执行第三个fork调用时,进程A创建了进程E,进程B创建了进程F,进程C创建了进程G,进程D创建了进程H。因此,在UNIX系统中运行题目中的程序,最多可产生7个进程,其进程家族树如

图8.26所示。

1、进程调度又称为低级调度,其主要功能是()

A 选择一个作业调入内存

B 选择一个主存中的进程调出到外存

C 选择一个外存中的进程调入到主存

D 将一个就绪的进程投入运行

2、下列进程调度算法中,进程可能会长期得不到调度的情况是

()

A 先来先服务调度算法

B 抢占式静态优先权法

C 时间片轮转调度算法

D 非抢占式动态优先权法

❖下列属于预防死锁的方法是()

A 剥夺资源法

B 资源分配图简化法

C 资源互斥使用

D 银行家算法

❖下列属于检测死锁的方法是()

A 银行家算法

B 撤销进程法

C 资源静态分配法

D 资源分配图简化法

❖为了照顾紧迫性作业,应采用()

A 先来先服务调度算法

B 短作业优先调度算法

C 时间片轮转调度算法

D 优先权调度算法

设某多道系统,有磁带机2台,打印机1台,采用资源的静态分配法(假设作业获得资源后才允许进入内存)以及短作业优先调度算法和先来先服务进程调度算法。忽略I/O时间,现有作业序列如下,求5个作业完成的时间

相关文档
最新文档