文档库 最新最全的文档下载
当前位置:文档库 › 东南大学 操作系统实验2 生产者-消费者问题

东南大学 操作系统实验2 生产者-消费者问题

东南大学 操作系统实验2 生产者-消费者问题
东南大学 操作系统实验2 生产者-消费者问题

实验1:生产者消费者问题

福建农林大学金山学院实验报告 系(教研室):专业:计算机科学与技术年级: 实验课程:生产者与消费者实验姓名:学号: 实验室号:1#608 计算机号:实验时间:指导教师签字:成绩: 实验1:生产者消费者问题 一、实验目的 生产者消费者问题是操作系统中经典的同步和互斥问题。通过实验,要求学生掌握两者之间的同步信号量和互斥信号量的使用,更深刻了解临界资源、同步和互斥的概念。 二、实验要求 1.一组生产者通过一个具有N个缓冲区的缓冲池循环不断地向一组消费者提供产 品。 2.建一个队列, 队列的长度由n记录, 定义两个指针, 分别指向队列的头和尾消 费者从头指针读取数据,每读取一个数据把n--,生产者把数据写入尾指针, 每写入一个数据就n++,当n=N的时候生产者暂停写入数据。 3.注意:缓冲池队列,用互斥锁保护。 三、实验内容和原理 1.分别画出生产者和消费者的流程图

2.针对生产者和消费者问题,可以分为哪几种情况,使用了哪些原语?分别代表 什么意思?过程如何?阐述哪些进程之间存在同步,哪些进程之间存在互斥。 3.缓冲区是否为临界资源?是否可以循环使用?通过什么来实现?举例说明(可 画图) 四、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、。 五、算法描述及实验步骤 #include <> #include const unsigned short SIZE_OF_BUFFER = 10; unsigned short ProductID = 0; unsigned short ConsumeID = 0;

