1.系统是怎样创建进程的?
(1)申请空白PCB(进程控制块);
(2)为新进程分配资源;
(3)初始化PCB;
(4)就新进程插入就绪队列;
2.当首次调用新创建进程时,其入口在哪里?
fork()函数被调用一次,但返回两次;两次返回区别在于:子程序返回值是0,而父进程返回值是子进程的ID。子进程和父进程运行相同的代码,但是有自己的数据空间。
3.程序的多次运行结果为什么不同?如何控制实验结果的随机性?
多个进程的并发执行,每个进程都有先获取cpu的可能性,故而哪一个进程先执行是随机的。可以通过等待,睡眠的等操作来实现多个进程的同步。
(1)可执行文件加载时进行了哪些处理?
进程用exec( )装入命令ls ,exec( )后,子进程的代码被ls的代码取代,这时子进程的PC指向ls的第1条语句,开始执行ls的命令代码
(2)什么是进程同步?wait( )是如何实现进程同步的?
进程同步是指多个相关进程在执行次序上进行协调,以使并发执行的主进程之间有效的共享资源和相互合作,从而使程序的执行具有可再现性。
首先程序在调用fork()创建了一个子进程后,马上调用wait(),使父进程在子进程调用之前一直处于睡眠状态,这样使子进程先运行,子进程运行exec()装入命令后,然后调用wait(0),使子进程和父进程并发执行,实现了进程同
操作系统第二次作业
最新推荐文章于 2022-03-25 10:24:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)