202
Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом. Вводная лекция рассказывает о предмете, изучаемом в рамках настоящего курса. Вначале мы попытаемся ответить на вопрос, что такое ОС. Затем последует анализ эволюции ОС и рассказ о возникновении основных концепций и компонентов современных ОС. В заключение будет представлена классификация ОС с точки зрения особенностей архитектуры и использования ресурсов компьютера. Что такое операционная система Структура вычислительной системы Из чего состоит любая вычислительная система? Во-первых, из того, что в англоязычных странах принято называть словом hardware, или техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д., объединенные магистральным соединением, которое называется шиной. Некоторые сведения об архитектуре компьютера имеются в приложении 1 к настоящей лекции. Во-вторых, вычислительная система состоит из программного обеспечения. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные банковские и прочие бизнес-программы, игры, текстовые процессоры и т. п. Под системным программным обеспечением обычно понимают программы, способствующие функционированию и разработке прикладных программ. Надо сказать, что деление на прикладное и системное программное обеспечение является отчасти условным и зависит от того, кто осуществляет такое деление. Так, обычный пользователь, неискушенный в программировании, может считать Microsoft Word системной программой, а, с точки зрения программиста, это – приложение. Компилятор языка Си для обычного программиста – системная программа, а для системного – прикладная. Несмотря на эту нечеткую грань, данную ситуацию можно отобразить в виде последовательности слоев (см. рис. 1.1), выделив отдельно наиболее общую часть системного программного обеспечения – операционную систему: Рис. 1.1. Слои программного обеспечения компьютерной системы

некоторые лекции по ОС

  • Upload
    tehnari

  • View
    254

  • Download
    1

Embed Size (px)

Citation preview

() , . , . , . . .

? -, , hardware, : , , , .., , . 1 . -, . : . , , -, , . . , . , , . , , , Microsoft Word , , , . , . , (. . 1.1), :

. 1.1.

, . .

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

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

, . , . . .

. , .

, : , . , , , , , . , , . . , . . , , hardware , . , , . , . (19451955 .). .

( ). . 40- , (John Von Neumann, 1945 .). , , . - , - . . , . . , . (- ). . : 19511952 .

(Fortran .), 1954 . Nat Rochester IBM-701. , . . , . (1955 . 60-). .

50- , . . , . , . . . . (LISP, COBOL, ALGOL-60, PL-1 ..). , , . . . , . . . . . , ( ) . , . , . , . , , . , , . ( 60- 1980 .). .

60- 1980 .

. . , . . - ( 1200 , 600 ). , , . , . , . - off-line, , , . , , on-line. spooling ( Simultaneous Peripheral Operation On Line) - . - - , . , , . , , , . . . : , .. . . : -, , , . - , . . () ( -), () (). , . . , , . ( .) . ( ), .

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

. .

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

(, , , ), . . - . - . time-sharing , 1). -, .

, , . . . , . , , , , . . . , , . on-line . . , , . , . . , , . , . , , IBM/360. 60- , /. PDP, IBM, PDP-11. " " . ( : - ; ; ; ) . , , , . OS/360 1000 . . ( 1980 . ). . ,

(). . , PDP-11, , . . , ( , , . .).

, "" . , , , . 80- , , . , . , ( ), . , , . , . , . . . , , :

. . . . -.

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

, . . .

, . -6 "" , IBM .. Unix . (system calls) . , , . , . , , , . . , (kernel mode). , , . , . , , . (INT). , .

(hardware interrupt) , ( ) . , - , (, ), - (, ). , . . , . , ,

. , .

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

, , , , , , . . (file system) - , . , , , , (, , , , ..). , , , , . . 1112.,

. 27. , .

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

. , . (monolithic kernel). , . . , , , . . , , , . , . , . , , . , . . Unix-. . , , . , . , , , . , . (Layered systems) , , N N-1. hardware, . , , . THE (Technishe Hogeschool Eindhoven) (Dijkstra) 1968 . :

. 1.2. THE . , , , . . . , . . , . : . , . , , - . , . , ; , ; , . . , , , , . hardware , , , -, .. . , . , .

. 1.3. CP/CMS, VM/370, , IBM/370. , , , . , .

. , (microkernel architecture) , . , . , , , - .

. 1.4. . . . , , , . . , . , . , , . , , . , , . , . . . , , Linux . .

. . . 4.4BSD MkLinux, Mach. . , , . , . Windows NT. Windows NT , . NT ( 1 ), "". Windows NT , . , . Microsoft, : , . , Windows NT .

. . :

(Unix, OS/2, Windows); (, MS-DOS).

, , " , ". , , (preemptive). , . , . . (Windows 3.11, ) , . , .

, , . , . . , MS-DOS . , - . :

(MS-DOS, Windows 3.x); (Windows NT, Unix).

. . , , . . , Linux, Solaris, Windows NT, . . , , . . . (master) (slave), . , , , . . , , . , , . , , ,

. (. , .) . [, 2001].

, ; ; , ; , , . "" .

1. : , . , (. .1.5).

. 1.5. , . , . . , (). , . . 48 . . , . . : , . , .

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

, " " , "" "". : ,

, . . , , , , . , (, ), , . , , , - , , . , . . . 4, 1. , ; , , . , "" . , "" , , , . , , , . , "" ? , . 1, , . -, . ? , . , "" . , "" "" , . , . . , - ( ), . . "" "" "". , . , .

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

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

. 2.1. , , . : - (, -) , . , , . , , .

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

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

; , , ; (, ) .

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

. 2.3. , . , ; ; . . . . , . , , Windows NT 7 , Unix 9. , .

. , . . :

; ( ) ( ); ( ) ( ).

, , , : . , ( ). , , , , . , . Process Control Block , . , :

, ;

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

, , . , , , . , , , . . , , , , , . , . PCB (Process Control Block) . . , , PCB. PCB . , , . ( ) , . , , . , . , , . . . , , , , . , , . , . . . , , . (, , ) . , .

, , , , , . , , - (parent process), - (child process). - . ., , , . 2.4. , . .

. 2.4. . PCB . . , . - . - : , , - . . . , - - , . PCB. - , , . . - - , , - . - - . Unix ; -, - . VAX/VMS . Windows NT ( API).

- (. . ), . (. . ) , . , PCB , . , - . - -, "". , . , , . PCB , . , - - "" / . PCB - , . Unix , , -. , (, VAX/VMS) - "". (, Unix) - -. PCB - , . . 2515 2001 . , 2001 . 2515, 2515 2001, 2001 . , "" "" , , . , , . , , .

, . . . , , . 3 " ". , . , , 8-10. , , . , , PCB , . . , , - . , , , . hardware . . PCB, , , . . , , - . . ( , , , . .) , PCB, . 13. . - , . , , , , , ( - . .). , , 13. , . , , . , , - (. . 2.5).

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

. 2.5. . " " , . / . , , , . 1 1000 . , threads of execution ( ). 4 " ".

, , . , , . PCB, . : , , , , .

. : , , , , , , . PCB . , , / , . . . , , , , . ... . . , . , , , , , . ( ) , . , : " , ?" " ?". , , .

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

, . . , . , . . . . , , . , , . 2030 , , . . , , - . , , 100 . , . . , . - , . swapping, "", . , .

. , , , , . :

, , , . 100% , , . 40 90%.

(turnaround time) . (waiting time) , . (response time) , .

, .

. . , , 4 . . 100 , , 200 , , , , , . , , . , . . . , .

. , . , . " ". . .

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

, .

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

( ). . :

; ; .

. 3.1. - . -. CPU burst, - I/O burst. 3.1. . CPU burst I/O burst . CPU burst I/O burst .

, .

. 1. . 2. . 3. (, ). 4. ( - ). 2 ( " "), , , . 1 2 , , , . 3 4 , , , , . , , (nonpreemptive) . , , (preemptive) . " " , . , , MS Windows 3.1 Apple Macintosh. , . ( - ). , . , - (, - ) . . . . . . , , "" - - .

,

. . . First-Come, First-Served (FCFS) , FCFS First-Come, FirstServed ( , ). , , , . , , , PCB . PCB. FIFO1), First In, First Out ( , ). . , , CPU burst. . 3.1. p0 p1 p2 CPU burst 13 4 1 FCFS , . . p0, p1 p2, CPU burst. 3.1. . , CPU burst, - , . , , p0, p1, p2, , 3.2. p0, CPU burst, . . 13 . p1, 4 . , , p2. p0 0 , p1 13 , p2 13 + 4 = 17 . , (0 + 13 + 17)/3 = 10 . p0 13 , p1 13 + 4 = 17 , p2 13 + 4 + 1 = 18 . (13 + 17 + 18)/3 = 16 .

. 3.2. p0,p1,p2 p2, p1, p0, 3.3. p0 5 , p1 1 , p2 0 . (5 + 1 + 0)/3 = 2 . 5 (!) , . p0 18 , p1 5 , p2 1 . (18 + 5 + 1)/3 = 8 , 2 , .

. 3.3. p2, p1, p0 , . CPU burst, , , . FCFS . Round Robin (RR) FCFS , Round Robin (Round Robin ) RR. , , . . , , 10 100 (. . 3.4.). , .

. 3.4. , , , , FIFO. , , . .

, ( CPU burst), . , , . CPU burst , . , , , .

p0, p1, p2 4. 3.2. "" , , "" , . , . . 1 0 1. 3.2. 6 7 8 9 10 11 12 13 14 15 16 17 18

p0 p1 p2

1

2

3

4

5

p0. CPU burst , , , . . 4 . , p1, p2, p0. p1. , . , p2 p0. p2. ,

p0 . p0 ( "" ) 5 , p1 4 , p2 8 . , (5 + 4 + 8)/3 = 5,6(6) . p0 ( ) 18 , p1 8 , p2 9 . (18 + 8 + 9)/3 = 11,6(6) . , FCFS 2 6 . RR . p0, p1, p2 , 1 (. . 3.3.). p0 5 , p1 5 , p2 2 . (5 + 5 + 2)/3 = 4 . (18 + 9 + 3)/3 = 10 . 3.3. 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

p0 p1 p2

1

2

, CPU burst , RR FCFS. , n ~ 1/n . , . , , . Shortest-Job-First (SJF) FCFS RR , , . , . CPU burst , , , CPU burst. , FCFS. . " " Shortest Job First (SJF). SJF- , . SJF-

, , . SJF- ( ) . CPU burst , CPU burst , . SJF. , p0, p1, p2 p3, CPU burst. 3.4. , , CPU burst, - . 3.4. p0 p1 p2 p3 CPU burst 5 3 7 1 SJF p3, CPU burst. p1, p0 , , p2. 3.5. 3.5. 3 4 5 6 7 8 9 10 11 12 13 14 15 16

p0 p1 p2 p3

1

2

, SJF (4 + 1 + 9 + 0)/4 = 3,5 . , FCFS p0, p1, p2, p3 (0 + 5 + 8 + 15)/4 = 7 , . . , SJF. , ( ) SJF . SJF p0, p1, p2 p3 CPU burst , (. . 3.6.). 3.6. CPU burst p0 0 6 p1 2 2 p2 6 7 p3 0 5

, p0 p3. CPU burst p3, (. 3.7.). 2 p1. CPU burst , CPU burst p3, . 2 p1 , p3. t = 6 , , p2, 7 , p3 1 , p3 . t = 7 p0 p2, p0. , p2. 3.7. 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 2 3 p0 p1 p2 p3

SJF CPU burst . , , . SJF-. , , , , . , . , . CPU burst, . (n) n- CPU burst, T(n + 1) n + 1- CPU burst, 0 1. T(n+1)= (n)+(1- )T(n)

T(0) . , . = 0 , T(n)= T(n+1)=...=T(0)

. . CPU burst , . = 1, . , CPU burst CPU burst:T(n+1)= (n)

= 1/2 . , T(n + 1). , CPU burst 2, , 1 . T(n + 1) SJF. N , , ~1/N . 1 N. i : Ti , , i . Ti/N . iTi/N

i. iN/Ti

. . . , , . SJF . , . FCFS. SJF CPU burst. , . . , . , , .

