:
endl;
}
7、进阶
▪更改当前运行进程的优先级。
3、实验3linux系统访问(必做)
1、实验学时与难度
▪实验估计时间:
90分钟,难度系数:
4。
2、背景知识简介
▪Linux是一个与DOS或Windows完全不同的操作环境,具有它自己独特的风格
▪登录Linux和使用GNOME
•首先回顾Linux登录ID和口令的要求,使用标准图形用户界面GNOME练习登录Linux系统,并修改登录口令
•接着,学习使用GNOME。
GNOME是优秀的Linux桌面平台,也是目前Linux各版本中使用的对国际化支持最好的桌面平台。
使用GNOME需要熟悉面板,练习使用鼠标和键盘管理视窗;还需要练习工作空间的切换和使用工作空间菜单
•然后通过Linux系统的Shell、Linux文件、目录和权限等诸方面来掌握Linux系统管理的有关知识
•最后,退出(或者注销)并返回Linux登录界面
▪Linux系统的Shell
•使用Linux系统时,用户多数时间是通过Shell与系统进行对话的。
Shell是一个接收用户输入命令并将其转换成指令的程序,它是用户与Linux系统之间的界面之一
•Linux系统中可以使用的Shell包括:
▪bash:
BourneAgainShell。
这是Linux系统上最常用的Shell,它合乎POSIX(PortableOperatingSystemInterface)标准且相容于BourneShell,是GNU工程(自由软件基金会)的产物,并且提供了编辑命令行的功能
▪csh:
CShell。
由Berkeley(伯克利大学)开发,与BourneShell在交互式使用上很多是相兼容的,但在程序设计界面上却有很大的不同。
它不提供编辑命令行的功能,但它有类似的功能叫命令历史记录
▪ksh:
KornShell。
在UNIX系统下得到普遍使用,并最早将现代Shell技术(包括取自CShell的部分)引入BourneShell,提供了编辑命令行功能
▪sh:
BourneShell。
是原始的Shell,不提供编辑命令行功能
▪tcsh:
CShell的加强版,提供了编辑命令行的功能
▪zsh:
ZShell。
最新的Shell,与BourneShell兼容,提供编辑命令行的功能
▪Linux系统的文件、目录和权限
•Linux的文件名与DOS有许多相似之处也有其自身的特点
•Linux文件名没有标准格式。
通常文件名中可以包含任何字符(“/”字符除外,“~”字符不能作为文件名的第一个字符),文件名的长度限制在256个字符以内。
Linux的文件名也提供了功能强大且精确的通配符
•文件的权限是Linux系统安全的核心部分,包括
▪Read(可读)权限:
表示可以读取文件内的数据
▪Write(可写)权限:
表示可以改变或删除该文件
▪Execute(可执行)权限:
表示可以把该文件当成程序执行
•除文件权限之外,Linux系统上还有目录和很多其他类型的文件,其中包括特殊文件(设备)、Socket和符号连接等等(平时我们经常使用的Windows设备如软驱、光驱等在Linux中也是一种特殊的文件)
•拥有root口令的用户称为超级用户,超级用户有权访问整个系统,包括建立普通用户帐号、修改密码、安装与卸载软件等一切权限。
超级用户的提示符为“#”,普通用户提示符为“$”
•几个用户在一个系统下共用一个帐号,其个人文件的安全就得不到保障。
建立普通用户帐号后,系统能保证用户是唯一能够存取其个人文件的人。
另一方面,即使没有与人共享一个系统,建立普通用户帐号也是必要的。
因为如果总是以超级用户登录进行操作(超级用户的权限是整个系统),一旦出现误操作(如:
破坏或移动、删除一个重要的系统文件)处理起来也很棘手
▪Linux文件系统
•Linux的文件系统是文件和目录层次的集合。
了解Linux文件系统的结构有助于更好地理解和使用Linux。
在Linux文件系统根目录下,有如下子目录:
bin、dev、etc、home、install、lib、mnt、proc、root、tmp、user、var(不同版本,目录会略有不同)
▪/bin目录该目录中存放许多基本的系统程序。
▪/dev目录该目录中存放的文件是设备驱动程序,用来访问系统设备和资源,如磁盘设备、调制解调器、内存等
3、实验目的和要求
▪登录Linux和熟悉GNOME
•通过登录Linux操作理解以下内容
▪Linux登录ID的要求
▪在GNOME环境下登录进入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
•有关文件的命令:
ls、cat、chown、cp、date、dd、file、find
•其他的命令:
kill、clear、mount、umount、reboot、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的服务通常要向系统用户提供所需功能
▪服务应用程序类型需要ServiceMail()函数,由服务控制管理器(SCM)加以调用。
SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。
其本身负责使应用程序的行为像一个服务。
通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限
▪当令C++编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。
产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。
装载器指令告诉系统从哪里装载机器代码。
另一个装载器指令告诉系统从哪里开始执行进程的主线程。
在进行某些设置后,进入开发者提供的main()、ServiceMain()或WinMain()函数的低级入口点。
机器代码中包括有控制逻辑,它所做的事包括跳转到WindowsAPI函数,进行计算或向磁盘写入数据等
▪Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据
3、实验目的和要求
▪通过对Windows2000进程编程
•进一步熟悉操作系统的基本概念
•进一步熟悉进程的概念
•进一步理解Windows2000进程的编程
•较好地理解Windows2000进程的结构
4、实验环境
▪需要做以下准备
•一台运行Windows2000Professional操作系统的计算机
•计算机中需安装VisualC++6.0专业版或企业版
5、实验内容与步骤
▪参照计算机的任务管理器中的进程栏所列出的内容,列出当前系统所有运行进程及其相关信息(具体内容见源程序)
6、源程序
//proclist项目
#include
#include
#include
//当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法
DWORDGetKernelModePercentage(constFILETIME&ftKernel,
constFILETIME&ftUser)
{
//将FILETIME结构转化为64位整数
ULONGLONGqwKernel=(((ULONGLONG)ftKernel.dwHighDateTime)
<<32)+ftKernel.dwLowDateTime;
ULONGLONGqwUser=(((ULONGLONG)ftUser.dwHighDateTime)
<<32)+ftUser.dwLowDateTime;
//将消耗时间相加,然后计算消耗在内核模式下的时间百分比
ULONGLONGqwTotal=qwKernel+qwUser;
DWORDdwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);
return(dwPct);
}
//以下是将当前运行过程名和消耗在内核模式下的时间百分数都显示出来的应用程序
voidmain()
{
//对当前系统中运行的过程拍取“快照”
HANDLEhSnapshot=:
:
CreateToolhelp32Snapshot(
TH32CS_SNAPPROCESS,//提取当前过程
0);//如果是当前过程,就将其忽略
//初始化过程入口
PROCESSENTRY32pe;
:
:
ZeroMemory(&pe,sizeof(pe));
pe.dwSize=sizeof(pe);
BOOLbMore=:
:
Process32First(hSnapshot,&pe);
while(bMore)
{
//打开用于读取的过程
HANDLEhProcess=:
:
OpenProcess(
PROCESS_QUERY_INFORMATION,//指明要得到信息
FALSE,//不必继承这一句柄
pe.th32ProcessID);//要打开的进程
if(hProcess!
=NULL)
{
//找出进程的时间
FILETIMEftCreation,ftKernelMode,ftUserMode,ftExit;
:
:
GetProcessTimes(