安徽工业大学操作系统实验报告

安徽工业大学操作系统实验报告
安徽工业大学操作系统实验报告

《操作系统教程》实验报告书

专业班级计11X

学号XXX

姓名XXX

指导教师郭玉华

安徽工业大学计算机

实验一WINDOWS进程初识

1、实验目的

(1)学会使用VC编写基本的Win32Consol Application(控制

(2)台应用程序)。

(3)掌握WINDOWS API的使用方法。

(4)编写测试程序,理解用户态运行和核心态运行。

2、实验内容和步骤

(1)编写基本的Win32Consol Application

步骤1:登录进入Windows,启动VC++6.0。

步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。

步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++Source File”,然后在“File”处输入C/C++源程序的文件名。

步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。

步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:

E:\课程\os课\os实验\程序\os11\debug>hello.exe

运行结果(如果运行不成功,则可能的原因是什么?):

运行成功,截图:

(2)计算进程在核心态运行和用户态运行的时间

步骤1:按照(1)中的步骤创建一个新的“Win32Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。

步骤2:在创建一个新的“Win32Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。

步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。

E:\课程\os课\os实验\程序\os12\debug>time TEST.exe

步骤4:运行结果(如果运行不成功,则可能的原因是什么?):

process ID:3716,EXE file:3.exe,%d in Kernel mode:60

步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。

屏蔽i循环:

process ID:1412,EXE file:3.exe,%d in Kernel mode:62

屏蔽j循环:

process ID:1816,EXE file:3.exe,%d in Kernel mode:34

调整循环变量i的循环次数:

process ID:2616,EXE file:3.exe,%d in Kernel mode:64

调整循环变量j的循环次数:

process ID:1868,EXE file:3.exe,%d in Kernel mode:50

3、实验结论

对Win32Consol Application有进一步的认识,WIN32API也就是Windows 32平台的应用程序编程接口。用户态运行和核心态运行,核心态就是一个是直接的代码运行,即win32consol Application下代码运行;而用户态是在DOS 下运行的,对编译好的程序进行的运行,核心态速度较快,没有太多的约束,而用户态的运行需要时间较长,由于有相应的约束。

实验二进程管理

1、实验目的

1)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows进程的“一生”。

2)通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。

2、实验内容和步骤

(1).创建进程

本实验显示了创建子进程的基本框架。该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。

步骤1:创建一个“Win32Consol Application”工程,然后拷贝清单2-1中的程序,编译成可执行文件。

步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:\课程\os课\os实验\程序\os11\debug>os21

(假设编译生成的可执行文件是os21.exe)

ProcessID:3012,Clone ID:0

Process ID:2748,Clone ID:1

Process ID:4044,Clone ID:2

Process ID:2896,Clone ID:3

Process ID:1588,Clone ID:4

Process ID:2144,Clone ID:5

按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:

步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件。运行结果:

范例:E:\课程\os课\os实验\程序\os11\debug>os213

(假设编译生成的可执行文件是os21.exe)

Process ID:3112,Clone ID:3

Process ID:1380,Clone ID:4

Process ID:3576,Clone ID:5

按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性:

步骤4:修改清单2-1中的程序,将nClone的定义和初始化方法按程序注释中的修改方法进行修改,编译成可执行文件(执行前请先保存已经完成的工作)。再按步骤2中的方式运行,看看结果会有什么不一样。运行结果:

Process ID:3112,Clone ID:3

Process ID:1380,Clone ID:4

Process ID:3576,Clone ID:5

从中你可以得出什么结论:

nClone的作用:控制ID的起始值,并控制其输出窗口的数量。_

变量的定义和初始化方法(位置)对程序的执行结果有影响吗?为什么?有影响,变量的定义影响了程序的结果数目,还影响了ID的其实位置,由于变量的初始化使程序的循环次数发生改变,直接改变了结果,所以结果由变量的不同而不同。

(2).父子进程的简单通信及终止进程

步骤1:创建一个“Win32Consol Application”工程,然后拷贝清单2-2中的程序,编译成可执行文件。

步骤2:在VC的工具栏单击“Execute Program”(执行程序)按钮,或者按Ctrl+F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:

范例:E:\课程\os课\os实验\程序\os11\debug>os22

(假设编译生成的可执行文件是os22.exe)

步骤3:按源程序中注释中的提示,修改源程序2-2,编译执行(执行前请先保存已经完成的工作)。运行结果:

死循环

在程序中加入跟踪语句,或调试运行程序,同时参考MSDN中的帮助文件CreateProcess()的使用方法,理解父子进程如何传递参数。给出程序执行过程的大概描述:

产生的应用程序的名称(本EXE文件),告诉其行为像一个子进程的标志,不继承句柄,使用新的控制台,新的环境,启动信息,返回的进程信息。

步骤4:填空

CreateProcess()函数有__8个核心参数?本实验程序中设置的各个参数的值是:

a.szFilename;

b.szCmdLine,;

c.NULL;

d.NULL;

e.FALSE;

f.CREATE_NEW_CONSOLE;

g.NULL;

h.NULL。

步骤5:按源程序中注释中的提示,修改源程序2-2,编译执行。运行结果:

步骤6:参考MSDN中的帮助文件CreateMutex()、OpenMutex()、ReleaseMutex()和WaitForSingleObject()的使用方法,理解父子进程如何利用互斥体进行同步的。给出父子进程同步过程的一个大概描述:

首先,进程创建一个互斥体,打开互斥体,如遇到互斥,则进行处理,处理完后,释放互斥体,下面便是进程等待下一个要处理的项目。

3、实验结论