: , , -, I/O burst CPU burst . . SJF . - , . , $100 . , . , , . . . , , , SJF, (. . 3.8.). , 1 4 . , , , . . p3, p0. 3.8. CPU burst 6 4 2 3 7 2 5 1

p0 p1 p2 p3 0 2 6 0

? t = 0 p3, . t = 5 , , p0 p1. p1, (. . 3.9.). t = 8 p2, p0. 3.9. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 p0 p1 p2 p3 (. . 3.10.). , , p3, p1.

t = 6 p2 t = 13. , , p0. 3.10. 4 5 6 7 8 9 10 11 12

1 2 3 p0 p1 p2 p3

13 14 15 16 17 18 19 20

. . , . , . , . , , , , . , . , - : , , . SJF . . , . , . . ( , ). , ( IBM 7094 1973 , 1967 ). , . 128 255. 1. , , . , . (Multilevel Queue) , , . , (. . 3.5).

. , , . , , , , . , , , , , . . , , , ( ), FCFS, RR. , , : .

. 3.5. (Multilevel Feedback Queue) . , . , 4 , 3.6. . , . 1 , 0 . 2 , 0 1. , 3 , 0, 1 2 . - , . 02 RR, 3 FCFS.

. 3.6. . 0. 8 . CPU burst , 0. 1. 1 16. , 2. 1. 2 32 . , 3, , , CPU burst. CPU burst, , . , , , , , , . . , 1, 2 3 0, - 2 3 1, 3 2. . , .

, . , , , . :

, . , . , . . .

- , . , , : " ".

. . , . , . . , . FCFS, , , , . RR. SJF. . , . SJF . , , . , . . () ( ?).

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

(, ) , . ? ?

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

, , . "" . , , "" . , , , , . . . , , , .

, , , , - . .

, . .

. , "" "". , , - . , , . , , , . . " ". , . ? . "" , , , , . . . . . (, , ). "" . , , , , ( , ). / , . .

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

? , , . . , . . , , . , , . : . , , . , , , , , . , . , , , , , . , , - . . , , , , . , . , , , , . . , , , , , . . "" .

? ? , , . , , . . ? , , , , . , , , . , , . . , . , , . , . , .

, , ? ? , , . . 1. . . , , , , , , ( ). 2. . n, n . , . . , .

3. . , . , , . , . /

- . / . , 100 , , , . . 20 , . , . pipe FIFO, . pipe (, , , ). , , "" , . /. , . - . pipe , , . , , , - , , , , FIFO pipe. pipe . . , , , . . , , . . . : , sockets () . . , 6, ( ) 14. , . ,

. , . . , , : " 33 25.34. ". , . 1. 2. 3. 4. . . . .

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

; , ; , . .

? , . : . , , . , , , , . , . . - , , , , . , , (, ).

, . , , , "". , . . . , . , , , . . : a b c a = a + b c = a + c c

, -. . a + b c. a b

c = a + c

a = a + b

, . , . . 1 a b c = a + c 2 a b

a = a + b

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

2 a b a b a = a + b c = a + c

, , , , , . , "" ( thread). , , , . . , , , . " ". -, . , , -, , , . . . -. , , . , , . , . , , . , . , , . , , , . . 1 2

2 a b a b a = a + b c = a + c

, . , . , . , , , . . , . , . "", .

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

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

Interleaving, race condition , "". , . , . , , . , " " : 1. 2. 3. 4. . . . .

( , , ). , , . P: Q: a b c d e f

a, b, c, d, e, f . :PQ: a b c d e f

, ? , , interleaving. : b c d e f a b d c e f a b d e c f

a b d e f c a d b c e f ...... d e f a b c

. , . . P Q, :P: x=2 y=x-1 Q: x=3 y=x+1

, x y ? , (x, y): (3, 4), (2, 1), (2, 3) (3, 2). . , (, ) , . . . , . . , ? . . . , . R(P) (R read) . , W(P) (W write) . , P: x=u+v y=x*w

R(P) = {u, v, x, w}, W(P) = {x, y}. , x R(P), W(P). . P Q:

W(P) W(Q) , W(P) R(Q) , R(P) W(Q) ,

P Q .

, , P Q , , . . , . , . , , . , , . ( ) , race condition ( , ). x y. ( race condition) , , , . , , , . (mutual exclusion). , , .

(critical section) . , race condition . , , , . , . , , , . , ( 5.1): ", " " " . " " " ". " ", . 5.1. 2

1

3

17-05 17-07 , 17-09 17-11 17-13 17-15 17-17 17-19 17-21 17-23 17-25 17-27 17-29 17-31 17-33 17-35 17-37 17-39 17-41 17-43 17-45 17-47 17-49 17-51 17-53

, ,

2 2 2

: , . , ( 5.2). 5.2. 2

1 3 17-05 17-07 17-43 17-47 , , , , . , (entry section) " " (exit section) " ",

. , , , , . , , :while (some condition) { entry section critical section exit section remainder section }

remainder section , . , .

(critical section) . , race condition . , , , . , . , , , . , ( 5.1): ", " " " . " " " ". " ", . 5.1. 2

1 17-05 17-07 , 17-09 17-11 17-13

3

,

17-15 17-17 17-19 17-21 17-23 17-25 17-27 17-29 17-31 17-33 17-35 17-37 17-39 17-41 17-43 17-45 17-47 17-49 17-51 17-53

, 2 2 2

: , . , ( 5.2). 5.2. 2

1 3 17-05 17-07 17-43 17-47 , , , , . , (entry section) " " (exit section) " ", . , , , , .

, , :while (some condition) { entry section critical section exit section remainder section }

remainder section , . , . , , (Dekker). 1981 (Peterson) . .shared int ready[2] = {0, 0}; shared int turn; while (some condition) { ready[i] = 1; turn =1-i; while(ready[1-i] && turn == 1-i); critical section ready[i] = 0; remainder section }