unsigned short in = 0; unsigned short out = 0; int g_buffer[SIZE_OF_BUFFER]; bool g_continue = true; HANDLE g_hMutex; HANDLE g_hFullSemaphore; HANDLE g_hEmptySemaphore; DWORD WINAPI Producer(LPVOID); DWORD WINAPI Consumer(LPVOID); int main() { g_hMutex = CreateMutex(NULL,FALSE,NULL); g_hFullSemaphore = CreateSemaphore(NULL,SIZE_OF_BUFFER-1,SIZE_OF_BUFFER-1,NULL); g_hEmptySemaphore = CreateSemaphore(NULL,0,SIZE_OF_BUFFER-1,NULL); const unsigned short PRODUCERS_COUNT = 3; const unsigned short CONSUMERS_COUNT = 1; const unsigned short THREADS_COUNT = PRODUCERS_COUNT+CONSUMERS_COUNT; HANDLE hThreads[PRODUCERS_COUNT]; DWORD producerID[CONSUMERS_COUNT]; DWORD consumerID[THREADS_COUNT]; for (int i=0;i

东南大学电路实验实验报告

电路实验 实验报告 第二次实验 实验名称:弱电实验 院系:信息科学与工程学院专业:信息工程姓名:学号:

实验时间:年月日 实验一:PocketLab的使用、电子元器件特性测试和基尔霍夫定理 一、仿真实验 1.电容伏安特性 实验电路: 图1-1 电容伏安特性实验电路 波形图:

图1-2 电容电压电流波形图 思考题: 请根据测试波形,读取电容上电压,电流摆幅,验证电容的伏安特性表达式。 解:()()mV wt wt U C cos 164cos 164-=+=π, ()mV wt wt U R sin 10002cos 1000=??? ? ? -=π,us T 500=; ()mA wt R U I I R R C sin 213.0== =∴,ππ40002==T w ; 而()mA wt dt du C C sin 206.0= dt du C I C C ≈?且误差较小,即可验证电容的伏安特性表达式。 2.电感伏安特性 实验电路: 图1-3 电感伏安特性实验电路 波形图:

图1-4 电感电压电流波形图 思考题: 1.比较图1-2和1-4,理解电感、电容上电压电流之间的相位关系。对于电感而言,电压相位 超前 (超前or 滞后)电流相位;对于电容而言,电压相位 滞后 (超前or 滞后)电流相位。 2.请根据测试波形,读取电感上电压、电流摆幅,验证电感的伏安特性表达式。 解:()mV wt U L cos 8.2=, ()mV wt wt U R sin 10002cos 1000=??? ? ? -=π,us T 500=; ()mA wt R U I I R R L sin 213.0===∴,ππ 40002==T w ; 而()mV wt dt di L L cos 7.2= dt di L U L L ≈?且误差较小,即可验证电感的伏安特性表达式。 二、硬件实验 1.恒压源特性验证 表1-1 不同电阻负载时电压源输出电压 电阻()Ωk 0.1 1 10 100 1000 电源电压(V ) 4.92 4.98 4.99 4.99 4.99 2.电容的伏安特性测量

1实验1:生产者消费者问题

1实验1:生产者消费者问 题 -标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

福建农林大学金山学院实验报告 系(教研室):专业:计算机科学与技术年级: 实验课程:生产者与消费者实验姓名:学号: 实验室号:1#608 计算机号:实验时间:指导教师签字:成绩: 实验1:生产者消费者问题 一、实验目的 生产者消费者问题是操作系统中经典的同步和互斥问题。通过实验,要求学生掌握两者之间的同步信号量和互斥信号量的使用,更深刻了解临界资源、同步和互斥的概念。 二、实验要求 1.一组生产者通过一个具有N个缓冲区的缓冲池循环不断地向一组消费者提供 产品。 2.建一个队列, 队列的长度由n记录, 定义两个指针, 分别指向队列的头和尾消费 者从头指针读取数据,每读取一个数据把n--,生产者把数据写入尾指针, 每写 入一个数据就n++,当n=N的时候生产者暂停写入数据。 3.注意:缓冲池队列,用互斥锁保护。 三、实验内容和原理 1.分别画出生产者和消费者的流程图

2.针对生产者和消费者问题,可以分为哪几种情况,使用了哪些原语分别代表什 么意思过程如何阐述哪些进程之间存在同步,哪些进程之间存在互斥。 3.缓冲区是否为临界资源是否可以循环使用通过什么来实现举例说明(可画图) 四、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、。 五、算法描述及实验步骤 #include <> #include const unsigned short SIZE_OF_BUFFER = 10; unsigned short ProductID = 0; unsigned short ConsumeID = 0; unsigned short in = 0;

操作系统实验报告生产者消费者问题

操作系统课程设计 一.实验目标 完成N个生产者和M个消费者线程之间的并发控制,N、M不低于30,数据发送和接收缓冲区尺寸不小于20个(每个产品占据一个)。 其中生产者线程1、3、5、7、9生产的产品供所有奇数编号的消费者线程消费,只有所有奇数编号的消费者线程都消费后,该产品才能从缓冲区中撤销。 其中生产者线程2、4、6、8、10生产的产品所有偶数编号的消费者线程都可消费,任一偶数编号消费者线程消费该消息后,该产品都可从缓冲区中撤销。 其中11-20号生产者线程生产的产品仅供对应编号的消费者线程消费。 其他编号生产者线程生产的产品可由任意的消费者线程消费。 每个生产线程生产30个消息后结束运行。如果一个消费者线程没有对应的生产者线程在运行后,也结束运行。所有生产者都停止生产后,如果消费者线程已经

没有可供消费的产品,则也退出运行。 二.实验原理 2.1原理 生产者与消费者线程采用posix互斥锁机制进行互斥进入各自的代码段,只有采用互斥锁临界区代码段才可以不被打扰的执行;同步机制采用的是posix条件变量pthread_cond_wait和pthraed_cond_signal进行同步的。 线程间的通信采用的是共享内存机制。(注:所有的共享内存块是在进程里建立的,线程只需链接上各自的共享内存块即可,每一块共享内存的大小是100). 在这里共享内存设置成一个100的数组。 具体实施:(1)为1.3.5.7.9建立一个共享内存1号,1.3.5.7.9生产者线程生产的产品都放入这块共享内存缓冲区,所有奇数的消费者线程要消费的话,只需在消费者线程中链接上这块共享内存,就可以直接消费1.3.5.7.9生产者线程生产的产品。 (2)为2.4.6.8.10建立一块共享内存2号。2.4.6.8.10生产的产品都放入2号共享内存缓冲区,所有的偶数的消费者线程只要链接上2号缓冲区,就可以消费2.4.6.8.10生产的产品。当偶数消费者线程消费产品后,产品即可从缓冲区撤销,方法是在消费线程里将消费的产品在共享内存数组里置0。 (3)为11--20的每一对生产者消费者线程建立一块共享内存,编号11--20. 11--20号的消费者线程能链接各自的共享内存缓冲区或奇数或偶数共享内存缓冲区,即11--20号的生产者生产的产品只能被对应的消费者消费而11-20的奇数消费者可以消费缓冲区1的产品,偶数消费者可消费缓冲区2的产品。 (4)为21--30号的生产者消费者线程只建立一块共享内存21号,21--30号生产者生产的产品都放入21号缓冲区,所有的消费者线程只要链接上21号共享内存,就可以消费21--30号生产者生产的产品。 用于控制线程是否结束的方法是:设置一个全局变量t,在生产者线程里进行t++,在生产者线程里当t达到10时(注:为了很好的测试程序,本应该在生产者生产30个产品时菜结束线程,这里设置成了10),就break跳出while()循环,这样线程自然就终止。同样在消费者线程里,当t达到10时,这里不用t++,就跳出while()循环,消费者线程自然就终止。这样设计满足了,当生产者生产30个产品时就终止生产者线程,生产者线程终止消费者线程也得终止的要求。 生产者从文件so.txt读取数据进行生产,这个文件里的数据是一连串的字符从a--z的组合,没有空格或其他字符。文件内容的格式没有特殊要求。

实验报告五 生产者和消费者问题

实验报告五 ——生产者和消费者问题 姓名:丛菲学号:20100830205 班级:信息安全二班一、实习内容 ?1、模拟操作系统中进程同步和互斥 ?2、实现生产者和消费者问题的算法实现 二、实习目的 ?1、熟悉临界资源、信号量及PV操作的定义与物理意义 ?2、了解进程通信的方法 ?3、掌握进程互斥与进程同步的相关知识 ?4、掌握用信号量机制解决进程之间的同步与互斥问题 ?5、实现生产者-消费者问题,深刻理解进程同步问题 三、实习题目 ?在Linux操作系统下用C实现经典同步问题:生产者—消费者,具体要求如下: (1)一个大小为10的缓冲区,初始状态为空。 (2)2个生产者,随机等待一段时间,往缓冲区中添加数据,若缓冲区已满,等待消 费者取走数据之后再添加,重复10次。 (3)2个消费者,随机等待一段时间,从缓冲区中读取数据,若缓冲区为空,等待生 产者添加数据之后再读取,重复10次。 ?提示 本实验的主要目的是模拟操作系统中进程同步和互斥。在系统进程并发执行异步推进的过程中,由于资源共享和进程间合作而造成进程间相互制约。进程间的相互制约有两种不同的方式。 (1)间接制约。这是由于多个进程共享同一资源(如CPU、共享输入/输出设备)而引起的,即共享资源的多个进程因系统协调使用资源而相互制约。 (2)直接制约。只是由于进程合作中各个进程为完成同一任务而造成的,即并发进程各自的执行结果互为对方的执行条件,从而限制各个进程的执行速度。 生产者和消费者是经典的进程同步问题,在这个问题中,生产者不断的向缓冲区中写入数据,而消费者则从缓冲区中读取数据。生产者进程和消费者对缓冲区的操作是互斥,即当前只能有一个进程对这个缓冲区进行操作,生产者进入操作缓冲区之前,先要看缓冲区是否已满,如果缓冲区已满,则它必须等待消费者进程将数据取出才能写入数据,同样的,消费者进程从缓冲区读取数据之前,也要判断缓冲

生产者与消费者实验报告

生产者和消费者实验报告 【实验目的】 1.加深对进程概念的理解,明确进程和程序的区别。 2.进一步认识并发执行的实质。 3.验证用信号量机制实现进程互斥的方法。 4.验证用信号量机制实现进程同步的方法。 【实验要求】 用c语言编程搭建“生产者和消费者”经典进程通信问题的环境。要求程序运行时,按任意键停止,显示当前系统的各个参数的值。提交实验报告,以及相关程序列表。打包成附件上传。 【实验环境】 Visual C++6.0 【实验内容】 1.了解经典同步问题“生产者和消费者” 生产者与消费者可以通过一个环形缓冲池联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个产品。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。指针i和指针j分别指出当前的第一个空缓冲块和第一个满缓冲块。 2.分析和理解 (1)既存在合作同步问题,也存在临界区互斥问题 合作同步:当缓冲池全满时,表示供过于求,生产者必须等待,同时唤醒消费者;当缓冲池全空时,表示供不应求,消费者应等待,同时唤醒生产者。 互斥:缓冲池显然是临界资源,所在生产者与消费都要使用它,而且都要改变它的状态。 (2)基于环形缓冲区的生产者与消费者关系形式描述: 公用信号量mutex:初值为1,用于实现临界区互斥 生产者私用信号量empty:初值为n,指示空缓冲块数目 消费者私用信号量full:初值为0,指示满缓冲块数目 整型量i和j初值为0,i指示首空缓冲块序号,j指示首满缓冲块序号 (3)PV原语 var mutex,empty,full:semaphore; i,j:integer;buffer:array[0...n-1] of item; i:=j:=1; Procedure producer; begin while true do begin

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

操作系统生产者消费者问题实验报告

实验报告二 实验名称:一、生产者-消费者问题的多线程解决方案 二、设计一个执行矩阵乘法的多线程程序 日期:2015-10-22 班级:13级计科学号:姓名: 一、实验目的 1.掌握线程的同步与互斥 2.掌握生产者消费者的实现问题 3.掌握多线程的编程方法 4.掌握矩阵乘法的基本计算原理以及实现 二、实验内容 1.生产者-消费者问题的多线程解决方案 2.设计一个执行矩阵乘法的多线程程序 三、项目要求与分析 1.请查阅资料,掌握线程创建的相关知识以及矩阵乘法的相关知识,了解java语言程序编写的相关知识 2.理解线程的实验步骤 在本次试验中,以“生产者-消费者”模型为依据,提供了一个多线程的“生产者-消费者”实例,编写java代码调试运行结果,得出相应的结论。 理解矩阵乘法的实验步骤 四、具体实现 1.生产者-消费者实例 (1)创建一个缓冲信息发送接收通道接口,并创建邮箱盒子类实现,主要代码如下: ength; j++) { ength; j++)

{ " "); } ""); } ""); } (1)创建多线程类,并实现Runnable接口同步对矩阵进行分行计算,主要代码如下: etName()+"\t开始计算第 "+(task+1)+"行"); for(int i=0; i<; i++) { for(int j=0; j<; j++) { [task][i] += [task][j] * [j][i]; } } } ; } (2)通过不断改变矩阵大小,线程数目,,调试程序,运行结果: 五、所遇问题与解决方法 1.在生产者-消费者多线程试验中,刚开始没有考虑到使用线程睡眠,运行结 果速度之快,没法观看数据变化,后面定义了睡眠控制,使得问题得以解决2.在多线程矩阵开发实验中,刚开始定义矩阵太小,测试结果不太明显,后面 通过把矩阵改大,并且线程数目不断变化使得结果明显。 六、实验总结 深刻了解了生产者消费者多线程,进一步理解了“生产者-消费者”模型。同时也掌握了一些java编程语言相关知识。多线程矩阵实验中,发现矩阵小时,线程越少,运行时间越长;而矩阵过大时,线程数量与运行时间成反比。

