2023年操作系统进程同步实验报告.docx
《2023年操作系统进程同步实验报告.docx》由会员分享,可在线阅读,更多相关《2023年操作系统进程同步实验报告.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验三:进程同步实验一、实验任务:(1)掌握操作系统的进程同步原理;(2)熟悉1 i nux的进程同步原语;(3)设计程序,实现经典进程同步问题。二、实验原理:(1 )P V操作PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操 作,具体定义如下:P(S):将信号量S的值减1,即S=S-1;假如S3 0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。V (S):将信号量S的值加1,即$=5 + 1 ;假如S0,则该进程继续执行;否则释放队列中第一个等待信号量的进 程。(2)信号量信号量(sem叩ho re)的数据结构为一个值和一个指针,指针指向等待该信号量的
2、下一个 进程。信号量的值与相应资源的使用情况有关。当它的值大于。时,表达当前可用资源的数 量;当它的值小于0时,其绝对值表达等待使用该资源的进程个数。注意,信号量的值仅能由 PV操作来改变。一般来说,信号量N 0时,S表达可用资源的数量。执行一次P操作意味着请求分派一 个单位资源,因此S的值减1;当SvO时,表达已经没有可用资源,请求者必须等待别的进程 释放该类资源,它才干运营下去。而执行个V操作意味着释放一个单位资源,因此S的值 加I;若S0,表达有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运营 下去。(3) 1 in ux的进程同步原语wait ();阻塞父进程,子进程执行
3、;reader10reader15reader220reader225reader230reader235reader240reader245reader250reader255reader260reader265reader270reader275reader280reader285reader290reader295Read 2exit+count=0call writerwrite 0write !write :iewrite :L5write 20write 25write 30write 35write 40write 45write 50write 55write 60write
4、65write 70write 75write 80write 85write 90write 95write finish!#i n elude #in c lude key t ft o k (c h ar * p a thnam e , char pro j );它返回与途径 p ath n amc 相 相应的一个键值。i n t semge t (key_ t key, in t n sems, int semflg)参数key是一个键值,由f t o k获得,唯一标记一个信号灯集,用法与m s g ge t ()中 的key相同;参数n s ems指定打开或者新创建的信号灯集中将包含
5、信号灯的数目;semflg 参数是一些标志位。参数key和semf 1 g的取值,以及何时打开已有信号灯集或者创建一个 新的信号灯集与msggetO中的相应部分相同。该调用返回与健值ke y相相应的信号灯集 描述字。调用返回:成功返回信号灯集描述字,否则返回一1。int semop(int sem i d , st r u c t semb u f * sop s , u nsi g ne d nsop s );semid是信号灯集I D , sop s指向数组的每一个sembu f结构都刻画一个在特定信号灯 上的操作。nsops为sops指向数组的大小。 i n t semctl (int
6、sem i d, i n t semnum,in t emd, u n ion semun arg)该系统调用实现对信号灯的各种控制操作,参数sem i d指定信号灯集,参数emd指 定具体的操作类型:参数semnum指定对哪个信号灯操作,只对几个特殊的c md操作故 意义;ar g用于设立或返回信号灯信息。三、实验源程序:# incl u dei n clud e # i nc 1 ud e i n cl u d e # i nc 1 u dei nelu d e# inc 1 ude #includei ncl u de # include in c lude # i n elude i
7、ncl u d e # defin e P ERM S_I RUSR I S JWUSRd efine S E MKEY (key_t) 0 x 200t y pedef u n i on _s e n um 1 n t va 1 ;st r uct s emid_ds * b u f;ushor t * a rray;)s e mun;i nt s emi d ;s t atic in t c o u nt= 0 ;F I LE*fp,* f pl,* f p 2 ;s t r u ct sembuf prmutex= 0 1 , 0 ),pwmu t ex= 1,- 1 ,0 ,ps= 2
8、, -1,0; stru c t sembuf v r mu t ex=(),l,(),vwmu t ex= 1, 1 ,0 , v s= 2, 1 ,0);i n t in i tsem ()(semun x;x . v a 1=1;if(semid=sem g et(SEMKEY,3,0 6 00|IPC_CRE AT I IPC_EX CL)=-1)if(errno=E EXIST)semid=semg e t(SEM KEY, 3,0);i f (s e mctl(semid, 0, S ETV AL,x)= = - 1 )(p e r r or( s emctl fa i 1 e d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 操作系统 进程 同步 实验 报告
限制150内