当前位置:文档之家› 西北工业大学 操作系统 实验四

西北工业大学 操作系统 实验四

西北工业大学 操作系统 实验四
西北工业大学 操作系统 实验四

西北工业大学

《操作系统》实验报告

姓名:

学号:

班级:

地点:

日期:

西北工业大学

实验四、进程与线程

问题:

进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位,具有动态性、并发性、独立性、异步性和交互性。然而程序是静态的,并且进程与程序的组成不同,进程=程序+数据+PCB,进程的存在是暂时的,程序的存在是永久的;一个程序可以对应多个进程,一个进程可以包含多个程序。当操作系统引入线程的概念后,进程是操作系统独立分配资源的单位,线程成为系统调度的单位,与同一个进程中的其他线程共享程序空间。

本次实验主要的目的是:

(1)理解进程的独立空间;

(2)理解线程的相关概念。

要求:

1、请查阅资料,掌握进程创建和构造的相关知识和线程创建和构

造的相关知识,了解C语言程序编写的相关知识;

2、理解进程的独立空间的实验内容及步骤

(1)编写一个程序,在其main()函数中定义一个变量shared,对其进行循环加/减操作,并输出每次操作后的结果;

(2)使用系统调用fork()创建子进程,观察该变量的变化;

(3)修改程序把shared变量定义到main()函数之外,重复第(2)步操作,观察该变量的变化。

3、理解线程的实验步骤

(1)编写一个程序,在其main()函数中创建一个(或多个)线程,观察该线程是如何与主线程并发运行的。输出每次操作后的结果;

上述程序是实现创建进程并且把父进程和子进程的ID号打印出来,代码见附录

(2)在main()函数外定义一个变量shared(全局变量),在main()中创建一个线程,在main()中和新线程shared进行循环加/减操作,观察该变量的变化;

在此程序中,shared是一个全局变量,运行结果如下:

(3)修改程序把shared变量定义到main()函数之内,重复第(2)步操作,观察该变量的变化。

在此程序中,shared是一个局部变量,运行结果如下:

4、对整个实验过程进行分析总结,给出详细步骤;

(1) 观察上述进程执行结果,并分析原因;

(2) 提交源程序清单,并附加流程图与注释。

以上两种情况下运行结果一样是在意料之中的事情,因为无论是局部变量还是全局变量,都是执行的相同的操作。

参考程序1:

#include

int main()

{

int shared=0;

pid_t id;

id=fork();

if(id>0)

{

int i=0;

for(i=0;i<20;i++)

{

shared++;

}

printf("parent:%d\n",shared);

}

else if(id==0)

{

int j=0;

for(j=30;j>0;j--)

{

shared--;

}

printf("child:%d\n",shared);

}

return 0;

}

参考程序2

#include

#include

int main()

{

int shared=0;

pid_t id;

id=fork();

if(id>0)

{

int i=0;

for(i=0;i<20;i++)

{

shared++;

}

printf("parent:%d\n",shared);

}

else if(id==0)

{

int j=0;

for(j=30;j>0;j--)

{

shared--;

}

printf("child:%d\n",shared);

}

return 0;

}

西北工业大学操作系统实验报告实验四

实验四进程与线程一、实验目的 (1)理解进程的独立空间; (2)理解线程的相关概念。 二、实验内容与要求 1、查阅资料,掌握进程创建和构造的相关知识和线程创建和构造的相关知 识,了解C语言程序编写的相关知识; 2、理解进程的独立空间的实验内容及步骤 (1)编写一个程序,在其 main()函数中定义一个变量 shared,对其进行循环加/减操作,并输出每次操作后的结果; (2)使用系统调用 fork()创建子进程,观察该变量的变化; (3)修改程序把 shared变量定义到 main()函数之外,重复第(2)步操作,观察该变量的变化。 3、理解线程的实验步骤 (1)编写一个程序,在其 main()函数中创建一个(或多个)线程,观察该线程是如何与主线程并发运行的。输出每次操作后的结果; (2)在 main()函数外定义一个变量shared(全局变量),在main()中创建一个线程,在 main()中和新线程shared进行循环加/减操作,观察该变量的变化; (3)修改程序把shared变量定义到 main()函数之内,重复第(2)步操作,观察该变量的变化。

4、对整个实验过程进行分析总结,给出详细步骤; (1) 观察上述进程执行结果,并分析原因; (2) 提交源程序清单,并附加流程图与注释。 三、实验过程 1、进程的与线程的创建和构造 (1).进程的创建和构造 进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,而程序是一些保存在硬盘上的可执行代码。 新的进程通过克隆旧的程序(当前进程)而建立。fork()和clone()(对于线程)系统调用可用来建立新的进程。 (2)线程的创建和构造 线程也称做轻量级进程。就像进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与独立的进程相比,进程中的线程之间的独立程度要小。它们共享内存、文件句柄和其他每个进程应有的状态。 线程的出现也并不是为了取代进程,而是对进程的功能作了扩展。进程可以支持多个线程,它们看似同时执行,但相互之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但你必须小心,确保它们不会妨碍同一进程里的其他线程。 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制,但与进程不同的是,同类的多个线程是共享同一块内存空间和一组系统资

