当前位置:文档之家› 西工大17春《计算机操作系统》在线作业

西工大17春《计算机操作系统》在线作业

西工大17春《计算机操作系统》在线作业

西工大17春《计算机操作系统》在线作业

一、单选题(共25 道试题,共100 分。)

1. 下列()存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。

A. 固定分区

B. 可变分区

C. 分页管理

D. 段页式管理

正确答案:A

2. 进程从运行状态变为阻塞状态的原因是()。

A. 输入或输出事件发生

B. 时间片到

C. 输入或输出事件完成

D. 某个进程被唤醒

正确答案:A

3. 操作系统中采用缓冲技术的目的是为了增强系统()的能力。

A. 串行操作

B. 控制操作

C. 重执操作

D. 并行操作

正确答案:D

4. 下列进程状态的转换中,哪一个是不正确的()。

A. 就绪→运行

B. 运行→就绪

C. 就绪→阻塞

D. 阻塞→就绪

正确答案:C

5. 设计操作系统的主要目的是()。

A. 增强计算机硬件的功能

B. 提高系统资源的利用率

C. 提高用户软件的运行速度

D. 提高系统软件的运行速度

正确答案:B

6. 在请求分页系统中,LRU算法是指()。

A. 最早进入内存的页先淘汰

B. 近期最长时间以来没被访问的页先淘汰

C. 近期被访问次数最少的页先淘汰

实验四进程与线程一、实验目的 (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.什么是操作系统?从资源管理看操作系统的功能有哪些?答:(1).操作系统是一个系统软件,它能有效地管理和控制计算机系统中的各种硬件和软件资源、合理组织计算机的工作流程,方便用户使用的程序和数据的集合。 (2).a.处理机管理:分配和控制处理机 b.存储器管理:分配及回收内存 c. I/O(Input/Output)设备管理:I/O分配与操作 d.文件管理:文件存取、共享和保护(详见课本P2-3) 2.什么叫并发性?什么叫并行性? 答:并发性:两个或两个以上事件在同一时间间隔内发生。 并行性:两个或两个以上事件在同一时刻发生。 3.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。 答:及时性:实时系统要求更高 [分时系统:秒级(一般情况)实时系统: 微秒级甚至更小] 交互性:分时系统交互性更强 可靠性:实时系统要求更高(详见课本P9和P11) 三、1.在操作系统中为什么要引入进程的概念?它与程序的区别和联系是怎样的? 答:(1)程序在并发执行方式下,运行时具有异步性的特征,“程序”这个静态概念已经不足以描述程序的执行过程。这样,就需要一个数据结构PCB来记录程序的状态,以及控制其状态转换所需的一些信息。因此,将PCB、程序、数

据三者组成一个完整的实体,就是进程实体。进程是程序的一次执行,引入进程的概念,便于操作系统对于程序的运行进行控制。 (2)区别:1)程序是指令的有序集合,是静态的,进程是程序的执行,是动态的。2)进程的存在是暂时的,程序的存在是永久的。3)进程的组成应包括程序和数据。除此之外,进程还应由记录进程状态信息的“进程控制块”组成。 联系:程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序。如果没有程序,进程就失去了其存在的意义。从静态的角度看,进程由程序、数据和进程控制块三部分组成。 2.什么是进程的互斥与同步? 答:进程互斥:指两个或两个以上的进程由于竞争资源而形成的制约关系。 进程同步:指两个或两个以上的进程由于某种时序上的限制而形成的相互合作的制约关系。 3.一个进程进入临界区的调度原则是什么? 答:①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。 4.说明进程的结构、特征和基本状态。 答:进程是程序在其数据集合上的一次运行活动,是资源分配和独立调度的基本单位。进程由程序、数据和进程控制块组成 进程的特征:动态性、并发性、独立性、异步性

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

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: 代码和结果如下结果 下图是结果图

评语: 课中检查完成的题号及题数: 课后完成的题号与题数: 成绩: 指导教师: 实验报告三 实验名称:七、八日期: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-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)所示.

实验报告 实验名称 --SOCKET编程 一、实验目的 (1)加深对TCP和UDP的理解; (2)实现两台计算机之间TCP/UDP通信。 二、实验过程 原理: socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络信。如下图所示:

TCP通信 原理如图: 代码: 服务器端: #pragma comment(lib, "WS2_32.lib")

#include #include #include using namespace std; int main() { int i=0; WSADATA wsaData; SOCKET oldSocket,newSocket; //客户地址长度 int iLen=0; //发送的数据长度 int iSend=0; //接收的数据长度 int ircv =0; //处世要发送给客户的信息 char buf[20]="I am a server"; //接收来自用户的信息 char fromcli[512]; //客户和服务器的SOCKET地址结构 struct sockaddr_in ser,cli; if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) { cout<<"failed to load winsock"<