Pi . , . . , . , . 1 2 . . . , Pi , ready[1-i] == 0 turn == i. , , 1. , while? , turn 0 1 (

, ). P0 , P1 while (turn = 0;). P0, ready[0] == 1 turn == 0, , P0 . . , . . , , P0. , ready[1] == 1 turn == 1. P1 , ready[1] == 0, P0 . P1 , ready[1] == 1 turn 0 1, P0 P1 . P1 , ready[1] == 0, P0 . , . . P0 , P1. (Bakery algorithm) . n , , . . ( ) . . , - , . ( ). shared enum {false, true} choosing[n]; shared int number[n];

false 0 . (a,b) < (c,d), a < c a == c b < d max(a0, a1, ...., an) k , k >= ai i = 0, ...,n

Pi while (some condition) { choosing[i] = true; number[i] = max(number[0], ...,

number[n-1]) + 1; choosing[i] = false; for(j = 0; j < n; j++){ while(choosing[j]); while(number[j] != 0 && (number[j],j) < (number[i],i)); } critical section number[i] = 0; remainder section }

, 1 5, . , . hardware , / . , , . , . Test-and-Set ( 1) Test-and-Set, 1, int Test_and_Set (int *target){ int tmp = *target; *target = 1; return tmp; }

-, shared int lock = 0; while (some condition) { while(Test_and_Set(&lock)); critical section lock = 0; remainder section }

, . , .

Swap ( ) Swap, , , :void Swap (int *a, int *b){ int tmp = *a; *a = *b; *b = tmp; }

Swap, , key, :shared int lock = 0; int key; while (some condition) { key = 1; do Swap(&lock,&key); while (key); critical section lock = 0; remainder section }

, , . , , . . interleaving (). , . . , , . , race condition ( , ). race condition . , race condition, . race condition : . race condition : , , . .

, , Test-and-Set, Swap . , . , , . , . , : H , L . , , , CPU burst ( ). , L , H, , , . H , , L , . , . , .

, , , (Dijkstra) 1965 . , , , , : P ( proberen ) V ( verhogen ). :P(S): V(S): S == 0 ; S = S 1; S = S + 1;

: P S . 0, S 1. 0, , S 0, S 1. V S 1. . - . (, ALGOL-68), . .

P V, , , . P , , , FIFO. producer-consumer , , producer-consumer (-). . , . .Producer: while(1) { produce_item; put_item; } while(1) { get_item; consume_item; }

Consumer:

, , , . , . ? : empty, full mutex. full , , . empty , mutex , put_item get_item ( " " " " , ). C :Semaphore mutex = 1; Semaphore empty = N; /* N */ Semaphore full = 0; Producer: while(1) { produce_item; P(empty); P(mutex); put_item; V(mutex); V(full); } Consumer: while(1) { P(full); P(mutex); get_item; V(mutex); V(empty); consume_item; }

, . , : .

producer-consumer , , . , P, mutex, full empty. , , (mutex ), , . . , . . . , interleaving , . , 1974 (Hoare) , , . , . , - . , . -, . , - , , . :monitor monitor_name { ; void m1(...){... } void m2(...){... } ... void mn(...){... } { } } ;

m1,..., mn - , , : - - .

, , . . , . , , , , , . , , , . , , . , full empty . (condition variables)1), wait signal, P V . , , wait - . , wait, , , . , - signal . , . signal , . , , , ? , , . (Hansen) : signal. . , , , . , signal wait. signal , , . , wait . -.monitor ProducerConsumer { condition full, empty; int count; void put() { if(count == N) full.wait; put_item; count += 1; if(count == 1) empty.signal; } void get() { if (count == 0) empty.wait; get_item(); count -= 1;

} { } }

if(count == N-1) full.signal; count = 0;

Producer: while(1) { produce_item; ProducerConsumer.put(); } Consumer: while(1) { ProducerConsumer.get(); consume_item; }

, . . , , , Java . . , . , , , .

, send receive. : send(P, message) message P; receive(Q, message) message Q. : send(A, message) message A; receive(A, message) message A. send receive . , . producer-consumer . , , , , .

, , . ,

, , . , , . , . . mutex 1 ci . , fi . , monitor_enter, P mutex . ( signal ) monitor_exit, V . wait wait, V mutex, , P ci, . signal signal_exit, V ci ( , ), , monitor_exit.Semaphore mutex = 1; void monitor_enter(){ P(mutex); } void monitor_exit(){ V(mutex); } Semaphore ci = 0; int fi = 0; void wait(i){ fi=fi + 1; V(mutex); P(ci); fi=fi - 1; } void signal_exit(i){ if (fi)V(ci); else V(mutex); }

, signal_exit, - , mutex, , , .

, wait - . , , . . , , , , . mutex. ci , . , . , . - i P(mutex), . , . , , , V(mutex) P(ci). , , , , . , V(mutex), - . ( j), , V cj, . , mutex 0 . V(mutex). - i? , , , , P(mutex). , , , , , , . , V(mutex) , , "" ( j), V(cj), , , V(mutex), . , - , , V(mutex) P(ci). , , . . -, . P . , 1 . 0, , , wait . V , , ,

, , signal , . , , . , . , . P V, , , . , , . V , P . , , . , , . , - V, . , , , .

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

, . . , . , . , . (deadlock). , , , . , " ", , . . . . , . , . (. . 7.1).

. 7.1. . , , . - , , , , . , . , , . H, , (. 5 " "). , , , . , , . . , , . . , , , . , . H , . , , , . , , . , . , , . , , , . , , , , . , . . , request, open . , , .

, , . , . , , .

, 1970 . 1. (Mutual exclusion). . 2. (Hold and wait). , , . 3. (No preemtion). , , . , . 4. (Circular wait). , , . . , : , , . 7.1. , , , . , , , .

. , . , , , . . . , :

. , . . , , , . , , . , . . CreateProcess, ? (Unix, Windows .) , , , , , . . , , .

, . . , , , . : , . , , . . , , . , , (safe state). , , . , , , . .

, n , . , n. , , . , .

, .

3 11 , 9 , 2 . :

. 7.2. 3 11 . . . , , . . , , . , . , . , . .

. . , . . .

. " ".

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

, .

. , . , , , , , .

. , . , (" "). , . , . (mainframe), . . . , . , . , , .

, . .

-, , , , . -, , , , . , , . , , .H

