许请求所返回的消息类型。最后,还包含了几个更特殊的头文件。其中有行,它被核心和文件系统用来定义设备以及访问从程序传入系统的参数。另个是行,它定义了若干结构,这些结构用来实现不同语言所需的字符集对应的特殊键盘布局。它也被那些生成和加载这些表格的程序使用。这里的些文件,如行只被核心使用,而不被文件系统或内存管理器使用。对于个支持额外的设备的实现,这里有另外些类似的文件,它们分别支持其他的设备。这些设备在该目录下的位置需要解释下。理想情况下,所有的用户程序应该仅仅通过操作系统来访问设备,这些支持外部设备的文件应当放在下。但是系统管理的实际情况要求,些用户命令能访问系统级的结构,例如对硬盘进行分区的命令。正是为了支持此类公用程序,我们将这些特殊头文件放在目录树下。是这里讨论的最后个特殊头文件目录,它下面有两个文件包含与系列机相关的信息。个是,它被软盘系统任务使用。尽管该任务属于标准的版本,但本书不详细讨论其源代码,因为它和硬盘任务很类似。另个文件是行,它定义了兼容机上使用的硬盘分区表和相关通过这种方式,系统中总的消息数保持不变,所以消息可以存放在预知数量的内存中。如果生产者的速度比消费者快,则所有的消息最终都将被填满,于是生产者将阻塞以等待消费者取用后返回条空消息。如果消费者速度快,则正好相反所有的消息均为空,等待生产者来填充它们,消费者阻塞以等待条填充过的消息。缓冲区中的槽数消息缓冲区产生些数据放入缓冲区,等待条空消息到达构造条消息供发送,向消费者发送数据项,发送条空消息,收到条包含数据的消息,从消息中析取数据,回送空消息作为应答使用数据项进行操作图用条消息的生产者消费者进程。消息传递可以有许多变体。对于初学者,我们来看如何对消息编址。种方法是为每个进程分配个唯的地址,按进程为消息指定地址。另种方法是引入种新的数据结构,称作信箱。个信箱就是个用来对定数量的消息进行缓冲的地方,典型的情况是消息的数量在信箱创建时确定。当使用信箱时,和调用中的地址参数使用信箱,而不是进程。当个进程试图向个满的信箱发消息时,它将被挂起,直至信箱内有消息被取走而为新消息腾出空间。对于生产者消费者问题,生产者和消费者均应创建足够容纳条消息的信箱。生产者向消费者信箱发送包含数据的消息,消费者则向生产者信箱发送空消息。当使用信箱时,缓冲机制是很清楚的目标信箱容纳那些被发送但尚未被目标进程接收的消息。使用信箱的另种极端情况是彻底去掉缓冲。采用这种方法时,如果在之前执行,则发送进程被阻塞,直到发生。执行时消息可以直接从发送者拷贝到接收者,不用任何中间缓冲。类似地,如果先被执行,则接收者阻塞直到发生。这种策略常被称为会合原则。与带有缓冲的消息方案相比,这种方案实现起来更容易些,但却降低了灵活性,因为发送者和接收者定要以步步紧接的方式运行。在及中用户进程间的通信采用管道,它与信箱在效果上等价。采用信箱的消息系统和管道机制之间的区别实际在于管道没有预先设定消息的边界。换言之,如果个进程向管道写入条字节的消息,而另个进程从管道中读取个字节,则读进程将次性地获得这所有条消息。而在个真正的消息系统中,每个操作将只返回条消息。当然,如果进程能够达成致总是从管道中读写固定大小的消息,或者每条消息都以个特殊字符如换行符结束,则不会有任何问题。构成操作系统的进程之间使用消息大小固定的真正的消息机制进行通信。经典问题操作系统文化中有许多被广为讨论和分析的有趣的问题。以下几节我们将讨论三个较为著名的问题。哲学家进餐问题在年,提出并解决了个他称之为哲学家进餐的同步问题。从那时起,每个发明新的同步原语的人都希望通过解决哲学家就餐问题来展示其同步原语的精妙之处。这个问题可以简单地描述如下五个哲学家围坐在张圆桌周围,每个哲学家面前都有碟通心面,由于面条很滑,所以要两把叉子才能夹住。相邻两个碟子之间有把叉子,餐桌如图所示。图哲学家就餐图。哲学家的生活包括两种活动即吃饭和思考这只是种抽象,即对本问题而言其他活动都无关紧要。当个哲学家觉得饿时,他就试图分两次去取他左边和右边的叉子,每次拿把,但不分次序。如果成功地获得了两把叉子,他就开始吃饭,吃完以后放下叉子继续思考。这里的问题就是为每个哲学家写段程序来描述其行为,要求不能死锁。要求拿两把叉子是人为规定的,我们也可以将意大利面条换成中国菜,用米饭代替通心面,用筷子代替叉子。图给出了最浅显的解法。过程将直等到所指定的叉子可用,然后将其取用。不幸的是,这种解法是的。设想所有五位哲学家都同时拿起左面的叉子,则他们都拿不到右面的叉子,于是发生死锁。哲学家数目哲学家号从到号哲学家正在思考取左面叉子取右面叉子为取余吃面放回左面叉子放回右面叉子图哲学家进餐问题的种不正确解法。我们可以将程序修改下,规定在拿到左叉后,先检查右面的叉子是否可用。如果不可用,则先放下左叉,等段时间再重复整个过程。但这种解法也是的,尽管与前种的原因不同。可能在个瞬间,所有的哲学家都同时启动这个算法,拿起左叉,看到右叉不可用,又都放下左叉,等会儿,又同时拿起左叉。如此这样永远重复下去。对于这种情况,即所有的程序都在运行,但却无法取得进展,就称为饥饿。即使问题不发生在意大利或中国餐馆也被称为饥饿现在你可能会想如果哲学家在拿不到右叉时等待段随机的时间,而不是等待相同的时间,则发生上述锁步的机会就很小了。这种想法是对的,但在些应用中人们希望种完全正确的方案,它不能因为串靠不住的随机数字而失效想想核电站中的安全控制系统。对图中的算法可进行下列改进,它既不会发生死锁又不会发生饥饿使用个二进制信号量对五个函数之后的语句进行保护。在哲学家开始拿叉子之前,先对信号量执行。在放回叉子后,再对执行。从理论上讲,这种解法是可行的。但从实际角度来看,这里有性能上的局限同时刻只能有位哲学家进餐。而五把叉子实际上允许两位哲学家同时进餐。图中的解法不仅正确,而且对于任意位哲学家的情况都能获得最大的并行度。其中使用个数组来跟踪个哲学家是在吃饭思考还是正在试图拿叉子。个哲学家只有在两个邻居都不在进餐时才允转移表面积的比值,般取每米割缝衬管的外表面积,。根据孤岛油田稠油热采井的生产现状,结合现场填砂施工的合理性和处理的方便性,对割缝筛管进行如下优化设计。管材选择根据现有研究条件和孤岛油田油井套管规格,对割缝筛管管材作如下选择套管,油管套管,油管。从采油技术手册上查出,上述所有管材的抗拉载荷均在以上,能够满足现场作业要求。割缝筛管筛缝宽度的确定地层充填砂砾粒度的确定地层充填砂砾的作用是通过稳定井壁和抑制地层砂的运移来防止地层出砂。选择的原则是砂砾能完全阻挡住地层砂,即砂砾粒度中值为地层砂的倍最大粒径为地层砂粒度中值的倍最小粒径为地层砂粒度中值的倍。孤岛油田主力开发油层为馆陶组油层,根据地层砂粒度的差别及油层位置可分为馆层段地层砂平均粒度中值为馆以下层段地层砂平均粒度中值为。经过计算,确定地层充填砂砾粒度为馆层段粒度中值为,最大粒径,最小粒径馆以下层段粒度中值为,最大粒径,最小粒径。环空充填砂砾粒度的确定环空充填砂砾的作用是通过稳定割缝筛管和抑制地层充填砂及地层砂的运移来防止地层出砂,选择的原则是砂砾粒度必须大于或等于地层充填砂粒度,因此可根据地层充填砂粒度确定环空充填砂粒度。确定环空充填砂砾粒度为粒度中值为,最大粒径,最小粒径筛缝宽度的确定割缝筛管筛缝宽度选择的原则是缝隙必须挡住充填的所有砂砾,即砾式中割缝筛管筛缝宽度砾环空充填砂砾最小粒径,。经计算,确定筛缝宽度为馆层段馆以下层段。割缝筛管几何形状的确定根据研究,确定筛缝为矩形缝,单体缝长为,轴向缝间距为,割缝筛管的圆周缝分布为条周,割缝筛管的圆周缝分布为条周。图为割缝筛管实物图。图割缝筛管实物图割缝筛管的防腐由于割缝筛管工作在井下高温高压的流方法均匀地涂敷上层带有潜伏性固化剂的高温粘合剂而制成的。通过大量的室内研究和试验,筛选出了性能满足要求的高温粘合剂骨架颗粒及偶联剂,确定了合理的化学配方。条件下胶结岩芯的抗折强度大于,高温下胶结岩芯的抗折强度大于。高温防砂剂在孤岛油田进行了现场推广试验,应用口井,防砂有效率,平均有效期天。表高温防砂剂现场应用情况及效果表射孔工艺孤岛油田稠油热采井过去般都采用枪弹射孔,孔径为,孔密为孔米,孔径小,孔密低,炮眼渗流面积小,在高强度注汽和高强度采液条件下,液流阻力很大,容易造成防砂有效期的降低和防砂不成功。如果加上射孔完善程度较差,甚至会造成井下防砂工具被高压液流刺穿。如中井金属棉滤砂管被刺穿就是个明显的例子见图。以增大炮眼渗流面积,减小液流阻力为目的,对射孔工艺进行了改进,这样也有利于地层充填。图井失效金属棉实物图新井对新井,采取枪弹与枪弹大孔径高孔密射孔工艺,增大炮眼渗流面积,减小液流阻力。老井对已经投产的老井,主要根据其生产情况确定其射孔完善程度,对那些射孔完善程度较差的油井,采取复射孔工艺,增大炮眼渗流面积,减小液流阻力。深部处理油层技术从埃利斯计算公式可以看到,近井地带渗透率是影响液流阻力的重要因素,渗透率越高,液流阻力越小。孤岛油田稠油层泥质含量高,易于近井地许请求所返回的消息类型。最后,还包含了几个更特殊的头文件。其中有行,它被核心和文件系统用来定义设备以及访问从程序传入系统的参数。另个是行,它定义了若干结构,这些结构用来实现不同语言所需的字符集对应的特殊键盘布局。它也被那些生成和加载这些表格的程序使用。这里的些文件,如行只被核心使用,而不被文件系统或内存管理器使用。对于个支持额外的设备的实现,这里有另外些类似的文件,它们分别支持其他的设备。这些设备在该目录下的位置需要解释下。理想情况下,所有的用户程序应该仅仅通过操作系统来访问设备,这些支持外部设备的文件应当放在下。但是系统管理的实际情况要求,些用户命令能访问系统级的结构,例如对硬盘进行分区的命令。正是为了支持此类公用程序,我们将这些特殊头文件放在目录树下。是这里讨论的最后个特殊头文件目录,它下面有两个文件包含与系列机相关的信息。个是,它被软盘系统任务使用。尽管该任务属于标准的版本,但本书不详细讨论其源代码,因为它和硬盘任务很类似。另个文件是行,它定义了兼容机上使用的硬盘分区表和相关通过这种方式,系统中总的消息数保持不变,所以消息可以存放在预知数量的内存中。如果生产者的速度比消费者快,则所有的消息最终都将被填满,于是生产者将阻塞以等待消费者取用后返回条空消息。如果消费者速度快,则正好相反所有的消息均为空,等待生产者来填充它们,消费者阻塞以等待条填充过的消息。缓冲区中的槽数消息缓冲区产生些数据放入缓冲区,等待条空消息到达构造条消息供发送,向消费者发送数据项,发送条空消息,收到条包含数据的消息,从消息中析取数据,回送空消息作为应答使用数据项进行操作图用条消息的生产者消费者进程。消息传递可以有许多变体。对于初学者,我们来看如何对消息编址。种方法是为每个进程分配个唯的地址,按进程为消息指定地址。另种方法是引入种新的数据结构,称作信箱。个信箱就是个用来对定数量的消息进行缓冲的地方,典型的情况是消息的数量在信箱创建时确定。当使用信箱时,和调用中的地址参数使用信箱,而不是进程。当个进程试图向个满的信箱发消息时,它将被挂起,直至信箱内有消息被取走而为新消息腾出空间。对于生产者消费者问题,生产者和消费者均应创建足够容纳条消息的信箱。生产者向消费者信箱发送包含数据的消息,消费者则向生产者信箱发送空消息。当使用信箱时,缓冲机制是很清楚的目标信箱容纳那些被发送但尚未被目标进程接收的消息。使用信箱的另种极端情况是彻底去掉缓冲。采用这种方法时,如果在之前执行,则发送进程被阻塞,直到发生。执行时消息可以直接从发送者拷贝到接收者,不用任何中间缓冲。类似地,如果先被执行,则接收者阻塞直到发生。这种策略常被称为会合原则。与带有缓冲的消息方案相比,这种方案实现起来更容易些,但却降低了灵活性,因为发送者和接收者定要以步步紧接的方式运行。在及中用户进程间的通信采用管道,它与信箱在效果上等价。采用信箱的消息系统和管道机制之间的区别实际在于管道没有预先设定消息的边界。换言之,如果个进程向管道写入条字节
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
第 1 页 / 共 21 页
第 2 页 / 共 21 页
第 3 页 / 共 21 页
第 4 页 / 共 21 页
第 5 页 / 共 21 页
第 6 页 / 共 21 页
第 7 页 / 共 21 页
第 8 页 / 共 21 页
第 9 页 / 共 21 页
第 10 页 / 共 21 页
第 11 页 / 共 21 页
第 12 页 / 共 21 页
第 13 页 / 共 21 页
第 14 页 / 共 21 页
第 15 页 / 共 21 页
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。