Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 91 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
91
Dung lượng
1,49 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Nguyễn Văn Kiên LÝ THUYẾT LẬP LỊCH VÀ ỨNG DỤNG GIẢI QUYẾT BÀI TOÁN LẬP LỊCH CHO CPU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Thái Nguyên 2013 LỜI CẢM ƠN Em xin chân thành cảm ơn Trƣờng Đại Học Công Nghệ Thông Tin truyền thông tạo điều kiện cho em thực luận văn Em xin chân thành cảm ơn tới tồn thể thầy giáo Viện cơng nghệ thơng tin trƣờng Đại học công nghệ thông tin truyền thơng tận tình giảng dạy hƣớng dẫn, trang bị cho em kiến thức cần thiết q trình thực luận văn đƣợc thành cơng Dựa bảo tận tình T.S Vũ Vinh Quang dựa kiến thức học, tìm hiểu đƣợc, em hoàn thành luận văn theo thời gian quy định Tuy nhiên trình thiết kế thực luận văn không tránh khỏi sai sót, thời gian có hạn khả cịn hạn chế Em mong quý thầy cô bạn thơng cảm có ý kiến q báu nhằm hoàn thiện cho sản phẩm Em xin chân thành cảm ơn Thái nguyên, ngày 18 tháng năm 2013 Học viên Nguyễn Văn Kiên Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn LỜI CAM ĐOAN Em xin cam đoan luận văn tốt nghiệp: “Lý thuyết lập lịch ứng dụng giải toán lập lịch cho CPU” em tự thực dƣới hƣớng dẫn thầy giáo Vũ Vinh Quang Các kết số liệu hoàn toàn trung thực Ngoài tài liệu tham khảo dẫn cuối luận văn em đảm bảo khơng chép cơng trình hay luận văn tốt nghiệp ngƣời khác Nếu phát có sai phạm với điều cam đoan trên, em xin hồn tồn chịu trách nhiệm Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC LỜI NÓI ĐẦU CHƢƠNG MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN VÀ ĐỘ PHỨC TẠP THUẬT TOÁN 1.1 Khái niệm 1.1.1 Thuật toán 1.1.2 Khái niệm độ phức tạp thuật toán 1.1.3 Cách tính độ phức tạp 12 1.2 Vấn đề phân lớp toán 13 1.2.1 Tổng quan phân lớp toán 13 1.2.2 Khái niệm dẫn đƣợc 16 1.3 Lớp toán P NP 16 1.3.1 Một số khái niệm 16 1.3.2 Một số toán đƣợc chứng minh NP – khó, NP - đầy đủ 21 1.4 Thuật toán xấp xỉ 23 1.4.1 Các khái niệm 23 1.4.2 Thuật toán - xấp xỉ tuyệt đối 24 1.4.3 Thuật toán - xấp xỉ 26 CHƢƠNG 28 LÝ THUYẾT LẬP LỊCH 28 2.1 Mô hình tốn lập lịch 28 2.2 Các thuật toán lập lịch kinh điển 32 2.3 Một số thuật toán lập lịch cho CPU 34 2.3.1 Mơ hình tốn lập lịch cho CPU 34 2.3.2 Một số thuật toán lập lịch cho CPU 35 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 2.3.2.1 Lập lịch FCFS 35 2.3.2.2 Lập lịch SJF 37 2.3.2.3 Lập lịch theo độ ƣu tiên 40 2.3.2.4 Lập lịch RR 43 2.3.2.5 Lập lịch với hàng đợi nhiều cấp 46 2.3.2.6 Lập lịch hàng đợi phản hồi đa cấp 48 CHƢƠNG 51 KẾT QUẢ CÀI ĐẶT MỘT SỐ THUẬT TOÁN LẬP LỊCH CPU 51 3.1 Giới thiệu sơ lƣợc ngơn ngữ lập trình C# cơng cụ lập trình Visual Studio 51 3.1.1.Giới thiệu ngôn ngữ lập trình C# 51 3.1.2 Giới thiệu cơng cụ lập trình Visual Studio 54 3.2 Phân tích thuật tốn cài đặt CPU 56 3.2.1 Thuật toán FCFS 56 3.2.2 Thuật toán SJF 57 3.2.3 Thuật toán RR 59 3.2.4 Sơ đồ thuật toán CPU 60 3.3 Kết cài đặt thuật toán CPU 60 3.3.1 Các thành phần chƣơng trình 60 3.3.2 Cấu trúc chi tiết 61 3.3.3 Sử dụng chƣơng trình 63 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC 68 I Thuật toán cài đặt 68 II Các hàm phƣơng thức chƣơng trình 77 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn LỜI NĨI ĐẦU Máy tính điện tử đời vào năm 40 kỷ XX Ban đầu, phạm vi sử dụng máy tính cịn hẹp, đa phần nhằm phục vụ mục đích nghiên cứu khoa học Hơn nữa, để vận hành hệ thống cần phải sử dụng công cụ phần cứng đặc biệt thao tác vận hành phức tạp Cùng phát triển song song với phát triển kỹ thuật điện tử, hệ máy tính sau đƣợc cải tiến ngày tinh vi hơn, có tốc độ xử lý nhanh hơn, kích thƣớc nhỏ gọn hơn, tiêu tốn lƣợng làm nên cách mạng lĩnh vực xử lý, tính tốn, điều khiển động…Với hệ máy tính địi hỏi phải có điều khiển, vận hành cách tự động để phát huy hiệu cách tối ƣu Nhƣ vậy, cần phải có chƣơng trình phần mềm đảm bảo việc giải vấn đề Đó hệ điều hành máy tính Mỗi hệ điều hành cần có thuật toán lập lịch cho riêng chúng Thuật toán thƣờng đƣợc thực để cân cho hệ thống máy tính đƣợc hiệu Sự cần thiết thuật toán lập lịch xuất phát từ yêu cầu cho hầu hết hệ thống thực thi nhiều cơng việc thời điểm truyền tải nhiều luồng liệu lúc Trong môi trƣờng thời gian thực, chẳng hạn nhƣ hệ thống nhúng điều khiển tự động ngành công nghiệp (Robot) lập lịch phải đảm bảo trình đáp ứng thời hạn, điều quan trọng để giữ hệ thống ổn định Việc nghiên cứu thuật toán lập lịch dành CPU mở nhiều hƣớng cho khoa học ứng dụng thực tiễn sống Đƣợc đồng ý Thầy hƣớng dẫn, Em chọn đề tài “Lý thuyết lập lịch ứng dụng giải toán lập lịch cho CPU” làm đề tài luận văn cao học Nội dung đề tài bao gồm: Chƣơng 1: Trình bày số khái niệm thuật toán nguyên tắc đánh giá độ phức tạp thuật toán, vấn đề phân lớp toán theo độ phức tạp thuật toán Đầy phần lý thuyết quan trọng làm sở để nghiên cứu chƣơng tiếp sau luận văn Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Chƣơng 2: Trình bày lý thuyết toán lập lịch, thuật toán giải toán lập lịch trọng tâm trình bày số thuật tốn lập lịch cho CPU Đây nội dung trọng tâm luận văn Chƣơng 3: Đƣa kết cài đặt thuật toán lập lịch cho CPU ngôn ngữ Visual Studio 10 Nội dung đề tài lĩnh vực rộng khó, với khoảng thời gian không nhiều với kiến thức thân hạn chế, đề tài đề cập đến việc nghiên cứu thuật toán lập lịch chủ yếu máy ứng dụng cho lập lịch CPU Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn CHƢƠNG MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN VÀ ĐỘ PHỨC TẠP THUẬT TOÁN Trong chƣơng 1, luận văn trình bày số kiến thức thuật toán độ phức tạp thuật toán, vấn đề phân lớp toán dựa độ phức tạp thuật toán Các kiến thức đƣợc tham khảo tài liệu [3], [4] Đây kiến thức quan trọng để trình bày tiếp nội dung chƣơng chƣơng luận văn 1.1 Khái niệm 1.1.1 Thuật toán Thuật toán để giải toán dãy hữu hạn thao tác đƣợc xếp theo trình tự xác định cho sau thực dãy thao tác đó, từ liệu đầu vào (Input) toán, ta nhận đƣợc kết (Output) cần tìm Ta biết mơ hình tính tốn máy Turing máy xử lý thuật toán viết ngơn ngữ tựa ALGOL Ứng với hai mơ hình tính tốn có cách biểu diễn thuật tốn: + Thuật tốn đƣợc biểu diễn ngơn ngữ máy Turing + Thuật tốn đƣợc biểu diễn ngơn ngữ tựa ALGOL 1.1.2 Khái niệm độ phức tạp thuật toán a Chi phí phải trả cho q trình tính tốn Trong q trình xử lý thuật tốn, ngƣời ta thƣờng quan tâm tới chi phí cho thời gian tính tốn chi phí cho khơng gian chứa liệu tính tốn (bộ nhớ) - Chi phí thời gian tổng thời gian cần thiết để thực xong q trình tính tốn + Với máy Turing: Chi phí thời gian số bƣớc chuyển hình trạng từ hình trạng đầu q0 đến hình trạng kết thúc qn Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn + Với thuật tốn tựa Algol: Chi phí thời gian số phép tính cần thực q trình tính tốn - Chi phí khơng gian số nhớ cần để thực hồn chỉnh q trình tính tốn Gọi A thuật tốn tƣơng ứng với mơ hình tính tốn, gọi e liệu vào đƣợc mã hóa theo cách Khi thuật tốn A tính liệu e cần phải trả giá thời gian giá khơng gian ta kí hiệu + t A (e ) giá phải trả thời gian tính tốn + lA (e ) giá không gian nhớ cần thiết sử dụng Khi tổng giá phải trả thuật tốn A tính liệu e : T(A)= t A (e ) + lA (e ) b Các khái niệm độ phức tạp thuật toán Độ phức tạp trƣờng hợp xấu Cho thuật tốn A với đầu vào n, đó: - Độ phức tạp nhớ trƣờng hợp xấu đƣợc định nghĩa là: LA (n ) = max{lA (e) || | e | £ n } tức chi phí lớn nhớ - Độ phức tạp thời gian trƣờng hợp xấu đƣợc định nghĩa : T A (n ) = max{t A (e) || | e | £ n } tức chi phí lớn thời gian Độ phức tạp trung bình Là tổng số độ phức tạp khác ứng với liệu chia cho tổng số Độ phức tạp tiệm cận Thuật toán A với đầu vào n gọi có độ phức tạp O(f(n)) $ số C, N :T A (n ) £ C f (n ), " n ³ N tức T A (n ) có tốc độ tăng O(f(n)) Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 10 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn II Các hàm phƣơng thức chƣơng trình Tiến trình Biến phƣơng thức tiến trình Code: 77 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Hàm để tạo tiến trình Code: 78 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Danh sách liên kết: Khi tiến trình đƣợc tạo ta cần phải quản lý tiến trình cách dùng danh sách liên kết để xếp chúng Biến phƣơng thức Code: Chèn tiến trình vào đầu danh sách liên kết Code: 79 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Chèn tiến trình vào cuối danh sách liên kết Code: Hàm kiểm tra xem danh sách liên kết rỗng không? Code: Cách lấy tiến trình 80 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Code: Hàm tính độ dài danh sách liên kết Code: 81 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Đếm số lƣợng tiến trình có danh sách Code: Hàm để xếp thuật toán QuickSort Code: 82 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 83 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Hiển thị danh sách liên kết sau xếp Code: 84 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Vẽ biểu đồ Gantt Biến phƣơng thức Code: 85 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn Hàm vẽ biểu đồ Gantt lên DataGirdView Textbox Code: 86 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 87 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 88 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 89 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 90 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn 91 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn ... bày lý thuyết tốn lập lịch, thuật toán giải toán lập lịch trọng tâm trình bày số thuật tốn lập lịch cho CPU Đây nội dung trọng tâm luận văn Chƣơng 3: Đƣa kết cài đặt thuật toán lập lịch cho CPU. .. 28 LÝ THUYẾT LẬP LỊCH 28 2.1 Mơ hình tốn lập lịch 28 2.2 Các thuật toán lập lịch kinh điển 32 2.3 Một số thuật toán lập lịch cho CPU 34 2.3.1... phức tạp Kết luận: Nội dung chƣơng trình bày lý thuyết toán lập lịch, thuật toán giải toán lập lịch trọng tâm trình bày số thuật tốn lập lịch cho CPU Đây thuật tốn đƣợc xây dựng chƣơng luận văn,