You are on page 1of 40

TRNG I HC S PHM HU KHOA TIN HC ----------------------------BI TP LN NGUYN L H IU HNH TI PHN TCH TT C CC C IM V CU TRC V CHC NNG CA KERNEL MODE TRONG

G WINDOWS 2000

Gio vin hng dn: Th.s.GV: Ph n Hu Sinh vin thc hin Trn Vn Chng Hu, ngy 22 thng 11 nm 2010 MC LC:
I. II.

Lch s ca Windows..3 Kin trc tng ca Windows 2000. 6


1. Ht nhn ca h iu hnh...7 2. Cu trc ca nhn (Kernel mode) h iu hnh Windows 2000.7 II.1 Cc dch v qun l ( system sevrices):....7 II.1.1 I/O manager (qun l vo/ra)......8

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

II.1.2 File system ( file h thng)......11 II.1.3 Object manager ( qun l i tng).....11 II.1.4 Process manager ( qun l tin trnh)....12 II.1.5 Memory manager (qun l b nh )..15 II.1.6 Security manager ( theo di bo mt)16 II.1.7 Cache manager ( qun l b nh cache)17 II.1.8 PnP manager (qun l plug and play)18 II.1.9 Config manager (qun l cu hnh)....20 II.1.10 LPC manager ( qun l LPC).....21 II.1.11 Win32 GDI.....22 II.2 Kernel (nhn)15 II.3 Lp phn cng tru tng (HAL-Hardware Abstruction Layer)

20 3. Cc chc nng chnh ca kernel trong Windows 200029 3.1 3.2 3.3 3.4 3.5 III. Giao tip vi b m chng trnh30 Qun l b nh..30 ng b ho cc a x l.31 Lp lch cho cc thread.32 iu khin cc exception ca phn cng..39

Ti liu tham kho40

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

T VN My tnh cng ngy cng tr thnh mt cng c, mt phng tin khng th thiu ca con ngi, my tnh ngy cng c s dng ph bin c bit l my tnh c nhn (pc). Mt my tnh hot ng phi da trn h iu hnh nht nh. C rt nhiu h iu hnh khc nhau, nhng h iu hnh m a s tt c mi ngi trn th gii thng dng l h iu hnh Windows ca hng Microsoft. H iu hnh l mt phn mm nhm gip ngi s dng giao tip vi my tnh mt cch n gin v hiu qu hn. Chnh v th h iu hnh c hai phn chnh, phn ch dnh cho ngi dng hay c gi l use mode v ch nhn hay cn gi l kernel mode giao tip vi phn cng v s l mt s chc nng quan trng ca h thng. Vy phn ct yu trong mi h iu hnh chnh l kernel mode. gip cc bn hiu r cu trc, thnh phn v nhng chc nng ca kernel mode m c th l kernel mode trong Windows 2000 ti quyt nh chn ti: PHN TCH CC C IM V CU TRC V CHC NNG CA KERNEL MODE TRONG WINDOWS 2000 Windows 2000 ra i nm 1999 l mt h iu hnh c nhiu ngi a chung. N c s dng rng ri trn cc my desktop ln trong vic iu hnh v qun tr mng my tnh, m ra cnh ca hon ton mi dn vo mi trng my phc v v trm lm vic, ng thi gii thiu nhng khi nim qun tr v qun l h thng mang tnh cch mng. I. Lch s ca Windows: S ra i ca cng ty Microsoft nm 1975 gn lin vi tn tui ca Bill Gates, ngi ng u v sng lp chnh cng ty ny. Phin bn DOS u tin ra i vo thng 8 nm 1981, vi tn chnh thc l PC DOS 1.0. Tn gi MS-DOS ch c bit n k t thng 5 nm 1982 (MS-DOS 1.25). Sau , Microsoft ln lt cho ra i cc phin bn tip theo ca MS-DOS song song cng vi PC-DOS.
3

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

MS-DOS 5.0 ra i vo thng 6 nm 1991 bao gm nhiu tnh nng mi nh qun l b nh (MEMMAKER.EXE), trnh son tho vn bn (MS-DOS Editor), ngn ng lp trnh QBASIC tr nn ph bin mt thi trc khi MS-DOS 6.22 ra i vo thng 6 nm 1994. MS-DOS 6.22 cng l phin bn DOS cui cng c chy nh mt h iu hnh c lp (standalone version). Sau khi Windows 95 ra i vo nm 1995, cc phin bn MS-DOS tip theo u c pht hnh i km vi Windows, chng hn nh MS-DOS 7.0 (8/1995) l nn cho Windows 95 khi ng, v MS-DOS 8.0 i km vi Windows ME. y cng l phin bn cui cng ca h iu hnh ny. MS-DOS tht s l mt h iu hnh ph bin trong sut thp nin 80, v u thp nin 90, cho n khi Windows 95 ra i. Cho n nay, trn cc my chy Windows, MS-DOS vn c tch hp vo h thng bi mt s tnh nng u vit ca n. Thng 11/1985, Windows 1.0 ra i vi cc chng trnh tch hp nh: MS-DOS, Executive, Calender, Cardfile, Notepad, Terminal, Calculator, Clock, Control Panel, PIF (Program Information File) Editer, Clipboard, RAMDrive, Windows Write, Window Paint. Windows 1.0 khi u cho dng Windows c giao din ca s n gin. Ma thu nm 1987, Windows 2.0 ra i vi nhng kh nng mi, h tr c nhiu ng dng mi (Excel, Word for Windows, Corel Draw, Page Maker,...). Thng 5/1990, Windows 3.0 ra i vi kh nng ho cao hn. Nm 1992, cc phin bn nng cp Windows 3.1 v Windows 3.11 ca Windows, Windows for Workgroup 3.1 ra i vi cc chc nng ca mng ngang hng v kh nng chia s ti nguyn trong mng. Microsoft Windows l mt mi trng ca s v giao din ngi my theo ng dng (API), nhm b sung thm cc thao tc a nhim cho DOS, v a vo qu trnh in ton theo quy cch IBM mt s tnh nng giao din ngi - my theo ho ca Macintosh. Windows 9x v Windows NT:

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Nm 1994, cng ngh NT( New Technology) xut hin. Cc phin bn u tin (Windows NT 3.1, 3.5, 4.0) thch hp cho cc my ch v cc trm lm vic trn mng. Windows NT 3.1, 3.5 c giao din ging nh Windows for Workgroup 3.1 nhng da trn h thng tp tin mi NTFS mang tnh bo mt cao hn. Nm 1995, Windows 95 l h iu hnh 32 bit u tin ca dng Windows 9x ra i. Dng Windows 9x v Windows NT 4x c cc c im ni bt nh: tnh a ngi dng , cho php mi ngi s dng c mt ti khon (accout) s dng ring c lp; mn hnh desktop. Chng trnh qun l tp tin v th mc Window Explorer mnh m. Tch hp b phn mm Microsoft Office thng lnh th trng phn mm vn phng. Kh nng h tr phn cng v phn mm mnh m. Kh nng h tr mng cc b v Internet mang tnh cch mng cng vi duyt trnh Web Internet Explorer hiu qu... Vi Windows NT, phin bn 32 bit giao din ha ngi - my thng dng ca Microsoft, n to kh nng a nhim thc s cho nhng my tnh c nhn c c s Intel v cc trm cng tc chuyn dng. Phin bn ny ca Windows c th b qua DOS v c kh nng thm nhp tt hn vo b nh h thng so vi Windows 3.1. Microsoft da vo Windows 8x v Windows NT lm nn tng cho cc phin bn Windows sau ny nh: Windows CE, Windows Me, Windows 2000, Windows 2002, Windows XP Windows Server 2003,...K t Windows 95, cc phin bn ca Windows 32 bit lin tc c thay th v Windows tr thnh h iu hnh thng tr vi giao din ngi dng thn thin, d s dng. Windows 2000 v cc ci tin k thut- cng ngh mi: c xy dng trn nn tng bo mt, tnh n nh ca Windows NT, c thm cc c im d s dng v tnh tng thch cao ca Windows 98, Windows 2000 ra i nm 1999 l h iu hnh c nhiu ngi a chung. N c s dng rng ri trn cc my n desktop ln trong vic iu hnh v qun tr mng my tnh. Ci tin k thut v cng ngh mi so vi phin bn Windows NT:
5

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Vic kt hp Windows 98 v Windows NT5 to nn Windows 2000 lm cho Windows 2000 mnh m hn rt nhiu trong ton b lnh vc nh : Cc phng thc xc thc ti khon v bo mt d liu . Kh nng tch hp phn cng v phn mm rng ri. Kh nng lin kt mng my tnh mnh m. Windows 2000 l h iu hnh phc v nhiu mc ch khc nhau vi s h tr tch hp h thng khch/ ch (client/server) v mng ngang hng (pear-to-pear ). N kt hp cht ch cc cng ngh gip h thp chi ph cho ngi s dng v cung cp kh nng nng cp t mt mng nh ln thnh mt mng ln. Windows 2000 h tr nhiu loi ng dng chy trn cc mi trng khc nh MSDOS, POSIX 1.x, OS/2 1.x, Windows 95,98 thng qua kin trc phn tng ca mnh. II. Kin trc tng ca Windows 2000: Kin trc tng ca Windows 2000 bao gm tng ngi s dng (User mode), tng ht nhn (kernel mode) v m hnh b nh o. Cc ng dng User mode khng th truy cp trc tip ti phn cng, ngc li, ton b m chy di tng kernel mode c th truy cp trc tip ti phn cng v b nh. User mode l mi trng cc h thng con, trong cc ng dng khc thng qua cc h thng con ny tch hp vo kernel mode. Hnh sau th hin mt cch ton din cu trc bn trong ca Windows 2000. Windows 2000 c chia thnh 2 thnh phn ring bit: phn ca ngi s dng (user) v phn nhn (kernel).

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Hai lp phn mm mc thp nht , HAL v kernel c vit trong C v trong ngn ng my v c mt phn l ph thuc vo phn cng. Nhng phn trn c vit trn vn trong C v gn nh l c lp hon ton vi phn cng. Nhng chng trnh iu khin c vit trong C, hay trong C ++. 1) Ht nhn ca h iu hnh: Tt c cc thao tc lin quan n process, thc hin bi mt phn ca h iu hnh gi l ht nhn kernel. Kernel ch l mt phn khng ln (v kch thc code) ca h iu hnh nhng n l mt trong s nhng thnh phn c s dng nhiu nht trong h iu hnh. y la cac phn ct loi cua chng trinh thng tru trong b nh, va thc hin hu ht cac nhim vu iu hanh chinh. Do kernel thng lun c np vo b nh, trong khi cc thnh phn khc c th nm b nh ngoi v ch c np vo khi cn.

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