评语: 成绩: 指导教师: 实验报告二 日期: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.

操作系统 一、1.什么是操作系统从资源管理看操作系统的功能有哪些 答:(1).操作系统是一个系统软件,它能有效地管理和控制计算机系统中的各种硬件和软件资源、合理组织计算机的工作流程,方便用户使用的程序和数据的集合。 (2).a.处理机管理:分配和控制处理机 b.存储器管理:分配及回收内存 c. I/O(Input/Output)设备管理:I/O分配与操作 d.文件管理:文件存取、共享和保护(详见课本P2-3) 2.什么叫并发性什么叫并行性 答:并发性:两个或两个以上事件在同一时间间隔内发生。 并行性:两个或两个以上事件在同一时刻发生。 3.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。 答:及时性:实时系统要求更高 [分时系统 :秒级(一般情况)实时系统: 微秒级甚至更小]交互性:分时系统交互性更强 可靠性:实时系统要求更高(详见课本P9和P11) 三、1.在操作系统中为什么要引入进程的概念它与程序的区别和联系是怎样的 答:(1)程序在并发执行方式下,运行时具有异步性的特征,“程序”这个静态概念已经不足以描述程序的执行过程。这样,就需要一个数据结构PCB来记录程序的状态,以及控制其状态转换所需的一些信息。因此,将PCB、程序、数据三者组成一个完整的实体,就是进程实体。进程是程序的一次执行,引入进程的概念,便于操作系统对于程序的运行进行控制。 (2)区别:1)程序是指令的有序集合,是静态的,进程是程序的执行,是

动态的。2)进程的存在是暂时的,程序的存在是永久的。3)进程的组成应包括程序和数据。除此之外,进程还应由记录进程状态信息的“进程控制块”组成。 联系:程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序。如果没有程序,进程就失去了其存在的意义。从静态的角度看,进程由程序、数据和进程控制块三部分组成。 2.什么是进程的互斥与同步 答:进程互斥:指两个或两个以上的进程由于竞争资源而形成的制约关系。 进程同步:指两个或两个以上的进程由于某种时序上的限制而形成的相互合作的制约关系。 3.一个进程进入临界区的调度原则是什么 答:①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。 4.说明进程的结构、特征和基本状态。 答:进程是程序在其数据集合上的一次运行活动,是资源分配和独立调度的基本单位。进程由程序、数据和进程控制块组成 进程的特征:动态性、并发性、独立性、异步性 进程状态有就绪、执行和阻塞。就绪转换为执行由于进程调度,执行转换为就绪由于时间片到,执行转换为阻塞由于等待外部事件,阻塞转换为就绪由于外部事件发生了。 六、1.段页式管理中,怎样访问内存,取得某一条数据或指令 答:在段页式系统中,为了获得一条数据或指令,须三次访问内存。 第一次是访问内存中的段表,从中取得页表始址; 第二次是访问内存中的页表,从中取出该页所在的物理块号,并将该块号与

1.当两台计算机分别和中继器、二层交换机、三层交换、路由器相连时,请分别画出计算 机与交换设备五层参考模型; 计算机1 上图为计算机和路由器连接.。三层交换机与上图连接相同。二层路由器与计算机连接只经过数据链路层和物理层,中继器与计算机连接只经过物理层。 2.学习SOCKET编程,写出TCP、UDP通信流程;将实例程序两个同学一组,实现两台计算机之间通信。并写出学习报告; TCP通信流程 客户端服务器

UDP通信流程 客户端服务端 利用socket实现TCP,UDP通信的流程如上图所示。 SOCKET实验报告 一.实验目的 学习SOCKET编程,理解计算机通信的流程,分别实现TCP,UDP协议下两台计算机之间的通信。

