版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机操作系统》实验指导书2
一、实验第01讲Windows系统管理与访问Linux系统2
1、实验1Windows2000系统管理(必做)2
2、实验2Windows2000进程编程(必做)3
3、实验3linux系统访问泌做)4
二、实验第02讲Windows进程管理与管理Linux系统进程及Linux重定向和管
道7
1、实验1Windows任务管理器的进程管理(必做)7
2、实验2Windows2000进程编程(必做)8
3、实验3管理Linux系统进程(必做)10
4、实验4Linux重定向和管道(必做)11
三、实验第03讲Linux文件信息命令、基本文件管理与文件权限12
1、实验1Linux文件信息命令和基本文件管理(必做)12
2、实验2Linux文件权限(必做)13
四、实验第04讲Windows进程与线程编程15
1、实验1Windows2000进程的“一生”(必做)15
2、实验2Windows2000线程同步(必做选做)19
3、实验3Windows2000线程间的通讯(选做)23
五、实验第05讲Linux并发程序设计及Linux用户程序的内存管理28
1、实验1Linux并发程序设计(必做)28
2、实验2Linux用户程序的内存管理(必做)30
六、实验第06讲Windows存储管理32
1、实验1提高Windows2000的内存性能(必做)32
2、实验2Windows2000内存结构(必做)35
3、实验3Windows2000虚拟内存(必做)36
七、实验第07讲Linux声音设备编程40
1、实验1Linux声音设备编程(必做)40
《计算机操作系统》实验指导书
课程编号:10302340实验学时:8学时
先修课程:《计算机组成原理》、《高级语言程序设计》、《数据结构》
—、实验第01讲Windows系统管理与访问Linux系统
1、实验1Windows2000系统管理(必做)
1、实验学时与难度
•实验估计时间:60分钟,难度系数:3。
2、背景知识简介
-Windows2000Professional的“管理工具”中集成了许多系统管理工具,利用这
些工具,管理员可以方便地实现各种系统维护和管理功能
'这些工具集中在“控制面板”的“管理工具”选项下,用户和管理员可以很容易地
对它们操作和使用
■默认情况下,只有一些常用工具随Windows200。系统的安装而安装
•服务:启动和停止由Windows系统提供的各项服务
•计算机管理器:管理磁盘以及使用其他系统工具来管理本地或远程计算机
•事件查看器:显示来自于Window和其他程序的监视与排错信息
•数据源(ODBC):添加、删除以及配置ODBC数据源和驱动程序
•性能:显示系统性能图衣以及配置数据日志和警报
•组件服务:配置并管理C0M+应用程序
-另一些工具则随系统服务的安装而添加到系统中,例如:
•Telnet服务器管理:查看以及修改Telnet服务器设置和连接
•Internet服务管理器:管理HS、Internet和IntranetWeb站点的W2b服
务器
•本地安全策略:查看和修改本地安全策略,诸如用户权限和审计策略
3、实验目的和要求
■了解和学习Windows系统管理工具及其使用
・熟悉Windows系统工具的内容和应用
■进一步熟悉Windows操作系统的应用环境
4、实验环境
■需要准备一台运行Windows2000Professional操作系统的计算机
5、实验内容与步骤
■为了帮助用户管理和监视系统,Windows2000提供了多种系统管理工具,其中最主
要的有
•计算机管理
•事件查看器
•性能监视
•服务
•数据源(ODBC)
•管理工具组中,有哪些系统管理工具,基本功能是什么?
'对“系统工具”、“存储”、“服务和应用程序”等进行实验记录
实验记录
名称类型描述
2、实验2Windows2000进程编程(必做)
1、实验学时与难度
■实验估计时间:30分钟,难度系数:3。
2、背景知识简介
■Windows2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用
程序
■控制台应用程序匕以创建GUI:GUI应用程序可以作为服务来运行;服务也可以向标
准的输出流写入数据一一不同类型应用程序间的惟一重要区别是其启动方法
■Windows2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用
户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应
用程序。当系统运仃时,Windows2000的服务道常要向系统用尸提供所需功能
■服务应用程序类型需要ServiceMailO函数,由服务控制管理器(SCM)加以调用。
SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另
一个服务中来的请求。其本身负责使应用程序的行为像一个服务。通常,服务登录
到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限
'当令C++编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与
标准库相链接。产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。
装载器指令告诉系统从哪里装载机器代码。另一个装载器指令告诉系统从哪里开始
执行进程的主线程。在进行某些设置后,进入开发者提供的mainO>Service亚in()
或WinMainO函数的低级入口点。机器代码中包括有控制逻辑,它所做的事包括跳
转到WindowsAPI函数,进行计算或向磁盘写入数据等
'Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动
态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据
3、实验目的和要求
■通过对Windows200()进程编程
•进一步熟悉操作系统的基本概念
•进一步熟悉进程的概念
・初步理解Windows2(X)0进程的编程
4、实验环境
■需要做以下准备
•一台运行Windows2(X)0Professional操作系统的计算机
・计算机中需安装VisualC++6.0专业版或企业版
5、实验内容与步骤
■列出当前运行进程的优先级(具体内容见源程序)
6、源程序
//prochandle项目
#include<windows.h>
#include<iostream>
//确定自己的优先权的喻单应用程序
voidmain()
(
//从当前过程中提双句柄
HANDLEhProccssThis=::GctCurrcntProcess():
//请求内核提供该过程所属的优先权类
DWORDdwPriority=::GetPriorityClass(hProcessThis);
//发出消息,“为用户描述该类
std::cout«."currentprocesspriority/';
switch(dwPriority)
(
caseHIGH_PRIORITY_CLASS:
std::cout«*High*;
break;
caseNORMAkPRIORITY_CLASS:
std::cout<<"Normal";
break;
caseIDLE_PRIORITY_CLASS:
std::cout«*ldle,x;
break;
caseREALTIME_PRIORTTY_C1.ASS:
std::cout«”Realtime";
break;
default:
std::cout«*<unknow>*;
break;
)
std::cout«std::endl;
)
7、进阶
■更改当前运行进程的优先级。
3、实验3linux系统访问(必做)
1、实验学时与难度
•实验估计时间:90分钟,难度系数:4。
2、背景知识简介
・Linux是■个与DOS或Windows完全不同的操作环境,具有它自己独特的风格
-登录Linux和使用GNOME
•首先回顾Linux登录ID和II令的要求,使用标准图形用户界面GNOME练习
登录Linux系统,并修改登录口令
・接着,学习使用GNOME。GNOME是优秀的Linux桌面平台,也是目前Linux
各版本中使用的对国际化支持最好的桌面平台。使用GNOME需要熟悉面板,
练习使用鼠标和键盘管理视窗;还需要练习工作空间的切换和使用工作空间
菜单
•然后通过Linux系统的Shell、Linux文件、目录和权限等诸方面来掌握Linux
系统管理的有关知识
•最后,退出(或者注销)并返回Linux登录界面
■Linux系统的Shell
•使用Linux系统时,用户多数时间是通过Shell与系统进行对话的。Shell
是一个接收用户输入命令并将其转换成指令的程序,它是用户与Linux系统
之间的界面之一
•Linux系统中可以使用的Shell包括:
■bash:BourneAgainShello这是Linux系统上最常用的Shell,它
合乎POS1X(PortableOperatingSystemInterface)标准且相容
于BourneShell,是GNU工程[自由软件基金会)的产物,并且提
供了编辑命令行的功能
■esh:CShello由Berkeley(伯克利大学)开发,与BourneShell
在交互式使用上很多是相兼容的,但在程序设计界面上却有很大的
不同。它不提供编辑命令行的功能,但它有类似的功能叫命令历史
记录
■ksh:KornShell。在UNIX系统下得到普遍使用,并最早将现代Shell
技术(包括取自CShell的部分)引入BourneShell,提供了编辑
命令行功能
■sh:BourneShell»是原始的Shell,不提供编辑命令行功能
■tesh:CShell的加强版,提供了编辑命令行的功能
■zsh:ZShello最新的Shell,与BourneShell兼容,提供编辑命
令行的功能
•Linux系统的文件、目录和权限
・Linux的文件名与DOS有许多相似之处也有其自身的特点
•Linux文件名没有标准格式。通常文件名中可以包含任何字符(“/”字符
除外,”字符不能作为文件名的第一个字符),文件名的长度限制在256
个字符以内。Linux的文件名也提供了功能强大且精确的通配符
・文件的权限是Linux系统安全的核心部分,包括
•Read(可读)权限:表示可以读取文件内的数据
•Write(可写)权限:表示可以改变或删除该文件
•Execute(可执行)权限:表示可以把该文件当成程序执行
除文件权限之外,Linux系统上还有目录和很多其他类型的文件,其中包括
特殊文件(设备)、Socket和符号连接等等(平时我们经常使用的Windows
设备如软驱、光驱等在Linux中也是一种特殊的文件)
•拥有root口令的用户称为超级用户,超级用户有权访问整个系统,包括建
立普通用户帐号、修改密码、安装与卸载软件等一切权限。超级用户的提示
符为“#",普通用户提示符为“$”
•几个用户在一个系统下共用一个帐号,其个人文件的安全就得不到保障。建
立普通用户帐号后,系统能保证用户是唯一能够存取其个人文件的人。另一
方面,即使没有与人共享一个系统,建立普通用户帐号也是必要的。因为如
果总是以超级用户登录进行操作(超级用户的权限是整个系统),一旦出现
误操作(如:破坏或移动、删除一个重要的系统文件)处理起来也很棘手
■Linux文件系统
・Linux的文件系统是文件和FI录层次的集合。了解Linux文件系统的结构有
助于更好地理解和使用Linuxo在Linux文件系统根目录下,有如下子目录:
bin-,dev,etc、home-install、lib、nnl、proc、roottmp、user,var
(不同版本,目录会略有不同)
■/bin目录该目录中存放许多基本的系统程序。
■/cev目录该目录中存放的文件是设备驱动程序,用来访问系统设
备和资源,如磁盘设备、调制解调器、内存等
3、实验目的和要求
■登录Linux和熟悉GNOME
・通过登录Linux操作理解以下内容
■Linux登录ID的要求
■在GMOME环境下登录进入Linux系统
■修改口令
■正确退出或者注销Linux系统
・通过以下操作熟悉GNOME界面
■回顾GNOME面板图标和菜单
■管理GNOME视窗
■使用LinuxShell
•了解用户Linux环境所使用的Shell
•更改用户系统的Shell
,初步了解bash
■熟悉Linux的文件和目录
•掌握Linux文件名通配符的使用
•了解Linux系统目录的特点
■了解Linux文件系统
•Linux文件系统根目录的子目录
・/bin目录中的文件
・/dev目录中的文件
4、实验环境
•需要做以下准备
•由指导老师分配的Linux登录用户ID(如user2)和口令
・一台运行RedHatLinux操作系统并带有GNOME的计算机
5、实验内容与步骤
-登录规则和口令规则
■登录Linux
■熟悉GNOME
■Linux系统中的Shell
■Linux系统中文件与目录
,Linux的文件系统
•注销GNOME
6、进阶
-Linux的常用命令(可选练习)
•有关目录的命令:pwd、cd
,有关文件的命令:Is、cat、chown、cp、date、dd、file、find
•其他的命令:kill>clear、mount、umountsreboot>passwd、su
二、实验第02讲Windows进程管理与管理Linux系统进程及
Linux重定向和管道
1、实验1Windows任务管理器的进程管理(必做)
1、实验学时与难度
•实验估计时间:30分钟,难度系数:3。
2、背景知识简介
■Windows2000的任务管理器提供了用户计算机上正在运行的程序和进程的相关信
息,也显示了最常用的度量进程性能的单位
■使用任务管理器
•可以打开监视计算机性能的关键指示器,快速查看正在运行的程序的状态,
或者终止已停止响应的程序
也可以使用多个参数评估正在运行的进程的活动,以及查看CPU和内存使
用情况的图形和数据
■任务管理器中
•“应用程序”选项卡:显示正在运行程序的状态,用户能够结束、切换或者
启动程序
•“进程”选项卡:显示正在运行的进程信息。例如,可以显示关于CPU和
内存使用情况、页面错误、句柄计数以及许多其他参数的信息
•“性能”选项卡:显示计算机动态性能,包括CPU和内存使用情况的图表,
正在运行的句柄、线程和进程的总数,物理、核心和认可的内存总数(KB)等
3、实验目的和要求
-通过在Windows任务管理器中对程序进程进行响应的管理操作
'熟悉操作系统进程管理的概念
•学习观察操作系统运行的动态性能
4、实验环境
■需要准备一台运行Windows2000Professional操作系统的计算机
5、实验内容与步骤
•使用任务管理器终止进程
-显示其他进程记数器
・更改正在运行的程序的优先级
6、实验提示
■注意实验中所使用的是操作系统的哪个版本
•了解在当前机器中正在运行的应用程序
-在WindowsXP的任务管理相中,“进程”选项卡增加了一个“用户名”栏目,其中
区分了SYSTEM、NETWORKSERVICE、LOCALSERVICE和用户的不同进程类别
-终止进程时要小心,有可能导致不希望发生的结果,包括数据丢失和系统不稳定等;
终止进程将结束它直接或间接创建的所有子进程
2、实验2Windows2000进程编程(必做)
1、实验学时与难度
・实验估计时间:60分钟,难度系数:4。
2、背景知识简介
'Windows2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用
程序
-控制台应用程序可以创建GUI;GUI应川程序可以作为服务来运行;服务也可以向标
准的输出流写入数据一一不同类型应用程序间的惟一重要区别是其启动方法
•Windows2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用
户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应
用程序。当系统运行时,Windows2000的服务通常要向系统用户提供所需功能
■服务应用程序类型需要ServiceMailO函数,由服务控制管理器(SCM)加以调用。
SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另
一个服务中来的请求。其本身负责使应用程序的行为像一个服务。通常,服务登录
到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限
■当令C++编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与
标准库相链接。产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。
装载器指令告诉系统从哪里装载机器代码。另一个装载器指令告诉系统从哪里开始
执行进程的主线程。在进行某些设置后,进入开发者提供的mainO.Service址in()
或眄nMain()函数的低级入口点。机器代码中包括有控制逻辑,它所做的事包括跳
转到WindowsAPI函数,进行计算或向磁盘写入数据等
•Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动
态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据
3、实验目的和要求
■通过对Windows2000进程编程
•进一步熟悉操作系统的基本概念
•进一步熟悉进程的概念
进一步理解Windows2000进程的编程
较好地理解Windows2000进程的结构
4、实验环境
'需要做以下准备
•一台运行Windows2000Professional操作系统的计算机
•计算机中需安装VisualC++6.0专业版或企业版
5、实验内容与步骤
・参照计算机的任务管理器中的进程栏所列出的内容,列出当前系统所有运行进程及
其相关信息(具体内容见源程序)
6、源程序
//proc1ist项目
#include〈windows.h>
#include<tlhelp32.h>
#include<iostream.h>
//当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的利助方
法
DWORDGetKernelModePercentage(constFILETIME&ftKernel,
constFILETIME&ftUser)
{
//将FILETIME结构转化为64位整数
Ul.ONGLONGqwKernel=(((ULONGLONG)ftKernel.dwIIighDateTime)
«32)+ftKcrncl.dwLowDatcTimc:
LLONGLONGqwlser=(((ULONGLONG)ftUser.dwHighDateTime)
«32)+ftUser.dwLowDateTime;
//将消耗时间相加,然后计算消耗在内核模式下的时间百分比
LLONGLONGqwTotal=qwKernel+qwliser;
DWORDdwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);
return(dwPct);
}
//以下是将当前运行过程名和消耗在内核模式下的时间百分数都显示出来的应用程序
voidmain()
(
//对当前系统中运行的过程拍取“快照”
HANDLEhSnapshot=::CreateToolhelp32Snapshot(
TH32CS_SNAPPR0CESS,//提取当前过程
0);//如果是当前过程,就将其忽略
//初始化过程入口
PR0CESSENTRY32pe:
::ZeroMemory(&pe,sizeof(pe));
pe.dwSize=sizeof(pe);
BOOLbMore=::Process32First(hSnapshot,&pe);
while(bMore)
(
//打开用于读取的过程
HANDLEhProccss=::0penProccss(
PROCESS_QUERY_INEORMATION,//指明要得到信息
FALSE,//不必继承这一句柄
pe.th32ProcessID);//要打开的进程
if(hProcess!=Nl)LL)
(
//找出进程的时间
FILETIMEftCreation,ftKernelMode,ftUserMode,ftExit;
::GetProcessTimes(
hProcess,//所感兴趣的进程
&f[Creation,//进程的启动时间
&ftExit,//结束时间(如果有的话)
&flKernelMode,//在为核模式下消耗的时间
&ftUscrModc);//在用户模式下消耗的时间
//计算内核模式消耗的时间百分比
DWORDdvPctKernel=::GetKernelModePercentage(
ftKernelMode,//在内核模式上消耗的时间
ftUserMode);//在用户模式下消耗的时间
//向用户犀示进程的某号信息
cout«*processID:"«pe.th32ProcessID
«”,EXEfile:*«pe.szExeFile
«*,%inKernelmode:*«dwPctKernel«endl:
//消除句柄
::Closelland1c(hProcess);
}
//转向下一个进程
bMorc=::Proccss32Ncxt(hSnapshot,&pe);
}
)
7、进阶
•对列出的所有的进程,可以改变所选进程的优先级。
3、实验3管理Linux系统进程(必做)
1、实验学时与难度
-实验估计时间:30分钟,难度系数:4。
2、背景知识简介
-在本实验中,我们将使用Linux命令工作,来标识和控制系统进程。Linux操作系
统使用进程管理作业,进程由系统或者用户初始化。用户在Linux环境下执行的作
业大多数都会启动•个进程。进程可以启动或者派生一个子进程,这样创建了•个
进程层次结构或者进程树,类似于具有父子关系的文件系统层次结构
'可以使用ps(进程状态)命令工作,监控系统进程,使用kill命令终止不想要的
进程
3、实验目的和要求
■回顾系统进程的概念,加深对Linux/UNIX进程管理的理解
■回顾ps命令和选项
■列出当前shell中的进程
•列出运行在系统中的所有进程
•根据命令名搜索特定的进程
•确定一个进程,终止它
•使用kill命令终止进程
'根据用户查找和终止进程
-根据命令名终止近程
4、实验环境
■需要做以下准备
•由指导老师分配的登录用户ID(如user2)和口令
•一台运行RedHatLinux操作系统的计算机
5、实验内容与步骤
登录进入GNOME
访问命令行
•回顾系统进程概念
■回顾ps命令和信息
•列出系统中运行的所有进程
-根据命令名搜索特定的进程
■确定一个要终止的进程
•使用kill命令终止一个进程
-按照用户查找和终止一个进程
4、实验4Linux重定向和管道(必做)
1、实验学时与难度
•实验估计时间:60分钟,难度系数:5。
2、背景知识简介
■本实验使用高级Linux命令来完成重定向和管道。
・每一个Linux命令都有一个源作为标准输入,一个目的作为标准输出
•命令的输入通常来自键盘(尽管它也可以来自文件)
•命令通常输出到监视器或者屏幕上
•Linux计算环境使用重定向可以控制命令的I/O.当试图把命令的输出保存到一个文
件,以供以后查看的时候是很有用的
•通过管道,可以取得一个命令的输出,把它作为另一个命令的进一步处理的输入
-有几个元字符可用于输入/输出重定向符号
•输出重定向使用右尖括号(》,又称大于号)
•输入重定向使用左尖括号(<,又称小于号)
・出错输出重定向使用右尖括号之前有一个数字2(如2>)
-重定向命令的格式是:
•CommandRedirection-Symbo1File(textfileordevicefile)
-标准输出比标准输入或标准出错更经常被重定向。许多命令,如Is、cat、head和
tail产生标准输出到屏幕上,常常会希望把这个输出重定向到一个文件中,以便将
来查看、处理或者打印
-通过替换文件名,可以截获命令的输出
•最强大的元字符之一是管道符号(I)。管道取得一个命令的标准输出,把它作为
标准输入传递给下一个命令(通常为more命令、Ip(行式打印机)命令或者一个文
件处理命令,如grep或sort)
•必须在管道的每边都有一个命令,命令和管道之间的空格是可选的
-管道命令的格式是:
•command|command
3、实验目的和要求
■通过重定向和管道操作:
・熟悉输入/输出(I/O)重定向
•把标准输出重定向创建一个文件
•防止使用重定向的时候覆盖文件
•把输出追加到一个现有的文件中
把一个命令的输出导入到另一个命令中
4、实验环境
■需要做以下准备:
•由指导老师分配的登录用户名(如user2)和口令
•一台运行RedHatLinux操作系统,带有GNOME的计算机
5、实验内容与步骤
■在本实验中将会用到下列命令:
・pwd显示当前的工作路径
•cd改变目录路径
•1S显示指定目录的内容
・more分页显示文件的内容。显示文本文件首选
•head截取显示文件的开头部分(默认为开头10行:)
•tail截取显示文件的结尾部分(默认为最后10行)
•cal有关日历的命令
・setshell特性的设置
•echo显示变量的值
•ps显示当前进程
•data显示或设置系统日期和时间
・grep查找文件中有无指定的关键字
•使用重定向标准输出符号
-使用管道符号
6、实验提示
-如果对命令的格式不清楚,可以用man命令请求帮助,即:
•manmore
三、实验第03讲Linux文件信息命令、基本文件管理与文件
权限
1、实验1Linux文件信息命令和基本文件管理(必做)
1、实验学时与难度
'实验估计时间:60分钟,难度系数:4。
2、背景知识简介
•在本实验中,我们将使用不同的信息命令,来调查和发现文件的信息;使用命令来
帮助确定文件类型和创建文件的应用;也可以使用几个命令来查看文本文件的内容
和对它们进行比较
■作为基础,使用命令来分析和管理文件及目录的能力对于进一步学习Linux操作系
统是非常重要的。Linux特权用户和系统管理员必须有使用命令行的工作背景,例
如创建可执行的脚本文件等(Linux脚本文件包含着一系列的Linux命令)。许多
操作系统管理和设备配置作业需要理解Linux命令,并且在某些情况下,命令行是
仅有的操作方式
•在本实验中,我们将在命令行下使用文件管理命令工作,介绍文件和目录命名规则。
我们将创建一个简单的目录结构,然后在那些目录中创建一个文件,并练习创建和
删除文件和目录
3、实验目的和要求
■通过本实验
•使用控制字符执行特殊功能
•使用file和strings命令确定文件类型
•使用cat利more命令显示文本文件的内容
•使用head和tai]命令显示文本文件的部分内容
•使用NC命令确定单词、行和字符数
・使用diff命令比较2个文件
•回顾文件和目录命名约定
・使用touch命令创建新文件
・使川mkdir命令创建新目录
・使用rm命令删除文件
•使用rm-r命令删除目录
4、实验环境
■需要做以下准备
•由指导老师分配的登录用户帐号(如user2)和口令
•一台运行Linux操作系统的计算机
5、实验内容与步骤
•文件信息命令
'基本的命令行文件管理
2、实验2Linux文件权限(必做)
1、实验学时与难度
•实验估计时间:90分钟,难度系数:5。
2、背景知识简介
■作为全面安全策略的一个主要组成部分,文件系统安全决定了谁可以访问什么数据,
以及他们可以如何处理数据。系统管理员基于用户、属组和权限建立其文件系统安
全。目录和文件权限可以使用带-I(长列表)选项的Is(列表)命令来确定。可
以使用IsT命令确定文件类型、权限、所有者和属组。系统将显示文件和目录的
权限,解释结果,以评价不同用户类别上权限的作用
'接着,将使用命令行工具程序分析和修改Linux文件系统安全权限
•文件和目录权限可以使用chmod(修改模式)命令修改。在正常情况下,文件或目
录的默认权限可以满足大多数安全的需要。可能有很多次想要修改文件或目录的权
限。在默认情况下,所有创建的文件设定了允许其他类别的用户可以读取这个文件
的权限。这意味着所有拥有登录id的人都可以查看和拷贝文件的内容。对于机密文
件和私人信息,可以修改文件的权限,防止其他人访问它
•shell脚本是想要修改其权限的另一个例子。当创建一个shell脚本文件(或任何
文件)的时候,既使是对文件的所有者/创建者,默认的权限不包括执行权限。为了
运行shell脚本,必须通过给用户(所有者)类别添加执行权限来修改权限
'最后,使用GNOME(公共桌面环境)文件管理器来分析和修改文件系统权限。GNOME
文件管理器工具程序提供了一个文件系统的图形化界面,可以用来查看和修改文件
和文件夹的权限
3、实验目的和要求
•确定文件系统权限
•显示文件系统权限
•解释权限
•确定文件的用户权限、属组权限或其他(公共)权限
•确定对于一个可执行文件的文件权限
•使用默认权限创建一个文件或目录
-从命令行中修改权限
・使用文件系统来控制安全访问
•回顾chmod命令模式
•使用符号模式修改文件或目录的权限
•确定八进制模式权限
•使用八进制模式修改文件或目录的权限
•使用vi编辑器创建一个脚本文件,并且使它可执行
•使用文件管理器修改权限
•访问文件管理器,使用文件和目录权限工作
.使用文件管理器确定文件或文件夹的权限
•使用文件管理器修改文件或文件夹的权限
4、实验环境
•需要做以下准备
•由指导老师分配的登录用户帐号(如user2)和口令
•一台运行Linux操作系统的计算机
5、实验内容与步骤
-确定文件系统权限及在命令行中修改权限
•使用文件管理器修改权限
6、进阶
在不同的角色下,安装相同的软件(如Oracle),从而体会Linux的文件权限的重要
性以及如何设置与操作。
四、实验第04讲Windows进程与线程编程
1、实验1Windows2000进程的“一生”(必做)
1、实验学时与难度
■实验估计时间:60分钟,难度系数:4。
2、背景知识简介
■Windows所创建的每个进程都从调用CreateProcess()API函数开始,该函数的任
务是在对象管理器子系统内初始化进程对象
■每•进程都以调用ExitProcess()或TerminateProcess()API函数终止。通常应
用程序的框架负责调用ExitProcess()函数。对于C++运行库来说,这一调用发
生在应用程序的main。函数返回之后
•创建进程
•CreateProcessO调用的核心参数是可执行文件运行时的文件名及其命令
行
-正在运行的进程
•如果一个进程拥有至少一个执行线程,则为正在系统中运行的进程。道常,
这种进程使用主线程来指示它的存在。当主线程结束时,调用ExitProcess。
API函数,通知系统终止它所拥有的所有正在运行、准备运行或正在挂起的
其他线程
•当进程正在运行时,可以通过一系列的API函数来查看它的许多特性,其中
少数特性也允许加以修改
■终止进程
•所有进程都是以调用ExitProcess。或者TerminateProcess()函数结束
的。但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭
“职责”之后以正常的终止方式来调用前者的。而外部进程通常调用后者即
突然终止进程的进行,由于关闭时的途径不太正常,有可能引起错误的行为
・TerminateProcessOAPI函数只要打开带有PROCESS_TERMINATE访问权的
进程对象,就可以终止进程,并向系统返回指定的代码。这是一种“野蛮”
的终止进程的方式,但是有时却是需要的
3、实验目的和要求
■通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟
悉操作系统的进程概念,理解Windows200()进程的“一生”
■通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法
4、实验环境
•需要做以下准备:
•一台运行Windows2000Professional操作系统的计算机
•计算机中需安装VisualC++6.0专业版或企业版
5、实验内容与步骤
■创建进程(具体内容见源程序1)
•正在运行的进程(具体内容见源程序2)
■终止进程(具体内容见源程序3)
6、源程序
源程序1
//proccreate项目
^include〈windows.h>
^include<iostream>
#include<stdio.h>
//创建传递过来的进程的克隆过程并赋于其ID值
voidStartClone(intnCloneID)
(
//提取用于当前可执行文件的文件名
TCHARszFilename[MAX_PATH];
::GetModuleFileNameTNULL,szFilename,MAXPATH);
//格式化用于子进程的命令行并通知其EXE文件名和克隆TD
TCHAKszCmdLine[MAX_PATH];
::sprintf(szCmdLine,szFilename,nCloneID):
//用于子进程的STARTUPINFO结构
STARTUPINFOsi;
::ZeroMemory(reinterpret_cast<void*>(&si),sizeof(si));
si.cb=sizeof(si);//必须是卞结构的大小
//返回的用于子进程的进程信息
PROCESS.INFORMATIONpi;
//利用同样的可执行文件和命令行创建进程,并赋于其子进程的性质
BOOLbCiualvOK=;.CivalvPr
szFilename,//产生这个EXE的应用程序的名称
szCmdLine,//告诉其行为像一个子进程的标志
NULL,//缺省的进程安全性
NULL,//缺省的线程安全性
FALSE,//不继承句柄
CREATE_NEWCOXSOLE,//使用新的控制台
NULL,//新的环境
NULL,//当前目录
&si,//启动信息
&pi);//返回的进程信息
//对手进程释放引用
if(bCreateOK)
::CloseHandle(pi.hFrocess);
::CloseHandle(pi.hThread):
)
intmain(intargc,char*argv[])
//确定进程在列表中的位置
intnClone(O);
if(argc>1)
(
//从第二个参数中提取克隆ID
::sscanf(argv[l],,&nClone);
}
//显示进程位置““
std::cout«wProcessID:"«::GetCurrentProcessId()
«”,CloneID:"«nClone
«std::cndl:
//检查是否有创建子进程的需要
constintc_nCloneMax=25:
if(nClone<c_nCloneMax)
(
//发送新进程的命令行和克隆号
StartClone(++nClone);
}
//在终止之前暂停一下("2秒)
::Sleep(500);
return0;
源程序2
//version项目
#include<windows.h>
#include<iostream>
//利用进程和操作系统的版本信息的简单示例
voidmainO
(
//提取这个进程的ID号
DWORDdwldThis=::GetCurrentProcessldO;
//获得这一进程和报告所需的版本,也可以发送0以便指明这一进程
DWORDdwVcrRcq=::GctProccssVcrsion(dwIdThis);
WORDwMajorReq=(WORD)(dwVerReq>16);
WORDwMinorReq=(WORD)(dwVerReq&Oxffff):
std::cout<<*ProcessID:*<<dwIdThis
«,,requiresOS:«wMajorRcq
«wMinorReq«std::endl;
//设置.版本信息的数据结构,以便保存操作系统的版本信息
OSVERSIONINFOEXosvix;
::ZeroMemory(&osvix,sizeof(osvix));
osvix.dwOSVersionInfoSize=sizeof(osvix);
//提取版本信息和报告
::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&osvix));
std::cout«”RunningonOS:*«osvix.dwMajorVersion«*.*
«osvix.dwMinorVersion<<std::end];
//如果是MTS(Windows2000)系统,则提高其优先权
if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&osvix.dwMajorVersion>=5)
(
//改变优先级
::SetPriorityClass(
::GetCurrentProcessO,/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025产学研创新基地共建合同:电子信息产业技术孵化协议4篇
- 2025至2031年中国计算器行业投资前景及策略咨询研究报告
- 房地产营销策略-深度研究
- 2025至2031年中国挂钩胶带行业投资前景及策略咨询研究报告
- 二零二五年度绿色环保创业项目孵化器合作协议3篇
- 2025至2030年中国男式长袖衬衫数据监测研究报告
- 2025至2030年中国木材横切用锯片数据监测研究报告
- 2025至2030年中国手表套装礼品数据监测研究报告
- 二零二四年矿山石子直销与工程配套服务合同范本2篇
- 2025至2030年中国五层蒸锅数据监测研究报告
- 经颅磁刺激增强定神状态的研究
- 印度与阿拉伯的数学
- 会阴切开伤口裂开的护理查房
- 《钢铁是怎样炼成的》选择题100题(含答案)
- 实验报告·测定鸡蛋壳中碳酸钙的质量分数
- 部编版小学语文五年级下册集体备课教材分析主讲
- 电气设备建筑安装施工图集
- 《工程结构抗震设计》课件 第10章-地下建筑抗震设计
- 公司法务部工作细则(草案)
- 第18课《文言文二则 铁杵成针》(学习任务单)- 四年级语文下册部编版
- 《功能材料概论》期末考试试卷及参考答案2023年12月
评论
0/150
提交评论