Bài tiểu luận Java lập trình mạng và mô phỏng thuật toán lamport

16 1.4K 4
Bài tiểu luận  Java lập trình mạng và mô phỏng thuật toán lamport

Đ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

Java là công nghệ cho phép tạo ra các phần mềm phân tán (distributed software). Đây là những phần mềm đặt trên máy chủ (server), được nạp về qua kết nối mạng và thực hiện trên máy khách (client). Sự ra đời của Java cho phép Web tiến xa hơn nữa, biến các trang Web tĩnh thành các ứng dụng sống động, có thể tương tác với người sử dụng.

TRƯỜNG ĐẠI HỌC QUẢNG NAM Khoa Toán –Tin BÀI TIỂU LUẬN Đề Tài:Java lập trình mạng mơ thuật tốn Lamport Mơn: Ngun lý Hệ Điều Hành GVHD:Nguyễn Văn Khương Thành viên nhóm: Nguyễn Văn Tiền Trần Ngọc Tồn Nguyễn Viết Hiếu Nguyễn Duy Khánh Phan Văn Hà Contents Nội dung nghiên cứu: I.Giới thiệu chung Java lập trình mạng 1.Java gì? Java cơng nghệ cho phép tạo phần mềm phân tán (distributed software) Đây phần mềm đặt máy chủ (server), nạp qua kết nối mạng thực máy khách (client) Mặc dù tạo từ năm 70, Internet thực quyến rũ doanh nghiệp vào năm 90 nhờ có đời World Wide Web Web cho phép người sử dụng truy cập trực tiếp thông tin Internet mà không cần phải học lệnh phức tạp, cung cấp thông tin trực tuyến nhiều lĩnh vực với hình ảnh, âm thanh, Sự đời Java cho phép Web tiến xa nữa, biến trang Web tĩnh thành ứng dụng sống động, tương tác với người sử dụng Những lý để người ý đến Java là: Cho phép viết chương trình mạnh tin cậy Xây dựng ứng dụng chạy hầu hết phần cứng hệ điều hành khác Phân phối ứng dụng mạng với độ bảo mật an toàn cao 2.Cấu trúc Java Sức mạnh Java có nhờ cấu trúc Java thiết kế nhằm mục đích trước hết đơn giản hố cơng việc người lập trình Kế đến, nhu cầu chạy mạng, Java phải thật an tồn ổn định, có khả làm việc với nhiều kiểu phần cứng, phần mềm khác Cấu trúc ngôn ngữ Java thực đảm bảo tất tính Cũng ngơn ngữ lập trình khác, Java cần trình biên dịch để chuyển đổi mã lệnh cho người đọc (mã nguồn) sang ứng dụng thực thi Trình biên dịch Java chuyển chương trình nguồn Java thành bytecode Các bytecode chạy máy ảo Java (Java Virtual Machine -JVM) Bộ Java Developers Kit (JDK) Sun cung cấp bao gồm số chương trình tiện ích cho phép bạn biên dịch, bắt lỗi tạo tài liệu cho ứng dụng Java Hiện thị trường có nhiều môi trường phát triển Java hãng thứ ba tiện lợi (như Visual J++, Symantec Cafe, ), tất chương trình dựa JDK 3.Các trình tiện ích JDK bao gồm: Javac (Bộ biên dịch Java): Làm nhiệm vụ chuyển mã nguồn Java sang bytecode Java (Bộ thông dịch Java): Thực thi ứng dụng Java trực tiếp từ tập tin lớp (class) appletviewer: Một trình thơng dịch Java thực thi Java applet từ tập tin HTML javadoc: Tạo tài liệu dạng HTML từ mã nguồn với thích bên Các trình tiện ích JDK bao gồm: Javac (Bộ biên dịch Java): Làm nhiệm vụ chuyển mã nguồn Java sang bytecode Java (Bộ thông dịch Java): Thực thi ứng dụng Java trực tiếp từ tập tin lớp (class) appletviewer: Một trình thơng dịch Java thực thi Java applet từ tập tin HTML javadoc: Tạo tài liệu dạng HTML từ mã nguồn với thích bên Jdb (Java debuger): Cho phép bạn thực dịng chương trình, đặt điểm dừng (breakpoint), xem giá trị biến javah: Tạo tập tin header C cho phép C gọi hàm Java ngược lại Javap (Trình dịch ngược java): Hiển thị hàm liệu truy cập bên tập tin lớp dịch Nó cho phép hiển thị nghĩa bytecode Quá trình biên dịch Java sau: mã nguồn tập tin *.java, qua trình biên dịch javac chuyển thành bytecode Bytecode nằm tập tin *.class, gọi tập tin lớp (bởi tập tin chứa lớp riêng biệt Java) Các ứng dụng Java bao gồm nhiều lớp khác Chú ý: Một lớp (class) Java giống hệt lớp C++ Lớp biến liệu thủ tục kết hợp với thành khối Khi thực chương trình Java, máy ảo Java sử dụng trình nạp lớp (class loader) để đọc bytecode từ đĩa kết nối mạng Các lớp nạp phải qua trình kiểm tra lớp (class verifier) để chắn chúng không sinh lỗi ảnh hưởng đến hệ thống thực thi Quá trình kiểm tra làm tăng thời gian nạp lớp, nhiên phải thực có lần mà thơi Phần thực (execution unit) máy ảo Java thực thi lệnh quy định bytecode Bộ phận thực thi đơn giản trình thơng dịch, chuyển đổi bytecode sang thủ tục cần làm hệ thống Cách chậm trình thơng dịch phải ln tra nghĩa bytecode mà thực thi Để khắc phục nhược điểm này, người ta đưa trình biên dịch Just-intime (JIT): Quá trình chuyển đổi từ bytecode sang mã lệnh riêng hệ thống làm lần nạp chương trình, tăng tốc độ đáng kể Chương trình viết Java ứng dụng riêng biệt (stand-alone application), ứng dụng nhúng Web (applet) đồng thời hai Applet chương trình nhúng trang Web, đọc thực trình duyệt hỗ trợ Java (Java-enabled Web browser) Khi trình duyệt đọc tới trang Web này, applet thực thi Trái lại, ứng dụng Java riêng biệt chạy dịng lệnh khơng cần thơng qua trình duyệt Web Một trình duyệt Web hỗ trợ Java (Java-enabled browser) có máy ảo Java riêng Hiện nay, trình duyệt hỗ trợ Java nhiều: Netscape 2.0 trở lên, HotJava, Microsoft Internet Explorer 3.0 (bản beta trở lên) … Các trang Web nhúng Java applet có chứa đường dẫn kiểu URL tới tập tin lớp applet Trình duyệt việc khởi động máy ảo Java cung cấp cho trình nạp lớp đường dẫn Chú ý lớp đưa tên lớp phụ cần, trình nạp lớp phải nạp số lớp phụ khác trước thực chương trình 4.Các đặc tính Java : Trong phần này, điểm qua bảy đặc tính quan trọng khiến Java trở thành công cụ phát triển mạnh, tin cậy An ninh An ninh vấn đề khó khăn hàng đầu mà người lập trình mạng gặp phải: Người sử dụng e ngại điều: Thứ nhất, thơng tin họ gửi mạng bị đọc thứ hai hệ thống họ bị xâm nhập phá hoại Cấu trúc an ninh Java nhằm vào giải đồng thời hai vấn đề Cấu trúc an ninh Java dựa vào ba thành phần: Trình nạp lớp, trình kiểm tra lớp trình quản lý an ninh (SecurityManager) Chúng ta biết trình kiểm tra lớp làm nhiệm vụ đảm bảo chắn chương trình Java biên dịch đắn, thực không gây lỗi ảnh hưởng đến hệ thống không đụng chạm đến liệu "riêng tư" máy khách hàng Bên cạnh đó, trình nạp lớp phân biệt rõ lớp đến từ mạng, lớp nằm máy khách hàng Điều ngăn lớp tới từ mạng "giả dạng" lớp máy khách hàng để thực tác vụ bị cấm lớp Ngoài cịn giúp tách biệt hoạt động lớp khác tới từ máy chủ khác Giao diện lập trình ứng dụng chuẩn - Core API Java cung cấp cho người lập trình thư viện hàm chuẩn, Core API Các hàm chuẩn đặt gói (package) - tập hợp lớp có mối quan hệ với (ví dụ gói java.awt chứa lớp Abstract Windowing Toolkit, giúp người lập trình xây dựng ứng dụng với giao diện GUI platform khác nhau) Tương thích với nhiều kiểu phần cứng Mã bytecode Java chạy loại phần cứng hệ điều hành như: PC, Macintosh máy khác có chạy máy ảo Java Một điểm thư viện thủ tục chuẩn Java có chứa đầy đủ hàm dùng chung cho platform khác Đặc tính động phân tán Hệ điều hành Windows cho phép chương trình sử dụng chung nạp tự động thư viện liên kết động DLL Chia sẻ tập tin DLL làm giảm dung lượng nhớ đĩa cần dùng tăng tính cấu trúc chương trình Java có đặc tính này: lớp nạp tự động cần nhiều chương trình dùng chung lớp Nó cịn hỗ trợ đặc tính phân tán, tức phần chương trình nằm máy chủ lẫn máy khách hàng Hướng đối tượng Lập trình hướng đối tượng (OOP) phương thức viết ứng dụng dễ bảo trì, dễ nâng cấp đặc biệt tái sử dụng mã lệnh Java ngôn ngữ hướng đối tượng, có đầy đủ đặc tính Ngoài ra, thư viện lớp Java cung cấp đầy đủ cho người lập trình để bắt đầu dự án Đa luồng (multi-threads) Các ứng dụng viết Java có nhiều tiến trình xử lý lúc Một ứng dụng đơn luồng thực tác vụ thời điểm: Giả sử ứng dụng bận lấy từ mạng xuống tập tin vài phút, thời gian ứng dụng làm việc khác vẽ lại hình Với ứng dụng viết Java, bạn tạo hai tiến trình song song làm việc: tiến trình nạp tập tin, tiến trình khác làm nhiệm vụ cập nhật hình Quản lý nhớ trình thu dọn “rác” Quản lý nhớ vấn đề phức tạp C C++ Trong thời gian thực chương trình, người lập trình chịu trách nhiệm khởi tạo vùng nhớ, sau dùng xong lại giải phóng chúng Chỉ cần lỗi nhỏ làm cạn kiệt tài nguyên hay dẫn đến treo hệ thống Java loại bỏ gánh nặng cho người lập trình Các vùng nhớ tự động giải phóng khơng tham chiếu đến đối tượng hoạt động II.Khái niệm hệ tin học phân tán Hệ tin học phân tán hệ thống xử lý thông tin bao gồm nhiều xử lý xử lý nằm xa vị trí khác liên kết với thông qua phương tiện viễn thông thống hệ điều hành Hệ tin học phân tán hệ thống không chia nhớ đồng hồ Trong hệ tin học phân tán, tính tốn tính nhiều vi xử lý hệ thống đa xử lý Như hệ thống tin học phân tán đòi hỏi hệ thống phải trang bị nhớ cục Các xử lý trao đổi thông tin qua hệ thống đường truyền khác cáp chuyên dụng, bus trao đổi, đường điện thoại, cáp quang……… 1.Nguyên tắc xây dựng hệ phân tán Chia sẻ tài nguyên: thực tế phát triển mạng máy tính đặt vấn đề cần phải dùng chung tài nguyên Một tiến trình trạm cung cấp tài nguyên dùng chung trạm khác Liên lạc: hệ thống mắc nối với nhau, thực thể hệ trao đổi thông tin với Tin cậy: trạm hệ bị cố khơng làm cho tồn hệ ảnh hưởng, mà ngược lại cơng việc phân cho trạm khác đảm nhận Ngoài ra, trạm bị cố tự động phục hồi lại trạng thái ban đầu trước có cố hay trạng thái ban đầu Tăng tốc: khái niệm phân tán tải Một tính tốn lớn đó, sử dụng trạm thời gian cho kết lâu Tính tốn chia nhỏ thực song song trạm Điều cần thiết trạm tải Một tư tưởng lớn hệ phân tán phân tán hóa q trình xử lý thơng tin thực cơng việc trạm xa Đó sở để xây dựng hệ ứng dụng lớn thương mại điện tử, giáo dục điện tử…… Liên lạc thuật ngữ sử dụng tác vụ trao đổi thông tin thực thể thuộc hệ thống, có thực thể gửi (trạm 10 phát) thực thể nhận (trạm nhận) Thơng tin q trình nhận gửi gọi thông điệp Khi người sử dụng muốn liên hệ với người khác mạng người phải có địa mạng người cần liên hệ Địa mạng hệ thống tên quy ước theo nguyên tắc xây dựng định khơng trùng Trong mạng, người sử dụng sử dụng trạm để liên lạc với người sử dụng khác mà họ muốn Khi người sử dụng gửi thông điệp cho người khác xa, máy chủ nguồn nơi thông điệp xuất phát phải tra cứu vào để xác định hướng luồng thông tin đến máy chủ đích, máy thơng điệp đến Hệ thống hoạt động gọi hệ phân tán Nhược điểm lớn hệ máy chủ bị cố dẫn đến tra cứu thông tin cho người sử dụng gắn liền với Để khắc phục điều người ta phân tán hệ thống tra cứu máy chủ Trong hệ phân tán, thời hạn truyền thông điệp hiệu số thời điểm nhận thời điểm truyền Ta giả sử rằng: thời hạn đủ lớn để so sánh với hệ tập trung, đại lượng biến thiên, thời hạn cặp máy khác với cặp máy khác Từ ta có hệ sau: Hệ 1: Ở thời điểm cho trước, xử lý thực máy biết trạng thái gần máy khác Hệ cho ta biết mạng không tồn đồng hồ chung Hệ 2: Trật tự nhận thông điệp máy nhận khơng giống trật tự phát thơng điệp Các máy trạm bị 11 cố thơng điệp Giải pháp cho vấn đề đánh số cho tất gói tin gửi kèm theo số cho máy nhận Hệ 3: máy giống chứa thơng tin hồn tồn giống lại khơng giống trạng thái III.Đồng hóa mơ thuật tốn Lamport 1.Cung cấp phân tán Vì lý ổn định hiệu mà ta phải phân tán chức cung cấp nhiều trạm khác Sự hoạt động gắn bó với chương trình cung cấp cần thiết để đảm bảo cho hoạt động cung cấp hồn tồn xác Thuật toán cung cấp cho hệ phân tán Một hoạt động gắn bó chương trình cung cấp phân tán quản lý tập hợp tài nguyên đạt tuân thủ quy tắc sau, thông điệp hiểu yêu cầu hay khuyến nghị giải phóng tài nguyên Quy tắc Các cung cấp bắt buộc phải thực giải thuật Các cung cấp nhận tất thông điệp phát từ tiến trình Các thơng điệp phải xử lý trật tự chương trình cung cấp Quy tắc sau nhấn mạnh đến thiết yếu phải có trật tự tập hợp thông điệp hệ Trật tự thực thơng qua việc hợp lực tiến trình cung cấp tiến trình phát thơng điệp 12 2.Sắp xếp kiểu đóng dấu Đóng dấu hành vi gán giá trị nguyên cho thông điệp nhằm ghi nhận thời điểm truyền sở tham chiếu đồng hồ logic Nội dung phương pháp trạm phát gắn giá trị gọi dấu Giá trị có tính chất thời điểm cho trạm phát thông tin dựa vào đồng hồ logic cục trạm Các đồng hồ lấy lại thông qua hội thoại trạm 3.Thuật toán Lamport Mỗi trạm s có trang bị cơng tơ với giá trị ngun gọi Hs Đó đồng hồ logic tăng lên hai kiện Trạm e phát thơng điệp ghi dấu E dựa giá trị hành He Khi nhận thông điệp, trạm nhận r cập nhật đồng hồ Hr riêng giải thuật sau đây: Nếu Hr, Hr:=E+1 Chấm dứt Sự kiện “Nhận thông điệp” lúc ghi nhận giá trị Hr Thuật toán đảm bảo thời gian nhận thông điệp sau thời gian phát Với thời gian cho phép xác định quan hệ trật tự toàn mà ta ký hiệu → cho phép kiểm tra điều kiện C1 C2 phần trước Một kiện a sinh trạm i đánh dấu đồng hồ cục gọi Hi(a) Nếu a b hai kiện hai trạm i j, ta ln có qua hệ xác định sau: a " b Hi(a) cách kết hợp số khác cố định cho trạm cách đánh dấu thời gian cho kiện a trạm i cặp (Hi(a),i) Theo định nghĩa ta có: a=>b (Hi(a)

Ngày đăng: 24/11/2014, 10:09

Từ khóa liên quan

Mục lục

  • I.Giới thiệu chung về Java lập trình mạng

    • 1.Java là gì?

    • 2.Cấu trúc của Java

    • 3.Các trình tiện ích của JDK bao gồm:

    • 4.Các đặc tính chính của Java :

    • II.Khái niệm về hệ tin học phân tán

      • 1.Nguyên tắc xây dựng hệ phân tán

      • III.Đồng bộ hóa và mô phỏng thuật toán Lamport

        • 1.Cung cấp phân tán

        • 2.Sắp xếp kiểu đóng dấu

        • 3.Thuật toán Lamport

        • 4.Ứng dụng thuật toán trong hệ phân tán

        • IV.Kết luận:

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

Tài liệu liên quan