每个进程都从调用CreateProcess()API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。每一进程都以调用ExitProcess()或TerminateProcess() API函数终止。通常应用程序的框架负责调用ExitProcess()函数。进程都是有始有终,其中有中断,还有处理进程间互斥的函数,已达到进程的完成后自然终止。

实验三进程同步的经典算法

1、实验目的

1)回顾系统进程、线程的有关概念,加深对Windows2000线程的理解。

2)了解互斥体对象,通过对生产者消费者等进程间同步与互斥经典算法的实现,加深对P、V原语以及利用P、V原语进行进程间同步与互斥操作的理解。

2、实验内容和步骤

(1).生产者消费者问题

步骤1:创建一个“Win32Consol Application”工程,然后拷贝清单3-1中的程序,编译成可执行文件。

步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:\课程\os课\os实验\程序\os11\debug>os31

(假设编译生成的可执行文件是os31.exe)

步骤3:仔细阅读源程序,找出创建线程的WINDOWS API函数,回答下列问题:线程的第一个执行函数是什么(从哪里开始执行)?它位于创建线程的API

函数的第几个参数中?

第一个执行函数是:DWORD WINAPI Producer(LPVOID lpPara)

Produce();

它位于创建线程的API函数的第3个参数中。

步骤4:修改清单3-1中的程序,调整生产者线程和消费者线程的个数,使得消费者数目大与生产者,看看结果有何不同。运行结果:

从中你可以得出什么结论:

生产速度快,生产者经常等待消费者;反之,消费者经常等待。

步骤5:修改清单3-1中的程序,按程序注释中的说明修改信号量EmptySemaphore的初始化方法,看看结果有何不同。运行结果:

步骤6:根据步骤4的结果,并查看MSDN,回答下列问题

1)CreateMutex中有几个参数,各代表什么含义。

答:有三个参数.

1.LPSECURITY_ATTRIBUTES lpMutexAttributes代表安全属性的指针

2.BOOL bInitialOwner代表布尔bInitialOwner

3.LPCTSTR lpName代表LPCTSTR类型lpName

2)CreateSemaphore中有几个参数,各代表什么含义,信号量的初值在第几个参数中。

四个:lpSemaphoreAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATT RIBUTES结构,或传递零值——表示采用不允许继承的默认描述符。该参数定义了信号机的安全特性;lInitialCount Long,设置信号机的初始计数。可设置零到lMaximumCount之间的一个值;lMaximumCount Long,设置信号机的最大计数;lpName String,指定信号机对象的名称。

3)程序中P、V原语所对应的实际Windows API函数是什么,写出这几条语句。

HANDLE Mutex;HANDLE FullSemaphore;HANDLE EmptySemaphore; DWORD WINAPI Producer(LPVOID);DWORD WINAPI Consumer(LPVOID);

4)CreateMutex能用CreateSemaphore替代吗?尝试修改程序3-1,将信号量Mutex完全用CreateSemaphore及相关函数实现。写出要修改的语句:可以

Mutex=CreateSemaphore(NULL,false,false,NULL);

(2).读者写者问题

根据实验(1)中所熟悉的P、V原语对应的实际Windows API函数,并参考教材中读者、写者问题的算法原理,尝试利用Windows API函数实现第一类读者写者问题(读者优先)。

3、实验结论

将信号量看作生产或消费的一个对象,对信号量的生成和销毁操作如同P 操作和V操作一样,生成者消费者问题模拟的就是对信号量的生成和销毁,其中牵涉了信号量的同步,这也是该问题为何称为同步的经典问题的原因。

实验四存储管理

1、实验目的

(1)通过对Windows2000“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习如何察看和调整Windows 的内存性能,加深对操作系统存储管理、虚拟存储管理等理论知识的理解。(2)了解Windows2000的内存结构和虚拟内存的管理,理解进程的虚拟内存空间和物理内存的映射关系。

2、实验内容和步骤

(1)观察和调整Windows2000/XP的内存性能。

步骤1:阅读“背景知识”,请回答:

1)什么是“分页过程”?

__分页就是将信息从主内存移动到磁盘进行临时存储的过程

2)什么是“内存共享”?

__应用程序经常需要彼此通信和共享信息。_

3)什么是“未分页合并内存”和“分页合并内存”?

Windows2000中,未分页合并内存的最大限制是多少?

分页合并内存是存储迟早需要的可分页代码或数据的内存部分。

未分页合并内存包含必须驻留在内存中的占用代码或数据。

4)Windows2000分页文件默认设置的最小容量和最大容量是多少?

Windows2000使用内存数量的1.5倍作为分页文件的最小容量,这个最小容量的两倍作为最大容量。

步骤2:登录进入Windows2000Professional。

步骤3:查看包含多个实例的应用程序的内存需求。

1)启动想要监视的应用程序,例如Word。

2)右键单击任务栏以启动“任务管理器”。

3)在“Windows任务管理器”对话框中选定“进程”选项卡。

4)向下滚动在系统上运行的进程列表,查找想要监视的应用程序。

请在表4-3中记录:

表4-3实验记录

映像名称PID CPU CPU时间内存使用

WINWORD368000:00:3823.440

“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。

5)启动应用程序的另一个实例并观察它的内存需求。

请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:印像名称:Explorer.EXE__pid:1652__cpu:0:00:26___内存使用:29,

028________

步骤4:未分页合并内存。

估算未分页合并内存大小的最简单方法是使用“任务管理器”。未分页合并内存的估计值显示在“任务管理器”的“性能”选项卡的“核心内存”部分。

总数(K):_________82076____________________

分页数:____________34900____________________

未分页(K):________47176___________________

