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,46 MB
Nội dung
1 S ố hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn ĐẠ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 2 S ố hóa bởi 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 và truyền thông đã tạo điều kiện cho em thực hiện luận văn này. Em cũng xin chân thành cảm ơn tới toàn thể thầy cô giáo ở Viện công nghệ thông tin và trƣờng Đại học công nghệ thông tin và truyền thông đã tận tình giảng dạy và hƣớng dẫn, trang bị cho em những kiến thức cần thiết trong quá trình thực hiện luận văn đƣợc thành công. Dựa trên sự chỉ bảo tận tình của T.S Vũ Vinh Quang dựa trên những kiến thức đã học, và tìm hiểu đƣợc, em đã hoàn thành luận văn theo đúng thời gian quy định. Tuy nhiên trong quá trình thiết kế và thực hiện luận văn không tránh khỏi sai sót, do thời gian có hạn và khả năng còn hạn chế. Em mong quý thầy cô và các bạn thông cảm và có những ý kiến quý báu nhằm hoàn thiện hơn cho sản phẩm. Em xin chân thành cảm ơn. Thái nguyên, ngày 18 tháng 7 năm 2013 Học viên Nguyễn Văn Kiên 3 S ố hóa bởi 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 và ứng dụng giải quyết bài toán lập lịch cho CPU” do em tự thực hiện dƣới sự hƣớng dẫn của thầy giáo Vũ Vinh Quang. Các kết quả và số liệu hoàn toàn trung thực. Ngoài các tài liệu tham khảo đã dẫn ra ở cuối luận văn em đảm bảo rằng không sao chép các công trình hay luận văn tốt nghiệp của ngƣời khác. Nếu phát hiện có sự sai phạm với điều cam đoan trên, em xin hoàn toàn chịu trách nhiệm. 4 S húa bi Trung tõm Hc liu http://lrc.tnu.edu.vn MC LC LI CM N 1 LI CAM OAN 3 MC LC 4 LI NểI U 6 CHNG 1 8 MT S KIN THC C BN V THUT TON V PHC TP THUT TON 8 1.1. Khỏi nim c bn 8 1.1.1. Thut toỏn 8 1.1.2. Khái niệm về độ phức tạp thuật toán. 8 1.1.3. Cỏch tớnh phc tp 12 1.2. Vn phõn lp cỏc bi toỏn 13 1.2.1. Tng quan v s phõn lp cỏc bi toỏn 13 1.2.2. Khỏi nim dn v c 16 1.3. Lp cỏc bi toỏn P v NP 16 1.3.1. Mt s khỏi nim 16 1.3.2. Mt s bi toỏn ó c chng minh l NP khú, NP - y 21 1.4. Thut toỏn xp x 23 1.4.1. Cỏc khỏi nim 23 1.4.2. Thut toỏn - xp x tuyt i 24 1.4.3. Thut toỏn - xp x 26 CHNG 2 28 Lí THUYT LP LCH 28 2.1. Mụ hỡnh bi toỏn lp lch 28 2.2. Cỏc thut toỏn lp lch kinh in 32 2.3. Mt s thut toỏn lp lch cho CPU 34 2.3.1. Mụ hỡnh bi toỏn lp lch cho CPU 34 2.3.2. Mt s thut toỏn lp lch cho CPU 35 5 S ố hóa bởi 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 3 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 về ngôn ngữ lập trình C# và công cụ lập trình Visual Studio. 51 3.1.1.Giới thiệu về ngôn ngữ lập trình C# 51 3.1.2. Giới thiệu về công cụ lập trình Visual Studio 54 3.2. Phân tích thuật toá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 quả cài đặt thuật toán CPU 60 3.3.1. Các thành phần của 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 và phƣơng thức cơ bản của chƣơng trình. 77 6 S ố hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn LỜI NÓI ĐẦU Máy tính điện tử ra đời vào những năm 40 của thế kỷ XX. Ban đầu, phạm vi sử dụng máy tính còn rất hẹp, đa phần chỉ 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ác công cụ phần cứng đặc biệt và thao tác vận hành rất phức tạp. Cùng phát triển song song với sự phát triển của kỹ thuật điện tử, các thế hệ máy tính về sau đƣợc cải tiến ngày một 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 ít năng lƣợng hơn và đã làm nên một cuộc cách mạng trong lĩnh vực xử lý, tính toán, điều khiển động…Với các hệ máy tính này đòi hỏi phải có sự điều khiển, vận hành một cách tự động để phát huy hiệu quả của nó một cách tối ƣu nhất. Nhƣ vậy, cần phải có một chƣơng trình phần mềm đảm bảo việc giải quyết các vấn đề trên. Đó chính là các hệ điều hành máy tính. Mỗi hệ điều hành đều 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 hiện để cân bằng cho hệ thống máy tính đƣợc hiệu quả. Sự cần thiết của thuật toán lập lịch xuất phát từ yêu cầu cho hầu hết các hệ thống hiện đại để thực thi nhiều hơn một công việc tại cùng một thời điểm và có thể truyền tải nhiều luồng dữ liệu một lúc. Trong môi trƣờng thời gian thực, chẳng hạn nhƣ các hệ thống nhúng điều khiển tự động trong ngành công nghiệp (Robot) thì lập lịch cũng phải đảm bảo rằng quá trình có thể đáp ứng đúng thời hạn, điều này là rất quan trọng để giữ hệ thống ổn định. Việc nghiên cứu các thuật toán lập lịch dành CPU này mở ra nhiều hƣớng mới cho khoa học và ứng dụng của nó trong thực tiễn cuộc sống. Đƣợc sự đồng ý của Thầy hƣớng dẫn, Em chọn đề tài “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” làm đề tài luận văn cao học. Nội dung chính của đề tài bao gồm: Chƣơng 1: Trình bày một số khái niệm về thuật toán và các nguyên tắc đánh giá độ phức tạp của thuật toán, vấn đề phân lớp các bài toán theo độ phức tạp của thuật toán. Đầy là phần lý thuyết quan trọng làm cơ sở để nghiên cứu trong các chƣơng tiếp sau của luận văn. 7 S ố hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Chƣơng 2: Trình bày lý thuyết cơ bản về bài toán lập lịch, các thuật toán giải bài toán lập lịch cơ bản và trọng tâm là trình bày một số thuật toán lập lịch cho CPU. Đây chính là nội dung trọng tâm của luận văn Chƣơng 3: Đƣa ra kết quả cài đặt các thuật toán lập lịch cho CPU trên nền ngôn ngữ Visual Studio 10. Nội dung đề tài là một lĩnh vực rộng và khó, với khoảng thời gian không nhiều cùng với kiến thức của bản thân còn hạn chế, trong đề tài này mới chỉ đề cập đến việc nghiên cứu thuật toán lập lịch chủ yếu là trên một máy và ứng dụng cho lập lịch CPU. 8 S húa bi Trung tõm Hc liu http://lrc.tnu.edu.vn CHNG 1 MT S KIN THC C BN V THUT TON V PHC TP THUT TON Trong chng 1, lun vn s trỡnh by mt s kin thc c bn v thut toỏn v phc tp thut toỏn, vn phõn lp cỏc bi toỏn da trờn phc tp thut toỏn. Cỏc kin thc ny ó c tham kho trong cỏc ti liu [3], [4]. õy l cỏc kin thc quan trng trỡnh by tip cỏc ni dung trong chng 2 v chng 3 ca lun vn. 1.1. Khỏi nim c bn 1.1.1. Thut toỏn Thut toỏn gii mt bi toỏn l mt dóy hu hn cỏc thao tỏc c sp xp theo mt trỡnh t xỏc nh sao cho sau khi thc hin dóy thao tỏc ú, t d liu u vo (Input) ca bi toỏn, ta nhn c kt qu (Output) cn tỡm. Ta ó bit 2 mụ hỡnh tớnh toỏn l mỏy Turing v mỏy x lý thut toỏn vit bng ngụn ng ta ALGOL. ng vi hai mụ hỡnh tớnh toỏn ny cú 2 cỏch biu din thut toỏn: + Thut toỏn c biu din bng ngụn ng mỏy Turing. + Thut toỏn c biu din bng ngụn ng ta ALGOL. 1.1.2. Khái niệm về độ phức tạp thuật toán. a. Chi phớ phi tr cho mt quỏ trỡnh tớnh toỏn Trong quỏ trỡnh x lý thut toỏn, ngi ta thng quan tõm ti chi phớ cho thi gian tớnh toỏn v chi phớ cho khụng gian cha d liu tớnh toỏn (b nh). - Chi phớ thi gian chớnh l tng thi gian cn thit thc hin xong mt quỏ trỡnh tớnh toỏn. + Vi mỏy Turing: Chi phớ thi gian l s bc chuyn hỡnh trng t hỡnh trng u 0 q n hỡnh trng kt thỳc n q . 9 S ố hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn + Với thuật toán tựa Algol: Chi phí thời gian là số các phép tính cơ bản cần thực hiện trong quá trình tính toán. - Chi phí không gian chính là số ô nhớ cần để thực hiện hoàn chỉnh trong quá trình tính toán. Gọi A là một thuật toán tƣơng ứng với một mô hình tính toán, gọi e là bộ dữ liệu vào đã đƣợc mã hóa theo cách nào đó. Khi đó thuật toán A tính trên bộ dữ liệu e cần phải trả về giá thời gian và giá không gian trong đó ta kí hiệu + () A te là giá phải trả về thời gian tính toán + () A le là giá về không gian của bộ nhớ cần thiết sử dụng Khi đó tổng giá phải trả của thuật toán A tính trên bộ dữ liệu e chính bằng : T(A)= () A te + () A le b. Các khái niệm về độ phức tạp của thuật toán Độ phức tạp trong trƣờng hợp xấu nhất Cho một thuật toán A với đầu vào n, khi đó: - Độ phức tạp về bộ nhớ trong trƣờng hợp xấu nhất đƣợc định nghĩa là: ( ) max{ ( ) || | | } AA L n l e e n=£ tức là chi phí lớn nhất về bộ nhớ. - Độ phức tạp thời gian trong trƣờng hợp xấu nhất đƣợc định nghĩa là : ( ) max{ ( ) || | | } AA T n t e e n=£ tức là chi phí lớn nhất về thời gian. Độ phức tạp trung bình Là tổng số các độ phức tạp khác nhau ứng với các bộ dữ 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 là có độ phức tạp O(f(n)) nếu $ hằng số C, 00 : ( ) . ( ), A N T n C f n n N£ " ³ tức là () A Tn có tốc độ tăng là O(f(n)) 10 S ố hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn [...]... Cui cựng, tin trỡnh hng x lý kt thỳc chu k CPU ca nú v chuyn ti thit b nhp/xut Tt c cỏc tin trỡnh hng x lý cú chu k CPU rt ngn s nhanh chúng thc thi v di chuyn tr v hng i nhp/xut Ti thi im ny CPU trng thỏi ngh Sau ú, tin trỡnh hng x lý s di chuyn tr li hng i sn sng v c cp CPU Mt ln na, tt c tin trỡnh hng nhp/xut kt thỳc vic ch trong hng i sn sng cho n khi tin trỡnh hng x lý c thc hin Cú mt tỏc dng... vic ng thi c x lý ri = 0, " i = 1, 2, , n - mi cụng vic i ( 1 Ê i Ê n ) c bit di = B , t i = wi = ai , " i = 1, 2, , n - mỏy lm vic liờn tc cho n khi mi cụng vic c x lý xong - ti mi thi im mỏy ch x lý c mt cụng vic - khi ang x lý cụng vic i, khụng c phộp ngt nú thc hin mt cụng vic khỏc 19 S húa bi Trung tõm Hc liu http://lrc.tnu.edu.vn Output: Hóy lp lch mỏy x lý cỏc cụng vic sao cho lng tin pht... quan nim rng hn v bi toỏn lp lch 2.3 Mt s thut toỏn lp lch cho CPU 2.3.1 Mụ hỡnh bi toỏn lp lch cho CPU Bt c khi no CPU khụng hot ng, h iu hnh phi chn mt trong nhng tin trỡnh hng i sn sng thc thi Chn tin trỡnh c thc hin bi b lp lch ngn (short-term scheduler) hay b lp lch CPU B lp lch ny chn cỏc tin trỡnh trong b nh sn sng thc thi v cp phỏt CPU ti mt trong cỏc tin trỡnh ú Hng i sn sng khụng nht thit... trờn mt mỏy ri : Thi im bt u cụng vic x lý i d i : Hn nh hon thnh cụng vic i t i : Thi gian x lý cụng vic i, t i Ê di - ri bi : Thi gian bt u x lý ci : Thi gian kt thỳc cụng vic i, t i = ci - bi nu ci Ê di , cụng vic i l x lý ỳng hn nu ci > di , cụng vic i l x lý quỏ hn(b pht) wi : Tin pht Output: Hóy sp xp cỏc cụng vic theo mt th t nht nh theo ú ch n lt x lý, sao cho lng tin pht l ớt nht Kớ hiu ỡ0 ù... thng khụng l ti u v cú s thay i rt quan trng nu cỏc thi gian CPU dnh cho cỏc tin trỡnh khỏc nhau rt ln Ngoi ra, xột tỏc dng ca lp lch FCFS trong trng hp ng Gi s chỳng ta cú mt tin trỡnh hng x lý (CPU- bound) v nhiu tin trỡnh hng nhp/xut (I/O bound) Khi cỏc tin trỡnh ng thi cựng yờu cu h thng thỡ hin tng sau cú th xy ra Tin trỡnh hng x lý s nhn CPU v gi nú Trong sut thi gian ny, tt c tin trỡnh khỏc s kt... hi chy trờn CPU Cỏc mu tin trong hng i thng l khi iu khin tin trỡnh ca phõn b ú 34 S húa bi Trung tõm Hc liu http://lrc.tnu.edu.vn 2.3.2 Mt s thut toỏn lp lch cho CPU 2.3.2.1 Lp lch FCFS Thut toỏn lp lch FCFS (first-come, first-served) c thc hin theo t tng l n trc, c phc v trc (first-come, first-served-FCFS) Vi c ch ny, tin trỡnh yờu cu CPU trc s c cp phỏt CPU trc Vic ci t FCFS c qun lý d dng vi hng... ngng cho n khi mi ụ tụ sa xong Ti mi thi im, nh mỏy ch x lớ c mt ụ tụ, sa xong ụtụ ny mi sa ụ tụ khỏc Hóy sp xp cỏc ụ tụ theo mt th t nht nh theo ú ch n lt sa cha, sao cho s lng ụ tụ c sa ỳng hn l nhiu nht Biu din bi toỏn: Input: - n ụtụ, thi im cú th bt u x lý l nh nhau: ri = 0, " i = 1, 2, , n - Hn nh sa cha: di (due date) - Thi gian cn thit sa: ti (time) - Nh mỏy lm vic liờn tc - Mi thi im ch x lý. .. sng, PCB ca nú c liờn kt ti cui ca hng i Khi CPU khụng c s dng, nú c cp phỏt ti mt tin trỡnh ti u hng i Sau ú, tin trỡnh ang chy c ly ra khi hng i Vi t tng ny, vic thc hin thut toỏn FCFS l n gin Tuy nhiờn, thi gian ch i trung bỡnh thut toỏn FCFS thng l di Xột tp hp cỏc tin trỡnh sau n ti thi im 0, vi chiu di thi gian chu k CPU c cho theo mini giõy Vớ d: Cho dóy tin trỡnh v thi gian phc v tng ng Processes... mỏy lm vic liờn tc - Mi thi im ch x lý c mt ụtụ - Sa xong ụtụ ny mi c sa ụtụ khỏc: khụng cho phộp ngt Output: Kớ hiu bi : thi im bt u thc s x lý ụtụ th i ci : thi im sa xong ụtụ th i ci di : ỳng hn ci > di : quỏ hn Wi : Tin pht Tỡm lch biu S sao cho s lng ụtụ c sa ỳng hn l nhiu nht (lng tin pht nh nht) Vớ d: Cho cỏc tham s di dng bng sau: ụtụ Hn nh di Thi gian ti 30 S húa bi Trung tõm Hc liu http://lrc.tnu.edu.vn... c gi l Thut toỏn xp x a thc 1.4.2 Thut toỏn - xp x tuyt i Cho P l bi toỏn cc i húa: Gi H l th tc Heuristic, thut toỏn tỡm mt nghim no ú cho P Kớ hiu OPT(I) l nghim ti u ca bi toỏn P i vi th hin I Kớ hiu H(I) l nghim gn ỳng ca P do thut toỏn H tỡm ra Cho >0, th tc Heuristic H c gi l thut toỏn - xp x tuyt i khi v ch khi OPT ( I ) H ( I ) cho mi th hin I ca bi toỏn P (I: instance) vi b d liu Vớ . hƣớng mới cho khoa học và ứng dụng của nó trong thực tiễn cuộc sống. Đƣợc sự đồng ý của Thầy hƣớng dẫn, Em chọn đề tài 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 làm. Chƣơng 2: Trình bày lý thuyết cơ bản về bài toán lập lịch, các thuật toán giải bài toán lập lịch cơ bản và trọng tâm là trình bày một số thuật toán lập lịch cho CPU. Đây chính là nội dung. 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