3-2010-进程模型
- 格式:ppt
- 大小:1.04 MB
- 文档页数:55
Linux内核的三种调度策略:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃3,SCHED_RR实时调度策略,时间片轮转.当进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾.放在队列尾保证了所有具有相同优先级的RR任务的调度公平Linux线程优先级设置,可以通过以下两个函数来获得线程可以设置的最高和最低优先级,函数中的策略即上述三种策略的宏定义:int sched_get_priority_max(int policy);int sched_get_priority_min(int policy);SCHED_OTHER是不支持优先级使用的,而SCHED_FIFO和SCHED_RR支持优先级的使用,他们分别为1和99,数值越大优先级越高.设置和获取优先级通过以下两个函数:int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param);例如以下代码创建了一个优先级为10的线程:struct sched_param{int __sched_priority; //所要设定的线程优先级};例:创建优先级为10的线程pthread_attr_t attr;struct sched_param param;pthread_attr_init(&attr);pthread_attr_setschedpolicy(&attr, SCHED_RR);param.sched_priority = 10;pthread_attr_setschedparam(&attr, ¶m);pthread_create(xxx , &attr , xxx , xxx);pthread_attr_destroy(&attr);本文来自CSDN博客,转载请标明出处:内核线程、轻量级进程、用户线程和LinuxThreads库(2010-04-22 10:20:07)转载标签:杂谈内核线程内核线程只运行在内核态,不受用户态上下文的拖累。
OPNET 安装完成之后,需要测试环境变量设置是否正确,一般是通过对opnet自带对的示例仿真,但有可能出现如问题1所述的情况:问题1:<<< Recoverable Error >>> |Process model (aodv_rte) compilation failed |Errors given in file (C:\Users\Administrator\op_admin\tmp\cc_err_5640)这可能是由于两个方面的原因:1、使用的可能是标准库,也可能是empty,这时候如果示例中会用到标准库中的一些东西,就会报错,可以通过设置得到:在project编辑器下,edit->preference,打开后搜索repositories,设置Network Simulation Repositories的value值为stdmod,即标准模型,此时在运行仿真,则会变得正确,如果这样设置后还有错误,说明应该是环境变量设置有问题。
如图1所示。
图12、使用自己建立的模型进行仿真时,如果出现如图2所示的问题:问题2:<<< Program Abort >>>The set of models necessary for running the simulation is incomplete.Check that all the 'repositories' attributes are complete.T (0), EV (-), MOD (NONE), PROC (sim_load_repos_load)图2这是因为我们用的模型库已经不是标准的模型库了,我们是自己创建的模型库,所以需要修改设置:就是将问题1设置的Network Simulation Repository值stdmod 删除,变回empty,如图3所示。
课程设计报告课程名称:操作系统实验题目:用多进程同步方法解决生产者—消费者问题院系:计算机科学与工程学院班级:姓名:学号:指导老师:一、概述:1、问题描述:用多进程同步方法解决生产者—消费者问题设计目的:通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制.说明:有界缓冲区内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数。
设计要求:1)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和生产者/消费者线程的标识符.2) 生产者和消费者各有两个以上.3)多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。
2、程序设计基本思想:生产者—消费者问题是一种同步问题的抽象描述.计算机系统中的每个进程都可以消费或生产某类资源.当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。
而当某个进程释放资源时,则它就相当一个生产者.⏹一个有限空间的共享缓冲区,负责存放货物.⏹生产者向缓冲区中放物品,缓冲区满则不能放.⏹消费者从缓冲区中拿物品,缓冲区空则不能拿。
因为有多个缓冲区,所以生产者线程没有必要在生成新的数据之前等待最后一个数据被消费者线程处理完毕。
同样,消费者线程并不一定每次只能处理一个数据。
在多缓冲区机制下,线程之间不必互相等待形成死锁,因而提高了效率。
多个缓冲区就好像使用一条传送带替代托架,传送带上一次可以放多个产品。
生产者在缓冲区尾加入数据,而消费者则在缓冲区头读取数据.当缓冲区满的时候,缓冲区就上锁并等待消费者线程读取数据;每一个生产或消费动作使得传送带向前移动一个单位,因而,消费者线程读取数据的顺序和数据产生顺序是相同的。
可以引入一个count计数器来表示已经被使用的缓冲区数量.用Producer和Consumer 来同步生产者和消费者线程。
每当生产者线程发现缓冲区满( count=BufferSize ),它就等待Consumer事件.同样,当消费者线程发现缓冲区空,它就开始等待Producer.生产者线程写入一个新的数据之后,就立刻发出Consumer来唤醒正在等待的消费者线程;消费者线程在读取一个数据之后,就发出Producer来唤醒正在等待的生产者线程。
基于OPNET的低轨卫星星座通信系统仿真研究胡宸华;黄圣春;王玲;孟祥龙【摘要】基于OPNET搭建了一个低轨道卫星星座移动通信系统仿真平台,介绍了网络拓扑、节点模型、进程模型和无线链路模型的相关设计过程,并结合STK软件生成的极地圆轨道模型,对自主设计的一套低轨星座移动通信协议进行了验证.仿真结果表明,该平台能够正确模拟LEO星座通信系统中寻呼、建链等通信过程,以及长时延、频繁切换等卫星通信的特性,为低轨星座移动通信协议研究提供了有力支撑,可为卫星通信仿真工作提供借鉴和指导.【期刊名称】《通信技术》【年(卷),期】2018(051)010【总页数】7页(P2382-2388)【关键词】低轨卫星网络;通信协议;OPNET建模;无线链路【作者】胡宸华;黄圣春;王玲;孟祥龙【作者单位】湖南大学电气与信息工程学院,湖南长沙420082;国防科技大学电子科学学院,湖南长沙410073;湖南大学电气与信息工程学院,湖南长沙420082;海军潜艇学院,山东青岛266199【正文语种】中文【中图分类】TN927+.230 引言低轨道(Low Earth Orbit,LEO)卫星星座移动通信系统在军用和民用上都具有重大意义,是“一带一路”等国家战略中不可或缺的一环。
相比国外低轨卫星移动通信的高速发展,国内的LEO通信系统建设刚刚起步[1]。
通过软件仿真进行验证测试,对LEO星座移动通信系统建设具有重要的指导意义。
OPNET是一款主流的通信仿真软件,拥有丰富的无线网络和有线网络仿真模型,但在卫星仿真上却缺少相关功能模块[2-3]。
当前,基于OPNET的LEO网络仿真大多基于固定的卫星节点,甚至用有线节点来模拟低轨卫星通信,没有根据LEO卫星高速运动的特点来真实反映卫星通信链路和服务卫星的切换过程[4-5]。
本文旨在对OPNET环境下的LEO通信系统搭建过程进行分析,为低轨卫星移动通信协议设计的仿真验证工作提供支撑。
第4章进程同步与进程通信第4章进程同步与进程通信⼀、填空1.信号量的物理意义是当信号量值⼤于零时表⽰可⽤资源个数;当信号量值⼩于零时,其绝对值为等待进程个数。
2.所谓临界区是指进程程序中。
3.⽤P、V操作管理临界区时,⼀个进程在进⼊临界区前应对信号量执⾏p 操作,退出临界区时应对信号量执⾏v 操作。
4.有m个进程共享⼀个临界资源。
若使⽤信号量机制实现对临界资源的互斥访问,则该信号量取值最⼤为 1 ,最⼩为1-m 。
5.对信号量S的P操作原语中,使进程进⼊相应信号量队列等待的条件是s<0 。
6.信箱在逻辑上被分为信箱头和信箱体两部分。
7.在操作系统中进程间的通信可以分为⾼级通信与低级通信两种。
⼆、选择1.P、V操作是。
A.两条低级进程通信原语B.两条⾼级进程通信原语C.两条系统调⽤命令D.两条特权指令2.进程的并发执⾏是指若⼲个进程。
A.共享系统资源B.在执⾏的时间上是重叠的C.顺序执⾏D.相互制约3.若信号量S初值为2,当前值为?1,则表⽰有个进程在与S相关的队列上等待。
A.0 B.1 C.2 D.34.⽤P、V操作管理相关进程的临界区时,信号量的初值应定义为。
A.?1 B.0 C.1D.随意5.⽤V操作唤醒⼀个等待进程时,被唤醒进程的状态变为。
A.等待B.就绪C.运⾏D.完成6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是。
A.没有进程进⼊临界区(MUTEX=1)B.有⼀个进程进⼊临界区(MUTEX=0)C.有⼀个进程进⼊临界区,另⼀个在等待进⼊临界区(MUTEX=-1)D.不定7.信箱通信是进程间的⼀种通信⽅式。
A.直接B.间接C.低级D.信号量三、问答1.进程A 和B 共享⼀个变量,因此在各⾃的程序⾥都有⾃⼰的临界区。
现在进程A 在临界区⾥。
试问进程A 的执⾏能够被别的进程打断吗(可以)?能够被进程B 打断吗(这⾥,“打断”的含义是调度新进程运⾏,使进程A 暂停执⾏)(不可以)?2.信号量上的P 、V 操作只是对信号量的值进⾏加1或减1操作吗(否)?在信号量上还能够执⾏除P 、V 操作外的其他操作吗?(不能)3. 进程在运⾏时存在哪两种形式的制约?并举例说明之。