欢迎来到天天文库
浏览记录
ID:28016931
大小:96.79 KB
页数:7页
时间:2018-12-07
《死锁,死锁的预防,linux线程控制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、操作系统实验报告姓名:XXX学号:20in230100X年级:2011级专业:计算机科学与技术(应用型)指导教师:黄玲1.实验目的理解死锁,理解死锁的预防,理解Linux线程控制。2.实验环境Ubuntu8.03.实验内容3.1Linux线程说明Linux的线程奋两种,一种内核线程,-种川户线程。通常使川pthread线程库管理川户线程。线程管理库专门为每一个进程构造一个管理线程,负责处理线程相关的管理工作。当进程第一次调用pthreacLcreatcO创建一个线程时,就会创建并动管理线程。(1)创建线程intpthread_create(pthread_trestric
2、ttidp,constpthread_attr_t^restrictattr,void*(*$tart_rtn)(void),void^restrictarg)tidp为指向线程标识符的指针,attr为线程属性,startjtn为线程执行函数,arg为芄参数。(2)线程互斥信号量(川于临界资源访问)的创建及其初始化intpthrcad_mLitcx_init(pthrcad_mutcx_t^mutex,constpthrcad_mutcxattr_t*mutcxattr)mutex为指向互斥信号量的指针,mutexattr为信号量属性。(3)线程互斥信号景的申诮intpt
3、hrcad_mutcx_lock(pthrcad_mutcx_t*mutex)mutex为指向互斥信号量的指针(4)线程互斥信号景的释放intpthread_mutex_unlock(pthread_mutex_t*mutex)(5)编译包念pthread线程的源程序,要加上-Ipthread为pthread库不足Linux系统库。如:gcc-omycodemycode.c-Ipthread3.2实验要求:下面实例可能会发生死锁。要求修改实例,预防死锁发生。本程序模拟十字路U汽车交通状况。道路见下图,奋四段路A、B、C、D,每段路一次只允许一辆车通过。c东WBD实验代码:
4、#include#include#includetiinclude^defineMax7pthread_tE[Max]://从东方米的汽车。毎辆汽车对应一个线程pthreadtW[Max];//从西方米的汽:午:pthrcad_tS[Max];//从南方来的汽车pthread_mutex_tsi://线程互斥信兮贵,对应C路段pthreadmutex_ts2;//线程互斥信号量,对应B路段pthrcad_mutex_ts3;//线程互斥信号量,对应A路段pthread_mutex_ts4
5、;//钱程互斥信号量,对/、V:D路段inti:void*s(void*al)//南边來的汽车的线程执行体{intserialNum=*((int*)al)://取当前汽车序号pthreadmutexlock(&sl);printf(〃S%denterC〃,serialNum);sleep(2):pthreadmutexunlock(&sl);pthread_mutex」ock(&s2);printf(〃S%denterB〃,serialNum);sleep(2);pthrcad_mutex_unlock(&s2);pthread_mutex_lock(&s3):
6、printf(〃S%denterA〃,serialNum);sleep(2);printf("S%dleaveA〃,serialNum);printf("!!!Sfinishedone〃);sleep(2):pthread_mutex_unlock(&s3):void*e(void*a2)//东边來的汽车intserialNum二*((int*)a2);pthreadmutexlock(&s2);printf(〃卜:%denterB〃,serialNum);sleep(2):pthreadmutexunlock(&s2):pthreadmutexlock(
7、&s3);printf(〃E%denterA〃,serialNum);sleep(2):pthreadmutexunlock(&s3);pthread_mutex_lock(&s4);printf("E%denterD",serialKum);sleep⑵;printf(,zE%dleaveD〃,serialhuin);printf(〃!!!Efinishedone〃);sleep⑵;pthread_mutex_unlock(&s4);}void*w(void*a3)//曲边来的汽年{intserialNum=
此文档下载收益归作者所有