Socket编程机制 客户端: (1)客户端程序在运行后,首先需要使调用WSAStartup 函数,确保进程加载socket 应用程序所必须的环境和库文件,如Ws2_32.dll。 (2)调用函数Socket 创建SOCKET,在创建时需指定使用的网络协议、连接类型等。 (3)填充SOCKADDR 结构,指定服务端的地址、端口等。 (4)调用connect 函数连接到服务端。 (5)如果连接成功,就可以使用send 和recv 函数发送和接收数据。 (6)在数据传输完成后,可调用closesocket 函数关闭Socket。 (7)调用WSACleanup 函数释放资源。 服务端: (1)程序在运行后,首先需要使调用WSAStartup 加载Ws2_32.dll。 (2)调用函数socket 创建用于监听的SOCKET,在创建时需指定使用的网络协议、连接类型等。 (3)1 调用bind 函数将Socket 绑定到网络地址和端口。 (4)调用listen 函数开始监听。 (5)调用accept 函数等待客户端连接。在客户端连接后,accept 函数返回,得到连接Socket。在accept 函数返回后,可立即再调用,以处理其他客户端的连接。 (6)得到连接Socket 后,可调用send 和recv 发送、接收数据。 (7)在数据传输完成后,可调用closesocket 函数关闭Socket。 (8)调用WSACleanup 函数释放DLL。 函数用法: 1.WSAStartup 函数的功能是加载Ws2_3 2.dll 等Socket 程序运行的环境。其返回值用来 判断程序是否调用成功。 2.WSACleanup 函数释放Ws2_32.dll 库,函数无参数。 3.Socket 函数的功能是建立一个绑定到指定协议和传输类型的Socket。用来指定网络地 址的类型,传输类型,传输协议。 4.send函数的功能是向连接的另一端发送数据。参数为套接字,发送的数据,发送数据长 度。Send成功则返回实际发送的数据,失败则返回SOCKET_ERROR. 5.recv函数的功能时是从连接的另外一端接收数据。 6.closesocket函数用于关闭socket。 7.bind函数的功能是将socket与网络地址和端口绑定起来。 8.listen的函数是将socket的状态设置为监听,以使客户端程序可以连接。 9.accept函数的功能是接收客户端的连接,accpet函数直到客户端有连接后才会返回。

班级: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)了解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); } } }

实验报告三 理解线程的相关概念 实验名称: 日期: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.对于带宽为8kHz的信道,若有8种不同的物理状态来表示数据,信噪比为 30db,按奈氏定理,最大限制的数据速率是多少?按香农定理,最大限制的数据速率是多少? ①C=2 F log2N=2*8K*log28=48Kbps ②分贝(dB)的计算是:10lgS/N 即 本题为:10lgS/N=30 则:S/N=103 C=F log2(1+S/N)=8K*log21001=80Kbps 2.在数据链路层实现帧同步的方法中有“使用比特填充的首尾标志方法”,比 如用01111110来标志帧的开始和结束,但帧数据段中也会有01111110这样的数据,请给出发送方和接收方各自的处理方法? 可以采用“0比特插入法”来解决。该法在发送端监视除标志码以外的所有字段,当发现有连续5个“1”出现时,便在其后添插一个“0”,然后继续发后继的比特流。在接收端,同样监除起始标志码以外的所有字段。当连续发现5个“1”出现后,若其后一个比特“0”则自动删除它,以恢复原来的比特流;若发现连续6个“1”,则可能是插入的“0”发生差错变成的“1”,也可能是收到了帧的终止标志码。后两种情况,可以进一步通过帧中的帧检验序列来加以区分。这种方法也称作"比特填充的首尾标志法"。 3.简述载体侦听多路访问/冲突检测(CSMA/CD)技术的工作原理? CSMA/CD载波监听/冲突检测,属于计算机网络以太网的工作类型,即在总线上不段的发出信号去探测线路是否空闲,如果不空闲则随机等待一定时间,在继续探测。直到发出型号为止 CSMA/CD的工作原理 由IEEE 802.3标准确定的CSMA/CD检测冲突的方法如下: (1)当一个站点想要发送数据的时候,它检测网络查看是否有其他站点正在传输,即监听信道是否空闲。 (2)如果信道忙,则等待,直到信道空闲;如果信道闲,站点就传输数据。 (3)在发送数据的同时,站点继续监听网络确信没有其他站点在同时传输数据。因为有可能两个或多个站点都同时检测到网络空闲然后几乎在同一时刻开始传输数据。如果两个或多个站点同时发送数据,就会产生冲突。 (4)当一个传输节点识别出一个冲突,它就发送一个拥塞信号,这个信号使得冲突的时间足够长,让其他的节点都能发现。 (5)其他节点收到拥塞信号后,都停止传输,等待一个随机产生的时间间隙(回退时间,Backoff Time)后重发。 从以上叙述可以看出,CSMA/CD的工作原理可用四个字来表示:“边听边说”,即一边发送数据,一边检测是否产生冲突。 4.香农(Shannon)定理指出,有噪声信道的最大数据速率可由下面的公式计 算:C=Wlog2(1+S/N)其中,W为信道带宽,S为信号的平均功率,N为噪声平均功率,S/N叫做信噪比(单位为分贝dB)。对于带宽为4000Hz的信

一、实验目的 了解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全面改写。