还可以使用“任务管理器”查看一个独立进程正在使用的未分页合并内存数量和分页合并内存数量。操作步骤如下:

1)单击“Windows任务管理器”的“进程”选项卡,然后从“查看”菜单中选择“选择列”命令,显示“进程”选项卡的可查看选项。

2)在“选择列”对话框中,选定“页面缓冲池”选项和“非页面缓冲池”选

项旁边的复选框,然后单击“确定”按钮。

返回Windows2000“任务管理器”的“进程”选项卡时,将看到其中增加显示了各个进程占用的分页合并内存数量和未分页合并内存数量。

仍以刚才打开观察的应用程序(例如Word)为例,请在表4-4中记录:

表4-4实验记录

映像名称PID内存使用页面缓冲池非页面缓冲

WINWORD36823.63853016

从性能的角度来看,未分页合并内存越多,可以加载到这个空间的数据就越多。拥有的物理内存越多,未分页合并内存就越多。但未分页合并内存被限制为256MB,因此添加超出这个限制的内存对未分页合并内存没有影响。

步骤5:提高分页性能。

在Windows2000的安装过程中,将使用连续的磁盘空间自动创建分页文件(pagefile.sys)。用户可以事先监视变化的内存需求并正确配置分页文件,使得当系统必须借助于分页时的性能达到最高。

虽然分页文件一般都放在系统分区的根目录下面,但这并不总是该文件的最佳位置。要想从分页获得最佳性能,应该首先检查系统的磁盘子系统的配置,以了解它是否有多个物理硬盘驱动器。

1)在“开始”菜单中单击“设置”–“控制面板”命令,双击“管理工具”图标,再双击“计算机管理”图标。

2)在“计算机管理”窗口的左格选择“磁盘管理”管理单元来查看系统的磁盘配置。

如果系统只有一个硬盘,那么建议应该尽可能为系统配置额外的驱动器。这是因为:Windows2000最多可以支持在多个驱动器上分布的16个独立的分页文件。为系统配置多个分页文件可以实现对不同磁盘I/O请求的并行处理,这将大大提高I/O请求的分页文件性能。

请在表4-5中记录:

表4-5实验记录

卷布局类型文件系统容量状态

C:磁盘分

区基本FAT3248.82G

状态良好(系

统)

D:磁盘分

区基本FAT3224.50G

状态良好(页

面文件)

LENEVO_PART磁盘分

区基本FAT32305MB

状态良好

(EISA配置)

步骤6:计算分页文件的大小。

要想更改分页文件的位置或大小配置参数,可按以下步骤进行:

1)右键单击桌面上的“我的电脑”图标并选定“属性”。

2)在“高级”选项卡上单击“性能选项”按钮。

3)单击对话框中的“虚拟内存”区域中的“更改”按钮。

请记录:

所选驱动器(C:)的页面文件大小:

驱动器:_C:[WINXP]_

可用空间:23298MB

初始大小(MB):1524

最大值(MB):3048

所选驱动器(D:)的页面文件大小:(如果有的话)

驱动器:D:[SOFTTWARE]

可用空间:12925MB

所有驱动器页面文件大小的总数:

允许的最小值:2MB

推荐:1522MB

当前已分配:1524MB

4)要想将另一个分页文件添加到现有配置,在“虚拟内存”对话框中选定一个还没有分页文件的驱动器,然后指定分页文件的初始值和最大值(以兆字节表示),单击“设置”,然后单击“确定”。

5)要想更改现有分页文件的最大值和最小值,可选定分页文件所在的驱动器。然后指定分页文件的初始值和最大值,单击“设置”按钮,然后单击“确定”按钮。

6)在“性能选项”对话框中单击“确定”按钮。

7)单击“确定”按钮以关闭“系统特性”对话框。

步骤7:使用任务管理器。

可以使用“任务管理器”来简单地检查分页文件是否配置了正确容量。这样可以实时提供系统正在使用分页文件的方式以及其他重要系统信息的准确描述。

通过右键单击任务栏运行“任务管理器”,选定“性能”选项卡查看实时的系统统计数据。与分页文件大小最有关的信息位于“认可用量”区域。这一区域显示了认可“峰值”是否达到或超过了认可“限制”,以及它是否超过了系统上的物理内存数量。认可“峰值”是指系统迄今为止向进程分配的最大物理内存和虚拟内存数量。

请记录:

物理内存(K)

总数:1039724

可用数:517644

系统缓存:501940

认可用量(K)

总数:859572

限制:2500780

峰值:1238956

当系统遇到分页活动增加的情况时,提交的内存数量(“认可总数”)就会增加。一旦它达到了“认可限制”值,系统就需要扩展分页文件。“认可限制”值指出在不必扩展分页文件的情况下可以向内存提交的虚拟内存数量。因为目标是避免扩展分页文件,所以必须保持“认可总数”和“认可限制”值相差较大。如果这两个值接近了,那么系统必须动态增加分页文件的大小。

“任务管理器”的“认可用量”区域显示的信息还说明了系统的主内存是否足以满足系统执行的任务。如果认可“总数”值经常超过系统中的内存数量,那么系统的物理内存可能不足。

(2)了解和检测进程的虚拟内存空间。

步骤1:创建一个“Win32Consol Application”工程,然后拷贝清单4-1中的程序,编译成可执行文件。

步骤2:在VC的工具栏单击“Execute Program”(执行程序)按钮,或者按Ctrl+F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件。

范例:E:\课程\os课\os实验\程序\os11\debug>os41

(假设编译生成的可执行文件是os41.exe)

步骤3:根据运行结果,回答下列问题

虚拟内存每页容量为:4.00KB