西工大信号与系统-实验1

西北工业大学 《信号与系统》实验报告 西北工业大学

a. 上图分别是0N或者M

b. 以上是代码,下图是运行结果

由上图可看出,图上一共有3个唯一的信号。当k=1和k=6的时候的图像是一样的。因为档k= 1时,wk=(2*PI)/5,k=6时,wk=2PI+(2*PI)/5,即w6 = 2PI+w1,因为sin函数的周期是2PI,所以他俩的图像是一样的 c.代码如下:

图像如下: 可得出结论:如果2*pi/w0不是有理数,则该信号不是周期的 1.3离散时间信号时间变量的变换 a. nx=[zeros(1,3) 2 0 1 -1 3 zeros(1,3)];图像如下: b. 代码如下: x=zeros(1,11);

x(4)=2; x(6)=1; x(7)=-1; x(8)=3; n=-3:7; n1=n-2; n2=n+1; n3=-n; n4=-n+1; y1=x; y2=x; y3=x; y4=x; c: 代码和结果如下结果 下图是结果图

西北工业大学操作系统实验_OS3(10)

评语: 课中检查完成的题号及题数: 课后完成的题号与题数: 成绩: 指导教师: 实验报告三 实验名称:七、八日期:2013.05.23 班级:10011007 学号:2010302555 姓名:杨宏志实验七理解线程的相关概念 1. 实验目的 理解当操作系统引入线程的概念后,进程是操作系统独立分配资源的单位,线程成为系统调度的单位,与同一个进程中的其他线程共享程序空间。 2. 实验预习内容 预习线程创建和构造的相关知识,了解C语言程序编写的相关知识。 3. 实验内容及步骤 (1)编写一个程序,在其main()函数中创建一个(或多个)线程,观察该线程是如何与主线程并发运行的。输出每次操作后的结果; (2)在main()函数外定义一个变量shared(全局变量),在main()中创建一个线程,在main()中和新线程shared 进行循环加/减操作,观察该变量的变化; (3)修改程序把shared 变量定义到main()函数之内,重复第(2)步操作,观察该变量的变化。

4. 实验总结 (1) 观察上述程序执行结果,并分析原因; (2) 提交源程序清单,并附加流程图与注释。思考:分析进程和线程的不同之处。 5. 具体实现 1)观察线程并发性: #include #include #include void * func(void *params) { while(1) { printf("i am the thread 2\n"); sleep(1); } return NULL; } int main() { pthread_t tid; int res=pthread_create(&tid, NULL,func,NULL); while(1) { printf("i am main thread\n"); sleep(1); } return 0; }

西工大作业机考《计算机操作系统》标准

试卷总分:100 得分:98 一、单选题 (共 50 道试题,共 100 分) 1. 在()中,不可能产生系统抖动的现象。 A.固定分区管理 B.请求页式管理 C.段式管理 D.机器中不存在病毒时 正确答案: 2. 主要由于()原因,使UNIX易于移植。 A.UNIX是由机器指令编写的 B.UNIX大部分用汇编少部分用C语言编写 C.UNIX是用汇编语言编写的 D.UNIX小部分用汇编大部分用C语言编写 正确答案: 3. 磁盘是共享设备,每一时刻()进程与它交换信息。 A.可有任意多个 B.限定n个 C.至少有一个 D.最多有一个 正确答案: 4. 操作系统是一种()。 A.应用软件 B.系统软件 C.通用软件 D.工具软件 正确答案: 5. 操作系统提供的系统调用大致可分为()等几类。 A.文件操作类、资源申请类、控制类、设备调用类 B.文件操作类、资源申请类、控制类、信息维护类 C.文件操作类、资源申请类、信息维护类、设备调用类 D.资源申请类、控制类、信息维护类、设备调用类 正确答案: 6. 并发性是指若干事件在()发生。

B.同一时间间隔内 C.不同时刻 D.不同时间间隔内 正确答案: 7. 引入多道程序技术后,处理机的利用率()。 A.降低了 B.有所改善 C.大大提高 D.没有变化,只是程序的执行方便了 正确答案: 8. 一个进程被唤醒意味着()。 A.该进程重新占有了CPU B.进程状态变为就绪 C.它的优先权变为最大 D.其PCB移至就绪队列的队首 正确答案: 9. 进程间的基本关系为()。 A.相互独立与相互制约 B.同步与互斥 C.并行执行与资源共享 D.信息传递与信息缓冲 正确答案: 10. 下列方法中哪一个破坏了“循环等待”条件?() A.银行家算法 B.一次性分配策略(即预分配策略) C.剥夺资源法 D.资源有序分配 正确答案: 11. 存储管理的目的是()。 A.方便用户 B.提高内存利用率 C.A和B D.增加内存实际容量

信号与系统答案 西北工业大学 段哲民 信号与系统1-3章答案