西工大2020年4月《计算机操作系统》作业机考参考答案 试卷总分:100 得分:96 一、单选题(共50 道试题,共100 分) 完整答案:wangjiaofudao 1. 一作业进入内存后,则所属该作业的进程初始时处于()状态。 A.运行 B.等待 C.就绪 D.收容 正确答案:C 2.用户在一次计算过程中,或者一次事物处理中,要求计算机完成所做的工作的集合,这是指()。 A.进程 B.程序 C.作业 D.系统调用 正确答案:C 3. 下列方法中哪一个破坏了“循环等待”条件?() A.银行家算法 B.一次性分配策略(即预分配策略) C.剥夺资源法 D.资源有序分配 正确答案:D 4. 现代操作系统的基本特征是()、资源共享和操作的异步性。 A.多道程序设计 B.中断处理 C.程序的并发执行 D.实现分时与实时处理 正确答案:C 5. 操作系统中采用缓冲技术的目的是为了增强系统()的能力。 A.串行操作 B.控制操作 C.重执操作 D.并行操作 正确答案:

6. 进程间的基本关系为()。 A.相互独立与相互制约 B.同步与互斥 C.并行执行与资源共享 D.信息传递与信息缓冲 正确答案: 7. 碎片现象的存在使得()。 A.内存空间利用率降低 B.内存空间利用率提高 C.内存空间利用率得以改善 D.内存空间利用率不影响 正确答案: 8. 进程和程序是两个既有联系又有区别的概念,下面描述中,()是错误的。 A.进程是动态的,程序是静态的 B.一个程序可对应多个进程 C.进程有生命周期,而程序相对是永久的 D.程序是可以并发执行的 正确答案: 9. 外存(如磁盘)上存放的程序和数据()。 A.可由CPU直接访问 B.必须在CPU访问之前移入内存 C.必须由文件系统管理 D.必须由进程调度程序管理 正确答案: 10. 只能在核心态下执行的指令是()。 A.读时钟日期 B.屏蔽所有中断 C.改变文件内容 D.调用库函数 正确答案: 11. 下述几种引起进程永远等待的情况中,只有()是属于死锁问题。 A.进程申请系统中不存在的资源 B.进程申请的资源数超过了系统资源总数 C.由于程序性错误引起的循环等待

实验四进程与线程 一、实验目的 (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、理解进程的独立空间 流程图如下所示:

西工大18春《计算机操作系统》在线作业 1、A 2、C 3、A 4、B 5、B 一、单选题共25题,100分 1、操作系统采用缓冲技术,能够减少对CPU的()次数,从而提高资源的利用率。 A中断 B访问 C控制 D依赖 正确答案是:A 2、操作系统的发展过程是()。 A设备驱动程序组成的原始操作系统,管理程序,操作系统 B原始操作系统,操作系统,管理程序 C管理程序,原始操作系统,操作系统 D管理程序,操作系统,原始操作系统 正确答案是:C 3、操作系统提供的系统调用大致可分为()等几类。 A文件操作类、资源申请类、控制类、设备调用类 B文件操作类、资源申请类、控制类、信息维护类 C文件操作类、资源申请类、信息维护类、设备调用类 D资源申请类、控制类、信息维护类、设备调用类 正确答案是:A 4、允许多个用户以交互方式使用计算机的操作系统,称为()。 A批处理操作系统 B分时操作系统 C实时操作系统 D多处理机操作系统 正确答案是:B 5、文件系统中文件被按照名字存取是为了()。 A方便操作系统对信息的管理 B方便用户的使用 C确定文件的存取权限 D加强对文件内容的保密 正确答案是:B 6、请求分页存储管理中,若把页面尺寸增加一倍,在程序顺序执行时,则一般缺页中断次数会()。 A增加 B减少 C不变

D可能增加也可能减少 正确答案是:B 7、设备管理的主要程序之一是设备分配程序,当进程请求在内存和外设之间传送信息时,设备分配程序分配设备的过程通常是()。 A先分配设备,再分配控制器,最后分配通道 B先分配控制器,再分配设备,最后分配通道 C先分配通道,再分配设备,最后分配控制器 D先分配通道,再分配控制器,最后分配设备 正确答案是:A 8、设有三个作业J1,J2,J3,它们的到达时间和执行时间如下表:作业名到达时间执行时间J1 8:00 2小时J2 8:45 1小时J3 9:30 0.25小时它们在一台处理器上按单道运行,若采用短作业优先调度算法,则此三作业的执行次序是()。 AJ3,J2,J1 BJ1,J2,J3 CJ1,J3,J2 DJ3,J1,J2 正确答案是:C 9、在操作系统中,用户在使用I/O设备时,通常采用()。 A物理设备名 B逻辑设备名 C虚拟设备名 D设备牌号 正确答案是:B 10、用户通过终端使用计算机系统控制作业执行的方式称为()控制方式。 A联机 B脱机 C假脱机 D自动 正确答案是:A 11、通道是一种()。 AI/O端口 B数据通道 CI/O专用处理机 D软件工具 正确答案是:D 12、关于操作系统的叙述()是不正确的。 A“管理资源的程序” B“管理用户程序执行的程序”

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