最小应用地址:0x00010000

最大应用地址:0x7ffeffff_

当前可供应用程序使用的内存空间为:1.99GB

当前计算机的实际内存大小为:0.99GB

理论上每个Windows应用程序可以独占的最大存储空间是:0.99GB

提示:可供应用程序使用的内存空间实际上已经减去了开头与结尾两个64KB的保护区。虚拟内存空间中的64KB保护区是防止编程错误

的一种Windows方式。任何对内存中这一区域的访问(读、写、执行)都

将引发一个错误陷阱,从而导致错误并终止程序的执行。

按committed、reserved、free等三种虚拟地址空间分别记录实验数据。其中“描述”是指对该组数据的简单描述,例如,对下列一组数据:

00010000–00012000<8.00KB>Committed,READWRITE,Private

可描述为:具有READWRITE权限的已调配私有内存区。

将系统当前的自由区(free)虚拟地址空间填入表4-6中。

表4-6实验记录

地址大小虚拟

地址

空间

类型

访问权限描述

00012000-0002000056.0free NOACCESS

KB

00021000-0003000060.0

KB free NOACCESS

00133000-0014000052.0

KB free NOACCESS

00276000-0028000040.0

KB free NOACCESS

002c1000-002d000060.0

KB free NOACCESS

00311000-0032000060.0

KB free NOACCESS

00326000-0033000040.0

KB free NOACCESS

00371000-0038000060.0

KB free NOACCESS

00391000-003a000060.0

KB free NOACCESS

003a1000-003b000060.0

KB free NOACCESS

003c3000-003d000052.0

KB free NOACCESS

003e0000-00400000128

KB free NOACCESS

00485000-0049000044.0

KB free NOACCESS

00558000-0056000032.0

KB free NOACCESS

00663000-0067000052.0

KB free NOACCESS

00970000-62c20000 1.53

GB free NOACCESS

62c29000-73fa0000275

MB free NOACCESS

7400b000-7630000034.9

MB free NOACCESS

7631d000-77be000024.7

MB free NOACCESS

77c38000-77d10000864

KB free NOACCESS

77e49000-77e5000028.0

KB free NOACCESS

77ee2000-77ef000056.0

KB free NOACCESS

77f39000-77f4000028.0

KB free NOACCESS

77fb6000-77fc000040.0

KB free NOACCESS

77fd1000-7c80000072.1

MB free NOACCESS

提示:详细记录实验数据在实验活动中是必要的,但想想是否可以简化记录的办法?

将系统当前的已调配区(committed)虚拟地址空间填入表4-7中。

表4-7实验记录

地址大小虚拟地址

空间类型

访问权限描述

00010000-000120008.00

KB committed READWRITE,Private

00020000-00021000 4.00

KB committed READWRITE,Private

0012c000-0012d000 4.00

KB committed

GUARD, READWRITE,Private

0012d000-0013000012.0

KB committed READWRITE,Private

00140000-0014500020.0

KB committed READWRITE,Private

00240000-0024600024.0

KB committed READWRITE,Private

00250000-0025300012.0

KB committed READWRITE,Mapped

00260000-0027600088.0

KB committed READONLY,Mapped

00280000-002c1000260

KB committed READONLY,Mapped

002d0000-00311000260

KB committed READONLY,Mapped

00320000-0032600024.0

KB committed READONLY,Mapped

00330000-00371000260

KB committed READONLY,Mapped

00380000-0038800032.0

KB committed READWRITE,Private

00390000-00391000 4.00

KB committed READWRITE,Private

003a0000-003a1000 4.00

KB committed READWRITE,Private

003b0000-003b400016.0

KB committed READWRITE,Private

003c0000-003c300012.0

KB committed READONLY,Mapped

003d0000-003d300012.0

KB committed READWRITE,Private

00400000-00401000 4.00

KB committed READONLY,Image,Module: 1.exe

00401000-00470000444

KB committed EXECUTE_READ,Image

00470000-0047800032.0

KB committed READONLY,Image

00478000-0047b00012.0

KB committed READWRITE,Image

0047b000-0047d0008.00

KB committed WRITECOPY,Image

0047d000-0048100016.0

KB committed READWRITE,Image

00481000-0048500016.0

KB committed READONLY,Image 将系统当前的保留区(reserved)虚拟地址空间填入表4-8中。

表4-8实验记录

地址大小虚拟地

空间类

访问权限描述

00030000-0012c0000.98

MB reserved READONLY,Private

00145000-002400000.98

MB reserved READONLY,Private

00246000-0025000040.0

KB reserved READONLY,Private

00253000-0026000052.0

KB reserved READONLY,Mapped

00388000-0039000032.0

KB reserved READONLY,Private

003b4000-003c000048.0

KB reserved READONLY,Private 003d3000-003e000052.0reserved READONLY,Private

KB

00496000-00550000744

KB reserved READONLY,Mapped

00552000-0055800024.0

KB reserved READONLY,Mapped

006f2000-00970000 2.49

MB reserved READONLY,Mapped

7f6f7000-7f7f0000996

KB reserved READONLY,Mapped

7ffe1000-7fff000060.0

KB reserved NOACCESS,Private

3.实验结论:

简单描述windows进程的虚拟内存管理方案:

虚拟地址是将逻辑地址映射到物理地址的一种手段,管理方案有:请求分页、请求分段和请求段页虚拟存储管理。请求分页:将进程的信息副本存放在辅助存储器中,当它被调度投入运行时,并不把程序和数据全部装入主存,仅装入当前使用的页面,进程在执行过程中访问到不在主存的页时,再把所需的信息动态的装入。请求分段:把作业的所有分段的副本都存放在辅助存储器上,当作业被调度投入运行时,首先把当前需要的段装入主存,在执行过程中访问到不在主存的段时再将其动态装入。请求段页式虚拟存储管理:对段式存储和页式存储的优点结合。

