《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書_第1頁
《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書_第2頁
《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書_第3頁
《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書_第4頁
《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書2

一、實(shí)驗(yàn)第01講Windows系統(tǒng)管理與訪問Linux系統(tǒng)2

1、實(shí)驗(yàn)1Windows2000系統(tǒng)管理(必做)2

2、實(shí)驗(yàn)2Windows2000進(jìn)程編程(必做)3

3、實(shí)驗(yàn)3linux系統(tǒng)訪問泌做)4

二、實(shí)驗(yàn)第02講Windows進(jìn)程管理與管理Linux系統(tǒng)進(jìn)程及Linux重定向和管

道7

1、實(shí)驗(yàn)1Windows任務(wù)管理器的進(jìn)程管理(必做)7

2、實(shí)驗(yàn)2Windows2000進(jìn)程編程(必做)8

3、實(shí)驗(yàn)3管理Linux系統(tǒng)進(jìn)程(必做)10

4、實(shí)驗(yàn)4Linux重定向和管道(必做)11

三、實(shí)驗(yàn)第03講Linux文件信息命令、基本文件管理與文件權(quán)限12

1、實(shí)驗(yàn)1Linux文件信息命令和基本文件管理(必做)12

2、實(shí)驗(yàn)2Linux文件權(quán)限(必做)13

四、實(shí)驗(yàn)第04講Windows進(jìn)程與線程編程15

1、實(shí)驗(yàn)1Windows2000進(jìn)程的“一生”(必做)15

2、實(shí)驗(yàn)2Windows2000線程同步(必做選做)19

3、實(shí)驗(yàn)3Windows2000線程間的通訊(選做)23

五、實(shí)驗(yàn)第05講Linux并發(fā)程序設(shè)計(jì)及Linux用戶程序的內(nèi)存管理28

1、實(shí)驗(yàn)1Linux并發(fā)程序設(shè)計(jì)(必做)28

2、實(shí)驗(yàn)2Linux用戶程序的內(nèi)存管理(必做)30

六、實(shí)驗(yàn)第06講Windows存儲管理32

1、實(shí)驗(yàn)1提高Windows2000的內(nèi)存性能(必做)32

2、實(shí)驗(yàn)2Windows2000內(nèi)存結(jié)構(gòu)(必做)35

3、實(shí)驗(yàn)3Windows2000虛擬內(nèi)存(必做)36

七、實(shí)驗(yàn)第07講Linux聲音設(shè)備編程40

1、實(shí)驗(yàn)1Linux聲音設(shè)備編程(必做)40

《計(jì)算機(jī)操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書

課程編號:10302340實(shí)驗(yàn)學(xué)時(shí):8學(xué)時(shí)

先修課程:《計(jì)算機(jī)組成原理》、《高級語言程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》

—、實(shí)驗(yàn)第01講Windows系統(tǒng)管理與訪問Linux系統(tǒng)

