Вы находитесь на странице: 1из 417

. .

2-

,


300

Cj^nriTEP'
- -
-- - - -
- -

2007

32.973-018.27
681.3.066(075)
68

:
. . , ,
-
,
. . , , ,
-

68

. .
: . 2- . - .: , 2007.
416 .: .
ISBN 978-5-94723-632-3
,
. ,
,
,
,
.

,

.
32.973-018.27
681.3.066(075)

.
.
, , , . ,
,
, .

ISBN 978-5-94723-632-3

, 2007

8
1-
11
2.
50
3- .... 72
4.
180x86

101
5- -

130
6.
163
7.

209
8.
247
9.
278
10.

311
1 1 . Windows
361

396

406

409

1 .

2.





3.

,


MS DOS


'

8
10

11
11
16
18
25
27
30
34
36
42
46
49

50
52
53
55
63
65
71

72
73
76
76
78
82
82
85


, -


-

86
87
93
97
99

4.
i80x86

101

180x86
32- 180x86








32- 180x86


5. -

-
-
, -
-
-



Windows NT/2000/XP
-


6.

FAT

DOS
VFAT FAT32
HPFS
NTFS
NTFS
NTFS
NTFS

101
103
105
105
110
113
115
115
118
122
122
124
128

130
131
134
136
138
143
145
145
146
155
156
161
161
162

163
163
166
167
170
171
177
188
189
190
194

7.

207
207
208

209


209

215
.... 215

224

229


230

236

240

242

242

244

246

8. ... 247



CR
CR SR
SR







9.















247
249
250
251
252
254
254
259
263
263
264
267
277

278
279
279
280
281
283
285
286
287
287
289
292
293
294
294
295
295
296
296



API
!
API
POSIX
API

10.

UNIX



Linux
FreeBSD
QNX
QNX

OS/2 Warp IBM


OS/2 Warp 4.5

1 1 . Windows
Windows 9




Windows NT/2000/XP





298
299
300
302
304
307
310

311
312
312
314
320
323
329
336
339
340
342
345
351
354
357
359
360

361
363
363
365
369
373
378
378
382
387
390
394
394
395

396
406
409


,
.

, ,
.
,
, ,
, ,
, . ,
.

,
. ,

()
.

, . ,
,
.
, , -,
- ,
.

,
. .
, (,
,
), ,
.
-

, ,
.
.

.

.

. , ,
,
,
,
, ,
. , ,
,
.
.
654600

.
, 220100 , , ,
220200 ,
220300 ~ , 220400 - .
, ,
.
, ,
,
,
, , ,
. ,
, ,
,
.
,
.
, ,
220100 -
.

,
.
,
2001

10

.
,
.
,
. ,
, , ,
. ,
.
: , ,
, , ,
, .
,
. , ,
.


, ,
comp@piter.com ( , ).
!
web-
http://www.piter.com.

1.
, , .
.
. ,
- ,
,
, , ,
, , ,
, . ,
;

.
,
.
.



.
, .

, ,
.
, ,
- .
50- .
.
,
^ , ? ,
.
. , -

12

1.

,
, ,
. .
,
. .
, ^ .
, , ,
, .
-
, . ,

( ^ ).
-
.
READ WRITE .
,
,
( ), ,
,
.
{) ,
- .

.
,
,
-.
,
- ,
.
.
- . -
, .

.
50-
, . - ( . coder )
, ()
, ,
, -.
,
.
. (
) ,
.