数据库实验

安徽工业大学数据库上机实验报告 专业:工业工程 班级:工112 学号: 姓名:

【实验2_1】查询学生基本信息表中的所有信息。 SQL语句如下: SELECT * FROM 学生基本信息表; 【实验2_2】在学生基本信息表中查询学生的学号、姓名、性别和族别信息。SQL语句如下: SELECT 学号, 姓名, 性别, 族别 FROM 学生基本信息表;

【实验2_3】从学生基本信息表中查询学生由哪些民族构成。 学生的族别有多行重复,要快速查询学生的民族构成,实际上就是对相同值的族别只需要显示一行,可使用DISTINCT关键字实现。 SQL语句如下: SELECT DISTINCT 学生基本信息表.族别 FROM 学生基本信息表 【实验2_4】从成绩表中查询学生成绩。 SQL语句如下: SELECT 学号, 成绩 FROM 成绩表; 【实验2_5】从相关表中查询每一位学生的学号、姓名、课程名称、成绩。 SQL语句如下:

SELECT 成绩表.学号, 学生基本信息表.姓名, 课程信息表.课程名称, 成绩表.成绩 FROM 课程信息表, 成绩表, 学生基本信息表 WHERE 学生基本信息表.学号=成绩表.学号and 成绩表.课程编号=课程信息表.课程编号; 【实验2_6】在课程信息表中查找“Delphi程序设计”课程的任课老师。 SQL语句如下: SELECT 课程名称, 任课教师 FROM 课程信息表 WHERE 课程名称="Delphi程序设计"; 【实验2_7】查询少数民族学生的基本情况。 SQL语句如下: SELECT * FROM 学生基本信息表

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

广工_操作系统_课程设计_源代码

课程设计 课程名称________操作系统___ ____ 题目名称_多用户多级目录文件系统的实现_ 学生学院________计算机学院____________ 专业班级______ _________ 学号________ ___________ 学生姓名_________ _____________ 指导教师__________林穗______________ 2011年1月18日

广东工业大学课程设计任务书 题目名称多用户多级目录文件系统的实现 学生学院计算机学院 专业班级08软件工程一班 姓名 学号 一、课程设计的内容 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 二、课程设计的要求与数据 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。4.文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:(1)具有login (用户登录)