2) Cu trc ca nhn(kernel-mode) h iu hnh Windows 2000 gm c: 2.1

Cc dch v qun l ( system sevrices): Qun l vo/ra cung cp mt khung qun l nhng thit b vo ra v

2.1.1 Qun l vo/ra (I/O manager) cung cp cc dch v chung cho cc thit b vo ra. N cung cp phn cn li ca h thng vi cc thit b vo ra c lp, gi l trnh iu khin thch hp thc hin vo ra vt l. N cng cha tt c cc trnh iu khin vo ra. File h thng (file systems) chnh xc l cc trnh iu khin thit b di s iu khin ca chng trnh qun l vo ra. Mc ch ca h thng vo/ra Windows 2000 l cung cp mt c cu c t chc cc knh truy nhp mt cch c hiu qu cc thit b vo/ra. Windows 2000 c thit k vi mt khung tng qut gip cc thit b mi c th tch hp vo my mt cch d dng. 2.1.1.1 Li gi h giao tip lp trnh ng dng vo/ra .(input/output API Calls) Windows 2000 c hn 100 li gi tch ri, phc v cho s a dng ca cc thit b vo/ra, bao gm c chut, phm, card m thanh, in thoi, b phn iu khin a v.v. C l quan trng nht l h thng ha, v c hng nghn li gi Win32. y chng ta s tip tc, cp n phm tr ca mt vi li gi Win32, mi ci c nhiu li gi. Mt tm lc ngn gn nhng phm tr c cho Trong hnh 11-29. Tn ti li gi Win32 to ra, lm mt hiu lc, v qun l trong Windows. Windows c mt s rng ln nhng kiu v nhng ty chn m c th c ch r. C hng trm chc nng sn c v v t, hn ch t vic ci t mt im n n vic lm cho s hot ng ca cc vng phc tp b chia nh ra. Nhiu li gi c cung cp v cc dng v nhng hnh hnh hc c bn khc nhau.

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

API GROUP DESCRIPTION Window management Create, destroy, and manage windows Menus Create, destroy, and append to menus and menus bars Dialog boxes Pop up a dialog box and collect infomation Painting and drawing Display points, lines, and geometric tigures Text Display text in some font, size, and color Bitmaps and icons Placoment of bitmaps and icons on the screen Colors and palettes Manage the set of colors available The clipboard Pass information from one application to another Input Get information from the mouse and keyboard Figure 11-29. Some categories of Win32 API calls. 2.1.1.2 S thc thi ca I/O Chc nng chnh ca qun l vo/ra l s to ra mt khung m trong thit b vo/ra khc c th hot ng. Cu trc c bn ca khung l thit lp mt th tc dng thit b c lp cho nhng kha cnh nht nh ca thit b vo/ra cng vi s thit lp nhng thit b iu khin c np vo giao tip vi nhng thit b. 2.1.1.3 Nhng b iu khin thit b. chc chn rng nhng b iu khin thit b lm vic tt vi phn cn li ca Windows 2000, Microsoft nh ngha mt m hnh trnh iu khin Window m ngi ta hy vng nhng b iu khin thit b s c tnh tng thch cao. Hn na, n cng cung cp mt b cng c, c thit k gip nhng ngi vit th tc trnh iu khin, b phn iu khin Conformant. Trong mc ny chng ta s tm tt kho st m hnh ny. Trnh iu khin Conformant phi ph hp vi tt c cc yu cu sau y cng nh mt vi th khc: 1. 2. 3. 4. Knh truy nhp nhng yu cu vo/ra, m trong l mt nh dng chun. Cho php cc thit b plug-and-play c th c t ng c thm vo hay di chuyn. Cho php qun l ngun in thch hp. L reentrant s dng trn nhng b a x l..
9

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

5.

Linh ng di chuyn gia Windows 98 v Windows 2000.

Nhng Yu cu vo/ra c chuyn cho nhng trnh iu khin trong cc dng mu ca mt gi c chun ha gi l mt IRP (Gi Yu cu vo/ra). Trnh iu khin phi c kh nng x l cc yu cu vo ra. Mt trnh iu khin trong Windows 2000 c th lm mi cng vic lin quan n nhng g n qun l, nh trnh iu khin my in trong hnh 11-30. Mt khc, trnh iu khin c th cng c xp chng ln, ngha l mt yu cu c th xuyn qua mt cch c trnh t ca trnh iu khin, mi phn ca cng vic. Hai stack cng uc minh ho hnh 11-30.

Mt s dng ph bin ca trnh iu khin ngn xp l ngn cch ngoi qun l bus t chc nng lm vic ca cc thit b iu khin thc t. Qun l bus trn cc bus PCI kh phc tp v c nhiu loi ca nhiu ch v cc cch thc hin ca cc bus v bng vic phn chia cng vic ny t phn chuyn bit v thit b, nhng ngi vit trnh iu khin c gii phng t vic kim sot bus nh th no. H c th ch s dng cc b iu khin chun trong ngn xp ca chng.

10

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Trnh iu khin ngn xp c kh nng chn nhng trnh iu khin lc vo trong ngn xp. Mt trnh iu khin lc thc hin s bin i no trn d liu ang trn knh truyn. Chng hn, Mt trnh iu khin lc c th nn d liu ang trn ng ti a hay m ha d liu ang trn ng ti mng.
2.1.2

File h thng: Ngoi h thng tp tin ch yu NTFS (New Technology File System) ca

mnh cng vi cc h thng tp tin khc c Windows NT h tr, Windows 2000 cn h tr thm hai h thng tp tin FAT32 ca windows 9x v h thng tp tin m ho EFS (Encrypting File System). FAT ( File Allocation Table) l mt bng m h thng lu gi cc thng tin c bn nht ca mi tp tin. Con s 16 v 32 trong FAT16, FAT32 ch s lng cc bit s dng to a ch lu tr d liu, trong khi NTFS s dng n 64 bits. FAT16 ch s dng trong DOS, Win 3.1, Win 95 (phin bn u tin)Win 9x/ME. Cc h iu hnh ny khng th c hay ghi cc tp tin FAT32 hay NTFS. FAT16 ch c th to ra 65535 a ch.Kch thc ln nht ca phn vng partition c th c l 2GB i vi h thng FAT16. FAT32 c dng trong Win95 SE, Win 98, Win Me, Win 2000 v Win XP. Cc h iu hnh ny c th c v ghi cc file FAT16 nu cn c mt partition nh dng FAT16 khc. Vi FAT32, kch thc ti a ca mt partition c th ln ti 2Terabytes, cn NTFS l 16 Exabytes! 2.1.3 Qun l i tng: Trnh qun l i tng qun l tt c cc i tng c bit n trong h iu hnh. Cc i tng bao gm cc tin trnh, cc tuyn on (lung), tp tin, cc th mc, cc tn hiu, thit b vo ra, thi gian, v nhiu th khc. Qun l i tng phn chia 1 khi ca b nh o t nhn a ch rng khi 1 i tng c to ra v a n v danh sch cy khi i tng khng c phn chia. Cng vic ca n l theo di kim tra tt c cc i tng. Mi i tng c qun l bi trnh qun l i tng gm c 2 phn: Phn tiu v phn ni dung. Tiu cha thng tin trng thi ca i tng
11

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