东南大学自控实验报告实验三闭环电压控制系统研究

东南大学自控实验报告实验三闭环电压控制系统研究

东南大学 《自动控制原理》 实验报告 实验名称:实验三闭环电压控制系统研究 院(系):专业: 姓名:学号: 实验室: 416 实验组别: 同组人员:实验时间:年 11月 24日评定成绩:审阅教师:

实验三闭环电压控制系统研究 一、实验目的: (1)经过实例展示,认识自动控制系统的组成、功能及自动控制原理课程所要解决的问题。 (2)会正确实现闭环负反馈。 (3)经过开、闭环实验数据说明闭环控制效果。 二、实验原理: (1)利用各种实际物理装置(如电子装置、机械装置、化工装置等)在数学上的“相似性”,将各种实际物理装置从感兴趣的角度经过简化、并抽象成相同的数学形式。我们在设计控制系统时,不必研究每一种实际装置,而用几种“等价”的数学形式来表示、研究和设计。又由于人本身的自然属性,人对数学而言,不能直接感受它的自然物理属性,这给我们分析和设计带来了困难。因此,我们又用替代、模拟、仿真的形式把数学形式再变成“模拟实物”来研究。这样,就能够“秀才不出门,遍知天下事”。实际上,在后面的课程里,不同专业的学生将面对不同的实际物理对象,而“模拟实物”的实验方式能够做到举一反三,我们就是用下列“模拟实物”——电路系统,替代各种实际物理对象。 (2)自动控制的根本是闭环,尽管有的系统不能直接感受到它的