(2)系统初始化(建文件卷、提供登录模块) (3)文件的创建:create (4)文件的打开:open (5)文件的读:read (6)文件的写:write (7)文件关闭:close (8)删除文件:delete (9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout 6.系统必须可实际演示,选用程序设计语言:C++、C等。 三、课程设计应完成的工作 1.充分理解设计的任务,完成设计的基本要求。然后根据自己的基础和能力选择不同难度的算法和实现方式,以取得更高的分数。 2. 独立独立完成系统的分析、设计、编码、测试工作。 3.完成设计报告的撰写。 4.以光盘(以班为单位刻录)方式提交已调试通过的完整的相关源程序和能够运行的执行文件;提交“课程设计报告”的书面和电子两种版本。 四、课程设计进程安排

广工测试技术实验报告模板

实验题目: 《机械转子底座的振动测量和分析》 实验报告 姓名+学号:冯云凌(2111601211)、 实验时间:2016年10月24日 实验班级:专硕二班 实验教师:邹大鹏副教授 成绩评定:_____ __ 教师签名:_____ __ 机电学院工程测试技术实验室 广东工业大学 广东工业大学实验报告

一、预习报告:(进入实验室之前完成) 1.实验目的与要求: 实验目的: 1.掌握磁电式速度传感器的工作原理、特点和应用。 2.掌握振动的测量和数据分析。 实验要求: 先利用光电式转速传感器测量出电机的转速;然后利用磁电式速度传感器测量机械转子底座在该电机转速下的振动速度;对测量出的振动速度信号进行频谱分析;找出振动信号的主频与电机转速之间的关系。 2.初定设计方案: 先利用光电式转速传感器测量出电机的转速;然后利用磁电式速度传感器测量机械转子底座在该电机转速下的振动速度;利用获得的数据,使用MATLAB对测量出的振动速度信号进行频谱分析;找出振动信号的主频与电机转速之间的关系。 3.实验室提供的仪器设备、元器件和材料 本次实验的主要仪器设备有:机械转子系统,光电式转速传感器,磁电式速度传感器,USB 数据采集卡,计算机等。 磁电式速度传感器简介:

OD9200 系列振动速度传感器,可用于对轴承座、机壳或结构相对于自由空间的绝对振动测量。其输出电压与振动速度成正比,故又称速度式振动传感器。其输出可以是速度值的大小,也可以是把速度量经过积分转换成位移量信号输出。这种测量可对旋转或往复式机构的综合工况进行评价。 OD9200 系列速度振动传感器属于惯性式传感器。是利用磁电感应原理把振动信号变换成电信号。它主要由磁路系统、惯性质量、弹簧阻尼等部分组成。在传感器壳体中刚性地固定有磁铁,惯性质量(线圈组件)用弹簧元件悬挂于壳体上。工作时,将传感器安装在机器上,在机器振动时,在传感器工作频率范围内,线圈与磁铁相对运动、切割磁力线,在线圈内产生感应电压,该电压值正比于振动速度值。与二次仪表相配接(如OD9000 振动系列仪表),即可显示振动速度或振动位移量的大小。也可以输送到其它二次仪表或交流电压表进行测量。

安徽工业大学信息检索考试

一、单选题(每题1分,共20题) 1.期刊类参考文献的标准著录格式是____________。(D)正确 A、[序号]作者.题名[D].保存地点:保存单位,年 B、[序号]作者.题名[A].见(英文用In):主编.论文集名[C].出版地:出版者,出版年.起止页码 C、[序号]著者.书名[M].版本(第一版不写).出版地:出版者,出版年.起止页码 D、[序号]作者.题名[J].刊名,出版年份,卷号(期号):起止页码 2.检索语言中,_______是自然语言。(D)正确 A.标题词 B.主题词 C.单元词 D.关键词 3.下列属于布尔逻辑算符的是____________ 。(D)正确 A、与 B、或 C、非 D、以上都是 4.下列属于文献外表特征的是(C)正确 A.分类号 B.主题词 C.文献题名 D.关键词 5.字段代码AU、AB、PY所代表的字段是?(B)正确 A.标题、注释、文摘类型 B.著者、文摘、出版年 C.叙词、分类、语言 6.ISBN号是哪种文献特有的标识?(A)正确 A.图书 B.期刊 C.科技报告 D.专利文献 7.请标出文献:[3]李旭东,宗光华,毕树生,等.生物工程微操作机器人视觉系统的研究[J].北京航空航天大学学报,2002,28(3):249~252 属于哪种文献类型____________。(B)正确 A、图书 B、期刊 C、科技报告 D、报纸 8.以下哪些数据库不属于数值与事实数据库?(D)正确

B.搜数网统计年鉴数据库 C.国研网之国研数据 D.人大报刊复印资料 9.我馆所收藏的由叶迷著的图书《诺亚方舟》(珠海出版社2004 )的索书号是(A)正确 A.I247.57/H1282; B.I247.7/H1282 ; C.H247.57/H1282; D.I247.57/Y1282 10.在线公共目录检索系统(OPAC)属于什么检索系统(A)正确 A.目录检索系统 B.文摘检索系统 C.全文检索系统 11.利用文献末尾所附参考文献进行检索的方法是(C)正确 A.倒查法 B.顺查法 C.引文追溯法 D.抽查法 12.本馆常用外语类、经济类图书的分类号分别是:(A)正确 A.H、F B.H、C C.I、H E.I、F 13.截词符“?”可以用来代替0个或()个字符?(B)正确 A.多个 B.1个 C.2个 D.3个 14.国际上评价期刊最有影响力的一个指标是(A)正确 A.影响因子 B.读者统计数据 C.引文量 D.价格 15.查找安工大图书馆纸本图书和纸本期刊收藏地点,可利用:(A)错误正确答案:D A. CNKI B.重庆维普 C.文献传递

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

2013广工数据库实验报告

数据库原理实验报告 学院计算机学院 专业计算机科学与技术班级2011 级7 班 学号3111XXXX 姓名XXX 指导教师明俊峰 (2013 年11 月)

计算机学院计算机专业2011(7)班学号:3111 姓名:协作者:________ 教师评定: 实验__一__题目__ 数据库及基本表的建立 _ 实验__二__题目__ 设计数据完整性 __ 实验__三__题目__ 查询数据库 __ 实验平台:SQL Server 2005

计算机学院计算机专业2011(7)班学号:3111 姓名:协作者:________ 教师评定: 实验题目一、数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试 创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。 创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。 1、创建数据库: 确定数据库名称;数据库用于学生管理,命名为SC 确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。 确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。 确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库; 1

安徽工业大学文献检索E次作业

一、单选题(每题2分,共5题) 1.智立方?知识发现系统是一个知识资源的大数据服务平台,它是哪家数据资源服务商推出的?(B)正确 A. 中国知网 B. 维普资讯 C. 万方数据 D. 读秀学术搜索 E. EBSCO 2.在万方数据平台检索我校刘晓东的论文《DC/DC变换器并联均流技术》的出处:(A)正确 A. 《安徽工业大学学报(自然科学版)》2013年1期 B. 《电子技术应用》2012年12期 C. 《工业控制计算机》 2012年5期 D. 《电子技术应用》2013年2期 3.在万方中查找“基于粗糙集的神经网络建模方法研究”的文献,检索结果最多的是:(D)正确 A. 粗糙集神经网络建模方法 B. 基于粗糙集的神经网络建模方法研究 C. 粗糙集神经网络建模研究 D. 粗糙集神经网络建模 4. 在万方数据资源(网站地址:https://www.360docs.net/doc/4111213398.html,)进入学术期刊,使用“期刊检索”功能,“按学科分类”找到“ 自动化技术与计算机技术”中的“自动化与仪表”,打开该期刊的2014年第8期,选出篇名为“基于ARM-Linux的火电机组在线性能监测系统”的文献的第一作者:(A)正确 A. 方彦军 B.董政呈 C.杨军

D.林涛 5. 在万方数据资源(网站地址:https://www.360docs.net/doc/4111213398.html,)进入学术期刊,使用“学位检索”功能,“学科、专业目录”找到“ 电气工程”中的"电力系统及其自动化",打开2013年博士学位论文,选出篇名为“间歇性能源输出功率预测与储能系统规划”的论文的作者:(B)正确 A. 王守相 B. 张娜 C. 王俊 D. 罗卫红 二、多选题(每题5分,共8题) 1.进入维普期刊资源整合服务平台(https://www.360docs.net/doc/4111213398.html,/)期刊文献检索,利用 “基本检索”功能查找安徽工业大学谢能刚为第一作者2001-2012年发表的期刊论文,正确的检索结果是?(A、C、E)正确 A. 40篇; B. 107篇; C.被EI收录16篇; D.EI收录26篇; E.核心期刊31篇。 2.进入维普期刊资源整合服务平台(https://www.360docs.net/doc/4111213398.html,/)期刊文献检索,利用 “基本检索”功能查找安徽工业大学谢能刚为第一作者2005-2012年发表的期刊论文,正确的检索结果是?(A、C、E)错误正确答案:A、D、E A. 17篇; B. 107篇; C.被EI收录16篇; D.被EI收录6篇; E.核心期刊14篇。

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

广东工业大学 操作系统 真题 附答案

学院: 专业: 学号: 姓名: 装 订 线 广东工业大学考试试卷 ( A ) 课程名称: 操 作 系 统 考试时间: 第 周星期 ( 年 月 日) 题 号 一 二 三 四 五 总分 评卷得分 评卷签名 复核得分 复核签名 一、 填空题:(每空1分,共20分) 1. 操作系统有多种类型:(1)允许多个用户以交互方式使用计算机的操作系统,称 为 ;(2)允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为 ;(3)使计算机系统能及时处理由过程控制反馈的数据并作出响应的操作系统称为 。 2. 进程是对正在运行程序的一次抽象。有时进程必须相互作用,这种相互作用会导致 竞争条件,为了避免竞争条件,OS 引进了 的概念,它是满足如下条件的一段代码: 在这段代码中某一时刻只有一个进程访问共享区域。 3. 产生死锁的原因是: ; 。 4. 固定式分区产生 零头,可变式分区产生 零头。 5. 四种I/O 控制方式是 、 、 、 和 。 6. 在设计I/O 软件时,一个关键的概念是 ,它的基本含义是应用程序 独立于具体使用的物理设备. 7. 文件的物理结构有三种: 、 、 。 8. 完成一个磁盘服务请求的总时间由 、 、 组成。 9. 在UNIX 系统中,可通过系统调用 来创建进程。

二、单项选择题:(每题1分,共10分)Array 1. 操作系统是对 ( ) 进行管理的软件。 A.软件 B.硬件 C.计算机资源 D.应用程序 1.分配到必要的资源但未获得处理机时的进程状态是 ( ) 。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤销状态 2.( )是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位, 是一个具有独立功能的程序段对某个数据集的一次执行活动。 A. 程序 B. 作业 C. 进程 D. 线程 3.下面 ( ) 算法不是进程调度算法。 A.LRU B.FCFS C.SJF D.HPF 4.关于存储器管理,以下说法错误的是()。 A.虚拟存储器是由指令的寻址方式所决定的进程寻址空间,由内外存共同组成。 B.覆盖、交换、请求式调入和预调入都是操作系统控制内存和外存数据流动的方式。 C.内存信息保护方法有:上下界保护法、保护键法、软件法等。 D.内存分配算法中,最佳适应算法比首次适应算法具有更好的内存利用率。 5.位示图法可用于()。 A.文件目录的查找 B.分页式存储管理中主存空闲块的分配和回收 C. 页式虚拟存储管理中的页面置换 D. 可变式存储管理中空闲区的分配和回收 6.现有三个作业同时到达,每个作业的计算时间均为2小时,它们在一台处理机上按单 道方式运行,则平均周转时间为() A.2小时 B.3小时 C.4小时 D.6小时 7.进程控制块是描述进程状态和特性的数据结构,一个进程()。 A.可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块 D.只能有惟一的进程控制块 8.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区 合并,为此需修改空闲区表,造成空闲区数加1的情况是( ) A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 9.用户程序通过系统调用creat来创建一新文件时,在执行creat()的过程中,用户进 程运行在下。 A.系统态 B.用户态 C.系统态或用户态 D.目态 三、判断题(每题 1 分,共 10 分) 1.实时系统在响应时间、可靠性及交互作用能力等方面一般都比分时系统要求高。() 2.多个进程可以对应于同一个程序,且一个进程也可以执行多个程序。() 3.系统处于不安全状态也可能不会产生死锁。( ) 4.虚拟存储器是一个假想的地址空间,因而这个地址的大小是没有限制的。() 5.设备独立性是指系统具有使用不同设备的能力。() 6.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随机存取。() 7.为了提高磁盘对换空间的利用率,一般对其使用离散的分配方式。( ) 8.线程是调度的基本单位,但不是资源分配的基本单位。( ) 9.访问控制矩阵比访问控制表更节约空间。( ) 10.在UNIX文件系统中,文件的路径名和磁盘索引结点之间是一一对应的。( )

数据库系统实验报告广东工业大学

数据库系统实验报告 学院计算机学院 专业计算机科学与技术班级级班 学号

姓名 指导教师 (2016 年12 月) 实验__一__题目数据库及基本表的建立 实验__二__题目查询数据库_ 实验__三__题目创建和使用视图、索引、存储过程实验__四_题目小型数据库规划设计 实验平台:SQL Sever 2005

实验题目实验一数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试 创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。 创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。 1、创建数据库: 确定数据库名称;数据库用于学生管理,命名为SC 确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。 确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。 确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;

数据库实验报告

《数据库系统概论》实验报告书 专业班级软件 学号16677777 姓名哈哈 指导教师陈业斌 安徽工业大学计算机学院

实验一:数据定义/数据操纵语言 [ 实验日期 ] 2016 年 9 月 24 日 [ 实验目的 ] 熟悉Oracle上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 [ 实验内容 ] 1.SQL数据定义语句: 例1-1: (建立如附录一所示的四张数据表) 按要求建立教学数据库表结构及其完整性约束关系,并将数据分别插入到教学数据库的四个数据库表中。 例1-2: (修改表结构) 在Student表中将SSEX字段修改为char(2),观察返回结果,分析原因。显示:alter table STUDENT modify (SSEX char(2)) 错误报告 - SQL 错误: ORA-01441: 无法减小列长度, 因为一些值过大 01441. 00000 - "cannot decrease column length because some value is too big" 例1-3: (修改表结构) 在Student表中增加BirthDay(date) 字段。 alter table STUDENT add BirthDay DATE; 例1-4: (修改表结构) 在Student表中删除BirthDay字段。 alter table STUDENT drop column BirthDay; 例1-5: (修改表结构) 在Student表中增加一个默认值约束,约束’性别’的默认值为’男’。alter table STUDENT modify (SSEX default '男'); 2. SQL数据操纵语句: 例2-1: (插入数据) 执行如下语句向student表中插入一条数据。 insert into student(sno,sname,sdept) values('96001','张三','SC'); (1)根据返回信息解释其原因; 显示: 在行: 5 上开始执行命令时出错 - insert into student(sno,sname,sdept) values('96001','张三','SC') 错误报告 - SQL 错误: ORA-01400: 无法将 NULL 插入 ("STU"."STUDENT"."SCLASS") 01400. 00000 - "cannot insert NULL into (%s)" 原因:在定义表结构时已将SCLASS约束为NOT NULL。并且学号是主键,表里已经有学号为96001的学生,违反了主键的唯一性约束条件。 (2)修改上面插入语句,让其能正确地插入一条记录。

数据库实验报告大全 广工 蔡延光版

自动化学院自动化专业班学号 姓名实验时间2011.3.14 教师评定 实验题目数据定义 实验报告一 一、实验目的与要求 目的:使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。 要求:1、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、DROP 命令实现数据库的创建及删除工作。 2、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表的创建、更新、删除工作,并实现基本表中各类完整性约束条件的限定。 3、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表中索引的创建、更新、删除工作。 4、完成上述工作后,在SQL SERVER 2000企业管理器中,查看是否成功创建实验所要求数据库、基本表、各类完整性约束条件及索引等内容。 二、实验方案 所有实验内容必须在SQL Server 2000的查询分析器中完成,设置查询分析器的结果区为Standard Execute(标准执行)或Executed Grid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。要求完成如下内容: 1.定义数据库 定义一个借阅数据库,要求所定义的数据库大小为1M,且数据库名称为Labery_学号。 2.定义下列数据库基本表 在所定义的借阅数据库Labery_学号中,按要求定义如下数据库表: 1)书(book)

列名别名类型及长度是否可为空书号bno char(8)否 类别category varchar(10)否 书名title varchar(40)否 出版社press varchar(30)是 年份book_year Int否 作者author char(20)是 价格price decimal(7,2)否 总藏书量book_total Int否 2)借书证(card) 列名别名类型及长度是否可为空卡号cno char(7)否 姓名name char(8)否 单位department varchar(40)是 类别type char(1)否 3)借书记录(borrow) 列名别名类型及长度是否可为空卡号cno char(7)否 书号bno char(8)否 借书日期borrow_date smalldatetime否 还书日期return_date smalldatetime是 3.完整性约束条件: 主要内容为: 1)确定各基本表的主码; 2)确定各基本表的外码; 3)要求在定义各基本表的同时,确定如下完整性约束条件 1、定义各基本表主码,并且要求主属性不能为空; 2、如果有外码,定义各基本表外码; 3、要求检查借书证中属性Type的值是否为('T','G','U','F')); 4、借书记录borrow基本表中borrow_date默认日期为当前时间。4)确定各基本表哪些字段需要建立索引。

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