c qun l, trong khi phn ni dung cha d liu i tng v cc dch v c th. Tiu i tng cha d liu nht nh, th hin cc tit, chng hn nh Object Name (gip xc nh cc i tng), Object Directory (th mc i tng), Security Descriptors (quy nh quyn truy cp cho mt i tng), Quota Charges (ti nguyn c i tng s dng), Open handle count (s ln mt s l, b nhn din i tng c m), Open handle list (danh sch cc i tng v cc ti liu tham kho), Reference count ( s lng cc ti liu tham kho trc tip cho i tng), v cc Type (xc inh cu trc ni dung mt i tng) ca i tng. Mt Type i tng cha cc thuc tnh duy nht cho cc loi i tng cng nh phng php thc hin v cc dch v c cung cp bi i tng. i tng qun l bi trnh qun l i tng t nht phi cung cp mt b dch v c xc nh trc: Close (ng mt i tng ang c x l), Duplicate (to v chia s quyn truy cp n i tng), Query object ( thu thp thng tin v cc thuc tnh ca i tng), Query security (m t bo mt ca i tng), Set security (thay i cc truy cp bo mt), v Wait ( ng b ha vi mt hoc nhiu i tng thng qua cc s kin nht nh). Loi i tng cng c mt s thuc tnh thng thng, bao gm tn kiu, quyn truy cp, v thng tin ng b ha. Object name c s dng a ra mt nh danh m t mt i tng, h tr tra cu i tng. i tng qun l duy tr danh sch cc tn giao cho cc i tng ang c qun l. Object directories c s dng phn loi i tng theo tng loi.

2.1.4 Qun l tin trnh: Windows 2000 h tr nhng tin trnh truyn thng, c th lin lc v ng b vi mt ci khc, mi tin trnh cha t nht mt lung, mi lung cha t nht
12

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

mt cu trc, hn na nhng tin trnh c th lm ch nhng cng vic cho mc ch qun l nhng ti nguyn chnh xc. ng thi nhng tin trnh, lung v cu trc cung cp mt cng c thit lp tng qut cho qun l song song v chia s ti nguyn, cng trn n v tin trnh( thit b CPU n) v trn nhng tin trnh a nhim (thit b CPU a nhim). Mt cng vic trong Windows 2000 tp hp ca mt hoc nhiu hn mt tin trnh m c qun l nh mt n v, vi mi tin trnh s c ch tiu v gii hn ti nguyn nht nh, ch tiu bao gm nhng mc nh s ln nht ca nhng tin trnh, v cch s dng b nh ln nht, ngoi ra trc khi x l ton b nhng cng vic c th cng chu s hn ch bo mt trn nhng tin trnh. V th h iu hnh hin hu trong mi a ch tin trnh, nhng bo v t s can thip vo ca b nh qun l n v phn cng. Mt tin trnh c mt ID, mt hoc nhiu hn mt lung, mt danh sch iu khin (qun l trong kernel mode), v mt truy cp phn m thng bo n c bo mt thng tin. y l nhng ni dung nh ngha ban u ca khng gian a ch v nhng to lp u tin cho lung. Mt lung to thnh c s cho vic lp lch ca CPU nhng h iu hnh lun chn mt lung thc thi, khng phi l mt tin trnh. Do , mi lung u c mt trong nhng trng thi(sn sng, thc thi, b kha,). Mt tin trnh c th c t ng to ra bi mt li gi trong Win32 m ch r a ch trong khong thi gian gi km theo khng gian a ch ca tin trnh ti thi im ny n bt u c thc thi. Mi lung c mt ID ca lung, chng c cp t cc khng gian tng t nhau nh cc ID ca tin trnh, v vy mt ID c th khng bao gi c s dng cho c tin trnh v lung ti cng mt thi im. Cc ID ca tin trnh v lung l bi ca bn v vy chng c th c s dng nh danh mc byte vo trong bng kernel, ging nh nhng i tng khc. Trong thi gian bt u c thnh lp hay trong qu trnh hot ng, tin trnh cn c mt s cc ti nguyn nh: CPU, b nh, cc thit b nhp/xut
13

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

hot ng. Sau khi kt thc tin trnh, cc ti nguyn ny s c tr li cho h iu hnh s dng cho cc tin trnh tip theo. Ngoi ra h iu hnh cn phi m bo c vic phn phi thi gian s dng CPU cho mi tin trnh trong mi trng a nhim, gip cc tin trnh trao i thng tin v ng b ho hot ng ca chng. Cc h thng qun l cc tin trnh phi c kh nng thc hin cc tc v bt k cn thit cho cc tin trnh hoc phc v cho cc tin trnh. Cc tc v ny bao gm: To lp mt tin trnh. Hu b mt tin trnh. Tr hon mt tin trnh. Ti kch hot mt tin trnh. Thay i mc u tin ca mt tin trnh. Kho mt tin trnh. nh thc mt tin trnh. Gi mt tin trnh i. Gip mt tin trnh c kh nng lin lc vi mt tin trnh khc. t tn cho mt tin trnh. Chn thm mt tin trnh vo danh sch cc tin trnh c bit ca h thng. Xc nh mc u tin ban u ca tin trnh. To lp khi iu khin tin trnh. Phn pht cc ti nguyn ban u cho tin trnh.

To lp mt tin trnh bao gm cc vic sau:

Mi tin trnh c th to ra mt tin trnh mi. Nu nh vy, tin trnh sn sinh ra tin trnh khc c gi l tin trnh cha, cn tin trnh c sn sinh ra c gi l tin trnh con. Mt tin trnh con c sinh ra t mt tin trnh cha, mt tin trnh cha c th c nhiu tin trnh con, tin trnh cha kt thc khi tin trnh con kt thc.

14

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Hu b mt tin trnh c ngha l hu b n hon ton ra khi h thng. Cc ti nguyn ca tin trnh ny c tr li cho h thng. Vic hu b tin trnh s phc tp hn nu tin trnh sn sinh ra cc tin trnh con khc. Trong Windows 2000 cc tin trnh con s b t ng hu b nu tin trnh cha ca chng b hu, cn mt s h thng khc th cc tin trnh con c tin hnh c lp vi tin trnh cha v vic hu b tin trnh cha khng nh hng g n vic hu b tin trnh con. Mt tin trnh b tr hon s tip tc tin hnh khi chng c ti kch hot. Vic tr hon l mt tc v quan trng v c thi hnh bng nhiu cch tu theo tng h thng. Vic tr hon thng tn ti trong mt khong thi gian ngn. Chng thng c h thng thc hin tm thi xo i cc tin trnh no nhm gim ti trong cc qu trnh np. i vi vic tr hon lu di, ngun ti nguyn tin trnh ang chim gi s c gii phng. Vn quyt nh gii phng ti nguyn ny ph thuc rt nhiu vo tnh trng ca mi ti nguyn. Cn ring b nh s cp s c gii phng ngay khi mt tin trnh c tr hon.
Ti kch hot mt tin trnh l lm cho tin trnh bt u hot ng li t

thi im n b tr hon. Khi c ti kch hot, tin trnh s c np li ng cnh ca n khi n b tr hon. N s c cp y ti nguyn v tip tc thc hin.
Thay i mc u tin ca mt tin trnh thng l b xung gi tr mc

