Bài viết tham khảo cho Mô phỏng điều phối tiến trình với thuật toán SJF không độc quyền và độc quyền .Bên cạnh đó còn có phần thực hiện trong Winform và mô phỏng đồ họa các chiến lược điều phối tiến trình .
LỜI NÓI ĐẦU Hệ điều hành hệ thống vô phức tạp , trình cập nhật sử lý thông tin diễn nhanh Các trình sử lý CPU thông qua điều phối , gới ngày đại công nghệ ngày phát triển CPU ngày nâng cấp mạnh mẽ cô nghệ chế tạo Tuy nhiên CPU phải tuân theo nguyên tắc xử lý quán dựa thuật toán xử lý tiến trình CPU từ chỗ đơn nhiệm (đơn chương) nâng cấp xử lý đa nhiệm , đa chương Ngoài CPU đần nâng tầm khả sử lý Hiệu xuất nâng cao , tiết kiệm thời gian , tài nguyên Điều phối tiến trình tập hợp chuỗi thuật toán nhằm điều khiển hoạt động CPU điều phối tiến trình Với mục tiêu nhiên cứu thuật toán mô thuật toán tảng tubor C , C++ , C# , Dev – C Bên cạnh tìm hiểu nguyên tắc chung điều phối tiến trình MỤC LỤC LỜI NÓI ĐẦU ……………………………………………………… 01 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪ…………………… 02 I LÝ DO , MỤC ĐÍCH & CƠ SỞ LÝ THUYẾT …….………… 03 : Khái niệm hệ điều hành ……………………………… 03 : Mục tiêu đề tài ………………………………… ……03 : Cơ sở lý thuyết ……………………………………… ……04 : Trạng thái lý thuyết tiến trình……………………… 04 : Quy trình trạng thái tiến trình ……………………….05 : Các chế độ xử lý tiến trình………………………… 06 II ĐIỀU PHỐI & MÔ PHỎNG ĐIỀU PHỐI TIỀN TRÌNH …… 09 : Cơ chế điều phối………………………………………… 09 :Ưu , nhược điểm thuật toán điều phối ……………… 09 2.2.1 : Thuật toán FCFS 2.2.2 : Thuật toán SJN 2.2.3 : Thuật toán Robin Round (RR) 2.2.4 : Thuật toán SRTF : Khái niệm mô ……………………………………10 : Thuật toán mô ………………………………………10 4.1 : Khái niệm 4.2 : Các thuật toán 4.3 : Cài đặt công cụ mô : Cài đặt thuật toán ………………………………………… 5.1 : Thuật toán SJN 5.2 : Kết mô I : LÝ DO , MỤC TIÊU & CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 1.Lý : Hệ điều hành phần tất yếu xã hội , nơi mà thông tin cập nhật sử lý ngày chí mili giây thông qua hệ thống máy tính , hệ thống thông tin toàn giới Với chức phân phối sử lý nguồn tài nguyên hệ thống tạo thuận tiện cho người dùng thông qua việc phân phối tài nguyên nhớ , sử lý nhanh cách nhanh chóng hiệu , bên cạnh việc tạo lập môi trường ảo giúp hệ thống máy tính ngày đại thông minh góp phần không nhỏ cho sống người Hệ điều chủ yếu quản lý trang thái sử lý thông tin CPU môi trường đa chương , đa nhiệm việc sử lý thông tin nảy sinh trường hợp yêu cầu sử lý đồng thời Việc phân chia thời gian (time –sharing) thức chuyển đổi CPU cách nhanh chóng qua tiến trình giúp người sử dụng sử lý song song nhiều chương trình giúp tiết kiệm thời gian, chi phí sử dụng giảm lãng phí tài nguyên Tuy nhiên để CPU hoạt động hiệu tránh hao phí tài nguyên , thời gian Hệ Điều Hành phải sử dụng thuật toán để nhận diện tiến trình sử lý Bộ điều phối sử dụng giải thuật điều phối thích hợp Đồng thời điều phối chuyển đổi ngữ cảnh chuyển cho CPU tiến trình chọn điều phối để sử lý Vì việc điều phối tiến trình CPU trình phức tạp đặc biệt quan trọng em lựa chọn đề tài :Mô thuật toán điều phối tiến trình hệ điều hành Mục tiêu đề tài - Tìm hiểu giải thuật : First – Come- First –Severed (FCSFS- Đến trước phục vụ trước ), Shortest Job Next (SJN – Công việc ngắn phục vụ trước),Deadline Scheduling(Điều phối có thời hạn),Round Robin (Điều phối xoay vòng ) - Ưu , nhược điểm giải thuật điều phối tiến trình CPU - Cài đặt mô giải thuật điều phối tiến trình CPU : Cơ sở lý thuyết Trong việc điều phối tiến trình điều phối không cung cấp chế mặt khác điều phối đưa định Có nhiều hệ điều hành khác với chiến lược khác nhằm thực điều phối tiến trình CPU tất theo nguyên tắc chung bao gồm - Sự công phân phối CPU tương ứng việc cấp phát CPU cách đồng tiến trình ưu tiên cách tuyệt đối , tiến trình phải chờ lâu để cấp phát CPU -Thời gian đáp ứng hợp lý : thời gian phản hồi đến người sử dụng cực tiểu hay nói cách khác thời gian người sử dụng nhận tiến trình sử lý ngắn - Hiệu : Sự dụng 100% thời gian CPU - Thời gian lưu lại hệ thống nhỏ : cực tiểu hóa thời gian hoàn tất xử lý CPU - Năng lực tối đa : tăng khả sử lý nhiều tiến trình khoảng thời gian Đó những nguyên tắc mà hệ điều hành cần đạt đến nhiên thời điểm việc sử lý lúc nhiều tiến trình dẫn đến hệ điều hành tải , việc nâng cấp hệ điều hành mang lại hiệu tích cực bất chấp việc lại mâu thuẫn lẫn Trạng thái lý thuyết tiến trình Quy trình quản lý tiến trình Trong hệ điều hành trình điều phối tiến trình CPU trình mà tiến trình trình sử lý trải qua giai đoạn sau Tạo lập tiến trình Running :chỉ thị tiến trình sử lý Blocked : tiến trình chờ cấp phát tài nguyên chờ liệu hoàn thành Ready : CPU sử lý tiến trình Kết thúc : Hoàn thành việc sử lý Quy trình trạng thái tiến trình Từ đưa vào hệ thống kết thúc tiến trình tồn trạng thái khác 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 Tiến trình hai trạng thái: Một số hệ điều hành cho phép tiến trình tồn hai trạng thái: Not Running Running Khi hệ điều hành tạo tiến trình mới, hệ điều hành đưa tiến trình vào hệ thống trạng thái Not Running, tiến trình trạng thái để chờ chuyển sang trạng thái Running Vì lý đó, tiến trình thực bị ngắt điều phối tiến trình hệ điều hành thu hồi lại processor tiến trình chọn tiến trình trạng thái Not running để cấp processor cho chuyển sang trạng thái Running Tiến trình bị thu hồi processor chuyển lại trạng thái Not running Tại thời điểm xác định có tiến trình trạng thái Runnig, có nhiều tiến trình trạng thái Not running, tiến trình trạng thái Not running chứa hàng đợi (Queue) Tiến trình trạng thái Running bị chuyển sang trạng thái Not running đưa vào hàng đợi Hình vẽ sau mô tả việc chuyển trạng thái tiến trình hệ điều hành sử dụng trạng thái tiến trình Tiến trình ba trạng thái: Đa số hệ điều hành cho phép tiến trình tồn ba trạng thái, là: ready, running, blocked: • Trạng thái Ready (sẵn sàng): Ngay sau khởi tạo tiến trình, đưa tiến trình vào hệ thống cấp phát đầy đủ tài nguyên (trừ processor) cho tiến trình, hệ điều hành đưa tiến trình vào trạng thái ready Hay nói cách khác, trạng thái ready trạng thái tiến trình hệ thống chờ cấp processor để bắt đầu thực • Trạng thái Running (thực hiện): Là trạng thái mà tiến trình sở hữu processor để hoạt động, hay nói cách khác thị tiến trình thực hiện/ xử lý processor • Trạng thái Blocked (khoá): Là trạng thái mà tiến trình chờ để cấp phát thêm tài nguyên, để kiện xảy ra, hay trình vào/ra kết thúc Quá trình chuyển trạng thái tiến trình mô tả sơ đồ sau: Trong đó: (Admit) Tiến trình khởi tạo, đưa vào hệ thống, cấp phát đầy đủ tài nguyên thiếu processor (Dispatch) Tiến trình cấp processor để bắt đầu thực hiện/ xử lý (Release) Tiến trình hoàn thành xử lý kết thúc (Time_out) Tiến trình bị điều phối tiến trình thu hồi processor, hết thời gian quyền sử dụng processor, để cấp phát cho tiến trình khác (Event wait) Tiến trình chờ kiện xảy hay chờ thao vào/ra kết thúc hay tài nguyên mà tiến trình yêu cầu chưa hệ điều hành đáp ứng (Event Occurs) Sự kiện mà tiến trình chờ xảy ra, thao tác vào/ra mà tiến trình đợi kết thúc, hay tài nguyên mà tiến trình yêu cầu hệ điều hành đáp ứng, Bộ phận điều phối tiến trình thu hồi processor từ tiến trình thực trường hợp sau: • Tiến trình thực hết thời gian (time-out) quyền sử dụng processor mà phận điều phối dành cho • Có tiến trình phát sinh tiến trình có độ ưu tiên cao tiến trình • Có tiến trình phát sinh tiến trình cần khoảng thời gian processor nhỏ nhiều so với khoảng thời gian lại mà tiến trình cần processor Tại thời điểm xác định hệ thống có nhiều tiến trình trạng thái Ready Blocked có tiến trình trạng thái Running Các tiến trình trạng thái Ready Blocked chứa hàng đợi (Queue) riêng Có nhiều lý để tiến trình trạng thái running chuyển sang trạng thái blocked, đa số hệ điều hành thiết kế hệ thống hàng đợi gồm nhiều hàng đợi, hành đợi dùng để tiến trình đợi kiện Các chế độ sử lý Trong việc điều phối tiến trình điều phối không cung cấp chế mặt khác điều phối đưa định Có nhiều hệ điều hành khác với chiến lược khác nhằm thực điều phối tiến trình CPU tất theo nguyên tắc chung bao gồm - Sự công phân phối CPU tương ứng việc cấp phát CPU cách đồng tiến trình ưu tiên cách tuyệt đối , tiến trình phải chờ lâu để cấp phát CPU -Thời gian đáp ứng hợp lý : thời gian phản hồi đến người sử dụng cực tiểu hay nói cách khác thời gian người sử dụng nhận tiến trình sử lý ngắn - Hiệu : Sự dụng 100% thời gian CPU - Thời gian lưu lại hệ thống nhỏ : cực tiểu hóa thời gian hoàn tất xử lý CPU - Năng lực tối đa : tăng khả sử lý nhiều tiến trình khoảng thời gian Đó những nguyên tắc mà hệ điều hành cần đạt đến nhiên thời điểm việc sử lý lúc nhiều tiến trình dẫn đến hệ điều hành tải , việc nâng cấp hệ điều hành mang lại hiệu tích cực bất chấp việc lại mâu thuẫn lẫn Tuy nhiên hệ điều hành có ưu tiên riêng biệt nhằm bảo đảm an toàn cho hệ điều hành sai sót trình sử lý Do Hệ điều hành sử dụng chế độ : Đặc quyền Không đặc quyền , người sử dụng sử lý thông tin với chế độ không đặc quyền , sau CPU hoàn tất tiến trình thông tin sử lý chuyển qua cho người dùng chế độ không đặc quyền điều giúp hệ thống bảo đảm an toàn trước sai sót người dùng tạo Ta thấy rõ khác bước trình điều phối sau : - Điều phối độc quyền: Nguyên lý điều phối độc quyền cho phép tiến trình nhận CPU có quyền đọc chiếm CPU.Khi định điều phối CPU xảy tình sau: +Khi tiến trình chuyển từ trạng thái xử lý(running) sang trạng thái bị blocked (ví dụ chờ thao tác nhập xuất hay chờ tiến trình kết thúc ) +Khi tiến trình kết thúc Các giải thuật đọc quyền thường đơn giản đẽ cài đặt.Tuy nhiên chúng thường không thích hợp với hệ thống tổng quát nhiều người dùng, cho phép tiến trình có quyền xử lý tùy ý, có nghĩa tiến trình giữ CPU thời gian không xác định,có thể ngăn cản tiến trinh lại hệ thống cosmoojy hội để xử lý - Điều phối không độc quyền: Ngược với nguyên lý đọc quyền,điều phối theo nguyên lý không dọc quyền cho phéo tạm dừng hoạt động tiến trình sẵn sàng xử lý.Khi tiến trình nhận CPU,nó sử dụng CPU đén hoàn tất tự nguyện giải phóng CPU,nhưng có tiến trình khác có độ ưu tiên dành quyền sử dụng CPU tiến trình ban đầu.Như tiến trình bị tạm dừng hoạt động lúc mà không thông báo trước,để tiến trình khác xử lý.Cadc định điều phối xảy khi: + Khi tiến trình chuyể từ trạng thái xử lý(running) sang trạng thái bị khóa blocked + Khi tiến trình chuyển từ trạng thái xử lý(running) sang trạng thái ready(vì xảy ngắt) + KHi tiến trình chuyển từ trạng thái chờ (bloked) sang trạng thái ready(ví dụng thao tác nhập xuất hoàn tất) + Khi tiến trình kết thúc Trong hệ thống sử dụng nguyên lý điều phối độc quyền xảy tình trạng tác vụ cần thời gian xử lý ngắn phải chờ tác vụ xử lý vơi thời gian dài hoàn tất! Nguyên lý điều phối đọc quyền thích hớp với hệ xử lý theo lô Đối với hệ thống tương tác (time sharing),các hệ thời gian thực(real time),cần phải sử dụng nguyên lts điều phối độc quyền để trình quan trọng có hội hồi đáp kịp thời.Tuy nhiên thực điều phối theo nguyên lý không độc quyền đòi hỏi chế phức tạp việc phân định độ ưu tiên,và phát sinh thêm chi phí chuyển đổi CPU qua tiến trình II ĐIỀU PHỐI &MÔ PHỎNG ĐIỀU PHỐI TIẾN TRÌNH Cơ chế điều phối Trong HĐH đa chương , đa nhiệm việc phân phối hợp lý tài nguyên nhớ & điều phối tiến trình sử lý thông tin quan trọng nhằm tăng dần hiệu suất sử lý CPU hệ thống HĐH sử dụng đến điều phối tiến trình tiến trình thực thi mà quyền sử dung CPU (chuyển trang thái sẵn sàng phong tỏa) tiến trình khác cấp phát CPU để sử lý Bên cạnh việc lưu lại ngữ cảnh tiến trình giúp HĐH thu hẹp thời gian LOAD tiến trình lên ghi giúp liệu mau chóng sử lý bảo đảm thời gian thực cho HĐH Ưu nhược điểm thuật toán điều phối 2.1 Đến trước phục vụ trước (FCFS) Trong thuật toán FCFS, độ ưu tiên tiến trình định thời điểm trương trình đưa vào hàng đợi, nói cách khác tiến trình sử lý theo thứ tự trước sau có nghĩa tiến trình đến trước sử lý trước sử lý xong chuyển sang tiến trình * Ưu điểm : - Thao tác đơn giản - Giờ CPU không bị phân phối lại , chi phí tổ chức thực thấp * Nhược điểm : - Không hiệu , tiến trình dài với tiến trình ngắn phải chờ đợi hàng chờ - Thời gian chờ đợi trung bình lớn,khi tăng thời gian thực tiến trình thời gian chờ đợi tăng theo 2.2 Ngắn phục vụ trước (SJN) Là hình thức sử lý tiến trình thông qua việc tính toán thời gian đòi hỏi để CPU sử lý suốt trình, với mục đích cự tiểu hóa thời gian chờ đợi trung bình , tăng hiệu suất sử lý CPU toàn hệ thống * Ưu điểm : - So với FCFS, SJN giảm tối đa thời gian chờ đợi trung bình - Nhanh chóng sử lý loại bỏ tiến trình ngắn giải phóng số lượng tiền trình hàng đợi * Nhược điểm : - SJN làm giảm số phần tử hàng đợi , dẫn đến phần tử khác thêm vào nảy sinh việc phân phối lại dẫn đến tiến trình dài có xu bị đẩy sau chờ sử lý 2.3 Thuật toán Robin Round * Ưu điểm : Được thiết kế để áp dụng cho hệ phân chia thời gian (time-sharing) z RR hoạt động theo chế độ preemptive z Tham số lượng tử thời gian (time quantum) tquantum: Mỗi tiến trình sử dụng CPU nhiều tquantum, sau đến lượt tiến trình khác * Nhược điểm : Hiệu RR phụ thuộc độ lớn tquantum z Nếu tquantum nhỏ hiệu RR giảm điều phối phải thực nhiều thao tác chuyển trạng thái, lãng phí thời gian CPU z Nếu tquantum lớn số thao tác chuyển trạng thái giảm z Nếu tquantum nhỏ (ví dụ 1ms) RR gọi processor sharing : Khái niệm mô điều phối tiến trình Khái niệm : Mô việc áp dụng mô hình để tạo kết ,chứ nghĩa thử nghiệm hệt thống cần nhiên cứu Công cụ : Trước tiên ta phải xác đinh nguồn mô , qua chọn công cụ cho hợp lí Ngôn ngữ mô : điều phối tiến trình ngôn ngữ mô thường C+, C++ hay C# : Thuật toán mô 4.1 Khái niệm Là thuật toán dựa tảng ngôn ngữ lập trình , nhằm tạo môi trường ảo để máy tính mô lại trình xử lý thông tin trình làm việc 4.2: Thuật toán mô SJN Sử dụng phần mềm Code block với ngôn ngữ C# , nhằm tạo phần mô môi trường MS.DOS Code block có khả dịch ngôn ngữ lập trình giúp giảm thời gian bảo đảm khả chạy chương trình 4.3 : Cài đặt công cụ mô *.Giới thiệu CodeBlock IDE viết C++ sử dụng framework wxWidget Điểm bật CB bao gồm: • • • • Cross-platform, run hệ điều hành, bao gồm : Mac, Linux, Windows, … Rất gọn nhẹ, có 70mb Có thể chọn compiler để biên dịch source, mặc định gcc Hỗ trợ format source code tiện lợi cho việc copy code từ site khác về, chỉnh sữa lại * Cài đặt Bước 1: Tải Code Block : www.codeblocks.org/downloads Bước 2: Cài đặt Code::Blocks - Click đúp vào file vừa tải để bắt đầu trình cài đặt - Click next liên tiếp, hình thông báo cài đặt mặc định vào C:\Program Files\CodeBlocks - Chọn cài FULL để có đầy đủ tính - Mở chương trình lên sau cài đặt xong Bước 3: Khởi động Code::Blocks - Có cửa sổ hiển thị lên yêu cầu bạn chọn Trình biên dịch mặc định Code::Blocks - Để tạo project bạn làm sau: Vào menu File -> New -> Project - Chọn Console Application nhấn nút Go để bắt đầu - Chọn next liên tiếp tới bạn gặp cửa sổ yêu cầu chọn ngôn ngữ C/C++ - Sau nhấn Next, Code::Blocks yêu cầu bạn điền thông tin Project - Click Next lần để lựa chọn trình biên dịch cho Project vừa tạo - Bạn không cần làm bước Mặc định, Code::Blocks chọn trình biên dịch mặc định mà bạn thiết lập lúc cài đặt ban đầu - Mở file main.cpp cửa sổ bên trái để vào giao diện viết code cho chương trình - Ở cửa sổ bên phải, bạn viết ví dụ đơn giản in hình câu: "Hello world !", Sau nhấn F9 để chạy xem kết Bước 5: Debug Trong trường hợp chương trình chạy không ý bạn, sử dụng công cụ debugger để xác định cụ thể Chức debug có tab debug cuối hình Nhiều chức khác có menu debug Một vài tính debug như: • Chạy tới trỏ hình (Run to cursor ) • Thêm cửa sổ theo dõi • Theo dõi giá trị biến,… Cài đặt thuật toán SJN 5.1 : Cấu trúc liệu mô Nguyên tắc chung : Mọi thuật toán phải tuân thủ theo bước sau Begin Xử lý tiến trình đầu danh sách Kiểm tra danh sách rỗng ĐÚNG Sai Xử lý thuật toán Câp nhật lại danh Sach hàng chờ End Bước : Khởi tạo chương trình chọn file-> New-> Project -> consoler Hình 4.1a Giao diện môi trường mô khai báo SJN Bước : Khai báo thư viện #include #include #include #include #include #include #define INP "input.txt" (đường dẫn tập tin input.txt) Chú ý : Tập tin input.txt bao gồm thông tin sau - số tiến trình (P1, P2 , P3 , P4) - Là tiến trình chọn - Quatum CPU P1 20 - Tiên trình – Thời gian vào – Thời gian xử lý – độ ưu tiên P2 P3 P4 Bước : Khai báo input - output int quantum; int set; void input(ListP &pr, int &n, int &timeOUT); void output_input(ListP pr, int n); void output_SJN_preemptive(ListP pr, int n, int timeOUT); void output_SJN_nopreemptive(ListP pr, ListP RL, int n, int m, int timeOUT); void OUTPUT(ListP pr, ListP RL, int n, int m, int timeOUT, int set); void process_SJN_preemptive(ListP &pr, int n, int timeOUT); void process_SJN_nopreemptive(ListP &pr, ListP &RL, int n, int &m, int timeOUT); void PROCESS(ListP &pr, ListP &RL, int n, int &m, int timeOUT, int set); void input(ListP &pr, int &n, int &timeOUT) { timeOUT = 0; ifstream in(INP); if (in == NULL) { cout > n; in >> set; in >> quantum; pr = new process[n]; for (int i = 0; i < n; i++) { in >> pr[i].name; in >> pr[i].timeRL; in >> pr[i].timeCPU; in >> pr[i].priority; if (timeOUT < pr[i].timeRL) timeOUT = pr[i].timeRL + pr[i].timeCPU; else timeOUT += pr[i].timeCPU; pr[i].index = i; } } void output_input(ListP pr, int n) { cout [...]... Kết quả mô phỏng 5.2:Những điều đề tài làm được và chưa làm được a Những điều đề tài làm được : - Sử dụng thuât toán SJN để mô phỏng điều phối tiến trình - Thực hiện dễ dàng trong việc thay đổi chế độ điều phối nhưng không can thiệp vào mã nguồn b Những việc đề tài chưa làm được : - Mô phỏng các thuật toán FCFS , RR … - Đồ họa hóa điều phối tiến trình 5.3 : Kết luận Mô phỏng điều phối tiến trình giúp... ngôn ngữ lập trình , nhằm tạo ra môi trường ảo để máy tính mô phỏng lại quá trình xử lý thông tin cũng như quá trình làm việc 4.2: Thuật toán mô phỏng SJN Sử dụng phần mềm Code block với ngôn ngữ C# , nhằm tạo ra các phần mô phỏng trên môi trường MS.DOS Code block có khả năng dịch ngôn ngữ lập trình giúp giảm thời gian cũng như bảo đảm khả năng chạy chương trình 4.3 : Cài đặt công cụ mô phỏng *.Giới... thuật toán FCFS , RR … - Đồ họa hóa điều phối tiến trình 5.3 : Kết luận Mô phỏng điều phối tiến trình giúp em hiểu rõ thêm về quy trình sử lý các tiến trình trong CPU và hệ điều hành Tuy nhiên do thời gian chưa cho phép nên em xin được mô phỏng các phương pháp điều phối tiến trình khác trong đồ án sau ... mô phỏng Nguyên tắc chung : Mọi thuật toán đều phải tuân thủ theo các bước sau Begin Xử lý tiến trình đầu danh sách Kiểm tra danh sách rỗng ĐÚNG Sai Xử lý thuật toán Câp nhật lại danh Sach trong hàng chờ End Bước 1 : Khởi tạo chương trình và chọn file-> New-> Project -> consoler Hình 4.1a Giao diện môi trường mô phỏng và khai báo SJN Bước 2 : Khai báo thư viện #include #include #include... #include #include #define INP "input.txt" (đường dẫn tập tin input.txt) Chú ý : Tập tin input.txt bao gồm những thông tin sau 4 - là số tiến trình (P1, P2 , P3 , P4) 1 2 - Là tiến trình được chọn - Quatum của CPU P1 0 20 3 - Tiên trình – Thời gian vào – Thời gian xử lý – độ ưu tiên P2 3 6 2 P3 3 5 1 P4 7 4 0 Bước 2 : Khai báo input - output int quantum; int set; void input(ListP &pr,... yêu cầu bạn điền các thông tin của Project - Click Next lần nữa để lựa chọn trình biên dịch cho Project vừa tạo - Bạn có thể không cần làm gì ở bước này Mặc định, Code::Blocks sẽ chọn trình biên dịch mặc định mà bạn đã thiết lập lúc cài đặt ban đầu - Mở file main.cpp ở cửa sổ bên trái để vào giao diện viết code cho chương trình - Ở cửa sổ bên phải, bạn có thể viết 1 ví dụ đơn giản in ra màn hình câu:... trường hợp chương trình chạy không như ý của bạn, sử dụng công cụ debugger để xác định cụ thể Chức năng debug cơ bản có tại tab debug ở cuối màn hình Nhiều chức năng khác nhau có tại menu debug Một vài tính năng chính của debug như: • Chạy tới con trỏ màn hình (Run to cursor ) • Thêm cửa sổ theo dõi • Theo dõi giá trị của biến,… 5 Cài đặt thuật toán SJN 5.1 : Cấu trúc dữ liệu mô phỏng Nguyên tắc chung... trên mọi hệ điều hành, bao gồm : Mac, Linux, Windows, … 2 Rất gọn nhẹ, chỉ có đúng 70mb 3 Có thể chọn bất cứ compiler để biên dịch source, mặc định là gcc 4 Hỗ trợ format source code rất tiện lợi cho việc copy code từ các site khác về, và chỉnh sữa lại * Cài đặt Bước 1: Tải Code Block tại : www.codeblocks.org/downloads Bước 2: Cài đặt Code::Blocks - Click đúp vào file vừa tải về để bắt đầu quá trình cài... - Click next liên tiếp, màn hình thông báo cài đặt mặc định vào C:\Program Files\CodeBlocks - Chọn cài FULL để có đầy đủ các tính năng - Mở chương trình lên sau khi cài đặt xong Bước 3: Khởi động Code::Blocks - Có 1 cửa sổ hiển thị lên yêu cầu bạn chọn Trình biên dịch mặc định của Code::Blocks - Để tạo 1 project mới bạn làm như sau: Vào menu File -> New -> Project - Chọn Console Application và nhấn ... thuyết tiến trình Quy trình quản lý tiến trình Trong hệ điều hành trình điều phối tiến trình CPU trình mà tiến trình trình sử lý trải qua giai đoạn sau Tạo lập tiến trình Running :chỉ thị tiến trình. .. chuyển đổi CPU qua tiến trình II ĐIỀU PHỐI &MÔ PHỎNG ĐIỀU PHỐI TIẾN TRÌNH Cơ chế điều phối Trong HĐH đa chương , đa nhiệm việc phân phối hợp lý tài nguyên nhớ & điều phối tiến trình sử lý thông... tiến trình mới, hệ điều hành đưa tiến trình vào hệ thống trạng thái Not Running, tiến trình trạng thái để chờ chuyển sang trạng thái Running Vì lý đó, tiến trình thực bị ngắt điều phối tiến trình