1[3

1.

,
() (
, , ).
2. ,
,
().
, .

, .
,
,
.
3.

, -
. , ,
.

.
()
,

,

.
.
, . ,

, 60-
.

. 70-
,
. , (interface)
,
.
, ()
^ ,
, , ,
.

14

1.

, ,

.
.
( ) , ,
, .
()
, (, ).
, , (, )
, (
, , , ,
.), .
.
,
.
( ,
).
.
.

(),
.
, (Ap
plication Program Interface, API) .
-.
() /
(),
.
,
,
.

.

.

.
,
,
.
(
).

15

,
^ , (login^)
, , , .
,
, , ( ,
)
(), , , .

( ).
,
.
.

. ,
.
, , . 1.1.

pBl^^ws

. 1 . 1 .

, ,
, Windows 9 Microsoft,
, .
70- log in, .
, log on, .

16

1.


,
,
,
. .
,

, .
, ,
.
,

,

. ,
,
, . ,
, , ,
,
()
.
, ,

. ( , )
,

.
;
, .
, ,
(API). ,
, ,
, API
, , . ,

. ()
,
. ,
, , ,
(native).
( )
.
,
, , .

17

,
. , DOS.
, -
, ,
DOS, ( )
MS DOS, PC DOS, Windows 9, Windows 2000, OS/2, Linux.
,
, ( )
. 32-
, ,
. , OS/2 Warp,
^ ,
:
, 32- ;
16- , OS/2 ;
16- ,
MS DOS PC DOS;
16- , Windows 3.x;
Windows 3.x
.
Windows
, Win32API, 16-
Windows 3.x, 16- DOS-, 16-
OS/2.
:
. , , , Linux
(
shell), Norton Commander, Midnight
Commander, , X-Window
KDE, Gnome .
, Linux

, ( ).
( )
, Linux,
, , Windows NT.
,
. , Windows,
Linux; Linux
Windows, Windows-
. , ,
,
, .

18

1.

,

, ,

( ),
.
50- ,
,
.

.
- .
( )
,
.

.
1. ( )
(
, 4).
2. .
, ,
( , , , 180x86
CS IP [1,8, 48]),
, (,
) .
3. .

,
. , 32-
Intel ( i80386
Pentium IV) ,


(
32- i80x86 4).
4. ,
2 .

.
5. , .
, -

IS!

3,
.
6. , (,
4).
7. .
1-3 , 4-7 .
. 1.2 ,

. (
, ) ,
.

,
, .
.

, .
, :
;
;
.

.
,
.


, (system stack).
, ,
: ( )
().
,
, :
;
( -);
;
;
.
,
.
:

20

1.

(
,
);
;
;
;
(, ,
).

,

,

(
.

. 1.2.

,
.
, .

. ,
, -

21

, , .
-
,
. ,
, ,
.
, .
,
,
. ,

, , . ,
,
.
, ,
, .
,
. , ,
(,
, ). . 1.3
()
. ,
,

-
. , ,
.



<


. 1.3.


.
: , () -

22

1.

. (
)
,
;
; .
.
,
,
.
, ( ) .
,
.
(
) .
,
.
.


.
,
.

. ,
.
.
, , , LCFS (Last Come
First Served , ),

.
.
,

1-4 6-7. ,
.
,
.

,
( ), ,
.
(, ),
,
.

23

,
, ,
, (
. . ,
- ,
.
,
, ,
. . 1.2 ,
.
,
, 2, ,
, , , .
,
() ,

.
( LCFS)
.
, (
LCFS)
.

.
,

,
.

,
. ,
, ()
. , , ,
.

. ,
(.
2). , ,
(
)
, .
. 1.4.
,
.

24

1.

,
.
, LCFS.

5
Q.

Q.


7|

/1

,


,

()


,

,

I I

rN



(

)

!
, |
!


. 1.4.

,
, '} ,
, ,
,

. , .

/ . ,

,
( )
, .

25



, , .
4,
180x86.



^ , ,
.
,
, [47].
, ^ (task),
, . ,
,
.
,
. .

.

, .
7,
.
: -,
, -, ,
.
()
, .
- ,
, , . -
,
,
, ,
, .
. ,
, ,
, .
, 70- ,
,
.
, .
.

26

1.


. , , ,
, .
,
, ,
. ,
, .
,
( ) (
), (. 1.5).

. 1.5.

, ,
- [22, 53].
.

,
.
,

. , ,
, ,
, .

.
,
,
.
, -
. ,
, .

27


()
.
,
-.
, , .

,


,
( , )
-, ( ,
) (. 1.6).
(,
, ) ()
, .

CPU

; ;' ;\

<

',.

^'"s"'^"':'"'. '"'-'''!'/''')

'^{';,^Ji"'i'.;bS/

- / i V , _;.

<

CPU
'''rki'^''"';?'.''**'",. ' " ' ; ' ' "

><

CPU

. 1.6.

,
-

28

1.

^ , .
( ).
,
, .
,
,
(
^
).
60- XX
, , ,
.
, ,
.
, ,
,
,
, ,
. ,
,
, ,

.
,


.
, .
.
, ,
.
.
,
.

. , ,
, ,
, , ,
. .
,
.
, - PC-DOS 7.0,
. -

29

. ,
,

.
.
, ,
.
, ,
.

,
, .
( . 2).
,
, ,
, (time
sharing). 60-70 ,
.
, ().
,
.
, ,
, ,
.
.
- ( , -,
. .) () ^ (su
pervisor) (,
) . ,
, . ,
, .
,
(. ),
. ( )
: ( ) . ,
-
, ,
, . . ,
.
() .
, -, ,
, . .
.

30

1.

(),
, :

;

;

( ).
,
, , , ,
, ().
,
.

( )
, ,
-
. , ,
, .
, ^
, ,
, ,
, .
,
.
, , .
,
.
,
.
,
:
,
[46].


,
,
- . ,
,
.

31^

, :
. ,
,
, .
, ,
.
,
.
,

. . ,
(. 9)

,
.
QNX
Quantum Software Systems. UNIX-,
,
,
.
, ( )
,
- , ,
.
,
.
. , ,
. ,
,
.
. ,
.
, .


,
, ,
( ) .
, ,
(
/ ). ,
:
(
,
);

32

1.

,
;
, ,
, -.
, ,
,
, -
.
, ,
- . (,
)
, ()
. .
() .

() . ,
(, , ,
, ,
.). ,

. , ()
, . 1.7,
.

(
)

(
)
. 1.7.


,
,
, , -

33

, -,
.
.
.

.
().
, ,
,
(
, ).
(
, ).
(
, , , ,
).
} (
).
.
,
,
.
, ,
( - ),
. ,
.

.
,
.

( ), .
, , , ,
.
:

. ,
,

.
,
.

34

1.



.
( )
- ( ,
),
, (

. ,
- 3),
,
.
( -
, ,
. .)
.
, , ,
.
.



,
.
,
( , ).
, , :
(Process Identifier, PID);
( ) ,
;
,
(
);
, ,
( , , - . .);
, (
), ,
, ;
, /
( ,
- .);
( ) ;

35

( ,
, );

,
, ( -
,
).
, ,
, ()

. (
)
, .
, ,
. ,
- ,
- .

(
, ),
)^ .
, OS/2,

,
CONFIG.SYS. , THREADS=1024
CONFIG.SYS ,
1024 , .
Windows NT/2000/XP
. ,
.
. , Windows NT/2000/XP,
Ctrl+Shift+Esc, .

.
()
. . .

, , , (
) .
(
)^ .

- .

36

1.


.
( ),
.

,
, .

(- , ) ,
. , ,
, .
,
.

( )
. , , Intel 80x86
(. 4) TR (Task Register),

(Task State Segment, TSS),
[1,8, 48].

, .



, - . ,
. ,
-1^ -
, , .
,

. , ,
.
-
.
, .
. ,
, .
, .
,
.
, .

. .

37

.


.
:
, ,
. ,

. ,

.
,

,
.
^,
.
,
,
, , -
. ,
.

.
.
.
.
, ,
. ;
, ,
. ,
.
(thin) , , ,
\ , (threads).
(process), ,
:
,
, , . . ,
, ,
, .

, .
(thread) (stream).

38

1.

, ^
.
.
.

, .
. ,
, ,
.
^

, .
, ,
.
, ,
( , ,
),
(, ),
().
,
, ,
, ,
, ,
, .
, .
() ,
,
, -
.
,
.
( ,
, )
, (, ).
, ,
,
.
,
. , ,

,
,
,
, .

39


. ,
. ,
OS/2 ,
, . 90-
,

. Windows,
, ,
SQL Server, Oracle. Word, Excel, Internet Explorer
,
.
.
, ,

. , ^ , . -
,
.
. , ,
, ,
.
,
.

, ,
,
, . , ,
,
,
- .

. , , , .
( ,
), .
(
), .
, ,
.
,
. ,
. ,
.

40

1.

, .
, , -, , -
, .
,
njrrcM .

. , ,
, ,
, , . .
? , ,
, -, .
, , ,
,
, ,
. , ,
,
,
, ,
.

( ), )

, .
(task).
, ().


, .
,
,
, ,
. 132
(Task State Segment, TSS). A
,
TSS. , ,
32-
i80x86 4,
. ,
, TSS, ,
, , , .
(
. , -
3) ,
, ( )
.

41^

, CONFIG.SYS,
OS/2 ,
, , THREADS=1024
, .
, .
,
,
, .
- .
, .
. ,
, .

, [28].

,
. ,
, ,
.
,
-.
, . ,
, -
.
, ( ) .
,
, ,
,
.
,
.
. ,
, .
,
.
, .
,
.
,
.
, . (.
, 3)
,
, .

42

1.

,
.
,
. , ,
.

.
,
, ,
- .
,
(. 7).
, , .
.
.
.
, .
,
, .




(. . 1.5). ,
\ .
().
(. 2).
.
(
, , ,
), (
).
. ,

.
.
, ,
,
.
.
.

43

.
3.
,
. (,
), ^
. .

. ,
.
, , ,
, .
,
. ,
, .
, ,
, ( ) ,
, ,
, , .
. , ,
.
, , ,
, .
, ,
,
. ,
,
.
. ,
,

.
,
( ) .
,
, :
, , .
,
. , , ,
. ,
, .
, ,
.

44

1.

,
,
.
, ,
, ^ .

.

, ( ,
),
. ,
,
( ).
, (
, , )
,
.
. 1.8.
. ,
,
. , ,
.
,
.

. 1.8.

,
. ,
,
,
, ,
.
, ^

( ).
,
(
re-enterable).

45


,
. :
.

,
(. 1.9).

()


,
.

>

. 1.9.


, ()

, (
) .
.
.
.
,
()
. , ()

46

1.


. .
,

,
,
. ,
, ,
, ,
.
, ,
, ,
,
:
. -
, \

(re-entrance). ,
, ,
, .
,
- .
,
, ,
. ,

() . ,
( ).
, ,
.
, , .
,
. ,
.
, 9 10.


().
,
,
.
. 5.

47

,
. ,
, ,
. , ,
: ,
, , ,
( ).
, .
, ,
,
, . .

.
,
.
,
() .
, , ,
MS DOS. ,
,
.
(, -
) ( )
. , ,
,
, .
,
, ,
,
( ;
,
).
, , ,
.
-
. ,
, ,
, .
,
.
,
.

() -

48

1.

.
, .
,
. ,
.
Linux.
Windows .
( )
.
,
,
. ,
.
.
()

, .
(
),
. ,
,
(
,

), ,
,
.
( ) .

,
.
.

, .
QNX.

().
,
QNX, Windows
95/98 Linux. Windows ,
()
, Linux , ,
,
( ).

49


1. ?
.
2. ? ?
?
3. ? ,
?
4. ?
? ?
5. ; ,
.
6.
, ?
7.
? ,
, ?
8. ,
.
9. , , ?
?
10. ^ ? ,
, ()?
?
11. .
?
?
12. ,
? ?
13.
? ?
14. ?
,
?

2.

(process) (thread) .
, , .

. ,

. ,
.
(task), .
,
.
.
, , ,
,
.

, .
,
( ) ,
.
, .
, ,
. ,
Windows 9x/NT/2000/XP ,
. Windows NT Windows 95 Microsoft

(, ). ,
, .


-

51^

.


.
,
, .
, , ,
ia32, 32- Intel.
,
,
4. ,

( ) .
(Task State Segment, TSS), , ,

, .
,
, (
, , ).
, ia32.
,
, ,
.
, ,
:
;
;
, .

, .

. .
.
, , .
,
.

.

, .

, -
, . -

52

2.


.
, ,
,
, .
, ,
, .

,
.



,
( ).
,
. ,
, .
,
, . ,
, ,
. ,
. ,
,
, ,
,
.
,
, ,
, (-
), , ,
. ,
,
.
.

,

. .
(
) ,
, .

53

^. ,
,
.
, :
30 100 ,
( ;
).
, ,
,
, .

. ,
, -,
,
.
, ,
, .
, ,
.



, , ,
, ,
. , ,
,
.
.
,
, .
,
. , , :
( )
, ;
;
( )
, .
, .
, , (scheduler).
, - ,
, ,
. , .

54

2.

, ,
, , ,
().

IBM- , Windows
Microsoft.
.
, ,
,
. , , ,
. Windows
, ,
,
, Windows
.
Windows NT/2000
.
, -

, Windows NT/2000.
, , ,
,
. ,
. ,

(foreground task),
.
, -
.

, ,
- .
, Windows 2000 ,
,

.
,

, . Windows
NT 4.0

.
( ), . ,
-

55

. ,
, ,
-. ,
,
,
,
. ,
. ,
(

) .
,
Windows ,
( ) .
,
, -, ,
.
,
,
,
.


,
,
(). ,
, .

,
. . ,
, , ,
.
, :
.
^
.

.
. 2.1.
:
, , ;
{
).

56

2.

0)

>s

(D
Z
S

Q.

Q.

S
2

ffl

>s
2
z

5
. 2 . 1 .


,

.
,

, .
.
( )
.
FCFS (First Come First Served
, ),
, . , -

57

( - ,
- -),
. . (
) ~
. .
,
, . ,
(. 2.2): ,
, .

.
,
. ,


W

1
(

^
^

^
^

^
^

^
^

. 2.2. FCFS


.
, ,
( )
:
(preemptive) (non-preemptive).

.
, ,
(Windows 9x/NT/2000/XP, Linux, OS/2),
( ).

58

2.

, .
SJN SRT. FCFS
. , ,
,
, .
57/'( Shortest Job Next
) ,
.

,
. , ] (Job Control Language
) .
,

( ),
.

, .
,

!^ .
SJN ,
, . ,
(, ),
. , ,
,
, .
SRT (Shortest
Remaining Time) ,
.

,
.

. ,
,
. ,
,
,
. , UNIX- ,
.
,
, , ,

59

, , .
, ,
(,
, ),
, .
,
(Round Robin, RR),
.
RR ,
, , (time slice) q.
q ,
. ,
. . 2.3.
,
.

. 2 . 3 .

q
( ,
)
. ,
, .
()
, ,
,
( ).
q ,
. q ,

60

2.


, .

,
. ,
OS/2 CONFIG.SYS TIMESLICE
q. , ,
TIMESLICE=32,256 , 32 ,
256. ,
q,
, ( 32 ), ,
,
TIMESLICE. OS/2
,
. ,
, ,
.
,

. , , .
,
. , (
) , .
.
.
,
,
. -
.
RR
. ,
. ,
,
(
,
) [7, ]. ,
.
,
,
.

, , , ,
( ) .

,

6^

, ,
.

, .
, , ,
.
, .
, .
OS/2,
Windows 9, Windows NT/2000/XP .
,
.
(
) ,
.
,
. ,
. ,

. ,
.
,
, .
, , ,
.
, ,
(non-preemptive multitasking), ,
(cooperative multitasking), ,
, ,
, ,
, .
FCFS, SJN, SRT .
,
(preemptive multitasking),
,
,
.
,
, ,
( ).
: ,
,
, . RR
, , .

62

2.


. ,
,

. ,
, ^ ,
(,
)
.
, .
,
,
( ,
) [27].
- (,
), (,
,
). ,
, .
,
, ,
. ,

.
,
. ,

.
, Windows 3.x 16-

|[ .

, .
,
.
, , ,
, -,
, -,
, -,
.

,
,

63

[27, 44, 46].


,

. ,
:
, .

Novell NetWare,
.

Windows 3.x. ,
, Windows 95, Win
dows 98. , ,
16- ,
Winl6 API, ,
.



,
. ,
, ,
, ,
. ,
.
,
. ,
,
(!) .
.
,
,
.
, ,
, ,
.
,

. ,
( ) ,
. ,
- .
, ( -

64

2.


), .

.
, , .

, . ,
20 % 10 , 40 %
2 10 % 5 (
) .

, .
G ,
.

.
(CPU utilization).
2-3 %,
100 %. ,
(, ) ,
15-40 % (
) 90-100 % ( ).
(CPU throughput).
,
.
(turnaround time).
,
.
,
,
, -.
(waiting time).
.
(response time).
, ,
.
,

, .

. ,
.

65

.
, (
) ,
( ,
, ,
).
,
,
(. 7). (
).

:
, ()
( );
,
,
, ;
(hints) (
), , Mach
: -, (
) , -,
, .

.



, -
( , , ),
,
() -
. , ,
,
.
>1 ( ).
.
( )
(dynamic priority variation) .
, .
, ,
UNIX, , , . -

66

2.

UNIX .
, UNIX-,
.
RR
.
[39]. -,
p_nice _.
.
( )
. ,
.
:
, ,
( nice number, nice).
UNIX.
,
.
.
, (
) 127 ( ). ,
, , .
0-65, 66-95 (
). , 96-127,
, ,
.
, ,
,
, .
,
.
, ,
. ,
, ,
.

,
. , ,
, .
p_priuser,
, p_nice
_:
p_pr1user = X _1 - b _

.

67


.
. ,
, .
,
( ;
65),

. ,
.
:
_ = _/2


. ,
, ,
_,
_.
, (
nice number)
.
UNIX _
:
_ = _ X (2 X load)/(2 load + 1)
load ,
,
.
_ = __/2,
_ .

,
,
.

(). , ,
, , ,
( ). (,
)
. ,
, _ , ,
.
, OS/2
Windows NT/2000/XP. ,
. , Windows NT/2000/XP
,

68

2.

, ,
, . 2.4. ,

.
,
. ,
.
.

. 2.4. Windows NT/2000/XP

,
, ,
. ,
, Windows
; ,
.
,
.

,
. ,
(preempts), ,
.
.
Windows NT/2000/XP .
32 . :
. ,
16 31, , .

69

,
( Microsoft).
, .
,
, . ,
, ,
. ,
, 0.

( ) 1 15.
(variable priority),

. cef ,
.
,
. ,
, , (
). ,
.
,
,
, . , ,
, ,
, -,
.
16.
OS/2
, ^ OS/2 .

31. , 128 , , 128
().
, ,
(time critical). ,
,
.
(
, ,
,
).
, .
, Microsoft OS/2
IBM.
OS/2 OS/2 ver. 3.0,
Windows NT.

70

2.

.
,
( -,
, . 9 10),
. ,
,
, ,
.
,
(regular), .
, .
, , OS/2 .
,
, .
,
, .
,
, RR.

, ,
(

).
OS/2
, .
(priority boost).
[26].
(foreground boost).
, .

.
- (Input/Output boost).
- ^
.
-.
(starvation boost). ^ (
MAXWAH CONFIG.SYS^), OS/2
, .

. MAXWAIT = 1 ,
.

71[

.

.
.

, PRIORITY = ABSOLUTE CONFIG.SYS
; PRIORITY
DYNAMIC.


1. ,
.
2.
?
3. ?
.
4. ?
, .
5. ,
, .
6. ,

?
7. ? ?
8. , UNIX.
9. Windows
NT OS/2.
?

3.

,
(, , )
. 1 ,
.

, , ,
.
,

, . ,
-,
,
,
- .
, , -
. ,
, .

, , .

,

, ,
.

73

,

(
), ,

, , ,
. ,
,
(, ).

.
.
,
, ,
.

, ,
, ().
.

,
.
(. 3.1):
, .

,
, .
.
,
,
.
, ,
.
, ,
,
.
,
, .

, -. , (, , ) -

74

3.

- , ,
, - ,

.


( )

. 3 . 1 .



. -

75

. ,
] ,
,
.
.
,

, ,
( ,
).
.


.
,
. ,
(
), .
,
.
,
(, Basic).
. -
, , ,
,
. . ,
.
,
, ,
,
( ), .
,
.
,
.
, ,
.
,

:
V^
Vp (Vv < Vp);
V^
Vp (Vv = Vp);

76

3.

V^
Vp (Vv > Vp).
(V^ < Vp) , , ,
. , 16- -
, - 2^^ = 64
(
). -
.
,
( ),
(/
). ^ ,
, .
, (,
. .) , , ,
, , .
64 ,
.
(V^ = Vp) ,
.
.
, ,
}^
(Vv > Vp) ,
. ,
,
, .





,
:
, ;
, ;
() .
,
.
,
,

77

. , ,
,
. ,
.
(, ,
),
, ,

. .
,
,
.
. ,
.
,
, .

, ( ),
,
. ,
, - (
), ,
.

, ,
-,
, ,
^ . ,
.
, , , .
,
.
,
, , ,
,
( overlay ~
, -). ,
.
(main) (segments),

.
,
. ()
, : ( -

78

3.

) ; ,
; ,
, (
), ,
, .
,
( ).
, ,
.
. ,
, ,

, ,
.

(
) ,
,
.
,
, . ,
Turbo Pascal
, .
.
,
DOS Turbo Pascal.

MS DOS
, MS DOS^
IBM PC. , ,
, TSR-^,
, MS DOS
.
.
( ).
, IBM PC 16- 18088,

(Disks Operating System, DOS)
. MS DOS ( Microsoft) 10.
MS DOS.
TSR (Terminate and Stay Resident) ,

. , , [3,23, 24,35].

7^

1 .
(IBM PC AT, 386 .)
, DOS
.
, . 3.2. ,
, 1 ,
,
[2].
, , MS DOS
.
BIOS (Base Input-Output System -
), POST (Power On Self Test
)^
,
-.
.
. BIOS
.
MS DOS BIOS. ,
.
BIOS IO.SYS ( DOS-
, _BI0.COM).
, , DOS MSDOS.SYS.
.
( ) C0MMAND.COM.
, .
MS DOS (Boot Record, BR),
(
. 6).
IBM PC
.
( 1024 )
(. 32-
i80x86 4).
18088. ( i80286)
,

. , ,
180x86
.
POST, ROM BIOS, ,
.

80

3.

0000-003FF

00400-005FF

512

1
BIOS;
DOS

1
00600-

35-60

10. SYS;
MSDOS. SYS:
- ;
- ,
;
- ;

COMMAND. :
-
;
-
;
-
COMMAND.



MS DOS.

*. *.

580


18
A0000-C7FFF
160

8000-0000

^^^^ ^
96


COMMAND.
.

100000

^^^

,
.


COMMAND.

BIOS

F0000-FFFF
64


MSDOS , ,

CONFIG. SYS

ROM BIOS
(System BIOS)


32 ,
128 ,

High Memory Area.


HIMEM. SYS

?fc ?? ^'^^^^" * ^ ' ^ ^ "
MS DOS.

^

.
XMS EMS

. 3.2. MS DOS


MS DOS .

B1i_

, , , ,
(conventional memory).
,
-
. UMA (Upper Memory Area
, ).
,
,
, -.
, -,
, j .

CONFIG.SYS. BIOS IO.SYS
( MSDOS.SYS) CONFIG.SYS
. ,
CONFIG.SYS ,
, -, ,
(
,
).
i80x86 HIMEM.SYS IO.SYS MSDOS.SYS
,
(High Memory Area ).
, lOFFFFh, DOS ,
(, i80286 24- , i80386
32-).
,
lOFFFFh.
: XMS (Extended Memory Specification) EMS (Expanded
Memory Specification). MS DOS
. ,
,
. ,
, EMS XMS, ,
, .
MS DOS ( ,
) . ,

, .
,
, TSR-.
, MS DOS
,

82

3.

, C0MMAND.COM .
,
,
.
, ,
,

C0MMAND.COM.
,
. MS DOS
.



/

( ).
( )
,
( ).
.
, ,
,
(partitions, regions). ,
, ( , ).
()
() (

). .



(
, )
.
.
. 3.3.

().
,
. ,
-

83

^ .
.
,
.
,
. - (
). ;
, , ,
.


>

>


3
:t:t...LJ..

.1'..

. 3.3.
* ( )
. 90 %
, 4-5.
, m 10-15.

84

3.

, ,
(

, -)
, (swapping).
( ),
,
, .
()
, .
,
,
,
.
, ,
.
, ,
. ,
,
. ,
.

.
, .

, ,

,
. ,
, .

(. . 3.3).
.
, ,
,
,
.
:
, ;
,
.

. ,
.

85


,
, , ,
. ,
, OS MVT^ (Multiprogramming with
a Variable number of Tasks
). ; (
) .

, , ,
, .
.

, .

, .
:
;
;
.
, (
, ).
, . )^,
, .
.
,
, , ,
,
.
,
.
,
.
- .
,
- . ,
,
, .
.
, , , ,
IBM
360 (370).

86

3.

.
. ,
, , ,
, , ,
.
, ,
, -
,
. , -

, ,
.
. ,
, (,
, ).
,
.
, ,
.
, ,
,
,
.
(
) . ,
, 16-
Intel.

,
-
,
() , .
,
,
, .
,
. ,
.
, ,
,
.
,
, .

, -

87



.

.
,
, ( ,
) ,
.
.

. (
) ,
,
.

.
. ,
.

.
,
. .
,
.
,
.
. 3.4 ,
11
, 612. ,
, 19700.
, , ,
, .

,
.
,
. ,
( present).
, ,
(limit) .
,
, , ,
. -

88

3.



, ()
.

(
)


612

11

31500

S (Segment)

D (Destination)

^
31511

19700

1300 -^, >.

R-X 1
^""->^

. 3 . 4 .

,
, (, ),

, -

89


. ,
, , (
), ( ,
), (
,
, ! ,
, ; , ).


. , ,
,
.

, .
, ,
,
; ,
, ,
, , .
/, ,

. , ,
,
, .
, ,
.
,
. ,

.
.
, ,
,
.
, . ,
, -
.
, .
,
- .

.

(

90

3.

).
, , ,
,
,

.
,

, ,
, .
( ,
, )
^:
FIFO (First In First Out );
LRU (Least Recently Used );
LFU (Least Frequently Used );
(random) .
,
, , ,
, ,
. ,
, ,
,
, , '
.
FIFO
. , .
.
, ^
. ,
,
.
.
LRU LFU ,
. ,
,
,
(, ,
, ).

.

, -

9^

. ,
( LRU), (
LFU).
,
, .

, ,
.
,
,

.
.

.
-,
, . ,
, ,
, ,
, ,
; , .
-, .
,
.
,

.
.
(. . 3.4),
. ,
, ,
. ,
,
, (
, ).

,
, . ,
.
.
,
.

, ( -

92

3.

), ,
().
.
.

OS/2 \
i80286.
,

.
OS/2 V.1 ,
.
, .
, .
,
. OS/2 v.l
, .
, OS/2
: .
OS/2 UNIX,

.
, ,
. , .
, , ,
OS/2 ,
.
().
, .
,
DOS- OS/2, . ,

, -
, - .

,
,
.

.
,
, .
OS/2 V.1 1984 1987 .

, -

93

OS/2 . OS/2 . ,
,
.
. OS/2
DOS. ,

. OS/2,


.



,
, (
), ^ .
, .
,
, .
,
. ,
^ (
),
(paging file).
5)-, ,
.
,
^
,
, ,
.
,
( ). ,
(, i), (^, i), ^
, , i
. , , ,
, ,
. ,
, ^
, i.
UNIX- ,
, , .

94

3.

,
,
.

, ,
.

, ,
.

().
, ,
, ,
. ,
, .

. . 3.5.
, ,
. ,
:
;
;
.

.

.
.
,
, ,
, .
. ,
(LRU, LFU, FIFO,
) ,
. ,
, .
, LFU ,
.
LRU .
, .
LRU LFU
.
( . 3.5 , ),
.

95

, -


17

32000

612

(Page)

i (index)

32017

. 3.5.


,
. , ,
,
. , .
, ( ,
),

.

96

3.


LRU . ,
OS/2 Linux.
Windows NT/2000/XP ,
,
FIFO. -
FIFO, ,
^ .
.
,
. ,
,
FIFO. ,
.
, Win
dows NT/2000/XP , ,

.

.
, ,
.
( ) , , ,
,
. .
[, 17, 22],
,
, .
,
,
,
.
,
,
.
.
.
32- i80x86. i80386,
,
32 .
Windows NT PageFile.sys.
. ,
11 , Windows NT.
Windows 2000 PageFile.sys
.

, -

97

4 ,
128 .
,
.
, ,
;
, .
,
. ,
. , ;
.
,
,
, . , ,
, , , ,

.
,
,
-. ,
.

-

,

.

:
. , ,
: , .

. 3.6.
,
.
,


(). , ,
, .
, , , ,
. ,
.

98

3.


(
)

32000

17

11

S (Segment) (Page)

612
i (index)

32017

20

R-X

/ 11000

/
/
/

11011

R-X

23

Z
/

23000
23

W
W

23612

. 3 . 6 . -

,
, -

99

, (, ),
.
, ,^
.
,
,
( , ,
). , .

,
.
,
.
- .
.
, .
,
.
,
, ,
.
. .
.

,
, .
-
180x86, ,

.


1. , ?
( )
?
2. ,
DOS?
, MS DOS Windows NT/2000/XP.
3. MS DOS.
4. DOS-?
5. ,
,
.

100

3.

6. ?
?
7. ? ?
8. .
( ) ?
9. ? ?
10.
. .
. ?
?
12. ?
?
13. 5^ ? Windows NT/
2000/
?

4.

i80x86


, ,
32- ,
,
, ,
180x86 32- ,
, 32-
Intel 80386, ,
Intel. SSE,
,
. ,
,
, .



, ,
IBM PC, Intel 8088.
16- Intel (
8086), , , 8- , 16-
( 8086). -

102

4. i80x86

, ,

.
,
,
.

: (real mode)
16-
(protected mode), ,
- .
16-
18086/18088 ,
. , ,
18086/18088 16-
Intel. , , ,
, , [12, 24, 40] . ,
( ,
180x86 )
1
(. 4.1). ,
16 20 ,
, ,
.
CS

CS

0 0 0 0
0

15
+
IP
15

=

19

. 4 . 1 . 8086

,
,
. ,
(Code Segment, CS)
16 ( ) ,
-

180x86

103

(Instruction Pointer, IP). 20- \


20^^.

. ,
. 32-
. , ,
32- . , ,
32- ,
, 16-
. 16- , 20-

32- . ,
16- , 32-
16- ,
80286. , ,
, , ,
.

i80x86.


180x86
i80x86,
, . 4.2.
:
(EIP) 32- , 16
IP;
(EFLAGS) 32- , 16
FLAGS;
, , , EDX, ESP, ,
ESI, EDI 32-, 16
, , CX,DX, SP, , SI, DI;
CS, SS, DS, ES, FS, GS 16-,
( ,
) 64- ,
;
,
2^^ - 1 = 65 535 = 64 , ,
FFFFFFFFOOH, FFFFFFFFH.
, 32- (
i80286) 64 .

104

4. 180x86

EIP

IP
FLAGS

EFLAGS

31

31

15

16

ESP

SP

ESI

Si

EDX

DX

EDI

Di

63

15

47

CS

15

; ;

SS
1

161

0!

DS
'-----.-.-----.-.----J

ES
1

_______J

FS
- - - - - - - - - - - - - - - - J

GS

18,

LDTR

TR

GDTR
IDTR

47


16

CR3
CR2
CR1
CRO
. 4.2. 180x86

16- - (Lo
cal Descriptor Table Register, LDTR) (
) 64- ,
, ,
;
16- (Task Register, TR)
, ^ -

32- 180x86

105

(Task State Segment, TSS)


,
;
48- GDTR (Global Descriptor Table Register)
(Global Descriptor Table, GDT)
, , ,
GDT ,
TSS;
48- (IDTR)
, (IDT);
32- CR0-CR3 .
.
CRO ,
. ,
, [1, 8, 20]. ^
(Protect Enable) .
== ,
.
CRO PG (PaGing) , (PG = 1)
(PG = 0) .
CR2
, ^

,
CR2.
CR3 ,
. , ,
, .

32-
180x86



,

,.

.
:

106

4. i8Qx86

(,
) ,
;
() .
i80x86
.
.
,
. . 4.3.

31

23


( 31-24)


19
15
11
D

19-16
Limit

( 15-0)
31

DPL

23-16

( - limit)
( 15-0)

15
()

. 4 . 3 .

( , )
, , , -,

, -, ^
( i80286 16-
).
, , . 4.3,

. (
), , ,
^ (
) .
LDT (Local
Descriptor Table).
. ^ GDT
(Global Descriptor Table). , (
) .
LDT GDT .

, ,
^ , , ,
, -
.

32- i80x86

107

. ,
: , ,
. , CS,
SS, DS, ES, FS, GS .
(. 4.4).
(Index) 13 (3-15)
( ).
(Table Index, TI) 2
(
). TI = ,
(GDT),
. TI = 1,
; (LDT).

(Requested Privilege Level, RPL).
1
<ci
1 I

T
I
I

r
I
I

r
I
I

I
I
I

1
I
i

T
I
i

1
I
I

1
I
I

:-T
I
I

( )

1
I
I

1
I

1
'

1
'

^
^

TI

'
I

^
I

T
'
I

RPL

. 4.4.


, GDTR.
(GDT) . , GDT
.

, (.
1). I32
, .
, ,
(Task State Segment, TSS). TSS
. 4.5. , .
(Task Register, TR).
TR () GDT.
TSS.
(. . 4.2). TSS , ,
TSS ()
.
LDTR .
TR .
, LDTR ,
GDT.
LDTR LDT . ,

108

4. i8Qx86

, ,
^
. ,
.

,
(
)

31

16

15

68h
LTDR

60h

ES, CS, SS, DS, FS, GS


( 4 ^
2 )

48h

(, , EDX, , ESX,
, ESI. EDI)

>

TSS
(108 )

28h
EFLAGS

24h

( EIP)

20h

Link

. 4 . 5 .

TI ,
, GDT LDT
(), ( 3-15 . 4.4).
() CS.
EIP (Extended Instruction Pointer
) ,
,
, EIP ,
.
. , 180x86 ,
(S, d) 32- .

109

32- i80x86

, .
, (
),
. EIP
, ,
.
^--'''"^''.-''"'-^./'"'^v^j

EIP

CS

LTDR

> LDT

LDT

GDTR ( GDT)

. 4 . 6 .

> GDI

110

4. 180x86

. 4.6.
, ,
, ,
EIP
. ,
.
, ,
. ,

.
, ,
. ,
,
,
. ,
, . ,

, .



i80386
. ,
(32 ),
.
, ,
, -,
. ,
.
,
, -
( , ),
. ,
(2^^ = 4096 = 4 ),
20 , ,
.
.
32 : 20
( , 12
),
, . 4.7. ,

.
.

111

32- i80x86
31

12

11

00

<
S
LD

00

(0

/)

(0

(0

3
. 4-7.

,
, ,
,
,
. , (dirty),
, ,
.
(access) ,
. ,
LRU LFU. ,
.
10 (Page Table
Entry, ), 10
.
,
.
. 4.8.
, ()
, (Page Directory
Entry, PDE).
CRO.
(PDE ) 1024 (2^^ = 1024).
, ( ) 4 (32 ),
.
.
4 . , ,
1024 , 4 .
, , 55 (
, ,
, ^),
14 (14 4 = 56 ),
. , PDE (
), 14 , Picture Element
. .

112

4. 180x86

. PDE ).
, 55
15 , 60 , .

CR3
. 4.8. 180x86

32- i80x86

113

,
4 2^^ =
4 ! , .
, , TSS,
PDE .
2^^,
,
. , ,
, ,
, ,
.
.
, , ,

. 32-
, 180x86,
. , 64-
^ ,
32- ,
.





,
, 16- ,

. 16-
,
, ,
, ()
. , i80x86

. 16- DOS-
( ),
, DOS-,
32- .
180x86 (
18086, V86,
),
DOS-.

.

114

4. i8Qx86

VM
(Virtual Mode) EFLAGS.
, (
) 64 ,
1 ,
, .
16-
.
,
, 32- ,
.
, , 16-
,
.
. ,

18086. ,
, ,

.
, -,
(. ), .
(-) ,
,
. IN, OUT, INS, OUTS, CLI, STI ,

( ) ,

.
,
^ ,
, , ,
.
,
. , , Windows NT
, OS/2
DOS-, ,
Win 16. , ,
,
Win32 API.
, -, .

115



180x86 .
,
. ,
,
,
.

,
.
( )
. (
, , )
;
.

.

,
. ,
.
,

. ,
( )
, ,
.
, ,
, , ,
. ,
,
.




, ,
.
,
. ,
,
. -

116

4. 180x86

: .
.
,
,
, ,
.
-
,
.
180x86
, ,
.
, , 3 .

( ),
.

. , () 1 , ,
, ,
-. 2
,
, ,
.
, , OS/2 :
,
-,
.
.
, 180x86
, PLO (Privilege Level
0). , ,
,
/
.
,
, .

.
, .
(. . 4.3),
DPL (Descriptor Privilege Level ,
),
. , DPL
(Current Privilege Level, CPL), -

117

. -
(. . 4.4) (Requested
Privilege Level, RPL)^

,
.
,
().
,
( ), CALL, JMP, INT, IRET, RET.
: (
) , .
CPL, RPL, DPL
(Effective Privilege Level, EPL)^
, ,
.
CPL < EPL.
,
. ,
, , , .

,
.
.
, :
CPL = DPL = RPL
)^ .
, ,
. , SS,
, .
,
, .

,

. ,
. ,
,
( , -, RPL ( ). DPL
RPL .
,
, RPL DPL.

118

4. 180x86


).
, .
.

180x86
, , , [1, 8].


,
, 180x86 ,
. 4.9.
,
,
.
,
. ,
....
,
, ,
(gates).
,
, . ,
,
.

( ),
(. 4.10).
,
, ( ),
, 32-
. . 4.11.
CALL FAR CALL (
). ,
, ( ) . ,
(FAR CALL), ,
, .

.

119

. 4 . 9 .

:
DPL ; CPL;
DPL
RPL ;
DPL DPL
;
DPL
CPL.


.
( , ,
),
( , ) . ,

.

120

4. i80x86

,
. ,
, , .

,
}^ ( ) .

, ( )
, .

.

CALL

. 4.10.

31

23


19
15
' 11

( 31-16)

DPL

1100



31

000

DWORD

( 15-0)

15
()
. 4 . 1 1 .

121


.
,

, [8].

.
, - .
(PLO-).
,
.
.
, ,
.
.

.
8- 16- , 32-
. ,
32-
.

. ,
,
( IF = 0).

.

DF .
Q RET RET
WC (Word Counter ) ;
= 4 X WC, , .
,
(. ).
.
Q (.
),
, .
.
, -
, ,
.

122

4. i80x86

.
, 13-^ PLO- .
-,
, ,
. PLO-
, - .

32-
i80x86
i80x86
, , ,
,
, ,
, .
.



,
, (
),
, , .
, , :
IP,
CS. 1024 .
, 256 . 18086
00000H-003FFH.
i80286 IDTR
(Interrupt Descriptor Table Register ).
i80x86 .
IDTR
.
()
, , , .
, ,
. , (
)
IDTR,
.
, 3. , 3.

32- 180x86

123


, ,
. ,

.
IBM PC, ,
: .
, ,
, ,
(INT, INTO). :
( 0);
TF (Trap Flag )^
DEBUG (
1);
, INT (Interrupt
) INTO (Interrupt if Overflow ),
.
INT ,
, INT .
,
,
.
- .

,
. NMI (No Mask
Interrupt ) INTR (Interrupt Request
). ,
.

^. (
18259) () ;
^.
.
PSW (Program Status Word
),
.
PSW Intel 80x86 .
(
) ,
-.
, ,
,
.

124

4. 8086

,
. ^
, ; .
1. ; PSW.
2. - IF TF,
PSW,
.
3. CS IP PSW.
4. ,
, IP CS.
,
STI (Set Interrupt Flag
), IF 1,
,
, .
,
IRET (Interrupt Return), 16-
IP, CS PSW
. ,
, .

.
1.
, , INTR (
), .
2. IF PSW. 1,
3. .
, , ,
. ()
.
3. INTA ( ).

.
.

. , ,
, .



i80x86
. , ,

32- 180x86

125

, (Interrupt
Descriptor Table, IDT). , ,
IDT
, (
), ()
. ( )
Morjrr ,
, IDTR (. . 4.2).
GDTR ,
. ,
IDTR , ,
18086, ()
4 32- . (CS:IP).
,
. ^
. , , IDTR
, .
IDTR
.
,
, 8- ,
, .
,
,
,
. IDT
, ,
- ,
.
,
.
:
(interrupt gate);
(trap gate);
(task gate).
, ,
(),
.
,
. ,
oc^ecec (
) / . ( ),
^
(TSS). .

126

4. 180x86


. 4.12.

()
)

CS

1
>

RPL

IDT

EFLAGS

GDT

225
71=0

5
!

j
0

LDT

2.3

^
^

2.2

Ti=1

2.1
0
. 4.12.


IDT,
IDTR ,
8 ( ).
,
, .
1. :
SS SP,
;
EFLAGS;
CS IP.
2. ,
( IF = EFLAGS).
,

.

32- 180x86

127

3.
.
,
.
, ,
,
,
. ( ,
) , .
, .

( , )
.
, ,
, .


,
.
,
, ,
(. 4.13).
,

, (
) TSS.
,
.
1. TSS,
TR (. 32-
180x86 ).
2. .
3. TSS (
TR) .
, LDTR, EFLAGS,
, EIP .
4. NT (Next Task).
5. TSS .
6. CSrIP, TSS,
.
,
,
. TSS -

128

4. i80x86

(LDT),
LDTR . ,
,

.
, RPL CS,
TSS. ,

,
IFLAGS, CS IP,
,
.
I

GDT

TSS

TSS

|>
W

. 4 . 1 3 .

,
,
,
, .
,
.


1. 180x86
?

129

2.
180x86?
3. 180x86 - TR?
?
4. 180x86
?
5. ?
?
?
6.
?
180386 ,
?
7. ?
( , ) ?
8. ? 1
?
9. 180x86
?
10. ?
180x86?
?
. ? , ?
?
12.
.
13. . ,

?
14. 180x86
.
15.
180x86
?
16. ,
?
17. ,
?
18. ,
?

5.
-

,
, ,

,
, -.
, -
, . ,
-,
, ,
. ,

-. , .
, -
. , -
,
. ,
, ,
( Linux FreeBSD,
),
API, -. ,
Windows Microsoft . ,
, .
. ,
, ,
- , , ,
, -

131

, ,
-, .


, -
,
. ,
- ,
.

-,
-,
,

. -,
, .
, ,
, , , -
. , -
, ,
.
:
-
.
.
, .
, - ,
. -
^,
.
,
-.
, , ,
, ,
-
,
.
- (
) .
. , -,
, -, , ,
, , .

132

5. -

,
-. .
, .
. ,
,
.
,

.

-. ,
.
,
,
, .
,
,
. -
- () -,

, .
-.
, /

( ) .
, ,
, , ,
.
- .
-
, - .
-
, - .
, -,

.
, -
, -.
, .
1. ,
,
, -. ,
, -

133

. ()
()
.
2. - -
.
3. -
, - (
- , ).
- ,
.
4. - - (
) -

, , .
5. -
(. 1)
.
6. - ,
-.
7. -
-, .
^, - ^,
-
(
).
, (
) -
, (
), ,
-
, .
-,
.
-,
( -,
). , , ,
, , ,
, -
. , ,
.
, ,
,
.

134

5. -

- API
, .
, -,
, API,
, . ,
,
,
.
( , ,
)
. ,
,
.
,
.

-
, -:
- (. 5.1).

_
-

'

. 5 . 1 . -

-
.

( ,
- ).
, ,

135

, - .
, ,
, .
, ,
, , -.
- ( )
, ,
.
-
( ),
,
. ,
, ^1 ,
. ,
,
. ,
. , ,
. , -,
-
.
-.
(. 1).

. (

), * ,
-
. ,
-
, -.
, ,
,
. /
.
, ,
: ,
.
-.
-
-.
( ,
,
) .
, , -

136

5. -

.
- ,
, , ,

.
,
,
.
-
.
-
~
.
. , Windows ( Windows 9, Windows NT/
2000)
, , ,
100- . ,
, , ,
,
,
.

,
-
, , ,
.
,
.
,
-.

-, ,
.
.
, ,
(spooling Simultaneous Peripheral Operation On-Line,
).
-,

.
, , ,
,
, .

, -

137

.
, ,
( )
( - spool-file) ,
,
-
, . ,
-, (spool-reader)
(spool-writer).

Windows 9x/NT/2000/XP Microsoft.
. Microsoft
. ,
, ,
. .

, .
,
,
.
, -
, .
,
. ,
, , -
.

( Microsoft ,
: , ).

.

. ,
,
. ,
, ( ), -,

.

,
.
, ,
.
, -

138

5. -

.

.
,
.


-
-
, ,
. ,
, :
- ;
,
-;
() -,
;
-
,
;

- , ;
, ;
, ,
- (
).
-,
, , .
-, (
, ) .
,
-, ,
.
,
,
. ,
, ,
Hewlett Packard -.
-
, - -

139


,
.
( ) , .
(equipment table),
(Unit Control Block -).
UCB , ,
:
, ,
;
( , ,
. .);
( ),
;
, ,
;
,
, ( ) ,
;
- -;
;
, ;
, .
.
(, ,

), UCB

, ,
. ,
,
. ,
.
,
, .

- .
, (/
) -, (
) .
, -. ,

140

5. -

()
.
, C-H-S (Cylinder-Head-Sector
, ) .

, (. 6).

,
(, HDD IBM IC35L 120AW207-0,
WDI200JB -).
, ,
- .
,
.
,
. -
. ,
(),
.
, ,
.
, ,
, ,
,
. (Device
Reference Table, DRT).
() ,
( ).
, -
, (
) .
:
,
( )
, .
,
-.
UCB,
.
,
,
-. ,
-.
-,
. ,

141

(),
UCB.
.
,
32- ,
,
-. ,
, , (Data Control Block, DCB).
DCB -
,
. ,
- ,
, , .
,
,
-.
. 5.2.

1-

1-

1-

i-

j-

^
^

h-

j-

^
^

W.
W

. 5 . 2 . -

- ,
(. 5.3).
-
( 1).
API.
, .
, ,

142

5. -

. .

( 1-1).
, -
( 2). ()
DRT UCB .
, ,
-, , .
, - UCB
,
,
( 3),
- , -
( 4).
, -
( ) ,
( 5). ,
- ,
,
( 6). ,
, ,
. ,
,
-.

J
1

1
....

1-1

-
(
)

2'

>
DRT

> >
5

^
^

UCB

()

W
W

i
3

>

-
k

WW

-
(

. 5.3. -

143

,
- ( ),
,
- ,
.


.

-
, -,
.
, ,
,
. -. -
.
,
-.

,
-,
,
. )^
,
.
-. ,

-. ,
, , -, -
, -, -
, UCB.
.

, ,
- ( ).
,
-, ()
,
() ,
. (
,
, ),

144

5. -

. ,
-
-,
. ,
, ,
-.
, , , ( ),
(
)
.
, -
-,
.
-
, .
- , ,
.
-
, ,
().
. ,
( )
, ,
, -
. , -,
, ,
. ,
(
) {)
.
.

. ,
(. 7).
() (
) ,
.
(
),
( ).

,
.
,

145


, , ,
- . -
,
.

, , ,
-.




,
. , ,
().
, .
^ ,
-.



,
, .
,
.
,
. ,
,
. ,
,
. , ,

, (
) ,
,
.


,
().
-
,

146

5. -

. -.
,
. , ,
, ,
(). ,

, ,
, (). ,
. ( )
.
, .
.
,
, { track),
(sectors).

512 . ,
,
. (), , .
() ,
, (cylinders).
.

(head) / , . ,

C-H-S , .
,
.
.
, () .


,
,
.
.
(partitions), .

; .
, , ,
. , UNIX- .

. -, . , -

147



,
. -,
, . ,
Linux \
( ) .
,
.
,
,
.
, ,
, . ,
, ,
,
,
(Master Boot Record, MBR). MBR ,
0-0-1. , MBR,
(Non-System Bootstrap, NSB).
512
,
, , (Partition Table,
), 64 . MBR
0x1 BE .
. 5.1. ,
: C-H-S ,
LBA^ (Logical Block Ad
dressing) . ,

. MBR 0-0-1,
0-1-1 (
LBA 64).
Boot
Indicator ( , 128 (80(h)) ~ ).
, .

, Linux UNIX- ,
6 . (swap partition)
. () , /, /usr, /home,
/var /boot. .
,
: LBA = c x H + h)xS + s - l .
; S ; , h s
.

