死锁,死锁的预防,linux线程控制

死锁,死锁的预防,linux线程控制

ID:28016931

大小:96.79 KB

页数:7页

时间:2018-12-07

死锁,死锁的预防,linux线程控制_第1页
死锁,死锁的预防,linux线程控制_第2页
死锁,死锁的预防,linux线程控制_第3页
死锁,死锁的预防,linux线程控制_第4页
死锁,死锁的预防,linux线程控制_第5页
资源描述:

《死锁,死锁的预防,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=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。