2015广工操作系统实验报告(文档最后含源码下载地址)

操作系统实验报告 学生学院____ 计算机学院______ 专业班级13级计科9 学 号 学生姓名 指导教师 李敏 2015年12月29日

实验一进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 设计一个有N个进程共行的进程调度程序。要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),时间片轮转算法,多级反馈队列调度算法这三种算法。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC或兼容机 软件环境:C++、C语言编程环境 四、实验方法 1、编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。 例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。 2、编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。 简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。 3、多级反馈队列调度算法的基本思想是:

广东工业大学C语言实验报告模板

实验_______题目____________________________课程名称C程序设计 C程序设计 实验报告 课程名称 C程序设计 学生学院管理学院 专业班级 学号 学生姓名 指导教师____黄永慧 ______________ 年月日

实验_______题目____________________________课程名称C程序设计 一.实验目的 1.设计一个C++程序,输入一个学生的三门课成绩,求其总成绩并输出。 2.输入一个三角形的三个边长值,求该三角形的面积并输出。 3.要求用户输入两个数,并输出这两个数的和、乘积、差和商。 4.编写一个程序。要求读入一个圆的半径(一个整数),并打印圆的直径、周长和面积。π=3.14159。 8.输入某学生成绩,若成绩在90-100 输出"excellent",若成绩在80-89 输出"good",若成绩在70-79 输出"general",若成绩在60-69 输出”pass”,若成绩在0-59 输出”no pass”。 11.输入三个数,按从小到大的大顺序输出。 12.在100~200 中找出同时满足3 除余2,用5 除余3 和用7 除余2 的所有整数。 二.实验软件环境 Visual c++6.0 三.实验内容 1.设计一个C++程序,输入一个学生的三门课成绩,求其总成绩并输出。 #include int main(void) { int a, b, c; printf("请输入三门课的成绩:"); scanf("%d%d%d", &a, &b, &c); printf("三门课总成绩为:%d\n", a + b + c); return 0; }

相关文档
最新文档