1、實(shí)驗(yàn)1Windows2000系統(tǒng)管理(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

?實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘,難度系數(shù):3。

2、背景知識簡介

-Windows2000Professional的“管理工具”中集成了許多系統(tǒng)管理工具,利用這

些工具,管理員可以方便地實(shí)現(xiàn)各種系統(tǒng)維護(hù)和管理功能

'這些工具集中在“控制面板”的“管理工具”選項(xiàng)下,用戶和管理員可以很容易地

對它們操作和使用

■默認(rèn)情況下,只有一些常用工具隨Windows200。系統(tǒng)的安裝而安裝

?服務(wù):啟動和停止由Windows系統(tǒng)提供的各項(xiàng)服務(wù)

?計(jì)算機(jī)管理器:管理磁盤以及使用其他系統(tǒng)工具來管理本地或遠(yuǎn)程計(jì)算機(jī)

?事件查看器:顯示來自于Window和其他程序的監(jiān)視與排錯信息

?數(shù)據(jù)源(ODBC):添加、刪除以及配置ODBC數(shù)據(jù)源和驅(qū)動程序

?性能:顯示系統(tǒng)性能圖衣以及配置數(shù)據(jù)日志和警報(bào)

?組件服務(wù):配置并管理C0M+應(yīng)用程序

-另一些工具則隨系統(tǒng)服務(wù)的安裝而添加到系統(tǒng)中,例如:

?Telnet服務(wù)器管理:查看以及修改Telnet服務(wù)器設(shè)置和連接

?Internet服務(wù)管理器:管理HS、Internet和IntranetWeb站點(diǎn)的W2b服

務(wù)器

?本地安全策略:查看和修改本地安全策略,諸如用戶權(quán)限和審計(jì)策略

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■了解和學(xué)習(xí)Windows系統(tǒng)管理工具及其使用

?熟悉Windows系統(tǒng)工具的內(nèi)容和應(yīng)用

■進(jìn)一步熟悉Windows操作系統(tǒng)的應(yīng)用環(huán)境

4、實(shí)驗(yàn)環(huán)境

■需要準(zhǔn)備一臺運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

■為了幫助用戶管理和監(jiān)視系統(tǒng),Windows2000提供了多種系統(tǒng)管理工具,其中最主

要的有

?計(jì)算機(jī)管理

?事件查看器

?性能監(jiān)視

?服務(wù)

?數(shù)據(jù)源(ODBC)

?管理工具組中,有哪些系統(tǒng)管理工具,基本功能是什么?

'對“系統(tǒng)工具”、“存儲”、“服務(wù)和應(yīng)用程序”等進(jìn)行實(shí)驗(yàn)記錄

實(shí)驗(yàn)記錄

名稱類型描述

2、實(shí)驗(yàn)2Windows2000進(jìn)程編程(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

■實(shí)驗(yàn)估計(jì)時(shí)間:30分鐘,難度系數(shù):3。

2、背景知識簡介

■Windows2000可以識別的應(yīng)用程序包括控制臺應(yīng)用程序、GUI應(yīng)用程序和服務(wù)應(yīng)用

程序

■控制臺應(yīng)用程序匕以創(chuàng)建GUI:GUI應(yīng)用程序可以作為服務(wù)來運(yùn)行;服務(wù)也可以向標(biāo)

準(zhǔn)的輸出流寫入數(shù)據(jù)一一不同類型應(yīng)用程序間的惟一重要區(qū)別是其啟動方法

■Windows2000是以NT的技術(shù)構(gòu)建的,它提供了創(chuàng)建控制臺應(yīng)用程序的能力,使用

戶可以利用標(biāo)準(zhǔn)的C++工具,如iostream庫中的cout和cin對象,來創(chuàng)建小型應(yīng)

用程序。當(dāng)系統(tǒng)運(yùn)仃時(shí),Windows2000的服務(wù)道常要向系統(tǒng)用尸提供所需功能

■服務(wù)應(yīng)用程序類型需要ServiceMailO函數(shù),由服務(wù)控制管理器(SCM)加以調(diào)用。

SCM是操作系統(tǒng)的集成部分,負(fù)責(zé)響應(yīng)系統(tǒng)啟動以開始服務(wù)、指導(dǎo)用戶控制或從另

一個(gè)服務(wù)中來的請求。其本身負(fù)責(zé)使應(yīng)用程序的行為像一個(gè)服務(wù)。通常,服務(wù)登錄

到特殊的LocalSystem賬號下,此賬號具有與開發(fā)人員創(chuàng)建的服務(wù)不同的權(quán)限

'當(dāng)令C++編譯器創(chuàng)建可執(zhí)行程序時(shí),編譯器將源代碼編譯成OBJ文件,然后將其與

標(biāo)準(zhǔn)庫相鏈接。產(chǎn)生的EXE文件是裝載器指令、機(jī)器指令和應(yīng)用程序的數(shù)據(jù)的集合。

裝載器指令告訴系統(tǒng)從哪里裝載機(jī)器代碼。另一個(gè)裝載器指令告訴系統(tǒng)從哪里開始

執(zhí)行進(jìn)程的主線程。在進(jìn)行某些設(shè)置后,進(jìn)入開發(fā)者提供的mainO>Service亞in()

或WinMainO函數(shù)的低級入口點(diǎn)。機(jī)器代碼中包括有控制邏輯,它所做的事包括跳

轉(zhuǎn)到WindowsAPI函數(shù),進(jìn)行計(jì)算或向磁盤寫入數(shù)據(jù)等

'Windows允許開發(fā)人員將大型應(yīng)用程序分為較小的、互相有關(guān)系的服務(wù)模塊,即動

態(tài)鏈接庫(DLL)代碼塊,在其中包含應(yīng)用程序所使用的機(jī)器代碼和應(yīng)用程序的數(shù)據(jù)

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■通過對Windows200()進(jìn)程編程

?進(jìn)一步熟悉操作系統(tǒng)的基本概念

?進(jìn)一步熟悉進(jìn)程的概念

?初步理解Windows2(X)0進(jìn)程的編程

4、實(shí)驗(yàn)環(huán)境

■需要做以下準(zhǔn)備

?一臺運(yùn)行Windows2(X)0Professional操作系統(tǒng)的計(jì)算機(jī)

?計(jì)算機(jī)中需安裝VisualC++6.0專業(yè)版或企業(yè)版

5、實(shí)驗(yàn)內(nèi)容與步驟

■列出當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級(具體內(nèi)容見源程序)

6、源程序

//prochandle項(xiàng)目

#include<windows.h>

#include<iostream>

//確定自己的優(yōu)先權(quán)的喻單應(yīng)用程序

voidmain()

(

//從當(dāng)前過程中提雙句柄

HANDLEhProccssThis=::GctCurrcntProcess():

//請求內(nèi)核提供該過程所屬的優(yōu)先權(quán)類

DWORDdwPriority=::GetPriorityClass(hProcessThis);

//發(fā)出消息,“為用戶描述該類

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、進(jìn)階

■更改當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級。

3、實(shí)驗(yàn)3linux系統(tǒng)訪問(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

?實(shí)驗(yàn)估計(jì)時(shí)間:90分鐘,難度系數(shù):4。

2、背景知識簡介

?Linux是■個(gè)與DOS或Windows完全不同的操作環(huán)境,具有它自己獨(dú)特的風(fēng)格

-登錄Linux和使用GNOME

?首先回顧Linux登錄ID和II令的要求,使用標(biāo)準(zhǔn)圖形用戶界面GNOME練習(xí)

登錄Linux系統(tǒng),并修改登錄口令

?接著,學(xué)習(xí)使用GNOME。GNOME是優(yōu)秀的Linux桌面平臺,也是目前Linux

各版本中使用的對國際化支持最好的桌面平臺。使用GNOME需要熟悉面板,

練習(xí)使用鼠標(biāo)和鍵盤管理視窗;還需要練習(xí)工作空間的切換和使用工作空間

菜單

?然后通過Linux系統(tǒng)的Shell、Linux文件、目錄和權(quán)限等諸方面來掌握Linux

系統(tǒng)管理的有關(guān)知識

?最后,退出(或者注銷)并返回Linux登錄界面

■Linux系統(tǒng)的Shell

?使用Linux系統(tǒng)時(shí),用戶多數(shù)時(shí)間是通過Shell與系統(tǒng)進(jìn)行對話的。Shell

是一個(gè)接收用戶輸入命令并將其轉(zhuǎn)換成指令的程序,它是用戶與Linux系統(tǒng)

之間的界面之一

?Linux系統(tǒng)中可以使用的Shell包括:

■bash:BourneAgainShello這是Linux系統(tǒng)上最常用的Shell,它

合乎POS1X(PortableOperatingSystemInterface)標(biāo)準(zhǔn)且相容

于BourneShell,是GNU工程[自由軟件基金會)的產(chǎn)物,并且提

供了編輯命令行的功能

■esh:CShello由Berkeley(伯克利大學(xué))開發(fā),與BourneShell

在交互式使用上很多是相兼容的,但在程序設(shè)計(jì)界面上卻有很大的

不同。它不提供編輯命令行的功能,但它有類似的功能叫命令歷史

記錄

■ksh:KornShell。在UNIX系統(tǒng)下得到普遍使用,并最早將現(xiàn)代Shell

技術(shù)(包括取自CShell的部分)引入BourneShell,提供了編輯

命令行功能

■sh:BourneShell?是原始的Shell,不提供編輯命令行功能

■tesh:CShell的加強(qiáng)版,提供了編輯命令行的功能

■zsh:ZShello最新的Shell,與BourneShell兼容,提供編輯命

令行的功能

?Linux系統(tǒng)的文件、目錄和權(quán)限

?Linux的文件名與DOS有許多相似之處也有其自身的特點(diǎn)

?Linux文件名沒有標(biāo)準(zhǔn)格式。通常文件名中可以包含任何字符(“/”字符

除外,”字符不能作為文件名的第一個(gè)字符),文件名的長度限制在256

個(gè)字符以內(nèi)。Linux的文件名也提供了功能強(qiáng)大且精確的通配符

?文件的權(quán)限是Linux系統(tǒng)安全的核心部分,包括

?Read(可讀)權(quán)限:表示可以讀取文件內(nèi)的數(shù)據(jù)

?Write(可寫)權(quán)限:表示可以改變或刪除該文件

?Execute(可執(zhí)行)權(quán)限:表示可以把該文件當(dāng)成程序執(zhí)行

-除文件權(quán)限之外,Linux系統(tǒng)上還有目錄和很多其他類型的文件,其中包括

特殊文件(設(shè)備)、Socket和符號連接等等(平時(shí)我們經(jīng)常使用的Windows

設(shè)備如軟驅(qū)、光驅(qū)等在Linux中也是一種特殊的文件)

?擁有root口令的用戶稱為超級用戶,超級用戶有權(quán)訪問整個(gè)系統(tǒng),包括建

立普通用戶帳號、修改密碼、安裝與卸載軟件等一切權(quán)限。超級用戶的提示

符為“#",普通用戶提示符為“$”

?幾個(gè)用戶在一個(gè)系統(tǒng)下共用一個(gè)帳號,其個(gè)人文件的安全就得不到保障。建

立普通用戶帳號后,系統(tǒng)能保證用戶是唯一能夠存取其個(gè)人文件的人。另一

方面,即使沒有與人共享一個(gè)系統(tǒng),建立普通用戶帳號也是必要的。因?yàn)槿?/p>

果總是以超級用戶登錄進(jìn)行操作(超級用戶的權(quán)限是整個(gè)系統(tǒng)),一旦出現(xiàn)

誤操作(如:破壞或移動、刪除一個(gè)重要的系統(tǒng)文件)處理起來也很棘手

■Linux文件系統(tǒng)

?Linux的文件系統(tǒng)是文件和FI錄層次的集合。了解Linux文件系統(tǒng)的結(jié)構(gòu)有

助于更好地理解和使用Linuxo在Linux文件系統(tǒng)根目錄下,有如下子目錄:

bin-,dev,etc、home-install、lib、nnl、proc、roottmp、user,var

(不同版本,目錄會略有不同)

■/bin目錄該目錄中存放許多基本的系統(tǒng)程序。

■/cev目錄該目錄中存放的文件是設(shè)備驅(qū)動程序,用來訪問系統(tǒng)設(shè)

備和資源,如磁盤設(shè)備、調(diào)制解調(diào)器、內(nèi)存等

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■登錄Linux和熟悉GNOME

?通過登錄Linux操作理解以下內(nèi)容

■Linux登錄ID的要求

■在GMOME環(huán)境下登錄進(jìn)入Linux系統(tǒng)

■修改口令

■正確退出或者注銷Linux系統(tǒng)

?通過以下操作熟悉GNOME界面

■回顧GNOME面板圖標(biāo)和菜單

■管理GNOME視窗

■使用LinuxShell

?了解用戶Linux環(huán)境所使用的Shell

?更改用戶系統(tǒng)的Shell

,初步了解bash

■熟悉Linux的文件和目錄

?掌握Linux文件名通配符的使用

?了解Linux系統(tǒng)目錄的特點(diǎn)

■了解Linux文件系統(tǒng)

?Linux文件系統(tǒng)根目錄的子目錄

?/bin目錄中的文件

?/dev目錄中的文件

4、實(shí)驗(yàn)環(huán)境

?需要做以下準(zhǔn)備

?由指導(dǎo)老師分配的Linux登錄用戶ID(如user2)和口令

?一臺運(yùn)行RedHatLinux操作系統(tǒng)并帶有GNOME的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

-登錄規(guī)則和口令規(guī)則

■登錄Linux

■熟悉GNOME

■Linux系統(tǒng)中的Shell

■Linux系統(tǒng)中文件與目錄

,Linux的文件系統(tǒng)

?注銷GNOME

6、進(jìn)階

-Linux的常用命令(可選練習(xí))

?有關(guān)目錄的命令:pwd、cd

,有關(guān)文件的命令:Is、cat、chown、cp、date、dd、file、find

?其他的命令:kill>clear、mount、umountsreboot>passwd、su

二、實(shí)驗(yàn)第02講Windows進(jìn)程管理與管理Linux系統(tǒng)進(jìn)程及

Linux重定向和管道

1、實(shí)驗(yàn)1Windows任務(wù)管理器的進(jìn)程管理(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

?實(shí)驗(yàn)估計(jì)時(shí)間:30分鐘,難度系數(shù):3。

2、背景知識簡介

■Windows2000的任務(wù)管理器提供了用戶計(jì)算機(jī)上正在運(yùn)行的程序和進(jìn)程的相關(guān)信

息,也顯示了最常用的度量進(jìn)程性能的單位

■使用任務(wù)管理器

?可以打開監(jiān)視計(jì)算機(jī)性能的關(guān)鍵指示器,快速查看正在運(yùn)行的程序的狀態(tài),

或者終止已停止響應(yīng)的程序

-也可以使用多個(gè)參數(shù)評估正在運(yùn)行的進(jìn)程的活動,以及查看CPU和內(nèi)存使

用情況的圖形和數(shù)據(jù)

■任務(wù)管理器中

?“應(yīng)用程序”選項(xiàng)卡:顯示正在運(yùn)行程序的狀態(tài),用戶能夠結(jié)束、切換或者

啟動程序

?“進(jìn)程”選項(xiàng)卡:顯示正在運(yùn)行的進(jìn)程信息。例如,可以顯示關(guān)于CPU和

內(nèi)存使用情況、頁面錯誤、句柄計(jì)數(shù)以及許多其他參數(shù)的信息

?“性能”選項(xiàng)卡:顯示計(jì)算機(jī)動態(tài)性能,包括CPU和內(nèi)存使用情況的圖表,

正在運(yùn)行的句柄、線程和進(jìn)程的總數(shù),物理、核心和認(rèn)可的內(nèi)存總數(shù)(KB)等

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

-通過在Windows任務(wù)管理器中對程序進(jìn)程進(jìn)行響應(yīng)的管理操作

'熟悉操作系統(tǒng)進(jìn)程管理的概念

?學(xué)習(xí)觀察操作系統(tǒng)運(yùn)行的動態(tài)性能

4、實(shí)驗(yàn)環(huán)境

■需要準(zhǔn)備一臺運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

?使用任務(wù)管理器終止進(jìn)程

-顯示其他進(jìn)程記數(shù)器

?更改正在運(yùn)行的程序的優(yōu)先級

6、實(shí)驗(yàn)提示

■注意實(shí)驗(yàn)中所使用的是操作系統(tǒng)的哪個(gè)版本

?了解在當(dāng)前機(jī)器中正在運(yùn)行的應(yīng)用程序

-在WindowsXP的任務(wù)管理相中,“進(jìn)程”選項(xiàng)卡增加了一個(gè)“用戶名”欄目,其中

區(qū)分了SYSTEM、NETWORKSERVICE、LOCALSERVICE和用戶的不同進(jìn)程類別

-終止進(jìn)程時(shí)要小心,有可能導(dǎo)致不希望發(fā)生的結(jié)果,包括數(shù)據(jù)丟失和系統(tǒng)不穩(wěn)定等;

終止進(jìn)程將結(jié)束它直接或間接創(chuàng)建的所有子進(jìn)程

2、實(shí)驗(yàn)2Windows2000進(jìn)程編程(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

?實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘,難度系數(shù):4。

2、背景知識簡介

'Windows2000可以識別的應(yīng)用程序包括控制臺應(yīng)用程序、GUI應(yīng)用程序和服務(wù)應(yīng)用

程序

-控制臺應(yīng)用程序可以創(chuàng)建GUI;GUI應(yīng)川程序可以作為服務(wù)來運(yùn)行;服務(wù)也可以向標(biāo)

準(zhǔn)的輸出流寫入數(shù)據(jù)一一不同類型應(yīng)用程序間的惟一重要區(qū)別是其啟動方法

?Windows2000是以NT的技術(shù)構(gòu)建的,它提供了創(chuàng)建控制臺應(yīng)用程序的能力,使用

戶可以利用標(biāo)準(zhǔn)的C++工具,如iostream庫中的cout和cin對象,來創(chuàng)建小型應(yīng)

用程序。當(dāng)系統(tǒng)運(yùn)行時(shí),Windows2000的服務(wù)通常要向系統(tǒng)用戶提供所需功能

■服務(wù)應(yīng)用程序類型需要ServiceMailO函數(shù),由服務(wù)控制管理器(SCM)加以調(diào)用。

SCM是操作系統(tǒng)的集成部分,負(fù)責(zé)響應(yīng)系統(tǒng)啟動以開始服務(wù)、指導(dǎo)用戶控制或從另

一個(gè)服務(wù)中來的請求。其本身負(fù)責(zé)使應(yīng)用程序的行為像一個(gè)服務(wù)。通常,服務(wù)登錄

到特殊的LocalSystem賬號下,此賬號具有與開發(fā)人員創(chuàng)建的服務(wù)不同的權(quán)限

■當(dāng)令C++編譯器創(chuàng)建可執(zhí)行程序時(shí),編譯器將源代碼編譯成OBJ文件,然后將其與

標(biāo)準(zhǔn)庫相鏈接。產(chǎn)生的EXE文件是裝載器指令、機(jī)器指令和應(yīng)用程序的數(shù)據(jù)的集合。

裝載器指令告訴系統(tǒng)從哪里裝載機(jī)器代碼。另一個(gè)裝載器指令告訴系統(tǒng)從哪里開始

執(zhí)行進(jìn)程的主線程。在進(jìn)行某些設(shè)置后,進(jìn)入開發(fā)者提供的mainO.Service址in()

或眄nMain()函數(shù)的低級入口點(diǎn)。機(jī)器代碼中包括有控制邏輯,它所做的事包括跳

轉(zhuǎn)到WindowsAPI函數(shù),進(jìn)行計(jì)算或向磁盤寫入數(shù)據(jù)等

?Windows允許開發(fā)人員將大型應(yīng)用程序分為較小的、互相有關(guān)系的服務(wù)模塊,即動

態(tài)鏈接庫(DLL)代碼塊,在其中包含應(yīng)用程序所使用的機(jī)器代碼和應(yīng)用程序的數(shù)據(jù)

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■通過對Windows2000進(jìn)程編程

?進(jìn)一步熟悉操作系統(tǒng)的基本概念

?進(jìn)一步熟悉進(jìn)程的概念

進(jìn)一步理解Windows2000進(jìn)程的編程

較好地理解Windows2000進(jìn)程的結(jié)構(gòu)

4、實(shí)驗(yàn)環(huán)境

'需要做以下準(zhǔn)備

?一臺運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī)

?計(jì)算機(jī)中需安裝VisualC++6.0專業(yè)版或企業(yè)版

5、實(shí)驗(yàn)內(nèi)容與步驟

?參照計(jì)算機(jī)的任務(wù)管理器中的進(jìn)程欄所列出的內(nèi)容,列出當(dāng)前系統(tǒng)所有運(yùn)行進(jìn)程及

其相關(guān)信息(具體內(nèi)容見源程序)

6、源程序

//proc1ist項(xiàng)目

#include〈windows.h>

#include<tlhelp32.h>

#include<iostream.h>

//當(dāng)在用戶模式機(jī)內(nèi)核模式下都提供所耗時(shí)間時(shí),在內(nèi)核模式下進(jìn)行所耗時(shí)間的64位計(jì)算的利助方

DWORDGetKernelModePercentage(constFILETIME&ftKernel,

constFILETIME&ftUser)

{

//將FILETIME結(jié)構(gòu)轉(zhuǎn)化為64位整數(shù)

Ul.ONGLONGqwKernel=(((ULONGLONG)ftKernel.dwIIighDateTime)

?32)+ftKcrncl.dwLowDatcTimc:

LLONGLONGqwlser=(((ULONGLONG)ftUser.dwHighDateTime)

?32)+ftUser.dwLowDateTime;

//將消耗時(shí)間相加,然后計(jì)算消耗在內(nèi)核模式下的時(shí)間百分比

LLONGLONGqwTotal=qwKernel+qwliser;

DWORDdwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);

return(dwPct);

}

//以下是將當(dāng)前運(yùn)行過程名和消耗在內(nèi)核模式下的時(shí)間百分?jǐn)?shù)都顯示出來的應(yīng)用程序

voidmain()

(

//對當(dāng)前系統(tǒng)中運(yùn)行的過程拍取“快照”

HANDLEhSnapshot=::CreateToolhelp32Snapshot(

TH32CS_SNAPPR0CESS,//提取當(dāng)前過程

0);//如果是當(dāng)前過程,就將其忽略

//初始化過程入口

PR0CESSENTRY32pe:

::ZeroMemory(&pe,sizeof(pe));

pe.dwSize=sizeof(pe);

BOOLbMore=::Process32First(hSnapshot,&pe);

while(bMore)

(

//打開用于讀取的過程

HANDLEhProccss=::0penProccss(

PROCESS_QUERY_INEORMATION,//指明要得到信息

FALSE,//不必繼承這一句柄

pe.th32ProcessID);//要打開的進(jìn)程

if(hProcess!=Nl)LL)

(

//找出進(jìn)程的時(shí)間

FILETIMEftCreation,ftKernelMode,ftUserMode,ftExit;

::GetProcessTimes(

hProcess,//所感興趣的進(jìn)程

&f[Creation,//進(jìn)程的啟動時(shí)間

&ftExit,//結(jié)束時(shí)間(如果有的話)

&flKernelMode,//在為核模式下消耗的時(shí)間

&ftUscrModc);//在用戶模式下消耗的時(shí)間

//計(jì)算內(nèi)核模式消耗的時(shí)間百分比

DWORDdvPctKernel=::GetKernelModePercentage(

ftKernelMode,//在內(nèi)核模式上消耗的時(shí)間

ftUserMode);//在用戶模式下消耗的時(shí)間

//向用戶犀示進(jìn)程的某號信息

cout?*processID:"?pe.th32ProcessID

?”,EXEfile:*?pe.szExeFile

?*,%inKernelmode:*?dwPctKernel?endl:

//消除句柄

::Closelland1c(hProcess);

}

//轉(zhuǎn)向下一個(gè)進(jìn)程

bMorc=::Proccss32Ncxt(hSnapshot,&pe);

}

)

7、進(jìn)階

?對列出的所有的進(jìn)程,可以改變所選進(jìn)程的優(yōu)先級。

3、實(shí)驗(yàn)3管理Linux系統(tǒng)進(jìn)程(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

-實(shí)驗(yàn)估計(jì)時(shí)間:30分鐘,難度系數(shù):4。

2、背景知識簡介

-在本實(shí)驗(yàn)中,我們將使用Linux命令工作,來標(biāo)識和控制系統(tǒng)進(jìn)程。Linux操作系

統(tǒng)使用進(jìn)程管理作業(yè),進(jìn)程由系統(tǒng)或者用戶初始化。用戶在Linux環(huán)境下執(zhí)行的作

業(yè)大多數(shù)都會啟動?個(gè)進(jìn)程。進(jìn)程可以啟動或者派生一個(gè)子進(jìn)程,這樣創(chuàng)建了?個(gè)

進(jìn)程層次結(jié)構(gòu)或者進(jìn)程樹,類似于具有父子關(guān)系的文件系統(tǒng)層次結(jié)構(gòu)

'可以使用ps(進(jìn)程狀態(tài))命令工作,監(jiān)控系統(tǒng)進(jìn)程,使用kill命令終止不想要的

進(jìn)程

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■回顧系統(tǒng)進(jìn)程的概念,加深對Linux/UNIX進(jìn)程管理的理解

■回顧ps命令和選項(xiàng)

■列出當(dāng)前shell中的進(jìn)程

?列出運(yùn)行在系統(tǒng)中的所有進(jìn)程

?根據(jù)命令名搜索特定的進(jìn)程

?確定一個(gè)進(jìn)程,終止它

?使用kill命令終止進(jìn)程

'根據(jù)用戶查找和終止進(jìn)程

-根據(jù)命令名終止近程

4、實(shí)驗(yàn)環(huán)境

■需要做以下準(zhǔn)備

?由指導(dǎo)老師分配的登錄用戶ID(如user2)和口令

?一臺運(yùn)行RedHatLinux操作系統(tǒng)的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

登錄進(jìn)入GNOME

訪問命令行

?回顧系統(tǒng)進(jìn)程概念

■回顧ps命令和信息

?列出系統(tǒng)中運(yùn)行的所有進(jìn)程

-根據(jù)命令名搜索特定的進(jìn)程

■確定一個(gè)要終止的進(jìn)程

?使用kill命令終止一個(gè)進(jìn)程

-按照用戶查找和終止一個(gè)進(jìn)程

4、實(shí)驗(yàn)4Linux重定向和管道(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

?實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘,難度系數(shù):5。

2、背景知識簡介

■本實(shí)驗(yàn)使用高級Linux命令來完成重定向和管道。

?每一個(gè)Linux命令都有一個(gè)源作為標(biāo)準(zhǔn)輸入,一個(gè)目的作為標(biāo)準(zhǔn)輸出

?命令的輸入通常來自鍵盤(盡管它也可以來自文件)

?命令通常輸出到監(jiān)視器或者屏幕上

?Linux計(jì)算環(huán)境使用重定向可以控制命令的I/O.當(dāng)試圖把命令的輸出保存到一個(gè)文

件,以供以后查看的時(shí)候是很有用的

?通過管道,可以取得一個(gè)命令的輸出,把它作為另一個(gè)命令的進(jìn)一步處理的輸入

-有幾個(gè)元字符可用于輸入/輸出重定向符號

?輸出重定向使用右尖括號(》,又稱大于號)

?輸入重定向使用左尖括號(<,又稱小于號)

?出錯輸出重定向使用右尖括號之前有一個(gè)數(shù)字2(如2>)

-重定向命令的格式是:

?CommandRedirection-Symbo1File(textfileordevicefile)

-標(biāo)準(zhǔn)輸出比標(biāo)準(zhǔn)輸入或標(biāo)準(zhǔn)出錯更經(jīng)常被重定向。許多命令,如Is、cat、head和

tail產(chǎn)生標(biāo)準(zhǔn)輸出到屏幕上,常常會希望把這個(gè)輸出重定向到一個(gè)文件中,以便將

來查看、處理或者打印

-通過替換文件名,可以截獲命令的輸出

?最強(qiáng)大的元字符之一是管道符號(I)。管道取得一個(gè)命令的標(biāo)準(zhǔn)輸出,把它作為

標(biāo)準(zhǔn)輸入傳遞給下一個(gè)命令(通常為more命令、Ip(行式打印機(jī))命令或者一個(gè)文

件處理命令,如grep或sort)

?必須在管道的每邊都有一個(gè)命令,命令和管道之間的空格是可選的

-管道命令的格式是:

?command|command

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■通過重定向和管道操作:

?熟悉輸入/輸出(I/O)重定向

?把標(biāo)準(zhǔn)輸出重定向創(chuàng)建一個(gè)文件

?防止使用重定向的時(shí)候覆蓋文件

?把輸出追加到一個(gè)現(xiàn)有的文件中

把一個(gè)命令的輸出導(dǎo)入到另一個(gè)命令中

4、實(shí)驗(yàn)環(huán)境

■需要做以下準(zhǔn)備:

?由指導(dǎo)老師分配的登錄用戶名(如user2)和口令

?一臺運(yùn)行RedHatLinux操作系統(tǒng),帶有GNOME的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

■在本實(shí)驗(yàn)中將會用到下列命令:

?pwd顯示當(dāng)前的工作路徑

?cd改變目錄路徑

?1S顯示指定目錄的內(nèi)容

?more分頁顯示文件的內(nèi)容。顯示文本文件首選

?head截取顯示文件的開頭部分(默認(rèn)為開頭10行:)

?tail截取顯示文件的結(jié)尾部分(默認(rèn)為最后10行)

?cal有關(guān)日歷的命令

?setshell特性的設(shè)置

?echo顯示變量的值

?ps顯示當(dāng)前進(jìn)程

?data顯示或設(shè)置系統(tǒng)日期和時(shí)間

?grep查找文件中有無指定的關(guān)鍵字

?使用重定向標(biāo)準(zhǔn)輸出符號

-使用管道符號

6、實(shí)驗(yàn)提示

-如果對命令的格式不清楚,可以用man命令請求幫助,即:

?manmore

三、實(shí)驗(yàn)第03講Linux文件信息命令、基本文件管理與文件

權(quán)限

1、實(shí)驗(yàn)1Linux文件信息命令和基本文件管理(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

'實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘,難度系數(shù):4。

2、背景知識簡介

?在本實(shí)驗(yàn)中,我們將使用不同的信息命令,來調(diào)查和發(fā)現(xiàn)文件的信息;使用命令來

幫助確定文件類型和創(chuàng)建文件的應(yīng)用;也可以使用幾個(gè)命令來查看文本文件的內(nèi)容

和對它們進(jìn)行比較

■作為基礎(chǔ),使用命令來分析和管理文件及目錄的能力對于進(jìn)一步學(xué)習(xí)Linux操作系

統(tǒng)是非常重要的。Linux特權(quán)用戶和系統(tǒng)管理員必須有使用命令行的工作背景,例

如創(chuàng)建可執(zhí)行的腳本文件等(Linux腳本文件包含著一系列的Linux命令)。許多

操作系統(tǒng)管理和設(shè)備配置作業(yè)需要理解Linux命令,并且在某些情況下,命令行是

僅有的操作方式

?在本實(shí)驗(yàn)中,我們將在命令行下使用文件管理命令工作,介紹文件和目錄命名規(guī)則。

我們將創(chuàng)建一個(gè)簡單的目錄結(jié)構(gòu),然后在那些目錄中創(chuàng)建一個(gè)文件,并練習(xí)創(chuàng)建和

刪除文件和目錄

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■通過本實(shí)驗(yàn)

?使用控制字符執(zhí)行特殊功能

?使用file和strings命令確定文件類型

?使用cat利more命令顯示文本文件的內(nèi)容

?使用head和tai]命令顯示文本文件的部分內(nèi)容

?使用NC命令確定單詞、行和字符數(shù)

?使用diff命令比較2個(gè)文件

?回顧文件和目錄命名約定

?使用touch命令創(chuàng)建新文件

?使川mkdir命令創(chuàng)建新目錄

?使用rm命令刪除文件

?使用rm-r命令刪除目錄

4、實(shí)驗(yàn)環(huán)境

■需要做以下準(zhǔn)備

?由指導(dǎo)老師分配的登錄用戶帳號(如user2)和口令

?一臺運(yùn)行Linux操作系統(tǒng)的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

?文件信息命令

'基本的命令行文件管理

2、實(shí)驗(yàn)2Linux文件權(quán)限(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

?實(shí)驗(yàn)估計(jì)時(shí)間:90分鐘,難度系數(shù):5。

2、背景知識簡介

■作為全面安全策略的一個(gè)主要組成部分,文件系統(tǒng)安全決定了誰可以訪問什么數(shù)據(jù),

以及他們可以如何處理數(shù)據(jù)。系統(tǒng)管理員基于用戶、屬組和權(quán)限建立其文件系統(tǒng)安

全。目錄和文件權(quán)限可以使用帶-I(長列表)選項(xiàng)的Is(列表)命令來確定???/p>

以使用IsT命令確定文件類型、權(quán)限、所有者和屬組。系統(tǒng)將顯示文件和目錄的

權(quán)限,解釋結(jié)果,以評價(jià)不同用戶類別上權(quán)限的作用

'接著,將使用命令行工具程序分析和修改Linux文件系統(tǒng)安全權(quán)限

?文件和目錄權(quán)限可以使用chmod(修改模式)命令修改。在正常情況下,文件或目

錄的默認(rèn)權(quán)限可以滿足大多數(shù)安全的需要??赡苡泻芏啻蜗胍薷奈募蚰夸浀臋?quán)

限。在默認(rèn)情況下,所有創(chuàng)建的文件設(shè)定了允許其他類別的用戶可以讀取這個(gè)文件

的權(quán)限。這意味著所有擁有登錄id的人都可以查看和拷貝文件的內(nèi)容。對于機(jī)密文

件和私人信息,可以修改文件的權(quán)限,防止其他人訪問它

?shell腳本是想要修改其權(quán)限的另一個(gè)例子。當(dāng)創(chuàng)建一個(gè)shell腳本文件(或任何

文件)的時(shí)候,既使是對文件的所有者/創(chuàng)建者,默認(rèn)的權(quán)限不包括執(zhí)行權(quán)限。為了

運(yùn)行shell腳本,必須通過給用戶(所有者)類別添加執(zhí)行權(quán)限來修改權(quán)限

'最后,使用GNOME(公共桌面環(huán)境)文件管理器來分析和修改文件系統(tǒng)權(quán)限。GNOME

文件管理器工具程序提供了一個(gè)文件系統(tǒng)的圖形化界面,可以用來查看和修改文件

和文件夾的權(quán)限

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

?確定文件系統(tǒng)權(quán)限

?顯示文件系統(tǒng)權(quán)限

?解釋權(quán)限

?確定文件的用戶權(quán)限、屬組權(quán)限或其他(公共)權(quán)限

?確定對于一個(gè)可執(zhí)行文件的文件權(quán)限

?使用默認(rèn)權(quán)限創(chuàng)建一個(gè)文件或目錄

-從命令行中修改權(quán)限

?使用文件系統(tǒng)來控制安全訪問

?回顧chmod命令模式

?使用符號模式修改文件或目錄的權(quán)限

?確定八進(jìn)制模式權(quán)限

?使用八進(jìn)制模式修改文件或目錄的權(quán)限

?使用vi編輯器創(chuàng)建一個(gè)腳本文件,并且使它可執(zhí)行

?使用文件管理器修改權(quán)限

?訪問文件管理器,使用文件和目錄權(quán)限工作

.使用文件管理器確定文件或文件夾的權(quán)限

?使用文件管理器修改文件或文件夾的權(quán)限

4、實(shí)驗(yàn)環(huán)境

?需要做以下準(zhǔn)備

?由指導(dǎo)老師分配的登錄用戶帳號(如user2)和口令

?一臺運(yùn)行Linux操作系統(tǒng)的計(jì)算機(jī)

5、實(shí)驗(yàn)內(nèi)容與步驟

-確定文件系統(tǒng)權(quán)限及在命令行中修改權(quán)限

?使用文件管理器修改權(quán)限

6、進(jìn)階

在不同的角色下,安裝相同的軟件(如Oracle),從而體會Linux的文件權(quán)限的重要

性以及如何設(shè)置與操作。

四、實(shí)驗(yàn)第04講Windows進(jìn)程與線程編程

1、實(shí)驗(yàn)1Windows2000進(jìn)程的“一生”(必做)

1、實(shí)驗(yàn)學(xué)時(shí)與難度

■實(shí)驗(yàn)估計(jì)時(shí)間:60分鐘,難度系數(shù):4。

2、背景知識簡介

■Windows所創(chuàng)建的每個(gè)進(jìn)程都從調(diào)用CreateProcess()API函數(shù)開始,該函數(shù)的任

務(wù)是在對象管理器子系統(tǒng)內(nèi)初始化進(jìn)程對象

■每?進(jìn)程都以調(diào)用ExitProcess()或TerminateProcess()API函數(shù)終止。通常應(yīng)

用程序的框架負(fù)責(zé)調(diào)用ExitProcess()函數(shù)。對于C++運(yùn)行庫來說,這一調(diào)用發(fā)

生在應(yīng)用程序的main。函數(shù)返回之后

?創(chuàng)建進(jìn)程

?CreateProcessO調(diào)用的核心參數(shù)是可執(zhí)行文件運(yùn)行時(shí)的文件名及其命令

-正在運(yùn)行的進(jìn)程

?如果一個(gè)進(jìn)程擁有至少一個(gè)執(zhí)行線程,則為正在系統(tǒng)中運(yùn)行的進(jìn)程。道常,

這種進(jìn)程使用主線程來指示它的存在。當(dāng)主線程結(jié)束時(shí),調(diào)用ExitProcess。

API函數(shù),通知系統(tǒng)終止它所擁有的所有正在運(yùn)行、準(zhǔn)備運(yùn)行或正在掛起的

其他線程

?當(dāng)進(jìn)程正在運(yùn)行時(shí),可以通過一系列的API函數(shù)來查看它的許多特性,其中

少數(shù)特性也允許加以修改

■終止進(jìn)程

?所有進(jìn)程都是以調(diào)用ExitProcess?;蛘逿erminateProcess()函數(shù)結(jié)束

的。但最好使用前者而不要使用后者,因?yàn)檫M(jìn)程是在完成了它的所有的關(guān)閉

“職責(zé)”之后以正常的終止方式來調(diào)用前者的。而外部進(jìn)程通常調(diào)用后者即

突然終止進(jìn)程的進(jìn)行,由于關(guān)閉時(shí)的途徑不太正常,有可能引起錯誤的行為

?TerminateProcessOAPI函數(shù)只要打開帶有PROCESS_TERMINATE訪問權(quán)的

進(jìn)程對象,就可以終止進(jìn)程,并向系統(tǒng)返回指定的代碼。這是一種“野蠻”

的終止進(jìn)程的方式,但是有時(shí)卻是需要的

3、實(shí)驗(yàn)?zāi)康暮鸵?/p>

■通過創(chuàng)建進(jìn)程、觀察正在運(yùn)行的進(jìn)程和終止進(jìn)程的程序設(shè)計(jì)和調(diào)試操作,進(jìn)一步熟

悉操作系統(tǒng)的進(jìn)程概念,理解Windows200()進(jìn)程的“一生”

■通過閱讀和分析實(shí)驗(yàn)程序,學(xué)習(xí)創(chuàng)建進(jìn)程、觀察進(jìn)程和終止進(jìn)程的程序設(shè)計(jì)方法

4、實(shí)驗(yàn)環(huán)境

?需要做以下準(zhǔn)備:

?一臺運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī)

?計(jì)算機(jī)中需安裝VisualC++6.0專業(yè)版或企業(yè)版

5、實(shí)驗(yàn)內(nèi)容與步驟

■創(chuàng)建進(jìn)程(具體內(nèi)容見源程序1)

?正在運(yùn)行的進(jìn)程(具體內(nèi)容見源程序2)

■終止進(jìn)程(具體內(nèi)容見源程序3)

6、源程序

源程序1

//proccreate項(xiàng)目

^include〈windows.h>

^include<iostream>

#include<stdio.h>

//創(chuàng)建傳遞過來的進(jìn)程的克隆過程并賦于其ID值

voidStartClone(intnCloneID)

(

//提取用于當(dāng)前可執(zhí)行文件的文件名

TCHARszFilename[MAX_PATH];

::GetModuleFileNameTNULL,szFilename,MAXPATH);

//格式化用于子進(jìn)程的命令行并通知其EXE文件名和克隆TD

TCHAKszCmdLine[MAX_PATH];

::sprintf(szCmdLine,szFilename,nCloneID):

//用于子進(jìn)程的STARTUPINFO結(jié)構(gòu)

STARTUPINFOsi;

::ZeroMemory(reinterpret_cast<void*>(&si),sizeof(si));

si.cb=sizeof(si);//必須是卞結(jié)構(gòu)的大小

//返回的用于子進(jìn)程的進(jìn)程信息

PROCESS.INFORMATIONpi;

//利用同樣的可執(zhí)行文件和命令行創(chuàng)建進(jìn)程,并賦于其子進(jìn)程的性質(zhì)

BOOLbCiualvOK=;.CivalvPr

szFilename,//產(chǎn)生這個(gè)EXE的應(yīng)用程序的名稱

szCmdLine,//告訴其行為像一個(gè)子進(jìn)程的標(biāo)志

NULL,//缺省的進(jìn)程安全性

NULL,//缺省的線程安全性

FALSE,//不繼承句柄

CREATE_NEWCOXSOLE,//使用新的控制臺

NULL,//新的環(huán)境

NULL,//當(dāng)前目錄

&si,//啟動信息

&pi);//返回的進(jìn)程信息

//對手進(jìn)程釋放引用

if(bCreateOK)

::CloseHandle(pi.hFrocess);

::CloseHandle(pi.hThread):

)

