1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng cơ chế đồng bộ các process cho bài toán Sản xuất – Tiêu dùng Xây dựng ứng dụngtrên máy điện thoại quản lý thu chi, chương trình cho phép người dùng gửi dữ liệu đến email để lưu gi

29 43 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 29
Dung lượng 760,09 KB
File đính kèm sourcecode+ hướng dẫn cài đặt.zip (87 KB)

Nội dung

Đồ án cơ sở ngành mạng đề tài phần nguyên lí hệ điều hành ứng dụng cơ chế đồng bộ các process cho bài toán sản xuất – tiêu dùng Đồ án cơ sở ngành mạng đề tài phần nguyên lí hệ điều hành ứng dụng cơ chế đồng bộ các process cho bài toán sản xuất – tiêu dùng

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN - - ĐỒ ÁN CƠ SỞ NGÀNH MẠNG ĐỀ TÀI: Phần Nguyên lí hệ điều hành: Ứng dụng chế đồng process cho toán Sản xuất – Tiêu dùng Phần Lập trình mạng: Xây dựng ứng dụngtrên máy điện thoại quản lý thu chi, chương trình cho phép người dùng gửi liệu đến email để lưu giữ MỤC LỤC ĐẠI HỌC ĐÀ NẴNG NHẬN XÉT CỦA GIẢNG VIÊN .2 CHƯƠNG GIỚI THIỆU TỔNG QUAN ĐỀ TÀI Nội dung đề tài .4 Vận dụng chế đồng process để xây dựng toán sản xuất-tiêu dùng, tránh tranh chấp tài nguyên dùng chung biến semaphore Mục tiêu Môi trường áp dụng .4 CHƯƠNG CƠ SỞ LÝ THUYẾT Tiến trình Đồng tiến trình Giới thiệu Semaphore CHƯƠNG CÀI ĐẶT VÀ TRIỂN KHAI 12 PHẦN II: LẬP TRÌNH MẠNG 14 CHƯƠNG GIỚI THIỆU TỔNG QUAN ĐỀ TÀI .14 Nội dung đề tài .14 Xây dựng ứng dụng máy điện thoại quản lý thu chi Chương trình cho phép người dùng nhập, quản lý thu chi theo ngày/tháng; gửi liệu đến email để lưu giữ 14 Mục tiêu 14 Môi trường áp dụng .14 CHƯƠNG CƠ SỞ LÝ THUYẾT 14 SMTP: 15 POP3: 16 IMAP: 17 So sánh POP3 IMAP: .17 CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19 Bài toán yêu cầu: .19 Phân tích hệ thống: 19 Xây dựng ứng dụng .23 CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 24 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 29 PHẦN I: NGUYÊN LÝ HỆ ĐIỀU HÀNH Ứng dụng chế đồng process cho toán Sản xuất – Tiêu dùng CHƯƠNG 1.GIỚI THIỆU TỔNG QUAN ĐỀ TÀI Nội dung đề tài Vận dụng chế đồng process để xây dựng toán sản xuất-tiêu dùng, tránh tranh chấp tài nguyên dùng chung biến semaphore Mục tiêu Tìm hiểu chế hoạt động semaphore, ứng dụng semaphore vào toán thực tế Mơi trường áp dụng Chương trình mơ viết ngôn ngữ Java chạy môi trường lập trình Eclipse CHƯƠNG CƠ SỞ LÝ THUYẾT Tiến trình a) Khái niệm Tất máy tính đại thực nhiều việc lúc Trong thực chương trình người sử dụng, máy tính đọc liệu từ đĩa đưa hình máy in Để hổ trợ hoạt động đa nhiệm, hệ thống máy tính cần phải có khả thực nhiều tác vụ xử lý đồng thời việc điều khiển hoạt động song hành cấp độ phần cứng khó khăn.Vì vậy,các nhà thiết kế hệ điều hành đề xuất mơ hình song hành giả lập cách chuyển đổi xử lý qua lại chương trình để trì hoạt động nhiều chương trình phải thời điểm Trong mơ hình chương trình hệ thống tổ chức thành tiến trình(process) Như coi tiến trình chương trình xử lý, sử dụng trỏ lệnh, tập ghi biến Để hồn thành nhiệm vụ mình, tiến trình cịn u cầu số tài nguyên hệ thống như: CPU, nhớ thiết bị Chúng ta cần phân biệt rõ tiến trình chương trình Chương trình thực thể thụ động chưa thị điều khiển máy tính thi hành tác vụ cụ thể Khi thực thị này, chương trình chuyển thành tiến trình thực thể hoạt động, với trỏ lệnh xác định kèm them tài nguyên phục vụ cho hoạt động Vậy tiến trình phận chương trình thực hiện, đơn vị thực tiến trình processer b) Đặc điểm tiến trình Điều phối hoạt động tiến trình vấn đề phức tạp, đòi hỏi hệ điều hành giải phải xem xét nhiều yếu tố khác để đạt mục tiêu đề Một số đặc tính tiến trình cần quan tâm tiêu chuẩn điều phối :  Tính hướng xuất / nhập tiến trình ( I/O-boundedness): Khi tiến trình nhận CPU, chủ yếu sử dụng CPU đến phát sinh yêu cầu nhập xuất? Hoạt động tiến trình thường bao gồm nhiều lượt sử dụng CPU , lượt thời gian ngắn  Tính hướng xử lý tiến trình ( CPU-boundedness): Khi tiến trình nhận CPU, có khuynh hướng sử dụng CPU đến hết thời gian dành cho nó? Hoạt động tiến trình thường bao gồm số lượt sử dụng CPU, lượt thời gian đủ dài  Tiến trình tương tác hay xử lý theo lô : Người sử dụng theo kiểu tương tác thường yêu cầu hồi đáp tức thời yêu cầu họ, tiến trình tác vụ xử lý theo lơ nói chung trì hỗn thời gian chấp nhận  Độ ưu tiên tiến trình : Các tiến trình phân cấp theo số tiêu chuẩn đánh giá đó, cách hợp lý, tiến trình quan trọng (có độ ưu tiên cao hơn) cần ưu tiên  Thời gian sử dụng CPU tiến trình : Một số quan điểm ưu tiên chọn tiến trình sử dụng CPU nhiều thời gian hy vọng chúng cần thời gian để hoàn tất rời khỏi hệ thống Tuy nhiên có quan điểm cho tiến trình nhận CPU thời gian tiến trình phải chờ lâu nhất, ưu tiên chọn chúng  Thời gian lại tiến trình cần để hồn tất : Có thể giảm thiểu thời gian chờ đợi trung bình tiến trình cách cho tiến trình cần thời gian để hoàn tất thực trước Tuy nhiên đáng tiếc biết tiến trình cần thời gian để kết thúc xử lý c) Trạng thái tiến trình Trạng thái tiến trình thời điểm xác định hoạt động thời tiến trình thời điếm Trong q trình sống tiến trình thay đổi trạng thái nhiều nguyên nhân như: phải chờ kiện xảy ra, hay đợi thao tác nhập xuất hoàn tất, buộc phải dừng hoạt động hết thời gian xử lý…… Tại thời điểm tiến trình nhận trạng thái sau : * Mới tạo (new): tiến trình tạo lập * Running: thị tiến trình xử lý * Blocked: tiến trình chờ cấp phát tài nguyên, hay chờ kiện xảy * Ready (ready): tiến trình chờ cấp phát CPU để xử lý * Waiting (đợi): tiến trình phải dừng thiếu tài nguyên chờ kiện * Kết thúc(halt) : tiến trình hồn tất xử lý d) Các loại tiến trình Các tiến trình hệ thống chia thành hai loại: tiến trình tiến trình song song  Tiến trình tiến trình mà điểm khởi tạo điểm kết thúc tiến trình trước đó.Tiến trình xuất hệ điều hành đơn nhiệm hệ điều hành MSDOS  Tiến trình song song tiến trình mà điểm khởi tạo tiến trình nằm thân tiến trình khác, tức khởi tạo tiến trình tiến trình chưa kết thúc Các tiến trình song song xuất hệ điều hành đa nhiệm Đồng tiến trình a.Mục tiêu đồng - Đảm bảo truy xuất độc - Đảm bảo chế phối hợp tiến trình b.Nguyên tắc đồng - Tại thời điểm có tiến trình miền găng - Khơng có ràng buộc tốc độ tiến trình số xử lý hệ thống - Một tiến trình tạm dừng bên ngồi miền găng khơng ngăn cản tiến trình khác vào miền găng - Khơng có tiến trình chờ vơ hạn để vào miền găng Giới thiệu Semaphore Semaphore biến bảo vệ (hay kiểu liệu trừu tượng), tạo thành phương pháp để hạn chế truy nhập tới tài nguyên dùng chung môi trường đa lập trình(multiprogramming) Đây phát minh Edsger Dijkstra sử dụng lần hệ điều hành THE Giá trị semaphore khởi tạo số tài nguyên tương đương chia sẻ mà cài đặt điều khiển Trong trường hợp đặc biệt, mà có tài nguyên tương đương chia sẻ, semaphore gọi semaphore nhị phân Trong trường hợp khái quát, semaphore thường gọi biến đếm semaphore Phân loại Có hai loại Semaphore: Semaphore nhị phân có giá trị Nếu Semaphore có hai giá trị semaphore nhị phân có vai trị Mutex tương tác luồng Semaphore nhị phân thường khởi tạo giá trị Khi tài nguyên sử dụng, luồng truy nhập gọi P(S) để giảm giá trị 0, khơi phục giá trị toán tử V tài nguyên sẵn sàng được thả Semaphore khác có giá trị nhiều a) Khởi tạo Semahore Có hai cách khai báo semaphore:  Semaphore(int num)  Semaphore(int num,boolean how) Trong đó: num: định số giấy phép ban đầu Do đó, định số luồng truy cập tài nguyên chia sẻ lúc Nếu một, có luồng truy cập tài nguyên thời điểm Theo mặc định, tất chuỗi chờ cấp giấy phép theo thứ tự không xác định Bằng cách đặt cách thực hiện, ta đảm bảo chuỗi chờ cấp giấy phép theo thứ tự mà chúng yêu cầu quyền truy cập Tham số “how” có nghĩa thread sau đẩy vào hình thức FIFO (first-in first-out), tức Semaphores tống tất thread muốn truy cập vào hàm xử lý vào queue dạng FIFO lấy num thread xử lý, xong lại lấy tiếp num thread b) Các hàm Semaphore: Modifier and Type Method and Description void accquire() void release()  public void acquire() throw InterruptedException: Có giấy phép từ semaphore này, ngăn chặn có sẵn, thread bị gián đoạn Có giấy phép, có sẵn trả lập tức, giảm số lượng giấy phép có sẵn giấy phép Nếu khơng có giấy phép thread bị vơ hiệu hóa cho mục đích lập lịch trình thread nằm im hai điều xảy ra: • Một số luồng khác gọi phương thức release () cho semaphore luồng gán giấy phép • Một số luồng khác làm interrupts luồng Nếu thread tại: • Có trạng thái ngắt đặt nhập vào phương thức này; bị gián đoạn chờ giấy phép, sau InterruptedException ném trạng thái ngắt luồng bị xóa  public void release() : Hàm phát hành giấy phép, trả lại cho semaphore Phát hành giấy phép, tăng số lượng giấy phép có sẵn Nếu thread cố gắng để có giấy phép, sau chọn đưa giấy phép vừa phát hành Thread Luồng (Thread) phần tiến trình sở hữu riêng ngăn xếp (stack) thực thi độc lập mã lệnh tiến trình Trong tiến trình tạo nhiều luồng hoạt động song song với (như cách tiến trình hoạt động song song) Ưu điểm luồng hoạt động không gian địa tiến trình Khi chương trình bắt đầu luồng (thread) Luồng điều khiển hàm main() chương trình gọi luồng Các luồng khác tiến trình tạo gọi luồng phụ Xây dựng tốn thực tế - Phịng khám bệnh - Bệnh nhân đóng vai trị nhà sản xuất - Bác sĩ có vai trị nhà tiêu dùng - Cả dùng chung tài nguyên ghế chờ khám(tài nguyên dùng chung) - Bài toán giải vấn đề với người tiêu dùng nhiều nhà sản xuất - Phòng khám có ghế chờ hàng đợi: bệnh nhân ngồi chờ khám ghế bác sĩ lấy bệnh nhân từ mà khám bệnh -Vấn đề cần giải bác sĩ không khám hàng đợi trống, bệnh nhân không vào hàng đợi ghế chờ đầy chỗ, không tranh chấp tài nguyên dùng chung - Sơ đồ: Hình 1: Sơ đồ phịng khám bệnh -Mơ tả thuật toán: Với giải pháp Semaphore, ta khai báo biến: Semaphore medical_chair ; // Ghế khám bệnh Semaphore chairs; // Số ghế chờ khám bệnh Semaphore medical; // bác sĩ khám bệnh int waiting_customers; // Theo dõi số lượng bệnh nhân chờ đợi int number_of_chair; // Đếm số lượng ghế chờ sẵn sàng int MEDICAL_TIME = 5000; // thời gian khám bệnh Hình 2: Sơ đồ thuật tốn Phịng khám bệnh a) Khởi tạo constructor ban đầu: Ban đầu chưa có khách hàng ghế khám bệnh trống bác ngủ sĩ ngủ chờ khách hàng vào khám bệnh; ghế chờ trống: medical_chair = new Semaphore(1, true); chairs = new Semaphore(0, true); medical = new Semaphore(0, true); number_of_chairs = chair_number; waiting_customers = 0; b) Khách hàng muốn khám bệnh: if(medical_chair.availablePermits()

Ngày đăng: 12/06/2023, 05:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w