闭环形式,如步进电机控制,专家系统等,从大局看,还是闭环。闭环控制能够带来想象不到的好处,本实验就是用开环和闭环在负载扰动下的实验数据,说明闭环控制效果。自动控制系统性能的优劣,其原因之一就是取决调节器的结构和算法的设计(本课程主要用串联调节、状态反馈),本实验为了简洁,采用单闭环、比例调节器K。经过实验证明:不同的K,对系性能产生不同的影响,以说明正确设计调节器算法的重要性。 (3)为了使实验有代表性,本实验采用三阶(高阶)系统。这样,当调节器K值过大时,控制系统会产生典型的现象——振荡。本实验也能够认为是一个真实的电压控制系统。 三、实验设备: THBDC-1实验平台 四、实验线路图: 五、实验步骤: (1)如图接线,建议使用运算放大器U8、U10、U9、U11、U13。

操作系统实验报告生产者与消费者问题模拟

操作系统上机实验报告 实验名称: 生产者与消费者问题模拟 实验目的: 通过模拟生产者消费者问题理解进程或线程之间的同步与互斥。 实验内容: 1、设计一个环形缓冲区,大小为10,生产者依次向其中写入1到20,每个缓冲区中存放一个数字,消费者从中依次读取数字。 2、相应的信号量; 3、生产者和消费者可按如下两种方式之一设计; (1)设计成两个进程; (2)设计成一个进程内的两个线程。 4、根据实验结果理解信号量的工作原理,进程或线程的同步\互斥关系。 实验步骤及分析: 一.管道 (一)管道定义 所谓管道,是指能够连接一个写进程和一个读进程的、并允许它们以生产者—消费者方式进行通信的一个共享文件,又称为pipe文件。由写进程从管道的写入端(句柄1)将数据写入管道,而读进程则从管道的读出端(句柄0)读出数据。(二)所涉及的系统调用 1、pipe( ) 建立一无名管道。 系统调用格式 pipe(filedes) 参数定义 int pipe(filedes); int filedes[2]; 其中,filedes[1]是写入端,filedes[0]是读出端。 该函数使用头文件如下: #include #inlcude #include 2、read( ) : 系统调用格式 read(fd,buf,nbyte) 功能:从fd所指示的文件中读出nbyte个字节的数据,并将它们送至由指针buf 所指示的缓冲区中。如该文件被加锁,等待,直到锁打开为止。 参数定义:

int read(fd,buf,nbyte); int fd; char *buf; unsigned nbyte; 3、write( ) 系统调用格式 read(fd,buf,nbyte) 功能:把nbyte 个字节的数据,从buf所指向的缓冲区写到由fd所指向的文件中。如文件加锁,暂停写入,直至开锁。 参数定义同read( )。 (三)参考程序 #include #include #include int pid1,pid2; main( ) { int fd[2]; char outpipe[100],inpipe[100]; pipe(fd); /*创建一个管道*/ while ((pid1=fork( ))==-1); if(pid1==0) { lockf(fd[1],1,0); /*把串放入数组outpipe中*/ sprintf(outpipe,child 1 is using pipe!); /* 向管道写长为50字节的串*/ write(fd[1],outpipe,50); sleep(5); /*自我阻塞5秒*/ lockf(fd[1],0,0); exit(0); } else { while((pid2=fork( ))==-1); if(pid2==0) { lockf(fd[1],1,0); /*互斥*/ sprintf(outpipe,child 2 is using pipe!); write(fd[1],outpipe,50); sleep(5); lockf(fd[1],0,0);

东南大学操作系统练习题 操作系统第二章练习题1

操作系统第二章练习题 一、选择题 1、用户在一次计算过程中,或者一次事务处理中,要求计算机完成所做的工作的集合,这是指(C)。 A.进程 B.程序 C.作业 D.系统调用 2、下面(D)不属于操作系统提供给用户的接口。 A.命令接口 B.程序接口 C.图形接口 D.I/O接口 3、作业的组成不包括下面哪项(B)。 A.程序 B.进程 C.数据 D.作业控制说明书 4、用户可以通过(D)方式由用户接触作业运行情况来进行操作。A.脱机 B.自动控制 C.在线处理

D.联机处理 5、系统调用是(D)。 A.一条计算器指令 B.中断子程序 C.用户子程序 D.提供编程人员的接口 6、系统调用的目的是(C)。 A.请求系统服务 B.终止系统服务 C.申请系统资源 D.释放系统资源 7、用户要在程序一级获得程序帮助,必须通过(D)。A.进程调度 B.作业调度 C.键盘命令 D.系统调用 8、系统调用是由操作系统提供的内部调用,它(B)。A.直接通过键盘交互方式使用 B.通过用户程序间接使用 C.是命令接口中的命令使用 D.与系统命令一样 9、作业在系统中存在与否的唯一标志是(C)。

A.源程序 B.作业说明书 C.作业控制快 D.目的程序 10、在操作系统中,JCB是指(A)。 A.作业控制块 B.进程控制块 C.文件控制块 D.程序控制块 11、操作系统中的作业管理是一种(A)。 A.宏观的高级管理 B.宏观的低级管理 C.系统刚开始加电 D.初始化引导完成 12、作业调度算法常考因素之一是使系统有最高的吞吐率,为此应(D)。 A.不让处理机空闲 B.不使系统过于复杂 C.使各类用户满意 D.能够处理尽可能多的作业 13、作业调度的关键在于(B)。 A.选择恰当的进程管理程序

操作系统实验报告-三大经典问题之生产者与消费者问题

计算机操作系统实验报告题目三大经典问题之生产者与消费者问题

一、课程设计的性质与任务 1、加深对并发协作进程同步与互斥概念的理解。通过编写程序实现进程同步和互斥,使学生掌握有关进程(线程)同步与互斥的原理,以及解决进程(线程)同步和互斥的算法,从而进一步巩固进程(线程)同步和互斥等有关的内容。 2、掌握进程和线程的概念,进程(线程)的控制原语或系统调用的使用。 3、了解Windows2000/XP中多线程的并发执行机制,线程间的同步和互斥。学习使用Windows2000/XP中基本的同步对象,掌握相应的 API函数。 4、培养学生能够独立进行知识综合,独立开发较大程序的能力。 5、培养提高学生软件开发能力和软件的调试技术。 6、培养学生开发大型程序的方法和相互合作的精神。 7、培养学生的创新意识。 8、培养学生的算法设计和算法分析能力。 9、培养学生对问题进行文字论述和文字表达的能力。 二、课程设计的内容及其要求 在Windows XP、Windows 2000等操作系统下,使用的VC、VB、Java或C等编程语言,采用进程(线程)同步和互斥的技术编写程序实现生产者消费者问题或哲学家进餐问题或读者-写者问题或自己设计一个简单进程(线程)同步和互斥的实际问题。 要求:(1)经调试后程序能够正常运行。 (2)采用多进程或多线程方式运行,体现了进程(线程)同步互斥的关系。 (3)程序界面美观。

三、实验原理 本实验要求利用PV操作实现解决生产者——消费者问题中的同步问题。此问题描述的是一群生产者进程在生产产品并将这些产品提供给消费者进程去消费,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区,消费者进程可从缓冲区中取走产品去消费,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取产品,也不允许生产者进程向一个已装满且尚未取出的缓冲区中投放产品,并且生产者消费者互斥使用缓冲区。 四、实验原理图 五、算法实现 (1)有一个生产者线程ProduceThread,有1个消费者进程CustomerThread;缓冲区为shareList。 (2)使用线程同步:用synchonized关键字(加锁)使得一个时间