u tin trong khi iu khin ca tin trnh. Thay i mc u tin ca tin trnh lm cho mc s dng CPU ca cc tin trnh c cng bng hn. Mc u tin ca tin trnh s quyt nh n c thc hin trc hay sau mt tin trnh khc. Qun l tin trnh xy dng mt bn thng tin tin trnh trong c cha thng tin v u tin ca tin trnh. Trnh qun l tin trnh cung cp mt c ch da vo u tin ca tin trnh qun l chng, v np a ch ca chng vo cc thanh ghi ca CPU CPU x l. l cha kho ti a chng trnh trong windows 2000. 2.1.5 Qun l b nh:
15

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Qun l b nh l mt trong nhng nhim v quan trng nht ca h iu hnh. tng hiu sut s dng ca CPU, cc h iu hnh hin nay u h tr ch a nhim cho nn nhu cu chia s b nh gia cc tin trnh khc nhau ny sinh. Khi c yu cu, h iu hnh phi phn phi vng nh cho cc tin trnh. Mun c nh vy h iu hnh phi m bo c cc yu t sau: Phng php chuyn i mt a ch tng trng trong chng trnh thnh mt a ch thc trong b nh chnh. Phng php m rng b nh c sn lu tr c nhiu tin trnh ng thi. Phng php hai tin trnh chia s thng tin trong b nh. Phng php ngn chn cc tin trnh xm nhp n vng nh c cp pht cho cc tin trnh khc. B nh qun l bi Windows 2000 s dng k thut phn trang theo kin trc b nh vt l o, Win ny qun l tng ng cc trang nh o vi cc trang nh vt l do n xy dng c c ch qun l cc tin trnh ca cc trang nh khc nhau da vo khng gian a ch ng thi n cng iu khin tng tc gia li gi h thng vi b nh o. Window 2000 c mt h thng b nh o v cng phc tp. N c mt s hm ca Win 32 s dng v mt phn thi hnh cng vi 6 thnh phn ca kernel qun l n. trong on tip theo chng ta c th thy nhng quy tc c s, nhng dng thc giao tip ca Win 32, v vic thc thi. 2.1.6 Qun l bo mt: Khi my tnh cng tr nn gn gi v tin dng vi chng ta hn th vn bo mt cng phi c quan tm hn. Mc ch ca bo mt trong Widows 2000 l qun l, theo di, bo mt v gim st vic thi hnh k thut bo mt phc tp ca windows 2000. Vn bo v my tnh l yu t cn thit. Bo v bn ngoi lin quan n vic bo v my tnh khng b xm nhp v ph hoi, bo v giao din ca ngi s dng. Nhn dng ngi s dng bng use name v password trc khi ngi s
16

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

dng c cho php truy nhp vo h thng. Bo v bn trong lin quan n s m bo cc thao tc, cc tin trnh, cc thnh phn quan trng ca h thng, m bo chc chn h thng my tnh khng b xm phm v bo m tnh ton vn ca cc chng trnh v d liu. Vic bo v cc hot ng ca h thng c th s dng nhiu phng php, th tc khc nhau, c th thc hin bng s qun l ngay qu trnh ci t my tnh, phn quyn truy nhp cho tng i tng c th, thc hin vic phn cp h thng, d liu v ng vi tng cp th quy nh quyn truy cp khc nhau. H iu hnh Windows 2000 c hai ch chnh, l ch ngi dng use mode v ch nhn kernel mode. ng vi mi ch th c cc quyn truy cp nht nh, cc ng dng chy trong ch use mode s khng c truy cp mt s hm trong ch kernel mode. V d nh ng dng ntoskrnl.exe khng th chy c ch Win32 mode.

2.1.7

Qun l b nh cache: Cache thc cht l mt thit b lu tr, cng ging nh cc thit b lu tr

khc trong mt my tnh. Tuy nhin, thit k v tnh nng ca n c mt s c tnh khc ng ch , cache c cc thanh ghi ca CPU truy xut trc tip nn s gim c thi gian truy xut d liu mt cch ng k, nhanh hn c b nh vt l(RAM).

17

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Cng vic ca trnh qun l cache l lu li cc khi file h thng m c s dng gn y trong b nh gim bt thi gian truy nhp cho bt k s truy nhp no sau ny. Tuy nhin khng phi cc file h thng s c lu li ton b. Chnh v vy vic xc nh d liu no cn c lu li trong cache l mt cng vic rt quan trng. Windows 2000 c th lm vic vi tt c cc file h thng ang s dng bao gm NTFS, FAT32,v thm ch c cc file CD-ROM. Cache ca Windows 2000 c t chc bi khi b nh o, khng phi l b nh vt l, nhng chng c nhng phng php truy xut nh b nh vt l. Trnh qun l cache gi cc khi file h thng c s dng gn y vo trong b nh tng tc truy cp chng trong trng hp chng cn c gi li. Cng vic ca n l nh hnh khi no hu nh l chc chn s c gi li v khi no khng. N c th thc hin c nh cu hnh trong Windows 2000 vi nhiu h thng tp tin. Trong trng hp no qun l b nh cache lm vic cho tt c chng.Khi mt khi cn qun l b nh gi h thng tp tin thch hp vi n, tp tin lc c th c lu vo trong a ch ca cc tin trnh. Qun l b nh cache phi tng tc vi qun l b nh o cung cp cc tnh chc chn cn thit. S lng cc trang lu tr trong cache l ng v chng c th thm mt d liu mi vo cache hay loi b n i nu khng cn thit. 2.1.8 Qun l plug and play: Plug and play l mt k thut mi, xut hin ln u tin trong Windows NT. K thut ny cho php mt thit b ngoi vi vo c kt ni vi h thng s t ng cu hnh m khng yu cu khi ng li hay chy cc chng trnh setup. B iu khin cc thit b (thng do h iu hnh cung cp) s xc nh thit b c cm vo cng no t cung cp ti nguyn v trnh iu khin theo yu cu ca thit b . K thut plug and play l mt tiu chun v phn cng mi ni ln trong cng ngh i vi cc b phn phn cng b sung thm trong my tnh, yu cu cc b phn c kh nng t ng nht ho, v p ng yu cu trong mt loi tiu chun. Tiu chun plug and play i hi phn cng ln phn mm u phi
18

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

thc hin nhim v ca mnh. Phn cng l BIOS loi plug and play c kh nng nhn bit c cc b phn my ca h thng ngay khi khi ng my tnh. Sau BIOS s duy tr tc ng v bt k nhng thay i v cu hnh quan trng no m bn c th gy ra, nn n c th chuyn nhng thng tin ny cho h iu hnh, phn mm ny l mt h iu hnh ph hp vi plug and play. Vi chun plug and play bn khng cn phi ci t cc thit b hay quan tm n cc cu ni v cc mch chuyn dip, hoc cc driver tng thch vi phn mm i vi cc loi my in mi nht. Kin trc tin tin ca windows 98 ny c windows 2000 h tr y , trong khi tin nhim windows NT khng h tr. Mt khi c mt thit b c cm vo my tnh, windows 2000 s thng bo v t ng tm driver thch hp ci t thit b vo my. Nh USB cm vo l s dng c ngay. Chng ta tin hnh i vo tm hiu Windows 2000 pht hin plug and play thit b mi nh th no. Plug and play l mt s kt hp ca BIOS, cc thit b phn cng, h iu hnh, trnh iu khin thit b v ti nguyn h thng. Trong phn ny, bn s thy Plug and Play pht hin phn cng trn ACPI v h thng phi ACPI. V d cc bc m Windows 2000 thc hin khi pht hin mt thit b USB mi c thm vo h thng ACPI compliant. Nh vy khi s dng mt h thng my tnh ACPI, Windows 2000 s qun l Plug and Play khng ph thuc vo h thng BIOS.
Khi bn them mt thit b USB mi vo h thng my tnh ca bn,

cc bus USB pht hin cc thnh phn mi v thng bo cho cc trnh iu khin chc nng thay i. Trnh iu khin chc nng thng bo cho Plug and Play Manager c mt thit b mi c them vo h thng.
Cc Plug and Play Manager truy vn cc bus USB xc inh v tr

cc trnh iu khin cho cy thit b hin ti. Mt ngt yu cu gi

19

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

(IRP) c gi t cc Plug and Play Manager xc nh cc thit b hin c trn bus USB. Khi bus USB hon thnh IRP, n c gi tr li thng qua thit bi ngn xp cho Plug and Play Manager, trong xc nh xem mt thit b c them vo hoc g b. Qun l Plug and Play c c trng tin v thnh phn v sau bt u cu hnh n. Qun l Plug and Play tm kim thng qua registry xc nh xem thit b tng ci t trn h thng. Nu thit b cha tng ci t trn h thng th Plug and Play Manager cp nht cc registry vi trng tin v thit b. Qun l Plug and Play tm v ti cc trnh iu khin cho thit b nu c. Qun tr Plug and Play ch nh ti nguyn h thng cn thit cho thit b.
Qun tr Plug and Play s gi mt IRP kch hot thit b.

