Cơ sở dữ liệu - Chương 3: Quá trình

pdf 44 trang vanle 2360
Bạn đang xem 20 trang mẫu của tài liệu "Cơ sở dữ liệu - Chương 3: Quá trình", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfco_so_du_lieu_chuong_3_qua_trinh.pdf

Nội dung text: Cơ sở dữ liệu - Chương 3: Quá trình

  1. CHCHƯƠƯƠNGNG 3:3: QUQUÁÁ TRÌNHTRÌNH
  2. NNỘỘII DUNGDUNG „ Khái niệm quá trình „ Lậplịch biểu quá trình „ Các hoạt động trên quá trình „ Hợp tác các quá trình „ Liên lạcgiữa các quá trình „ Liên lạctrongcáchệ Client-Server Operating System Concepts - 7th Edition, Feb 7, 2006 3.2 Silberschatz, Galvin and Gagne ©2005
  3. KHKHÁÁII NINIỆỆMM QUQUÁÁ TRÌNHTRÌNH „ HĐH thựchiện nhiềukiểuchương trình: z Hệ thống bó – jobs z Các hệ thống chia sẻ thờigian–cácchương trình người dùng/ các nhiệmvụ „ Công việc (job) = quá trình (process) „ Quá trình là mộtchương trình trong sự thựchiện; sự thực hiện quá trình phảitiếntriển theo kiểucáchtuầntự „ Một quá trình bao gồm: z Bộđếmchương trình z Stack z Phầndữ liệu Operating System Concepts - 7th Edition, Feb 7, 2006 3.3 Silberschatz, Galvin and Gagne ©2005
  4. ProcessProcess inin MemoryMemory Operating System Concepts - 7th Edition, Feb 7, 2006 3.4 Silberschatz, Galvin and Gagne ©2005
  5. TRTRẠẠNGNG THTHÁÁII QUQUÁÁ TRÌNHTRÌNH „ Khi quá trình thựchiện nó thay đổitrạng thái z new: Quá trình đang đượckhởitạo z running: các chỉ thịđang đượcthựchiện z waiting: Quá trình đang chờđợimộtbiếncố xảyra z ready: Quá trình đang chờ đượccấp processor z terminated: Quá trình kết thúc sự thựchiện Operating System Concepts - 7th Edition, Feb 7, 2006 3.5 Silberschatz, Galvin and Gagne ©2005
  6. BIBIỂỂUU ĐĐỒỒ TRTRẠẠNGNG THTHÁÁII QUQUÁÁ TRÌNHTRÌNH Operating System Concepts - 7th Edition, Feb 7, 2006 3.6 Silberschatz, Galvin and Gagne ©2005
  7. KHKHỐỐII ĐĐIIỀỀUU KHIKHIỂỂNN QUQUÁÁ TRÌNHTRÌNH ProcessProcess ControlControl BlockBlock (PCB)(PCB) Thông tin kếthợpvớimỗi quá trình „ Trạng thái quá trình „ Bộđếmchương trình „ Các thanh ghi CPU „ Thông tin lậplịch biểuCPU „ Thông tin quảntrị bộ nhớ „ Thông tin kiểm toán „ Thông tin trạng thái I/O Operating System Concepts - 7th Edition, Feb 7, 2006 3.7 Silberschatz, Galvin and Gagne ©2005
  8. KHKHỐỐII ĐĐIIỀỀUU KHIKHIỂỂNN QUQUÁÁ TRÌNHTRÌNH (PCB)(PCB) Operating System Concepts - 7th Edition, Feb 7, 2006 3.8 Silberschatz, Galvin and Gagne ©2005
  9. SSỰỰ CHUYCHUYỂỂNN CPUCPU QUAQUA LLẠẠII GIGIỮỮAA CCÁÁCC QUQUÁÁ TRÌNHTRÌNH Operating System Concepts - 7th Edition, Feb 7, 2006 3.9 Silberschatz, Galvin and Gagne ©2005
  10. CCÁÁCC HHÀÀNGNG ĐĐỢỢII LLẬẬPP LLỊỊCHCH BIBIỂỂUU QUQUÁÁ TRÌNHTRÌNH „ Hàng đợicôngviệc (Job Queue) –tậptấtcả các quá trình trong hệ thống „ Hàng đợisẵn sàng (Ready Queue) –tập các quá trình nằm trong bộ nhớ sẵnsàngvàchờđợithựchiện „ Các hàng đợithiếtbị (Device Queues) –tập các quá trình chờđợimộtthiếtbị I/O „ Các quá trình di trú giữa các hàng đợi Operating System Concepts - 7th Edition, Feb 7, 2006 3.10 Silberschatz, Galvin and Gagne ©2005
  11. HHÀÀNGNG ĐĐỢỢII SSẴẴNN SSÀÀNGNG && CCÁÁCC HHÀÀNGNG ĐĐỢỢII THITHIẾẾTT BBỊỊ I/OI/O Operating System Concepts - 7th Edition, Feb 7, 2006 3.11 Silberschatz, Galvin and Gagne ©2005
  12. SSƠƠ ĐĐỒỒ LLẬẬPP LLỊỊCHCH BIBIỂỂUU QUQUÁÁ TRÌNHTRÌNH Operating System Concepts - 7th Edition, Feb 7, 2006 3.12 Silberschatz, Galvin and Gagne ©2005
  13. CCÁÁCC BBỘỘ LLẬẬPP LLỊỊCHCH BIBIỂỂUU „ Bộ lậplịch biểudàihạn (Long-term scheduler / job scheduler) –chọn các quá trình để chuyển sang hàng đợisẵn sàng „ Bộ lậplịch biểungắnhạn (Short-term scheduler / CPU scheduler) –chọn quá trình sẽđượcthựchiệnkế tiếpvàcấpphátCPU chonó Operating System Concepts - 7th Edition, Feb 7, 2006 3.13 Silberschatz, Galvin and Gagne ©2005
  14. BBỔỔ XUNGXUNG LLẬẬPP LLỊỊCHCH BIBIỂỂUU TRUNGTRUNG HHẠẠNN Operating System Concepts - 7th Edition, Feb 7, 2006 3.14 Silberschatz, Galvin and Gagne ©2005
  15. CCÁÁCC BBỘỘ LLẬẬPP LLỊỊCHCH BIBIỂỂUU (Cont.)(Cont.) „ Bộ lậplịch biểungắnhạn đượcviệndẫnthường xuyên (ms) ⇒ nhanh „ Bộ lậplịch biểu dài hạn đượcviệndẫnítthường xuyên (seconds, minutes) ⇒ có thể chậm „ Bộ lậplịch biểu dài hạn điềukhiểnbậc đachương „ Các quá trình được phân thành: z Quá trình I/O-bound –tiêunhiềuthời gian cho hoạt động I/O hơn cho tính toán, gồm nhiều CPU bursts ngắn z Quá trình CPU-bound –tiêunhiềuthờigianhơn cho tính toán; gồmmộtsố ít CPU bursts rất dài Operating System Concepts - 7th Edition, Feb 7, 2006 3.15 Silberschatz, Galvin and Gagne ©2005
  16. CHUYCHUYỂỂNN NGNGỮỮ CCẢẢNHNH „ Khi CPU chuyển cho quá trình khác, hệ thống phảilưulạitrạng thái của quá trình cũ và nạptrạng thái của quá trình mới „ Thờigianchuyểnngữ cảnh là một “phí”; hệ thống không làm việc “hữu ích” khi chuyểnngữ cảnh „ Thờigianchuyểnngữ cảnh phụ thuộcvàohỗ trợ phầncứng Operating System Concepts - 7th Edition, Feb 7, 2006 3.16 Silberschatz, Galvin and Gagne ©2005
  17. TTẠẠOO QUQUÁÁ TRÌNHTRÌNH „ Quá trình cha tạo ra các quá trình con, các quá trình con lạicóthể tạo ra các quá trình con củanó, tạoramột cây các quá trình „ Chia sẻ tài nguyên z Cha và con chia sẻ tấtcả các tài nguyên z Các con chia sẻ mộttập con các tài nguyên củacha z Cha và con không chia sẻ tài nguyên „ Sự thựchiện z Cha và các con thựchiện đồng thời z Cha chờđếntận khi con kết thúc Operating System Concepts - 7th Edition, Feb 7, 2006 3.17 Silberschatz, Galvin and Gagne ©2005
  18. TTẠẠOO QUQUÁÁ TRÌNHTRÌNH (Cont.)(Cont.) „ Không gian địachỉ z Con sao lạicủacha z Con có mộtchương trình đượcnạpvàotrongnó „ Ví dụ: UNIX z Fork: lờigọihệ thống tạo quá trình mới z Exec: lờigọihệ thống được dùng sau fork để thay thế không gian bộ nhớ của quá trình vớichương trình mới Operating System Concepts - 7th Edition, Feb 7, 2006 3.18 Silberschatz, Galvin and Gagne ©2005
  19. TTẠẠOO QUQUÁÁ TRÌNHTRÌNH Operating System Concepts - 7th Edition, Feb 7, 2006 3.19 Silberschatz, Galvin and Gagne ©2005
  20. CHCHƯƠƯƠNGNG TRÌNHTRÌNH CC PHÂNPHÂN NHNHÁÁNHNH QUQUÁÁ TRÌNHTRÌNH int main() { pid_t pid; /* fork another process */ pid = fork(); 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 */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } Operating System Concepts - 7th Edition, Feb 7, 2006 3.20 Silberschatz, Galvin and Gagne ©2005
  21. CÂYCÂY QUQUÁÁ TRÌNHTRÌNH TRONGTRONG SolarisSolaris Operating System Concepts - 7th Edition, Feb 7, 2006 3.21 Silberschatz, Galvin and Gagne ©2005
  22. KKẾẾTT THTHÚÚCC QUQUÁÁ TRÌNHTRÌNH „ Quá trình thựchiện xong chỉ thị saucùngvàyêucầu HĐH xóa nó (exit) z Xuấtdữ liệutừ con đến cha (thông qua wait) z Các tài nguyên của quá trình đượcthuhồibởi HĐH „ Cha có thể kết thúc sự thựchiệncủa các quá trình con (abort) z Con vượt quá các tài nguyên đượccấpphát z Nhiệmvụ của con không còn đượccầnthiếtnữa z Nếucha đang thoát  Mộtsố HĐH không cho phép con tiếptụcnếucha kết thúc – Tấtcả các con bị kết thúc – Kết thúc hàng loạt (cascading termination) Operating System Concepts - 7th Edition, Feb 7, 2006 3.22 Silberschatz, Galvin and Gagne ©2005
  23. CCÁÁCC QUQUÁÁ TRÌNHTRÌNH HHỢỢPP TTÁÁCC „ Quá trình độclập không ảnh hưởng và không bịảnh hưởng bởi sự thựchiệncủa quá trình khác „ Quá trình hợptáccó thểảnh hưởng và bịảnh hưởng bởisự thực hiệncủa quá trình khác „ Các lợithế củasự hợp tác quá trình z Chia sẻ thông tin z Tăng tốc độ tính toán z Module hóa z Tiệnlợi Operating System Concepts - 7th Edition, Feb 7, 2006 3.23 Silberschatz, Galvin and Gagne ©2005
  24. VVẤẤNN ĐĐỀỀ PRODUCERPRODUCER CONSUMERCONSUMER „ Kiểumẫu cho các quá trình hợp tác, quá trình producer sản suất thông tin đượctiêuthụ bởi quá trình consumer z Buffer không giớinội (unbounded-buffer) không bị giới hạnvề kích cỡ buffer z Buffer giớinội (bounded-buffer) buffer có kích cỡ cốđịnh Operating System Concepts - 7th Edition, Feb 7, 2006 3.24 Silberschatz, Galvin and Gagne ©2005
  25. BUFFERBUFFER GIGIỚỚII NNỘỘII –– GIGIẢẢII PHPHÁÁPP BBỘỘ NHNHỚỚ CHIACHIA SSẺẺ „ Dữ liệu chia sẻ #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; „ Giảiphápđúng nhưng chỉ sử dụng được BUFFER_SIZE-1 phần tử Operating System Concepts - 7th Edition, Feb 7, 2006 3.25 Silberschatz, Galvin and Gagne ©2005
  26. BUFFERBUFFER GIGIỚỚII NNỘỘII –– PHPHƯƠƯƠNGNG PHPHÁÁPP Insert()Insert() while (true) { /* Produce an item */ while (((in = (in + 1) % BUFFER SIZE count) == out) ; /* do nothing no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; } Operating System Concepts - 7th Edition, Feb 7, 2006 3.26 Silberschatz, Galvin and Gagne ©2005
  27. BUFFERBUFFER GIGIỚỚII NNỘỘII –– PHPHƯƠƯƠNGNG PHPHÁÁPP Remove()Remove() while (true) { while (in == out) ; // do nothing nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; } Operating System Concepts - 7th Edition, Feb 7, 2006 3.27 Silberschatz, Galvin and Gagne ©2005
  28. LIÊNLIÊN LLẠẠCC GIGIỮỮAA CCÁÁCC QUQUÁÁ TRÌNHTRÌNH (IPC)(IPC) „ Cơ chế cho sự liên lạcgiữa các quá trình và đồng bộ hóa các hành động của chúng „ Hệ thống thông điệp – các quá trình liên lạcvới nhau không sử dụng đến các biếnchiasẻ „ IPC cung cấp hai hoạt động: z send(message) – message kích cỡ cốđịnh/thay đổi z receive(message) „ Nếu P và Q muốnliênlạc, chúng cầnphải: z Thiếtlậpmộtnốikếtliênlạc z Trao đổi các thông điệp (messages) dùng send/receive „ Thựcthinốikết liên lạc: z Vậtlý(bộ nhớ chia sẻ, hardware bus) z logic (Các tính chấtlogic) Operating System Concepts - 7th Edition, Feb 7, 2006 3.28 Silberschatz, Galvin and Gagne ©2005
  29. MMỘỘTT SSỐỐ VVẤẤNN ĐĐỀỀ THTHỰỰCC THITHI „ Các nốikết đượcthiếtlậpnhư thế nào? „ Mộtnốikếtcóthể kếthợpvớihơn hai quá trình? „ Có thể có bao nhiêu nốikếtgiữamỗicặpquátrìnhliênlạc? „ Khả năng củamộtnốikết? „ Kích cỡ thông điệpmànốikếtchịu đựng đượclàcốđịnh / thay đổi? „ Mộtnốikếtlàđơnhướng hay lưỡng hướng? Operating System Concepts - 7th Edition, Feb 7, 2006 3.29 Silberschatz, Galvin and Gagne ©2005
  30. CCÁÁCC MÔMÔ HÌNHHÌNH LIÊNLIÊN LLẠẠCC Operating System Concepts - 7th Edition, Feb 7, 2006 3.30 Silberschatz, Galvin and Gagne ©2005
  31. LIÊNLIÊN LLẠẠCC TRTRỰỰCC TITIẾẾPP „ Các quá trình phải định tên tường minh mỗi quá trình khác: z send (P, message) – gửimột message cho quá trình P z receive(Q, message) – nhậnmột message từ quá trình Q „ Các tính chấtcủamộtnốikết liên lạc z Các nốikết đượcthiếtlậptựđộng z Mộtnốikết đượckếthợpvới đúng mộtcặp quá trình liên lạc z Giũamỗicặpcóđúng mộtnốikết z Nốikếtcóthểđơnhướng, nhưng thông thường là lưỡng hướng Operating System Concepts - 7th Edition, Feb 7, 2006 3.31 Silberschatz, Galvin and Gagne ©2005
  32. LIÊNLIÊN LLẠẠCC GIGIÁÁNN TITIẾẾPP „ Các thông điệp đượcgửivànhậntừ mailboxes (cũng được tham khảonhư các ports) z Mỗi mailbox có một id duy nhất z Các quá trình có thể liên lạcnếu chúng chia sẻ một mailbox „ Các tính chấtcủanốikết liên lạc z Nốikếtchỉ đượcthiếtlậpnếu các quá trình chia sẻ một mailbox chung z Mộtnốikếtcóthểđượckếthợpvới nhiều quá trình z Mỗicặpquátrìnhcóthể chia sẻ mộtvàinốikết liên lạc z Nốikếtcóthểđơnhướng hoặclưỡng hướng Operating System Concepts - 7th Edition, Feb 7, 2006 3.32 Silberschatz, Galvin and Gagne ©2005
  33. LIÊNLIÊN LLẠẠCC GIGIÁÁNN TITIẾẾPP „ Các hoạt động z Tạomột mailbox mới z Gửivànhận messages qua mailbox z Phá hủy mailbox „ Các nguyên thủy: send(A, message) – gửimột message đến mailbox A receive(A, message) – nhậnmột message từ mailbox A Operating System Concepts - 7th Edition, Feb 7, 2006 3.33 Silberschatz, Galvin and Gagne ©2005
  34. LIÊNLIÊN LLẠẠCC GIGIÁÁNN TITIẾẾPP „ Chia sẻ mailbox z P1, P2, và P3 chia sẻ mailbox A z P1, gủi; P2 và P3 nhận z Ai nhận message? „ Các giải pháp z Chophépmộtnốikếtkếthợpvới nhiềunhất hai quá trình z Chỉ cho phép một quá trình tạimộtthời điểmthựchiệnhoạt động nhận z Chophéphệ thống chọntùyý ngườinhận. Ngườigửi báo ai sẽ nhận. Operating System Concepts - 7th Edition, Feb 7, 2006 3.34 Silberschatz, Galvin and Gagne ©2005
  35. ĐĐỒỒNGNG BBỘỘ HHÓÓAA „ Truyền Message có thể là blocking / non-blocking „ Blocking đượcxétlàđồng bộ (synchronous) z Gửi Blocking: ngườigửibị ngăn đếntận khi message được nhận z Nhận Blocking: ngườinhậnbị ngăn đếntậnkhimột message là sẵncó „ Non-blocking được xét là phi đồng bộ (asynchronous) z Gửi Non-blocking: Ngườigửigửi message và tiếptục z Nhận Non-blocking: ngườinhậnnhậnmột message hợplệ / vô hiệu Operating System Concepts - 7th Edition, Feb 7, 2006 3.35 Silberschatz, Galvin and Gagne ©2005
  36. BUFFERBUFFER „ Hàng đợi các messages gắnvớinốikết; đượcthựcthibởimột trong ba cách 1. Sứcchứa Zero – 0 messages Ngườigửiphảichờ ngườinhận(hẹ hò) 2. Sứcchứagiớinội–n messages Ngườigửiphảichờ nếunốikết đầy 3. Sứcchứakhônggiớihạn Ngườigửi không phảichờ Operating System Concepts - 7th Edition, Feb 7, 2006 3.36 Silberschatz, Galvin and Gagne ©2005
  37. LIÊNLIÊN LLẠẠCC ClientClient ServerServer „ Sockets „ Remote Procedure Calls - RPC „ Remote Method Invocation (Java) -RMI Operating System Concepts - 7th Edition, Feb 7, 2006 3.37 Silberschatz, Galvin and Gagne ©2005
  38. SocketsSockets „ Một socket được định nghĩanhưđiểmcuốicủamột liên lạc „ Nối địachỉ IP và port „ Socket 161.25.19.8:1625 tham khảo port 1625 trên host 161.25.19.8 „ Liên lạcgồmmộtcặp sockets Operating System Concepts - 7th Edition, Feb 7, 2006 3.38 Silberschatz, Galvin and Gagne ©2005
  39. LIÊNLIÊN LLẠẠCC SocketSocket Operating System Concepts - 7th Edition, Feb 7, 2006 3.39 Silberschatz, Galvin and Gagne ©2005
  40. GGỌỌII THTHỦỦ TTỤỤCC TTỪỪ XAXA RemoteRemote ProcedureProcedure CallsCalls RPCRPC „ Remote procedure call (RPC): gọithủ tụcgiữ các quá trình trên các hệ thống mạng. „ Stubs – proxy phía client cho thủ tục trên server. „ Stub phía client định vị server và sắpxếp theo thứ tự (marshal) các tham số. „ Stub phía server nhận message này, tháo các tham sốđược, và thựchiệnthủ tục trên server. Operating System Concepts - 7th Edition, Feb 7, 2006 3.40 Silberschatz, Galvin and Gagne ©2005
  41. SSỰỰ THTHỰỰCC HIHIỆỆNN RPCRPC Operating System Concepts - 7th Edition, Feb 7, 2006 3.41 Silberschatz, Galvin and Gagne ©2005
  42. RemoteRemote MethodMethod InvocationInvocation RMIRMI „ Remote Method Invocation (RMI) là mộtcơ chế Java tương tự RPC. „ RMI cho phép mộtchương trình Java program trên mộtmáygọi mộtphương pháp trên một đốitượng ở xa. Operating System Concepts - 7th Edition, Feb 7, 2006 3.42 Silberschatz, Galvin and Gagne ©2005
  43. CCÁÁCC THAMTHAM SSỐỐ ĐƯĐƯỢỢCC SSẮẮPP THEOTHEO THTHỨỨ TTỰỰ Operating System Concepts - 7th Edition, Feb 7, 2006 3.43 Silberschatz, Galvin and Gagne ©2005
  44. EndEnd ofof ChapterChapter 33