东南大学系统实验报告

实验八:抽样定理实验(PAM ) 一. 实验目的: 1. 掌握抽样定理的概念 2. 掌握模拟信号抽样与还原的原理和实现方法。 3. 了解模拟信号抽样过程的频谱 二. 实验内容: 1. 采用不同频率的方波对同一模拟信号抽样并还原,观测并比较抽样信号及还原信号的波形和频谱。 2. 采用同一频率但不同占空比的方波对同一模拟信号抽样并还原,观测并比较抽样信号及还原信号的波形和频谱 三. 实验步骤: 1. 将信号源模块、模拟信号数字化模块小心地固定在主机箱中,确保电源接触良好。 2. 插上电源线,打开主机箱右侧的交流开关,在分别按下两个模块中的电源开关,对应的发光二极管灯亮,两个模块均开始工作。 3. 信号源模块调节“2K 调幅”旋转电位器,是“2K 正弦基波”输出幅度为3V 左右。 4. 实验连线 5. 不同频率方波抽样 6. 同频率但不同占空比方波抽样 7. 模拟语音信号抽样与还原 四. 实验现象及结果分析: 1. 固定占空比为50%的、不同频率的方波抽样的输出时域波形和频谱: (1) 抽样方波频率为4KHz 的“PAM 输出点”时域波形: 抽样方波频率为4KHz 时的频谱: 50K …… …… PAM 输出波形 输入波形

分析: 理想抽样时,此处的抽样方波为抽样脉冲,则理想抽样下的抽样信号的频谱应该是无穷多个原信号频谱的叠加,周期为抽样频率;但是由于实际中难以实现理想抽样,即抽样方波存在占空比(其频谱是一个Sa()函数),对抽样频谱存在影响,所以实际中的抽样信号频谱随着频率的增大幅度上整体呈现减小的趋势,如上面实验频谱所示。仔细观察上图可发现,某些高频分量大于低频分量,这是由于采样频率为4KHz ,正好等于奈奎斯特采样频率,频谱会在某些地方产生混叠。 (2) 抽样方波频率为8KHz 时的“PAM 输出点”时域波形: 2KHz 6K 10K 14K 输入波形 PAM 输出波形

操作系统实验报告--经典的生产者—消费者问题

实验二经典的生产者—消费者问题 一、目的 实现对经典的生产者—消费者问题的模拟,以便更好的理解经典进程同步问题。 二、实验内容及要求 编制生产者—消费者算法,模拟一个生产者、一个消费者,共享一个缓冲池的情形。 1、实现对经典的生产者—消费者问题的模拟,以便更好的理解此经典进程同步问题。生产者-消费者问题是典型的PV操作问题,假设系统中有一个比较大的缓冲池,生产者的任务是只要缓冲池未满就可以将生产出的产品放入其中,而消费者的任务是只要缓冲池未空就可以从缓冲池中拿走产品。缓冲池被占用时,任何进程都不能访问。 2、每一个生产者都要把自己生产的产品放入缓冲池,每个消费者从缓冲池中取走产品消费。在这种情况下,生产者消费者进程同步,因为只有通过互通消息才知道是否能存入产品或者取走产品。他们之间也存在互斥,即生产者消费者必须互斥访问缓冲池,即不能有两个以上的进程同时进行。 三、生产者和消费者原理分析 在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻挡,直到新的物品被生产出来。 四、生产者与消费者功能描述: 生产者功能描述:在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。 消费者功能描述:消费者线程从缓冲区获得物品,然后释放缓冲区,当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。 五、实验环境 操作系统环境:Windows系统。 编程语言:C#。

生产者消费者问题模拟实现(z)

生产者-消费者实验 1.1实验目的和要求 1.1.1实验目的 操作系统的基本控制和管理控制都围绕着进程展开,其中的复杂性是由于支持并发和并发机制而引起的。自从操作系统中引入并发程序设计后,程序的执行不再是顺序的,一个程序未执行完而另一个程序便已开始执行,程序外部的顺序特性消失,程序与计算不再一一对应。并发进程可能是无关的,也可能是交互的。然而,交互的进程共享某些变量,一个进程的执行可能会影响其他进程的执行结果,交互的并发进程之间具有制约关系、同步关系。其中典型模型便是生产者-消费者模型。 本实验通过编写和调试生产者-消费者模拟程序,进一步认识进程并发执行的实质,加深对进程竞争关系,协作关系的理解,掌握使用信号量机制与P、V操作来实现进程的同步与互斥。 1.1.2实验要求 1.用高级语言编写一个程序,模拟多个生产者进程和多个消费者进程并发执行,并采用信号量机制与P、V操作实现进程间同步与互斥。 2.撰写实验报告,报告应包含以下容: (1)实验目的; (2)实验容; (3)设计思路; (4)程序流程图; (5)程序中主要数据结构和函数说明; (6)带注释的源程序代码; (7)程序运行结果及分析; (8)实验收获与体会。 1.2预备知识 1.2.1生产者—消费者问题 生产者—消费者问题表述如下:如图3.1所示,有n个生产者和m个消费者,连接在具

