《os课程实验指导书.doc》由会员分享,可在线阅读,更多相关《os课程实验指导书.doc(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 操作系统实 验 指 导 书李远敏 编 写适用专业: 计算机科学与技术 空间系 计算机专升本 厦门理工学院计算机科学与技术系(部)2009 年 9 月前 言了解Windows原理,并能使用系统函数等进行进程创建与撤、通信、调度,主存储器管理、文件结构、安全管理。为了使学生更好地理解和深刻地把握这些知识,并在此基础上,使学生掌握操作系统的基本概念、 基本原理、设计方法和实现技术, 具有初步分析实际操作系统的能力,设置了一定数量的实验为综合性、设计性实验。 实验一 : Windows 控制台命令系统管理1实验目的(1) 掌握命令行窗口的显示设置。(2) 学会系统的基本配置。(3) 显示系统基本信息
2、。、(4) 掌握系统配置管理。(5) 任务管理。2.实验工具 一台装有WindowsXP或Winddows2003的机器(这里默认是WindowsXP).3.预备知识 cmd:启动Windows命令窗口。 chcp:活动控制台代码页。 prompt:显示更改Windows命令提示符 color:设置命令行窗口颜色。 title:命令行窗口标题。 date:显示或设置日期。 time:显示或设置系统时间。 w32tm:时间服务。 doskey:创建宏。 systeminfo:显示系统信息。 mem:显示内在分配。 tasklist:显示任务进程。 at:结束任务进程。命令的具体参数和使用方法参见
3、本次实验参考资料部分。4.实验内容1) 进入Windows命令行窗口执行“开始”“运行”cmd2)设置活动代码页步骤一:输入命令chcp936.步骤二:输入命令ver,步骤三:输入命令chcp步骤四:输入命令ver步骤五:比较结果3) 显示更改Windows命令提示符输入命令prompt$v$g,4) 改变Windows命令行窗口的前景和背景色输入命令color fc5)改变命令行窗口的标题输入命令title” Windows命令行窗口”C:Documents and settingsAdministratorcolor fcC: Documents and settingsAdministr
4、ator6)显示或设置系统日期?输入date7)显示或设置系统时间?输入命令time,8)显示当前时区设置输入命令w32tm/tz,9)创建宏输入命令doskey ls=dir/w,10)显示系统信息输入命令systeminfo |more11)显示内存分配输入命令mem12)命令tasklist:显示任务进程输入命令tasklist13)命令taskkill:结束任务进程输入命令taskkill5.实验提高1) 基本命令的使用 进入Windows控制台窗口并为控制台窗口设置文字和背景颜色,改变控制台窗口的名称,显示系统日期和时间并为系统设置新的时间和日期,改变Windows命令行提示符,获得
5、Windows的版本号。 实验步骤如下所示。 步骤一:单击“开始”菜单,在“运行”窗口中输入cmd/t:04命令,单击“确定”按钮. 步骤二:在系统提示符下输入title“我的Windows”控制台窗口命令,按Enter健步骤三:改变系统日期,在系统提示符下输入date 2007/08/27命令按Enter健;改变系统时间,在系统提示符下输入time 19:59:26.00命令按Enter.健。输入不带参数的datet和 time命令就可以显示当前的日期和时间。步骤四:在系统提示符下输入prompt $ $,按Enter.健改变当前系统提示符,要还原成系统默认的提示符可以输入prompt $p
6、 $g.2) 宏命令的使用(1) 创建宏。 在系统提示符下依次输入下面几个命令:doskey ls = dirdoskey up = cd.doskey root =cd 利用多个命令定义宏,使用$t分隔命令,如下所示。 doskey myroot = cd$t cd”%userprofile%” 使用参数的宏: doskey mc = md $1 $tcd $1 /macros 和 /history命令行选项对于创建保存宏和命令的批处理程序非常有用,要存储所有当前的doskey宏,请输入doskey/macrosmacinit.要创建包含最近使用命令的批处理程序Tmp。Pat,输入doske
7、y/historytmpbat。(2) 使用宏。lsup RootMyrootMc pic要使用存储macinit中的宏,请输入doakey/macrofile=macint。3) 批处理文件的建立和使用批处理文件是一种命令文件,它将一组命令按照一定的顺序组合在一起用来完成一定的功能。批处理文件必须以bat为扩展名。批处理文件有两种,一种是系统启动时自动运行的(autoexec,bat),一种是需要用户输入命令名来运行的。批处理文件可以用任何文本编辑器来编辑,只要在保存文件时将其扩展名改为bat就可以了,简单的批处理文件可以用行编辑命令copy con完成。(1) 建立一个批处理文件Macin
8、it.bat。用来定义列宏。 步骤一:在提示符下输入copy con Macinit.bat. 步骤二:输入以下几行命令. Doskey ls=dir Doskey up=cd. Doskey root=cd 步骤三:按ctrlz健后按Enter健. 步骤四:在健盘上输入Macinit命令来执行Macinit.bat.(2)建立一个批处理文件ct.bat,用来清理系统中的临时文件. 步骤一:打开写字板工具. 步骤二:输入以下几行命令: echo off Echo正在清除系统垃圾文件,请稍等 del/f/s/q % systemdrive % *.tmp del/f/s/q % systemdr
9、ive % *. mp del/f/s/q % systemdrive % *.log del/f/s/q % systemdrive % *.gid del/f/s/q % systemdrive % *.chk del/f/s/q % systemdrive % *.old del/f/s/q % systemdrive % recycled*. * del/f/s/q % windir % *.bak del/f/s/q % windir % prefetgch*.* rd/s/q % windir %gtemp & md % windir % temp del/f/s % userpr
10、ofile % cookies *. * rel/f/s % userprofile % recent * . * Echo 清除系统垃圾完成。 Echo on 步骤三:保存文件改扩展名。 步骤四:运行ct.bat。4) 计划任务的建立计划任务命令可以让系统在规定的时刻自动完成预先定义好的一系列操作。在Windows中,可以使用“控制面板”中的“任务计划”工具来安排任务,也可以使用at命令手动安排任务,这里练习如何使用at命令创建和取消计划任务。(1) 创建计划任务 在命令提示符下,输入netstart,然后按Enter健显示当前运行的服务的列表,如果“task scheduler”未显示在列
11、表中,则请输入net start “task scheduler”。要想在午夜将“Documents”文件夹中的所有文件复制到“MyDocs”文件夹中:at 00:00 cmd/c copy C:Documents* . * C:MyDocs要想在每个工作日晚上11:00备份“products”服务器,请创建包含命令的批处理文件(例如 Backup。Bat),输入下面一行,然后按Enter健安排该备份任务:atproducts 23:00/every:M,T,W,Th,F backu(2)查看计划任务要查看本地计算机上的所有计划任务,请输入at,然后按Enter健。要查看名为”Support”
12、计算机上的所有计划任务,请输入atsupport,然后按Enter健,要查看本地计算机上ID为18的任务,请输入at 18,然后按Enter健。(3)取消计划任务要取消在本地计算机上安排的所有任务,请输入at/delete,然后按Enter健.要取消名为”MyServer”的计算机上的ID为8的任务,请输入atMyServer8/delete,然后按Enter健。注意:在运行命令之前,at不会自动加载cmd.exe(命令解释程序).如果没有运行可执行文件(.exe),则在命令开头必须使用专门的方法加载cmd.exe.如at 00:00 cmd/c dir.使用at的已经计划的命令作为后台程序运
13、行。运行结果不会显示在计算机上.要将输出重定向到文件,可以使用重定向符号()。如果将输出重定向到文件,则不论是在命令行还是在批处理文件中使用at,都需要在重定向符号之前使用转义符()。例如,要重定向输出到Output.text文件和,则要输入at 14:45cmd/cdirc:output.txt。实验二:Winows文件操作命令1、 实验目的(1) 加深对文件,目录和文件系统等概念的理解。(2) 掌握Windows文件系统的目录结构。(3) 掌握有关Windows文件系统操作的常用命令。2、 实验工具一台装有WindowsXP或Windows2003的机器(这里默认是WindowsXP)。3
14、、 预备知识1) 对文件操作的命令dir:查看文件。attrib:显示或更改文件属性。ren(rename):重命名文件名。 comp:比较两个或两套文件的内容。 copy:文件复制。 del(erase):文件删除。 move:将文件从一个目录移到另一个目录。2) 对目录操作的命令 md(MKDIR):建立一个目录。 cd(CHDIR):改变当前的目录。 rd(rmdir):删除目录。 tree:显示驱动器或路径的目录结构。 详细内容参见本次实验参考资料部分。4、 基本实验以下命令均在命令窗口中进行。1) 显示目录文件和子目录命令dir输入命令dir。2) 显示或更改文件属性attrib步骤
15、一:输入命令attrib。步骤二:输入命令attrib+r+s pushd。步骤三:输入命令attrib。3)显示文件内容type步骤一:利用编辑工具(如edit)编辑文本,并以textl.txt为文件名保存。步骤二:输入命令type textl.txt。4)修改文件的名字ren步骤一:输入命令dir。步骤二:输入命令ren tgextl.txt c.txt。步骤三:输入命令dir。5)比较两个或两套文件的内容comp步骤一:输入命令type a.txt。步骤二:输入命令type b.txt。步骤三:输入命令comp a.txt b.txt。6)文件复制copy步骤一:利用编辑工具编辑(如ed
16、it)两个文本,分别命名为a.txt 和b.txt并保存。步骤二:输入命令copy a.txt d.txt。7)文件的删除del步骤一:利用编辑工具(如edit)编辑文本,并以d.txt为文件名保存。步骤二:输入命令del d.txt。步骤三:输入命令dir。8)将文件从一个目录移到另一个目录move步骤一:输入命令dir。步骤二:利用编辑工具(如edit)编辑文本,并以d.txt为文件名保存。步骤三:输入命令move d.txt。步骤四:输入命令dir。9)创建子目录(文件夹)md步骤一:输入命令md subl。步骤二:输入命令dir/w。10)显示和改变当前的目录步骤一:输入命令cd。步骤
17、二:输入命令cd步骤三:输入命令cd osex.11)删除目录rd.步骤一:进入命令行窗口。步骤二:输入命令rd subl(目录不为空不能删除)。步骤三:输入命令rd/s subl(强制删除不为空的目录)。步骤四:输入命令dri/w。12)显示目录结构tree步骤一:输入命令cd.步骤二:输入命令md osex。步骤三:输入命令cd osex。步骤四:输入命令md subl。步骤五:输入命令md sub2。步骤六:输入命令cd subl。步骤七:输入命令md sub1-1。步骤八:输入命令md sub1-2。步骤九:输入命令cd.。步骤十:输入命令cd sub2。步骤十一:输入命令md sub
18、2-1。步骤十二:输入命令md sub2-2。步骤十三:输入命令cd.。步骤十四:输入命令tree。5、 可选实验1) 文件管理在本实验中,将对文件和目录进行创建、更名、删除、移动等综合操作。在Windows系统中文件名包括:文件名和扩展名两部分,文件名和扩展名之间用点(.)隔开。文件名由字母和数字组成,最长255个字符;扩展名通常由3个字符组成,但也有超过和小于3个字符的扩展名。文件名中的字母大小写不敏感,filel和 Filel是同一个文件。在Windows系统中扩展名通常代表某一特定的文件,例如,DOC表示Word文件、XLS表示Excel文件、TXT表示文本文件、BAT表示批处理文件,
19、等等。目录就是人们通常说的文件夹,它的命名规则和文件一样,一般不用扩展名,但用了也不算错。步骤一:使用copy con来创建文件。在命令行状态下建立简单的文件可以使用copy con filename命令来完成,copy con建立的是纯文本文件。(1) 建立一个名字为filel的文件。(2) 看看文件的属性是什么。(3) 文件创建的日期和时间是什么?(4) 文件的大小是多少?运行cd命令,确定自己当前的工作目录。步骤二:利用dir命令显示当前工作目录的内容。步骤三:运行以下命令dir/?,看看dir带参数都有什么意义。步骤四:使用md命令建立一个子目录mydir。步骤五:使用cd命令进入子目
20、录mydir。步骤六:用dir命令显示mydir中的内容。步骤七:执行cd.命令看看当前的工作目录。步骤八:执行cd命令看看当前的工作目录。步骤九:执行cd”%windir%”命令看看当前的工作目录。步骤十:执行cd”%userprofile%命令看看当前的工作目录。2) 查看文件步骤一:利用cd命令,将工作目录改到自己的主目录上。步骤二:将工作目录改到自己的子目录mydir,然后运行命令:datefilel将当前日期和时间存放到新建文件file中。步骤三:使用type命令查看filel文件的内容。步骤四:利用help命令显示date命令的用法help date。步骤五:将date命令的用法附
21、加到文件filel的后面,help datefilel。步骤六:利用type命令显示文件filel的内容。步骤七:利用dir/t:c filel命令列出文件filel的创建时间。步骤八:运行move filel.命令。步骤九:运行cd,dir filel/s看看文件filel被移动到哪里了。步骤十:使用dir/s查找文件。步骤十一:进入filel文件所在的目录中。步骤十二:用attrib filel看看filel文件的属性。在Windows文件有四种属性,其中R代表只读属性,A代表存档属性,H代表隐含性,S代表系统属性。步骤十三:使用attrib+h filel命令改变filel的属性。步骤十
22、四:看看执行dir filel命令后的提示。步骤十五:运行attrib-h+r filel命令,然后用attrib看看filel文件的属性。步骤十六:看看执行del filel命令后的提示。步骤十七:运行find/c/i“B”filel看看B字符在filel文件中哪一行。实验3:Windows基本进程管理1、 实验目的 通过观察任务管理器,来观察各个进程的动态信息。2、 实验工具(1) 一台WindowsXP操作系统的计算机。(2) 计算机装有Microsoft Visual Studio C+6.0专业版或企业版。3、 预备知识 任务管理器,了解用户计算机上正在运行的程序和进程的相关信息。
23、Windows环境中的编程。相关内容参见本次实验参考资料部分。4、 基本实验1) 观察任务管理器步骤一:进入WindowsXP。步骤二:按Ctrl+Alt+Delete(或按Ctrl+Shift+Esc)键都可以调出任务管理器。步骤三:单击“查看”“选择列”选项,可以看到一些选项,这里,可以查看每个进程的PID,CPU使用时间,内存的使用情况,当前的进程是系统的还是用户的,每个句柄的数量,每个进程的优先级,等等。步骤四:单击“性能”标签,在所示的“性能”选项卡中可以看到CPU的使用情况、内存的使用情况。2) 通过命令观察进程情况、步骤一:单击“开始”“运行”选项,输入cmd“命令提示符”下。步
24、骤二:输入tasklist。 步骤三:继续输入tasklist/?来寻找帮助,里面有更详细的解释。3) 通过命令来关闭一个进程步骤一:单击“开始”“运行”选项,输入cmd“命令提示符”下。步骤二:输入tasklist后回车执行。步骤三:继续输入taskkill/PID 208/T5、 实验编程 进行一个简单的Windows的图形用户接口(GUI)编程。 步骤一:进入WindowsXP。 步骤二:进入Microsoft Visual Studio C+6.0。 步骤三:在菜单栏中单击“文件”“新建”“文件”C+Source File,选择路径(如D:1.cpp),并命名为1.cpp。 步骤四:将
25、下面的程序源代码输入。 步骤五:单击Windows系统的“开始”“运行”选项,输入cmd。 步骤六:依次输入命令为 cd d:/ 这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方 CL 1.cpp/ 对这是源程序进行编程 步骤七:若没有错误,则会自动生成1.exe和1.obj文件,双击“1.exe”,即可看到结果。 源代码如下: # include # include /告诉连接器与包括 MessageBox API函数的 user32库进行连接 # pragma comment(lib,”user32.lib”)int APIENTRY WinMain(HINSTA
26、NCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) MessageBox( NULL, /没有父窗口 “hello windows XP”, / 消息框中的文本显示 hello windows XP “提示”, /消息框的标题 MB OK); / 其中只有一个OK按钮 /返回0以便通知系统不进入消息循环 return 0;6、扩展实验 1、获得和使用进程的句柄 步骤一:进入WindowsXP。步骤二:Microsoft Visual Studio C+6.0。步骤三:在菜单栏中单击“文件”“新建”“文件”
27、C+Source File,选择路径(如:D:2.cpp。步骤四:将下面的程序源代码输入。步骤五:单击Windows 系统的“开始”“运行”选项,输入cmd。步骤六:依次输入命令为: cdd:/这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 2.cpp/对这是源程序进行编译步骤七:若没有错误,则会自动生成2.exe和2.obj文件,双击2.exe, 程序源代码如下: #include #include #include /确定自己的优先权的简单应用程序 void main() /从当前过程中提取句柄 HANDLE hProcessThis=:GetCurrent
28、Process(); /请求内核提供该过程所属的优先权类DWORD dwPriority=:GetPriorityClass(hProcessThis);/发出消息,为用户描述该类std:cout“current process priority:”;switch(dwPriority) case HIGH PRIORITY CLASS: std:cont”High”; break; case NORMAL PRIORITY CLASS: std:coutg”Normal”, break; case IDLE PRIORITY CLASS; std:cout”Idle”; break; cas
29、e REALTIME PRIORITY CLASS: std:cout”Realtime”; break; default: std:cout”; break; Std:coutstd:endl; Getchar();2)利用句柄来获得进程的详细信息 步骤一:进入进入WindowsXP。步骤二:Microsoft Visual Studio C+6.0。步骤三:在菜单栏中单击“文件”“新建”“文件”C+Source File,选择路径(如D:3.cpp),并命名为3.cpp。步骤四:将下面的程序源代码输入。步骤五:单击Windows系统的“开始”“运行”选项,输入cmd。 步骤六:依次输入命令
30、为: cd d:/这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方 CL 3.cpp/对这是源程序进行编译 步骤七:若没有错误,则会自动生成3.exe和3.obj文件,双击”3.exe”, 程序源代码如下: #include #include #include #include /当在用户模式机内模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法 DWORD GetKernelModePercentage(const FILETIME& ftKernel, const FILETIME& User)/将FILETIME结构转化为64位整数ULONG
31、LONG qwKernel = (ULONGLONG)ftKernel.dwHighDateTime) 32) + ftKernel.dwLowDateTime;ULONGLONG qwUser = (ULONGLONG)ftUser.dwHighDateTime) 32) + ftUser.dwLowDateTime;/将消耗时间相加,然后计算消耗在内模式下的时间百分比ULONGLONG qwTotal = qwKernel + qwUser;DWORD dwPct = (DWORD)(ULONGLONG)100 * qwKernel)/qwTotal);Return(dwPct);/以下是
32、将当前运行过程名和消耗在内模式下的时间百分数都显示出来的应用程序Void main()/对当前系统中运行的过程拍取“快照”HANDLE hSnapshot = :CreateToolhelp32Snapshot( TH32CS SNAPPROCESS, /提取当前过程 0); /如果是当前过程,就将其忽略/初始化过程入口PROCESSENTRY32 pe;:ZeroMemory(&pe,sizeof(pe);pe.dwSize = sizeof(pe)BOOL bMore = :Process32First(hSnapshot,&pe);While(bMore) /打开用于读取的过程HNDLE
33、 hProcess = :OpenProcess( PROCESS QUERY INFORMATION, /指明要得到信息 FALSE, /不必继承这一句柄 pe.th32ProcessID); /要打开的过程if(hProcess! = NULL)/找出进程的时间FILETIME ftCreation, ftKernelMode,ftUserMode,ftExit;:;GetProcessTimes( hProcess, /所感兴趣的进程 &ftCreation, /进程的启动时间 &ftExit, /结束时间(如果有的话) &ftKernelMlde, /在内核模式下消耗的时间 &ftUs
34、erMode);表 /在用户模式下消耗的时间/计算内核模式消耗的时间百分比DWORD dwPctKernel = :GetKernelModePercentage( ftKernelMode, /在内核模式上消耗的时间 ftUserMode); /在用户模式下消耗的时间/向用户显示进程的某些信息Cout ”process ID:” pe.th32ProcessID ”,EXE file:” pe.szExeFile “, % in Kernel mode:” dwPctKernel endl; /消除句柄 :CloseHandle(hProcess);/转向下一个进程bMore = :proc
35、ess32Next(hSnapshot,&pe);getchar();实验4 进程控制1、 实验目的(1) 通过对WindowsXP进行编程,来熟悉和了解系统。(2) 通过分析程序,来了解进程的创建、终止。2、 实验工具(1) 一台WindowsXP操作系统的计算机。(2) 计算机装有Microsoft Visual Studio C+6.0专业版或企业版。3、 预备知识(3) CreateProcess()调用:创建一个进程。(4) ExitProcess()调用:终止一个进程。4、实验编程(1)编程一 利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.e
36、xe)。阅读该程序,完成实验任务。源程序如下: # include # include int main(VOID) STARTUPINFO si; PROCESS INFORMATION pi; ZeroMemory(&si,sizeof(si); Si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi); if(!CreateProcess(NULL, “c: WINDOWSsystem32 mspaint.exe”, NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi) fprintf(stderr,”Creat Proces
37、s Failed”);return 1;WaitForSingleObject(pi.hProcess,INFINITE);Printf(“child Complete”);CloseHandle(pi.hProcess);CloseHandle(pi hThread); 在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe: C: CL 4-1.cpp 实验任务:写出程序的运行结果。 4正在运行的进程 (2)、编程二 下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionE
38、x()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include #include/利用进程和操作系统的版本信息的简单示例Void main() /提取这个进程的ID号 DWORD dwIdThis=:GetCurrentProcessId(); /获得这一进程和报告所需的版本,也可以发送0以便指明这一进程DWORD dwVerReq=:GetProcessVersion(dwIdThis);WORD wMajorReq=:(WORD)dwVerReq16);WORD wMinorReq=:(WORD)dwVerReq & oxffff);std:cout ”Pro
39、cess ID:” dwIdThis ”,requires OS:” wMajorReq wMinorReq std:endl;/设置版本信息的数据结构,以便保存操作系统的版本信息OSVERSIONINFOEX osvix;:ZeroMemory(&osvix,sizeof(osvix);Osvix.dwOSVersionInfoSize=sizeof(osvix);/提取版本信息和报告:GetVersionEx(reinterpret cast(&osvix);Std:cout ”Running on OS:” osvix.dwMajorVersion ”.” osvix.dwMinorVe
40、rsion =5 /改变优先级:SerPriorityClass(:GetCurrentProcess() /利用这一进程 HIGH PRIORITY CLASS); /改变为high/报告给用户Std:cout ”Task Manager should now now indicate this” “process is high priority.” std:endl;实验参考:在Visual C+窗口的工具栏中单击“打开”按钮,在“打开“对话框中找到并打开4-2.cpp源程序。单击Build菜单中的Compile 4-2.cpp命令,再单击“是”按钮确认。系统对4-2.cpp源程序进行编译。编译完成后,单击Build菜单中的Build 4-2.exe命令,建立4-2.exe可执行文件。在工具栏单击Execute Program(执行程序)按钮,执行4-2.exe程序。实验任务:写出程序运行后的以下几项结果。当前PID信息 。当前操作系统版本 。系统提示信息 。5