148

5. -


, .
, NSB, MBR.
5 . 1 .

,
. ,
,
. System ID (
),

.
, , . 5.2
, (
).
5.2.

OOOh

085h

Linux Extended, XOSL

001 h

FAT12

086h

FAT16 volume set

002h

Xenix root

087h

NTFS volume set

003h

Xenix /usr

08Ah

AiR-Boot

004h

FAT16(<32Mb)

08Bh

FAT32 volume set

005h

Extended

08Ch

FAT32 LBA volume set

006h

FAT16

08Dh

FreeFDISKFAT12

007h

NTFS, HPFS

08Eh

Unux LVM

008h

AIX Boot

090h

Free FDISK FAT16 (<32Mb)

009h

AIX Data

091 h

Free FDISK Extended

OOAh

OS/2 Boot Manager

092h

Free FDISK FAT16

OOBh

FAT32

093h

Amoeba native

149

OOCh

FAT32 LBA

094h

Amoeba BBT

OOEh

FAT16LBA

095h

MIT EXOPC

OOFh

Extended LBA

097h

Free FDISK FAT32

010h

Opus

098h

Free FDISK FAT32 LBA

011h

Hidden FAT12

099h

DCE376

012h

Compaq Setup

09Ah

Free FDISK FAT16 LBA

013h

B-TRON

09Bh

Free FDISK Extended LBA

014h

Hidden FAT16 ( < 3 2 M b )

09Fh

BSDI

016h

Hidden FAT16

OAOh

Laptop hibernation

017h

Hidden NTFS, HPFS

OAlh

NEC hibernation

018h

AST Windows Swap

0A5h

Free BSD, BSD/386

019h

Photon

0A6h

Open BSD

01 Bh

Hidden FAT32

0A7h

NextStep

01 Ch

Hidden FAT32 LBA

0A8h

Apple UFS

01 Eh

Hidden FAT16 LBA

0A9h

Net BSD

020h

0FS1

OAah

Olivetti service

022h

Oxygen

OAbh

Apple Booter

024h

NEC DOS

OAeh

ShagOS native

035h

O S / 2 JFS

OAfh

ShagOS swap

035h

Theos 3.x

OBOh

BootStar Dummy

039h

Theos 4.x spanned, Plan9

0B7h

BSDI old native

03Ah

Theos 4.x 4G

0B8h

BSDI old swap

03Bh

Theos 4.x Extended

OBBh

OS Selector

03Ch

Partition Magic

OBeh

Solaris 8 boot

040h

Venix 8 0 2 8 6

OCOh

CTOS, REAL/32 smal

041 h

Minix, PPC Boot

OCIh

DR-D0SFAT12

042h

LinuxSwp/DR-DOS, SFS,
Win2K D D M

0C6h

DR-DOS FAT16, FAT16 set


corrupt

043h

LinuxNat/DR-DOS

0C2h

Hidden Linux swap

045h

Eumel/Ergos 4 5 h , Boot-US

0C3h

Hidden Linux native

046h

Eumel/Ergos 46h

0C4h

DR-DOS FAT16 ( < 3 2 M b )

047h

Eumel/Ergos 47h

0C7h

Syrinx boot, NTFS set corrupt

048h

Eumel/Ergos 48h

OCBh

DR-DOS FAT32

04Dh

QNX 4.x first

OCCh

DR-DOS FAT32 LBA

04Eh

QNX 4.x second

OCDh

CTOS memdump

04Fh

QNX 4.x third, Oberon

OCeh

DR-DOS FAT16 LBA

050h

OnTrack D M R / 0 , Lynx RTOS

ODOh

REAL/32 big

150

5. -

5.2 ()

051 h

DM6Aux1,DMR/W

ODIh

Multiuser DOS FAT12

052h

CP/M, Microport System V

0D4h

Multiuser DOS FAT16 (<32Mb)

053h

OnTrack DM6 Aux3

0D5h

Multiuser DOS Extended

054h

OnTrack DM6 DDO

0D6h

Multiuser DOS FAT16

055h

EZ-Drive

0D8h

CP/M-86

056h

Golden Bow Vfeature

ODBh

Concurrent DOS, CTOS

057h

Drive Pro

ODDh

Hidden CTOS memdump

05Ch

Priam Edisk

ODFh

DG/UX

061 h

Speed Stor

OEOh

STAVES

063h

Unix

OEIh

Speed Stor FAT32

064h

NetWare 2.x, PC-ARMOUR

0E3h

Speed Stor R/0

065h

NetWare 3.x

0E4h

Speed Stor FAT16

067h

Novell 67h

OEbh

BeOS

068h

Novell 68h

OEeh

EFI header

068h

Novell 69h

OEfh

EFI file system

070h

DiskSecure Multi-Boot

OFOh

Linux/PA-RISC boot

074h

Scram Disk

OFIh

Storage Dimensions

075h

PC/AX

0F2h

DOS Secondary

078h

XOSL

0F4h

Speed Stor large. Prologue singi

07Eh

F.I.X

0F5h

Prologue multi

OBOh

MINIX 1.1-1.4a

OFBh

VMware nat^ve

081 h

MINIX1.4b+,ADM

OFCh

Vmware swap

082h

Linux swap, Solaris

OFDh

Linux RAID

083h

Linux native

OFeh

Speed Stor (>1024), LanStep

084h

Hibernation, OS/2 C: Hidden

OFFh

Xenix BBT

,
. ,
,
, ,
.
MBR 55(),
1. ,
. 55^^),
, .
: (primary) (ex
tended). .
, .
, , -

151

. DOS-
, DOS,
. (hidden).
Windows 9.

, , ,
(logical disks).
primary
, .
.
MBR (Secondary MBR, SMBR),
(Logical
Disks Table, LDT). LDT
, ,
SMBR. ,
, SMBR, .

( ) .
, NSB
,
(System Bootstrap, SB)
, .
MBR (. 5.4).
MBR, , BIOS.
^, .
. )
(bootstrap loader) (BIOS
INT 19h).
( ,
-, ZIP-drive Iomega,
- )
-.
, ,
(NSB) MBR, .
,
. ,
.

. , ,
, , ( )
BIOS. , BIOS,
, , ,

152

5. -

,
.

Master Boot Record



:

'''

DOS
( :)

Secondary Master Boot


Record

D:

:

//

/
D:

\\

//
\

DOS

D: :

Secondary Master Boot


Record
:

0 -




. 5.4.

,
.
. (boot managers) ,


. .
OS Selector Acronis.
:
,
DOS (MS DOS, DR-DOS .), Windows (9/, NT/2000/XP), OS/2,
Linux, FreeBSD, SCO Unix, BeOS .;

153

FAT16/FAT32,
, ;
, , ; ;

, ,
BIOS ;
FAT16/FAT32,

, ;

;
;
MBR;

BIOS;

.

. FDisk ( Form Disk ).
, ,
FDisk Microsoft. ,
,
,
.
( FAT, FAT32, NTFS).
Win32API,
.
Partition Magic
Power Quest.
,
OS Selector Acronis.
:

FAT16, FAT32, NTFS, Ext2FS (Linux), Linux ReiserFS, Linux Swap,

;
;
;
Q FAT 16 FAT32 ;
FAT16, FAT32, NTFS, Linux Ext2FS, Linux
ReiserFS Linux Swap;

154

5. -

;
^ ,
, ;

.
Microsoft
. , Windows NT
4.0 (Disk
Manager), Windows 2000 Windows
(Disk Management).
, ,
() ,
.
, MS DOS Windows 95/98,
, Windows NT,
.
, , ,
.
( :, D:, : . .)
. : 1,
D: 2, : 3, . .
boot.ini, Windows NT/2000/XP,
.
, Linux
. IDE-
, (master),
hda. , hdb^ ,
hdc ,
, . .
MBR, .
, ,
5. ,
() MBR, SMBR.
, (. . 5.4), 1 Linux
1. ,
, hdal.
, Windows D:
2, Linux hda5. :,
Windows 3, Linux 6
hda6. , . 5.4
, IDE-,
1 (slave).
IDE- (26 ).

155

. MBR
. , ,
. 4 ,
. 1
:. SMBR,

D:. ,
MBR. Linux . :
6, 9, ,
. ,
.
, ,
, ( Windows F:)
7.

Windows NT/2000/XP
Windows NT
, , Windows NT/
2000/ .
boot.im*.
. ntldr, , ,

.
boot.ini .
5.1.
5.1. boot.ini
[boot loader]
timeout=10
clefault=mult1(0)disk(0)rdisk(0)part1tion(2)\WINNT
[operating systems]
mult1(0)d1sk(0)rd1sk(0)part1tion(2)\WINNT="IT.MTC.EDU Microsoft Windows 2000 Server RUS"
/fastdetect
multi(0)disk(0)rdisk(l)partition(2)\WIN2KP="Staff.MTC.EDU Microsoft Windows 2000
Professional RUS" /fastdetect
multi(0)disk(0)rdisk(0)partition(4)\WIN2K_S="SQL server on M$ Windows 2000 Server RUS" /
fastdetect
multi(0)disk(0)rdisk(2)partition(2)\WIN2K.PR0="Microsoft Windows 2000 Professional RUS"
/fastdetect
C:\="Microsoft Windows 98"
C:\CMDCONS\BOOTSECT.DAT="Recovery Console Microsoft Windows 2000" /cmdcons

, [boot loader], timeout


, ,
default . ,
10 . timeout
,
. ,

156

5. -

default. timeout - 1 ,
,
Enter.
default , (
) , .
:
clefault=mult1(0)d1sk(0)rcl1sk(0)part1t1on(2)\WINNT
multi , ntldr
BIOS ( intlSh).
0.
disk
IDE- ,
, . SCSI SCSI ID .
rdisk .
IDE- 4 ;
3.
, partition ,
. ,
.
, [operating systems],
,
. ntldr,
.
Windows NT/2000/XP -
(, DOS, Windows 9, Linux . .), .
,
( ).
:, ntldr
. , MS DOS Windows 9
,
:. , ,
, bootsect.dos.

-


,
.
. ,
, ,
, , , ( -

157

, ,
)
0,5 (!).
;
. ,
20 ,
,
-. ,
(, , 512 ,
).
, 2-3
,
.

, /
(disk cache).
.
, ,

. .
,
. ,
.
, ,
.
, ,
,
. - ,
, , , ( ,
).
,
. :
, ,
. ,
.
(lazy write^).
, .
.
( ), ,
.
, ,
, ,
( ) , .

158

5. -

.
. , ,
,
, - (, )
,
5 .
, , ,
,
.
.

(read ahead),
,
.
,
. , ,

. , ,
, , .

, ,
.
,
, . ,

.

. , ,
.
,
. , ,
, .
, .
, ,
, .
,
.
,
. ,
.
.
100- - ,
,
. ,

159

,
,
,
.

,
.
, Windows 9 ,
, (chunk^) ,
, , .
SYSTEM.INI,
( Windows), [vcache] ,
, :
[vcache]
M1nFneCache=4096
MaxFileCache=32768

ChunkSize=512
, 4
, 32 ,
, , .
,
, 256 ,

MaxFileCache.
262 144 . -
^

.
Microsoft
, .
,
, ,
, .
,
.
Windows NT 4.0, Windows 2000 Windows
. ,
.
, [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] lOPageLockLimit
163777216, , 16 384 ' .
^ VCACHE , 256 -

160

5. -

.
. , , ,
Microsoft ,
,
, . ,
^ ,
( ). ,
.

.
, 16
128 .
,
(., ,
HPFS 6).
, ,
/ ,
. ,
,

;
. ,
.

, .
,

.
:
(
,
-), ,
.
.
,
/ [].
557^ (Shortest Seek Time First ).
,
,
-.
,
. -

161

,

, .

.
Scan ().
, ,
. /
, ,
Next-Step Scan ( ).
, ,
. ,
/,
, ,
.
'Scan ( ).
,
, .
, ,
, ,
,
.
[].
.



1. -
?
2. -
?
3. , -?
4. ^ - ?
5. - ? .
6. spooling swapping?
7.
-, ?
8. -?
9. ( ).
( ) ?

162

5. -

10.
? ,
? ?
11. -
.

,
Disk Editor.
1. .
BIOS .
2. , .
3. ( MS DOS
).
4. Disk Editor .

.
5. . MBR
.
6.
. . Disk Editor.
7. FDisk. , ,
?
8. FDisk.
9. , ,
, .
10. Disk Editor, ,
,
Disk Editor.

6.

. , UNIX
,
.

. , -,
. -,

. ,
,
.
,
. ,
, .

, .
FAT, FAT32 NTFS.
,
.
NTFS,
.



, ,
.
.

, .
-

164

6.

. ,
,
.
, , , , ,
,
, .
,
,

.

:
, , ( )
()
,
;
;
, ,
( );

( API );
.
,
.
( ,
).
(
), .
, ,
, ,
API. ,
API . ,

, ,


.
,
.
, FAT (File
Allocation Table )
. , ,
, FAT (

165

FAT12^). ,
.
,
FAT 16.
MS DOS,
OS/2,
FAT, super-FAT;
.
FAT Windows 95/98, Win
dows NT . . , ,
,
; .
,
, ,
,
.
FAT,
,
. MS DOS, OS/2, Windows 95/98/
ME, Windows NT/2000/XP, Linux, FreeBSD ,
FAT.
. ,

. ,
. ,
, ,

;
, . ,
,
,
, .
, , ,
, .
,
.
,
,
.
, , . ,
, ,
, . ,
12 , ,
, 12 .

166

6.

.
.
(directory). ,
. ,
. ,
,
. ,
,
, . -
;
. - (subdi
rectory). - ,
-,
.
, , -,
,
.
- ,
.

FAT
FAT (File Allocation Table )
, :
,
;
;
(
).
FAT
(. 6.1): .

BR

RSec

FATi

FAT2

RDIr

. 6 . 1 . FAT


, .
-;
, . -

FAT

167

, ,
-. , ,
.
(
):
(Boot Record, BR);
(Reserved Sectors, ResSec);
(File Allocation Table, FAT);
(Root Directory, RDir).



. , ,
,
.
.

( ).
, (
). ,
.
.
,
.
,
(. 6.1). FAT , (
-), .
FAT 16 16- , ,
2^^ = 65 536 ( 65 535).
6 . 1 . FAT16
,

16-127

128-255

256-511

16

512-1023

32

16

1024-2047

64

32

, Windows NT/2000/XP FAT


4097 . 128 .
(,
). -

168

6.

.
2.

:
, FAT;
;
,
, .

, .
,
. . 6.1 , 32 (
512 1023 ), 16 ,
8 , ^
100 .
( 512 4 ),
.
,
, . 6.2.
Directory Entry
MYFILETXT

01

02

00 ID

FF

03 h .04.

00

00

hi

00

10 00

03

00

1 i i 11 1i 1i

04

Lo5.

00

time

data

05

06

07

09

OA

.FF

00

00

09.

.0AM0B1J15

16.

17.

19

F7

IB.

OB

size

08

OD

OE

OF

00

00

00

00

,1C. ^ J D .

^ .FF

00

00

. 6.2. FAT

, MYFILE.TXT , .
MYFILE.TXT 12 . (chain)
: 8,9,0 , , 15,16,17,19,
^ , 10 000-15 000 ( ,
) 1000 .

FAT

169

1 , IB, 1, ID. 18 F7
(bad), .
, ,
, FAT .
ID FF ( ) ,
. ()
00;
. ,
FAT, . 6.2.
6.2. FAT

OOOOh

fff0h-fff6h

fff7h

fff8h-ffffh

0002h-ffefh

(, ,
),
,
,
, . ,
.
, FAT
, ( -
) , .
, , , ,
, .
FAT
, .
FAT , .
- ,
. , , ^
ScanDisk Windows 9
FAT ,
.
- ,

.
, . 6.3.
DOS,
FAT, Disk Editor

170

6.

. . ,
, MS DOS,
. ,
, ,
FAT , .


, FAT32 NTFS.
Partition Magic,
Acronis.
6.3.
,

11

FAT

DOS
, DOS,
:. ,
; 0-0-1.
, , : (Disk Parameter Block,
DPB) (System Bootstrap, SB).
,
DOS.
. 6.4.

(JMP) SB. 90 (NOP ).
,
- .
, .
DOS,
, Disk

FAT

171

Editor . , ,
,
. [2].
6.4. FAT16
,

(0)

JUMP

(3)

0(11)

SectSize

(13)

ClastSize

0(14)

ResSecs

(16)

FATcnt

FAT

11(17)

RootSize

Rdir

13(19)

TotSecs

,

32 ;

15(21)

Media

16 (22)

FATsize

FAT,

18(24)

TrkSecs

1 (26)

HeadCnt

HidnSecs

1(28)

20 (32)

,
32

24 (36)

( ,
80 )

25 (37)

26 (38)

29

27 (39)

2 (43)

11

36 (54)

(62)
1FEH(510)

( 55)

(volume) .
.

VFAT FAT32
FAT
8.3. FAT (
FAT16) , -

172

6.

Microsoft ( Windows 95
Windows NT): VFAT ( FAT) FAT32,
Windows 95 Windows 98.
FAT32 , Windows Millennium
Edition, Windows 2000 Windows XP. FAT32 Windows
NT, Linux.
VFAT Windows 3.11 (Windows for Work
groups). Windows 95 VFAT
(Long File Name, LFN). , VFAT
FAT; ,
8.3,
8.3 , .
VFAT Windows 95, Windows NT 4, Windows
2000 Windows XP. VFAT
, VFAT . ,
DOS ,
) FAT.
, VFAT ( FAT32).
, VFAT ,
VFAT.
FAT VFAT,
, (
),

. Microsoft Windows 95 OEM Service Release 2^
VFAT FAT32,
32-
FAT.
, FAT32
. ,
, ,
65 535 (
). ,
8 FAT32 4-
. FAT 16
( 10-15 %). FAT32
,
2^^ ^.
FAT32
FAT . FAT32
Windows 95 Windows 95 OSR2.
32- FAT32, ,
28 , ,
2^* .

173

FAT

;
FAT32
. FAT32
, ,
,
(512 ).
Windows 95 0SR2 Windows 98 VFAT,
Windows NT. ,
VFAT VFAT, FAT32.
FAT ( FAT32 , FAT VFAT)
,
FAT32 ,
FAT32.
1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 11011111231141151167811912012112212312412512612712812913013]
(FAT16 FAT12)
(0
;


(8
3 - )

*=
8

Afe

8-5

(0

(FAT32)

5
.
S


(8
3 - )

>i
(

(0

h Is
m
S

&

CO

|i

ffl

(FAT12, FAT6 FAT32)


(

1-5
Unicode

6-11
Unicode

11

12-13

Unicode

1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 11011lll2ll3ll4M5l16l17l18l19l20l21l22i23l24l25l26l27l28l29l30i31
. 6.3. FAT, VFAT FAT32

174

6.


, FAT32
.
, FAT
. 512 .

FAT Microsoft
:
, . ,
,
FAT32 512 2048. ,
-
, Microsoft
.
VFAT (. 6.3).
11 DOS .
:
,
, .
,
. ,

^
.
,
.
,
,
.
. () ,
, .
,
,
, . .
.
DOS^. .
(Archive ). ,
, . DOS
.
(, , ,
, , BIN.
, Novell Netware,
.

FAT

175

) .
,
,
.
D (Directory ). ,
, .
V (Volume ).
. .
^ ,
.
S (System ). ,
,
.
(Hidden ).
S (), DIR.
R (Read only ). ,
. , ,
, , ,
.
,

.
, ,
, . ,
, ,
.
FAT 12 FAT 16 10 .
.
FAT32 10
. , NT,
, , , DOS Win
dows 9, Windows NT.
,
FAT 12 FAT 16,
FAT32. ,
FAT32,
10
FAT 12 FAT 16.
. 6.3,
. ,
, .
256 ,
25 FAT (1 8.3 24

176

6.

). ,
VFAT 21. , ,
Microsoft
OTcjrrcTBHH FAT32,
^
FAT32
FAT16. , , FAT32 DPB
, , FATI 6
, . ,
FAT16, ,
FAT32, ,
FAT32. FAT32 -
OEM ID,
59 (PDB).
DPB (. 6.5).
6.5. FAT32
,

"

JUMP

(0)

""

(3)

(11)

SectSize

(13)

ClastSize

0(14)

ResSecs

,
FAT32 32

(16)

FATcnt

FAT

11(17)

RootSize

13(19)

TotSecs

15(21)

Media

16(22)

FATsize

18(24)

TrkSecs

1 (26)

HeadCnt

1(28)

HidnSecs


(
) .

, , (
8.3), 260 . FAT32
,
. Microsoft
75-80 , (180-185 ).

HPFS
,

177

20 (32)

24 (36)

FAT

28 (37)

2 (38)

2 (39)

34 (43)

36 (54)

12

, FAT32 ,
FAT 16 FAT12, . , ,
7-9.

HPFS
HPFS (High Performance File System
) OS/2 1.2
LAN Manager.
IBM Microsoft IBM
MVS, VM/CMS ^ HPFS


.
HPFS ,
[26]. HPFS, FAT,
, ,

(Extended Attributes, EAs)^,
.
, , HPFS
,
FAT.
.
, HPFS,
,
. :
^ , Microsoft
(Gordon Letwin).
^ . ,
(,
), , , . .

178

6.

;

;

, (
) .
, , HPFS
, , ,
(extents)^ .
(seek time)
/ (rotational latency)l
, HPFS , FAT,
:
;
;
,
;
.
HPFS.
(. 6.4).

>s

>5 X
)S

(0

>

S
X

.
0)

(D

Q.

Q.

g
.

<5
iC
:
^

CSi

(0
00

5
Q.
.

(Q

LQ

^
^

1-

. 6.4. HPFS

.
HPFS ,
(bands).
,
. 8
(bit map) , ,
, FAT, , , , . ,
, , , .
/
. , ,
, /.

HPFS

179

. ,
, .
.
1, , .
,
.
: , , , ,
, . .
16
.
,
, FAT,
/ . ,
, HPFS .
( )
.
HPFS , FAT, .
, ,
, . , .

,
256 . ,
, . ,
FAT 512 1023
16 . ,
8 (8192 ) ,
HPFS 256
. , 8 .
. 6.4 ,
(volume)^ HPFS .
(boot block), (super block)
(spare block). OS/2 15;
, , BIOS^
. 0S2LDR,

, , , OS/2
0S2KRNL. 0S2KRNL CONFIG.SYS
.
(bitmap
block list). ,
, , , .
BIOS
, . HPFS
(), 32- .

180

6.

, .
(bad block
list), (directory band),
(File node, F-node) ,
CHKDSK.
() . ,
.
, .
, HPFS 8 .
, .
16 ,
HPFS.
(HotFix map), (HotFix
areas), ^
(directory emergency free block list),
, .
17-
HPFS,
.
HPFS ,
\ HPFS,
FAT .
.
(
). 15
, , ,
(Access Control List,
ACL) , ,
. .
,
. HPFS
. ;
.
,
.
( 8.3) ,
FAT,
. 8
, 3 ,
. ,
HPFS,
3 .
,
.

HPFS

181

HPFS
, , ,
. , 32 .
, , ,
\ ,
32- .
, ,
, . ^
.
HPFS
,
/ . HPFS ,
4 ,
.
, , ,
.
8 .
,
(allocation block), 40
, , ,
. ,
480 ,
7,68 . 2 ,

[26].

. , 8 .
, HPFS
.

/, .
, /
,
, FAT.

HPFS FAT.
NTFS,
, (.
NTFS). , HPFS
.
HPFS (
) , (2^^ -1)512 = 2 .

182

6.


. , FAT
,
.
HPFS
, (. 6.5). ,
(Binary Tree, B-Tree), ,
,
, ,
, , ,
, .
Directory F-Node

Leaf Block

Leaf Block

Leaf Block

. 6.5.

HPFS
, ,
, . ,
,
, , ,
,
. ,
( ), ,
. . ,
, ,
FAT. (
, F-node),
,
.
.
, , , 4096 ,
FAT 64
, HPFS 2-4
( ) .
HPFS FAT. , , 40
1640 -

HPFS

183

, 65 640 . ,
65 640
. FAT,
4000 .
,
HPFS, 2 . , ,
. 13 ( 8.3) 2- 40 .
( )
.

. , -
,
. HPFS
, .

. .
.
. HPFS ,
, .

, .
HPFS ,
,
. FAT,
,
. HPFS
, , ,
.
/ .
, HPFS 4
. ,
.
HPFS ,
.
, HPFS 4
/
.
,
, ,
.
. ,
2-3 , HPFS,

184

6.

, ,
, .
, , ,

. () ,
, - ^
, 2 % ,
[26]. ,
, 3 %.
.
HPFS.
,
. HPFS
(HotFix).
HPFS
, .
HPFS ,
, , ^.
HPFS.
HPFS
.
.
, 32-
. , ,
.
, ,
. ,
,

. ,
,
,
.
CHKDSK HPFS.
() CHKDSK
( ) .

,
. CHKDSK
^ , HPFwSOPT GammaTech
, , ,
, 2 3 , (
, ,
, 8 ).

HPFS

185

, HPFS,

.
.
HPFS, ,
, 32-
. , ,
.
HPFS CHKDSK
,
, .
, CHKDSK ,
. CHKDSK
. , ,
.
HPFS .
, ,
. HPFS IPS (Installable File
System ) CONFIG.SYS. IFS
.
IFS () HPFS
2 , 8
: D:.
IFS=E:\0S2\HPFS.IFS /:2048 /CRECL:4 /AUTOCHECK:CD


CONFIG.SYS :
RUN=E:\0S2\CACHE.EXE /Lazy:On /Bufferldle:2000 /D1skldle:4000 /MaxAge:8000 /DirtyMax:256
/ReaclAhead:On

,
,
,
. , Lazy
On , Off .
Bufferldle ,
,
. (
) 500 . Diskldle (
),
, .
1 .
.
( ),

. 5 .

186

6.


OS/2 Warp.
HPFS
, OS/2.
HPFS386.IFS.
HPFS.IFS, , ,


(ACL). , ,
NTFS. ,
HPFS386.IFS, HPFS.IFS, ,
. ,

, HPFS.IFS
, . ,
HPFS386.IFS
.
,
,
, /
. /


. ,
(C-Scan).
CONFIG.SYS,
HPFS386.IFS
:
IFS=E:\IBM386FS\HPFS386.IFS /AUTOCHECK:EGH
RUN=E:\IBM386FS\CACHE386.EXE /Lazy:On /Bufferldle:4000 /MaxAge:20000

.
, ,
, HPFS386.IFS
:, G: :.

20 .
, , ,
HPFS386.INI, E:\IBM386FS.
,
. , , HPFS386.INI
. [ULTIMEDIA]:
[ULTIMEDIA]
QUEUESORT={FIFO|ELEVATOR|DEFAULT|CURRENT}
QUEUEMETHOD={PRIORITY|NOPRIORITY j DEFAULT|CURRENT}
QUEUEDEPTH={1... 2551DEFAULT|CURRENT}

HPFS

187

QUEUESORT .
FIFO, ELEVATOR, DEFAULT CURRENT. FIFO,
,
, .
.
ELEVATOR,
. ELEVATOR
( C-SCAN, [, 26]). ,
, /
(, ),
, .
QUEUESORT DEFAULT,
, ELEVATOR. CURRENT,
,
(DASD-manager).
QUEUEMETHOD ,
. PRIORITY, NOPRIORITY, DEFAULT
CURRENT. NOPRIORITY,
, . PRIORITY,
,
.
,
, . .
HPFS386.IFS, .
1.
- . .
2. .
3. (foreground session), ,

.
4. (background session), ,
,
(,
). 3 4 , CONFIG.SYS :
RIORITY_DISK_IO=NO

5. (
).
6. , .
7. . .
QUEUEMETHOD DEFAULT,
, PRIORITY. CURRENT,
,
.

188

6.

QUEUEDEPTH .
(1...255), DEFAULT CURRENT,
^ QUEUEDEPTH ,
,
. , SCSI-
,
. ,
, ,
SCSI- .
QUEUEDEPTH , ;
. QUEUEDEPTH
DEFAULT,
, .
CURRENT, .
CURRENT DEFAULT.
, HPFS386.IFS :
QUEUESORT=FIFO
QUEUEMETHOD=DEFAULT
QUEUEDEPTH=2

:
QUEUESORT=ELEVATOR
QUEUEMETHOD=PRIORITY
=< >

, ,
/QF:
BASEDEV=0S2DASD.DMD

/QF:{1|2|3}

: 1 QUEUESORT=FIFO, 2 QUEUEMETHOD=NOPRIORITY, 3 - QUEUESORT=FIFO QUEUEMETHOD=NOPRIORITY.

,
(Installable File System, IFS),
() ,
.

. , , OS/2 IFS-
VFAT (FAT ), FAT32, Ext2FS (
Linux), NTFS (, ).
- CDFS.IFS.
FTP.IFS, ftp- .
Windows NT.

NTFS
NTFS (New Technology File System
) . ,
NTFS FAT16 ( FAT32)

NTFS

189

.
- ,
Windows (folders).
.

NTFS
NTFS ,
,
, .
OS/2 v.3,
HPFS.


,
NTFS. NTFS
.
, ,

.
()
. , ,
. , -
.
,
.
,
.
NTFS ,
, ,
HPFS,
. ,
, ,
,
.


NTFS
Windows NT ,
. NTFS
. , ,
,
. , ^ .

190

6.


(ACL) .
, ; 5^
. (. Win
dows NT/2000/XP 11)
Windows NT, .


NTFS .

, , ,
,
. ,
. , , NTFS
. , , ,
, ,
.
, Windows 2000/ ^
NTFS ,

.


NTFS .
300-400
. ,
, NTFS FAT16 FAT32.
( ) 16 ( 2^ , 16 000 ),
Windows NT/2000/XP FAT 16
4 , FAT32 32 .
NTFS .
NTFS ,
, NTFS
( FAT). ,
, NTFS
,
. ,
, (
).

NTFS
NTFS.
[16] [42]. .

NTFS

191

, , NTFS,
(volume). ,
,
( ) .
. ,
, RAID-.
RAID Redundant Array of Inexpensive Disks,
. RAID-
,
,
, . ,
NTFS5, Windows 2000/, RAID-
, Windows
NT 4.0, , .
,
,
.
Microsoft
. ,
,
,
, Windows 2000//2003, .
,
( Microsoft
) .

,
.
Veritas Software.
Microsoft ,
.
, NTFS
, .
NTFS 512 64 ;
2 4 . ,
4
.
NTFS (. 6.6).
12 % MFT (Master File Table
). MFT (
), ,
. MFT ,
MFT . 88 %
.

192

6.

t
8

fr
^

IS
(0

<8

CD
Q.

. 6.6. NTFS

, , ,
. MFT
, MFT. MFT
1 ,
- ( ). 16

, MFT.
,
. 16 MFT ( ,
) . MFT
, ,
MFT.
MFT.
16 NTFS () ;
- .
NTFS. $,
- . . 6.6
. ,
, , ,
$MFT.
6 . 6 . NTFS

$MFT

MFT

$MFTmirr

16 MFT,

$LogFile

$Volume

, . .

$AttrDef

$Bitmap

$Boot

( )

NTFS

193

$Quota

,
(
Windows 2000 NTFS 5.0)

$Upcase

.
NTFS Unicode (
65 ,
)

, MFT.
, : , ,
. .
MFT, ,
. ,
:
MET . ,
, ,

.
NTES
(file reference), 64- .
,
, .
, ,
NTES .
NTES
(streams)\ , .
( ), ,
. ,
( )
. , ,
, , , .
. , ,
,
, Windows 2000 (
).
HPES. ,

: (
) . , , ,
, -
(
) .
' (threads).

194

6.

( ),
.
, NTFS
, .
NTFS
(. 6.7).
6 . 7 . NTFS

( , ,
, ), ,
, ,

MFT,
.
, MFT

Unicode. ,
UNIX. ,
POSIX
8.3

,
(ACL) .
,

, . NTFS

.
,

,
,
(
)

HPFS

,
HPFS OS/2, OS/2- -
Windows NT

NTFS
NTFS (NTFS permissions)
(),
. ,
NTFS. ,
, ;
( ,
), , .

NTFS

195

. ;
Windows NT/2000/
. ,
.
.
NTFS , ,
, , .
,
. ,
: ,
, .
. ,
,
,
, ,
. NTFS:
,
, No Access ( )^
.
NTFS :
. ,
,
, . , ,
ACL,
,
.
, .
,
. -,
, ,
.
NTFS.
, .

. .
,
.
.
( ) NTFS ,

, .
, NTFS .
Windows 2000/ No Access (deny)
.

196

6.

ACL. . NTFS
.
DACL (Discretionary ACL ).
,
,
. ,
(change permissions)
. ( permissions
).
SACL (System ACL
). ,
. SACL ,
. ,
,
SACL. :
SID - - /

SID Security Identifier (


). ,
(. 1 11).
. Windows NT
(2000/)
( SID).
SACL ,
.
,
SACL DACL
.
, , DACL,
.
(access mask).
(standard), (specific)
(generic) . ,
, .
,
. Read_Control
. Write_DAC
. Write_Owner
() . Synchronize
. ,
Delete, .
,
. , , Read_Data, Write__Data
Append_Data , ,
, . Read_Attributes, Write_Attributes

NTFS

197

Read_EA, Write_EA , ,
. ,
, Execute,
.
;
. ,
Generic_Read, ,
: Read_Control, File_Read_Data, Fi4e_Read_Attributes,
Fi4e_Read_EA, Synchronize.
Ha ,
, , ,
. ,
, ,
.
NTFS,
.
Windows 2000/
,
, , ,
,
NTFS, .
, NTFS - Win
dows NT 4.0 Windows 2000/. , ,
, (Explorer) -
,
.
Windows 2000/ ,
, ,
, Windows NT 4.0.
NTFS Windows NT 4.0.
, ,
.

NTFS Windows NT 4.0


NTFS Windows NT 4.0
^ .
.
, .
Windows NT 4.0 : Read (), Write (),
Execute (). Delete (). Change Permissions ( )
Take Ownership ( ). . 6.8

NTFS .

198

6.

6 . 8 .

NTFS

(R Read)

,
,
,

,
,

(W Write)


;
;
,


;
;

(X execute)

;
;



,
;
( )

(D Delete)


( change
Permissions)


( take Ownership)


NTFS.

.
NTFS .
of Access ( ) Fi4e Permissions Directory Permissions
Explorer () Windows NT.
.
,
NTFS, .
( Microsoft)
.

.
NTFS 4
(. 6.9).
NTFS,
.
, .
List (RX, ) .
( ) -

199

NTFS

, ,
.
Add (WX, ) .
,
.
Add & Read (RWX, RX) .
,
,
, ,
.
Change (RWXD, RWXD) . ,
,
.
Full Control ( , ) .
, ,
,
.

6.9.

No Access

Ust

(RX)

Read

(RX)

(RX)

Add

(WX)

Add & Read

(RWX)

(RX)

Change

(RWXD)

(RWXD)

Full Control

No Access ( ) ,
,
q)ynnbi, . No Access
, NTFS.
: ,
,
.
Full Control ( ) Change () ,
, ;
() (0).
. , .
R, W, X, D, , -

200

6.

. NTSF
(File Permissions Directory Permissions)
. ,
- NTFS,
-
.
(Special Directory Access), (Special File
Access). ,
NTFS.

NTFS
NTFS
, .
,
, .
NTFS
.
, , .
, Properties
() Security ().
. () Permissions (
) / ,
DACL. () Audit ()
SACL. , () Owner
() / .
, /
NTFS .
:
CACLS [/] [/] [/] [/G :] [/R [...]] [/
: [...]] [/D [...]]
:

;

;
/ ;
/ ;
/G
, :
R ,
(),
F ;
/R (
/);

NTFS

201

/ ,
:
N ^,
R ,
(),
F ;
/D .
.
.
. ,
NTFS,
.
, ; .
Administrators (),
Administrators.
.
, ,
. , ACL,
, , DACL. DACL
(Access Control Entry ~ );
(SID)^
,
. ,
. ,
:
Everyone List;

Engineers Add & Read;

Managers Change;

Administrators Full Control.


:
, Engineers
, Managers
, Administrators
.
() , NTFS
. , ,
, , .
* 128- ,
. SID
, ,
.

202

6.

, Windows NT 4.0 NTFS


, . ,
Read () Write ()
, ,
.
() ,
NTFS ,
. No Access (
): .
; ,
Properties (),
Security () Permissions (),
, of Access ( )
.
, ,
.
(Not Specified).
, -
(, , ).
NTFS,
Everyone () Full Control (
) . , ,
.
, , ()
, , .
, -
Read, Everyone Change,
,
. ,
No Access. ,
, .
No Access ,
.
, Full Control ,
, (
No Access). ,
NTFS POSIX.1. (
),
,
R, W, X, D, 0. ^
, Full Control,
.
, , Change Permission,
,
.

NTFS

203

, NTFS,
. ,
,
Full Control Take Ownership.

,
No Access. ,
Take Ownership , , ^
NTFS.

NTFS Windows 2000/


Windows 2000 Windows
,
NTFS5, , NTFS.
,
Windows NT 4.0
13 , ( )
, Microsoft ^
. (
) .

Traverse Folder/Execute File ( / ):

Traverse Folder ( )
,
(

, Everyone
);
Execute File ( ) (
).

List Folder/Read Data ( / ):

List Folder ( )
( );
Read Data ( ) (
).
Read Attributes ( ). ( )
, .
NTFS.
Read Extended Attributes ( ). (
) .
.
NTFS .

.

204

6.

Create Fi'les/Write Data ( / ):

Create Files ( ) (
);
Write Data ( )
( ).

Create Folders/Append Data ( / ):

Create Folders ( ) (
);
Append Data ( )
, , (
).
Write Attributes ( ). ( )
, .
NTFS.
Write Extended Attributes ( ). (
) .
.
Delete Subfolders and Fi4es ( ). (
) Delete.
Delete (). ( ) .
( )
Delete Subfolders and Files
.
Read Permissions ( ).
, Full Control, Read Write.
Change Permissions ( ).
, Full Control, Read Write.
Take Ownership ( ).
.
,
.

.
NTFS4.
NTFS4 NTFS5 , 6
5 .
.
(allow) (deny).
, ,
. ,
: ( ), , . ,

NTFS

205

, DACL. ,
DACL , ,
, ,
, .
, . ,

, ,
,
.
,
.
Advanced ().
, .
Add (), Change () Delete (),
, .
, ,
.
.
,
.
( ) (
) .
Inherit from parent the permission entries that apply to child objects.
Include these with entries explicity defined here (
).
:
( ),

.
: ,
,
.

.
. , , ,
. ,
, ,
.
,
.
,
,
, Full Contorol (-

206

6.

) Everyone () Read & Execute (


). ^
. ,
, Change (). Read 8 Execute (
), Read () Write (). ,
, .
.
NTFS Windows 2000/
.
,
,
.
.
Full Control ( ),
.
, ,
.
1. . Security ()
Properties ( ).
2. Inherit from parent the permission
entries that apply to child objects (
) .
3. Add (),
, Add (),
. Security ()
Read & Execute (
), List (
) Read ().
4. Full Control (
), .
.
5. .
Read & Execute ( ),
.
6. .
Read & Execute ( ) Read (),
.
7.
,
Write ().
8. ,
-.
, . -

207

Advanced (), Advanced security settings for


( )
, - Full
Control ( ).
9. ( )
, Advanced security settings for
( )
. , Edit (/),
Deny ()
, .

, .
, , Edit (/), Per
mission Entry for ( )
Apply onto () ,
.

NTFS
Apply (
),
.
, , Cancel (
).



1. ?
?
?
2. FAT.
FAT? , ?
3. FAT16 FAT32.
?
4. HPFS.
HPFS ?
5. ? ?
6. NTFS.
NTFS.
7. ,

NTFS.

208

6.

8. ,
?
NTFS4.
9.
NTFS5. , Windows 2000/
.

1. Windows NT
Windows 2000/, ,

NTFS. .
2. (
) , ,
, , .
3. Examen, Students
,
, , .

7.

^
, .

.

, .

, ,
,
.
.
,
,
.
,
. ,
, ,
.



,
()
.

210

7.

,
. ,
,
-, ,

.

, , , ,
,
,
(
).
,
, -
. (independed processes)
(cooperating processes).
,
. ,
,
.
, .
,
.
()
, .
,
. ,

, ,
,

.
,
. ,
, .

,
,
. ,
, , ,
.
,
, .
, -

211



. , ,
,
. ,
. ,
, .
, ,
.
,
. ,
, .
,
. , .

.
1 2 X.
, , (, )
X, Ri\

(. 7.1). ,
, X.
.
7 . 1 .
1

R1:=X

R1:=R1 + 1

R2 := R2 + 1

X:=R2

X:=R1

2
R2:=X


,
. ,
1, 2 (. 7.1) , ,
4-6, 1-3, X
, X + 2.
1: (1) R1 :=; (2) R1 :=R1+1; (3) X:=R1;
2:

(4) R2:=X; (5) R2:=R2+1; (6)X:=R2;

. 7.1.

Ri i.

212

7.

1 3
4-6 (. 7.2), X
(X + 2), (X +1).
1: (1) R1 :=;
2:

(4)R2:=X;

(2) R1 :=R1+1;

(3) X:=R1;

(5)R2:=R2+1;

(6)X:=R2;

'

. 7.2.

, . , 1 2
X
,
. ,
, , .
,
.

( MS DOS)
TIME, (, Ctrl+T)
18:20:59, ,
, , , 18,20 59
, ( ,
, , ). TIME
59 ,
: 18:21:00.
TIME, ,
, : (21), (18).
: 18:21:59.

.
59 + 1 = 60 00
Ctrl+T,
, , , 18:20:00.
.
, ,
- [17].
,
.
. ,
. ,

, ,
.

213

, ,
, , , ,
.

,
,
.
, ,
,
,
.
- (produces-consumer), ,
, -.
,
, ,
, ,
. ,

, .
, ,
() , . ,
, ,
, ,
, . ,
, , (pool)^ ,
. ,
, .

, .
, .
, , ,
. , , ,
. ,
.
, . ,
, . ,
,
, ,
.
,
. ,
.

214

7.

. ,

(
). ,
, (Critical Section, CS).

,
. ,
, ,
, , ,
. ,
,
.
- ,
, , ,
. ,
() . ,
,
. ,
, ,
(
).

.
[17, 54].

.

.

. :
,
( ),
, ( ,
, ,
);
,
, ,
.
, ,
,
,
.

215

:
; ;

.





.
: ,
,
, , ,
.
,
, .
,
,
, [10]. ,
,
.
, , ,
.



(
) ,
.
( ) ,
. ,
. ,
,
,
( ,
).

, . ,
,

.
, , .

216

7.



,
.





, :
, ()
.
,
,
. . 7.3.

^
'1

:#-

CS1

CS2

(
1)

(
2)

PR1

PR2

(
1)

(
2)

. 7.3.

, , 1 2
.
, .
, , 7.1.
7.1.

Var : integer;
Begin := 1: { =1 1}
Parbegin

217

While true do
Begin
while = 2 da begin end:
CSl; { 1 }
:= 2:
PRl: { 1 }
End
And
While true do
Begin
while = 1 do begin end;
CS2; { 2 }
:= 1;

PR2; { 2 }
End
rend
End.

:
parbegin...Sll; S12: ... ; S1N1
and... S21; S22; ... ; S2N2
and... SKI: SK2: ... : SKNlk
parend

Sll; S12; ...; SlNl (


), .
,
:
while true do
begin SI: S2: SN end

, begin end .
, , 7.1,
.
PR1 , PR2, 1
PR1, 2
, 2
CS2, 1 CS1.
,

.
,
, ,
. 1
2 , true,
, false .
,
. true,
. -

218

7.

.
7.2.
7.2.
Var 1.2.: boolean;
begin nepeMl:=false;
nepeM2:=false;
parbegin
while true do
begin
while 2 do
begin
end;
1;;
CSl { 1 }
epel:=false;
PRl { 1 }
end
and
while true do
begin
while ! do
begin
end;
2:=1;
CS2 { 2 }
epe2:=false;
PR2 { 2 }
end
parend
end.

, ,
.
, , . ,
, 2 1
!
2 2 true,
! true. ,
.
() ( 7.3)
, 1 2
! true (
2).
7.3.
!. 2 : boolean:
begin 1:=fIse; 2:=15;
parbegin
1: while true do
begin
!:=true:

219

while 2 do
begin end;
CSl { 1 }
1:=1$;
PR1 { 1 }
end
and
2: while true do
begin
2::
while ! do
begin end;
CS2 { 2 }
epe2:=false;
PR2 { 2 }
end
parend
end.

, 7.3, .
, ,
true .
.
, , ,
,
.

,
, , .
,
; , ,
.


( 7.4):
!, 2 . - !
true , 1 (
2 ), ,
,
.
7.4.
label 1. 2:
van !. 2: boolean;
: integer;
Begin !:=false; 2:=1$;
:=!;
parbegin
while true do
begin !:=true;

220

7.

7.4 ()
1: i f 2=1 then
1f 0=1 then go to 1
else begin epel:=fa1se;
while 0=2 do
begin
end
end
else begin
CSl { 1 }
:=2; epel:=false
end
end
and
while true do
begin 2:=1:
2: i f 1 then
i f 0=2 then go to 2
else begin epe2:=false:
while 0=1 do
begin
end
end
else begin
CS2 { 2 }
:=1: epe2:=false
end
end
parend
end.

2 = true ! = false,
2 . 2 = false ! = true.
, 2 =
= true ! = true, ,
,
.
! 2
. ! 2 ,
; ,
,
,
.

- , ,
N .



, ,
, -

221

.
. , IBM 360 (370)
TS (Test and Set ). TS
(). ,
,
^ . TS
,
.
TS ,
common, ,
.
, -
. ,
, , ,
. TS
common common .
^
7.5.
7.5.
var common, local 1. local2 : integer;

begin
common:=0;
parbegin
1: while true do
begin
locall:=l;
whil e local 1=1 do TS(loca11,common)
CSl; { 111
common:=0;
PRl; { 1 }
end

and
2: while true do
begi n
loca 12:=1;
whil loca12=1 do TS(loca12.common)
CS2; { 112
common:=0;
PR2; { 2 }
end
parend
end.

, 1.
^ locall ,
TS(locall,common) . common
. 1 .
common ,
, 2
.

222

7.

, , ,
common := .
.
.

: common,
. ,
, 1

, 2, ,
. ,
1 , 2
.
ia32,
, ,
, BTS, BTR,
. BTS.
BTS (Bit Test and Reset )
[20].
, , CF (Carry Flag
)^ , 1.

BTS .
8- .
32, ,
31. .

.
^ ,
( 7.6).
7.6.

L:


JC L
:
AND .

,
31,
.

223

. 3
5 (3 16- , 5 32- ),
( ),
,
.
[20].
( 32- ), ^
:
Effective Address + (4 (BitOffset DIV 32))
( 16- ) ,
:
Effective Address + (2 (BitOffset DIV 16))
, .
,
. ,
-. MOV
BTS
.
, ,
,
, . ,
, ,
, -
-, .
,
, , '
,
.
, .
.
, ,
, , ,
.
().
,
.

,
. ,
, ,
.
,
, -

224

7.

,
.
.
. ,
, . ,
, ,
, , ,
. , , ,
, , ,
. ,
,
. ,

, ,
. ,
.


[10]. (sema
phore) ,
,
V\ ,
.
, V
.
,
, ,

.
.
.
. ,

,
.
.

,
.

[41]. ,
,
Proberen (), V Verhogen ().

225

, , ,
.
P(S)
S. ,
.
.
, ,
.
, - .
V(S)

.
, V
,
.
( 7.7).
.
,
. , . ,
, N-.
, ,
, ,
.
7.7.
PCS):
S:=S-1:
if S<0 then { S }:
V(s): if S<0 then { S
};
S:=S+1:

,
, .
InitSem; ,
,
InitSem ( _. __ );
1 2

. , ,
7.8.
7.8.
van S:semafor:
begin InltSem(S.l);
(. ).

226

7.

7.8 ()
parbegin
1: while true
begin
P(S);
CSl :
{
V(S)
end
and
2: while true
begin
P(S):
CS2 :
{
V(S)
end
parend
end.

do

1 }

do

2 }

S , 1. 1 2
P(S),
. , 2,
S, . 1
S.
.
V(S) 2 S ,
-
. 1
.
,

V:
( )
, ;

,
, , .
. 2
P(S). S .
1 P(S). 1
S, S ,
- 1 . 2
V(S), S ,
1 .
1 , ,
.
P(S), , S=0. 1 ,
- 1 . 2
P(S), . ,

227

, 1 2
.
. ,
2 V(S).
V(S) , S=0. 1
.
.
, .
1 V(S).
1 2 P(S), S
.
. V(S) 1
2 .
,
, ,
, .
:
P(S):

1f S>=1 then S:=S-1

else WAIT(S){ S }
V(S): if S<0 then RELEASE(S){ S
};
S-S+1.

WAn(S) ,
, S. RELEASE(S)

, S, .
, ,
,
. , 2
P(S). S .
1 P(S). 1
S, S=0, S .
2 V(S),
S , 1
. 1
, P(S) .
V
. S
( 7.9.).
S, ,
S.
7.9. V
type Semaphore = record

:integer;
:pointer;
#

228

7.

7.9 ()
end:
var S :Semaphore;
procedure P ( var S : Semaphore);
begi n _;
S.C4eT4MK:= S.C4eT4MK-l;
i f S. < 0 then
WAIT(S); { S.
}
_
end;
procedure V ( var S : Semaphore);
begin ;
S.C4eT4HK:= S.C4eT4HK+l;
i f S. <= 0 then
RELEASE ( S ) ;
{ S. }
_
end;
procedure InitSem (var S : Semaphore);

begin
S.C4eT4HK:=l;
S.yaaeb:=nil;
end;

,
. S }^ ,
,
. ,

.
,
.
(TS).
( 7.10).
7,10. V
type Semaphore = record
; integer;
: pointer;
; boolean;
end;
var S : Semaphore;
procedure InitSem (var S : Semaphore);
begin
With S do
begin
:=1;
;=nil;
:=true;
end;
end;

229

procedure ( var S : Semaphore):


var : boolean:
begin
_:
repeat 5(. .) until :
S.:=S.-1:
if S. < then WAIT(S): { S.
}
$.::
_
end:
procedure V ( var S : Semaphore ):
var : boolean:
begin
_:
repeat $(.$.) until :
S.:=S.C4eT4HK+l:
if S. <= 0 then RELEASE(S):
{
S. }
S.aoc:=true:
_:
end:

, 5(,5.) , .
, (
) .


(mutex). mutex
mutual exclusion semaphore,
.
,
( )
. ,
(
). - ,
, ,
. ,
.
( )
,
.
( ),
, ,
,
. (CreateMutex),
, , , -

230

7.

. true, ,
, , .
false
,
.
.
(CreateMutex), (OpenMutex), (WaitForSingleObject WaitForMultipleObjects) , ,
(ReleaseMutex).


.




.
,
.
.

-
-
.
.
,
,
.
7.11.
7 . 1 1 . -
var 5_.$_,5_ : semaphore;
begin
In1tSem(S_CBo6oflHO.N);
1115(5_.);
In115(5_ ) :
parbegin
: while true do
begin
{ }
(5_);
($_):
{ }
\/($_):
\/($_);
end
and

231

: while true do
begin
(5_);
(5_):
{ }
V(S_CBo6oflHO);
\/(5_);
{ }
end
parend
end.

$_, 5_ ,
5_ . 5_
, N, N ,
. ,
N; , .
5_ ,
, .
5_ 5_
.
, S_CBO (5_),
$_
\/($_). ,
5_
(5_), 5_
\/(5_). 5_, 5_
.
,
, 5_
(5_).
, $_
($_).

.
.



,
.
, 1 2. ,
1 2 , 1
, 2
. , ,
7.12.

232

7.

7.12.
var S : Semaphore:
begin
InitSemCS.O):
1: begin

: { 1 }
ON ( 2 ): { 2 }
P(S):
12: { 1 }
STOP
end:
2:

begin
2: { 2 }
V(S):
STOP
end

end

S . 1
, 2,
P(S) ,
. 2, ,
V(S) , 1
.

-
,
, -.
.
, - .
( , ).
,
, ).
, , ,
.
. .

. , ,
. ,
, .
,
.

-
.
. -

233

, .
, .
, ,
7.13.
.
7.13. -

var

R. W : semaphore;
N_R : integer;
procedure ;
begin
P(R);
Inc(NR);
{ NR:=NR +1 }
i f NR = 1 then P(W);
VCR);

Read_Data; { }
P(R);
Dec(NR);
if N_R = 0 then V(W);
VCR)
end;
procedure ;
begin
PCW);
Write_Data; { }
VCW)
end
begin
NR;=0;
InitSemCS.l); InitSemCW.l);
parbegin
while true do
and
while true do
and
while true do
and
while true do
and
while true do
and
while true do
parend
end.

R W,
NR, ,
. -

234

7.

W. R
.
,
P(W) .
, NR ,
, W,
. ,
, , V(W)
W. R
NR, P(W) V(W).
, W
, R.
W.
V(W), ,
.
,
, .
,
, ,

. .
7.14.
7 . 1 4 . -

var

S. W. R : semaphore;
NR : integer;
procedure ;
begin
PCS); P(R);
Inc(NR);
i f NR = 1 then P(W);
V(S); VCR);
Reacl_Data; { }
PCR);
DecCNR);
i f NR = 0 then VCW);
VCR)
end;

procedure ;
begin
PCS); PCW);
Write_Data; { }
VCS); VCW)
end;
begin
NR;=0;
InitSemCS.l); InitSemCW.l); InitSemCR.l);
parbegin

235

while true do
and
while true do
and
while true do
and
while true do
and
while true do
and
while true do
parend
end.

, S ,
. ,
S .
,
,
. ,
,
. ,
.
, -,
, , ,
,
.
, .
, , ,
^ . ,

. , 7.15
-,
.
, ,
( ,
), , , .
7.15.
Var VI. V2 : integer:
Procedure ;
Begin
Inc(Vl);
Write_Data;
V2:=V1
End;

236

7.

7.15 ()
Procedure ;
Var V: i n t e g e r
Begin
Repeat
V:= V2;
Read_Data
U n t i l VI = V
End;

Begin
VI ;= 0;
V2 := 0;
Parbegin
while true do
and
while true do
and
while true do
and
while true do
parend
end.

,
VI V2.
1 VI, V2.
V2 , VI .
VI V2 , , .
, .
,
, ,

,
.

. ,
, V := V2
:
Repeat V ;= V2 Until VI = V
,
.


, ,
(, ,
), .
, -

237

, , .

,
.
,
,
,
.
, [52].
0
,
,
.
, , ,
- [17]. ,
- , -
. ,
, .
,
.
. -
.
, ,
, ,
. ,
, ,
, .
- (,
) .

,
. , ,
, ,
.
.
, .
,
,
.
(
), (
).
; , , ,
, .

238

7.

.
,
.
,
, WAIT
. , ,
,
. , ,
, .
, , ,
.
, ,
, .
, ,
. ()
SIGNAL,
. (
) ,
, , ,
, , . ,
, ,
,
.
, , ,
, ,
, , .
,
.
,
.

.

( 7.16).
7.16.
monitor Resourse;
condition free; { - }
var busy : boolean; { }
procedure REQUEST; { }
begin
i f busy then WAIT ( free );
busy:=true;
TakeOff; { }
end;


procedure RELEASE:
begin
TakeOn; {
busy:=false:
SIGNAL ( free )
end;

239

begin
busy:=false:

end

,
REQUEST () RELEASE ().
REQUEST , ,
busy () true, REQUEST
WAIT(free). REQUEST,
, ,
, free ().
, , RELEASE,
SIGNAL , ,
.
REQUEST
WAIT(free), . SIGNAL(free)
, , free,
.


. ,
, , ,
.
(
,
).
, ;
.


,
. -, .
,
. ,

-
. -,


. -, -

240

7.

, .

, ,
,
. ,


.



,
, .
.

. , ,
. ,

1 2, 1
, ,
. 2
- , 1 ,
2 .
2 ,
( ). , 2
.
,
. ,
,
.
,
, , ^ , .
, ,
, ,
. ,
-,
.
, -
, -.
.

241

, ,
. ,
, (),
.
.

[17].
. 1 ,
. , 1 ,
. 2
, .
, , .


.
, ,
.
, .
, ,
, ,
, . - ,
,
. ,
.
,
.
,
,
.

, V - ,
( ),
, , .
SEND_MESSAGE ( . , )
,
. ,
SEND_MESSAGE, .
WAIT_MESSAGE ( . . )
, , ,
- .
, ,

. ,
.

242

7.

SEND_ANSWER ( . . )

, ,
, (
), .
, .
WAIT_ANSWER ( . . )

, , ,
; .
, ,
, ,
. ,
, ,
( ) .
:
,
^ ;
;
,
, ;
- ,
.

, . .
)" :
.
, ,
.
Microsoft
(mailslots). ,
. ,
,
. . (first-class delivery)
;

. (second-class delivery) ,
.

(pipe), , , ,
, ,

243

. -
UNIX, , , ,
, ,
, .
, ,
, UNIX-. , ,
, ,
. ,
( ) .
- .
, ,
FIFO, .
;
.
\ 64
. ,
, .
:
( head), ( tail).
.
,
, 1 ( ).
,
.
( ) (
)
. () ()
, ,
.

( ,
).
, ,
,
. . 7.4.
.
,
. .
,
. ,
, .
, UNIX-, 64 ,
16- -, ,
.

244

7.

'....:i^i/.jk'i-.*.>,f.'i

. 7.4.


, API OS/2.
:
DosCreatePipe (&ReaclHandle. &Wr1teHanclle. PipeSize);

ReadHandle , Wn'teHandle
, PipeSize .
:
DosRead (&ReadHandle, (PVOID)&Inforni. sizeof(Inform). &BytesRead);
ReadHandle , Inform
, sizeof(Inform) Inform, BytesRead
.
,
.
:
DosWrite (&WriteHandle. (PVOID)&Inform. sizeofCInform). SBytesWrite);

WriteHandle , BytesWrite
.
,
.
. , -

.


(queues)
,
.
-.
- , -

245

- .
, .
, .
. -,

:
FIFO , , ;
LIFO , , ;
;
.
FIFO.
-, ,
,
.
-, ,
.
, ,
.
, ,
API,
,
, , .
- :
(Process Identifier, PID), ;
;
, ;
;
, .
, ,
( ,
):
CreateQueue ;
OpenQueue ;
ReadQueue ;
PeekQueue ;
WriteQueue ;
CloseQueue ;
PurgeQueue ;
QueryQueue .

246

7.


1.
? ,
?
2. ,
.
3. , .
BTS BTR, ia32.
4. .
V?
5. ,
?
6. ?
7. -
.
8. -
.
9. ? .
10. ?
. ( )?
12. ?
?

8.

,
,
.
,
.








.
,
,
, .
, , .
-
, .
, (dead lock^), . ,
,
, . -

,
.
Dead lock (.) .

248

8.


:
(Reusable Resource, RR), (System Re
source, SR), )
, , (Consumable Resource, CR).
(SR)
, [54]:
;
,
( ,
, ,
);
( ),
,
, .

, ,
, () ,
, , ,
, ,
.
(CR) SR
[17].
CR ,
()
(). )
,
,
, .
,
() . ,
, ,
().
, , ,
,
CR . :
-; ; ,
,
.
, ,
.
[54].
() ,

249

.
^ .

.
() . ,
,
. , ,
. SR
, ,
,
. .
SR
. 8.1.
2

R2

. 8.1.

1 R1
R2. 2 R1,
R2. , 1 ^ R2.
, )^
, ,
1 : 1 ,
2 R1, 2
, 1 R2.
,
.

250

8.

CR
1, 2 ,
Ml, 2 .
CR. 1 , 2
Ml, 2 2.
, ,
, (. 8.2)
().

. 8.2.


, 8.1, .
^
( 8.2).
8 . 1 .
1:

(2. Ml. 2);


(. . 1);
2:
(. 2. ):
(1. Ml. 2);
:
(1. . 1):
(2. 2. );

251

8.2.
1:

(. . 1):
(2. Ml. 2);
2:

...
(1. Ml. 2):
(. 2. ):

...
(2. 2. );
(1. . 1):

,
, , ,
.

CR SR
1 2
R, 1
, 2
. R.

REQUEST(R, N) N R, RELEASE(R, N)
() N R.
MB. 1 2 8.3.
8.3. CR SR

1:

REQUEST ( R. 3 ) ;

SEND_MESSAGE ( 2. . MB ):
WAIT ANSWER ( . MB );
RELEASE ( R. 3 );

2:

WAIT_MESSAGE ( 1 . . MB ) :
REQUEST ( R. 2 ) ;
;
RELEASE ( R. 2 ) ;

252

8.

8.3 {)
SEND_ANSWER ( . MB );

, . ,
2, ,
1, R,
1. 1, R,
2, ,
2 R, 1.
, 2 1
R, . ,
, .

SR
, 1 2,
SR: R1 R2.
S1 S2 . 1 2
, . 8.3 [17].
1

1:

P(S2);

(5):

P(S1):

2:

P(S1);

(6):

P(S2);

3:

V(S1):

(7):

V(S1):

4:

V(S2):

(8):

V(S2);

. 8.3. ,

( ) .
, .
. 8.4.
1,
2. , 1 4,
1-4 1; , 5 8,
5-8 2.
. ,
, 1 , 1,
2 6, 7. -

253

, 1,
, 2.
2
I

r-f-

/V

'^0

5h

_ 1
1

. 8.4.

, R1 R2
, . 1-8
25 ,
.
-
1 2 R1 R2.
1-2-5-3-6-4-7-8,
1. 2 R1 ( 5),
( , ). 2
. 1 3, 2
R1. 2
R2 ( 6). 1
4, 2 R2.
, , 1-5-2-6, 1 X 2, 2
Y 6. 1 , 2
7, 2 , 1 4.
, 1, 2 .
, ,

254

8.

,
. : ,
D, .
,
[17,
54]:
,
;
, , , ,
. ,
;
,
, ;
,
, , .
, ,
Y (. . 8.4).




.

, .
,

,
.
,
,
.



35 ,
, 1962 1
[36].

, , .
, ,
, . -

255

,
.
( ),
( ),
, . ,
, ,
: . ,
, . , .

,
. :
- ;
- ( ) ,
, ;
.
-
( , )
/'= <5, >. 5
, 5=(, [/)> V , U . ^
, .
.
5 ,
:
5 = < , , F>.
, = {pj, i = 1, ;
, = {^^}, = t ^ ; U - = V, - = 0 ,
5; ,
S:
Ye(PT)[j(T'P).
5 ,
tj, j = \,, ^ G ,
: ( ) -^ {0,1, 2,...}
:( )-> {0,1,2,...},
[36] (
).
{Pi}ePy tj {(Pitj)i},
1 < \{(Pijtj)i : iyj = const}| < W, {^^} G ,
tj G _ {(tj,Pk)i}, 1 < \{(tj,Pk)i'-jyk = const}| < W.
W5; P , P
; (.,t^)^ v- , , -

256

8.

tp (tjyPf^X v- , tj ;^.
, S /^ :

S-<P,ZB,E>,

: P=^I\JO;ir\O^0.
/
:

I=

\Jl(tj);0=[jO(tj).

I(tj) = {, : B(p,aj) > 1, i = 1^}, j = un; 0(tj) = {p^ : E(tj,p,,) > 1,fe= }, j = t m ;
(Pi ,tj) w<W, , tp
i^jyPk) ~ w<W, tj ^,
/(^^) 0(tj) ^^
.
(
, ),
().
MQ ( ,
)
(),
, W = ||, - (1 < < )
m(Pi)y () {.
=((),(21"-.()^
=

(m(p,Xm(p^),...,m(pJ).

(.), (-) Z ;Z . (
)
,
. - = -_^ - I(t)
,
.

.
. , ,
, ,
. ,
, ,
, . tj ,

257

, G ^) : {,) > #(,, I{t^)) - W.


, , .
^(Pijl(tj)) Pi
tp , , w ,
. tj
MQ ^ :

:
Vp,. : (,) = (,) -#(,, )) + #{Pv ))
, , tj
, ,
, ,
.
(
)
(), (. ). -
- (
- ),
, .
, ,
, , ,
.
,
(),
( > 0).
, tj ,
\ ,
, \ tj
. , ;
,
. ,
, , (
) (
).
.
, ,
( ).

, ,
. , ,
, .

258

8.

, , ,
.
. 8.5.

;5

'^Pia

. 8.5.

,
1 2
R (. 8.3).
, . 8.5, (1, , , , , 4, , , 1, , , , 0).
2 , 1 R.
, PQ (
R), 3, t^
1 . ^2
1 2; t^
. pj , 2
1. t^
, 1.
,
^3, tiy tQ, t-j ^8 , 1 SR
(. . 8.3), , . 8.6.

259

. 8.6. SR

,
1 2, Pi ~ S1 S2,
V. . 8.6
, ,
.

.
,
.
, ,
^
[21]. () ,
, ,
, .


( [54]).
, ,
, .
, , .

260

8.


( - ).
, ,
(,
).
, .
,
( !),
. ,
.
.
<, 7i>,
{ Sj, 83, S3,..., S^ };
{ ^, , ,..., }
Pj ,
. :
Pj! -> { }.
Pj S, Pj
Pi(S). Sk Pi(Se), , Pj S^
Sk , Sg -> Sj,.
, S^ -> S^ , Se = S^, Sg -> S^
i, Se -> Sk i Sk, Sk -> S^.
, >
> Sg S^.
, ,
, ,
, . .
Pj Sg,
Sk, Se -> Sk, Pi(Se) = 0.
, , Pj Sg,
Sg ,
( ) , Pj
. .
Pj Sg, Sj,,
Se -> Sk, Pj Sk . <, >:
= { Sj, S2, S3, S4};

= { PJ, 2};

Pj(S3) = {S,);
P^S,) = {S3};

P3(S3) = 0;
P3(S,) = 0.

261

:
S, ^ - ^ 8; S, - ^ - > S,; S, - ^ - ^ S,.
Si -> S4 , ,
: Si ^> S2; S2 -> S^ Si ^> S^; S3 -> S4.
, Sg,
S4; S2 -> S4 S2
> Si, Pi
S4, Sj.
. 8.7.

. 8.7. <, >

S , Pj,
S.
, , ,
,
.
.
Si , S^, Sj -> Sj,, Sj,
.
<, >.
. 8.8. S2 S3 ;
. Si S4
, S5. SQ Sy
.
, <, >
SR,
. 8.3. Pi 2,
Ri R2 (. 8.1).
Sy , Pj Sj,
2 Sj.

262

8.

. 8.9.
Pi,
. : S22, S23
52. , S33.

. 8.8. <, > ,

. 8 . 9 .

263


8 . 1 . ^ Ri
Pi

Rg,

R,,

Rg

Ri

Ri, Rg

Rg, Ri

Ri Rg

Ri Rg

Rg
Ri

Rg
Ri

, , ,
.


.
,
. , ,
, . ,
.
,
, , ,
.

.

, .
:
;
;
.



, ,
.
,
.

. , ,
, ,
, .

264

8.


.
,
.
, .
,
. , ;
.

. ,
,
.
,
.

.
,
- .
,
.
. . ,
,
. ,
.
, ,
. 1 2,
R1 R2, R2
. 1 R1,
2 R2,
R1, 1. ,
.
, ,
, .
.

, .


.
,

, . [54],
, ,
, , -

265

. , ,
. , ,
, . ,
, .
.
, R SR;
,
. . 8.2
R,
R.
8.2.

, )
, pecyffc
.
,
R, ^
,
. ,
^ .
,
R. ,
R, , .
(
), R, ,
,
. ,
R .
, , .
, ,
, .
, .
, , , ,
, -
. , >^
.

266

8.

, .
.

[53].
, .
(
) .
, ,
.
N ,
R (
Max(i)). ,
. , i-ro .
i-ro (1).
i-ro R (1). ,
, false (1).
, _
R, _. 8.4.
8.4.
Begin
_ := _:
For 1 := 1 to N do
Begin
_ := 6_ - oy(i);
OcTaTOK(i) := Max(i) - ):
aep(i) := false; { }
End;
flag ;= true;
{ }
while flag do
begin
flag := false;
for i := 1 to N do
begin
i f ( not ( ) )) and ( OcTaTOK(i) <= _ )
then begin
aep(i) ;= true;
_ ;= _ + oy(i);
Flag := true
End
End
End;
I f _ = _
then
,

else
.

end.

, -
, , , -

267

, .
, ,
. ,
, .
,
. . ,
; ,
, .
,
.
, .
[
,
. , ,
. ,
.
, ^
,
.
.
. .
,
. ,
.
,
. .
, , ,

.
, [ ,
,
.
, .
, , , , ,
.


,
, - ,
. ,
,
.

268

8.

, (
)
.

, , , ,
. ,
, -
. (
)
S ,
S. S .



Pj
()
(.
).
.
Pj, ,
, ,
, Pj Pj.
^ ,
, . Pj .
( ),
.
SR .: ,
, .
: SR
;
.
, . S,
S^
seqi
seq2 , Sj ;^ S2 ( Sj Sj
, ).
, ,
, Si = S2. , ,
seqi (Pj, 2, ...,
). seqi ,
seq2. Si = ,
, S,
seqi seq2 ( -

269

), .
, - (1=1,2,..., )
.
PI, S
Pi, , , Pi.
Pj, (i = 1, 2, ..., j). Pj,
(i = 1,2,..., j) Pj+i,
seq2
.
Pj. , Pj+i.
, ?t ^ 1 = 1,2,..., ,
, Si ^^ S2. , Si = %.
: S ,
S
.
, S ,
Pi S. Sj, S *> Sj
Pj Sj ( ).
,
Pj
. , .
, S .
Pj,

(. ).
, ,
, SR, -
, , Pj
, , .
: Pj ,
, Pj .
: S ( SR),
S.
.

; ,
, .

. ,
,
, .

. -

270

8.

(

, ).
. ,
.
D = ||dy||, djj Rj
, Pj, dy = |(Rj, Pi)|, (Rj, Pj)
Rj Pj, Rj Pj. N = |||,
eny = |(P,Rj)|.


. ,
Pj, Pi :
<

> (R,.dJ

>(Ry',d y^)

> ...

>(R, A).

Rj , , dj , dj = |(Rj, Pi)|.
, Pj, .
( - ):
R

> ( , )

> ( , )

> ...

> ( , ).

nj = |(Pj,Ri)|.

(fi, 2, ..., ), ^ (
) Rj, , = |Rj - Z|(Ri, )|
( ) , , ,
, .
,
^, 2,..., ,
, ^, P^.i,..., 2, Pi, ,
. :
n + ( n - l ) + ... + l = n ( n + l ) / 2 .
,
X ^, m .

. V,
Wi,
( ), -
. , ,
( ).
, , ,
X .

271

For all L do
Begin for all Rj |(Rj,P)| > 0 do
Begin r^ := r^ + |(Rj.P)|;
For all Pi 0 < |(Pi.Rj)| <= Pj do
Begin w^ := w, - 1:
If w, = 0 then L := L {Pi}
End
End
End
Deadlock := Not (L = {PI, P2 Pn});

L , Morjrr
. , L = {, | w, = 0}. L,
, fj Rj,
, w^ ^,
Rj, ^ L,
.



( )
. G = <, > I X ()
, ,
P(x) = { y | ( x , y ) I E } U { z | ( y , z ) I E & y I P ( x ) } .
, ,
(), , .
I X: I (), G
.
:
.
( ^)
:
, ,
i j , i j
.
: S S ^> Sj, S^
, ^, Pj
Pj ST ,
, . ,
,
, ,
.
[54].

272

8.

Pj
Pj. Pj ,
.
, , ,
, ,
.
, , G = <, >
ZI X, V I Z, () = Z, Z
Z.
, .
. 8.10.

. 8.10.

, ,
. , . 8.11 .
(), ,
. ,
.
, ,
,
. ,
, ,
(
).
, , ,
.
: ( ,
, ),
.

eZ = {Z1.Z2.Z.Z4}

Z = {Zi, Z2, Z3, Z4},


. 8 . 1 1 .

273

274

8.

, Z.
, Z,
Z . ,
Z Z.
, Z . , Z
.
, (
), |Rj = 1, (i = 1, 2, ..., m).
.
:
, .
.
, ,
, . -
, ,
, ,
. ,
. ,
,
; .
,
.



,
. ,
, IBM
. ,
: ()
RATBL PWTBL (
).

, [22].
1. . J
I.
2. I PWTBL J.
3. I RATBL,
, .
4. PWTBL.
5. , -
. , 6, 7.

275

6. J .
7. RATBL, '
.
8. , ' = J. , 9,
.
9. , PWTBL . ,
6, 10.
10. := ' 4.
. .
12. .

.
1. 1 R1.
2. 2 R3.
3. R2.
4. 2 R4.
5. 1 R5.
(RATBL) ,
. 8.3.
8.3.

R1

R2

R3

R4

R5

6. 1 R3,
J = 1,1 = 3, = 2. ,
1 R3.
7. , 2 R2: J = 3,1 = 2, = 3.
=3 , 2
R2.
8. , R5: J = 3, I = 5,
= 1, = 3, ' = 2, ' J, = 2, = 2, ' = 3.
' = J, .
(PWTBL) , . 8.4.
J = ' ,
,
.

276

8.

8.4.

R3

R2

R5

,
. 8.12. ,
. ,

: (8, 5, 6, 2, 7, 3), .

. 8.12.

.

. :
,
, ;
, ;
,
,
;
, , ,
, ;

, .

277


, . ,
, ,
- , ,
.


1. ?
.
2. SR?
, .
3. .
?
4. - .
5. ?
?
6. .
7.
? ?
8. ? .
?
9. ?
.
10.
.
11.
.

9.

(. 1),

,
.
,

.
1 .
, , ,
,
.
, .
. ,

,
.
, , ,
.
,
. , ,
,
,
.


,
.

279




: , ,
() , ,
.


.
,
.

.
,
.

( ).

, ,
.
(. 1),
,
().
.
,
,

, .
, .

.

. ^,
,
. UNIX.

,

.
,
,
, , , .

280

9.


.
. , ,
, . , ,
,
, ,
, . 1
, ().
, .
.
.
. .
,
,
, .


.
-.


,
-,
. . -,
,
,
.
, .
, -
( ) ,
. -,
,
. , , ,
- .
- (. 5): -
. ,
, , : (
) .
, .
, -

281

,
.
(),

.
-,
( )
(
) .
.
,
,
.
,
().
^ .
,
, ,
.
(Application
Program Interface, API).


,
, .
.

, .
,
,
.
(
)
.
,
. ,
, ,
. .
, .

. , ,

,
, .

282

9.

,
,
, ,
.

,
.
.
, ,
,
,
. ,

.
()
.

.
(),
.
, ,

.
(),
,

, . ,
,
.
,
.
, .

. ,

, ,
, -
, .

,
,
. ,
, 1.

283

, .
VDM- (Virtual DOS Ma
chine) , MS DOS
DOS-p0e. ,
DOS-,
VDM-. VDM- Win
dows^ Microsoft, OS/2, Linux.

,
. ,
, ^
.
, , .

. , ,
, ,
. ,
( ),
- ,
.

.
UNIX.
.
, Windows , (
) . Windows NT/2000/XP
HAL (Hardware Abstraction Layer
) HEL (Hardware Emulation Layer
), (
) .


, ,
.

, .
,

. ,
.
Microsoft, Windows
, VDM-. , Windows ME.

284

9.

, ^
. ,

. . C++
, -
,
.
-.
. ,
.
,
-,
ia32. . ,

, ,
-, (
) .
C/C++
. ,
, ,
, ,
. , , ,

. ()
.
UNIX.

.
, POSIX
(Portable Operating System Interface for Computer Environments
).
, UNIX

, .
API POSIX. ,
, ,
- ,
.
,
.

,
, ,
. , IBM
OS/2, -

285

ia32, PowerPC.
,
, .
OS/2-Windows NT. , Windows
NT
ia32, MIPS, Alpha (DEC), PowerPC.
,
Windows NT (Windows 2000/)
ia32 MIPS, Alpha PowerPC.



,
, .

.
,
. :
,
, .

,
.
.
,
.
(, IBM
PC Apple),
, .
, PowerPC ,
i80x86. 80x86
, . PowerPC
, 80x86,
, , ,
, ,
PowerPC. PowerPC ,
- , 80x86,
.
,
PowerPC, ,

, 80x86.
, .
, , , -

286

9.

, ,
,
.

POSIX.
UNIX,
.



(
, )
,
.
()
.
,
.
.
-
,
.
.

.

.
.

Linux. UNIX-
-
, () ,

. Linux
,
, , ,
, .
,
,
,
.
, , ,
, . ,
-

287

. ,
, - ,
. ,
. , ,
Windows 98 Windows NT/2000/XP,
.
.
, , ,
() ,
, .


,
, .
(, )
, ,
. . , ,
, ,
.
-
.

.
,
.
.
UNIX- , , Linux.



.
,

( ).

.
.

, () (
. 1).
. , ,

288

9.

, (
)
.
, .
,
.
, .
,
, .

, 2 ,

. , 1983 .
(National Computer Security
Center), .
,

,
, , ,
, .
, ,
D, .
D ,
.
, ,
, ,
. () : 1
,
. 2 :
,
,
;
, ,
,
(
);
(auditing)
, ,
, ;
,
.
,
, .

289


, .
,
.
.
,

.
(, )
, ,
2. , ,
. ,
2 . ,
,
.
90 % , , ,
. ,
,
. ,
Solaris ( UNIX) ,
.



, .

,
, .
() ,
.
,

, ().
90- XX ,
.
, .
, ,
.
, ,
, . ,
,
;
, ,

290

9.

;
, ,
; (, UNIX)
.
, ,
,

.
. ,
, .
. ,
-.


.

,
.
, .

,
, .
, ( )
, -,

.

Mach.
,
.

, .
,

.
:
;
;
(Inter-Process Communication, IPC);
- ;
(host)^ .
. , IP-.

291

,
, ,

. .

,
; ,
:
. , ,
.

,
, ,
.
,
, .
, -
.

, , ,
, .
. ,

.

,

. ,
.
,
,
. ,
,
. ,

.

QNX. QNX
, ,
( QNX
. 10).
,
, Intel 486. ,
8 46 .

292

9.

QNX,
,
. / QNX
,
. ,
.


, ,
,
( ) .
, .
.
,
[29,30]. ,
,
.

.
, -.
, ,
, . ,
,
, , .
, .
, ,
.

. -

, .
,
, ,
, , , .
-.
,
,
. -,
, -, .
,
,

.

293

.
, -
, .

Windows NT, -,
.
, .
-
, -.
NT (New Technology)
,
- () . ,
QNX Windows NT/2000/
.



, ()

. .
.
.

.
.
,
. ,
, /
.

- ,
, ,
, ,
, , ,
, ,
.
,
.
,
, ,
.
. ,

294

9.

,
.
.
( ),
, ,
.
.
. ,
. , ,
Ethernet TCP/IP.
, Ethernet
, ,
, IBM Token Ring ARC Net,
.
, .


1.
{ multi-threaded),
. ,
. , , ,

. , , Windows 3.11
Pentium IV 3000
,
.

(). ;
, .
( )
.


2. ().
, , .
,
(DeadLine DrivenOS).
, ,
.
, , ,
.
: .

295

.
, .
; ,
,
. ,
, .


3. .
,
,
. ,
. , , UNIX .
UNIX , ( ),
(pipes) .
, .

.
, .
,
, ,
,
. ,
,
. ,
.
,
, ,
. ,
, (,
, ).
,
. .

, . ,
,
. ^ .


4. ,
. (
) ,
. -

296

9.

,

. ,
. ,
.

5.
.

.
:
,
:
(
);
(
);
.


,
.

(API),
.
,
:
, ;
;
( ,
, , , );
(Remote Procedure Call, RPC).
:
;
;
(,
);
( ).

297

-:
(,
-
,
);
( ,
, ).
,
.
,
,
(, )
.
. , ,
MS DOS C0MMAND.COM.
,
, , ,
, API. ,
(Graphical User In
terface, GUI),
(track-ball) ^
-
, , /
. . ,
.
, GUI
- ,
GUI
API.
, . ,
-,
,
.

API
, .
API
.
, (NoteBook)
, .
, (touchpad).
,
.

298

9.

, , MS DOS,
( 180x86
), .
API int 21h.
,
API. ,
. ^ API,
(Run Time Library, RTL)\
,
.
, , ,
.

, API (Application
Program Interface )
:
API , RTL;
API ,
;
API.
, ,


. API ,
.
, API ,

.

,
.
, ,
, .
API ,
,
. API
RTL ,
. ,
.

299

.
API.
API
,
.
.
API ,
, ,
.
API:
;
;
.

API
. API
.
API :
API
,
;
;

.
API,
,

( ).
API
,
.
API
API.
,
.
, .

API

API
API. , -

300

9.

,
( ),
, .
,
.

.
API API.
API
,
. ,
,
, .

,
API, ,
.
,

.
, API
.

.

()
API, .
API ,
Microsoft
Windows WinAPI (Windows API). ,
API ,

Windows. API

MS DOS,
.

API

API

.
(RTL).

301


, .
, API
,
. , API
RTL
.
RTL
.

,
.
.


.

.


. ^ RTL.

RTL . RTL

.
,
. malloc, realloc free ( new delete C++),
new dispose.
,

. ,
.
,
.
.
, (, malloc
new )
.

.
,

.
API. , -

302

9.

.
,
. , ,
,
, ,

. API.
, malloc, realloc free
. , -
, .

. ,
, ,
.

API

API
,
.
,
.
(
).
API
,
, RTL .

RTL.
,

, .
. ,
- ,
.
, , POSIX (.
), .
,
.
XLib,
-Window.
.
- , -

303

.
MFC (Microsoft Foundation Classes) Microsoft
VCL (Visual Controls Library) Borland,
Windows.
-
,
.
,
, CLX Borland
Linux Windows.
API
API, .


. API
.

.
,
, .
,
, API.
, ,
API. :
,
. , ,
Basic,
. API
,

. ,
API. ,
256 :
unsigned char * ptr = mall (256):

.
malloc, RTL .
, , malloc
API:
LPVOID 11(
HANDLE hHeap. // handle to the private heap block -
DWORD dwFlags. // heap allocation control flags -

304

9.
DWORD dwBytes // number of bytes to allocate -
):


, .
, , API
:
unsigned char * ptr = (LPVOID) HeapAllocC GetProcessHeapO. 0. 256):
,
, , , ,
. , API
.
API
. API,
.
, API .
API , ,
. ,
,
.
, ,
POSIX. ,
. , POSIX,
API, ,
,


.
API
Microsoft, WinAPI.
: Win 16, Win32s, Win32, WinCE. WinAPI
( , ,
) . ,
WinAPI .
,
POSIX.

POSIX
POSIX (Portable Operating System Interface for Computer Environments
)
IEEE (Institute of Electrical and Electronics Engineers
), ,
, pstat, kill, dir .

305

POSIX

, ,
. , POSIX,
, ,
, .
UNIX-, .
POSIX IEEE
UNIX-
. POSIX UNIX; ,
, IEEE Standard 1003.11990 (POSIX. 1). , QNX
,
, UNIX- ,
.
(Virtual Memory
System, VMS), (Multiprocess Executing, MPE)
(CTOS). , POSIX
POSIX.l-POSIX.12. . 9.1
, .
, POSIX. 1
API .
9 . 1 . POSIX

ISO

POSIX.0

.
,

POSIX. 1

API ( )

P0SIX.2

( IEEE)

P0SIX.3

P0SIX.4

P0SIX.5

ADA
POSIX. 1

P0SIX.6

P0SIX.7

P0SIX.8

, ,
,
, RPC,
,

P0SIX.9

Fortran,
POSIX. 1

POSIX. 10

Super-computing Application Environment Profile (AEP)

POSIX. 11

AEP

POSIX. 12

(GUI)

306

9.

, , ,
POSIX- .
.
,
. POSIX, .
POSIX .
. 9.1
POSIX .

POSIX

>\

1 f

POSIX. 1

>1


(110 )

1 t


. 9 . 1 . , POSIX

,
POSIX. 1 RTL ,
110 ,
POSIX. 1.
,
,

, ,
POSIX.
POSIX .
UNIX-
IEEE Standard 1003.1-1990, WinAPI POSIX. Windows NT
API POSIX,
.

, WinAPI. ,
WinAPI, POSIX
- stdin
stdout [57].

API

307


API
API

,
,
. : Windows (
WinAPI) Linux (POSIX API).
,

(),
()
.
.
,
.

.
, API
.
( 9.1) (
9.2) , ,
, API,
. ,
GUI,
.
9.1. Windows (WinAPI)
#inclucle <w1ndows.h>
,#include <stcl1o.h>
#include <stdl1b.h>'
// : processFile
// :
// : IpFileName -
// :
DWORD processF1le(LPV0ID IpFileName ) {
HANDLE handle; //
DWORD numRead. total = 0;
char buf;
// ( )
handle = CreateF1le( (LPCTSTR)IpFileName, GENERIC_READ,
FILE_SHARE__READ. NULL. OPENJXISTING. FILE_AnRIBUTE_NORMAL. NULL);
//
do {

308

9.

9.1 ()
II
ReadFileC handle. (LPVOID) &buf. 1. &numRead. NULL):
i f (buf == 0x20) total++;
} while ( numRead > 0):
fprintfC stderr, "(ThreadID: ^Lu). File %%. spaces = ^d\n".
GetCurrentThreadldO. IpFileName. t o t a l ) ;
/ /
CloseHandle( handle):
return(O):
}

// : main
// :
// :
// :
int mainCint argc, char *argv[]) {
int i:
DWORD pid:
HANDLE hThrd[255]:

/ /

/ / ,
for ( i = 0: i< (argc-1): i++) {
/ / -
hThrd[i] = CreateThreadC NULL. 0x4000.
(LPTHREAD_START_ROUTINE) processFile.
(LPVOID) a r g v [ i + l ] . 0. &pid):
fprintfC stdout. "processFile started (HND=^d)\n". hThrd[i]):

/ /
WaitForMultipleObjectsC argc-1. hThrd. true. INFINITE);

return(O);
}
,
. , ,
.
9.2. Linux (POSIX API)
finclude
#include
#include
#include
#include

<sys/types.h>
<sys/stat.h>
<wait.h>
<fcntl .h>
<stdio.h>

/ / : processFile
/ / : , -
/ / : fileName -
/ / : -
i n t processFi1( char *fileName) {
i n t handle. numRead. total = 0:

API

309

char buf;

// ( )
handle = ( fileName, 0_RDONLY);
//
do {
//
numRead = read( handle. &buf. 1);
if (buf == 0x20) total++:
} while (numRead > 0):
//
close( handle):
return( total);
// : main
// :
// :
// :
1nt maindnt argc. char *argv[]) {
1nt 1. pid. status;
// ,
for (1 = 1; 1< argc; 1++) {
//
pid = forkO;
if (p1d == 0) {
//
//
pr1ntf( "(PID: %6). File ^s. spaces = ^d\n".
getpidO. argv[ 1]. processFile( argv[ 1]));
//
exitO;
}
//
else
printf( "processFile started (p1d=^d)\n". pid);
//
if (pid != 0) while (wait(&status)>0);

return;
}

9.2 , ,
. , UNIX
, ^
,
.
, API.
, ,
, ,
, , .

310

9.

, . , ,
API -
,

,
.


1. ?
2.
.
3.
?
? ?
4. .
? , ,
?
5. ? ,
.
?
6. ,
.
7. ,
.
8. (API)?
9. API?
?
10. (RTL)?
11. POSIX? ,
, POSIX?

10.


, ,
, ,
,

IBM PC.
, ,
Windows Microsoft.
Windows 95/98/, Windows NT/2000, Windows /
2003 (. 11).
,
Microsoft, UNIX- Linux FreeBSD,
QNX OS/2.
Linux FreeBSD,
,
UNIX,
UNIX-. QNX ,

. OS/2 .
3a6biTaS

,
.

,
, . -
,
.

312

10.

UNIX
UNIX
.

. UNIX
, , , ^
-
.
12
. UNIX

, ,
( ), UNIX, ,
, ().

, .




.
.
.
^:
, -
;
,
,
, ;

.
, ,
, .
,

, .
UNIX .

, MULTICS (MULTiplexed Information and
Computing System). UNIX UNICS (Uniplexed
Information and Computing System).

UNIX

313

.

,
.
UNIX ,
. ,
, , UNIX

.

, ,
. UNIX- 30 ,

.
, UNIX-,
, ,
, ,
C++, , PERL, FORTRAN , (
), ,
, ,
.
,
( , ). ,

. ,
, .
UNIX- (kernel).
.
:
, , -
.
,
.
(
) .
, .

.
, . ,
,
, .
,
, .
UNIX
.

314

10.


UNIX ,
; . ,

UNIX ( Linux).
, [39]
, [23,43]. ,
,
,
, ^
UNIX, Windows.


UNIX .
( ) ,
: (
, ,
, ),
, , . ,
, . ,
. :
;
;
;
;
.
.
UNIX , -
. ,
(swapping).
, , ,
, ,
. , Linux ,
^ (swap-file),
,
. , ,
.
:
(
);
082h.

UNIX

315

(
);
(

).
UNIX-
.
.
,
swapping.

, UNIX
. , UNIX
. ,
, ,
, (account name, login) (password). ,
, , ^ ,
.
.
, / .
.
UNIX
(User Identifier, UID), ,
. ,
,
(Group Identifier, GID). UID GID

, ,
.
, ,
, . .
UNIX
. UNIX
[39].
,
.
, (home)
.
, .
, ,
.
, ,
.

316

10.

, ,
, ,
, , .
UNIX
UID. UID (supeniser) root ().
. ,
.
.
^ . ^
, ,
, su. su
, , ,

. ,
, exit,
.

UNIX ,
.
, ,
,
. .
, .


UNIX
.
( ,
/etc/passwd).
,
.
UNIX (shell),
. Linux
bash. ,
.

, ,
.

,
,
.

UNIX

317

, UNIX, ,
, ,
.
(shell scripts),
.

.

, UNIX
X-Window. X-Window ,

. Windows Microsoft,
UNIX- , .
, ,
.
, Linux,
,
.
UNIX- -.
X-Window - -,
,
. ,
.
,
. ,
. , ,
, .
X-Window (
). ,
.
(GUI), X-Window .
Linux
KDE GNOME. X-Window UNIX
( Linux) startx.


, (shell) UNIX-
. ,
,
,
. , ,
,
, .

318

10.

(
), , .
.
, .
:
,
;
,
;
, .
,
( , vi, . .) ,
. ,
UNIX, ,
main ( main
, static).
,

, main.
main, , (
main),
, ,
.
main argc argv.
arge ,
, argv
, .
( arge
1). main
arge
.
,
, ,
:
#1nclucle <stdio.h>
main (argc, argv)
1nt argc:
char *argv[]:
{
i f (argc != 2)
{ printf("usage: ^s your-text\n". argv[0]):
exit:
}
pr1ntf("%s\n". argv[l]):

UNIX

319

UNIX ,
,
. , ,
.
, ,
,
main. , ,
( main) . .

API fork() (__).
fork() ,
(
).
.
, fork() (
) ;
,
fork(). , (
) , fork() :
.

(PID). ,
.
, ,
exec,
, , , ,
,
main . exec ,

, main.
,
, fork,
, . .
,
. , exec,
.
,
, Is ,
.
ma1n()

{1f(fork()==0) wait(O):
/* */
else execlC'ls", "Is", 0); /* */

320

10.

, UNIX ,
fork().
()
fork(). ,
. () ,
.
1
. 1,
init,
.

, ,
UNIX-.


,
.
.

.
,
.
. .
,
, .
. ,
,
.
.
UNIX- (time sharing),
.
,

.
.

. ,
, , ,
, , .
.

.
.

UNIX

321

-
- UNIX
: open, close, read, write seek.
:
f1le_descr1ptor - open (f1le_name. mode)
mode (, ); file^descriptor , ;
file_name .
:
after__reading_bytes - read (file_descr1ptor. buffer, bytes)
after^writlng'bytes - write (f1li_descr1ptor. buffer, bytes)

bytes , ;
after_read1ng_bytes after_writing_bytes
.
,
:
,
;
,
,
;
seek (. ),
, seek.
.
,
seek,
:
Seek (f11e^descri ptor,di splacement.di splacement_type)
displacement^type ( ) ,
,
512 .
, seek ,
, ,
UNIX-
.
, :
close (file^descriptor)

gtty, stty, stat


.
- .
UNIX-
. ,

322

10.

,
.
, ,
. login.
- UNIX
, .
(stream)^ , (
).

.
, ,
.
.
,
.

seek.
, ,
.

-
-
, UNIX. ,
, . UNIX
, 60- 70- ,
-
.
,


.

UNIX. -, -
.
( ,
). -,
( ).
. 1 (stdin),
2 (stdout),
3 (stderr). -
, , ,
.
, (thread).

UNIX

323


,
.
(
),
^

.
exec ,
1, 2 3.
,
. , ,
-
,
stdin, stdout stderr. ,
- printf, scanf error
. printf
stdout, scanf stdin, error
stderr.


UNIX
. ,
, , ,
.


,
.
.
512 . ,
UNIX-, .
. , FFS
(Fast File System )
8192 .

(. 10.1):
;
, ,
;
-, , /-;
.

324

10.

1- 1
1-2
1-

>
i-



. 10.1. UNIX

f- :
;
;
;
, ;
;
;
(modification time) ;

UNIX

325

(change time) ;
-, ;
(, ).
f- ,
. , ,
.
, UNIX ,

, -,
, , , .
.
^
i- ( f-
-). ,
.
.
-, ,
.
.
.
,
. .
UNIX .
, , , ,
, .
, ,
.
,
(/) () .
,
. ,
. , ../ (
), ,
. stuff () stuff
. /work/alex/stuff work
, alex work , ,
stuff alex. (/) .

, work (
), alex , stuff
alex.
, , ,
, . . .

326

10.

, . UNIX-
. . ,
,
() . , ,
. 1, ,
.
.

. -
,
, .
/dev.
, .
,
, . mount (
. .) .
mount ,
: .
,
, ,
.
. umount
,
. ,
,
.
^
,

. , ,
. , Linux
EXT2FS,
EXT3FS. , .


,
, .
: (read), (write) (execute).
:
, , , .
,
, , ,
.
,

UNIX

327

(UID) (GID).
.
, .
, ,
( ),
.
(File System access User
ID, FSUID) (File System access Group ID, FSGID), a
(Effective User ID, EUID) (Ef
fective Group ID, EGID). ,
(capabilities), .
UID, FSUID
, , GID, FSGID
.
,
. : ,
.
(
) , ,
. . ,
.
(
). ,
, , ,
.

, . SUID SGID
: ,
(), () ,
. SUID (SGID),
FSUID EUID (FSGID EGID)
, , UID (GID) .

, .
, , SGID,
GID FSGID , GID
. : ^
,
. SVTX,
. , ,
, .
. (subdirectory).

328

10.

,
, .
:
- () ;
d ;
;
b ;
(named pipe);
a s (socket)^
I .
, ,
, .
, w, ,
- - ()
.
SUID (SGID) S
(), ,
S, .
,
, GUID
(4), SGID (2) SVTX (1), ,
. ,
4, 2, 1.
, /tmp
drwxrwxrwx, 041777 (; ,
; ^ SVTX). -r-S-xw-,
102412, , ,
, , (
) (
), ,
, .

, ,
.
(userfile-creationmask, umask),
. , u=rwx, g=rwx, o=r-x
: ,
. 002
( , ,
, TCP/IP,
UNIX. ,
.

UNIX

329

; 4, 2, 1).
chmod.


UNIX
-.
, . ,
, , . .
-.
, -, UNIX
:
;
;
;
;
;
.
, .

[43].

,
,
, :
;
;
( ).
UNIX ,
,
(). ,
, ,
, .
,
, .

.
- .

, UNIX-,
, -

330

10.

.
UNIX :
;
,
;
, ;
, .
:
semget ;
semop (

);
semctl
.
semget :
id = semget(key. count, flag);
key flag .
count ,
.
.
semget
, ^ ,
( -
semctl).
semop:
oldva! = semopdd. oplist, count):
id , oplist
, count .
, ,
. oplist :
;
;
.
oplist
,
.
oplist
, .
, ( , ,
, ( UNIX).

UNIX

331


, oplist.
, ,
, ,
{
UNIX).

,
. ,
() ,
.
, ,
, ()
.
,

, .
, semop, (
oplist),
, semop
- .
, - semop
IPC_NOWAIT, UNIX
,
1,
IPC_NOWAIT.
;
, .
semctl :
semctKid, number, cmd. arg);
id , number ,
cmd , arg ,
- . ,
semctl .
,

.


7.
, , , .
(pipes) UNIX
.

332

10.

,
FIFO (First In First Out ).
, , , ,
.
.
UNIX
(
, ).
UNIX
.
,
.
(
).
(
) open.
pipe
( ).

read, write close.
pipe :
plpe(fdptr):

fdptr ,
,
(
read) ( write).

,
. read
write
^ (,
- ).
(
) open.
,

,
, .
. .
(
, )
read write.
, ,
( ) .

UNIX

333

( ,
) close.



, :
msgget
;
msgsnd (,
);
msgrcv (, );
msgctl .
(),
.
msgget :
msgqid - msgget(key. flag):
key flag , semget
.
msgget UNIX-
,
,
, ,
.
msgsnd:
msgsndCmsgqid. msg, count, flag);
msg ,
( );
count ; flag ,
.
msgrcv:
count - msgrcv(id. msg. maxcount. type, flag);
msg
, ; maxcount
( ) msg; type ,
; flag , ,
,
. ,
.

, (,
) :
msgctl(id. cmd. mstatbuf):

334

10.


:
shmget
;
shmat
;
shmdt
;
shmctl ,
.

,
,
.
shmget :
shmid = shmgetCkey. size, flag):
size .
.
, ,
,
(
,
shmctl). ^ ,
,
, , .
.

. ,

.

shmat:
virtaddr = shmat(id. addr. flags);
id ^ ; addr
,
.
(
addr). addr ,
.

shmdt:
shmdt(addr);

UNIX

335

addr ,
shmat. (
),

.
shmctl:
shmctldd. cmd. shsstatbuf);
cmd ,
.
, .

, , , ,
.
,
shmget ,
, , -
.

.


. () ()
() ,
( -
). ,
.
(Remote Procedure Call, RPC). ,
, .
. UNIX
,
,
.
- , .

. RPC
,
.
(RPC) ,

, . ,
,
,
. , ^
.

336

10.

[39].
1. - ,
(stub). - ,
.
(marshalling).
2. ,

, (unmarshalling),
.
.

Linux
Linux UNIX-
, POSIX.
, Linux UNIX-,
(torvalds@kruuna.helsinki.fi) ().
,
, ,
, .
, ,
.
, Linux
UNIX-, .
,
. Linux
GNU Free Software Foundation (, ).
.
Linux UNIX-
IBM PC i80386. Linux
,

. Linux
, .
.
Linux UNIX, ,
.
.
Linux
( , UNIX). ,
,
.
(

UNIX

337

)),
. .
.
:
Mandrake Linux release 9.0 (dolphin) for i586
Kernel 2.4.16-16mdk on an i686 /ttyl
Vienna login:

BO ttyl ,
.
.

, Alt+F1, 1

. Linux ,

.
, -
Ctrl+Alt+F1.
.
Linux UNIX (
UNIX) ,
IEEE P0SIX.1, System V BSD.
.
UNIX Linux
^ , Linux, ,
, ,
. Linux
POSIX ( ,
csh bash), (pty),
.
Linux .
, EXT2FS,
Linux. , Minix-1
Xenix. , FAT,
,
. ISO 9660 CD-ROM
CD-ROM.
HPFS NTFS, , .
FAT32;
Linux VFAT.
, Linux
UNIX
Linux.
,
Linux .

338

10.

Linux, UNIX-,
TCP/IP . /

Ethernet, SLIP (Serial Line Internet Protocol), PLIP
(Parallel Line Internet Protocol), PPP (Point-to-Point Protocol), NFS (Network File
System) . TCP/IP,
FTP, telnet, NNTP SMTP.
Linux 32 80386 80486 Intel. , Linux

ia32.
Linux
^ Intel.
, ,

-.
.
,
. ,
,
.
, .
UNIX-, Linux ,
.
,

. ,
.
,
. ,
() ,
.
UNIX,
, Linux
.
Linux .
, ,
.
, ,
, . ,
, UNIX-, .
, Intel AMD
, ia32 32-
.

UNIX

339

,
. 64-
Intel AMD.

.
, , ,
, . ,
,
.

(Dynamic Link Library, DLL),
, .
, ,
.
,
,
. Linux
,
.

FreeBSD
Linux
UNIX FreeBSD.
,
Linux ,
. .
,
,
.
, ,
. ,
,
\ , ,
, , .
, (
, - ).
, , Linux
, ,
. ,
, .
Linux , ,
( . install ).

340

10.

,
, . . ,
, (
UNIX-) , ,
Linux FreeBSD
, .
,
, , .
BSD .
, FreeBSD -- UNIX-
. ,
, Linux, . ,
, Linux,
BSD .
, , ,
FreeBSD.
, FreeBSD Linux ,
FreeBSD ,
Linux .


QNX
,
().

. ,
( , )
Windows . Novell NetWare ,

.
( ,
), .

.
IBM PC
Intel 80386 ,
(32-)
.
,
, . ,

,
/ . -

QNX

341

,
( , )
. ,
cuoco6iiSi
,
. ,
.
QNX ,
ia32.
,
, . QNX

,
. ,
.
.
POSIX.
QNX
.
QNX, ^ ,
(). ,
.
UNIX,
POSIX. QNX UNIX, -
. QNX , ,
QNX Software Systems Limited 1989
, ,
UNIX.
QNX ,
.
( )
( ),
.
. ,
QNX [14].

. QNX ,
,
, (,
) . UNIX
,
. UNIX
(
Windows NT).

342

10.


QNX (embedded)
. ^ /dev ,
, UNIX-.
( ,
) , .
, ,
.
,
,
. ( )
, ,
. ,
. ,
.
FLEEP ,
,
.
Photon,
, ,
GUI ( Motif),
POSIX- 4
, i80386 .

QNX
, QNX
,
.
, ,
, ,
.

QNX , ,
.
QNX
( 10 , 32 ,
46 ),
. [26]:
IPC (Inter Process Commu
nication );
(redirector) ;
, .

QNX

343

( , );
( Net).
IPC
,
, , .
QNX
(0-65 535 ) .
, , .
.
, . ,
, .
, ,
,
. , , ,
,
, . ,
, .
, ,
, QNX,
, . QNX
(proxy)
(signal).
'1, ,
.
qnx_proxy_attach() . ,
. ,
, Trigger(),
. Trigger() ,
.
, 65 535 .
,
, UNIX. QNX
, POSIX, ,
UNIX (
, QNX
), , QNX.
, ,
( , ).

.
.
.

.

344

10.


, .
,
, .

. ,
,
. ,
,
.


, .

.
:
.
.
QNX
,

, ,
, i :.


:
- ;
, ;
- .

() 31 (
).
(
). QNX :
(First In First Out, FIFO)
;
(Round Robin, RR)
, ;
( ).
FIFO .
, ,
.
-

QNX

345

,
.
RR , , ,
, ,
.
, ,
:
,
,
1;

, 1;
, .
.
QNX. ,
,
. .
.
, . ,
( -
). -
-.
QNX
. , , ,
.
, ,
,
.
.
, ,
.
QNX,
,
.
. ,
, . , ,
,
, .



QNX ,
. , -

346

10.

,
Net. Net
. .
QNX
: Ethernet FastEthernet, Arcnet, IBM Token Ring . ,
.
QNX 4
-. , ,
, , ,
. , QNX
. (, , )
. QNX
Ethernet, Arcnet, Serial To
ken Ring, .
,
.
(on-line),
.

. QNX
( ) ;
. ,
, , ,
. ,
, .
FLEET.
QNX-. ,
,
.

.
, QNX
FLEET
FTL (FLEET Transport Layer).

IPX NetBios , .
FLEET,
:
Fault-Tolerant Networking QNX
,
;
Load-Balancing on the Fly
QNX
;

QNX

347

Efficient Performance , QSSL


,
;
Extensable Architecture
;
Transparent Distributed Processing

- ,
.
FLEET QNX
.
,

RPC. , ,

[18].
, make QNX
,
.
, ,
,
, ,
.
,
(
QNX ).
, ,
- - , QSSL,
,
.
.
,
, Net,
.
, Net
. ,
,
,
. . Net
TCP/IP, SMB (Server Message Block)^ , , IBM
Microsoft .
Microsoft CIFS (Common Internet File System).

348

10.

.
QNX
, .
, ,
. QNX/Neutrino^

POSIX,
.
Neutrino;
. .
QNX .
, .
, - ,
.
, QNX
. .
, .
-. ,
, ( task)
.
, task , ,
.
,
.
.
,
.
,
, .

. , (
64 ), QNX .
, .
: , ,
.
,
.
()
, ^ ,
. ,
, .
, ^ Neutrino .

QNX

349

,
,
. ,
.
,
, ,
.
. , ,
.
, QNX
, .
, ,
.
, ,
1. ,
; ,
. (
) .
, .
. .
QNX

,
, .
, (
). ,
,
-, .
.
32 (
). 20 .
:
Q ,
G ,
Q .
.
,
, ,
.
, .,
. ,
.
.

350

10.

,
(, ).
.
, ^ - ; ,
.
, ,
. QNX ,
,
( ).
,
.
, () .
,
.
, ,
.
. , ,
. QNX 16
, ,
. 16
.
,

.
,
, .
(, ), .
.

.
, ,
.
QNX,
,
. . ,
,
. QNX
,
, , ,
-
. , ,
. .
.
, ,

OS/2 Warp IBM

351

.
. , ,
,
. ,
, .
-, ,
. , ,
, , ,
.

OS/2
Warp IBM
,
OS/2 , .


, ,
, . (
, ,
), . -,
IBM
, ,

. ( )
,
, IBM PC
. -, IBM

, .
OS/2
IBM .
,
, ,
. ,
, OS/2.
, ,

,
Windows NT/2000/XP,
. :
OS/2.
32- OS/2 IBM-
OS/2 v 2.0

352

10.

1992 . 16-
OS/2, i80286.
, ,
. 16-
.
,
, ( ,
).
16- OS/2 1.x 32-
, 32-
OS/2 .
IBM , 4.5.
IBM , , OS/2,

.
OS/2
Warp, . OS/2
Warp 4.0 OS/2 Warp 3.0 ( 1994 )
DOS-
- . :
(preemptive multitasking) DOS Windows- (Win32s^) ;
Q -
;
OpenDoc;
Q OpenGL;
Java- Java;
True (TTF);
( Voice );
/, Com
puServe^;

IBM LAN Server, Windows, Lantastic, Novell Netware 4.1
( TOM );
;
Mobile File System
;
(Plug-andPlay), , Windows;
^ Win32s Windows.
^ .

OS/2 Warp IBM

353

^ ( , ,
, , , ,, );
, ,
WarpGuide.

,
, .
OS/2 Warp
(API), ,
. OS/2 LAN
Server, OS/2 Warp OS/2 Warp Server 4.5,
, ,
.
, IBM

(FixPak). ,
.
, , ,
( Microsoft).
, , ~ Win
dows NT 4.0 Microsoft 6 (ServicePak), OS/2 Warp 3.0,
1994 , IBM
FixPak. OS/2 Warp 4.0 15
.
,
. ,
,
, ,
,
, .
,
,
, .
,
,
. ,
10 .
, ( BonusPak)
Microsoft Office, , ,
, ,
Microsoft Office.

354

10.

,
.

. ,

(, , ,

).
, ,
,
REXX, .
, , ,
(batch) DOS,
.
. , OS/2
. REXX
Visual REXX. -
REXX .
OS/2
- ,

VDM-
DOS-.



OS/2
.
,
: OS/2 ,
2.0, 1992 .
, OS/2
.
.
() 1995
OS/2 Warp Advanced Server.
Windows NT 4.0
( Pentium 90 Pentium 300),

, OS/2.

OS/2 Warp Server
Windows NT.

OS/2 Warp IBM

355

OS/2
, 180x86. ,
1 ,
. .
, -,
,
. .
(
) .
OS/2
. 32- 16- OS/2

DDE OS/2.
DOS Winl6
. DDE
OLE 2.0 , DDE 32- OS/2.
, Win 16
Win 16,
, Windows 3.x. , ,
, API Win32, 90-
XX .
API OS/2, SOM (System Object
Model ),
DLL,
. OS/2
API,
, , .
DOS- (Virtual DOS Machine, VDM), VDM-,
DOS 8086, VDM.
.
.
OS/2
,
.
,
.
.
, .
,
, ,
.
,
. -

356

10.

,
, IPC
, .
,
.
, , .
,
() . (^)
, .
,
. ,
IPC .

.
,

. .
IPC ,
, ,
. .
, , .
.
- ,
.
. IPC
.
. ,
,
. ,
, ,
, , .
,
IPC- , .
-
OS/2 -,
, -
(Direct Memory Access, DMA), a 1
, .
:
, ,
, .
( ,
.

OS/2 Warp IBM

357

,
), , ,
.
,
, .
.
,
OS/2, ,
,
, , ,
. ,
, ,
. - ,
-, - ,
, , ,
,
. - ,
, .
-
UNIX.
,
, ,
, .
(
), - .
,
,
, .


OS/2 Warp
Workplace Shell (WPS),
, Windows-. Workplace Shell
(SOM) IBM ,
,

. Workplace Shell SOM,
,
, REXX.
GUI Windows, (shortcuts)
, WPS , (shadow^
Shadow (- ) OS/2, ,
.

358

10.

WPS),
.
.

. GUI, WPS
, ,
GUI ,
.
SOM ,
- ,
.
. OS/2
, SOM

. , , OS/2
90- ,
Windows Whistler.
- ()
,

, ,
.

, - .
SOM
. SOM
CORBA (Common Object Request Broker Architecture
),

.
OS/2 .
,
OS/2, FileBar,
,
4 , Object Desktop,
OS/2 .
, 1 OS/2,
, . ,
Xfree86 for OS/2 -Window,
UNIX-,
, UNIX OS/2. ,
, UNIX-
, , ,
Xfree86/OS2.

OS/2 Warp IBM

359

OS/2 Warp 4.5


IBM,
1999 , OS/2
WarpServer for e-Business, .
(Aurora),
.
, OS/2
512 32-
. . , ; , ,
512 .
(,
Windows NT 4.0
2 ),
OS/2 v. 4.5
2 , VIRTUALADDRESSLIMIT=3072
CONFIG.SYS 3 .
OS/2 v. 4.5
16- ,
, 32- ,
. , 32-
(IFS),
32bit->16bit->32bit.
32-
16- API.
JFS (Journaling File System
),
HPFS386.IFS.
JFS ,
. JFS
.

, .
.
, , NTFS,
. ,
JFS
, ,
.
LVM (Logical Volume
Manager ). LVM
,
.
, .

360

10.

.
JFS
.


1.
UNIX. UNIX
Windows.
2. , UNIX-.
3. forkO?
UNIX ?
4. , UNIX.
5. NTFS, Windows NT/2000/XP,
, UNIX-.
6. UNIX.
?
7. (RFC)?
8. GNU
. .
.
9. Linux. , ,
Linux? Linux
FreeBSD.
10. -Window? ?
Linux ?
. QNX?
.
12. QNX , ?
FLEET?
13. QNX?
14. Windows NT 4.0,
, QNX?
15.
QNX.
16. OS/2.
?
17. OS/2,
?

1 1 .
Windows
, Microsoft
.

.
,
Windows 2003,

.71. (
) Microsoft
Windows .
Pocket PC
Microsoft Windows Mobile 2003 for Pocket PC. (
Windows Win32 API,
.)
Windows, , ,
, Microsoft
,

. Windows ,
MS DOS,
(. 4)
.
. ,
Apple.

, , , ,
.
(Graphical User Interface, GUI)
Microsoft ,
. -

362

11. Windows

Microsoft
,
, ,
.
, Windows,
.
. , Windows,
Windows 95, Windows . ,
,
. .
Windows ,
^
, .
, Linux, QNX OS/2,
, Windows
^ .
,
.
. ,
, .
, ,
^ , (batch)
Microsoft, bat,
C0MMAND.COM, DOS,
CMD.EXE, Windows NT/
2000/ .
CMD.EXE 32- .
,
. , ,
, ,
, -
.

, .
^ ,
,
.
,
,
UNIX (Linux, FreeBSD
. .), QNX, OS/2.
,
, , .

Windows 9

363

Windows 9

, Windows,
1985 ,
i80286.
( Intel
, ,
),
.
32- (i80386 )
Windows 16-

32- . , i80386
1985 . ,
,
4.
16- i8086
i80286 ( ),
32- .
Windows, , Mi
crosoft
OS/2. , Windows NT
OS/2, 3.0.

, ,
, Microsoft Windows
,
IBM. Windows, 1990
Windows 3.0.
, i80386,
, ,
Winl6 API. ,
DOS-, .
MS DOS.
WIN.COM
Windows. ,
MS DOS. Windows 3.0
.
Windows 3.0 Windows 3.1 , ,
Windows 3.11 for Workgroups.
, , , ,
16 ,
, 32--

364

11. Windows

; ,
.
Microsoft,
, Chicago.
1995 Windows 95.
Windows 95, ,
: 1992 . 32-
OS/2 2.0, 1995
2.2
. , .
, ,
IBM . ()
OS/2 .
, IBM, Microsoft
Windows 95
. 16-
Windows 3.x, .
, 32-
.
Windows 95
,
, ,
.
, ,
Windows 95 ,
, .
,
Window^s 95,
OS/2.
Linux .
1996 Windows 95 (
Nashville), Windows 95 OSR 2 (OEM Service
Release 2). ^
( FAT32),
.
1998 Microsoft ,
Windows 98. 32-
,
, 16- ,
. ,
32- WDM (Windows Driver Model)^
Windows,
.

Windows 9

365

,
Windows NT.
USB (Universal Serial Bus
).
.
Windows 98 SE^ .
, ^ Microsoft
,
Windows 95. Windows Millennium Edition^ (ME).
Windows ME, Microsoft :

( ) ;
; ;
. ,
( , )
DOS,
. Windows ME
, ,
,
DOS, .
Microsoft
Windows Edition, Windows NT.


Windows 9 IBM-
.
( , ia32)
. Microsoft,
,
; ,
.
Windows 9 , ,
, .
.
(, ,
),
, 32- .
,
(desktop), (taskbar) (Start),
. ^ SE Second Edition .
^ 2000 .
^ millennium .

366

11. Windows

(profile),
^ Profiles,
. ,
, ,
.
pwl, ,
, ,
.

(
Plug and Play ).
(Configuration Manager). ,
, ,
IRQ (Interrupt Request ),
-,
. ,
.
Windows 9 ,
,
.
.
-

,
.
Windows 9
32- ()
.
. :
Kernel, User GDI. Kernel
, : ;
; ; ,
; ; -; ;
; 32- 16-
16- 32- ( )
; . User
( )
.
, , ,
,
. , ,
GDI (Graphical Device Interface (directory)
(folder).

Windows 9

367

), ,
,
- . GDI
, .
Windows 9
,
,
.
(registry).
INI-, Windows 3.x.
system.dat user.dat,
. ,
, ,
user.dat ,
. user.dat
.
Windows 9
-.
.
Windows 9
. ,
,
.

, - ,

.
, -
, .
,
, Windows 9
.
, .
VxD (Virtual Device ),
,
, .
X , ,
, , .
VDD, .
VxD
, , ,
, , (
), , . -

368

11. Windows

,

, . Windows 9
,
.
.
,
/ . , , ,
,
- .

; ,
,
. Windows 9
, .
.
,

. - (Input/Output Supervisor, lOS).
,
.

. :
VFAT (Virtual FAT)
-;
CDFS -;
UDF (Universal Disk Format) ,
Optical Storage Technology Association,
DVD-ROM CD-ROM (
Windows 95);
Microsoft
Novell (Netware).

(IFS).
. , Windows 98
NTFS. ,
, .
NTFS ,
.
Windows 98 Windows ME
FAT12 ( ), FAT16 FAT32.
.

Windows 9

369

Windows .
,
.
NetBIOS SMB (Server Message Blocks).
,
, Windows 95 Win
dows 98 -.
.
,
,
.


,
, Windows 9,
,
.
, .
, , ,

.
,
, - . ,
Windows NT, UNIX,
. Windows 3.x
, . ,
Windows 9
, Win
dows. ,
Microsoft
Windows 9 ,
, , Windows NT. Windows 3.1
.

. ,
.
,
,
, (thread).
,
. ,
, .
Windows 9 32-
.

370

11. Windows

( ).
-. Windows 95/98
,
.
-. ,
.
.
, (
)
,
,
,
.
,
^ :
, .
Windows 95/98 32-
. MS DOS
16- Windows API,
. MS DOS
. , 16- Windows
, ,
Windows
. 32-
, Windows 95/98

, Windows.

, .
32- ,
, ,
16-
32-.
,
Windows 3.x , ,
(cooperative multitasking). Windows 95/98
16-
, Win32
. 32-
(preemptive multitasking).
(scheduler).
. Windows 95/98
, ,
. ,

Windows 9

371

. Windows
NT, Windows 95/98 ,
.
, , . ,
.
, ,
. , ,
, ,
, ,
.
, ,
, ( )
.
.
, .
(priority).
,
. , ,
, ()
, .

, .
, ,
, , ,
, ,
.
.
( ) ,


.
.
. , ,
, ,
, .
.
.
. .
,
,
. Windows 95/98

.

372

11. Windows

Windows 9
: (primary scheduler)
; (timeslice
scheduler) , .
, ,
.
, , (suspended)
, .

(execution priority),
, 31.
,
, .
,

.
20 .
,
.
.

, .
, ,
, ,
.
,

.
32- ,

.
, ,

. .
() Windows 9
- ,
, , , ,
. . Windows 3.x
,
,
. Windows 95/98 ,
Win32, ,
^,
.

Windows 9

373


Windows 95/98
MS DOS 7.0 (MS DOS 98), [Options] MSDOS.SYS
BootGUI = , (.
4). MS DOS 7.0 ,
DOS. GUI Windows 95/98

.
Windows 9 ( )
.
. Win
dows 9
.
, .
,
Windows 9,
() , .


, .
, ,
,
. ,

. Windows 9
LRU (Least Recently Used
), , ,
, .
,
. , , .
.
:
,
, ,
, ,
(DMA).
,
',
Windows 9 .
, ,
.
. ,
, ,
. -

374

11. Windows

, ,
, .
,
.
,
, . API GlobalMemorySatus()
,
,
.
-:
(
),
- .
. ,
32-
(DLL), .
,
, ,
,
(Page Descriptor, PD).
,
. ,
, ,
, ,
. ,
, (virgin").
, , ,
Win32.
, (tainted)
(dirty), (clean), ,
.
,
, .

, , SYSMON.EXE (
). Windows
9,
.
.
,
,
,
, ,
.

Windows 9

375

(small) [40]. 32-


, ,
.
, , ,
4- .
(, ,
, )
, .
Windows 9
.
,
16- Windows. ,
, ,
( , , )
, .
Windows 9 32-
,
32- .
. ,
, .
32-
. 16- Win
dows ,
, Windows ..
Windows 9 2 .
2 3 DLL,
. , 32-
180x86 ,
3. ,
. Windows 9,
,
3 4 . Windows,
,
(VxD).
2 4 32-
32-
. API

.
. , ,
, DLL,
.
2 3 16-
Windows. -

376

11. Windows

,
, Windows 3.x.
4
.

, .
.
( 64 ) 32-
,
, 16- , , , ,
.

. 11.1.
4

,

2 4

32-

3
- DLL
- Win 16
-
DLL
2

32-




.

, , ,

64

. 1 1 . 1 . Windows 95/98

Windows 9

377

Windows (module)
, (
, ).
DLL. Windows
(module
database), ^ .

, .
,
Windows 9 . , ,
Word Internet Explorer,
Windows ,
,
, ,
.
Windows 9
.
, Windows 9
, .
, , , ,
, ,
.
,
, 4 Windows 95
8 Windows 98.
,
, .
,
, Windows
. ,
.
, ,
( ).
(
), [386Enh]
SYSTEM.INI , :
Pag1ngDrive=C:
Pag1ngPi1=:\PageFi 1 . sys
1nPagi ngF11eS1ze=65536
MaxPagi ngFi1eS1ze=262144


,
( ).

378

11. Windows

SYSMON.EXE^ ( ) ,
,
, , .

VCache,
. ,
,

. ,
.
, ,
, ,
,
.
VCache.
SYSTEM .INI.
[VCache].
,
.
, , :
MinFileCache=16384
MaxF1leCache=65536
ChunkSize=2048
NameCache=4096
D1rectoryCache=128

.
,
, .
, , ,
. 512 .
, 256 ,
[VCache] SYSTEM .INI .
- VCache
256 ,
.
.

Windows NT/2000/XP

Microsoft 1990
IBM PC- SYSMON.EXE Windows 9,
.

Windows NT/2000/XP

379

, , ,
, :
Mach 3,
(Carnegie Mellone University),
;
(platform independent),
;
(
UNIX

);
,
, UNIX 16- OS/2;
;

;
.
OS/2 version 3.0,
Microsoft Windows NT. NT New Technology,
.
1993 . Windows NT
3.1 Windows NT Advanced Server 3.1.
. Windows NT 3.1
OS/2,
. , ,
FAT, .
Novell Netware 3.x.
Windows NT Microsoft Windows NT 3.5
.
Novell,
FAT,
.
Netware 3.x
Novell.
Netware 4.x,
,
.
.
Windows NT 3.x 3.5.1.
Windows NT 3.x
, ,
( ) .

380

11. Windows

, Windows NT
.
-, Windows NT 3.x,
.
, GDI, (Window Manager)
,
.
, ,

. ,
.
NT 16- Windows 3.x,
, Windows 95.
, Microsoft Cairo 1996 .
Windows NT 4.0 Sever Windows NT 4.0 Workstation.
Windows NT 4.0 .

.
.
16 , 12 ,
.

,
. ,
,
; NT.
, Microsoft
HPFS,
OS/2,
; ; Windows NT 3.x.
,
Microsoft OS/2.

Novell Netware 4.x Net
ware 5.x, Microsoft
NT, Windows NT 5.0,
Windows 2000.
.
Windows 2000 Professional
Windows NT.40 Workstation Windows 98.
2- .
Windows 2000 Server /
(, , , web / FTP, . .) -

Windows NT/2000/XP

381

,
. 4- .
Windows 2000 Advanced Server , Windows 2000 Server,

.
, , .
Windows 2000 Datacenter Server
,
. , 4- ,
16 ^
, (
Windows NT 4.0) Plug
and Play ( Windows 9)
-. Microsoft
Active Directory.
TCP/IP. , ,

, NTFS5^. ,
, HPFS.
Microsoft
Alpha (DEC), PowerPC, MIPS.
2001 Microsoft Windows 2000 Pro
fessional Windows (experience). .

. Windows Edition.
Microsoft
.
, , ,
. , ,
,
Win32 API: Windows 9, NT. Windows

. Windows
:
(), . ,
. , UNIX
, . Windows .
, 2003 Windows 2000
, 2003. ' , ,
, 32 .
^ . 6.

382

11. Windows

32-
1-32.
Windows Small Business Server 2003
.
Windows Server 2003 Web Edition ,
.
Windows Server 2003 Standard Edition
, Windows 2000 Server.
Windows Server 2003 Enterprise Edition Windows 2000 Advanced Server.
a Windows Server 2003 Datacenter Edition.
64-
Itanium 2 Intel.
,
.
Microsoft ,
,
. ( ).


Windows 9 Win
dows NT , .

, :
( , ) (
). Windows NT Microsoft
kernel mode user mode .
,
, ,
. ,
,
, , () ,
.
.
Windows NT
, ,
,
Intel 180x86. ,
132
.
, (. 4),
. , .

383

Windows NT/200d/XP

,
, . ,
, ,
.
Windows NT . ,
,
QNX. Windows NT
,

-. ,
,

. ' ,
, (. 11.2).

,
, , .

Windows NT


. 11.2. Windows NT

384

11. Windows

() Windows NT (
, ), ,
,
, .
( Win
dows NT ^),
, .
,
HAL (Hardware Abstraction Layer
), Win
dows NT, Win32 Executive. Windows NT 4.0
(Window Manager), User,
(GDI).
,
,
.
HAL.DLL.
Windows NT/2000/XP,

, (Win32 Executive).
, ,
, , ,
- ( , ,
). .
(Process Manager) ,
. ,
,
.
(Virtual Memory Manager)
.
,
,
, .
(Object Manager) .
, .
, , ,
.
(Security Reference Monitor)
, .
(logon)
Windows NT.
,
.

Windows NT/2000/XP

385

- (Input/Output Manager)
- .
, ,
, ,
, - (I/O Request Packet, IRP),
- ,
. - ,
(Cache Manager).
, ^ .
{ )
-.
^ (Local Procedure Call, LPC)

,
-.
, ,
. ,
,
.
, .
, Windows 2000,
Microsoft,
, .
.
,
, ,
, ,

,
.
Windows NT/2000/XP ,
Windows 95/98/.
. 16-
Windows, ,
. 32- ,
. ( .
- , ,
( ) (
).
,
(
)
.

386

11. Windows

) . 32
31.
:
Low 4 ( );
BelowNormal ;
Normal 8 ( );
AboveNormal ;
High 16 ( );
RealTime 24 ( ).
.
, , , .
,
. ,
(foreground), .
, (background),
. .
.
.

. ,
Windows NT/2000/XP Windows 95/98/,
, ,
.
,
.
CR3,

. Windows NT/2000/XP ( OS/2, Linux)

, .
CR3, , ,
, . Windows 95/98/
, PDE (.
4
i80x86),
, CR3
.
, ,
Windows 95/98/ , NT.
, ,
( Workstation, Professional),
, . .

Windows NT/2000/XP

387

( 90 %).
(
)
,
Windows (Windows Internet Name Service, WINS),
(Domain Name System, DNS),
(Dynamic Host Control Protocol, DHCP),
(domain controller)
. NTSwitch.exe,
; , ,
.
,
Windows NT/2000/XP.
, , ,
[16,42].


Windows NT/2000/XP
Microsoft
. ,
, .
2 Win
dows NT 3.5 Windows NT 4.0. Windows 2000
,
.
Windows 9, , ,
OS/2, Microsoft
, Windows NT .
.
,
, .
, ,
,
.
.

,
/ .
.
(rights) . ,
,
. , Windows NT/2000/XP
.
, . , -

388

11. Windows

.
.
(permission)
, , .
, , , .
, ,
.
, . ,

, ,
, ,
.
Windows NT ,
, .
,
(account). ,
SAM (Security Account Management).
,
. Windows NT
(Security IDentifier, SID).
.
.
, .
.
. .
. .

(, ) .
,
( ^
UNIX-).
( )
.
(Access Control
List, ACL)^ ACL (Access Control Entry).
.
. ,
, , ,
.
NTFS ACL DACL (Dis
cretionary Access Control List). ( 6)
( )
, NTFS.

Windows NT/2000/XP

389

NTFS, NTFS,
Windows NT 4.0, NTFS5,
Windows 2000^ ,
,
, . -,
, ,
. , ,
. -,
( )
,
. , -,
.

,
.
: ,
^ , ,
.
(), .
,
, , .
,
.
Windows NT/2000/XP
. ,
. .
, :
, .
, , ,
,
.
,
, ,
. ,
,
. .
^ , Windows 2003 Server
,
. NTFS5.
, Windows NT 4.0 Server,
- SAM. ,
Windows 2000/2003 Server,
NTDS.DIT,
Active Directory.

390

11. Windows

Windows NT, :

. , , ,
, ,

. ,
.
,
.


Windows NT
.
Windows 9. ,
Windows 9,
, ,
.

,
. , ,
, , (Win32 executive),
,
, ,
.
,
(),

, . , - ,
,
.
. 11,3.
2 ^ ()
() 64
2 ( 64 ).
, (clipboard),
DDE (Dynamic Data Exchange ) OLE
(Object Linking and Embedding ).
2
DLL 3,
,
. ,
(server process), ,
Windows 2000 , 3 .

391

Windows NT/2000/XP


.
,
.
4


(
0)

2
32-
DLL

32-

(

)
16-

i>



DLL,

64

. 11.3. Windows NT

2 4
Windows NT , ,
.
,
.
,
- .
16- Windows-
Windows NT Windows on Windows (WOW). Win-

392

11. Windows

dows9x, Windows NT 16- Win


dows-
. 16- 32-
Windows- ,
OLE, ,
. WOW
,
. 16- Windows-
WOW .
Windows NT
DOS. Windows NT 32- ,
GDI User.

. .
,
. ,
,
() .
()
,
. , Windows 9.


.
, ,
(Virtual Memory Manager,
VMM) Windows NT.

,
.

, .
, ,
(page frame).
,
( )
. ,
2,
.
,
. ,
,
. , ,
. ().

Windows NT/2000/XP

393


(page fault).
,
(paging),
. (. 3), Windows NT, ,
FIFO,
LRU LFU, .
, ,
Pagefile.sys .
, .
Pagefile.sys ,
, ,
. ,
, ;
.
,
.
Windows NT 4.0
12 , . (Win
dows 2000/)
. , ,
, 512 ,
Pagefile.sys 768 .
.
16 ,
.
Windows NT 4.0 ,
, (memory
pools).
,
. , ,
,
.
, , (paged pool) ,
. ,
, (nonpaged pool) ,
. ,
, ) , ,
.
,
Windows NT.

.

394

11. Windows

Windows NT
(reserved), (committed) (available).
,
(VMM) ,
,
. ,
.
,

.
,
Pagefile.sys ^,
.
.
.
(commit limit) ,
.
, ,
.
, , ,
. ,
( ), ,
(standby list), ,
, .



1.
Windows 9.
2. Win
dows.
?
3. Win
dows 9.
.
4. ,
.
5.
Windows NT.
6. ().
(Win32 executive)? ?

395

7. Window Manager, GDI


? ?
.
8. , Win
dows NT. ?
?
9. ?
NTFS. SID?
10. ? (
) ? ?
?
11. Win
dows NT.
.

1. SysMon.exe ( , System monitor),


Windows 9.
(
)
(, Adobe Photoshop
).
2. PerfMon.exe ( . Performance mo
nitor), Windows NT/2000/XP.

( )
(, Adobe Photoshop
).

Access
Access Control Entry

ACE

Access Control List

ACL

Access mask

Account

Account name

, ,

Active Directory

Allocation block

Application Program Interface

API

Auditing

Available (memory)

()

Background session

Bad

( )

Bad block list

Band
Base Input-Output System

BIOS

B-Tree

Batch
Binary Tree

, ()

Bit map
Bit Test and Reset

BTS

Bitmap block list

Boot block

Boot manager
Boot Record


BR

Bootstrap loader

Cache Manager

Capabilities

397

Carry Flag

CF

Chain

Change permissions

Change time

Chunk

()
()

Clean
Code Segment

CS

Coder

Committed

()

Common Object Request


Broker Architecture

CORBA

Configuration Manager
Consumable Resource

CR

, ,

Conventional memory

, ,

Cooperating processes

Cooperative multitasking
Critical Section

CS

Current Privilege Level

CPL

Cylinder-Head-Sector

C-H-S

Data Control Block

DCB

Cylinder

Deadlock

Deny
DPL

Device Reference Table

DRT

Direct Memory Access

DMA

Descriptor Privilege Level

Desktop

Directory

Directory band

Directory emergency free block list

(), ()

Dirty
Discretionary ACL

DACI

Disk cache

ACL

Disk Parameter Block

DPB

Disks Operating System

DOS

Domain Name System

DNS

Dynamic Data Exchange

DDE

Domain controller

398

Dynamic Host Control Protocol

DHCP

Dynamic Link Library

DLL

Dynamic priority variation

Effective Group ID

EGID

Effective Privilege Level

EPL

Effective User ID

EUID

Effective Performance

Embedded

()

Equipment table

EQT

EMS

()

Execution priority
Expanded Memory Specification

()

Extended
EAs

Extended Instruction Pointer

EIP

Extended Memory Specification

XMS

Extended Attributes

Extensable Architecture

Extent

()
FFS

File Allocation Table

FAT

File node

F-node

File System access Group ID

FSGID

File System access User ID

FSUID

First Come First Served

FCFS

First In First Out

FIFO

Fast File System

Fault-Tolerant Networking

File reference

First-class delivery

FixPak

FLEET Transport Layer

FTL

Folder

FLEET

Foreground boost

Foreground session

Foreground task

(
)

Form Disk

FDisk

399

Gate

Generic

( )

Global Descriptor Table

GDT

Global Descriptor Table Register

GDTR

Graphical Device Interface

GDI

Graphical User Interface

GUI

Group Identifier

GID

Hardware Abstraction Layer

HAL

Hardware Emulation Layer

HEL


(/ )

Head

()

Hidden
High Memory Area

HMA


( 1 )

High Performance File System

HPFS

Hint

Home

()

Host

HotFix

HotFix areas

HotFIx map

I/O Request Packet

IRP

Independed processes

Input/Output boost

Input/Output Manager

Input/Output Supervisor

lOS

Installable File System

IFS

()

Institute of Electrical
and Electronics Engineers

IEEE

Instruction Pointer

IP

Interface
Inter-Process Communication

IPC

Interrupt Descriptor Table

IDT

^1

Interrupt Descriptor
Table Register

IDTR

Interrupt

Interrupt gate

400

Interrupt if overflow

INTO

no

Interrupt Request

INTR

Interrupt Request

IRQ

Job Control Language

JCL

Journaling File System

JFS

Kernel

Kernel mode

, ,

Last Come First Served

Lazy write

Least Frequently Used

LFU

Least Recently Used

LRU

Least Recently Used

LRU

Load Balancing on the Fly

Local Descriptor Table Register

LDTR

Local Procedure Call

LPC

Login
Logical block addressing

LBA

Logical Disk Table

LDT

Logical Volume Manager

LVM

Login
Long File Name

Logical disk



, ,

LFN

Mailbox

Mailslot

Main

(, )

Marshalling

Master

()

Master Boot Record

MBR

Master File Table

MFT

Memory pool

Modification time

Module

Module database

Multiprocess Executing

Multiprogramming with
a Variable number of Tasks
Mutex

MVT

401

Named pipe

National Computer
Security Center

Native

, ,
()

New Technology File System

NTFS

No Mask Interrupt

NMI

Non-preemptive multitasking
Object Linking and Embedding


, ,

Nonpaged pool
Non-System Bootstrap

Nice number, nice

NSB

OLE

Object Manager

Overlay

()

Page
Page Descriptor

PD

Page Directory Entry

PDE

Page fault

Page frame

Page Table Entry


, ,

Paged pool
Paging

Paging file

Partition

, ( )

Partition Table

PT

Password

Permission

, ,

Pipe
Platform independent
Pool
Portable Operating System
Interface for Computer
Environments

POSIX

Power On Self Test

POST

Preemptive multitasking

Primary

()

Primary scheduler

Priority

402

Priority boost
Privilege Level

PL

Process
Process Identifier

PID

Process Manager

Producer-consumer

Profile
Program Status Word

PSW

Protected mode


( )

Proxy

Queue

Random

()

Read ahead

Real mode

( )

Red i rector

Re-enterable

( )

Re-entrance

(
)

Region

, ()

Registry

Regular

( )

Release

Remote Procedure Call

RPC

Requested Privilege Level

RPL


()

Reserved
Reserved Sector

ResSecs

Reusable Resource

RR

Right

Root
Root Directory

Response time

RDir

Rotational latency
Round Robin

RR

( )

Run Time Library

RTL

Scheduler
Secondary MBR

SMBR

MBR

Second-class delivery

Sector

403

Security Account Management

SAM

Security Identifier

SID

Security Reference Monitor

Seek time

()

Segment

Semaphore
Server Message Blocks

SMB

Server process
Set interrupt Flag

(
)

STI

Shell

Shell script

Shortcut

Shortest Job Next

SJN

Shortest Remaining Time

SRT

Shortest Seek Time First

SSTF

Simultaneous Peripheral
Operation On-Line

Spooling

Slave

()

Small

( )

Socket

Spare block

Specific

( )

Spool-file

Spool-reader

Spool-writer

Standard

( )

Standby list

Starvation boost

Stream

Stub

Subdirectory

Super block

404

Superuser

Supervisor

Swap partition

Swap-file

Swapping

, ,

System ACL

SACL

ACL

System Bootstrap

SB

System Object Model

SOM

System Resource

SR

System stack

Tainted

()

Task

Task gate

Task Register

TR

Task State Segment

TSS

Terminate and Stay Resident

TSR

Test and Set

TS

Taskbar

Thin


()

Thread

, ,

Throughput

Time critical

()

Time sharing

Time slice

Timeslice scheduler

Track

Trap Flag

TF

Trap gate

Turnaround time

Unit Control Block

UCB

Universal Serial Bus

USB

Upper Memory Areas

UMA

User file-creation mask

umask

User Identifier

UID

Unmarshalling

User mode

405

Utilization

Variable priority

Virgin
Virtual Device

()
VD

Virtual DOS Machine

VDM

DOS-

Virtual FAT

VFAT

FAT

Virtual Memory Manager

VMM

Virtual Memory System

VMS

Virtual Mode

VM

Volume

Waiting time
Windows Internet Name Service

WINS

Windows

Word Counter

WC

Workplace Shell

WPS

,
OS/2


1. , , . . 80386:
: . / . . . . . .: , 1994. 274 .
2. . . : 2 . .:
OILCO, 1992. 357.
3. . ., . .
: . . .: , 1991. 72 .
4. . ., . , : .
.: , 2002. 736 .
5. . ., . .
: . .
.: , 1993. 80 .
6. . ., . ., . .
: . . .: , 1988. 78 .
7. . ., . .
: . . .: , 1988. 76 .
8. , . i486. :
4 . - .: , 1993.
9. , . : , 1994. 256 .
10. . / /
/ . . . .: , 1972.
. : 2 . / . . . . , . . , . . ; . . . . .:
, 1987.
12. . IBM
PC, XT AT / . . .: , 1991. 544 .
13. . UNIX system v. 4.2: . .: -, 1995.287 .
14. , . QNX: UNIX http://www.lgg.ru/-'nigl/QNX/
doc/Kovalenko_cinderella.html. 1995.
15. . . . .: -,
2002. 624 .

407

16. X. Windows NT NTFS / . . .: .


Channel Trading Ltd., 1996. 440 .
17. . .
/ . . . . . . . .: , 1985. 295 .
18. . . .: ,
1986. 680 .
19. . . .: ,
1988.480 .
20. . ., . ., . . 80x86, Pentium:
, , , .
: , 1994. 400 .
21. . : , , () / / ,
1989. 4. . 41-85.
22. , , . .: , 1978. 792 .
23. ., ., , . UNIX:
. / . . .: ; :
BHV, 2002. 928 .
24. . IBM MSDOS / . . .: , 1992. 416 .
25. ., , . 8- .
/ . .; , .
.: , 1999. 584 .
26. ., . . OS/2 Warp : 2 . / . . . . - .: , 1996. . 1: 528 ; . 2: 512 .
27. , QNX: / PC Week RE. 1998.
7.0.58-59.
28. , ( 1.3.1 1.07.2000) http://www.webmachine.ru/delphi.
29. . ., , .:. .:
, 2001. 544 .
30. ., . . / .
www.citmgu.ru.
31. ., , . PC PS/2 / .
. - .: , 1992. 319 .
32. . . 80386. :
- Ltd; , 1992. 240 .
33. QNX: / http://www.lgg.ru/--nigl/QNX/doc/about_qnx.html.
34. . Linux: : 2 . / . .
: BHV, 1998.
35. . Windows 95: 2 . / . . .:
BHV - -, 1997.
36. , / . .
.: , 1984. 264 .

408

37. Microsoft Windows 98 / . . .: -


, 1999. 1288 .
38. Microsoft Windows NT Workstation 4.0 / . . - .: BHV -, 1998. 800 .
39. . . UNIX. .: BHV -
, 1997. 528 .
40. . ., . IBM PC.
. 3: . .: , 1996. 320 .
41. . . , . : . .
.: , 1989. 255 .
42. . . Microsoft Windows 2000.
- / . . .: ; .: -
, 2001. 752 .
43. . UNIX: . .: , 2002. 576 .
44. , . 4- . / . . .:
, 2002. 848 .
45. . Boot- ? / / Byte . 1998. 4. . 70-75.
46. . . 2- . .: ,
2002.1040 .
47. , / . . . .
. .: , 1987.188 .
48. . 5., . J5. Intel 80286,80386,
80486. .
.: -, 1993. 240 .
49. , ., . , OS/2 Warp. .: , 1995. 272 . ( ; . 20)
50. . ., . , IBM OS/2 Warp: . 1. ~ .:
-, 1996. 288 .
51. . ,, L . Windows NT. .: , 1996. ( ; . 26, 27)
52. . . ~ .: , 1989.264 .
53. ., . / . . . . . . . .: , 1977. 336 .
54. . / . . . .
. . . .: , 1981. 360 .
55. . , QNX , / / .
1995. No 5-6.
56. Microsoft Windows 2000: Server Professional. / . .
. . . . . - .: BHV, 2000. 1056 .
57. Understanding Windows NT POSIX Compatibility by Ray Cort Microsoft Cor
porate Technology Team, Created: May-June 1993.


access mask 196
account 388
(Access Control Entry) 201, 388
ACL (Access Control List) 180, 201, 388
API (Application Program Interface) 14,
296, 298
auditing ~ 288

B-tree (Binary Tree) 182


background 386
background session 187
bad block list 180
BIOS (Base Input-Output System) 79
bitmap block list 179
boot block 179
bootstrap loader 151
BTS (Bit Test and Reset) 222

C-Scan 161
chain 168
clean page 374
conventional memory ,
, 81
cooperating processes
210
cooperative multitasking
370
CPL (Current Privilege Level) 116
CPU throughput
64
CPU utilization 64
CR (Consumable Resource) 248
CS (Critical Section) 214
cylinder 146

DACL (Discretionary Access Control list) 196, 388


deadlock 247
desktop 365
directory 166
directory band 180
dirty page 374
DMA (Direct Memory Access) 356
DOS (Disk Operating System) 78
DPB (Disk Parameter Block) 170
DPL (Descriptor Privilege Level) 116
DRT (Device Reference Table) 140
dynamic priority variation
65

EAs (Extended Attributes) 177


EMS (Expanded Memory Specification) 81
EPL (Effective Privilege Level) 117
equipment table 139
extended partition 150
extent 178

FAT (File Allocation Table) 164, 166


FCFS (First Come First Served) 56
file reference 193
FLEET 346
folder 366
foreground 386
foreground session 187
foreground task 54
FreeBSD 339
FSGID (File System access Group ID) 327
FSUID (File System access User ID) 327

gate 118
GDI (Grafical Device Interface) 366

410
GDT (Global Descriptor Table) 106
GDTR (Global Descriptor Table Register) 105
GID (Group Identifier) 315
GUI (Graphical User Interface) 297, 361


multi-threaded 294
MULTICS (MULTiplexed Information and
Computing Sys 312
mutex 229

HAL (Hardware Abstraction Layer) 283


head / 146
HMA (High Memory Area) 81
Hot Fix map icapxa 180
HPFS (High Performance File System) 177

native , , 16
nonpaged pool 393
NSB (Non-System Bootstrap) 147
NTFS permissions NTFS 194

I
IDT (Interrupt Descriptor Table) 125
IDTR (Interrupt Descriptor Table
Register) 105, 122
IEEE (Institute of Electrical and Electronics
Engi 304
IFS (Installable File System) 185, 188
independed processes 210
interface 13
interrupt gate 125
INTR (Interrupt Request) 123
IPC (Inter Process Communication) 342
IRP (I/O Request Packet) 385

JCL Oob Control Language) 58


JFS Oournaling File System) 359

kernel mode 382

lazy write 157,185


LB A (Logical Block Addressing) 147
LDT (Local Descriptor Table) 106
LDT (Logical Disks Table) 151
LDTR (Local Descriptor Table Register) 104
LFU (Least Frequently Used) 90
Linux 336
logical disk 151
login , , 15
LPC (Local Procedure Call) 385
LRU (Least Recently Used) 90, 373
LVM (Logical Volume Manager) 359

M
MBR (Master Boot Record) 147
memory pool 393
MET (Master File Table) 191
module 377
module database 377
(Multiprocess Executing) 305

page fault 393


page frame 392
paged pool 393
paging 1 393
partition 82, 146
PDE (Page Directory Entry) 111
permission 388
PID (Process Identifier) 34
pipe 242
PL (Privilege Level) 116
pool 213
POSIX (Portable Operating System Interface
for Computer Environments) 284, 304
POST (Power On Self Test) 79
primary partition 150
primary scheduler 372
priority boost 70
process 37
produces-consumer
- 213
profile 366
protected mode 102
(Partition Table) 147
(Page Table Entry) 111

QNX 341
queue 244

read ahead 158


real mode 102
region 82
registry 367
release 227
release 239
request 239
reserved memory 394
response time 1 64
REXX 354
right 387
rotational latency 178
RPC (Remote Procedure Call) 296, 335

411


RPL (Requested Privilege Level) 107, 117
RR (Reusable Resource) 248
RR (Round Robin) 59
RTL (Run Time Library) 298, 300

SACL (System Access Control List) 196


SAM (Security Account Management) 388
scheduler 370
sector 146
seek time 178
shell ,
316,317
SID (Security Identifier) 196, 388
SJN (Shortest Job Next) 58
SOM (System Object Model) 355, 358
spare block 179
spooling 136
SRT (Shortest Remaining Time) 58
SSTF (Shortest Seek Time First) 160
stream 193, 322
subdirectory 166
super block 179
supervisor 29
swapping 84

tainted page 374


task 25, 50
task gate 125
thread , ,
37,348, 369
time critical
() 69
time sharing 29, 320
time slice 60
timeslice scheduler
372
TR (Task Register) 36, 104, 107
track 146
trap gate 125
TSR (Terminate and Stay Resident) 78
TSS (Task State Segment) 36, 51, 105, 107
turnaround time 64

VMS (Virtual Memory System) 305


volume-TOM 170, 179, 191

w
wait 227,239
waiting time 64
WinAPI 304
Windows 361
WPS (Workplace Shell) 357

X-Window 358
XMS (Extended Memory Specification) 81

180, 184, 189


14, 287, 388

73
108

73
106
73
104, 106

266
219
174, 194
288, 390
14, 287, 366, 388

298

90, 111
87, 111
215

143
240
96
143, 144

(Unit Control Block) 139


UID (User Identifier) 315
A (Upper Memory Area) 81
user mode 382

variable priority 69
virgin page 374
VMM (Virtual Memory Manager) 392

143, 144
143
122
213, 214
350
, 281, 314
136
337

412

64
64
1 64

143, 144
143
143

1 385
335

210
211
210
210
25
213

63
147
/ 146

249, 268
388
388
388

182
157

36, 50, 51, 107


125
32, 34, 50
87, 106
94, 110
166
118, 125
93

191
146, 147, 151
344
392
50
85

317
55
30, 55
FCFS 56
RR 59
SJN 58


()
SRT 58
57, 61
57, 61
61
389
146
135
367
- 367

136
135
135
367

64
79, 147, 170, 172, 176
179

147
151
151
155, 170
25, 38, 51
- 35
- 36, 83
69
36, 78, 83

16, 281
- 133, 141, 385
135

196
34
33, 133
13
297
17
281, 298
17
131
384

-
134
134
242

413

166, 167, 169, 173


166
167, 191
118

125
125
125
34
389
83
214
157, 158, 185

196
152, 155
192

342
118

OS/2 357
QNX 291, 342, 345
Windows NT 383
289
369
61
61, 370
38

- 292
248
279, 377
237
27, 29, 47
229

314

55
55
77

223
224
13
280, 292
280, 289
280, 292
16, 114
(
) 48
QNX 291
244, 349

- 385

73
87, 106
- 97
93, 110
394
394
72
73
73
355
348
- 322

52
372
370
372
372
, 374
166
180
349, 356

37, 348
193, 322, 352
240
119, 121
18, 122
19, 123
19, 123
19, 123
21, 123
123
21
19, 123
137
137
137

56
55, 65
55
66
95

75
114
331
279
- 280
46
44
44, 139, 279
280

414
64
366
37, 369, 392
144
144
25
37
232
25
232
213

96

146
147, 150
150
150
82
320
NTFS 194
197, 203
204
199, 205
198

82
86
177

36
123
342, 343, 385

- 134
134, 135
134, 135

102, 105, 106, 124
27, 36, 37, 47
27, 36, 47
157, 185
116, 131
29, 131, 280
29, 280
29
102, 105, 122
116, 131, 280
26
72
210
248
248
43
248
248


178, 182, 190
84, 89

102, 108
87
118
36, 51, 105, 107, 127
102
146

118
107
224

225, 228
V 225, 228
385
255
257
- 255
135

29
48
() 293
164, 165
163
FAT 164, 167
FAT12 165
FAT16 167
FAT32 172, 174
HPFS 177
NTFS 188
super-FAT 165
VFAT 172, 173
164, 185, 188
16, 78
exec 319
fork 319
320
362

31, 210
261
32
31
32
265
32
31
320
320
247, 261, 268
272

415

179
180
180, 190
196
196
- 137
136

374
93
374
374
93
374
392
93

53
53
16, 29, 77
- 132, 142
132, 142, 281
22, 23
316

79, 122
140

125
87, 104
105, 111
151
139
140
147
164, 166, 167
87
94
99
269
170, 179, 191
226, 235, 247, 257

86
158

288, 392

()
116, 382
117
117
116
116
117

254, 264
254, 264
254, 264
254, 264
- 135
388
388
388

163
166
93, 393
93
165
193
167, 195
180, 185

84
169, 183

API 300
286
290
14, 16, 290

161, 186
146

118
125
125
125

178, 181

77, 279


:
2-


.
,
.
.
.
. , .
. -

16.03.07. 70X100/16. . . . 33,54.


. 3000 . 490.
. 198206, -, , . 73, . 29.
005-93, 2; 953005 .
CtP . . . .
197110, -, ., 15.

Вам также может понравиться