Nu h thng ca bn khng h tr ACPI-compliant, bn phi v hiu ha Plug and Play h tr h iu hnh trong h thng ca BIOS trc khi ci t Windows 2000. iu ny s cho php cc BIOS qun l cu hnh Plug and Play. Cc bc sau y phc tho cch Plug and Play c cu hnh bi h thng BIOS.
BIOS Plug and Play c c lp vi cc thit b ISA. Card PCI s t

ng c lp v khng cn s gip t BIOS. Mt bn c xy dng xc nh cc ti nguyn thit b khng s dng Plug and Play. BIOS xc nh cc thit b u vo v u ra cn thit trong qu trnh khi ng.
Nu h thng xc nh rng cc thit b khi ng c mt ROM, th

n s khi to n.

20

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Cc cu hnh cn li BIOS s dng cc ti nguyn h thng c sn. Tt c cc thit b c kch hot. Cc Rom thm vo c khi ng. Bt u np b khi ng. 2.1.9 Qun l cu hnh (Config Manager) Config Manager cha thng tin khi ng v mi thit b c ci t trong Windows. n ly danh sch t HKEY_CURRENT_CONFIG v kim tra mi thit b khi khi dng. Nu mt thit b c tm thy khng c trong danh sch ny, n s thng bo thng tin cho h thng ci t. Nu mt thit b trong danh sch khng cn trong h thng, n s c nh du. 2.1.10 Qun l LPC (LPC manager): LPC (giao tip lin tin trnh v khng phi li gi th tc cc b) l mt thng bo tc cao t c s cho c ch giao tip c thc hin trong nhn ca NT. LPC c th c s dng cho giao tip gia hai kiu tin trnh ngi s dng, gia mt tin trnh kiu ngi s dng v mt kiu trnh iu khin kiu nhn hay gia hai trnh iu khin kiu nhn. Mt v d l hai tin trnh kiu ngi s dng lin lc qua LPC. Ging nh CSRSS.exe ang ni chuyn vi SMSS.exe thng qua SmssWinStationApiPort trong khi vic to ra mt phin ng nhp hay bt k tin trnh no ni ti LSASS.exe thng qua LsaAuthenticationPort thay cho l do bo mt v d khc ca mt kiu tin trnh ngi s dng giao tip vi mt trnh iu khin kiu nhn c th l Build KSecDD.sys ni chuyn vi LSASS.exe cho s mt m kho EFS v gii m trong sut thi gian c/ghi ca mt tp tin c vit li thnh mt m. LPC s dng hai c ch khc cho d liu chuyn qua gia tin trnh client v tin trnh server. N s dng b m thng bo LPC (cho d liu c nh hn 304 byte) hay n s dng mt phn b nh dng chung c nh x ti c client khng gian a ch server (vi kch thc d liu hn 304 byte). Ngoi c dng nh giao thc la chn ca nhng li gi th tc t xa gia nhng tin trnh chy trn cng h thng, LPC th cng c s dng khp ni
21

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

trong h thng v d nh cho giao tip ca ng dng Win32 Vi CSRSS.exe, s an ton trong giao tip ca mn hnh vi SASS, giao tip ca WinLogon vi LSASS v.v... LPC gim st vic thi hnh m hnh giao tip ng b gia nhng tin trnh client v tin trnh server. Vista phn i vic s dng LPC ang s dng mt c ch mi gi l giao tip khng ng b cc lin tin trnh cc b (ALPC). ALPC c mt li th c hu thng qua LPC trong tt c li gi t client n server l khng ng b, client khng cn ti block/wait cho trnh phc v tr li ti mt message. Trong Vista, nhng li gi ng dng k tha ti LPC APIs th t ng c gi mt ln na ti ALPC APIs mi hn. Vi Windows 2000: Kh nng message-passing trong Windows 2000 c gi l LPC (local procedure call). LPC trong Windows 2000 cho php giao tip gia 2 tin trnh trn cng my. - Mi client gi 1 subsystem cn c 1 knh giao tip (connection port hay communication port) c cung cp bi port object. - S dng 3 k thut chuyn message qua cng: - dng message queue ca cng: message 256 byte - dng b nh chia s: dung lng message ln hn - dng k thut callback: khi client/server khng th p ng lp tc 2.1.11 Win32 GDI (giao din thit b ho): Giao din thit b ha Win32 thc hin x l cc m un cha ng li gi h thng (nhng khng phi l tt c). N bt u vi khng gian ngi s dng nhng li c di chuyn n khng gian nhn trong NT 4.0 hon thin s thc thi. Giao din thit b ha iu khin hnh nh cho mn hnh v my in. N cung cp li gi h thng ti chng trnh ngi s dng cho php c vit trn mn hnh v my in trong mt phm vi thit b c lp.N cng gm vic qun l window v cc b phn iu khin hin th. Trc khi ti NT 4.0, n cng l khng gian ngi s dng nhng s thc thi tht bi, cho nn Microsoft
22

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

chuyn n vo trong nhn (kernel) v lm tng tc ca n ln. Chng c cp n v nh gi nh trong hnh 11-7 nhng khng phi l tt c. V d nh, Win32 v m un thit b giao din ha l rng hn phn cn li ca vic phi hp thc hin.
2.2

Kernel - Nhn: Pha trn lp phn cng l lp cha ci m Microsoft gi l "kernel"cng

nh cc trnh iu khin thit b, microkernel l mt thnh phn trong kernel mode. Microkernel c nhim v hng u l cung cp ng b ha gia nhiu b vi s l, iu phi, phn phi lung v ngt, ly thng tin t Registry khi h thng khi ngcc trnh qun l b nh, file h thng, v cc thnh phn quan trng khc c tp trung trong khng gian kernel v c chy trong kernel mode t ngay khi khi ng.

Trong phn ny chng ta s tm hiu thut ng " kernel " v gi ton b cc m chy trong nhn h iu hnh l h iu hnh. Mt phn ca nhn l thng xuyn c tr trong b nh chnh. Bng vic iu chnh quyn u tin ca n, n c
23

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

th trnh khi cc ngt vo/ra. Mc d nhn l mt phn c bit quan trng nhng n ch yu c vit bng ngn ng lp trnh C. Mc ch ca nhn l lm cho phn cn li ca h iu hnh hon ton c lp vi phn cng, v theo cch h iu hnh s mang tnh linh ng cao (kh nng lm vic vi nhiu phn cng khc nhau). N truy nhp phn cng qua HAL v xy dng da vo cc dch v mc thp ca HAL xy dng nhng quan im tru tng ha mc cao. Chng hn, HAL c gi kt hp cc dch v th tc ngt vi cc ngt, v t nhng quyn u tin ca chng, nhng khng quan trng ngoi phm vi ny. Nhn, trong s tng phn, cung cp mt c ch hon chnh cho bng trang. V vy khi n c lm, lung trc ang chy c lu tr trong cc bng ca b nh. Sau mt lung mi c thit lp c th bt u chy. Nhn dng lung v lm cc kho chuyn i cn thit chy n. T ci nhn tng quan v phn cn li ca h iu hnh, chuyn i lung l t ng c x l bi cc tng thp hn m khng c bt k phn cng vic no ca chng v trong mt phng thc ling ng. Bn thn thut ton lp lch s c m t sau trong chng ny khi chng ta n nhng tin trnh v nhng lung. Ngoi vic cung cp mt cch nhn tru tng mc cao ca phn cng v x l nhng s chuyn i lung, nhn cng c chc nng nh kha cung cp nhng h tr hai mc ca nhng i tng: nhng i tng iu khin v nhng i tng gi i. Nhng i tng ny khng phi l nhng i tng m cc tin trnh ngi s dng c quyn truy nhp ti, nhng l nhng i tng bn trong trn m vic xy dng v thc thi nhng i tng ngi s dng. Nhng i tng iu khin l nhng i tng kim sot h thng, bao gm nhng i tng tin trnh s khai, ngt cc i tng, v hai i tng c phn hi l c gi l DPC V APC. Mt DPC (tr hon s gi th tc) i tng c s dng tch ra khi tng phn thi gian then cht trng ca mt dch v th tc ngt t phn then cht, c kt hp vi thit b ngt vo/ra v vy chng

24

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

