Quản lý bộ nhớ vật lý (cấp phát, thu hồi) là 1 vấn đề cực kì phức tạp trong hệ thống máy tính , để bảo đảm sự hiệu quả, đúng đắn, an toàn cho việc quản lý đó, hệ điều hành xây dựng lên các vùng nhớ ảoTrong hệ thống máy tính, bộ nhớ ảo (tiếng Anh: virtual memory) là một kĩ thuật cho phép một chương trình ứng dụng tưởng rằng mình đang có một dải bộ nhớ liên tục (một không gian địa chỉ), trong khi thực ra phần bộ nhớ này có thể bị phân mảnh...
Nội dung trích xuất từ tài liệu:
Bản chất con trỏ Chap I : Bộ nhớ Bộ nhớ vật lý Bộ nhớ ảoHình 1 chúng ta thấy những thứ được gọi là bộ nhớ, bộ nhớ vật lý, sở nắm nghịch thoải mái ý hơ hơ, cáinày là thiết bị bạn àHình 2 là mô hình bộ tổ chức bộ nhớ ảo mức khái niệmHình 3 là mình chụp lại các vùng của bộ nhớ ảo của 1 tiến trình quen thuộc UnikeyI. Bộ nhớ ảo là gì?Quản lý bộ nhớ vật lý (cấp phát, thu hồi) là 1 vấn đề cực kì phức tạp trong hệ thống máy tính , để bảođảm sự hiệu quả, đúng đắn, an toàn cho việc quản lý đó, hệ điều hành xây dựng lên các vùng nhớ ảoTrong hệ thống máy tính, bộ nhớ ảo (tiếng Anh: virtual memory) là một kĩ thuật cho phép một chương trìnhứng dụng tưởng rằng mình đang có một dải bộ nhớ liên tục (một không gian địa chỉ), trong khi thực ra phầnbộ nhớ này có thể bị phân mảnh trong bộ nhớ vật lý và thậm chí có thể được lưu trữ cả trong đĩa cứng. Sovới các hệ thống không dùng kĩ thuật bộ nhớ ảo, các hệ thống dùng kĩ thuật này cho phép việc lập trình cácứng dụng lớn được dễ dàng hơn và sử dụng bộ nhớ vật lý thực (ví dụ RAM) hiệu quả hơn.Lưu ý rằng khái niệm bộ nhớ ảo không chỉ có nghĩa sử dụng không gian đĩa để mở rộng kích thước bộnhớ vật lý - nghĩa là chỉ mở rộng hệ thống bộ nhớ để bao gồm cả đĩa cứng. Việc mở rộng bộ nhớ tới cácổ đĩa chỉ là một hệ quả thông thường của việc sử dụng các kĩ thuật bộ nhớ ảo. Trong khi đó, việc mở rộngnày có thể được thực hiện bằng các phương pháp khác như các kĩ thuật overlay hoặc chuyển toàn bộ cácchương trình cùng dữ liệu của chúng ra khỏi bộ nhớ khi các chương trình này không ở trạng thái hoạt động.Định nghĩa của bộ nhớ ảo có nền tảng là việc định nghĩa lại không gian địa chỉ bằng một dải liên tục cácđịa chỉ bộ nhớ ảo để đánh lừa các chương trình rằng chúng đang dùng các khối lớn các địa chỉ liên tục.(theo wiki)II. Địa chỉ ảo là gì?Trong cái vùng bộ nhớ ảo kia, để cho tiến trình dễ sử dụng, hệ điều hành dễ hiểu, 2 thằng này cùng nhauquy định rằng, chi nhỏ ra theo từng byte, và đánh số từ 1 đến hếtcái ô nhớ nào đó, đã được đánh số là i thì ta nói địa chỉ của cái ô nhớ đólà iok?!!!giả sử tôi có biến a khai báo như sauint a;và a nằm trong cái ô thứ 454321 tại cái vùng nhớ trên, vậy a có địa chỉ là 454321tiến trình hiểu là thế, còn hệ điều hành thì hiểu hơn 1 tí : à, cái địa chỉ này tương ứng với cái ô nhớ nàotrong thanh ram mà ta đang quản lý, he he he he he hethêm 1 tí nữa là : người ta ko dùng hệ thập phân (decimal, hệ đếm cơ số 10) để viết địa chỉ đâu, nên thui,chuyển qua hệ thập lục phân (hexadecimal , hệ đếm cơ số 16 nha )454321 hệ cơ số 10, chuyển lại thành 6E6E1 ở hệ cơ số 16ở trong C tôi viết là 0x6E6E1ở ngôn ngữ ASM tôi viết là 6E6E1h cao hơn)+ Ở trong windows 32bit thì ko gian địa chỉ ảo có địa chỉ từ 00000000h trải dài đến 7fffffffh+ Bạn cần hiểu nó chỉ là ảo, ko phải vùng nào cũng có bộ nhớ vật lý thật đâu nhá,+ Khái niệm về bộ nhớ phân đoạn : segment offset bạn hãy bỏ qua đi, vì nó quá cũ rồiIII. Ví dụ vui về địa chỉ ảođể làm ví dụ vui này bạn cần 2 cái đó là+ pokemon : http://forums.congdongcviet.com/atta...3&d=1282105506+ armoney active code là dot68 : http://forums.congdongcviet.com/atta...1&d=1282119896Khi chơi game, ta thấy điểm hiện lên trên màn hình, vậy thì chắc chắn nó sẽ được lưu trữ ở đâu đó trongbộ nhớ và sẽ có địa chỉ VA cụ thể. Dân lập trình chúng ta gọi chúng là biến, và có địa chỉ cụ thể, hj hjĐể thay đổi điểm từ phía app của mình, đầu tiên chúng ta phải tìm được địa chỉ VA của biến điểm này đãnhỉ.Để tìm được địa chỉ của biến này ko quá khó với 1 tool cơ bản như artmoney (Chưa có download ở đây,active code là dot68) :Bước 1Đầu tiên bật pikachu lên chơi lấy 20 điểm và bật artmoney lên,đầu tiên là chọn tiến trình, pikachu ở đây có cái tên là D4Srồi click vào Search lên 1 hộp thoạiBước 2click vào ... để chọn kiểu dữ liệu, mình hack nhiều lần rồi nên biết nó là kiểu float 4byte, nếu chưa hackbao giờ, các bạn có thể để ALL để tìm với mọi loại dữ liệuBước 3chúng ta sẽ thu được 1 loạt địa chỉ đang chứa giá trị 20, bây giờ chúng ta vào trong game để chơi cho điểmtrở thành 40 rồi vào artmoney, click vào nút Filter gõ giá trị mới là 40 rồi okBước 4Vậy là ta đã biết địa chỉ của biến điểm là 004B6088Các hình ảnh đã đính kèm memory.jpg (214.2 KB, 715 lần xem) Virtual memory.jpg (161.0 KB, 713 lần xem) bonho.jpg (163.7 KB, 710 lần xem) Chap III : Khai báoChà chà, dẫn nhập thật là dài dài, nhưng bạn ơi, hãy chắc chắn với tôi rằng bạn đã cảm thấy ok ở 2 chapđầu (xin đừng đọc lướt qua nó với vẻ thờ ơ) vì đó là tiền đề cực kì quan trọng để bạn có thể vượt qua khỏimức cơ bản sau nàyI. Cấu trúc khai báo kieudulieu *tenConTro;kiểu dữ liệu ở đây có thể là+ kiểu dữ liệu có sẵn (built-in data type ) : int , char , void , double , long , ......+ kiểu dữ liệu cấu trúc do ...
Bản chất con trỏ
Số trang: 19
Loại file: doc
Dung lượng: 125.50 KB
Lượt xem: 22
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tìm kiếm theo từ khóa liên quan:
Bộ nhớ ảo Cấu trúc khai báo Kiểu dữ liệu con trỏ phép toán trên con trỏ bộ nhớ độngTài liệu có liên quan:
-
Giáo trình Hệ điều hành: Phần 2
53 trang 257 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 166 0 0 -
Bài giảng Nguyên lý hệ điều hành: Chương 4 - ĐH Bách khoa Đà Nẵng
58 trang 106 0 0 -
Giáo trình Nguyên lý hệ điều hành: Phần 1 - Hồ Đắc Phương
133 trang 79 0 0 -
KIẾN TRÚC MÁY TÍNH: Bộ nhớ - phân cấp bộ nhớ
63 trang 58 0 0 -
137 trang 57 0 0
-
Windows Server 2003 (Tập 3): Phần 2
333 trang 52 0 0 -
Giáo trình Nguyên lý hệ điều hành - NXB Hà Nội: Phần 1
79 trang 50 0 0 -
Giáo trình môn học Hệ điều hành: Phần 2
125 trang 47 0 0 -
Bài giảng Kiến trúc của hệ vi xử lý
256 trang 47 0 0