有k个单位缓冲区的有界环状缓冲上,故又称有界缓冲问题。生产者不断生成产品,只要缓冲区未满,生产者进程pi所生产的产品就可投入缓冲区;类似的,只要缓冲区非空,消费者进程cj就可以从缓冲区取走并消耗产品。 图 3.1 生产者—消费者问题示意图 著名的生产者—消费者问题(producer-consumer problem)是计算机操作系统中并发进程在关系的一种抽象,是典型的进程同步问题。在操作系统中,生产者进程可以是计算进程、发送进程,而消费者进程可以是打印进程、接收进程等,解决好生产者—消费者问题就解决了一类并发进程的同步问题。 操作系统实现进程同步的机制称为同步机制,它通常由同步原语组成。不同的同步机制采用不同的同步方法,迄今已设计出多种同步机制,本实验采用最常用的同步机制:信号量及PV操作。 1.2.2信号量与PV操作 1965年,荷兰计算机科学家E.W.Dijkstra提出新的同步工具——信号量和PV操作,他将交通管制中多种颜色的信号灯管理方法引入操作系统,让多个进程通过特殊变量展开交互。一个进程在某一关键点上被迫停止直至接收到对应的特殊变量值,通过这一措施任何复杂的进程交互要求均可得到满足,这种特殊变量就是信号量(semaphore)。为了通过信号量传送信号,进程可利用P和V两个特殊操作来发送和接收信号,如果协作进程的相应信号仍未到达,则进程被挂起直至信号到达为止。 在操作系统中用信号量表示物理资源的实体,它是一个与队列有关的整型变量。具体实现时,信号量是一种变量类型,用一个记录型数据结构表示,有两个分量:一个是信号量的值,另一个是信号量队列的指针。信号量在操作系统中主要用于封锁临界区、进程同步及维护资源计数。除了赋初值之外,信号量仅能由同步原语PV对其操作,不存在其他方法可以检查或操作信号量,PV操作的不可分割性确保执行的原子性及信号量值的完整性。利用信号量和PV操作即可解决并发进程竞争问题,又可解决并发进程协作问题。 信号量按其用途可分为两种:公用信号量,联系一组并发进程,相关进程均可在此信号量上执行PV操作,用于实现进程互斥;私有信号量,联系一组并发进程,仅允许此信号量所拥有的进程执行P操作,而其他相关进程可在其上执行V操作,初值往往为0或正整数,多用于并发进程同步。

视野检查实验报告

视野检查实验报告 篇一:视野检查实验报告 彩色分辨视野测定实验报告 学号:02a14541姓名:庄加华高意日期:摘要:本实验旨在学习视野计的使用方法和视野的检查方法,并了解测定视野的意义,比较左 右视野的异同并指出盲点在视网膜上的位置并计算它的大小。实验以一名大学生为被试,用 彩色视野计测定被试的视野以及盲点范围。研究结果表明: (1)被试视野范围红色视标上方为40,鼻侧72°,下方50°,颞侧65°。 (2)被试左右两眼的视野范围都大致呈椭圆形,视野在不同角度上可以看到的范围是不一

样的,在鼻侧要小于颞侧,上方小于下方。引言: 视野是指当人的头部和眼球不动时,人眼能观察到的空间范围通常以角度表示。人的视 野范围,在垂直面内,最大固定视野为115°,扩大的视野范围为150°;在水平面内,最大 固定视野为180°,扩大的视野为190°。人眼最佳视区上下,左右视野均为只有°左右;良好视野范围,位于在垂直面内水 平视线以下30°和水平面内零线左﹑右两侧各15°的范围内;有效视野范围,位于垂直面内 水平视线以上25°,以下35°,在水平面内零线左右各35°的视野范围。在垂直面内,实际上人的自然视线低于水平视线,直立时低15°,放松站立时低30°,放松坐姿时低40°,因此,视野范围在垂直面内的下界限也应随放松坐姿,放松立姿而改变。色觉视野,不同颜色对人眼的刺激不同,所以视野也不同。白色视野最大,黄﹑蓝﹑红 ﹑绿的视野依次减小。方法: 被试者

东南大学机械学院20XX级一名本科生,男,年龄为20,视力正常 仪器与材料 彩色分辨视野计,红色视标,视野图纸,铅笔 实验设计采用双因素被试内设计,自变量为左右眼和角度,因变量为被试看到的视野范围。 实验程序 准备工作 1、把视野图纸安放在视野计背面圆盘上,学习在图纸 上做记录的方法。(记录时与被试 反应的左右方位相反,上下方位颠倒)。 2、主试选择一种某一大小及颜色(如红色)的刺激。 3、让被试坐在视野计前。被试戴上遮眼罩把左眼遮起来,下巴放在仪器的支架上,用右 眼注视正前方的黄色注视点,一定不要转动眼睛。同时用余光注意仪器的半圆弧。如果看到 弧上有红色的圆点,或者原来看到了红色后来又消失了,要求立即报告出来。在红点消失前,