, " " . . , , . . . , , . Windows 2000. - ( ). . , P1 - S1 - S2, P2, - S2 - S1. , . , . , . . , . , , , .

, :

; ; ;

( ) , ; .

. , . . . . , , , . " " ( - , ). . - , (embedded) .

( ) . . . , . , (. . 8.4). IBM OS/360 (MFT), DEC RSX-11 . , , .

. 8.4. : (a) , (b) . , , , . , , .

. . , , . ROM (, BIOS, ). , , , , . MS-DOS. , .

, ( , ), , (overlay) . , . , , 1 (MS-DOS) 64 (PDP-11), . 32- ,

, (. " ").

. 8.5. . A-B, A-C-D A-C-E . (overlay description language). ( .odl), . , . 8.5, :A-(B,C) C-(D,E)

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

, . , .

(swapping) . (paging) . . . . , . , . ( ). , , . Unix , .

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

. 8.6. ( ) ? .

(First fit). . (Best fit). , .

(Worst fit). .

, , . , , . (), ( , ), . . . , , . . , , . , 1/3 ! 50% ( ). , () () , , . . . , , , , , .

, . ( paging) , . (page), (page frames). ( ) , 2, . . , - , , .

(p,d), p , d p, . , . , . , , . . , . , - , . . 8.7. v = (p,d), p , p', p' d.

. 8.7. (page table) . , , , . . , , .

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

- : -. , , . . , , . , , , , (, , ...). , , , ( , ). . , ( , , ). , , , : . , 0. ( 32 232 4 ). (, ). . , . v=(s,d), . , , , -. , , , . . , .

, .

. 8.8. ( Intel). , . , . . - . : , . , , , .

. 8.9. - . , .

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

, . . . . (virtual memory). 1959 . "", . . , , . , . , -, , . -, ( ), , ( ). , , , , , . , . , . , , , , . .

, , .

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

, ( ) "" ( 32 232 = 4 ) ( ) ( ) . , , , . , . , , , . , 16- PDP-11/70 64 2 . , . , , ( ), , . " " , , , , . , . , . . , (page fault). , - . c- ,

. , , - . .

, - . , , , . - - . , - . - . . , , ( ). , , . , . (page), (page frames), (paging). . (p,d), p , d p, . , . , () . . , (. " "), , , .

, (page fault) . , , . . . . , . , , , , . - , , 0. , . , . , , , , . , . , Linux Windows 2000 , 4 . . - . . , . . , 32 . , . . (, 0 read/write, 1 read only...). : , , , ; , ; , , . , .

, . 32- , 4 ( 64- 264 ). , , (. ). . 32- 4 (Intel) 232/212=220, , 64- . , (entry), . , ( - ). , , , . , . , . . -. . 4 , 32 Intel. , 220 , 210 210 . , 210 . 32- 10- p1, 10- p2 12- d. p1 , p2 , d (. . 9.1).

. 9.1. 4 (4 x 1024) . , . , 220. . , , . , , . , . . (DEC PDP-11), (Intel, DEC VAX), (Sun SPARC, DEC Alpha) , (Motorola). RISC MIPS R2000 . , , ( zero level paging). , , , . . . , . , , -, . , (translation lookaside buffer TLB). ( ) : , . . , TLB . , . . , ,

. TLB 8 4096. , . . . , , . , . . ( ). , , . hit () ratio (, ). " ". , hit ratio , . hit ratio. hit ratio, , . , , - 100 , - 20 . 90% hit ratio 0,9x20+0,1x100 = 28 . . : . . , " " , , . , . ( + ) , , . , - . 64- , . (inverted

page table). PowerPC, Hewlett-Packard, IBM RT, IBM AS/400 . . , . , , , . , Pentium c 256 64 . , ( ) , . - . , , - . - . , -, . . . . , . , . 29 214 . , , , , , . ? -, , ( , ). , . . - . . . , , DEC PDP-11 8 , DEC VAX 512 , , Motorola 68030, . , , Pentium 4 8 . .

.

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

, . , . , ? , - . (exceptions). " " (page fault), . : , " " " ". , . , . - , . , , , . , . :

(page fault); () (, , , ); , page fault.

. . , page fault 5x10-7 , 10%. , page faults . .

: (fetch policy) - . - . , , . . , , , , ( ). , , ; , . (placement policy) - . - . , . (replacement policy) - , . , , . . , , , , .

, ,

. , , . , . :

; ; ; ; , .

, . ( ). , . . , , . read-only-, . page fault. . . , , . , , . , , . . -, . , , - . -, (, , , ), . . , . . , . , page faults. (reference string).

. , :

, , ; .

, , . . (reference ) , , (modify ) , . , , . . FIFO. . . , , , , . . , , . , , page fault . (Belady)

, , page faults. , . , , . " " " FIFO". (9 faults) , (10 faults), 012301401234 FIFO.

. 10.1. : (a) - FIFO ; (b) - FIFO , , , , . (OPT) , page faults . . : , . , , . , . , . , . ( - SJF). , , , . . . LRU OPT , , - .

FIFO , , . , , . least recently used (LRU). . . 10.2. . 10.1 b 10.2, , LRU .

. 10.2. LRU LRU - , . , . . . [, 2002] LRU 64 , , , . page fault . , LRU . , n n+1 . (stack) . . NFU LRU, , LRU, . , LRU, - NFU(Not Frequently Used). , , . ( ) , . , , , .

NFU , . , , , , , . , , , , . , , "". , 1 , . , . . , Second-Chance - FIFO, ( ) . , , FIFO, , , . ( ), Second-Chance FIFO. Multics BSD Unix. Macintosh NRU (Not Recently-Used), -"" . , , VAX/VMS Mach. . . [, 1987], [, 1977], [, 2002] .

, . , , , , , . . , , [Denning, 1996]. , , ? ? ? (Thrashing)

, - , page faults. (thrashing, "", . . 10.3). , , . .

. 10.3. page faults , . . , , , . ( ), . . , . , - . , , . , . , . . , , . , - . H . , . , page faults, , . . page faults. , . H , ? ,

. , . . , . page fault, . page fault - . , page faults . , (P1, P2, ... Pn), , t T , page faults. W(t,T) (working set) . , T . T , (. . 10.4).

