1. Trang chủ
  2. » Công Nghệ Thông Tin

Hệ điều hành chương 3 quá trình

33 199 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 416,04 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cây quá trình trong h th ng UNIX... • Quá trình cha đang thoát... • Remote Procedure Calls RPCs • Java’s Remote Method Invocation RMI... Giao ti p khách-ch 2Sockets tt.

Trang 2

Ch ng 3: Quá trình (Process)

̇ Khái ni m v quá trình

̇ nh th i cho quá trình

̇ Các thao tác trên quá trình

̇ Giao ti p liên quá trình

Trang 4

Khái ni m v quá trình (2)

Tr ng thái c a quá trình (Process state)

M t quá trình có th có m t trong các tr ng thái sau:

̇ new: quá trình đang đ c kh i t o.

̇ running: các ch th c a quá trình đang đ c th c thi.

̇ waiting: quá trình đang ch đ i m t s ki n nào đó xu t

hi n (hoàn thành xu t/nh p, ch đ i m t tín hi u).

̇ ready: quá trình đang đ i đ đ c s d ng CPU.

̇ terminated: quá trình đã k t thúc.

Trang 5

Khái ni m v quá trình (3)

L u đ tr ng thái c a quá trình

Trang 6

Khái ni m v quá trình (4)

Kh i đi u khi n quá trình (PCB - Process Control Block)

Là thông tin k t h p v i m i quá trình:

̇ Thông tin v chi phí

̇ Thông tin v tr ng thái nh p/xu t

Trang 8

Khái ni m v quá trình (6)

Chuy n ng c nh (Context Switch)

̇ Khi CPU chuy n sang m t quá trình khác, h th ng ph i l u l i

tr ng thái c a quá trình c và n p tr ng thái đã l u tr c đây

c a quá trình Tác v này g i là context switch.

̇ Th i gian cho context switch là m t phí t n – h th ng th c

hi n công vi c vô ích.

̇ Th i gian này ph thu c vào h tr c a ph n c ng:

• T c đ chuy n ph thu c vào t c đ b nh , s l ng thanh ghi

Trang 10

nh th i cho quá trình (2)

Hàng đ i s n sàng và nhi u hàng đ i thi t b

Trang 11

̇ B đ nh th i ng n k (Short-term scheduler/CPU scheduler) –

ch n ra quá trình s đ c th c thi k ti p và c p CPU cho nó.

̇ B đ nh th i trung k (Medium-term scheduling) – th c hi n hoán v (swapping) các quá trình ra/vào b nh / đ a do c nh tranh CPU, b nh

Trang 12

nh th i cho quá trình (4)

B đ nh th i trung k

Trang 14

Các thao tác trên quá trình (1)

T o quá trình

Quá trình cha t o ra quá trình con, đ n l t quá trình con này l i

t o ra nh ng quá trình khác, t o nên cây quá trình.

Cây quá trình

trong h th ng

UNIX

Trang 15

Các thao tác trên quá trình (2)

T o quá trình (tt)

̇ Chia s tài nguyên – có nhi u l a ch n:

• Quá trình cha và con chia s t t c tài nguyên

• Quá trình con chia s m t ph n tài nguyên c a quá trình cha

• Quá trình cha và con không chia s tài nguyên nào c

̇ D li u kh i t o:

• c chuy n theo t quá trình cha sang con

̇ Th c thi:

• Quá trình cha và con th c thi song song

• Quá trình cha đ i đ n khi quá trình con hoàn thành

̇ Không gian đ a ch :

• Quá trình con sao chép không gian đ a ch c a quá trình cha (cùng ch ng trình và d li u)

Trang 16

Các thao tác trên quá trình (3)

T o quá trình (tt)

̇ UNIX:

fork – là l i g i h th ng dùng t o quá trình m i

execlp – là l i g i h th ng đ c s d ng sau fork b i m t trong 2

quá trình đ thay th không gian đ a ch c a quá trình đã g i execlp

b ng m t quá trình m i

̇ Windows NT: h tr c hai mô hình

• Quá trình con sao chép t quá trình cha

• Quá trình cha xác đ nh tên c a m t ch ng trình cho h đi u hành

n p vào không gian đ a ch c a quá trình m i

Trang 17

Các thao tác trên quá trình (4)

Minh h a l nh fork trong UNIX

if (pid < 0) { /* error occurred */

fprintf(stderr, “Fork Failed”);

exit(-1);

} else if (pid ==0) { /* child process */

execlp(“/bin/ls”, “ls”, NULL);

{ else { /* parent process will wait for the child to complete */

wait(NULL);

printf(“Child complete”);

Trang 18

Các thao tác trên quá trình (5)

K t thúc quá trình

̇ Quá trình th c hi n câu l nh cu i cùng và yêu c u H H xóa nó

(dùng exit).

Xu t d li u t quá trình con lên quá trình cha (dùng wait).

• Tài nguyên c a quá trình b thu h i l i b i h đi u hành

̇ Quá trình cha có th k t thúc s th c thi c a quá trình con

(dùng abort).

• Quá trình con đã v t quá s tài nguyên đ c c p

• Công vi c giao cho quá trình con nay không còn c n thi t n a

• Quá trình cha đang thoát

X H đi u hành không cho phép quá trình con ti n hành khi quá trình cha c a nó k t thúc.

X S k t thúc hàng lo t các quá trình con (cascading termination).

Trang 19

Các thao tác trên quá trình (6)

• Chia s thông tin

• Gia t ng t c đ tính toán (n u máy có nhi u CPU)

• Module hóa

• Ti n d ng

̇ Các bài toán h p tác quá trình: ng i s n xu t – ng i tiêu

th , b đ c – b ghi, …

Trang 20

Giao ti p liên quá trình (1)

(IPC – Interprocess Communication)

̇ IPC cung c p c ch cho phép giao ti p và đ ng b h at đ ng

c a các quá trình không chia s cùng không gian đ a ch (có th

n m trên các máy khác nhau).

• H u ích cho môi tr ng phân tán (ví d chat trên www)

̇ IPC dùng h th ng chuy n thông đi p (Message Passing System).

̇ H th ng chuy n thông đi p có th đ c đ nh ngh a theo nhi u cách.

Trang 21

Giao ti p liên quá trình (2)

H th ng chuy n thông đi p

̇ H th ng chuy n thông đi p cho phép các quá trình giao ti p

v i nhau mà không c n tham kh o đ n các bi n dùng chung.

̇ Cung c p ít nh t 2 thao tác (operation):

• send (message) – kích th c thông đi p c đ nh/bi n đ i

• receive(message)

̇ N u P và Q giao ti p v i nhau, chúng c n:

• Thi t l p n i k t giao ti p (communication link) gi a chúng;

• Trao đ i thông đi p thông qua send/receive

̇ Cài đ t n i k t giao ti p:

• Thu c tính v t lý: b nh chia s , bus ph n c ng, …

• Thu c tính lu n lý: giao ti p tr c hay gián ti p, đ i x ng hay

đ i x ng, b ng b n sao hay tham chi u, kích th c thông

Trang 22

Giao ti p liên quá trình (3)

Giao ti p tr c ti p

̇ Các quá trình ph i đ c đ t tên rõ ràng:

Send (P, message) – g i thông đi p t i quá trình P

Receive(Q, message) – nh n thông đi p t quá trình Q

• i x ng trong vi c đánh đ a ch : 2 quá trình ph i bi t tên nhau đ giao ti p;

• Thay đ i đ th c hi n tính b t đ i x ng trong đánh đ a ch :

X Send (P, message) – g i thông đi p t i quá trình P

Trang 23

Giao ti p liên quá trình (4)

Giao ti p gián ti p

̇ Các thông đi p đ c g i và nh n thông qua h p th (mailbox),

c ng đ c xem nh c ng (port)

• M i mailbox có m t đ nh danh (id) duy nh t;

• Các quá trình ch có th giao ti p n u chúng dùng chung mailbox

X Send (A, message) – g i thông đi p t i h p th A

X Receive(A, message) – nh n thông đi p t h p th A.

Trang 24

Giao ti p liên quá trình (5)

• Cho phép m t n i k t k t h p v i nhi u nh t 2 quá trình

• Cho phép ch 1 quá trình th c hi n thao tác nh n t i m t th i đi m

Trang 25

Giao ti p liên quá trình (6)

ng b hóa (Synchronization)

̇ Chuy n thông đi p có th ngh n ho c không ngh n (blocking/non-blocking).

̇ Ngh n đ c xem là đ ng b , không ngh n là không đ ng b

̇ Send và Receive có th là ngh n ho c không ngh n:

• Send ngh n: quá trình g i b ngh n đ n khi thông đi p đ c nh n

• Send không ngh n: quá trình g i g i thông đi p và ti p t c h at

Trang 26

Giao ti p liên quá trình (7)

• S c ch a gi i h n (Bounded capacity): chi u dài gi i h n n thông

đi p Quá trình g i ngh n khi hàng đ i b đ y

• S c ch a không gi i h n (Unbounded capacity): chi u dài không

gi i h n Quá trình g i không bao gi ngh n

Trang 27

Giao ti p khách-ch (1)

(Client-server communication)

̇ c dùng đ truy c p d li u trên các server.

̇ Các ph ng pháp shared memory và message passing c ng

có th đ c dùng cho giao ti p khách-ch

̇ Ba ph ng pháp khác th ng dùng cho giao ti p d ng này:

• Sockets

• Remote Procedure Calls (RPCs)

• Java’s Remote Method Invocation (RMI)

Trang 28

Giao ti p khách-ch (1)

Sockets

̇ M t socket đ c đ nh ngh a nh m t đi m đ u cu i cho giao

ti p (endpoint for communication)

• M t c p quá trình giao ti p qua m ng dùng m t c p socket – m t cho m i quá trình

Trang 29

Giao ti p khách-ch (2)

Sockets (tt)

Trang 30

Giao ti p khách-ch (3)

Remote procedure Call (RPC)

̇ RPC tr u t ng hóa các l i g i th t c (procedure calls) gi a các quá trình trên h th ng m ng

• Nó cho phép m t client g i m t th t c trên m t máy xa nh nó

g i m t th t c c c b

• Message trao đ i trong giao ti p RPC đ c s p x p có c u trúc

và đ c chuy n đ n m t RPC daemon l ng nghe trên m t c ng

t i máy xa

̇ Stub: đ i di n phía client cho m t th t c th c trên server

• Khi client g i m t th tuc xa, h th ng RPC s g i stub t ng

ng, chuy n cho nó các tham s đ c cung c p t i th tuc xa

• Stub này s đ nh v c ng trên server và s p x p các tham s theo

m t đ nh dang (đóng gói) và g i nó đi b ng message passing

̇ M t stub t ng t trên server nh n message này, m gói các

Trang 31

Giao ti p khách-ch (4)

Remote procedure Call (tt)

Th c thi

c a RPC

Trang 32

Giao ti p khách-ch (5)

Remote Method Invocation (RMI)

̇ RMI là m t c ch Java t ng t RPC

̇ RMI cho phép m t ch ng trình Java trên m t máy g i th c

hi n m t method trên m t remote object

Trang 33

cho remote object

trên phía client

̇ Skeleton đ i di n

cho remote object

phía server

Ngày đăng: 03/12/2015, 21:48

🧩 Sản phẩm bạn có thể quan tâm