东南大学操作系统练习题 第四章 复

第四章 单选 1.在利用信号量实现进程的同步与互斥时,应将()至于P操作和V操作之间.(A)A临界区 B进入区 C退出区 D剩余区 2.进程的基本关系为(B ) A相互独立与相互制约 B同步与互斥 C并行执行与资源共享 D信息传递与信息缓冲 3.在一段时间内,只允许一个进程访问的资源称为(C) A共享资源 B临界区 C临界资源 D共享区 4.临界区是指(D ) A并发进程中用于实现进程的同步与互斥的程序段 B并发程序中用于实现进程的同步与互斥的程序段 C并发程序中用于实现进程通信的程序段

D并发程序中与共享变量有关的的程序段 5.正在运行的进程在信号量S上操作P操作之后,当s

13.产生死锁的四个必要条件:互斥、(B)、循环等待和不剥夺。 A请求与阻塞B请求与保持C请求与释放D释放与阻塞 14.采用资源剥夺法克解除死锁,还可以采用(B)方法解除死锁。 A执行并行操作 B撤销进程 C拒绝分配新资源 D修改信号量 15.银行家算法是一种(B )算法 A死锁解除B死锁避免C死锁预防D死锁检测 16.在下列选项中,属于预防死锁的方法是(A) A剥夺资源法B资源分配图简化法C资源所以分配D银行家算法17.两个进程争夺同一个资源(B) A一定死锁B不一定死锁C不死锁D以上说法都不对 18.下列哪个不是处理死锁的方法(D) A预防B检测c避免D撤销 判断题 1打印机、磁带机、绘图仪等都属于软件临界资源。(F ) .对临界资源应该采用互斥访问方式实现共享。(T ) 3.信号量只能通过初始化和两个标准的p原语和v原语来访问。(T ) 4.公用信号量通常是为进程同步而设。(F ) 5.进程的互斥和同步总是因相互制约而同时引起。(F )

东南大学检测技术第1次实验报告

东南大学 《传感器技术·检测技术》 实验报告 实验一金属箔式应变片——单臂电桥性能实验 实验二金属箔式应变片——半桥性能实验 实验三金属箔式应变片——全桥性能实验 实验五差动变压器的性能实验 院(系):自动化专业:自动化 姓名:学号: 实验室:常州楼5楼实验时间:2016 年11月17日评定成绩:审阅教师:

目录 实验一金属箔式应变片——单臂电桥性能实验 一、实验目的 (4) 二、基本原理 (4) 三、实验器材 (4) 四、实验步骤 (5) 五、实验数据处理 (6) 六、思考题 (7) 实验二金属箔式应变片——半桥性能实验 一、实验目的 (8) 二、基本原理 (8) 三、实验器材 (8) 四、实验步骤 (8) 五、实验数据处理 (9) 六、思考题 (10) 实验三金属箔式应变片——全桥性能实验 一、实验目的 (11) 二、基本原理 (11) 三、实验器材 (11) 四、实验步骤 (11) 五、实验数据处理 (12) 六、思考题 (12) 实验五差动变压器的性能实验 一、实验目的 (16) 二、基本原理 (16) 三、实验器材 (16) 四、实验步骤 (16) 五、实验数据处理 (19) 六、思考题 (21)

设计思考 1、设计原理 (21) 2、设计框图 (21) 3、电路设计 (21)

实验一金属箔式应变片——单臂电桥性能实验 一、实验目的 了解金属箔式应变片的应变效应及单臂电桥工作原理和性能。 二、基本原理 1、电阻丝在外力作用下发生机械变形时,其电阻值发生变化,这就是电阻应变效应。 2、描述电阻应变效应的关系式为:ΔR/R=Kε式中:ΔR/R 为电阻丝电阻相对变化, K 为应变灵敏系数,ε=ΔL/L 为电阻丝长度相对变化。 3、金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感元件,通过它反映被测部 位受力状态的变化。电桥的作用是完成电阻到电压的比例变化,电桥的输出电压反映了相应的受力状态。单臂电桥输出电压 Uo 1 = EKε/4。 三、实验器材 主机箱(±4V、±15V、电压表)、应变传感器实验模板、托盘、砝码、万用表、导线等。 图2.1 应变传感器安装示意图 1、如图 2-1,将托盘安装到应变传感器的托盘支点上,应变式传感器(电子秤传感器) 已安装在应变传感器实验模板上。传感器左下角应变片为 R1,右下角为 R2,右上角为 R3,左上角为 R4。当传感器托盘支点受压时,R1、R3 阻值增加,R2、R4 阻值减小。 2、如图 2-2,应变传感器实验模板中的 R1、R2、R 3、R4 为应变片。没有文字标记的 5 个电阻是空的,其中 4 个组成电桥模型是为实验者组成电桥方便而设的。

相关文档
相关文档 最新文档