khng c ghi ln v cho ghp vo phn cng, nhng lu tr mt khi ln ca s x l v sau ny. i tng iu khin nhn khc l APC (li gi th tc khng ng b). APCs cng ging nh s loi tr DPCs m chng thc hin trong ng cnh ca mt tin trnh c bit. Khi x l nhn kha, n khng quan trng nhng ng cnh DPC c chy bn trong bi v tt c s xy ra l m kha s c kim tra v chc chn t vo mt b m nhn. Tuy nhin, nu mt ngt yu cu sao chp mt b m t khng gian nhn n mt b m trong vng a ch ca qu trnh ngi s dng no ( e.g., Nh n c th hon thnh mt vic c t hin i), chng sao chp cc th tc cn thit chy ng cnh ca thit b thu. Vn cnh ca thit b thu c yu cu v vy bng trang s cha ng c hai b m nhn v b m ngi s dng (mi tin trnh cha ng ton b nhn trong vng a ch ca chng). Cc loi khc ca nhn l cc trnh iu phi cc i tng . Bao gm nhng c hiu, mutcxes, nhng s kin, thi gian ch, v cc i tng khc m nhng lung c th tip tc i. L do m chng phi c x l trong nhn l chng c lin h mt thit vi nhau vi lp lch lung, m l mt thao tc trong nhn. Ging nh mt phn d tr nh, mutexes c gi cho nhng " mutants " trong m bi v chng c i hi thc thi OS/ 2 ng ngha ca vic khng t ng m kha khi mt lung ang gi b bin mt, nhng th m ngi thit k Windows 2000 c xem xt mt cch k lng. (OS/ 2 h iu hnh c cung cp trn PC/2 ca IBM). Bt c khi no 1 chng trnh chy user-mode thc hin I/O, cp pht hay hy b b nh, khi to tin trnh/lung hay tng tc vi ti nguyn ton cc... n phi gi 1 hay nhiu cc dch v nm trong kernel-mode. Trong Windows 2000, cc dch v ny b che du khi lp trnh vin qua API ca cc h thng con mi trng, ch c th hin t module kernel-mode ntoskrnl.exe ti cc ng dng user-mode qua 1 thnh phn h thng duy nht, l ntdll.dll.

25

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Trong cc H thng con mi trng c Windows 2000 h tr (Win32, OS/2 ), Win32 c coi l ngn ng quc gia. H thng con mi trng h iu hnh Win32 c chia thnh cc tin trnh server (CSRSS.EXE - Client/Server Runtime SubSystem) v cc client-side DLL, c kt ni ti cc ng dng s dng Win32 API. Nng ct ca Win32 API c chia thnh 3 loi: ca s v thng ip, ha, v cc dch v c s. Cc API ca s v thng ip, bao gm CreateWindow() v SendMessage(), c xut ti ng dng Win32 qua th vin USER32.DLL. BitBlt() v LineTo() l cc hm ha Win32 v c cung cp trong GDI32.DLL. Cui cng, cc dch v c s bao gm cc hm API thc hin I/O, qun l tin trnh v lung, qun l b nh, ng b ha c thc hin qua KERNEL32.DLL.Khi ng dng Win32 gi 1 hm API, iu khin c truyn bn trong khng gian a ch ca n ti 1 trong nhng client-side DLL. DLL ny, sau khi kim tra cc thng tin trn tin trnh gi s thc hin 1 trong cc la chn sau y: Tr v ngay lp tc. Gi 1 thng ip ti Win32 server yu cu gip . Kch hot Native API thc hin nhim v. La chn u tin him khi xy ra, ch khi DLL c th thc hin nhim v m khng cn ti cc dch v h thng ca h iu hnh, 1 v d l hm GetCurrentProcess(). La chn th 2 cng him khi xy ra. Ch khi no server c th nhn bit v cng tham gia thc thi nhim v. V d nh trong trng hp CreateProcess(), c xut bi KERNEL32, Win32 server s gi cc hm Native API to 1 tin trnh thc s v chun b khng gian a ch cho client. La chn cui cng thng xuyn xy ra nht. Trc tin ta hy xem xt trng hp cc API USER32 v GDI32, sau mi ti ti vic s dng Native API ca KERNEL32. Trong cc phin bn trc Windows NT 4.0, cc hm ca s v ha nm trong Win32 server (CSRSS.EXE). iu ny c ngha rng bt c khi no 1 ng dng s dng cc hm ny, s xut hin thng ip gi ti server.
26

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

T Windows 2000, cc hm ca s v ha c chuyn vo 1 thnh phn kernel-mode l WIN32K.SYS. Thay v gi thng ip ti server, cc clientside DLL s gi trc tip ti kernel, tit kim c chi ph gi thng ip v chuyn i ng cnh tin trnh. iu ny ci thin ng k hiu sut ha ca Windows 2000 (1 bng chng l tr chi Pinball). Nh vy, c th ni cc hm GDI v USER l Native API th hai ca Windows 2000.

M hnh trn m t dng iu khin t ng dng Win32 gi 1 hm Win32 API (CreateFile()), qua KERNEL32.dll, qua NTDLL.dll v vo kernel-mode, ti iu khin c chuyn ti dch v h thng CreateFile. Cc Ntdll.dll cung cp cho kernel32.dll rt nhiu cc hm tin ch, c bn c th chia ra lm 2 tp hp: Cc hm runtime c chy hon ton ti user-mode. Tp hp ny bao gm c 1 s phn ca C runtime library chun. Cc kernel function wrapper thc hin chuyn i t user-mode ti kernel-mode v ngc li. Cc hm tp th 2 cho php cc ng dng user-mode gi cc dch v h thng ti kernel-mode. Tht th v, vy vic ny c thc hin nh th no?
27

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Nu bn disassemble cc hm bt u bng Nt hay Zw trong ntdll.dll, VD NtQuerySystemInformation() nh M dn 1, bn s thy n rt ngn gn. Ch n gin l 1 li gi ngt. Thc ra cng khng hn nh vy. Vi nhng ai tng quen thuc vi lp trnh DOS, hu ht cc dch v h thng ca DOS c gi bng cch gn m dch v cho thanh ghi AH, v tham s d liu b sung (nu c) cho thanh ghi DX, theo sau l ch th gi ngt INT 21h. M thc hin trong NtQuerySystemInformation() hay cc hm h Nt*() cng tng t nh vy: thanh ghi EAX cha m dch v, EDX tr ti tham s u tin trong stack ca hm. M dn 1 M thc thi ca ntdll.NtQuerySystemInformation() NtQuerySystemInformation: mov eax, 97h lea edx, [esp+4] int 2Eh ret 10h Ch th u tin np cho thanh ghi EAX ch s ca hm Native API - mi hm Native API c 1 ch s duy nht. Ch th th hai np cho thanh ghi EDX con tr ti danh sch tham s ca hm. Tip theo l 1 ch th gi ngt mm - trn h x86, ngt ny l 2Eh. Ch th cui cng y tt c tham s ra khi stack ca hm gi. Chng ta hy xem xt k ch th gi ngt 2Eh. Nu nh trong DOS, ngt 21h ch n gin bt CPU nhy ti 1 a ch trong Bng Vector ngt (IVT) th trong h iu hnh c bo v nh Windows 2000, cc ngt c thc hin c hi khc 1 cht. IVT c thay bng Bng B m t ngt (IDT) cha cc b m t b nh ca cc a ch ch ch khng n thun l cc con tr. Trong trng hp ngt 2Eh, IDT cung cp 1 cng chuyn i CPU t user-mode ti kernel-mode trc khi nhy ti a ch ch, v chuyn v user-mode khi li gi kt thc. a ch ch ca cng INT 2Eh nm trong module ntoskrnl.exe c tn l KiSystemService().

28

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Nhim v ca KiSystemService() l kim tra ch s ca hm Native API, nu hp l, n s chuyn iu khin ti 1 dch v h thng tng ng trong kernelmode bng cch: convert ch s hm Native API thnh ch s ca 1 mng bn trong kernel - gi l KiSystemServiceTable. Mi ch mc trong mng ny li bao gm 1 con tr ti hm kernel tng ng v s tham s ca hm (vi cc hm Win32 Native API, ch s li tr ti 1 mng th 2 ca dch v h thng. Cc con tr trong mng th hai ny tham chiu ti cc hm nm trong WIN32K.SYS). KiSystemService() sau s ly cc tham s trong user-mode stack (tr ti bi thanh ghi EDX trong x86) y vo kernel-mode stack, ri kch hot hm kernel tng ng (cc hm ny thng c cung cp bi cc h thng con Executive, nm hon ton trong kernel-mode, nh Process Manager, Virtual Memory Manager hay I/O Manager). Thc ra, c ch ny c phc tp hn 1 cht. Khi tr v, iu khin s c tr li hm user-mode bng hm KiServiceExit() cng nm trong ntoskrnl.exe. Mt iu cn lu l cc tham s ca h hm Nt*() cng ging nh ca h Zw*() m mt s c cng b r trong Windows 2000 DDK. Theo Bng ch gii Kernel Mode ca Windows 2000 (Windows 2000s Kernel Mode Glossary), h hm Nt*() s thm tra cc tham s ri thit lp tng minh h truy nhp trc thnh USER mode, cn h hm Zw*() th khng. V th NT Drivers s gi cc hm Zw*(), cn cc H thng con mi trng h iu hnh s gi cc hm Nt*(), do chng c gi t user-mode. 2.3 Lp phn cng tru tng (HAL) L phn thp nht ca h iu hnh,n che y phn cng ca my tnh, nhn ca h iu hnh (Kernel) c th c ghi vo giao din phn cng o, thay v vo phn cng my tnh thc s. Phn ln nhn ca h iu hnh s dng HAL truy cp cc ti nguyn my tnh. iu ny c ngha l nhn ca h iu hnh v tt c cc thnh phn khc ph thuc vo nhn c th d dng xut (Ported) thng qua Microsoft n cc nn ( Platform ) phn cng khc.