. 10.4. , , , , , . . , . , . H, , , , , . , . , . , , . . . (t-T, t) W(t,T), T (t, t+T). , , , . , ( , ).

- . , . , . , . , , . . : . ti ( i), i- , T t : t-T < ti < t. WSClock, , [, 2002]. , . page faults , . - , . , , - . , , .

. , , ( ), "" . , . - . - , , Unix (., ,[Bach, 1986]). , . , , . , , , ( , ) thrashing, . , ,

, . Windows 2000 (Working set manager), , , .

, , - , , , . - , . . : , , , , (. . 10.5). . , read-only. . , , , ( , - ) , .

. 10.5. , . , . ,

, . , . ( Linux ) , . . . , (., , mm_struct vm_area_struct Linux). . . , . , (). (, map unmap), . ( exec) (mapping) (, ) . , , . , , page fault . , . , . , Unix. , ( malloc, new) (free, delete) , brk ( break), brk . , brk , . brk . ( free, delete) . . -, " ". -, , . . Unix [], [Bach, 1986].

, , . ,

, , -, , . , -. , . , page fault , , , . , - (DMA). , . - , , . . -. . . . , , . , . , . , . SunOS , , . . . , - , . . Solaris , . page faults, Solaris , , . , , , . , , . , , , page fault. ( .). .

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

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

. , . . , (, , ), " " , . . 1. . . 2. . . , , , , . 3. . . 4. . 5. , . 6. . , - , . - . , . , - , , , - . - . , , , , . ( ). 100 000 , . , , , . , , ; , ; ( ). , , , .

. - , . , . . . (+), progr.c (, ) autoexec.bat (, ). . , , . POSIX, ( 255 ). - . , , . : () (, ). . , . (). . , , . , . . , , , . , , , . . . ( ) (, ) , . ( ASCII), () . , , . - , , . . , Unix : , , , . , . . .

, , . , .c, .pas, .txt - ASCII-, .exe - , .obj, .zip - . . , , . . . . : (, ), (, , ), (, ) ( , , .). (. ) , .

. - , . . , ( ). - . . . - . . , , , . , . ( ). , . (rewind). (random) , , , . .

, , . . , . , , : , seek. , , . , , , - . . . , Unix MS-DOS. . . ( /) . , . , , , (mainframe), . - , . , . 80 ( ) 132 ( ). CP/M 128- . CRT- . - , (. . 11.1). - - . (, ) . -.

. 11.1.

. , , , , . , . , - . , , , , , . . 11.2 - .

. 11.2. , . , (Unix , . ), . , , , , . . ( ).

, . , . -, , -, . , . Unix [, 2002].

, . - , , . . . . . - , . . () . , , , , . , C fd=open(pathname,flags,modes); fd, (read(fd,buffer,count); ) . . , . , . . , ( ) , . . . . . , , , , , .

, , . . [, 2001]. , ( stateless). , : open, read1, close, ... open, read2, close, ... open, read3, close. - , . : open, read1, ... read2, ... read3, close. , . , ; (, Sun NFS).

.

. , . . ( ). / , . , (., , .11.3). . , ( ). .

. 11.3. , (. . 11.4).

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

, . , , - , . , , , . . , , . ( ), (pathname), , , . , /usr/games/doom. . : "/" () Unix MS-DOS ( Multics - ">"). , . , - . , , . , . , , , , . . /usr/linux/progr.c. . . usr, . . /usr. , , , linux . linux , usr/linux/. progr.c, , . pathname , , ( " ") . . , , . , . , , "." - ".." - . . . , . ( ), (partitions). , , ,

(, Windows NT). , () . , , , ( , , ), . , ( ). , ( ). , c:\util\nu\ndd.exe. DEC Microsoft. (Multics) . , , , . Unix , , . "" . (. ). mount Unix . , . . , , Unix .

, , , . - , , . . , , , , . , [, 2002].

. '.' '..', . . .

. H, , , , . . . . , Read, . . . , . . . . . , , .

, . , .

15-16. (reliability), (protection). , . . . : , . , , . . , . H , (access control list), . . - . , . .

, . ( ).

, , Unix .

(Owner). (Group). H , . (Univers).

. ( ) . Unix , 9 (rwxrwxrwx).

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

(. . 12.1). - . - ,

(), . , . (), () , . , , , , . , ( ). () , - (. 13). - - . - , , 2, 75, 11. , ( 0 1 N). , . , , , , . (. 11 16). (open) (create) . , , . , , ( handle Microsoft) . - . . , , . - . .

. 12.1. -

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

- . ( ). , b, b+1, b+2, ... b+n-1. . -, , , . -,

, . IBM/CMS, RSX-11 ( ) . , . . . . , ( ). (. 8), , , . , , . ( ). , , , , . , . - + . , . , " ", . , . , , . , -, .

- - . ( - EOF). (. . 12.2).

. 12.2. . . , . . , , . -, i- , 1 i-1, , , . . -, . , . , , . , ( ), , , . .

, , (FAT - file allocation table) (. . 12.3). (MS-DOS, OS/2, MS Windows .) - , . FAT . , , , EOF. , , , , . .

. 12.3.

- , (i-node), (. 12.4). , , . . , . , . . , , . . . , , . , .

. 12.4. Unix ( HPFS, NTFS .). , , . , , . , , . . .

(bit map bit vector). , 0 1, , . H, 00111100111100011000001 ... . , n . , . H, Intel Motorola

, . Apple Macintosh. , . , , . , 4 4 128 . , , , .

- , , . . . , , , , . , n . n-1 . n . . , , . . (Unix) . , . , , . , ( , ) . . , . , Unix 85% 8 48% - 1 . , , - (

- 4 ). 512 , 1 , 2 , 4 . , . , Unix, , , (. . 12.5).

. 12.5. , , :

; ; ; .

(, format, makefs .). , . . Unix , , , . , , . (ilist) , . . , , . . . , . .

, - , . - . , , - , (, ). (pathname), . (. . 12.6). (. " ") . .

. 12.6. , . , , . . . , . 12.6. , Unix. . MS-DOS

