1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng chương trình quản lý CPU và RAM của windows

38 0 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

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG VÀ TRUYỀN THÔNG   ĐỒ ÁN HỆ ĐIỀU HÀNH Đề tài: Xây dựng chương trình Quản lý CPU&RAM Windows Sinh viên : Hoàng An Cán hướng dẫn : Huỳnh Công Pháp 08T2 Đà Nẵng 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bộ môn mạng truyền thông MỤC LỤC CHƯƠNG 1: MỞ ĐẦU 1.1 Giới thiệu 1.1.1 Quản lý nhớ 1.1.2 Quản lý tiến trình 1.2 Đề tài muc tiêu 1.2.1 Đề tài 1.2.2 Mục tiêu CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan tiến trình 2.1.1 Tiến trình loại tiến trình 2.1.1.1 Tiến trình (process): 2.1.1.2 Các loại tiến trình: 2.1.2 Mơ hình tiến trình: 10 2.1.3 Tiểu trình tiến trình 13 2.1.3.1 Tiểu trình: 14 2.1.3.2 Đa tiểu trình đơn tiến trình: 14 2.1.4 Các trạng thái tiến trình 15 2.1.4.1 Tiến trình hai trạng thái: 15 2.1.4.2 Tiến trình ba trạng thái: 16 2.1.4.3 Tiến trình trạng thái: 18 2.1.4.4 Tiến trình trạng thái: 19 2.1.5 Cấu trúc liệu khối quản lý tiến trình 21 2.1.5.1 Định vị tiến trình (process location): 21 2.1.5.2 Các thuộc tính tiến trình: 22 2.1.6 Các thao tác điều khiển tiến trình 23 2.1.7 So sánh Quản lý tiến trình Windows với Linux 24 Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 2.1.7.1 Mức ưu tiên lập lịch (Scheduling) 24 2.1.7.2 Thông tin chi tiết lập lịch: 25 2.1.7.3 Lập lịch thời gian thực: 26 2.1.7.4 Lập lịch lát cắt thời gian 26 2.1.7.5 Kernel Retrancy 27 2.1.7.6 Kernel Preemptibility 27 2.1.7.7 Bộ lập lịch (Scheduling) 28 2.1.7.8 Đồng hóa Light-Weight 28 2.2 So sánh Hệ thống quản lý nhớ Windows với Linux 28 2.2.1 Bộ nhớ ảo (Virtual Memory) 29 2.2.2 Phân trang (Paging) 29 2.2.3 So sánh Windows với Linux 30 2.2.3.1 Các điểm tương đồng hệ thống Quản lý nhớ Windows Linux 30 2.2.3.2 Cấu trúc liệu để mơ tả khơng gian tiến trình 30 2.2.3.3 Sự Phân phối không gian địa tiến trình 31 2.2.3.4 Thay trang (Page Replacement): 31 2.2.3.5 Kết luận windows Linux 34 CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 34 3.1 Phân tích chức năng: 34 3.1.1 Lấy thông tin nhớ RAM, CPU: 35 3.1.1.1 Thông tin hệ thống: Số Process, Số Handle, Số Thread, Commit, CPU Usage 35 3.1.1.2 Thông tin RAM: % RAM Free, % RAM Used, Total RAM 35 3.1.2 Hiển thị thơng tin có 35 3.1.2.1 Biểu đồ cột CPU Usage 35 3.1.2.2 Biểu đồ đường CPU Usage, RAM used 35 3.1.2.3 Biều đồ Chart 2D Ram used, free 35 3.1.3 Cách tính CPU Usage: 35 An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thông 3.1.3.1 Dùng hàmGetSystemTimes() 35 3.2 Xây dựng chức 36 3.2.1 Lấy Thông tin RAM 36 3.2.1.1 GlobalMemoryStatusEx(MEMORYSTATUSEX &); 36 3.2.2 Lấy thông tin hệ thống 36 3.2.2.1 GetPerformanceInfo(PERFORMANCEINFO&); 36 3.2.2.2 GetSystemTimes(); 36 3.2.3 Vẽ biểu đồ 36 3.2.3.1 Affine.h để trợ giúp vẽ biểu đồ 36 3.2.3.2 Draw.h vẽ loại biểu đồ 36 CHƯƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 36 4.1 Môi trường triển khai 36 4.2 Kết chức chương trình 36 4.3 Đánh giá nhận xét 37 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38 5.1 Kết luận 38 5.2 Hướng phát triển 38 CHƯƠNG 1: MỞ ĐẦU 1.1 Giới thiệu Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 1.1.1 Quản lý nhớ Quản lý nhớ nhiệm vụ quan trọng phức tạp hệ điều hành Bộ phận quản lý nhớ xem nhớ tài nguyên hệ thống dùng để cấp phát chia sẻ cho nhiều tiến trình trạng thái active Các hệ điều hành mong muốn có nhiều tiến trình nhớ Cơng cụ quản lý nhớ phân trang (paging) phân đoạn (segmentation) Với phân trang tiến trình chia thành nhiều phần nhỏ có quan hệ với nhau, với kích thước trang cố định Sự phân đoạn cung cấp cho chươngtrình người sử dụng khối nhớ có kích thước khác Hệ điều hành kết hợp phân trang phân đoạn để có chiến lược quản lý nhớ linh hoạt 1.1.2 Quản lý tiến trình Tất hệ điều hành đa chương, từ hệ điều hành đơn người sử dụng đến hệ điều hành hỗ trợ đến hàng ngàn người sử dụng, phải xây dụng dựa khái niệm tiến trình Vì thế, yêu cầu quan trọng thiết kế hệ điều hành thành phần quản lý tiến trình hệ điều hành phải đáp ứng tất liên quan đến tiến trình:  Hệ điều hành phải cho phép thực nhiều tiến trình đồng thời để khai thác tối đa thời gian xử lý processor cung cấp thời gian hồi đáp hợp lý  Hệ điều hành phải cấp phát tài nguyên để tiến trình hoạt động cách hiệu với sách hợp lý khơng xảy tình trạng tắc nghẽn hệ thống  Hệ điều hành yêu cầu để hỗ trợ truyền thơng liên tiến trình người sử dụng tạo tiến trình Hệ điều hành phải có nhiệm vụ tạo tiến trình, điều khiển hoạt động tiến trình kết thúc tiến trình Một số hệ điều hành phân biệt hai khái niệm tiến trình tiểu trình Tiến trình liên quan đến quyền sở hữu tài nguyên, tiểu trình liên quan đến thực chương trình Trong hệ điều hành đa chương, có nhiều tiến trình tồn nhớ chính, tiến trình ln phiên hai trạng thái: sử dụng processor đợi thực vào/ra hay vài kiện xảy 1.2 Đề tài muc tiêu 1.2.1 Đề tài Đồ án Nguyên Lý Hệ Điều Hành lần chúng em chọn đề tài:  Xây dựng chương trình quản lý RAM CPU 1.2.2 Mục tiêu An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thơng Trong phạm vi báo cáo chúng em đến vấn đề sau đây:  Nguyên cứu hệ thống Quản lý nhớ (Memory Manager System) Quản lý tiến trình nói chung  So sánh Hệ thống quản lý nhớ, quản lý tiến trình hệ điều hành Windows với hệ điều hành Linux  Xây dựng chương trình quản lý Ram & CPU CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan tiến trình Hồng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 2.1.1 Tiến trình loại tiến trình 2.1.1.1 Tiến trình (process): Tiến trình phận chương trình thực hiện, đơn vị thực tiến trình processer Vì tiến trình phận chương trình nên tương tự chương trình tiến trình sở hữu trỏ lệnh, trỏ stack, tập ghi, không gian địa nhớ tất thơng tin cần thiết khác để tiến trình hoạt động Định nghĩa Saltzer: Tiến trình chương trình processor logic thực Định nghĩa Horning & Rendell: Tiến trình trình chuyển từ trạng thái sang trạng thái khác tác động hàm hành động, xuất phát từ trạng thái ban đầu Định nghĩa Saltzer cho thấy, góc độ thực tiến trình hồn tồn tương tự chương trình, khác chỗ: tiến trình processor logic khơng phải processor vật lý thực Điều làm sáng tỏ phần mơ tả tiến trình sau Định nghĩa Horning & Rendell cho thấy trình hoạt động tiến trình trình chuyển từ trạng thái sang trạng thái khác chuyển đổi khơng phải thân tiến trình mà tác động từ bên ngoài, cụ thể phận điều phối tiến trình hệ điều hành Điều làm sáng tỏ phần mơ tả trạng thái tiến trình sau 2.1.1.2 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 song song tiến trình mà điểm khởi tạo tiến trình mằn thân tiến trình khác, tức khởi tạo tiến trình tiến trình trước chưa kết thúc Tiến trình song song chia thành nhiều loại: Tiến trình song song độc lập: tiến trình hoạt động song song khơng có quan hệ thơng tin với nhau, trường hợp hệ điều hành phải thiết lập chế bảo vệ liệu tiến trình, cấp phát tài nguyên cho tiến trình cách hợp lý Tiến trình song song có quan hệ thơng tin: trình hoạt động tiến trình thường trao đổi thông tin với nhau, số trường hợp tiến trình gởi thơng báo cần phải nhận tín hiệu từ tiến trình nhận để tiếp tục, điều dễ dẫn đến bế tắc tiến trình nhận tín hiệu khơng trạng thái nhận hay tiến trình gởi không trạng thái nhận thông báo trả lời Tiến trình song song phân cấp: Trong qua trình hoạt động tiến trình khởi tạo tiến trình khác hoạt động song song với nó, tiến trình khởi tạo gọi tiến trình cha, tiến trình tạo gọi tiến trình Trong mơ hình hệ điều hành An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thông phải giải vấn đề cấp phát tài nguyên cho tiến trình Tiến trình nhận tài nguyên đâu, từ tiến trình cha hay từ hệ thống Để giải vấn đề hệ điều hành đưa mơ hình quản lý tài ngun: Thứ nhất, mơ hình tập trung, mơ hình hệ điều hành chịu trách nhiệm phân phối tài nguyên cho tất tiến trình hệ thống Thứ hai, mơ hình phân tán, mơ hình hệ điều hành cho phép tiến trình nhận tài nguyên từ tiến trình cha, tức tiến trình khởi tạo có nhiệm vụ nhận tài nguyên từ hệ điều hành để cấp phát cho tiến trình mà tạo ra, có nhiệm vụ thu hồi lại tài nguyên cấp phát trả cho hệ điều hành trước kết thúc Tiến trình song song đồng mức: tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, tiến trình sau khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình Hồng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows Các tiến trình xuất hệ điều hành đơn nhiệm đa chương, hệ điều hành MS_DOS, loại tiến trình tồn nhiều hạn chế, điển hình không khai thác tối đa thời gian xử lý processor Các tiến trình song song xuất hệ điều hành đa nhiệm đa chương, hệ thống uniprocessor multiprocessor Nhưng song song thực, có hệ thống multiprocessor, hệ thống processor chịu trách nhiệm thực tiến trình Sự song song hệ thống uniprocessor song song giả, tiến trình song song hệ thống thực chất tiến trình thay sử dụng processor, tiến trình chạy dừng lại để nhường processor cho tiến trình khác chạy tiếp tục lại sau có processor Đây trường hợp mà ta cho rằng: điểm khởi tạo tiến trình nằm thân tiến trình khác Hình vẽ sau minh họa khác nhau, mặt thực hiện, tiến trình song song/ đồng thời hệ thống uniprocessor với tiến trình song song/ đồng thời hệ thống multiprocessor P1 P2 P3 Time a Trong hệ thống uniprocessor P1 P2 P3 Time b Trong hệ thống Multiprocessor Hình 2.1: Sự thực đồng thời tiến trình hệ thống uniprocessor (a) hệ thống multiprocessor (b) Đối với người sử dụng hệ thống có hai nhóm tiến trình Thứ nhất, tiến trình hệ điều hành Thứ hai, tiến trình chương trình người sử dụng Các tiến trình hệ điều hành hoạt động chế độ đặc quyền, nhờ mà truy xuất vào vùng liệu bảo vệ hệ thống Trong tiến trình chương trình người sử dụng hoạt động chế độ khơng đặc quyền, nên khơng thể truy xuất vào hệ thống, nhờ mà hệ điều hành bảo vệ Các tiến trình chương trình An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thơng 10 người sử dụng truy xuất vào hệ thống thơng qua tiến trình hệ điều hành cách thực lời gọi hệ thống 2.1.2 Mơ hình tiến trình: Đa số hệ điều hành muốn đưa đa chương, đa nhiệm vào hệ thống Tức là, hệ thống có nhiều chương trình hoạt động đồng thời (concurrence) với Về nguyên tắc, để thực điều hệ thống phải có nhiều processor, processor có nhiệm vụ thực chương trình, mong muốn hệ điều hành người sử dụng thực đa chương hệ thống có processor, thực tế xuất nhiều hệ điều hành thực điều này, hệ điều hành windows9x, windowsNT/2000 chạy máy tính cá nhân ví dụ Để thực điều hệ điều hành sử dụng mơ hình tiến trình để tạo song song giả hay tạo processor logic từ processor vật lý Các processor logic hoạt động song song với nhau, processor logic chịu trách nhiệm thực tiến trình Hồng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bộ môn mạng truyền thông 24 trường việc Sau bước mà hệ điều hành phải thực đầy đủ thay đổi trạng thái tiến trình:  Lưu (save) ngữ cảnh processor, bao gồm ghi đếm chương trình (PC: program counter) ghi khác  Cập nhật PCB tiến trình, cho phù hợp với trạng thái tiến trình, bao gồm trạng thái tiến trình, thơng tin tính tốn, vv  Di chuyển PCB tiến trình đến hàng đợi thích hợp, đế đáp ứng yêu cầu công tác điều phối tiến trình  Chọn tiến trình khác phép thực  Cập nhật PCB tiến trình vừa chọn thực trên, chủ yếu thay đổi trạng thái tiến trình đến trạng thái running  Cập nhật thông tin liên quan đến quản lý nhớ Bước phụ thuộc vào yêu cầu chuyển đổi địa nhớ sử dụng  Khôi phục (Restore) lại ngữ cảnh processor thay đổi giá trị đếm chương trình ghi khác cho phù hợp với tiến trình chọn trên, để tiến trình bắt đầu hoạt động Như vậy, hệ điều hành chuyển tiến trình từ trạng thái running (đang chạy) sang trạng thái (tạm dừng) hệ điều hành phải lưu trữ thông tin cần thiết, Program Count, để sau hệ điều hành cho tiến trình tiếp tục hoạt động trở (tái kích hoạt) lại Đồng thời hệ điều hành phải chọn tiến trình trạng thái ready tiến trình chạy (chuyển tiến trình sang trạng thái running) Tại đây, thao tác phải thực hiện, hệ điều hành phải thực việc thay đổi giá trị PC, thay đổi ngữ cảnh processor, để PC đến địa thị tiến trình running nhớ Đây chất việc thực tiến trình hệ thống uniprocessor 2.1.7 So sánh Quản lý tiến trình Windows với Linux Sau ta so sánh Hệ thống quản lý nhớ windows với Linux thơng qua tiêu chí sau: 2.1.7.1 Mức ưu tiên lập lịch (Scheduling) Tiêu chí độ ưu tiên lập lịch Windows với Linux:  Windows: Có chiến lược lập lịch:  Thời gian thực (Real Time) với độ ưu tiên từ 16-31  Dynamic: với độ ưu tiên từ 1-15 Mức ưu tiên cao chấp nhận:  Ưu tiên tiểu trình Dynamic hoạt động mạnh  Mức ưu tiên tiểu trình khơng hạ xuống  Linux: Có chiến lược lập lịch:  Normal với độ ưu tiên từ 100-139  Fixed Round Robin với độ ưu tiên từ 0-99  Fixed FIFO với độ ưu tiên từ 0-99 Mức ưu tiên thấp chấp nhận: Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 25  Mức ưu tiên Normal tăng lên (hạ xuống) sử dụng CPU  Ưu tiên tiểu trình tương tác hạ xuống (tăng) Hình ảnh so sánh: 2.1.7.2 Thơng tin chi tiết lập lịch: Bộ lập lịch Windows với Linux:  Linux: Hầu hết tất Tiểu trình sử dụng độ ưu tiên Dynamic  Chiến lược Normal tương tự chiến lược lập lịch cổ điển UNIX  Một tiểu trình tạo bắt đầu với mức ưu tiên sở  Tiểu trình bị block thường xuyên( I/O bị ràng buộc) tăng dần mức ưu tiên  Tiểu trình ln ln tạo (CPU bị ràng buộc) có ưu tiên giảm dần Giá trị tiêu chuẩn thiết lập cho Tiểu trình sở:  Giá trị lớn = mức ưu tiên thấp, Giá trị nhỏ = mức ưu tiên cao  Giá trị hợp lệ tiêu chuẩn khoảng -20 đến +20  Người sử dụng quyền rỏ giá trị tiêu chuẩn >0 Dynamic có mức ưu tiên tĩnh  Chỉ thực thi không chạy chế độ thời gian thực  Windows: Hầu hết tất Tiểu trình chạy mức độ ưu tiên thay đổi: An LUONG download : add luanvanchat@agmail.com LUAN VANHoàng CHAT Bộ môn mạng truyền thông 26  Mức ưu tiên 1-15  Một tiểu trình tạo bắt đầu với mức ưu tiên sở  Các tiểu trình hồn thành I/O hoạt động duyệt mức ưu tiên (nhưng không lớn 15)  Mức ưu tiên tiểu trình khơng thấp mức ưu tiên sở Windows API function SetThreadPriority() Sẽ thiết lập mức ưu tiên cho tiến trình cụ thể  Giá trị này, với mức ưu tiên Tiến trình Tiểu trình, xác định Mức ưu tiên sở cho tiểu trình  Windows tự động điều chỉnh cho tiểu trình khơng phải thời gian thực 2.1.7.3 Lập lịch thời gian thực: Lập lịch thời gian thực:  Windows: Windows hỗ trợ chiến lược lập lịch tĩnh round-robin cho tiểu trình với độ ưu tiên phạm vi thời gian thực (16-31)  Các tiểu trình chạy để tăng quantum lên  Quantum thiết lập lại đẩy đủ trước  Mức ưu tiên không tăng Các tiểu trình thời gian thực thiếu dịch vụ quan trọng hệ thống  Chẳng hạn csrss.exe  SeIncreaseBasePriorityPrivilege cần thiết để nâng cao ưu tiên tiểu trình vào phạm vi thời gian thực (đặc quyền giao cho thành viên nhóm quản trị) Hệ thống gọi xử lý DPC/APC gây đảo lộn mức ưu tiên  Linux: Linux hỗ trợ chiến lượng lập lịch tĩnh Roud-Robin FIFO  Round-robin FIFO : Được lựa chọn với lời gọi hệ thống sched setscheduler () Sử dụng giá trị ưu tiên tĩnh phạm vi đến 99 Thực theo thứ tự giảm ưu tiên tĩnh  Chiến lược FIFO cho phép Tiểu trình chạy để hồn thành Tiểu trình cần phải cho biết kết thúc cách gọi sched_yiedl()  Round-robin cho phép tiểu trình chạy lát cắt thời gian Sau chuyển sang Tiểu trình với ưu tiên tĩnh  Tiến trình thời gian thực dễ dàng bị thiếu chủ đề từ thực Đặc quyền root khả CAP-SYS-NICE cần thiết cho việc lựa chọn chiến lược lập lịch thời gian thực  Sau thời gian dài hệ thống gây đảo ngược độ ưu tiên tương tự Windows, cmp rtLinux 2.1.7.4 Lập lịch lát cắt thời gian  Windows: Tiểu trình lát cắt thời gian (quantum) 10ms-120ms  Khi quantum nhận giá trị Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 27 Reentrant and preemptible ( gọi lại lần gián đoạn chừng tiếp tục gián đoạn để gọi tiếp sau đó)  Linux: Quantum tiều trình từ 10ms-200ms  Mặc định 100ms  Thay đổi toàn phạm vi dựa độ ưu tiên dựa mức độ tương tác Reentrant and Preemptible 2.1.7.5 Kernel Retrancy Bài viết Mark Russinovich’s April 1999 tạp chí Windows NT , “Linux and the Enterprise”, nhiều điều Linux 2.2 không Reentrant Ingo Molnar phản bác: “ví dụ ơng ta khơng rõ ràng.” (“his example is a clear red herring.”) Một tháng sau Mark làm rõ điều 2.1.7.6 Kernel Preemptibility Một hạt nhân preemptible đáp ứng nhiệm vụ ưu tiên cao Thông qua việc phát hành sở v2.4 Linux hợp tác preemptible  Có xác định rõ nơi an toàn, nơi thread chạy hạt nhân preempted Hạt nhân preemptible phiên vá lỗi v2.4 phiên v2.6 An LUONG download : add luanvanchat@agmail.com LUAN VANHoàng CHAT Bộ môn mạng truyền thông 28 Windows NT luôn preemptible 2.1.7.7 Bộ lập lịch (Scheduling) The Linux 2.4 scheduler O(n)  Nếu có 10 task hoạt động, qt 10 sơ chúng danh sách để định bước thực  Có nghĩa quét dài cần thời gian dài để khóa lập lịch Linux 2.6 có cải tiến lập lịch O (1) từ Ingo Molnar:  Tính ưu tiên task vào thời điểm đó, để định cho lập lịch  Có CPU hàng đợi sẵn sàng để Task xếp theo độ ưu tiên Windows NT ln có lịch sở O(1) dựa xắp xếp vào hàng đợi 2.1.7.8 Đồng hóa Light-Weight Linux 2.6 giới thiệu Futexes  Chỉ chuyển sang kernel-mode có tranh chấp Windows ln ln có Đoạn găng (CriticalSections)  Cùng hành vi Futexes xa hơn:  Cho phép mức ưu tiên chờ đợi  Việc giải phóng tiến trình tốt 2.2 So sánh Hệ thống quản lý nhớ Windows với Linux Hệ thống quản lý nhớ (Memory Manager System)là phần cốt lõi quan trọng hệ điều hành Chức để quản lý hệ thống phân cấp nhớ RAM, đĩa cứng có sẵn máy tính Nhiệm vụ quan trọng cấp phát giải phóng nhớ để xử lý cẩn thận Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 29 cách logic, thực nhớ ảo cách sử dụng đĩa cứng thêm RAM Các hệ thống nhớ tối ưu hóa nhiều tốt, hiệu ảnh hưởng lớn đến hiệu suất tổng thể tốc độ hệ thống 2.2.1 Bộ nhớ ảo (Virtual Memory) Một khái niệm quan trọng bối cảnh hệ thống quản lý nhớ nhớ ảo Quay trở lại ngày đầu máy tính, nhà nghiên cứu cảm nhận yêu cầu nhớ ngày phát triển chương trình ứng dụng, đó, ý tưởng nhớ ảo sinh Ý tưởng để cung cấp chương trình ứng dụng ảo giác diện số lượng lớn nhớ có sẵn cho việc sử dụng Các hạt nhân cung cấp sở cách sử dụng vùng lưu trữ thứ cấp (những đĩa cứng) để thực yêu cầu thêm không gian cho nhớ Đối với hệ thống nhớ ảo để làm việc, chúng em yêu cầu số chức ánh xạ thực dịch địa chỉ, chuyển đổi địa ảo sang địa vật lý Các địa ảo địa mà ứng dụng sử dụng để vị trí nhớ, địa vật lý vị trí nhớ thực tế thơng qua bus nhớ Chức nói chung phân trang, Phân đoạn, hai (tùy thuộc vào hạt nhân, kiến trúc vi xử lý trạng thái nó.) 2.2.2 Phân trang (Paging) Không gian địa (cả ảo thực) chia thành trang có kích thước cố định Các trang dùng đặt địa điểm khác nhớ vật lý ổ đĩa cứng Dịch địa thực thực Memory Management Unit (MMU) xử lý cách sử dụng Trang Những trang nhớ ảo chiếm trang vật lý MMU chuyển đổi địa nhớ ảo sang địa vật lý bao gồm số khung trang offset trang Sự bảo vệ áp dụng trang theo trang Kể từ không gian địa ảo lớn so với nhớ vật lý, phải sử dụng đĩa cứng để lưu trữ trang mà trang khơng lưu trữ nhớ vật lý Liên kết với trang ảo bảng trang bit để biểu thị xem trang diện nhớ vật lý hay không Nếu trang khơng có nhớ vật lý, phần cứng tạo ngoại lệ lỗi trang Ngoại lệ xử lý phần mềm, yêu cầu trang quay lại từ đĩa cứng vào nhớ vật lý, khơng hợp lệ, tạo lỗi Theo Coffman Denning hệ thống phân trang có ba tiêu chí quan trọng:  Khi hệ thống tải trang vào nhớ?  Hệ thống đặt trang vào nhớ đâu?  Làm hệ thống lựa chọn trang phải loại bỏ từ nhớ trang khơng thể dùng cho yêu cầu đặt? An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thơng 30 2.2.3 So sánh Windows với Linux Sau ta so sánh Hệ thống quản lý nhớ windows với Linux thơng qua tiêu chí sau 2.2.3.1 Các điểm tương đồng hệ thống Quản lý nhớ Windows Linux Các hệ thống MM Windows Linux Windows phát triển chuỗi dài hệ thống hoạt động từ MSDOS Còn Linux phát triển hacker ban đầu thành lập Linux Torvalds Tất hai hệ thống có hệ thống MM đại, khơng có đáng ngạc nhiên chúng có nhiều điểm chung Các cấu trúc liệu tương tự, tính tương tự Một số tương đồng hệ thống liệt kê đây:  Lớp phần cứng trừu tượng (Hardware Abtraction Layer) : Tất OSE có lớp gọi lớp trừu tượng phần cứng (HAL) mà không phụ thuộc vào công việc hệ thống, cho phép phần cịn lại hạt nhân mã hóa kiểu tảng độc lập Điều giúp giảm bớt porting đến tảng khác  Copy-on-write: Khi trang chia sẻ, hệ thống sử dụng có trang với nhiều tiến trình chia sẻ trang Tuy nhiên, tiến trình thay đổi nội dung trang, tiến trình làm trang thay đổi copy trang dùng chung vùng nhớ riêng thao tác vùng nhớ đó, tiến trình cịn lại sử dụng trang nhớ cũ Điều cho hiệu tốt nhiều  Phân trang ẩn (Shadow Paging): Một đối tượng ẩn tạo cho đối tượng ban đầu, đối tượng ẩn có số trang sửa đổi từ đối tượng ẩn, có số trang thay đổi từ đối tượng ban đầu, chia sẻ phần lại trang với đối tượng ban đầu Chúng hình thành kết hành động Copy-On-Write  Deamon Background: Có tồn daemon gọi định kỳ thực nhiệm vụ tạo trang, giải phóng nhớ không sử dụng,…  Bộ nhớ ánh xạ tập tin (Memory mapped Files): Một tập tin ánh xạ vào nhớ, mà sau sử dụng với thị đọc/ghi nhớ đơn giản  Giao tiếp liên tiến trình (Inter-Process Communication): 2.2.3.2 Cấu trúc liệu để mô tả không gian tiến trình So sánh cấu trúc liệu hệ thống sử dụng để trì theo dõi nhớ ảo  Windows: Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 31 Cấu trúc liệu sử dụng Windows NT Thay danh sách liên kết, Hệ thống Windows NT giữ hình thức Mỗi nút gọi Virtual Address Descriptor (VAD) Mỗi VAD biểu thị loạt địa có tham số bảo vệ trạng thái ánh xạ thông tin Cây cân bằng, có nghĩa chiều sâu giữ mức tối thiểu Điều có nghĩa thời gian tìm kiếm việc tìm kiếm nút có chứa vị trí, tương đối thấp Các VAD đánh dấu nút trang ánh xạ, không sử dụng, dành riêng Ánh xạ sử dụng tức mã liệu ánh xạ vào Các nút đánh dấu khơng sử dụng, đánh dấu dành riêng trang không ánh xạ vùng dành riêng loại bỏ cách rõ ràng Vùng dành riêng sử dụng trường hợp đặc biệt, cho Ví dụ: nút dành riêng cho ngăn xếp Thread thread tạo Các liên kết đến thư mục gốc giữ Trình điều khiển block tiến trình (Process Control Block)  Linux: Linux thực cấu trúc nhớ liệu ảo cách tương tự UNIX Nó trì danh sách liên kết cấu trúc khu vực nhớ ảo Đây cấu trúc đại diện cho khu vực nhớ liên tục mà có thơng số bảo vệ,…Danh sách tìm kiếm trang tìm thấy bao gồm vùng cụ thể Cấu trúc ghi lại phạm vi ánh xạ địa chỉ, chế độ bảo vệ, cho dù gim nhớ ( trang), hướng (lên / xuống) phát triển Nó ghi lại vùng public hay private Nếu số lượng mục phát triển lớn so với số cụ thể, thường 32, danh sách liên kết chuyển đổi thành Điều tốt cách tiếp cận sử dụng cấu trúc tốt tình tốt 2.2.3.3 Sự Phân phối khơng gian địa tiến trình Tất ba hệ thống phân phối tiến trình khơng gian địa ảo dùng phương pháp tương tự Phần cao sử dụng nhân, tiến trình sử dụng phần thấp Phần nhân khơng gian tất tiến trình thường trỏ đến mã nhân Vì vậy, chuyển đổi tiến trình, cần phải chuyển đổi phần bảng trang, phần cũ Trong Linux, thường 3GB giữ cho tiến trình GB cho nhân, trong Windows 2GB lưu giữ cho phần 2.2.3.4 Thay trang (Page Replacement): Thay trang phần quan trọng hệ thống MM Về bản, Thay trang quan tâm việc lựa chọn trang để xuất trang - tức trao đổi khỏi nhớ, cần thiết nhiều nhớ trống phát sinh Các Thuật toán thay trang lý tưởng loại bỏ trang yêu cầu để truy cập thời gian xa Việc làm cho số lỗi trang xuất nhất, thời gian trao đổi bị lãng phí nhất, cải thiện hiệu suất tính An LUONG download : add luanvanchat@agmail.com LUAN VANHoàng CHAT 32 Bộ môn mạng truyền thông thông suốt hệ thống Nhưng khơng thể biết trang truy cập thời gian xa nhất, thuật toán thay thực  Windows Hệ thống sử dụng Windows trường hợp tinh vi phức tạp Windows sử dụng nhóm nhu cầu phân trang để lấy trang thuật toán đồng hồ cho việc thay trang Trong nhóm nhu cầu phân trang, trang đưa vào nhớ u cầu Ngồi ra, thay mang 1, Windows thường mang lại cụm từ 1-8 trang, tùy thuộc vào trạng thái hệ thống Hạt nhân nhận loại lỗi trang sau: The page referenced is not committed A protection violation has occurred A shared page has been written The stack needs to grow The page referenced is committed but not currently mapped in Hai lỗi lỗi khơng có khả thu hồi Lỗi thứ ba cho thấy nỗ lực thay đổi lên trang phép đọc Sao chép trang đến nơi khácvà tạo trang đọc/ghi Đây cách Copy-on-Write làm việc Lỗi thứ tư cần phải trả lời việc tìm kiếm trang thêm Điểm quan trọng Paging Windows System làm cho việc sử dụng nặng nề Working Set Tập trang làm việc (Working set) định nghĩa số lượng nhớ giao để xử lý, Working set bao gồm trang xuất nhớ Kích thước Working Set so le, khơng liên tục Vì vậy, khó khăn với Working Set giảm xuống Các thuật toán đồng hồ sử dụng Windows cục Khi lỗi trang xảy ra, lỗi làm việc tiến trình thiết lập mức tối thiểu, sau trang thêm vào Working Set cách đơn giản Mặt khác, Working Set cao mức tối thiểu, làm giảm kích thước Working Set Do thuật tốn tổng quát Tuy nhiên, hệ thống không làm tối ưu q tổng qt Ví dụ: làm tăng Working set tiến trình gây số lượng lớn lỗi trang, giảm Working set cho tiến trình khơng u cầu đủ nhớ Thay làm việc có lỗi trang, giống UNIX, Windows có tiến trình ngầm làm việc này, trường hợp Balance Set Manager Điều gọi giây, kiểm tra liệu có đủ nhớ trống Nếu khơng có, gọi Working Set Manager Working Set Manager trì để giữ cho nhớ trống vượt ngưỡng Nó kiểm tra Working Set tiến trình từ cũ lớn đến nhỏ Và tùy thuộc vào lỗi trang, mà làm tăng giảm chúng Nếu bit tham chiếu trang rõ ràng, truy cập liên kết với trang tăng lên Nếu bit tham chiếu thiết lập, tiến trình nhớ ảo thiết lập không Sau quét, trang truy cập cao loại bỏ từ Working Set Như vậy, khía cạnh tổng quát thuật tốn đồng hồ quy định Trình quản lý thiết làm việc Windows chia danh sách trang thành bốn danh sách: Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 33 Modified List: Các trang bị loại khỏi Working Set, cịn liên quan đến tiến trình gọi Standby List: Các trang bị loại khỏi Modified List, cịn liên quan đến tiến trình gọi nó, có vùng Paging File nhớ ngồi, xóa gốc RAM cần Free List: Các trang bị loại khỏi Standby List khơng cịn gắn với tiến trình Zeroed List: Các trang chuyển từ Free List ghi lại hoàn toàn mã Quá trình chuyển đổi danh sách xử lý Working Set Manager số tiến trình ngầm khác tiến trình swapper,  Linux Linux 2,2, Máy ảo Linux tập trung vào đơn giản mức thấp Do nguyên thủy có nhiều vấn đề, đặc biệt tải nặng Nó bị ảnh hưởng hệ thống V Tuy nhiên Riel [20] làm việc nhiều Máy ảo Linux cải thiện nhiều cho việc phát hành Linux (thảo luận ông với Linux sử dụng hệ thống nhu cầu phân trang phân trang trước Cho đến 2.2 phiên hạt nhân, Linux sử dụng thuật toán NRU để thay trang, thiếu sót thuật tốn, họ thay đổi thực tương tự LRU sử dụng 2,4 Sự lão hóa để có hiệu lực LRU mang lại cách tăng tuổi (một truy cập liên kết với trang) tham chiếu trình quét, giảm theo cấp số nhân (chia 2) khơng tìm thấy tham chiếu Phương pháp xấp xỉ LRU tốt Linux 2.4 phân chia trang ảo thành danh sách Active list Inactive-dirty list Inactive-clean list Free list Danh sách chứa trang chọn cho việc thu hồi Thông thường, trang hoạt động danh sách Tuy nhiên, theo thời gian, số trang khơng hoạt động, độ tuổi (age) chúng giảm dần xuống tới 0, lúc ứng cử viên cho việc thu hồi Trang chuyển từ danh sách vào danh sách Đối với Linux 2.4, kích thước danh sách không hoạt động thay đổi Bây hệ thống định có trang khơng hoạt động nên giữ nhớ cho trường hợp cụ Sự thống đệm cache nhớ cache trang cache hoàn thành 2,4 Một tối ưu hóa diện nhân Linux nhận liên tục I / O, nghĩa giảm ưu tiên trang "đằng sau" trang trở thành ứng cử viên thu hồi lại sớm Trang ngầm Linux “kswapd” kích hoạt định kì giảm dần biến đếm tuổi (age) trang, giải phóng nhớ khơng có hiệu lực Và flusing thực “bdflush” daemon, đánh thức định kỳ để điền trang bẩn vào đĩa Flusing lấy từ danh sách không hoạt động, An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thơng 34 khơng xảy kiểu đó, hệ thống chờ đợi thời điểm, nhóm sử dụng, đĩa đọc-viết giảm thiểu, tối ưu hóa flushing 2.2.3.5 Kết luận windows Linux Hai hệ thống có nguồn gốc từ tảng khác (Windows sản phẩm thương mại Linux sản phẩm hacker) Cả hai hệ điều hành đại sử dụng rộng rãi Chúng có nhiều điểm chung, có vài khác biệt, mặt cơng nghệ Windows, phát triển với động lực đồng tiền mạnh mẽ, trải qua nhiều nỗ lực thiết kế phát triển Và thiết kế thực cấp độ khác có xu hướng cho hiệu suất tốt Trong trường hợp Linux, tạo thường ưa thích đơn giản hiệu suất Vì vậy, Windows phát triển thành mã tinh vi phức tạp, UNIX đơn giản lịch đại Kết số Windows có nhiều tính khó để trì cải thiện từ cách nhìn nhà phát triển, Unix có tính dễ dàng để trì phát triển Tuy nhiên, người dùng cuối, Windows cho hiệu suất tốt bị lỗi Tuy nhiên nhiều nghiên cứu phát triển yêu cầu cho hệ thống mã nguồn mở, có phạm vi cho Tài liệu hệ điều hành mã nguồn mở FreeBSD Linux thiếu, đặc biệt cập nhật phạm vi rộng Có vẻ sau số tài liệu hoàn thành, phát triển nhanh chóng hệ thống hoạt động khiến chúng ngày bị lỗi thời Tỷ lệ phát triển hệ điều hành mã nguồn mở trì hàng trăm hàng ngàn hacker khắp giới Hệ thống mã nguồn mở mong đợi tương lai hoạt động trở nên ngang tốt so với dịch vụ thương mại CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 3.1 Phân tích chức năng: Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 35 Với yêu cầu xây dựng chương trình quản lý Ram CPU, chúng em xây dựng chương trình mơ theo Tab Peformance TaskManager Windows gồm chức sau: 3.1.1 Lấy thông tin nhớ RAM, CPU: 3.1.1.1 Thông tin hệ thống: Số Process, Số Handle, Số Thread, Commit, CPU Usage 3.1.1.2 Thông tin RAM: % RAM Free, % RAM Used, Total RAM 3.1.2 Hiển thị thông tin có 3.1.2.1 Biểu đồ cột CPU Usage Mơ tương tự TaskManager 3.1.2.2 Biểu đồ đường CPU Usage, RAM used Mô tương tự TaskManager 3.1.2.3 Biều đồ Chart 2D Ram used, free Thêm biểu đồ hình quạt 3D 3.1.3 Cách tính CPU Usage: Cách lấy CPU Usage:  Đã từ lâu nhiều người muốn lấy thông tin CPU Usage, tất giải pháp đưa khơng phù hợp tương thích với số phiên hệ điều hành ( nói riêng C++)  Vậy giải pháp đưa gì? GetSystemTimes() hàm hữu dụng để làm điều này, phù hợp với phiên hệ điều hành sau 3.1.3.1 Dùng hàmGetSystemTimes() Có đối số truyền vào hàm trả nội dung tham số đó:  idleTime: Thời gian nghỉ hệ thống  kerTime: Thời gian ánh xạ nhân  user: Thời gian hệ thống làm việc Lời gọi hàm: GetSystemTimes(&idleTime,&kerTime,&userTime)  Ta làm với thơng tin có này? usr = userTime - last_userTime; ker = kerTime - last_kernelTime; idle = idleTime - last_idleTime;  Ta có Kết sau : Thời gian làm việc hệ thống: sys = ker + usr Thời gian nghỉ hệ thống: res=idle  Ta sử dụng phép tính nhỏ sau để tính CPU Usage: cpuUsage = int( (sys - res) *100 / sys ); An LUONG download : add luanvanchat@agmail.com LUAN VANHoàng CHAT Bộ môn mạng truyền thông 36 3.2 Xây dựng chức 3.2.1 Lấy Thông tin RAM Xây dựng header MemoryManager có chức lấy thơng tin RAM, lớp có sử dụng hàm sau: 3.2.1.1 GlobalMemoryStatusEx(MEMORYSTATUSEX &);  MEMORYSTATUSEX cấu trúc window định nghĩa  Hàm có chức lấy thơng tin RAM 3.2.2 Lấy thông tin hệ thống Xây dựng header CPUManager có chức lấy thơng tin CPU, tính CPU usage, lớp có sử dụng hàm sau 3.2.2.1 GetPerformanceInfo(PERFORMANCEINFO&); PERFORMANCEINFO cấu trúc window định nghĩa Hàm có chức lấy thơng tin số process,handles,Threads 3.2.2.2 GetSystemTimes(); Hàm lấy thông tin CPU: Thời gian chạy, thời gian nghỉ, thời gian ánh xạ 3.2.3 Vẽ biểu đồ Xây dựng thêm header phụ sau: 3.2.3.1 Affine.h để trợ giúp vẽ biểu đồ 3.2.3.2 Draw.h vẽ loại biểu đồ CHƯƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 4.1 Môi trường triển khai Để đảm bảo tương tác tốt với hệ thống window nên chúng em dùng công cụ hỗ trợ Visual C++ để xây dựng chương trình 4.2 Kết chức chương trình Hồng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 37 Sau kết Demo chạy chương trình: 4.3 Đánh giá nhận xét Module quản lý bộnhớ phải tận dụng ưu/khuyết điểm loại nhớ máy tính để cung cấp cho người lập trình khơng gian làm việc thoả mãn nhiều u cầu tốt Bộ nhớ tài nguyên quan trọng hệ thống, thiết bị lưu trữ mà CPU truy xuất trực tiếp Các chương trình người sử dụng muốn thực CPU trước hết phải hệ điều hành nạp vào nhớ chính, chuyển đổi địa sử dụng chương trình thành địa mà CPU truy xuất Khi chương trình, tiến trình có u cầu nạp vào nhớ hệ điều hành phải cấp phát khơng gian nhớ cho Khi chương trình, tiến trình kết thúc hệ điều hành phải thu hồi lại không gian nhớ cấp phát cho chương trình, tiến trình trước Trong hệ thống đa chương hay đa tiến trình, nhớ tồn nhiều chương trình/ nhiều tiến trình, hệ điều hành phải thực nhiệm vụ bảo vệ vùng nhớ cấp phát cho chương trình/ tiến trình, tránh vi phạm vùng nhớ Tóm lại, phận quản lý nhớ hệ điều hành thực nhiệm vụ sau:  Cấp phát, thu hồi vùng nhớ  Ghi nhận trạng thái nhớ  Bảo vệ nhớ  Quyết định tiến trình nạp vào nhớ An LUONG download : add luanvanchat@agmail.com LUAN VANHồng CHAT Bộ mơn mạng truyền thông 38 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Những kết đạt được:  Xây dựng chương trình mơ theo tab Perfomance TaskManager  Tìm hiều MFC Application  Tìm hiều thư viện liên kết động DLL  Biết cách quản lý nhớ  Hiểu cách quản lý tiến trình Những mặt hạn chế:  Chương trình chưa xem Tiến trình chạy hệ thống 5.2 Hướng phát triển Xây dưng thêm chức xem theo dõi tiến trình chạy PHỤ LỤC Code:http://www.mediafire.com/?i7226jf85fgg28f Tài liệu tham khảo [1] Trần Hồ Thủy Tiên, Giáo trình nguyên lý hệ điều hành Đại học Bách Khoa đà nẵng 2009 [2] E G Coffman and P J Denning Operating Systems Theory Prentice Hall, 1973 [3] Mark Russinovich’s 1999 article, “Linux and the Enterprise”: http://www.winntmag.com/Articles/Index.cfm?ArticleID=5048 [4] Nguyễn Kim Tuấn, Giáo trình Nguyên Lý Hệ Điều Hành Đại học khoa học Huế Hoàng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... thống Quản lý nhớ (Memory Manager System) Quản lý tiến trình nói chung  So sánh Hệ thống quản lý nhớ, quản lý tiến trình hệ điều hành Windows với hệ điều hành Linux  Xây dựng chương trình quản lý. .. luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 11 Trong mơ hình tiến trình hệ điều hành chia chương trình thành nhiều tiến trình, khởi tạo đưa vào hệ thống nhiều tiến trình chương trình. .. lý Ram & CPU CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan tiến trình Hồng An LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng chương trình quản lý CPU nhớ RAM Windows 2.1.1 Tiến trình

Ngày đăng: 01/11/2022, 20:31

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w