intmain(intargc,char*argv[])

//確定進(jìn)程在列表中的位置

intnClone(O);

if(argc>1)

(

//從第二個(gè)參數(shù)中提取克隆ID

::sscanf(argv[l],,&nClone);

}

//顯示進(jìn)程位置““

std::cout?wProcessID:"?::GetCurrentProcessId()

?”,CloneID:"?nClone

?std::cndl:

//檢查是否有創(chuàng)建子進(jìn)程的需要

constintc_nCloneMax=25:

if(nClone<c_nCloneMax)

(

//發(fā)送新進(jìn)程的命令行和克隆號

StartClone(++nClone);

}

//在終止之前暫停一下("2秒)

::Sleep(500);

return0;

源程序2

//version項(xiàng)目

#include<windows.h>

#include<iostream>

//利用進(jìn)程和操作系統(tǒng)的版本信息的簡單示例

voidmainO

(

//提取這個(gè)進(jìn)程的ID號

DWORDdwldThis=::GetCurrentProcessldO;

//獲得這一進(jìn)程和報(bào)告所需的版本,也可以發(fā)送0以便指明這一進(jìn)程

DWORDdwVcrRcq=::GctProccssVcrsion(dwIdThis);

WORDwMajorReq=(WORD)(dwVerReq>16);

WORDwMinorReq=(WORD)(dwVerReq&Oxffff):

std::cout<<*ProcessID:*<<dwIdThis

?,,requiresOS:?wMajorRcq

?wMinorReq?std::endl;

//設(shè)置.版本信息的數(shù)據(jù)結(jié)構(gòu),以便保存操作系統(tǒng)的版本信息

OSVERSIONINFOEXosvix;

::ZeroMemory(&osvix,sizeof(osvix));

osvix.dwOSVersionInfoSize=sizeof(osvix);

//提取版本信息和報(bào)告

::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&osvix));

std::cout?”RunningonOS:*?osvix.dwMajorVersion?*.*

?osvix.dwMinorVersion<<std::end];

//如果是MTS(Windows2000)系統(tǒng),則提高其優(yōu)先權(quán)

if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&osvix.dwMajorVersion>=5)

(

//改變優(yōu)先級

::SetPriorityClass(

::GetCurrentProcessO,/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論