MS-DOS , . 12.7.

. 12.7. MS-DOS

MS-DOS, , ( ), . FAT. . Unix

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

. 12.8. Unix Unix , . . . .

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

(. , [, 2001]) - , . , -. -, -, . , . , , , , . , . . , . .

, . NTFS B-, (. [, 2001]).

, , , , . mount () , umount () . mount, , , . . ( Unix ) ( ), ( ) (. . 12.9 . 12.10). H, Unix mount :mount(special pathname,directory pathname,options);

special pathname - ( ), , directory pathname - , ( , ), options , " " ( , write create, ). , , .

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

. 12.9.

. 12.10. . , , . (. ) - - 1. , . , , . , . : , , , ( ), . , , .

, , , . (link). , , (. . 12.11). ( ). , Unix vi ex, edit, vi, view vedit . "" "" (link). . , . - . , , , . , CP/M . , . - , "" .

. 12.11. . - (hard link). , (, ), , , . - , . (soft symbolic link). , ( ).

. . . , Unix , . 1. , 0. , . , , . . - . , , . , , , , . - , , . , . - . - , .

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

, , . , open (. ., , , - ). ( Multics). Unix , . Unix, , . ( ) : (, ) . , - . , , , V , fcntl. : , , , , . , , - . , fcntl, - . , , , - . , . , Unix , , , , . , , , . . , , . , , . , Unix , , "" , .

. (link), [Bach, 1986]. , : A: B: link("a/b/c/d","e/f/g"); link("e/f","a/b/c/d/ee");

. , A "a/b/c/d" , B "e/f". " " , , . A "e/f", , "f" . B "a/b/c/d" "d". A , B, B, , , A. , . , () , . , . , , , , . , A "a/b/c/d" "c". , . B "c", , A. B A. A , B , "c" . A , . , > , . , .

H , , . . ,

(backup), . - . , . . , , , . . . ( ), . , "" , , , , , , ( ) . , .

, . ( ) , , (, , . .), . . [, 1999]. :

, ; .

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

, ( ""). , , , , , . , , . , . , . , , , ( , .). . , , , . NTFS, Ext3FS, ReiserFS . , , , . , , . , . [, 2001]

, (fsck, chkdsk, scandisk .), . . . H, , , . , , , , , , . "" - . . "" , . . , . - , .

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

- , - , . . , (. . 12.12). / , . , , . ( , ). . -, . , , . FIFO, Second Chance LRU- , .

. 12.12. . , : , , , . ., . -, , , "" , . . . , , ( , , ), , , LRU- . H . Unix SYNC, . -. , , , . , , , . , , -, , . - . - . , Unix . , . .

, ( ), ( , , FAT) , .

. , [Bach, 1986], . , , pathname

. , Unixfd = creat(pathname,modes); fd = open(pathname,flags,modes);

, , , -, , -, , . open. . . . () , ( ) . , . (. . 12.13). (0, 1 2) , . Unix , .

. 12.13.

link , . link:link(source file name, target file name);

source file name - , target file name - () , link. . ; , link , , . , .

Unix unlink . unlink:unlink(pathname);

- , . , .

, , . , , , , . , . read write, ( handle Microsoft), open creat. -

read number = read(fd,buffer,count);

fd - , open, buffer - , read, count - , , number - . write ():number = write(fd,buffer,count);

fd, buffer, count number , read. . , , , . read write , lseek , -, . :position = lseek(fd,offset,reference);

fd - , , offset - , reference , offset , - . , position, , .

(Linux Ext2fs, FAT .).

(. . 12.14). (, Windows 95 installable filesystem manager). . ( - ) , , . -, . (vfs) (s5fs, ufs, FAT, NFS, FFS. Ext2fs ). vnode, .

. 12.14.

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

- . : -. , , , , , . -. " " " -" , . , " " , , , . " -" , , , , , , . " " , , , . " -". , , , III , , . , , , . " ", . , II, ( ?) ( . .), , ( ). -. , -, . , , . . , " -" . , , -. -, " ", , .

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

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

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

3. 1 2 , , . , , . : , ( , ); , , . . . , , - . , -. , , , - -. - . , ( ) ( , ) , - (, , ), , . , . - , , , , . -, - . , .

, , , -. , , . 1 2 , - ( !), .

- , , -. , , , , . (, ), , ( IDE, SCSI . .). , , . . .

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

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

. , , , . , , . ( ), FIFO . , , , . . , " " " ", . , , . , , . 1. . , , , . , , . 2. . 3. . 4. . . 5. , , . 6. , . . 7. . 8. , . 9. . . , , 4 , , .

, (, , 4) , . polling , , . - , , . , . - , , , . , , . , - . , ( , . . , ) . , . -, , (polling !), (, ) , ( ). , , . , , , . , , , . , , , . , , . , ( ) . , , . , , .

, , . , , , () -. (, ) . , , (NMI Non-Maskable Interrupt). (" , "). , , . . ( ) . , . , . , , , , , . -, , . . .

( ). . , , .

. , , (. III) . . .

. .

, , .

, , . .

. . , , .

, , . , -. (Direct Memory Access DMA) , - . - (, ) -, . Direct Memory Access DMA. , . - , , , , . , . DMA, . , , , , . DMA, , . , , , , DMA, . DMA . , , DMA, - .

, . . DMA . , , , , . , , DMA, . , , DMA . - - , . , , , , , , , , DMA. hardware . , - . -

-, , , , , [Linnaes, 1789]. , , , , . ( ), .

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

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

, . . , . , , , . -. , , , , , . , -, , , . , , , . - (. . 13.1). hardware: , , , . -, hardware -, , , .

. 13.1. - -. , . :

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

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

, , , . , : , , , . , : , . . : () () get put. , , . . read write, , , seek. - . , , , , . - , , . Unix ioctl ( input-output control). read, write, seek ( ), get, put ( ) ioctl, .

open. (, , ) close. ( - , , Windows NT Windows 9x ) poll. , , halt.

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

- . . , , , , spooling'a , , -, . .,

, -, -.

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

, . , . , . , -.

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

(cash ""), , , , - , . . - , , .

