我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:港彩神鹰 > 读入原语 >

操作系统:原语与进程的关系

归档日期:05-13       文本归类:读入原语      文章编辑:爱尚语录

  1.进程是通过系统调用命令来使用原语吗????那么创建进程原语又该怎么实现?2.消息缓冲通信中,接收进程调用receive原语,而receive中又有P原语,当P原语不满足时候(信号量小于0)...

  1.进程是通过系统调用命令来使用原语吗????那么创建进程原语又该怎么实现?

  2.消息缓冲通信中,接收进程调用receive原语,而receive中又有P原语,当P原语不满足时候(信号量小于0),是不是接收进程进入阻塞状态,待该进程唤醒后继续从receive原语中P后面的命令继续执行??展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部原语通常由若干条指令组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。原语是操作系统的核心,它不是由进程而是由一组程序模块所组成,是操作系统的一个组成部分,它必须在管态(一种机器状态,管态下执行的程序可以执行特权和非特权两类指令,通常把它定义为操作系统的状态)下执行,并且常驻内存,而个别系统有一部分不在管态下运行。

  原语和广义指令都可以被进程所调用,两者的差别在于原语有不可中断性,它是通过在执行过程中关闭中断实现的,且一般由系统进程调用。许多广义指令的功能都可用目态(一种机器状态,通常把它作为用户程序执行时的状态)下运行的系统进程完成,而不一定要在管态下完成,例如文件的建立、打开、关闭、删除等广义指令,都是借助中断进入管态程序,然后转交给相应的进程,最终由进程实现其功能。

  p操作和v操作是不可中断的程序段,称为原语。P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的incremnet。

  (3) 若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。

  (3) 若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。

  需要提醒大家一点就是P,V操作对于每一个进程来说,都只能进行一次。而且必须成对使用。且在P,V愿语执行期间不允许有中断的发生。

  对于具体的实现,方法非常多,可以用硬件实现,也可以用软件实现。我们采用如下的定义:

  asleep(s.queue);执行此操作的进程控制块进入s.queue尾部,进程变成等待状态

  虽软说信号量机制毕加锁方法要好得多,但是也不是说它没有任何的缺陷。由此我们也可以清晰地看到,这种信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。

本文链接:http://chuyenchame.com/duruyuanyu/324.html