版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件开发技术基础普通高等教育“十一五”国家级规划教材“十二五”普通高等教育本科国家级规划教材赵英良等.软件开发技术基础(第2版). 机械工业出版社第第3章章 操作系统及相关程序设计操作系统及相关程序设计西安交通大学计算机教学实验中心2 主主 要要 内内 容容l操作系统及其功能操作系统及其功能l进程管理应用程序设计进程管理应用程序设计 l内存管理应用程序设计内存管理应用程序设计 l设备与文件管理应用程序设计设备与文件管理应用程序设计 l人机接口管理应用程序设计人机接口管理应用程序设计 西安交通大学计算机教学实验中心331 操作系统概述l操作系统的发展操作系统的发展l操作系统的功能操作系统的功能l
2、操作系统的分类操作系统的分类l常见操作系统简介常见操作系统简介西安交通大学计算机教学实验中心4什么是操作系统?l定义定义l一组控制和管理计算机软、硬件资源,合理组织计一组控制和管理计算机软、硬件资源,合理组织计算机的工作流程,为用户提供便捷使用计算机的程算机的工作流程,为用户提供便捷使用计算机的程序的集合序的集合 l作用作用 l管理计算机和使用计算机管理计算机和使用计算机 l特征特征 l并发性、共享性、虚拟性和不确定性并发性、共享性、虚拟性和不确定性 操作系统是连接硬件和软件的桥梁操作系统是连接硬件和软件的桥梁西安交通大学计算机教学实验中心53.1.1操作系统的发展操作系统的发展l手工操作手工
3、操作l单道批处理单道批处理l多道程序系统多道程序系统l分时操作系统分时操作系统l实时操作系统实时操作系统l微机操作系统微机操作系统西安交通大学计算机教学实验中心6DOS中的批处理中的批处理dir /pcopy 批处理批处理.bat batch.batnotepadcalcpause西安交通大学计算机教学实验中心7 3.1.2 操作系统的功能l计算机的硬件、软件资源有哪些?计算机的硬件、软件资源有哪些?lCPU管理(进程管理)管理(进程管理)l存储器管理存储器管理l文件管理文件管理l设备管理设备管理l用户接口用户接口西安交通大学计算机教学实验中心8用户接口类型用户接口类型l命令接口命令接口,用户
4、通过交互命令方式直接或,用户通过交互命令方式直接或间接地对计算机进行操作,间接地对计算机进行操作,lDOS:是纯命令行输入方式,:是纯命令行输入方式,Windows:鼠标操作方式:鼠标操作方式l程序接口程序接口,供用户以程序方式进行操作,供用户以程序方式进行操作,或或API(Application Programming Interface),用户通过,用户通过API函数可以调用系函数可以调用系统提供的例行程序,实现既定的操作。统提供的例行程序,实现既定的操作。lDOS:中断服务功能,:中断服务功能,Windows:Windows API函函数数西安交通大学计算机教学实验中心3.1.3操作系统
5、的分类操作系统的分类l批处理操作系统批处理操作系统l嵌入式操作系统嵌入式操作系统l分时操作系统分时操作系统l实时操作系统实时操作系统l网络操作系统网络操作系统l分布式操作系统分布式操作系统9西安交通大学计算机教学实验中心10l实用的操作系统实用的操作系统lWindows:l窗口式图形界面、网络功能、分布式功能窗口式图形界面、网络功能、分布式功能,个人计个人计算机操作系统算机操作系统lDOS:l磁盘操作系统磁盘操作系统, ,个人计算机操作系统个人计算机操作系统,单道程序系单道程序系统、批处理统、批处理lLinux l分时操作系统、多任务、多用户、网络分时操作系统、多任务、多用户、网络西安交通大学
6、计算机教学实验中心3.1.4 常见操作系统简介常见操作系统简介lDOSlDisk Operating Systeml1979年,微软公司为年,微软公司为IBM公司的公司的16位位Intel 8086 PC设计和开发了一个磁盘操作系统设计和开发了一个磁盘操作系统MS-DOS 1.0,l1981年推出了支持内存为年推出了支持内存为320KB的的MS-DOS 1.1版,后更名为版,后更名为PC-DOS 1.0。l1982年,支持年,支持PC/XT 硬盘的硬盘的MS-DOS 2.0问问世世11西安交通大学计算机教学实验中心l1984年年11月,月,MS-DOS3.1 ,加入对网络支持。,加入对网络支持
7、。l1991年年6月,月,MS-DOS5.0,继承,继承4.0对于内存对于内存管理进行的改进,是管理进行的改进,是EMM 规格最为稳定、普规格最为稳定、普及的版本,也加入了许多内存管理的程式,如及的版本,也加入了许多内存管理的程式,如EMM386、MEM 等等等等l1994年年6月,月,MS-DOS6.22 ,最后一个销售版,最后一个销售版本。本。l2000年年9月,月,MS-DOS8.0 ,dos的最后一个版的最后一个版本,取消了部分功能,例如不再支持本,取消了部分功能,例如不再支持SYS命令、命令、打印机操作打印机操作12西安交通大学计算机教学实验中心lDOSlDOS是一种单用户、单任务的
8、磁盘操作系统是一种单用户、单任务的磁盘操作系统 lDOS操作系统包含四大模块:操作系统包含四大模块:l引导模块引导模块l内核模块内核模块l输入输出接口模块输入输出接口模块l命令管理模块命令管理模块13西安交通大学计算机教学实验中心14DOS的组成的组成西安交通大学计算机教学实验中心15DOS命令的执行过程命令的执行过程16DOS的常用命令的常用命令(命令提示符方式可测试命令提示符方式可测试)lCD 进入子目录进入子目录lCLS 清除屏幕清除屏幕lCOPY 复制文件复制文件lDEL删除文件删除文件lDIR 列目录列目录lFORMAT 格式化格式化磁盘磁盘lMD创建子目录创建子目录lPATH 设置
9、或显示设置或显示搜索路径搜索路径lRD 删除子目录删除子目录lREM重新命名重新命名lType 显示文件显示文件l管道管道|l重定向重定向两个有用的命令:两个有用的命令:ping 、ipconfig/all西安交通大学计算机教学实验中心17Windows操作系统操作系统lWindowsl多用户、多任务、图形化多用户、多任务、图形化l支持网络、支持多媒体、支持多种硬件和应支持网络、支持多媒体、支持多种硬件和应用程序用程序西安交通大学计算机教学实验中心18Windows NT体系结构体系结构 登录进程和会话管理器 事件日志、调度服务、SQL ServerOS/2;Win32; POSIX等MS-D
10、OS程序和Win32程序进程线程管理、I/O和内存管理 线程调度、中断和异常处理 将内核、设备驱动程序和执行体分离以适应不同的平台 将I/O函数调用转换为I/O请求 窗口和绘制 西安交通大学计算机教学实验中心19Windows操作系统操作系统lWindowsl最常用的功能是:桌面、浏览器、资源最常用的功能是:桌面、浏览器、资源管理器、我的电脑、网上邻居、控制面管理器、我的电脑、网上邻居、控制面板板(Control)、任务管理器、任务管理器(taskmgr)、lW o r d 、 E x c e l 、 V C + + , 记 事 本记 事 本(Notepad),写字板,写字板(write) 西
11、安交通大学计算机教学实验中心20窗口窗口 西安交通大学计算机教学实验中心21l过程驱动的程序结构过程驱动的程序结构lWindows事件驱动的程序结构(消息驱动的程事件驱动的程序结构(消息驱动的程序结构)序结构)l系统消息队列系统消息队列lWindows也为每个应用程序创建一个也为每个应用程序创建一个应用消息应用消息队列队列。事件所产生的消息,。事件所产生的消息,首先首先进入系统消息进入系统消息队列,队列,然后然后再被传送到对应的应用消息队列,再被传送到对应的应用消息队列,最后最后才被送到消息所对应的窗口。才被送到消息所对应的窗口。Windows应用程序设计模式应用程序设计模式西安交通大学计算机
12、教学实验中心22Windows中的消息循环中的消息循环23消息类型消息类型l 标准消息标准消息(windows消消息息): 任何以任何以WM_开头开头的消息的消息(WM_COMMAND除外除外);如:如:WM_QUIT,WM_CREATE;l命令消息命令消息: WM_COMMAND;l子窗口通知子窗口通知(控件通知控件通知): 由子窗口(大多为控件)由子窗口(大多为控件)产生并发送到该控件所产生并发送到该控件所属的父窗口的消息。属的父窗口的消息。l常见消息宏常见消息宏lWM_LBUTTONDOWN lWM_RBUTTONDOWNlWM_LBUTTONUP lWM_PAINT西安交通大学计算机教
13、学实验中心24消息的结构消息的结构l消息结构:消息号和参数组成消息结构:消息号和参数组成typedef struct tagMSG HWND hwnd;窗口句柄,为窗口句柄,为NULL,则可检索所有驻留在,则可检索所有驻留在消息队列中的消息消息队列中的消息 UINT message;消息值,由消息值,由windows.h头文件中的宏定义头文件中的宏定义来标识来标识 WPARAM wParam;包含有关消息的附加信息包含有关消息的附加信息,不同消息其不同消息其值有所不同值有所不同 LPARAM lParam; DWORD time; 指定消息送至队列的时间指定消息送至队列的时间 POINT pt
14、;指定消息发送时屏幕光标的位置,指定消息发送时屏幕光标的位置, 其数据类型其数据类型POINT也是一个结构体也是一个结构体MSG;西安交通大学计算机教学实验中心25句柄句柄l多个程序或一个程序的多个副本,多个程序或一个程序的多个副本,称为实例。称为实例。l为了对同一程序的多个副本进行管理,为了对同一程序的多个副本进行管理,Windows引入了引入了实例句柄实例句柄。Windows为每个为每个应用程序建立一张表,实例句柄就好象是这应用程序建立一张表,实例句柄就好象是这张表的一个索引。张表的一个索引。l句柄指句柄指Windows使用的一个唯一使用的一个唯一的整数值的整数值,西安交通大学计算机教学实
15、验中心26l使用使用VC+编写编写Windows程序通程序通常有三种方式:常有三种方式:l直接使用直接使用Windows API函数,函数,l通过通过VC+提供的工具生成对话框框架程序提供的工具生成对话框框架程序l文档文档视图框架程序视图框架程序 西安交通大学计算机教学实验中心例例 文档视图框架程序文档视图框架程序 l步骤步骤 l打开打开VC+ l工程类型为工程类型为“MFC AppWizard(exe) ”l程序类型为程序类型为“Single document ”l改变窗口标题改变窗口标题l在视图类的在视图类的OnDraw函数中添加代码:函数中添加代码:“pDC-TextOut(100,10
16、0,MFC文档文档/视图演示程视图演示程序序);” 27西安交通大学计算机教学实验中心28void CTest_winView:OnDraw(CDC* pDC) CTest_winDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CString m_str;int c,a=2,b=123;c=a+b;m_str=Hello;pDC-TextOut (10,10,m_str);m_str.Format (%d,c);pDC-TextOut (10,30,m_str);pDC-Rectangle (100,100,400,400); 西安交通大学计算机教学实
17、验中心293.2 进程管理lCPU与进程管理的相关概念与进程管理的相关概念 lWindows操作系统的进程和线程操作系统的进程和线程管理管理 l进程和线程的应用进程和线程的应用 西安交通大学计算机教学实验中心30 3.2.1 CPU与进程管理 l主要任务主要任务l对处理器的时间进行合理分配、对处理器的对处理器的时间进行合理分配、对处理器的运行实施有效的管理运行实施有效的管理 l程序程序l由输入、处理和输出三部分组成,有严格时由输入、处理和输出三部分组成,有严格时间顺序的可执行指令序列间顺序的可执行指令序列l是一个静态概念是一个静态概念西安交通大学计算机教学实验中心l顺序执行顺序执行l操作系统依
18、次执行各个程序,在一个程序的操作系统依次执行各个程序,在一个程序的整个执行过程中由该程序占有全部系统资源整个执行过程中由该程序占有全部系统资源l单道程序执行的特征单道程序执行的特征l顺序性、封闭性、可再现性顺序性、封闭性、可再现性l并发执行并发执行l多个程序在一个处理器上的交替执行,其目多个程序在一个处理器上的交替执行,其目的主要是为了提高计算机资源的利用率的主要是为了提高计算机资源的利用率l多道程序并发执行的特征多道程序并发执行的特征l间断(异步)性、失去封闭性、失去可再现性。间断(异步)性、失去封闭性、失去可再现性。31西安交通大学计算机教学实验中心l进程的定义进程的定义l进程的特点进程的
19、特点l进程的状态进程的状态 32西安交通大学计算机教学实验中心进程的状态转换进程的状态转换33西安交通大学计算机教学实验中心进程管理的关键问题进程管理的关键问题l进程的同步进程的同步l进程的互斥进程的互斥lPCB的数据结构的数据结构l进程的调度进程的调度l进程调度的算法进程调度的算法l进程与程序的区别进程与程序的区别34西安交通大学计算机教学实验中心35 3.2.2 进程程序设计lWindows API函数库,它以函数库,它以C语言标准提语言标准提供给程序员,供给程序员,CreateProcess函数在一个函数在一个进程中建立另一个子进程,还可以通过进程中建立另一个子进程,还可以通过Termi
20、nateProcess函数退出该子进程的函数退出该子进程的执行。执行。西安交通大学计算机教学实验中心36进程函数进程函数lCreateProcessCreateProcess函数来创建一个函数来创建一个进程进程 lOpenProcessOpenProcess:获得一个已经存:获得一个已经存在的进程对象的句柄在的进程对象的句柄lTerminateProcessTerminateProcess终止指定进程终止指定进程 西安交通大学计算机教学实验中心37CreateProcessbRet = CreateProcess(NULL, /不在此指定可执行文档的文档名不在此指定可执行文档的文档名szCom
21、mandLine, /命令行参数命令行参数NULL, /默认进程安全性默认进程安全性NULL, /默认线程安全性默认线程安全性FALSE, /当前进程内的句柄不能够被子进程继承当前进程内的句柄不能够被子进程继承CREATE_NEW_CONSOLE, /为新进程创建一个新的控为新进程创建一个新的控制台窗口制台窗口NULL, /使用本进程的环境变量使用本进程的环境变量NULL, /使用本进程的驱动器和目录使用本进程的驱动器和目录&si, /父进程传给子进程的一些信息父进程传给子进程的一些信息&pi); /保存新进程信息的结构保存新进程信息的结构西安交通大学计算机教学实验中心38获得
22、一个已经存在的进程对象的句柄获得一个已经存在的进程对象的句柄HANDLE OpenProcess( DWORD dwDesiredAccess, /访问权限访问权限 BOOL bInheritHandle, /若要子进程获得对该若要子进程获得对该对象的权限,应为对象的权限,应为TRUE,否则为,否则为FALSEDWORD dwProcessId /进程标识号进程标识号); 西安交通大学计算机教学实验中心39终止进程终止进程lBOOL TerminateProcess(BOOL TerminateProcess( HANDLE hProcess, HANDLE hProcess, / / 进程句
23、柄进程句柄,由,由OpenProcessOpenProcess函数返函数返回回 UINT uExitCode UINT uExitCode / / 进程退出码,这里可以设为进程退出码,这里可以设为0 0);); 西安交通大学计算机教学实验中心40进程终止实例进程终止实例l使用任务管理器查到待终止的进使用任务管理器查到待终止的进程号为程号为:2212lHANDLE hProcess3;lhProcess3=OpenProcess(PROCESS_TERMINATE,FALSE,2212);lTerminateProcess(hProcess3,0);西安交通大学计算机教学实验中心41保存创建的进
24、程信息保存创建的进程信息PROCESS_INFORMATIONPROCESS_INFORMATION结构体保存创建的进程信息,结构体保存创建的进程信息,其格式如下:其格式如下:typedef struct _PROCESS_INFORMATION typedef struct _PROCESS_INFORMATION HANDLE hProcess; / HANDLE hProcess; /进程句柄进程句柄 HANDLE hThread; /HANDLE hThread; /主线程句柄主线程句柄 DWORD dwProcessId; /DWORD dwProcessId; /进程编号进程编号
25、DWORD dwThreadId; /DWORD dwThreadId; /主线程编号主线程编号 PROCESS; PROCESS; 西安交通大学计算机教学实验中心42【例例3-23-2】编程显示当前系统所有进编程显示当前系统所有进程的编号和名称。程的编号和名称。lCreateToolhelp32SnapshotCreateToolhelp32SnapshotlTakes a snapshot of the processes and Takes a snapshot of the processes and the heaps, modules, and threads used the h
26、eaps, modules, and threads used by the processes.by the processes.l取得进程快照取得进程快照西安交通大学计算机教学实验中心43CreateToolhelp32Snapshotl为指定的进程、进程使用的堆为指定的进程、进程使用的堆HEAP、模块、模块MODULE、线、线程程THREAD)建立一个快照)建立一个快照snapshot。西安交通大学计算机教学实验中心44函数格式函数格式lHANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, /TH32CS_SNAPPROCESS ,
27、 /TH32CS_SNAPTHREAD DWORD th32ProcessID /进程标识号,当前进程为进程标识号,当前进程为0);ldwFlags输入输入指定快照中包含的系统内容。指定快照中包含的系统内容。 TH32CS_SNAPPROCESS - 在快照中包含系统中所有的在快照中包含系统中所有的进程进程.lth32ProcessID输入输入指定将要快照的进程指定将要快照的进程ID。如果该参数为。如果该参数为0表示快照当前表示快照当前进程。进程。西安交通大学计算机教学实验中心45PROCESSENTRY32 结构体格式结构体格式typedef struct tagPROCESSENTRY32
28、 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; /进程编号进程编号 DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFileMAX_PATH; /进程执行文件名进程执行文件名 PROCESSENTRY32;西安交通大学计算机教学实验中心463.2.3 线程程序设计l线程是进程内一个可以独立执行线程是进程内一个可以独立执
29、行的子任务,也是进程内的一个可的子任务,也是进程内的一个可调度的实体。调度的实体。西安交通大学计算机教学实验中心47引入原因引入原因 引入思想引入思想 进程两个基本特性:进程两个基本特性:资源分配的独立单位资源分配的独立单位调度的基本单位调度的基本单位引入思想引入思想:将进程资源分配和调度分开,引:将进程资源分配和调度分开,引 入线程。入线程。西安交通大学计算机教学实验中心48引入益处引入益处 开销开销 通信通信引入原因引入原因西安交通大学计算机教学实验中心49从开销角度来说:从开销角度来说:启动一个新进程必须分配独立地址空间,建立启动一个新进程必须分配独立地址空间,建立众多的数据表来维护它的
30、代码段、堆栈段,众多的数据表来维护它的代码段、堆栈段,这这是一种很是一种很“昂贵昂贵”的多任务工作方式的多任务工作方式 。运行于一个进程中的多个线程,彼此之间使用运行于一个进程中的多个线程,彼此之间使用相同的地址空间,共享大部分数据,启动一个相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花线程所花费的空间远远小于启动一个进程所花费的空间。费的空间。线程间彼此切换所需的时间也远远小于进程间线程间彼此切换所需的时间也远远小于进程间切换所需要的时间切换所需要的时间时间。时间。引入原因引入原因西安交通大学计算机教学实验中心50从通信角度来说:从通信角度来说:不同进程具有
31、独立的数据空间,要进行不同进程具有独立的数据空间,要进行数据的传递只能通过数据的传递只能通过通信方式通信方式进行,这进行,这种方式不仅费时,而且很不方便。种方式不仅费时,而且很不方便。线程由于同一进程下的线程之间共享数线程由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接据空间,所以一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方为其他线程所用,这不仅快捷,而且方便。便。引入原因引入原因西安交通大学计算机教学实验中心51总之:总之:创建一个新线程花费时间少(结束亦创建一个新线程花费时间少(结束亦如此)如此)两个线程的切换花费时间少两个线程的切换花费时间少同一进程内的线程共
32、享内存和文件,同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核因此它们之间相互通信无须调用内核适合多处理机系统适合多处理机系统引入原因引入原因西安交通大学计算机教学实验中心52线程的属性线程的属性l(1)每个线程具有一个唯一的标识。)每个线程具有一个唯一的标识。l(2)不同的线程可以执行相同的程序。)不同的线程可以执行相同的程序。l(3)同一进程的多个线程共享该进程的)同一进程的多个线程共享该进程的主存空间。主存空间。资源的拥有者是进程或称任务。资源的拥有者是进程或称任务。l(4)线程是处理机独立调度的单位。)线程是处理机独立调度的单位。l(5)线程有其生命周期。)线程有其生命
33、周期。l就绪、阻塞(等待)和执行状态。就绪、阻塞(等待)和执行状态。l线程线程可由内核控制,也可由用户控制可由内核控制,也可由用户控制西安交通大学计算机教学实验中心53有时称轻量级进程有时称轻量级进程进程中的一个运行实体进程中的一个运行实体是一个是一个CPUCPU调度单位调度单位线程也描述为:线程也描述为:进程的执行体、一个执行单元、进程内的一个进程的执行体、一个执行单元、进程内的一个可调度实体等。可调度实体等。 线程的其他定义线程的其他定义西安交通大学计算机教学实验中心54l线程与进程的区别线程与进程的区别 l线程是比进程更小的单位,从运行角度来讲,线程是比进程更小的单位,从运行角度来讲,同类线程的数据和代码区是共享的,这有利同类线程的数据和代码区是共享的,这有利于线程的快速调度和切换,而进程之间的数于线程的快速调度和切换,而进程之间的数据和代码区是独立的。据和代码区是独立的。 西安交通大学计算机教学实验中心55Windows中的线程函数中的线程函数lCreateThread /创建线程创建线程lCTerminateThread /终止线程终止线程lWaitForSingleObject /等待新线程运行结等待新线程运行结束束lCloseHandle /关闭线程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 污染场地修复工程环境监理总结报告
- 土钉墙边坡防护工程施工方案
- 电能替代企业县域市场拓展与下沉战略分析报告
- 2025-2030年医疗影像人工智能辅助诊断平台企业制定与实施新质生产力战略分析研究报告
- 劳保用品发放管理规范
- 金属粉末冶金成型智能化生产线技术方案
- 建筑危大工程安全管控实施细则
- 建筑幕墙气密性水密性优化技术方案
- 工业废气治理技术交底
- 2027年骆马湖职业学院高职单招职业技能考试模拟试卷及参考答案详解(综合卷)
- 2026年湖北武汉警务辅助人员招聘考试试卷-含答案解析
- 2025年东莞市网格员笔试真题(附答案)
- 2026工会社会化工作者综合能力测试题库及答案
- (正式版)DB22∕T 2522-2016 《北方精养池塘鱼菜共生操作技术规程》
- 2026山东滨城区国有企业招聘工作人员13人笔试备考题库及答案详解
- 2026届重庆市八中中考语文模试卷含解析
- 中华财险四川分公司招聘笔试题库2026
- 2026年物业管理机器人应用创新报告
- 2026年高二数学寒假自学课(沪教版)专题02 数列难点总结(原卷版)
- 民宿入住须知与安全告知指导手册
- 电梯安全知识课件教学
评论
0/150
提交评论