, , , - . , , , , . -. , .Spooling

spooling , , - . . spool , , ( interleaving . "Interleaving, race condition " 5) . , spool , . . , , . , spool- . spool- . , , spooling. spooling race condition . , . ( ), , , , . spooling -.

, , , , , , . , , " " 2,

: , , , . , . , " ". - (, , ), , . , , . , , , , , . , . , . , , , (, ). , . , , . , , , . . - intr.

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

, - . . -, . , . , , strategy. , , . , , .

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

. 13.2. , . , , : , (transfer speed), , , (positioning time). , , , , (seek time) , , , (rotational latency). , . . . , , , . First Come First Served (FCFS)

, , First Come First Served (FCFS) , . FIFO . , . . 100 ( 0 99) : 23, 67, 55, 14, 31, 7, 84, 10

63- . :63 23 67 55 14 31 7 84 10

329 . 7 84 10. (7 10 84) . . Short Seek Time First (SSTF)

, , , . Short Seek Time First (SSTF) . , . , , FCFS. :63 67 55 31 23 14 10 7 84

141 . , SJF , CPU burst , . , SJF, - . , . , , , . SJF CPU burst. , SSTF . 67- 7- 84- , . . (SCAN, C-SCAN, LOOK, C-LOOK)

SCAN , . , . . , . :63 55 31 23 14 10 7 0 67 84

147 . , , , :63 55 31 23 14 10 7 67 84

133 . SCAN LOOK. , SCAN, . . , , ( , , !). , , . SCAN . , ( , ) , . , C-SCAN, :63 55 31 23 14 10 7 0 99 84 67

LOOK SCAN CLOOK C-SCAN:63 55 31 23 14 10 7 84 67

, , , : " : ".

: -. " " , , . " ", . . . -, . - : -; -, ;

-; , . , , , . - "" . hardware , . -, : , , , spooling , , -, . - . -. , . . , , 80- . , , , : . . . , . . . , . , . - , . - .

? ?

( , ). , . . . , , , ? . . , , hardware, . , , , . /. . , ( , , . .), , . . , ( ) . , .

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

. . . Advanced operating systems, , " ", . , , .

. , . . , . , ( ), 4, 5 6. 1. , : , . . , . , , , , . pip' , - . . . . , ( , ) , . . 2. , - . .

, , . , , , ( ), . - . , , , ( ). . , -, "" , . - - - , . 3. , 4, . , "" . , . . , , . , ( ) ( ). , . , , . . 4. ( ) ( ) . . 5. , , , . , , , . (race condition!) , ,

, , . , , , , . . , .

, , : 1. ? ? 2. race condition ? ? 3. ? ? , , ? 4. ? ? 5. - -? , -? , , . , , , . . . , , . ( , ,. . ) , . , .

, , . , . , 35.

2 "", , , . , , , . "" , . , , , , . , , , ? . () , . , , , , , . , . , , , , , . , ( , , : , , . .) . , , -. , , . : , . . , , , , , , ".162"? , () (). , . , , . , ,

, , , . "" 13, - , "". , , , , , . . "" . . , . . . 35, , , , , . . . . , . (LAN Local Area Network) (WAN Wide Area Network). , , . , , , , , , . (MAN Metropolitan Area Network) , . , , . , , . , , , , , .

, , , , , . , "", , .

"" , N N+1, N-1. , , , . , . , , . , . . , , , . , . ( ) () . ( ), , . . , , . ( ), , , , . , ( ). , . . , , ( !) , . () . (, , ) . , ( ) . . , . , , . , N 2 , N 1. 1 1, 1 2 N .

, , , , . ( ) , "" , , . , , , , (Open System Interconnection OSI), (International Standard Organization ISO) OSI/ISO (. . 14.1). , OSI/ISO [, 2001]:

1 . hardware. , : , , , , . . 2 . . . ( 13). 3 . - -. , , , . 4 . . , , , , . .

. 14.1. OSI/ISO

5 . . . . , . 6 . , , , . 7 . . , , , (Web-).

, . , , , TCP/IP, , . . , , (, ) , 7 .

, . [, 2002], , . , , . 35, " , , , . , , .

, , . , . 4 , . . , . ? , , , , . : . . , ( ), , ( ), ( ), , , . . , , . . , , , -, ( broadcast message), ( - ), . , (, NetBIOS Ethernet), , .

, ( ), ( ). . , . , . , , . , , . , , , , , 4 16 . . ( ) . . , ( ) ( ). , . , , , , . , . . , , , . , , . . , , . , . , . . , Internet, Domain Name Service DNS. . .

, , . , , ( ) 0. - (domains). ( ), ( ). . , . , , , . , 3 5 , 0. , , , , ( , ), . , . , , ".". , , , serv, , , crec. , , - mipt, 1 ru. serv.crec.mipt.ru. , . , , DNS. DNS DNS , , , . , DNS, ( 1), DNS 1 ( ). DNS, . , serv.crec.mipt.ru ssp.brown.edu. DNS-, crec.mipt.ru, . DNS- , DNS-, mipt.ru. , DNS, 1- ru. DNS,

1- edu, , , DNS brown.edu, . DNS , (. . 14.2).

. 14.2. DNS- , DNS , DNS . , DNS- . , DNS . DNS-, - , , . DNS, . . . , , . , DNS. . , . : , . .

, , , PID. . , , , , . , , , , , , , , , . , . , , . , , . . , , , , . , -. , . , , , , , , . (. . ) , , . . (socket) , : . socket ( "" , , ), . . , , , . , , . . (

) .

, . , , , , . . : - ( ) ? ( ) ? ? : .

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

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

-, (, , ) . , ( ). -, , , , , , (default). :

. 14.3. :

; ; .

, , . . , A , . , . . , , . , . , . , . , . , , . , . , - , ,

, . , . , . , , , , . : - . - , ( router), , . (hops), , , , / . . , . , . . - , . - . , , , , , . . . [, 2002], [, 2003]. . , , . , , . .

, , , . , . , , . 4, ( ): - . , . OSI/ISO. , , (connectionless) , (datagramm) . . , , . , , , , , , , ( ). - , . , (connection-oriented). . , ,