.


:




:

































 

 

 

 





-

-, . ϳ . , , , . -, .

-, . .

 

 

. , .

1.3.4

, .

, . : ( ), . .

. ( ), (, ). Գ .

1.3.5

, . :

( , ) , ;

, 볺.

 

 

, , .

, , . , ᒺ . , . , .

ϳ ( ) ( ).

( , , ; ) ( , , ).

䳿 : (shell) (GUI).

 

, (

). 䳿 (, . ).

. ϳ : , Windows- , UNIX -.

, . .

: , , -, , , , .


 

2

, . 䳿 .

, , 䳿 . Linux.

2.1

2.1.1 .

, , , (operating system kernel).

- . , , , , , , -. .

, . .

. , , - , .

 

 

: ( , , kernel mode) (user mode). , ( , , - ).

, 䳿 .

ϳ . , . , , (system call). , , , .

, , . , .

2.2

. .

2.2.1

, , . ( 䳿 ), ( , ).

, . ( ). ( ).

2.2.2

(, layers), . 䳺 , .

. , . Multics, 60-. .

г ; . :

 

 

, , 䳿 ;

, , 䳿 , . , ;

( ), ( , , ). , ;

, .

2.2.3

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

̳ . , (볺 , 볺) . ̳ , . 볺. 볺 , .

:

 

, ;

, ;

( , );

( , ).

. ( - 볺 , ).

, , , . , QNX , .

2.2.4

ﳿ ( ). ֳ ﳿ ( ) , , .


 

2.3 : UNIX Linux

2.3.1 UNIX

UNIX . , UNIX . 2.1.

 


2.1 UNIX

 

: , -.

ϳ , , , .

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

ϳ - , . UNIX : (, ) (, ). , . , , . ϳ .

2.3.2 Linux

 

Linux :

, ( , , - );

, ( );

( , ).

Linux

Linux . . .

( , , , ).

.

³ 䳿 -.

. .

.

ϳ 䳿 , .

, . (, ) , . Linux .

Linux . (kernel modules) .

.

, , .

ǒ : , , .

, , , 糿 Linux . Linux, .

ϳ Linux .

.

, .

 

 

.

, (, ).

( ) , . ϳ , . .

Linux , , . :

;

( - , , printf();

(, ).

Linux .

, 䳿 .

 

 

. , .

. , , . , .

䳺 . . .

䳺 . , . .


 

3

, , , , ( , , ).

3.1

3.1.1

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

ϳ , ᒺ .

, , . , .

: , .

 

. :

, (, );

, ( , );

ֳ :

;

( ), .

, , . .

( , , thread) , . , . .

, , .

. ;

 

 

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

, . , . , .

, .

. , , , -. (memory mapping).

3.1.2

( ) , , .

, .

( ), .

 

, .

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

(, Windows XP, UNIX) , . ֳ . .

, , .

3.1.3

:

;

, ( );

( , 璺);

;

:

( ), ;

 

( , , );

3.2

:

(new) ;

(running) ( );

(waiting) 䳿 (, -); , ;

(ready) , , , ;

( terminated) ( , );

. 3.1.

 
 

 

 


3.1

 

, . ϳ , -, .

. , , , .

³ , , , , ; .

3.3

, . ( ), - ( ).

, , , . :

: , -, ;

, , .

3.3.1

 

 

, . ֳ , .

(Thread control Block, TCB) , , , .

ֳ :

( );

: , , ;

.

. .

(Process Control Block, PCB) , . :

( , , );

, (, );

, (, , );

);

- , .

 

3.3.2

, , (process image), (thread image). :

;

;

( , );

.

, . , .

:

;

( , );

( , ).

3.2. .

3.4

, . .

 

 
 

 

 


 

 

.3 2

3.4.1

. , UNIX- init, Windows XP (Win32 POSIX). , , , .

. , , , .

( , - )

 

 

(, , ).

䳿 .

, , , . .

. . ( ) ( , ), ( -, ). (services, windows XP) (daemons, UNIX).

3.4.2

, . .

fork() exec()

. , POSIX- fork().

, , fork() . ,

 

. fork() .

, . , POSIX- exec(). exec() , .

fork() , fork() exec() ( 㳺 fork+exec).

. ( ). :

( ).

.

ϳ fork() exec() , . .

3.4.3

.

 

 

 ( , , , ). . POSIX- _exit(). ³ , , , .

. ( , ), ( , ).

. , . , POSIX- kill().

ϳ , , , . . , . .

3.4.4

, :

;

 

 

, , - . ( , POSIX- wait().

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

3.4.5

, , ( , , ). , .

fork(), ( ).

.

, ( ). ϳ 䳿.

 

 

1. , .

2. .

3. , ; , .

, , , .

ϳ (, ); , . , ; , .

, . , , . ( thread joining, , ). ϳ , , . ϳ , ( , detached). 䒺 (nondetached joinable, ), , .

3. 5 UNIX Linux

UNIX- :

;

, ;

, ( , , );

, .

.

3. 5. 2

.

(pid) 񳺿 , . init .

- (ppid) . . UNIX- -. P , init, ppid P .

.

(uid, gid) , , .

(euid, egid) .

 

Linux.

 

Linux task_struct. , :

( pid );

(, );

;

( );

( );

(id, gid,euid, egid).

, Linux , .

, task_struct , Linux:

;

;

, ;

.

task_struct , .

. 2.4 ; , 4 . 2.4 , :

 

- ( pid ), ;

, .

fork() (, , 512 32000 ).

Linux UNIX-. UNIX (System V, BSD) (proc) (u).

fork() Linux

UNIX- fork(). Linux.

1. (task_struct). , .

2. . ϳ , , .

( ), .

3. (pid), , .

 

 

4. ( , , ).

5. .

6. - .

7. .





:


: 2016-11-20; !; : 741 |


:

:

, ; , .
==> ...

1926 - | 1717 -


© 2015-2024 lektsii.org - -

: 0.272 .