29

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Trong h iu hnh ch c HAL l ph thuc vo phn cng v n trc tip lm vic vi phn cng. khi c mt s thay i no th ch c cc m ph thuc phn cng trong HAL thay i nn s n gin hn nhiu cho vic nng cp, ci tin tnh tng thch ca h iu hnh vi nhiu my tnh khc nhau. Dch v trong HAL lin quan ti chipset, bng mch chnh v nhng bin i t my tnh ny ti my tnh khc. Dch v HAL bao gm cc hm truy cp ti thit b, knh c lp a ch thit b, iu khin ngt v thit lp cu hnh thit b, truy cp b nh trc tip, kim sot thi gian thc, ng b mch ghp ni vi h vo/ra c s, cu hnh b nh CMOS.HAL cung cp lp tru tng ha. Lp tru tng ha phn cng cung cp ba th tc cho b phn iu khin ghi vo nhng thanh ghi v ba th tc khc c chng ra uc =READ_PORT _UCHAR(port); us =READ_PORT_USHORT(port); ul =READ_PORT_ULONG(port); WRITE_PORT_UCHAR(port, uc); WRITE_PORT_USHORT(port. WRITE_PORT_ULONG(port, ul);

B iu khin thng cn ti truy xut r rng thit b vo ra cho nhng mc ch khc nhau. Ti mc phn cng, mt thit b c mt a ch trn mt tuyn no . T my tnh hin i thng c nhiu tuyn (ISA, PCI, SCSI, USB, 1394,..) n c th xy ra m hai hoc nhiu hn hai thit b c a ch bus ging nhau, ch mt vi ng l cn phn bit chng. Lp tru tng ha phn cng cung cp mt dch v cho thit b nhn ra bi nh x bus lin quan ti b iu khin a ch ln h thng ln a ch logic. a ch logic ny gip h iu hnh iu khin cho chng trnh ngi s dng truy cp ti tp tin v h thng ti nguyn mt cch chnh xc. Thnh phn ca nhn i khi cn ng b ti mt mc rt thp,c bit s ngn nga tnh trng tranh chp trong h thng a chng. HAL cung cp mt vi phng php qun l s ng b ha ny, nh Round robin. Cui cng, sau khi h thng c khi ng, HAL bn v BIOS v kim tra b nh cu hnh CMOS, nu thng thng, tm ra cc tuyn v thit b I/O h thng cha v nh cu hnh ca chng nh th no thng tin ny l sau khi t
30

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

vo trong thanh ghi thnh phn h thng khc c th nhn n trn tr phi c th hiu BIOS hoc b nh cu hnh lm vic nh th no Ti thi im ci t h thng, mt tp tin thch hp trong Windows 2000 CD_ROM c la chn v sao chp ti th mc h thng\ winnt\system32 trn a cng nh hal.dll. Tt c nhng khi ng tip theo u s dng tp tin ny ca HAL khi ng. G b tp tin ny s lm h thng khng c kh nng khi ng. Mc d HAL c hiu qu ph hp cho a truyn thng ng dng, nhng n vn cha phc v nhanh. Vi l do ny, Microsoft a ra mt gi phn mm hng ti DirectX cc yu t thm vo HAL l nhng th tc cho php mt s tin trnh trong kernel mode c th trc tip truy cp phn cng, nhm tng tc ca cc tin trinh kernel.

3) Cc chc nng chnh ca kernel trong Windows 2000 3.1 Giao tip vi b m chng trnh: 3.2 Qun l b nh:

31

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

3.2.1 Dch v qun l v cp pht b nh Trnh qun l b nh cung cp mt b cc dch v h thng nh phn phi b nh o, chia s b nh gia cc qu trnh, cc tp tin h thng vo b nh, v kha cc trang o trong b nh. Hu ht cc dch v ny c thc hin thng qua cc hm API Win32. Trnh qun l b nh cng cung cp mt s dch v, chng hn nh cp pht v thu hi b nh vt l, kha cc trang trong b nh vt l phc v cho vic truy cp b nh trc tip (DMA) ch kernel mode cng nh iu khin thit b.System Memory Pools 3.2.2 Kha b nh Cc trang trong b nh c th b kha theo hai cch: Trnh iu khin thit b c th gi cc hm trong kernel mode. MmProbeAndLockPages,MmLockPagableCodeSection, MmLockPagableDataSection, hoc MmLockPagableSectionByHandle. Cc trang b kha bng cch s dng c ch ny vn cn trong b nh cho n khi n c m thc s. ng dng Win32 c th gi hm VirtualLock kha cc trang trong qu trnh lm vic ca mnh. Kha cc trang trong qu trnh lm vic c th lm suy gim hiu sut bi v phi mt thi gian np li khi chy, trnh qun l b nh u tin phi c trong tt c cc trang b kha trc khi cc tin trnh thc hin c s dng chng. Trnh qun l b nh c th quyt nh trang no c lu li trong b nh vt l. S trang mt tin trnh c th kha khng th vt qu kch thc ti thiu ca n lm vic, khong tm trang.

3.2.3 Chia s b nh ng vi yu cu ca mt h iu hnh hin i, Windows 2000 cung cp mt c ch chia s b nh gia cc tin trnh v cc trnh iu khin h thng.
32

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

B nh chia s c th c hiu l b nh c hin th vi nhiu hn mt tin. V d, nu hai qu trnh s dng cng mt DLL, n s ti cc trang cn tham kho ca DLL vo b nh vt l ch mt ln v chia s nhng trang vi cc tin trnh cn tham kho DLL, nh minh ha trong Hnh 7-1. Mi tin trnh duy tr ring cho mnh mt b nh ca n, cc phn c lu trong b nh ny s khng b sa i, v cc tin trnh ny c th c dung lm ti nguyn chia s vi cc tin trnh khc, cc tin trnh ny thng l cc tin trnh trong kernel mode, mt s t WIN 32.

Hnh 7-1 Chia s b nh gia cc qu trnh

3.2.4 Bo v b nh Windows 2000 cung cp chc nng bo v b nh quy nh quyn truy cp trnh tnh trng truy cp bt hp l lm nh hng n s hot ng ca h thng. Windows 2000 cung cp chc nng bo v bng ba cch chnh.
33

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

u tin, tt c cc cu trc d liu ton h thng v b nh c th c truy cp bi ch kernel mode cn ch use mode th khng. Nu chng ta c gng truy cp th h iu hnh s to ra mt thng bo li vi phm truy cp.

Ngc li, Microsoft Windows 95, Microsoft Windows 98, v Microsoft Windows Millennium Edition c mt s trang trong khng gian a ch h thng c ghi t ch ngi dng, do cho php mt s ng dng chy trn , iu ny rt nguy him v c th gy ra li cho h thng. Th hai, tng tin trnh c mt khng gian a ch private, bo v khi s truy cp bi cc tin trnh khc. Ngoi l, nu khng gian a ch ca tin trnh cha cc trang chia s vi cc tin trnh khc th cc trang ny c th c truy cp. Windows 2000 c th m bo rng cc thread ang chy trong mt tin trnh nu khng ph hp th khng c truy cp mt trang thuc mt tin trnh khc. Th ba, ngoi vic o ha bo v a ch vt l trnh qun l b nh cn cho php dch-n, tt c cc b vi x l c h tr bi Windows 2000 cung cp mt s hnh thc kim sot b nh bo v phn cng (nh c / ghi, ch c, vv), s chnh xc chi tit v bo v nh vy thay i ty theo b x l. V d, cc trang m trong khng gian a ch ca mt tin trnh c nh du ch c v do c bo v t thay i ca cc dch v ngi s dng. 3.3 Lp lch cho cc lung (theard): 3.3.1 Lung trong Windows 2000: Windows 2000 ci t Win32 API. Win32 API l mt API ch yu cho h h iu hnh Windows (Windows 95/98/NT v Windows 2000).
34

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

