Bài giảng hệ phân tán chương 3 Quản lý tiến trình và luồng

69 963 1
Bài giảng hệ phân tán  chương 3  Quản lý tiến trình và luồng

Đ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

1 CHƯƠNG 3: QUẢN LÝ TIẾN TRÌNH VÀ LUỒNG TS Trần Hải Anh Vai trò hệ điều hành quản lý tiến trình P P P P P P P P P P P OS OS Machine P OS Machine Machine P P P P P P P P OS OS Machine Machine Ảo hóa P P P P OS Machine A Machine B Nội dung 1.  2.  3.  Tiến trình luồng Khái niệm ảo hóa Di trú mã Tiến trình luồng 1.1 Khái niệm 1.2 Luồng hệ thống tập trung 1.3 Luồng hệ thống phân tán 1.1 Tiến trình luồng ¨  Tiến trình ¤  Chương trình hoạt động ¤  Đòi hỏi nhiều tài nguyên n  Môi trường thực hiện, không gian nhớ, ghi, thời lượng CPU ¤  Khi chuyển đổi tiến trình cần chuyển đổi môi trường thực ¤  Trao đổi thông tin thông qua dịch vụ hệ thống (thông báo): An toàn, kiểm soát chặt chẽ, hiệu thấp ¨  Ví dụ: Luồng ¨  ¨  ¨  ¨  ¨  ¨  Là luồng thực thi tiến trình Tiến trình có nhiều luồng thực thi Tiến trình đa luồng Các luồng tiến trình dùng môi trường thực chung tiến trình: trạng thái CPU Trao đổi thông tin luồng thông qua biến chia sẻ An toàn hợp lý tương tác luồng lập trình viên định Luồng=> hiệu năng+chi phí lập trình Virtual Memory Process Memory layout Program and Stack memory 10 Program memory Stack memory Vì phải di trú mã 55 ¨  Tăng hiệu ¤  Mã server cho client ¤  Mã client cho server ¤  Thực song song code nhiều máy ¨  Tính mềm dẻo ¤  Tải stub động ¤  Cấu hình động hệ thống Vì phải di trú mã 56 Mô hình di trú mã 57 ¨  Alternatives for code migration Di trú mã / tài nguyên cục 58 ¨  Liên kết tiến trình-tài nguyên ¤  Bằng định danh ¤  Bằng giá trị ¤  Bằng kiểu liệu ¨  Liên kết tài nguyên-máy tính ¤  Không gắn kết ¤  Gắn kết tương đối ¤  Gắn kết cục ¨  Thao tác cần tiến hành dịch chuyển tiến trình Di trú mã tài nguyên cục 59 ¨  Thao tác cần tiến hành dịch chuyển tài nguyên Di trú mã hệ thống không đồng 60 -  -  Kiến trúc máy tính không đồng gây khó khăn cho việc thực mã Dịch lại mã -  -  -  -  -  -  Thông dịch Biên dịch Chuyển đổi môi trường thực Thực đoạn chương trình tường minh: code, … Sử dụng ngôn ngữ: Pascal, kịch bản, Java Giới hạn ngôn ngữ Mobile Agent 61 ¨  ¨  ¨  ¨  ¨  ¨  ĐN: thành phần phần mềm (mã chương trình, liệu trạng thái hoạt động) tự di chuyển từ nơi sang nơi khác Kích thước nhỏ Di trú Liên lạc, nhân bản, nhập lại, tổng hợp tính toán Khả xác định dùng tài nguyên máy tính chứa Một số hệ thống Mobile Agent: Aglets, Voyager, Mole, Zeus 62 Pull code, Push code & Autonomous code Request code code code Serve r Clien t execute code code Serve r Clien t Pull code 63 Pull code, Push code & Autonomous code (2) Remote exec code code Node A Node B execute code code Node A Node B Push code 64 Pull code, Push code & Autonomous code (3) executecode migrate code Node A Node B execute code Node A Node B Autonomous code Lifecycle 65 Creation Serialize Migrate Deserialize Execute Migrate Request Serialize Migrate Destroy or Sleep Agent host 66 AgentOS: tạo agent từ đoạn code có, thực thi agent, chuyển agent đến host khác, huỷ agent ¨  Độc lập platform ¨  Multithreaded ¨  Di trú agent trạng thái ¨  Cơ chế cho agent host giao tiếp ¨  Có thể mở rộng ¨  Ưu điểm 67 Giảm băng thông ¨  Giảm độ trễ ¨  Có thể thực thi ngắt kết nối mạng ¨  Thực thi bất đồng tự động ¨  Nhanh, giảm thiểu lỗi ¨  Khắc phục tình trạng không đồng ¨  Môi trường ứng dụng 68 Thu thập liệu phân tán ¨  Theo dõi thông báo tin cập nhật ¨  Giám sát phân tán thông tin ¨  Xử lý song song ¨  Thương mại điện tử ¨  Quản trị hệ thống mạng ¨  Hỗ trợ thiết bị di động ¨  Di trú mã hệ thống không đồng 69 3-15 [...]... xạ 11 12 1.2 Luồng trong các hệ thống tập trung ¨  ¨  ¨  ¨  ¨  Chống treo tiến trình khi thực hiện các thao tác vào ra Khai thác đa vi xử lý Tiết kiệm tài nguyên chuyển đổi giữa các luồng mã Chuyển đổi giữa các luồng không dùng đến các lời gọi hệ thống Hỗ trợ việc mô đun hóa các phần mềm Cài đặt luồng 13 ¨  Được quản lý bởi gói luồng (Thread package) ¤  Khởi tạo luồng (1) ¤  Giải phóng luồng (2) ¤ ... luồng (2) ¤  Đồng bộ các luồng (3) ¨  (1), (2), (3) có thể thực hiện dưới chế độ NSD hoặc nhân ¤  Chế độ NSD: có thao tác vào ra-> block cả tiến trình ¤  Chế độ nhân: Tốn kém Cài đặt luồng: các tiến trình nhẹ 14 ¨  Combining kernel-level lightweight processes and user-level threads LINUX triển khai các luồng 15 Không có sự phân biệt thread và process, tất cả chỉ là task ¨  Luồng ở mức user được xây... không gian thực thi phân biệt: ¨  ¤  User space: sử dụng thư viện pthread ¤  Kernel: các LWPs Ánh xạ 1-1 từ mỗi thread và 1 LWP ¨  Thay vì dùng fork(), LINUX dùng clone() ¨  Quản lý ID 16 Traditional UNIX system Multithreaded Processes Multiprocessor 1 .3 Luồng trong các hệ thống phân tán 20 ¨  Server đơn luồng ¤  Chỉ xử lý được một yêu cầu tại một thời điểm ¤  Các yêu cầu có thể được xử lý tuần tự ¤  Các... client và xử lý được sắp hàng ¨  Tại một thời điểm server thực hiện thao tác trong hàng ¨  Không cần đa luồng ¨  Các lời gọi xử lý là các lời gọi “không dừng” ¨  Servers đa luồng 26 Mô hình Đặc điểm Đa luồng Song song, các lời gọi dừng Đơn luồng Không song song, các lời gọi dừng Máy trạng thái hữu hạn Song song, các lời gọi không dừng Client đa luồng 27 Tách biệt giao diện người sử dụng và xử lý ¨ ... ¤  Các yêu cầu có thể được xử lý bởi các tiến trình khác nhau ¤  Không đảm bảo tính trong suốt Client và server đa luồng 21 Thread 2 makes requests to server Thread 1 generates results Input-output Receipt & queuing T1 Requests N threads Client Server Server đa luồng 22 ¨  Chức năng của server ¤  Tiếp nhận yêu cầu ¤  Xử lý yêu cầu ¤  Trả lời yêu cầu ¨  Nếu server đơn luồng, các thao tác này được thực... triển => hệ thống máy/ứng dụng không đồng nhất, rất đa dạng => nhu cầu chia sẻ giữa các máy trong hệ thống => mỗi ứng dụng chạy trên máy ảo của mình, và tất cả lại chạy trên 1 nền tảng chung Khái niệm ảo hóa 34 2.2 Các kiến trúc máy ảo 35 ¨  Giao diện với máy tính ¤  Tập lệnh máy cho ứng dụng ¤  Tập lệnh máy cho nhân ¤  Tập lệnh hệ thống ¤  Tập lệnh API Kiến trúc mô phỏng hoàn toàn (JVM) 36 ... its run() method Multithreading in Java 30 Multithreading in Java 31 2 Ảo hóa 2.1 Vai trò của Ảo hóa 2.2 Kiến trúc của máy ảo 2.1 Vai trò của ảo hóa 33 ¨  ¨  ¨  ¨  1970s: giá thành các máy mainframe cao, cần chạy các phần mềm cũ => sử dụng máy ảo Giá thành phần cứng hạ: sử dụng tối ưu hơn tài nguyên phần cứng Tốc độ thay đổi nhanh của phần cứng và các phần mềm hệ thống tầng thấp (1990s): phần mềm tầng... Nếu server đơn luồng, các thao tác này được thực hiện tuần tự ¤  Các yêu cầu mới cần chờ quá trình xử lý yêu cầu hiện tại kết thúc ¤  Lãng phí thời gian chờ đợi ¤  VD: Đăng ký dịch vụ tại điểm có 1 nhân viên phục vụ Mô hình server dispatcher 23 ¨  Dispatcher (điều phối viên)/worker (người xử lý) Server đa luồng 24 workers I/O remote objects a Thread-per-request per-connection threads remote objects ... 3.   Tiến trình luồng Khái niệm ảo hóa Di trú mã Tiến trình luồng 1.1 Khái niệm 1.2 Luồng hệ thống tập trung 1 .3 Luồng hệ thống phân tán 1.1 Tiến trình luồng ¨  Tiến trình ¤  Chương trình hoạt... luồng thực thi tiến trình Tiến trình có nhiều luồng thực thi Tiến trình đa luồng Các luồng tiến trình dùng môi trường thực chung tiến trình: trạng thái CPU Trao đổi thông tin luồng thông qua... đặt luồng 13 ¨  Được quản lý gói luồng (Thread package) ¤  Khởi tạo luồng (1) ¤  Giải phóng luồng (2) ¤  Đồng luồng (3) ¨  (1), (2), (3) thực chế độ NSD nhân ¤  Chế độ NSD: có thao tác vào ra->

Ngày đăng: 19/12/2016, 18:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan