![操作系统原理实验指导书_第1页](http://file4.renrendoc.com/view/9b2b18099bd787c2ae0b1abdb75ba498/9b2b18099bd787c2ae0b1abdb75ba4981.gif)
![操作系统原理实验指导书_第2页](http://file4.renrendoc.com/view/9b2b18099bd787c2ae0b1abdb75ba498/9b2b18099bd787c2ae0b1abdb75ba4982.gif)
![操作系统原理实验指导书_第3页](http://file4.renrendoc.com/view/9b2b18099bd787c2ae0b1abdb75ba498/9b2b18099bd787c2ae0b1abdb75ba4983.gif)
![操作系统原理实验指导书_第4页](http://file4.renrendoc.com/view/9b2b18099bd787c2ae0b1abdb75ba498/9b2b18099bd787c2ae0b1abdb75ba4984.gif)
![操作系统原理实验指导书_第5页](http://file4.renrendoc.com/view/9b2b18099bd787c2ae0b1abdb75ba498/9b2b18099bd787c2ae0b1abdb75ba4985.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件学院课程实验指导书课程名称操作系统原理任课教师郭伟开课学期辽宁工程技术大学软件学院软件工程系目录实验一Linux环境下进程管理1实验二银行家算法9实验三虚拟内存页面置换算法12实验四Spooling技术实现 ..........15实验五网络文件系统 20实验六linux文件系统及系统调用26实验二银行家算法实验属性实验性质:验证性实验学时:4学时实验要求:必做二、实验目的1.进一步理解利用银行家算法避免死锁的问题;2.在了解和掌握银行家算法的基础上,编制银行家算法通用程序,将调试结果显示在计算机屏幕上,再检测和笔算的一致性;3.理解和掌握安全序列、安全性算法。三、实验环境及知识准备1.实验环境:Linux系统开发环境2.知识准备:(1)银行家算法基本算法概念;(2)C语言基本语法及设计理念。四、实验内容1.了解和理解死锁;2.理解利用银行家算法避免死锁的原理;3.会使用某种编程语言。五、实验步骤及指导1.安全状态指系统能按照某种顺序如<P1,P2,…,Pn>(称为<P1,P2,…,Pn>序列为安全序列),为每个进程分配所需的资源,直至最大需求,使得每个进程都能顺利完成。2.银行家算法假设在进程并发执行时进程i提出请求j类资源k个后,表示为Requesti[j]=k。系统按下述步骤进行安全检查:(1)如果Requesti≤Needi则继续以下检查,否则显示需求申请超出最大需求值的错误。(2)如果Requesti≤Available则继续以下检查,否则显示系统无足够资源,Pi阻塞等待。(3)系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:Available[j]∶=Available[j]-Requesti[j];Allocation[i,j]∶=Allocation[i,j]+Requesti[j];Need[i,j]∶=Need[i,j]-Requesti[j];(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。3.安全性算法(1)设置两个向量:①工作向量Work:它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work∶=Available;②Finish:它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finish[i]∶=false;当有足够资源分配给进程时,再令Finish[i]∶=true。(2)从进程集合中找到一个能满足下述条件的进程:①Finish[i]=false;②Need[i,j]≤Work[j];若找到,执行步骤(3),否则,执行步骤(4)。(3)当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work[j]∶=Work[i]+Allocation[i,j];Finish[i]∶=true;gotostep2;(4)如果所有进程的Finish[i]=true都满足,则表示系统处于安全状态;否则,系统处于不安全状态
4.实验步骤(1)参考图2-1所示流程图编写安全性算法。YY所有finish都为true?输出安全序列NYN存在Finish[i]=false&&Need[i][j]<Available[j]初始化Work和FinishFinish[i]=true,Work[j]=Work[j]+Allocation[j]所有进程都找完了?Y开始图2-1安全性算法流程图(2)编写统一的输出格式。每次提出申请之后输出申请成功与否的结果。如果成功还需要输出变化前后的各种数据,并且输出安全序列。(3)参考图1-2所示流程图编写银行家算法。(4)编写主函数来循环调用银行家算法。六、注意事项1.在本实验中,我们的重点是在通过Linux操作系统为平台,以代码的方式来是先银行家算法,本质在于如何理解银行家算法;2.注意函数参数传递,赋值参数和引用参数的使用。七、实验报告内容及要求1.实验的程序源码;2.运行程序,给出运行结果截图;3.分析实验结果,给出实验结论。实验三虚拟内存页面置换算法实验属性实验性质:设计性实验学时:2学时实验要求:必做二、实验目的通过这次实验,加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。结合Linux的内层的分析方法查看内存的分配过程及linuxkernel的内存管理机制。三、实验环境及知识准备1.实验环境:C与C++程序设计学习与实验系统2.知识准备:(1)使用Linux的基本命令;(2)了解Linuxvmstat、free、top等命令查看linux系统的内存分配情况;(3)掌握虚拟内存页面置换算法FIFO等基本算法理论。四、实验内容假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。五、实验步骤及指导通过已知最小物理块数、页面个数、页面访问序列、及采用置换方式可以得出页面置换的缺页次数和缺页率,及每次缺页时物理块中存储。1.输入的形式 intPageOrder[MaxNumber];//页面序列intPageNum,LackNum=0,BlockNum;//页面个数,缺页次数,最小物理块数2.输出的形式doubleLackPageRate//缺页率缺页个数每次缺页时物理块中存储程序所能达到的功能模拟先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1,…,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。intPageOrder[MaxNumber];//页面序列intPageCount[MaxNumber]={0};//计算内存内数据离下一次出现的距离intPageNum,LackNum=0,BlockNum;//页面个数,缺页次数,最小物理块数doubleLackPageRate=0;boolfound=false;六、提高内容1.使用linux2.6.32的内核,取得Linuxkernel关于内核实现内存分配的源代码,结合代码理解当前的linux的内存管理机制和算法;2.根据linux使用的内存管理机制,对系统内存做优化调优。七、实验报告内容及要求1.实验的程序源码;2.运行程序,给出运行结果截图;3.分析实验结果,给出实验结论。
实验四Spooling技术实现实验属性实验性质:验证性实验学时:2学时实验要求:必做二、实验目的:1.加深对SPOOLing(SimultaneausPeriphernalOperatingOn—Line)系统组成与基本工作原理的理解;2.使用客户/服务器模式进行程序设计;3.使用Linux进程技术,模拟SPOOLing系统中输出进程的工作;4.使用Linux进程通信技术,模拟SPOOLing系统工作进程与输出进程的数据输出;5.使用Linux文件技术,模拟SPOOLing系统输出井的工作过程。三、实验环境及知识准备1.实验环境:Linux系统环境2.知识准备:(1)阅读Linux进程通信技术(消息和管道)的使用方法;(2)阅读Linux文件操作技术,掌握文件的基本处理方法。四、实验内容:假脱机打印是SPOOLing系统的典型应用。本次实验的内容就是以客户/服务器模式模拟假脱机打印的工作过程。工作原理见图4-1。整个系统的工作是先启动打印服务器,初始化客户/服务器间的通信、准备输入缓存区、打印队列和输出井。然后启动请求打印的客户机程序(如命令:printmnfile.dat),将要打印的文件(如:file.dat)读入客户机系统,包装成客户机和服务器之间通信的基本信息单位,放入输出缓存区,然后启动进程间通信机制,向打印服务器发出请求。服务器通过进程间的通信机制,将客户机传送的数据放入输出缓存区,并向打印队列申请打印,填写打印清单,然后将数据放入输出井中。打印服务器打印服务器输入缓存区打印队列输出井客户机1请求打印打印文件输出缓存区数据传输客户机n请求打印……数据传输图4-1模拟假脱机打印工作原理五、实验步骤及指导1.进程间的通信可以选择:消息队列、管道和共享内存实现。2.输出井可以通过一个文件进行模拟。3.下面是一个通过Linux消息队列实现的模拟假脱机打印系统。(1)消息的结构structmsg{longpid;//进程号intid;//消息号intuid;//用户号intallpage;//总页数intsize;//页长charname[MAX_NAME_LENGTH];//文件名chartext[MAX_MSG_SIZE];//消息内容}(2)打印队列typedefstruct{intpid;intuid;charfilename[MAX_NAME_LENGTH];intallpage;}WaitQueue[MAX_ARRAY_LEN];(3)程序执行结果服务器启动服务器通过命令行启动:./spooling。启动界面如图4-2所示。图4-2服务器界面(4)客户机请求打印客户机通过命令行启动:./printmntest.dat。分别启动两个客户机,进行文件test.dat和t.dat的打印输出。如图4-3和4-4所示。图4-3客户机1界面 图4-4客户机2界面(5)执行结果服务器和客户机模拟的结果如图4-5所示。图4-5模拟结果(6)输出并打印结果放入输出井中(如:pool.dat),文件内容如图4-6所示。 图4-6输出井数据六、注意事项重点理解栈的算法思想,能够根据实际情况选择合适的存储结构。七、实验报告内容及要求1.实验的程序源码;2.运行程序,给出运行结果截图;3.分析实验结果,给出实验结论。
实验五网络文件系统实验属性实验性质:验证性实验学时:2学时实验要求:选做二、实验目的1.通过对加密的理论基础上,明确加密和解密的过程;2.学会利用PGP工具实现安全通讯;3.理解安全通信实现过程。三、实验环境及知识准备1.实验环境:C与C++程序设计学习与实验系统2.知识准备:(1)linux下的软件GNUPG工具使用和安装;(2)基本的加密算法的和概念的理解。四、实验内容1.生成公私密钥(1)本机单击实验平台“GnuPG”工具按钮,进入工作目录,键入命令:gpg--gen-key开始生成公私钥对。期间gpg会依次询问如下信息:欲产生密钥种类(默认选择1)密钥大小(默认大小2048字节)密钥有效期限(默认选择0—永不过期)(2)生成用户标识,期间gpg会依次询问如下信息:Realname(用户名,请按本机的组编号和主机编号确定你的用户名)Emailaddress(Email地址,如user2D@CServer.Netlab)Common(注释信息,建议与用户名相同)确定上述输入后,gpg会提示你将要生成的USER-ID。键入“O”确定以上信息后,gpg需要一个密码来保护即将生成的用户私钥,为了方便记忆,我们选择密码与用户名相同。(3)接下来gpg会根据以上信息生成公私密钥对,并将它们存放在C:\DocumentsandSettings\Administrator\ApplicationData\gnupg目录下,名字分别为:pubring.gpg和secring.gpg。2.导出公钥本机在gpg工作目录键入命令:gpg-a-oD:\Work\PGP\userGXpubkey.asc--exportuserGX(userGX)(userGX@CServer.Netlab),gpg会将公钥导入到D:\Work\PGP\这个指定目录的userGXpubkey.asc文件中。将userGXpubkey.asc文件发送到同组主机PGP共享目录中。3.导入同组主机公钥本机从同组主机发送来的userGYpubkey.asc文件中,将对方公钥导入至本机gpg库,其命令如下:gpg--importD:\Work\PGP\userGYpubkey.asc。4.利用对方公钥进行加密(1)在“D:\Work\PGP\”目录中新建一文本文件“userGX.txt”。(2)利用对方公钥对userGX.txt加密,并对其进行签名在gpg工作目录键入如下命令:gpg-sea-ruserGY@CServer.Netlab加密文件绝对路径,其中userGY@CServer.Netlab为USER-ID。加密完成后,gpg还要对其进行签名表明这个密文文件是“我”发出的,而不是“其它人”,在提示处输入前面设置的用于保护本机私钥的密码即可。最后在原文件所在目录下,生成一个名为“userGX.txt.asc”的文件,将该文件发送到同组主机PGP目录中。5.解密密文在gpg工作目录下键入命令:gpg-d加密文件绝对路径>解密后文件路径,此时gpg要求输入前面设置的用于保护本机私钥的密码,输入密码,解开私钥。在存放加密文件的目录下就生了一个解密后的文件,打开解密文件,浏览正文,与同组主机确定其正确性。五、实验步骤及指导1.实验原理RSA公钥体系的特点使它非常适合用来满足两个要求:保密性(privacy)和认证性(authentication)。PGP(PrettyGoodPrivacy),是一个基于RSA公钥加密体系的邮件加密软件,它提供了非对称加密和数字签名。其创始人是美国的PhilZimmermann,他把RSA公钥体系的方便和传统加密体系的高速结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计,因此PGP成为目前非常流行的公钥加密软件包。PGP有以下主要功能:(1)使用PGP对邮件加密,以防止非法阅读;(2)能给加密的邮件追加上数字签名,从而使收信人进一步确信邮件的发送者,而事先不需要任何保密的渠道用来传递密钥;(3)可以实现只签名而不加密,适用于发表公开声明时证实声明人身份,也可防止声明人抵赖,这一点在商业领域有很大的应用前景;(4)能够加密文件,包括图形文件、声音文件以及其它各类文件;(5)利用PGP代替Unicode生成RADIX64(就是MIME的BASE64格式)的编码文件。PGP给邮件加密和签名的过程是这样的:首先甲用自己的私钥将上述的128位值加密,附加在邮件后,再用乙的公钥将整个邮件加密(要注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。2.实验步骤2.1生成公私密钥(1)本机单击实验平台“GnuPG”工具按钮,进入工作目录,键入命令:gpg--gen-key开始生成公私钥对。期间gpg会依次询问如下信息:欲产生密钥种类(默认选择1)密钥大小(默认大小2048字节)密钥有效期限(默认选择0—永不过期)(2)生成用户标识,期间gpg会依次询问如下信息:Realname(用户名,请按本机的组编号和主机编号确定你的用户名)Emailaddress(Email地址,如user2D@CServer.Netlab)Common(注释信息,建议与用户名相同)确定上述输入后,gpg会提示你将要生成的USER-ID。键入“O”确定以上信息后,gpg需要一个密码来保护即将生成的用户私钥,为了方便记忆,我们选择密码与用户名相同。(3)接下来gpg会根据以上信息生成公私密钥对,并将它们存放在C:\DocumentsandSettings\Administrator\ApplicationData\gnupg目录下,名字分别为:pubring.gpg和secring.gpg。2.2导出公钥本机在gpg工作目录键入命令:gpg-a-oD:\Work\PGP\userGXpubkey.asc--exportuserGX(userGX)(userGX@CServer.Netlab),gpg会将公钥导入到D:\Work\PGP\这个指定目录的userGXpubkey.asc文件中。将userGXpubkey.asc文件发送到同组主机PGP共享目录中。2.3导入同组主机公钥本机从同组主机发送来的userGYpubkey.asc文件中,将对方公钥导入至本机gpg库,其命令如下:gpg--importD:\Work\PGP\userGYpubkey.asc。2.4利用对方公钥进行加密(1)在“D:\Work\PGP\”目录中新建一文本文件“userGX.txt”。(2)利用对方公钥对userGX.txt加密,并对其进行签名在gpg工作目录键入如下命令:gpg-sea-ruserGY@CServer.Netlab加密文件绝对路径,其中userGY@CServer.Netlab为USER-ID。最后在原文件所在目录下,生成一个名为“userGX.txt.asc”的文件,将该文件发送到同组主机PGP目录中。2.5解密密文(1)在gpg工作目录下键入命令:gpg-d加密文件绝对路径>解密后文件路径,此时gpg要求输入前面设置的用于保护本机私钥的密码,输入密码,解开私钥。在存放加密文件的目录下就生了一个解密后的文件,打开解密文件,浏览正文,与同组主机确定其正确性。六、注意事项1.实验指导书中的截图和操作均为windows平台下操作,使用的软件为GNUPG工具,在windows操作的步骤和过程和linux操作十分相似,需要学生将此实验移植到linux平台下;2.在实验中加密的位数保持在1024上下,确保实验机器的内存足够用。七、实验报告内容及要求1.实验的程序源码;2.运行程序,给出运行结果截图;3.分析实验结果,给出实验结论。实验六linux文件系统及系统调用实验属性实验性质:验证性实验学时:2学时实验要求:选做二、实验目的在linux系统中共享文件,通过网络使得远程的客户端能够顺利的加载服务器的文件系统,在加载的过程中观察操作系统的驱动变化。三、实验环境及知识准备1.实验环境:Linux系统环境2.知识准备:(1)了解Linux文件系统;(2)了解NFS文件系统的服务端和客户端。四、实验内容掌握本地文件系统及网络网络文件系统之间的区别;了解网络文件系统存储过程;了解网络文件系统在读取或者存储时的驱动加载。五、实验步骤及指导NFS网络文件系统,服务端完成文件的共享,控制权限和限制地域使用,客户端使用Linux系统自带的工具软件挂载网络文件系统形成本地的文件系统,在挂载的同事观察网络文件系统的驱动加载及vfs文件系统层面的驱动加载变化。1.配置LinuxNFS的服务端,共享文件2.检查Linux文件系统VFS接口的关联情况3.检查VFS层面驱动加载情况4.在文件读写操作发生时,调用系统底层的系统调用数目记录(1)LinuxKernelVFS文件系统超级块代码:structsuper_block{structlist_head
s_list;
/*指向超级块链表的指针*//**包含该具体文件系统的块设备标识符。*例如,对于/dev/hda1,其设备标识符为0x301
kdev_t
s_dev;/*该具体文件系统中数据块的大小,以字节为单位*/
unsignedlong
s_blocksize;/*块大小的值占用的位数,例如,如果块大小为1024字节,则该值为10*/
unsignedchar
s_blocksize_bits;
unsignedchar
s_dirt;
/*修改标志*/
unsignedlonglongs_maxbytes;
/*文件的最大长度*/
structfile_system_type
*s_type;/*指向某个特定的具体文件系统的用于超级块操作的函数集合的指针*/
structsuper_operations
*s_op;structdquot_operations
*dq_op;
/*指向磁盘限额方法的指针*/
unsignedlong
s_flags;
/*魔数,即该具体文件系统区别于其它文系统的一个标志*/
unsignedlong
s_magic;
structdentry
*s_root;
structrw_semaphore
s_umount;
structsemaphore
s_lock;
int
s_count;
atomic_t
s_active;structlist_head
s_dirty;
/*已修改索引节点的链表*/structlist_head
s_locked_inodes;
/*涉及I/O的索引节点的链表*/structlist_head
s_files;
/*分配给超级的文件对象的链表*/
structblock_device*s_bdev;
structlist_head
s_instances;
structquota_mount_optionss_dquot;
/*磁盘限额的选项*//*一个共用体,其成员是各种文件系统的fsname_sb_info数据结构*/
union{
structminix_sb_info
minix_sb;
structext2_sb_infoext2_sb;
structext3_sb_infoext3_sb;
structhpfs_sb_infohpfs_sb;
structntfs_sb_info
ntfs_sb;
structmsdos_sb_infomsdos_sb;
structisofs_sb_infoisofs_sb;
structnfs_sb_info
nfs_sb;
structsysv_sb_infosysv_sb;
structaffs_sb_info
affs_sb;
structufs_sb_info
ufs_sb;
structefs_sb_info
efs_sb;
structshmem_sb_info
shmem_sb;
structromfs_sb_info
romfs_sb;
structsmb_sb_infosmbfs_sb;
structhfs_sb_info
hfs_sb;
structadfs_sb_infoadfs_sb;
structqnx4_sb_info
qnx4_sb;
structreiserfs_sb_info
reiserfs_sb;
structbfs_sb_info
bfs_sb;
structudf_sb_info
udf_sb;
structncp_sb_info
ncpfs_sb;
structusbdev_sb_info
usbdevfs_sb;
structjffs2_sb_infojffs2_sb;
structcramfs_sb_info
cramfs_sb;
void
*generic_sbp;
}u;
structsemaphores_vfs_rename_sem;
structsemaphores_nfsd_free_path_sem;};(2)LinuxKernelVFS文件系统索引节点对象代码structinode{/**********描述索引节点高速缓存管理的域***********/
structlist_head
i_hash;
/*指向哈希链表的指针*/
structlist_head
i_list;
/*指向索引节点链表的指针*/
structlist_head
i_dentry;
/*指向目录项链表的指针*/
structlist_head
i_dirty_buffers;
structlist_head
i_dirty_data_buffers;/**********描述文件信息的域****************/
unsignedlong
i_ino;
/*索引节点号*/
atomic_t
i_count;
/*引用计数器*/
kdev_t
i_dev;
/*设备标识号*/
umode_t
i_mode;
nlink_t
i_nlink;
uid_t
i_uid;
/*文件拥有者标识号*/
gid_t
i_gid;
/*文件拥有者所在组的标识号*/
kdev_t
i_rdev;
/*实际设备标识号*/
loff_t
i_size;
time_t
i_atime;
/*文件的最后访问时间*/
time_t
i_mtime;
/*文件的最后修改时间*/
time_t
i_ctime;
/*节点的修改时间*/
unsignedint
i_blkbits;
/*块的位数*/
unsignedlong
i_blksize;
/*块大小*/
unsignedlong
i_blocks;
/*该文件所占块数*/
unsignedlong
i_version;
/*版本号*/
structsemaphore
i_sem;
structsemaphore
i_zombie;
/*僵死索引节点的信号量*/
structinode_operations
*i_op;
/*索引节点的操作*/
structfile_operations
*i_fop;
/*指向缺省的文件操作*/
structsuper_block
*i_sb;
/*指向该文件系统超级块的指针*/
wait_queue_head_ti_wait;
/*指向索引节点等待队列的指针*/
structfile_lock
*i_flock;
/*指向文件加锁链表的指针*//************用于分页机制的域***************/
structaddress_space
*i_mapping;
/*把所有可交换的页面管理起来*/
structaddress_space
i_data;
structdquot
*i_dquot[MAXQUOTAS];
/*以下几个域应当是联合体*/
structlist_head
i_devices;
/*设备文件形成的链表*/
structpipe_inode_info
*i_pipe;
/*指向管道文件*/
structblock_device*i_bdev;
/*指向块设备文件的指针*/
structchar_device
*i_cdev;
/*指向字符设备文件的指针*/
unsignedlong
i_dnotify_mask;
/*目录通知事件标志*/
structdnotify_struct
*i_dnotify;
unsignedlong
i_state;
/*索引节点的状态标志*/
unsignedint
i_flags;
/*文件系统的安装标志*/
unsignedchar
i_sock;
/*如果是套接字文件则为真*/
atomic_t
i_writecount;
/*写进程的引用计数*/
unsignedint
i_attr_flags;
/*文件创建标志*/
__u32
i_generation;
/**类似于超级块的一个共用体,其成员是各种具体*文件系统的fsname_inode_info数据结构*/
union{
structminix_inode_info
minix_i;
structext2_inode_inf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中外土地租赁合同范本
- 产品加工定制合同
- 业务并购合同范本
- 中外合资建设项目合同范本(环保设施)
- 个人物流配送合同范例
- 个人与朋友借款购房合同模板
- 中药原料采购框架合同
- 产品销售合同模板:标准合同文本
- 2025年车辆融资租赁协议范本
- 2025年标准土地及房产买卖协议
- 2025中国大唐集团内蒙古分公司招聘高频重点提升(共500题)附带答案详解
- 充血性心力衰竭课件
- 2025年日历(日程安排-可直接打印)
- 《VAVE价值工程》课件
- 分享二手房中介公司的薪酬奖励制度
- 安徽省2022年中考道德与法治真题试卷(含答案)
- GB 4793-2024测量、控制和实验室用电气设备安全技术规范
- 重大火灾隐患判定方法
- 挖掘机售后保养及维修服务协议(2024版)
- 2024年电工(高级技师)考前必刷必练题库500题(含真题、必会题)
- 公司组织架构与管理体系制度
评论
0/150
提交评论