ng dng Windows chy nh mt tin trnh ring r v mi tin trnh c th cha mt hay nhiu lung, Windows 2000 dng nh x mt - mt t lung cp ngi dng n lung nhn. Tuy nhin, Windows 2000 cng cung cp mt th vin (fiber library) h tr nh x nhiu nhiu. Mi lung thuc v mt tin trnh c th truy xut mt khng gian a ch o ca tin trnh. Nhng thnh phn thng thng ca mt lung gm:
ID ca lung l nh danh duy nht lung

Tp thanh ghi biu din trng thi ca b x l Ngn xp ngi dng khi lung ang chy ch ngi dng. Tng t, mi lung cng c mt ngn xp nhn c dng khi lung ang chy trong ch nhn Mt vng lu tr ring c dng bi nhiu th vin thi gian thc v th vin lin kt ng (DLLs). 1 Tp thanh ghi, ngn xp v vng lu tr ring c xem nh ng cnh ca lung v c c t kin trc ti phn cng m h iu hnh chy trn . Cu trc d liu ch yu ca lung gm: RTHREAD (executive thread block-khi lung thc thi). KTHREAD (kernel thread-khi lung nhn) TEB (thread environment block-khi mi trng lung) 3.3.2 Lp lch cho cc lung: Windows 2000 khng c mt lung lp lch trung tm. Thay vo , khi mt lung khng th chy c bt k mt chng trnh no, lung s i vo trong ch nhn-kernel mode v t chy chnh chng trnh lp lch thy c s chuyn i cc lung. Tip theo, nhng iu kin sau y l nguyn nhn chnh chy lung thc hin m b lp lch. 1. Nhng khi lung trn cng mt c hiu, mutex event 110 v.v.

35

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

2. N bo hiu mt i tng ( E.g., lm n trn mt c hiu). 3. Phn kt thc ca lung ang chy. Trong trng hp mt, lung sn sng v ang chy trong ch nhn, n cha ng cc thao tc ca ng dng ang thc thi, trong qu trnh chy n phi tin hnh lu li ng cnh ca mnh, v n thi im thch hp th n np ng cnh cha lung k tip v bt u chy chng. Trong trng hp hai, lung cng ang chy trong nhn. Tuy nhin, sau khi bo hiu cho mt vi i tng no , n c yu cu chy b lp lch ca n gii phng cc lung c u tin cao hn. Khi c mt lung c u tin cao hn lung ang chy th xy ra s chuyn i lung, lung ang chy lu li ng cnh ca n v np ng cnh ca lung c u tin cao hn vo v bt u chy n. Trong trng hp 3, t ra yu cu cho kernel mode, ti thi im no th lung cn chy m lp lch lung. Yu cu ny cn ph thuc vo cc lung ang i trong ngn xp ca kernel v u tin ca mi lung. By gi chng ta xt n thut ton lp lch thc t. Win32 C khuynh hng cung cp hai mc ni cho nhng tin trnh m gy nh hng ti vic lp lch cho lung. Cc mc ni ny phn ln quyt nh gii thut, u tin, c mt li gi thit lp quyn u tin m t quyn u tin ca tt c cc lung trong cc tin trnh ca i tng c gi. Cc gi tr c cho php l: thi gian thc cao, thi gian trn mc bnh thng, thi gian bnh thng, thi gian di bnh thng, v thi gian khng nhn ri. Th hai, c mt li gi thit lp quyn u tin tng i m quyn u tin c lin quan n mt vi lung no c so snh vi cc lung khc trong tin trnh ca n, cc gi tr c cho php l : Thi gian quyt nh, thi gian ln nht, thi gian trn mc thng thng, thi gian thng thng, thi gian di mc thng thng, thi gian thp nht v thi gian nhn ri. Vi su lp tin trnh v by lp lung, mt lung c th c bt k mt trong 42 s kt hp trn. y l u vo cho thut ton lp lch.
36

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

S dng cc quyn u tin trong lp lch, h thng duy tr mt mng c 32 mc , c nh s t 0 n 31. S trong bng 11.18 xc nh quyn u tin c s ca lung. Ngoi ra, mi lung c mt quyn u tin hin thi, m c th cao hn quyn u tin c s

Hnh 11.18

37

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

Mi mng ghi vo u ca mt danh sch cc lung sn sng ti mi quyn u tin tng ng. Thut ton lp lch c bn gm c tm kim mng t quyn u tin th 31 v ti quyn u tin 0. Cc mc u tin c chia ra lm nhiu khong. Nh trn hnh 11.19 ta c th thy cc mc u tin c phn ra lm hai lp. Khi c nhiu lung sn sng ti mc u tin cao nht, chng s dng gii thut Round robin. B lp lch khng la chn tin trnh u tin v sau la chn mt lung trong tin trnh . N ch lm vic vi cc lung. Thm ch n khng bit lung no thuc v tin trnh no. Trn bn thn mt b a x l, mi CPU chng trnh s dng mng quyn u tin. Mt kha quay trn c s dng m bo rng quyn u tin trong mng c thay i thng xuyn, trnh hin tng c quyn. 3.4 iu khin cc exception ca phn cng (x l ngt): Mt trong nhng chc nng quan trng nht trong kernel l x l ngt. Trong cc h iu hnh a nhim thng xuyn phi s dng cc li gi x l ngt. Do x l ngt ng vai tr quan trng trong vic chia s ti nguyn h thng v p ng kp thi cc yu cu ca ngi dng. Khi kernel x l ngt, n cm tt c cc ngt khc v ch cho php tip tc x l ngt sau khi x l xong ngt hin thi. Trong trng hp c lin tc nhiu ngt cng c gi th c th xut hin tnh hung cc ngt b chn trong thi gian tng i ln, c ngha l h thng khng phn ng kp thi vi nhiu s kin cng mt lc. Do kernel thng c thit k sao cho n c th thc hin vic tin x l cc cng vic n mc ti thiu sau mi chuyn vic x l tip theo cho process h thng tng ng v c th cho php x l cc ngt tip theo. Theo cc ngt b cm trong khong thi gian nh hn do tc phn ng ca h thng tng ng k Cho php (enable) v cm (diasable) ngt Xm nhp kernel thng c thc hin thng qua ngt, khi kernel phn ng vi ngt no th n cm cc ngt khc. Sau khi phn tch n chuyn vic x l cho mt system process chuyn lm vic vi loi ngt . Trong mt s h
38

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

thng mi ngt u c x l bi c h iu hnh cng knh, do cc ngt thng b cm trong mt thi gian tng i di nhng v nguyn tc HH li n gin hn. Cch ny thng p dng cho cc my nh, lm vic vi t process. Cn vi cc h thng phc tp, thng c mt phn nh ca h iu hnh (kernel) chuyn x l ngt cho php nng cao cc ch s ca c h thng. III. KT LUN Qua qu trnh nghin cu, ti tm hiu c cu trc, thnh phn v chc nng ca kernel mode. Bit c cu trc ca h iu hnh gm hai phn chnh, Kernel mode v Use mode. Windows 2000 l mt bc ci tin v cng ngh, trong Windows 2000 s dng ng dng Plug and Play, mt bc ci tin trong cng ngh ca Microsoft. Cc hm API ca Windows 2000 vn cn nhiu b mt cha c Microsoft cng b. Cc ng dng trong ch Use mode lin h vi cc hm trong Kernel mode thng qua hm ntdll.dll. Lp phn cng tru tng HAL l trung gian ca nhn v phn cng my tnh, chnh lp HAL ny lm cho h iu hnh c th tng thch trn nhiu my c cu hnh phn cng khc nhau. Hng pht trin ca ti l nghin cu cc phng php vit cc Driver kernel mode ng dng trong h iu hnh.

39

SVTH: TRN VN CHNG TIN3A

GVHD: PH N HU

IV. Ti liu tham kho: 1) Modern Operating Systems (2Nd) Prentice Hall. 2) Windows 2000 ci t v qun tr - Phm Th Bo v Phng Lan
3) http://en.wikipedia.org/wiki/Windows_2000.

4) Gio trnh h iu hnh nng cao Trn Hnh Nhi, Hong Kim i hc khoa hc t nhin ,1999 5) Programming the Microsoft Windows Driver Model - Copyright 1999 by Walter Oney
6) Inside Microsoft Windows 2000, third edition David A.Solomon, and

Mark E.Russinovich.

40

You might also like