第一章 习 题 1-1 画出下列各信号的波形:(1) f 1(t)=(2-e -t )U(t); (2) f 2(t)=e -t cos10πt×[U(t -1)-U(t-2)]。 答案 (1))(1t f 的波形如图1.1(a )所示. (2) 因t π10cos 的周期 s T 2.0102== ππ ,故)(2t f 的波形如图题1.1(b)所示. 1-2 已知各信号的波形如图题1-2所示,试写出它们各自的函数式。 答案 )1()]1()([)(1-+--=t u t u t u t t f )]1()()[1()(2----=t u t u t t f )]3()2()[2()(3----=t u t u t t f 1-3 写出图题1-3所示各信号的函数表达式。

答案 2 002121 )2(21121)2(21 )(1≤≤≤≤-?????+-=+-+=+=t t t t t t t f )2()1()()(2--+=t u t u t u t f )] 2()2([2sin )(3--+-=t u t u t t f π )3(2)2(4)1(3)1(2)2()(4-+---++-+=t u t u t u t u t u t f 1-4 画出下列各信号的波形:(1) f 1(t)=U(t 2-1); (2) f 2(t)=(t-1)U(t 2-1); (3) f 3(t)=U(t 2-5t+6); (4)f 4(t)=U(sinπt)。 答案 (1) )1()1()(1--+-=t u t u t f ,其波形如图题1.4(a)所示.

西工大计算机操作系统实验报告OS2

评语: 成绩: 指导教师: 实验报告二 日期:2013-5-16 实验名称:构造进程家族树 理解进程的独立空间 一、实验目的: 1. 通过创建若干个子进程,构造进程家族树,分析进程家族树的结构关系;学 习相关系统调用(例如,getpid()和getppid()等)的使用方法。 2. 理解进程是操作系统独立分配资源的单位,进程拥有自己相对独立的程序空 间。 二、实验内容: 1. 进程的创建:编制一段程序,使用系统调用fork()创建三个子进程,在各个子 进程中再使用系统调用fork()进一步创建子进程,如此重复,构造一棵进程家 族树。分别使用系统调用getpid()和getppid()获取当前进程和父进程的 进程标识号并输出。 2. (1)编写一个程序,在其main()函数中定义一个变量shared,对其进行循 环加/减操作,并输出每次操作后的结果; (2)使用系统调用fork()创建子进程,观察该变量的变化; (3)修改程序把shared 变量定义到main()函数之外,重复第(2)步操作,观察该变量的变化。 三、项目要求及分析: 1.学习进程构造的相关知识,学习获取进程相关信息的系统调用函数。利用系统调用getpid()和getppid()所获得的进程标识号信息,验证是否进程间关系是否满足要求的进程家族树。 2.了解进程创建和构造的相关知识,了解C语言程序编写的相关知识。 观察进程执行结果,根据进程间的执行关系思考原因,并和线程进行比较。 四、具体实现:

4.1 流程图 1.进程家族树 Pid_1=fork() Pid_2=fork() Pid_1<0? error Pid_1==0? 输出pid 和ppid Pid_2<0? ERROR Y N Y Y Pid_2==0? Pid_2_1=fork() Pid_2_1<0? ERROR Y Y Pid_2_1==0? 输出pid 和ppid Pid_2_2=fork() N Y pid1>0?Pid_2_1>0? Pid_2_2<0? ERROR Pid_2_2==0? 输出pid 和ppid N Y Pid_2>0? Pid_3=fork() Pid_3<0? ERROR Pid_3==0? 输出pid 和ppid N N Y Y Y Y N N Y N Y 2.

西北工业大学信号与系统真题

题号:827《信号与系统》 考试大纲 一、考试内容: 根据我校教学及该试题涵盖专业多的特点,对考试范围作以下要求: 1、信号与系统的基本概念:信号的变换与运算;线性时不变系统基本性质。 2、连续系统时域分析:系统模型和自然频率;系统零输入响应、冲激响应、阶跃响应求解;系统零状态响应的卷积积分求解;全响应的求解。 3、连续信号频域分析:付立叶变换及其性质与应用;常用信号付立叶变换;周期信号、抽样信号付立叶变换;抽样定理及其应用。 4、连续系统频域分析:频域系统函数H(jω)及其求法;系统频率特性;系统零状态响应的频域求解;理想低通滤波器及其特性;信号不失真传输条件。 5、连续系统复频域分析:拉氏变换及其基本性质;拉氏反变换求解;s域的电路模型和电路定理;线性时不变系统的复频域分析。 6、复频域系统函数H(s):H(s)定义、分类、求法和零、极点图;系统模拟框图与信号流图;系统频率特性、正弦稳态响应求解以及系统稳定性判定;梅森公式及其应用。 7、离散信号与系统时域分析:离散信号时域变换、运算以及卷积求和;离散系统数学模型;线性时不变离散系统的性质、零输入响应、单位序列响应、阶跃响应、零状态响应的求解。 8、离散系统Z域分析:Z变换及其基本性质;Z反变换;系统Z域分析;系统函数H(z)及求法;H(z)零、极点图;离散系统模拟框图与信号流图;离散系统频率特性、正弦稳态响应求解以及稳定性判定;梅森公式及其应用。 9、系统状态变量分析:连续、离散系统状态方程与输出方程列写与求解;系统函数矩阵与单位冲激响应的求解;根据状态方程判断系统的稳定性;状态方程与输出方程的模拟与信号流图。 二、参考书目: [1] 段哲民等编,《信号与系统》,西北工业出版社,1997年 [2] 吴大正主编,《信号与线性系统分析》(第3版),高等教育出版社,1998.10 [3] 范世贵等编《信号与系统常见题型解析及模拟题》(第2版),西北工业出版社,2001.5 注:以上[1]、[2]和[3]各任选之一即可。

西北工业大学操作系统实验_OS3(5)

班级:10011007 学号:2010302541 姓名:陈一凡 实验七理解线程的相关概念 一.实验目的 理解当操作系统引入线程的概念后,进程是操作系统独立分配资源的单位,线程成为系统调度的单位,也是系统并发运行的独立单位。同一个进程中的各个线程共享进程的地址空间。 二.实验内容 (1)编写一个程序,在其main ()函数中创建一个(或多个)线程,观察该线 程是如何与主线程并发运行的。输出每次操作后的结果; (2)在main()函数外定义一个变量int shared (全局变量),在main()中创建一 个线程,在main()中和新线程shared 进行循环加/减操作,观察该变量的变化; (3)修改程序把int shared 变量定义到main ()函数之内,重复第(2)步操作, 观察该变量的变化; (4)编写一个程序,在其main ()函数中创建至少两个线程,在这些线程中分 别说明(定义)名称相同的整型变量(例如,int x ;),分别在各个线程中修改这些变量,试观察这些变量值的变化。 开始 创建主进程 设置局部变量shared Sleep 1 S 创建线程 Shared++ 输出Shared 的值 结束 开始 设置全局变量shared 创建主进程 Sleep 1 S 创建线程 Shared++ 输出Shared 的值 结束

实验八请求分页存储管理设计 一、实验目的 模拟存储管理常用的请求分页存储管理技术,通过本实验使学生更加深入的理解虚拟内存的思想和主要的页面淘汰算法。 二、实验内容 (1) 通过随机数产生一个指令行列,共320条指令,指令中的地址按下述原则生成:50%的指令是顺序执行;25%的指令均匀分布在前地址部分;25%的指令均匀分布在后地址部分。 (2) 具体实验办法是:在[0,319]之间选一起始点M;顺序执行一条指令,即第M+1条;向前地址[0,M-1]中执行一条指令M;顺序执行一条指令,即第M+1条;向后地址[M+2,319]中执行一条指令M。如此继续,直至产生320条指令。使用产生随机数的函数之前,首先要初始化设置RAN()产生序列的开始点, SRAND(400);然后计算随机数,产生指令序列。例如: a[0]=1.0*rand()/32767*319+1; a[1]=a[0]+1; a[2]=1.0*rand()/32767*(a[1]-1)+1; a[3]=a[2]+1; a[4]=319-1.0*rand()/32767*(a[3]-1);其中rand()和srand()为Linux操作系统提供的函数分别进行初始化和产生随机数,多次重复使用这5条指令,产生以后的指

凝固技术国家重点室-西北工业大学

目录 1.凝固技术国家重点实验室开放课题管理办法 2.附件一、开放课题申请书 3.附件二、开放课题任务书 4.附件三、开放课题年度进展报告 5.附件四、开放课题结题报告

开放课题管理办法 第一章总则 第一条依据国家科学技术部颁发的《国家重点实验室建设与运行管理办法》,本着"开放、流动、联合、竞争"的原则,为充分发挥并不断加强凝固技术国家重点实验室(以下简称凝固实验室)在凝固科学及相关领域的科学研究、人才培养、技术创新和学术交流等方面的优势,凝固实验室面向国内外科研人员设立开放课题。为进一步规范和加强开放课题管理,更好地服务于开放课题研究人员,促进高水平科研成果产出,培育高水平科研人才,特制定本管理办法。 第二条开放课题是实验室对外开放和合作交流的重要手段,是实验室科研工作和人才培养的重要补充,是实验室日常工作的重要组成部分。凝固实验室鼓励国内外高水平科研人员作为访问学者来实验室开展合作研究。 第三条凝固实验室开放课题主要支持涉及凝固过程的先进材料及其加工制备成形的基础研究或应用基础研究,重点支持凝固理论和技术的前沿研究,鼓励创新性或交叉学科的探索性研究。 第四条凝固实验室开放课题经费由实验室开放运行费支出,实行课题负责人制,单独核算,专款专用。 第二章申请 第五条凡具有博士学位或副教授以上职称,希望利用凝固实验室的科研条件开展研究工作的国内外科研人员,均可申请凝固实验室开放课题。对于已经获得项目资助的负责人,在项目执行期间内不受理新的项目申请;项目结题1年后,对于取得突出成果的项目负责人,可再次提交申请。实验室固定人员不得承担开放课题,但为了保障开放课题的执行和课题研究人员在实验室期间生活工作顺利,每项开放课题必须至少有一名实验室固定人员作为课题联系人。

西北工业大学-操作系统实验报告-实验五

实验五进程管理 一、实验目的 (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)了解FreeBSD系统中进程通信的基本原理。 二、实验内容与要求 1、掌握进程的概念,明确进程的含义; 2、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统 中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果(多次运行,查看结果是否有变化),并分析原因; 3、修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程 序执行时屏幕出现的现象(多次运行,查看结果是否有变化),并分析原因; 4、如果在程序中使用调用lockf()来给每一个子进程加锁,可以实现进程之间的互 斥,观察并分析出现的现象; 5、对整个实验过程进行分析总结,给出详细步骤; 三、实验过程 1、进程的概念与含义 狭义:进程就是一段程序的执行过程。 广义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。 进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。 2、编写一段程序,使用系统调用fork( )创建两个子进程 源代码如下所示: #include #include #include #include main() { int p1, p2 if (p1 = fork()) // 子进程1 { printf("b\n"); exit(0); } else { if (p2 = fork()) // 子进程2 { printf("c\n"); exit(0); } else { printf("a\n"); // 父进程 exit(0); } } }

西工大操作系统实验报告如何操作使用FreeBSD

一、实验目的 了解FreeBSD,学习如何操作使用FreeBSD。 二、实验要求 1.请查阅资料,了解FreeBSD 项目的各个方面,比如它的历史、目标、开发模式; 2.学习使用FreeBSD,(账号:root;密码:无),学习使用常用命令;; 3.详细记录探索学习的内容和实验的整个过程,包括资料的查询、资料的来源(资料 名称、网址等)、所做的各种尝试、以及最终的结果(包含截屏); 4.对整个实验过程进行分析总结,给出详细步骤; 三、实验设备(环境) 1.WindowsXP操作系统 2.Vmware虚拟机 3.FreeBSD操作系统 四、实验内容与步骤 1.FreeBSD的基本知识; 1.1FreeBSD简介; FreeBSD是一种类UNIX操作系统,是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支。FreeBSD 为不同架构的计算机系统提供了不同 程度的支持。并且一些原来BSD UNIX的开发者后来转到FreeBSD的开发,使得 FreeBSD在内部结构和系统API上和UNIX有很大的兼容性。由于FreeBSD宽松 的法律条款,其代码被好多其他系统借鉴包括苹果公司的macOS,正因此由于 MacOS X的UNIX兼容性,使得macOS获得了UNIX商标认证。 不同版本的FreeBSD可以支持x86、amd64(x86_64)、ARM、IA-64、PowerPC、PC-98。SPARC等架构 1.2FreeBSD历史; FreeBSD的发展始于1993年,取源于386BSD。然而,因为386BSD源代码的合理性受到质疑以及Novell(当时UNIX的版权拥有者)与伯克利接连而来的 诉讼,FreeBSD在1995年1月发布的2.0-RELEASE中以加州大学的4.4BSD-Lite Release全面改写。

西北工业大学_操作系统_实验七_

西北工业大学《操作系统》实验报告

目录 《操作系统》实验报告 (1) 一基础知识 (3) 1. 消息 (3) 2.Unix操作系统多路复用消息 (3) 二编程实现消息的创建、发送和接收 (3) 1. 编写程序 (4) 2. 编译运行 (5) 三思考题 (6) 1. 单独执行client或server 有什么结果? (6) 2. 执行一个server程序,多次执行client有什么结果? (7) 3. 消息机制与管道通信的区别 (7) 参考资料 (7)

一基础知识 1.消息 消息(message)是一个格式化的可变长的信息单元。消息机制允许由一个进程给其它任意的进程发送一个消息。当一个进程收到多个消息时,可将它们排成一个消息队列。消息使用二种重要的数据结构:一是消息首部,其中记录了一些与消息有关的信息,如消息数据的字节数;二个消息队列头表,其每一表项是作为一个消息队列的消息头,记录了消息队列的有关信息。 1、消息机制的数据结构 (1)消息首部:记录一些与消息有关的信息,如消息的类型、大小、指向消息数据区的指针、消息队列的链接指针等。 (2)消息队列头表:其每一项作为一个消息队列的消息头,记录了消息队列的有关信息如指向消息队列中第一个消息和指向最后一个消息的指针、队列中消息的数目、队列中消息数据的总字节数、队列所允许消息数据的最大字节总数,还有最近一次执行发送操作的进程标识符和时间、最近一次执行接收操作的进程标识符和时间等。 2、消息队列的描述符 UNIX中,每一个消息队列都有一个称为关键字(key)的名字,是由用户指定的;消息队列有一消息队列描述符,其作用与用户文件描述符一样,也是为了方便用户和系统对消息队列的访问 2.Unix操作系统多路复用消息 在客户-服务员模型中,一个服务员往往对应多个客户。这时我们可以利用消息的类型参量,让多个进程把消息放入同一个队列中,以便Unix消息队列能够多路复用。我们只要把type置为1,以表示消息是从客户流向服务员的。如果客户把它的进程号作为消息的一部分传递,那么服务员只要把客户进程号作为其消息类型,把它的消息发送给客户进程。每个客户进程都把msgrcv的参数msgtyp 置为其进程号。 二编程实现消息的创建、发送和接收 消息的创建、发送和接收。使用系统调用msgget( ),msgsnd( ),msgrev( ),及msgctl( )编制一长度为256Bytes的消息发送和接收的程序,将自己的进程号传递给对方,并输出至屏幕。

西北工业大学信号与系统期末试题及答案

西北工业大学信号与系统期末试题及答案

————————————————————————————————作者:————————————————————————————————日期: 2

3 / 20 诚信保证 本人知晓我校考场规则和违纪处分条例的有关规定,保证遵守考 场规则,诚实做人。 本人签字: 编号: 西北工业大学考试试题(卷) 2010 - 2011 学年第 2 学期 开课学院 计算机学院 课程 信号与系统 学时 48 考试日期 2011年6月3日 考试时间 2 小时 考试形式(闭开)(B A )卷 考生班 级 学 号 姓 名 ★注:请将各题答案做在答题纸上,答在试题纸上无效。 一、单项选择题(每题有且仅有一个答案是正确的,共20分) 1、已知某系统方程为 )(10) ()()(d 2 2t e dt t dr t r dt t r =-,则该系统是 ① 。 ① A .线性时不变系统 B .非线性时变系统 C .线性时变系统 D .非线性时不变系统 2、已知某连续线性时不变系统的初始状态不为零,设当激励为e(t)时,全响应为r(t), 则当激励增大一倍为2e(t)时,其全响应为 ② 。 ② A .也增大一倍为2r(t) B .也增大但比2r(t)小 C .保持不变仍为r(t) D .发生变化,但以上答案均不正确 3、积分式dt t t t t )]2(2)()[23(4 42-+++?-δδ的积分结果是 ③ 。 ③ A .14 B .24 C .26 D .28 注:1. 命题纸上一般不留答题位置,试题请用小四、宋体打印且不出框。 成绩

2. 命题教师和审题教师姓名应在试卷存档时填写。共7 页第1 页 4 / 20

西北工业大学操作系统实验_OS3(12)

实验报告三 理解线程的相关概念 实验名称: 日期:2013.5 请求分页存储管理设计 班级: 学号:2010302554 姓名:王振10011007 一、实验目的: 1. 理解线程的相关概念 理解当操作系统引入线程的概念后,进程是操作系统独立分配资源的单位,线程成为系统调度的单位,与同一个进程中的其他线程共享程序空间。 2. 请求分页存储管理设计 模拟存储管理常用的请求分页存储管理技术,通过本实验使学生更加深入的理解虚拟内存的思想和主要的页面淘汰算法。 二、实验内容: 1. 理解线程的相关概念 线程创建和构造的相关知识,了解C语言程序编写的相关知识。 2. 请求分页存储管理设计 学习虚拟存储器的相关基础知识,了解请求分页存储管理系统的原理和具体实现过程,熟悉各种主要的页面调度算法。 三、项目要求及分析: 1. 理解线程的相关概念 (1)编写一个程序,在其main()函数中创建一个(或多个)线程,观察该线 程是如何与主线程并发运行的。输出每次操作后的结果; (2)在main()函数外定义一个变量shared(全局变量),在main()中创建一个线 程,在main()中和新线程shared 进行循环加/减操作,观察该变量的变化; (3)修改程序把shared 变量定义到main()函数之内,重复第(2)步操作, 观察该变量的变化。 2. 请求分页存储管理设计 (1) 通过随机数产生一个指令行列,共320条指令,指令中的地址按下述原则生 成:50%的指令是顺序执行;25%的指令均匀分布在前地址部分;25%的指令 均匀分布在后地址部分。 (2) 具体实验办法是:在[0,319]之间选一起始点M;顺序执行一条指令,即第 M+1条;向前地址[0,M-1]中执行一条指令M;顺序执行一条指令,即第M+1

西北工业大学-操作系统实验报告-实验四

实验四进程与线程 一、实验目的 (1)理解进程的独立空间; (2)理解线程的相关概念。 二、实验内容与要求 1、查阅资料,掌握进程创建和构造的相关知识和线程创建和构造的相关知识,了解C 语言程序编写的相关知识; 2、理解进程的独立空间的实验内容及步骤 (1)编写一个程序,在其 main()函数中定义一个变量 shared,对其进行循环加/减操作,并输出每次操作后的结果; (2)使用系统调用 fork()创建子进程,观察该变量的变化; (3)修改程序把 shared变量定义到 main()函数之外,重复第(2)步操作,观察该变量的变化。 3、理解线程的实验步骤 (1)编写一个程序,在其 main()函数中创建一个(或多个)线程,观察该线程是如何与主线程并发运行的。输出每次操作后的结果; (2)在 main()函数外定义一个变量shared(全局变量),在main()中创建一个线程,在 main()中和新线程shared进行循环加/减操作,观察该变量的变化; (3)修改程序把shared变量定义到 main()函数之内,重复第(2)步操作,观察该变量的变化。 4、对整个实验过程进行分析总结,给出详细步骤; (1) 观察上述进程执行结果,并分析原因;

(2) 提交源程序清单,并附加流程图与注释。 三、实验过程 1、进程的与线程的创建和构造 (1).进程的创建和构造 进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,而程序是一些保存在硬盘上的可执行代码。 新的进程通过克隆旧的程序(当前进程)而建立。fork() 和 clone()(对于线程)系统调用可用来建立新的进程。 (2)线程的创建和构造 线程也称做轻量级进程。就像进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与独立的进程相比,进程中的线程之间的独立程度要小。它们共享内存、文件句柄和其他每个进程应有的状态。 线程的出现也并不是为了取代进程,而是对进程的功能作了扩展。进程可以支持多个线程,它们看似同时执行,但相互之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但你必须小心,确保它们不会妨碍同一进程里的其他线程。 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制,但与进程不同的是,同类的多个线程是共享同一块内存空间和一组系统资源的,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程,或者在各个线程之间切换时,负担要比进程小得多,正因如此,线程也被称为轻型进程(light-weight process)。一个进程中可以包含多个线程。 2、理解进程的独立空间 流程图如下所示:

西北工业大学_信号与线性系统实验报告_实验一、实验二

西北工业大学 信号与线性系统实验报告学号姓名:

实验一常用信号的分类与观察 1.实验内容 (1)观察常用信号的波形特点及其产生方法; (2)学会使用示波器对常用波形参数的测量; (3)掌握JH5004信号产生模块的操作; 2.实验过程 在下面实验中,按1.3节设置信号产生器的工作模式为11。 (1)指数信号观察: 通过信号选择键1,按1.3节设置A组输出为指数信号(此时信号输出指示灯为000000)。用示波器测量“信号A组”的输出信号。 观察指数信号的波形,并测量分析其对应的a、K参数。 (2)正弦信号观察: 通过信号选择键1,按1.3节设置A组输出为正弦信号(此时A组信号输出指示灯为000101)。用示波器测量“信号A组”的输出信号。 在示波器上观察正弦信号的波形,并测量分析其对应的振幅K、角频率 w。 (3)指数衰减正弦信号观察(正频率信号): 通过信号选择键1、按1.3节设置A组输出为指数衰减余弦信号(此时信号输出指示灯为000001),用示波器测量“信号A组”的输出信号。 通过信号选择键2、按1.3节设置B组输出为指数衰减正弦信号(此时信号输出指示灯为000010),用示波器测量“信号B组”的输出信号。 *分别用示波器的X、Y通道测量上述信号,并以X-Y方式进行观察,记录此时信号的波主持人:参与人:

形,并注意此时李沙育图形的旋转方向。(该实验可选做) 分析对信号参数的测量结果。 (4)*指数衰减正弦信号观察(负频率信号):(该实验可选做) 通过信号选择键1、按1.3节设置A组输出为指数衰减余弦信号(此时信号输出指示灯为000011),用示波器测量“信号A组”的输出信号。 通过信号选择键2、按1.3节设置B组输出为指数衰减正弦信号(此时信号输出指示灯为000100),用示波器测量“信号B组”的输出信号。 分别用示波器的X、Y通道测量上述信号,并以X-Y方式进行观察,记录此时信号的波形,并注意此时李沙育图形的旋转方向。 将测量结果与实验3所测结果进行比较。 (5)Sa(t)信号观察: 通过信号选择键1,按1.3节设置A组输出为Sa(t)信号(此时信号输出指示灯为000111),用示波器测量“信号A组”的输出信号。并通过示波器分析信号的参数。 (6)钟形信号(高斯函数)观察: 通过信号选择键1,按1.3节设置A组输出为钟形信号(此时信号输出指示灯为001000),用示波器测量“信号A组”的输出信号。并通过示波器分析信号的参数。 (7)脉冲信号观察: 通过信号选择键1,按1.3节设置A组输出为正负脉冲信号(此时信号输出指示灯为001101),并分析其特点。 3.实验数据 (1)指数信号观察: 波形图: 实验结果: 主持人:参与人:

西工大信号与系统期末试题(2010-2013三套全)

1.信号()1030f t cos t cos t =-的周期T _____s.= 2.信号()f t 的拉普拉斯变换1 21)(2 +-+= s s s s F ,则()f t 的初始值(0)=___.f + 3.若信号()(3)f t t δ=-,则(32)f t -的表达式为_____. 4.已知信号()f t 的傅里叶变换ω ωj j F +=21 )(,则_______)(=t f . 5.已知像函数1 )(-= z z z F ,1z >。则原序列______)(=k f . 6.某离散时间系统的系统函数4 1 1 )(2- --=Az z z z H ,为使系统稳定,则常数A 的取值范围是 ______. 7.某离散时间系统的系统矩阵? ?? ???--=2001A ,则A k ______.= 8.1[(05)(1)](2)k .U k k ______.δ++*-= 二、如图)(1a 所示系统中,已知信号)()(0t Sa t f m m ωπ ω= ,其频谱如图)(1b 所示;系统)(1ωj H 的频率特性如图)(1c 所示,)()(∑∞ -∞ =-= n s T nT t t s δδ,)(2 ωj H 为一个理想低通滤波器。 (1)画出()f t 的频谱图;(2)画出m s ωω4=时的抽样信号的频谱图)(ωj F s ;(3)在m s ωω4=情况下,若)()(t f t y =,则写出理想低通滤波器的频率特性)(2ωj H ,并指出其截止频率c ω的取值范围。 ) )(a ) (b ) (c 图1

三、图2示系统为线性时不变系统。 (1)根据状态1()x t 和2()x t ,写出系统的状态方程和输出方程;(2)求系统函数矩阵)(s H ; 1() f t 2(f t 1() y t 2() y t 图2 四、已知某线性离散时不变系统的差分方程为 ()(1)2(2)()2(2)y k y k y k f k f k ----=+-,(0)2(1)7()()y ,y ,f k U k === (1)求系统的单位序列响应()h k ;(2)画出系统直接形式的信号流图; (3)求系统的全响应()y k 。 五、已知某线性离散时不变系统的单位阶跃响应为k k 432 ()[(05)(02)]U(k)3721 g k ..=-+- (1)写出该系统的差分方程; (2)若系统的零状态响应为k k 10 ()=[(0.5)(02)]()7 zs y k .U k --,求激励信号()f k ; 一、选择题 1. 2sin0.75,(),cos2()t k e U t tU t -分别是 信号,其中k 为整数。 A 周期; 能量; 周期; B 非周期; 能量; 功率 ; C 非周期; 功率; 周期; D 功率; 能量; 周期。 2.信号)4sgn(2-t 等价于下面那个信号? 。 A )2()2(--+-t U t U ; B )2(2)2(21--+--t U t U ; C )2(2)2(21-++-t U t U ; D )2()2()2(+---+-t U t U t U 。 3.某离散系统的输入输出关系为)2()(+=k f k y ,则该系统的特性为 。 A 稳定的; 因果的; 线性的; 时变的; B 不稳定的; 因果的; 线性的; 时不变的; C 稳定的; 非因果的; 线性的; 时不变的; D 不稳定的; 非因果的; 非线性的; 时变的。

计算机操作系统实验二

实验一了解RedHat系统和Linux系统管理 一: 1、请查阅资料,了解linux系统的起源和发展以及不同的发行版本; Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux 存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 当前使用量比较大的是redhat公司的redhat,fedora core,redhat as ,还有linux 爱好者常用的debian,unbuntu还有Suse ,lfs,gentoo。 2、在自己电脑虚拟机上安装redhat系统。(报告中要求详细步骤截图)

3、在实验室环境上面的RedHat 系统上完成以下作业: 1) 熟悉linux 文件系统查看目录和文件、find 文件、解压压缩文件等shell 基本命 令的使用;

查看目录 查看文件 find文件 压缩文件 解压文件 二:通过本次实验,了解Linux常用命令,通过命令行方式获取必要的系统信息;熟悉Linux 中的文件和目录操作;学习Linux基本的文件系统的基础知识;学习Linux中网络配置等相关信息。 (以下实验需要截图和实验结果,如果其中验证没成功,写出查阅资料过程即可)实验内容: 1.查阅相关资料,(1)显示当前磁盘的可用空间数,(2)显示系统日期和时间,并回答公元 2000年的元旦是星期几。

西北工业大学的一级学科重点实验室分布情况

拥有一级学科和国家重点实验室支撑的专业,其科研实力、师资力量、实验设备、继续深造渠道都是在国内是顶级的。 五、西北工业大学 一级重点学科 国家重点实验室(7个) 1、凝固技术国家重点实验室,实验室以科学基础、技术创新和工程化应用的综合集成为主要学术特色,设立了现代凝固理论、材料精确成形和航空航天先进材料三个研究方向。现有两院院士4人。 2、航天飞行动力学技术重点实验室,实验室以提高空间平台机动性能以及综合应用能力为目标,开展航天飞行动力学和控制应用基础理论与关键技术研究,进行新概念、新理论、新方法、新技术的探索性和开创性研究与实验。特色设备与实验系统有:空天飞行器虚拟样机集成设计与试验系统、飞行器多学科集成设计系统、混合浮力微重力模拟实验系统、空间近距离操控和遥操作实验系统。

3、无人机特种技术重点实验室,实验室包括无人机总体优化技术、无人机系统综合控制技术、无人机起降技术和无人机综合性能测试与验证技术四大研究方向。建成的综合性能测试平台、射频测试验证平台及动态仿真平台多项功能与指标达到国际先进水平。实验室将科学研究的新思路、新方法与试验平台相结合,在无人机基础与应用基础研究和关键技术研究方面突破技术瓶颈并取得一批创新性成果,在国内达到领先水平,尤其在飞翼布局无人机研究、射频仿真技术研究等方面取得的多项研究成果已应用于无人机重大型号任务,对国家科技发展和装备制造具有显著促进作用。 4、超高温结构复合材料重点实验室,实验室以陶瓷基复合材料为主要研究方向,同时包括碳/碳复合材料和高温力学性能研究。研究团队承担了多项航空航天等领域的国家级重大科研任务,相关成果获得国家技术发明一等奖1项、二等奖2项,军队科技进步一等奖1项,国防技术发明二等奖1项。2013年,获准筹建陶瓷基复合材料制造技术国家工程研究中心,将极大加快该材料在航空航天和装备制造等领域的应用进程。 5、翼型、叶栅空气动力学重点实验室,实验室现有亚洲最大的低速翼型风洞、国内唯一的高速增压连续式翼型风洞、国内唯一的轴流式双排对转压气机试验装置等特色研究设施。实验室在翼型/机翼设计理论与方法、翼型/机翼实验技术、流动控制研究、新概念气动布局设计、先进航空叶轮机研究等方面具有鲜明的研究特色。

相关主题
文本预览
相关文档 最新文档