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

Báo cáo thực nghiệm môn ktmt & hdh Đề tài quản lý bộ nhớ trong Ở trong hệ Điều hành windows

28 7 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Quản lý bộ nhớ trong ở trong hệ điều hành Windows
Tác giả Phạm Hải Công, Phạm Minh Công, Nguyễn Tiến Đạt, Nguyễn Đình Hội, Lê Thị Ngọc Lan
Người hướng dẫn Nguyễn Thanh Hải
Trường học Trường Đại học Công nghiệp Hà Nội, Khoa Công nghệ Thông tin
Chuyên ngành Công nghệ phần mềm và hệ điều hành
Thể loại Báo cáo thực nghiệm
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 2,17 MB

Nội dung

Trong báo cáo này sẽ giải thích tiến trình gán địa chỉcấp phátkhông gian nhớ cho các biến khi thực hiện một chương trình, các cấu trúc cơ bản của các chương trình phần mềm và các phương

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN _

Lê Thị Ngọc Lan

Giáo viên hướng dẫn: Nguyễn ThanhHải

Trang 2

Hà Nội, 2023

Trang 3

Bảng Phân Chia Nhiệm Vụ

memory) + kỹ thuật on-write + page faults

dẫn nhập & các khái niệm+ phần kết luận

Management + WindowMemory Protection + Cấutrúc đa bảng trang

Address Space + Phântrang

Mục Đích: Nắm vững kiến thức về Nguyên lý của việc quản lý Bộ nhớ trong(Cấu trúc chương trình, Sơ đồ tổ chức bộ nhớ trong …) từ đó gắn với HĐH Windows

Giảng viên hướng dẫn: Nguyễn Thanh Hải

Trang 4

MỤC LỤC

LỜI MỞ ĐẦU 2

PHẦN 1: DẪN NHẬP & KHÁI NIỆM 4

1.1 DẪN NHẬP 4

1.2 CÁC KHÁI NIỆM 4

PHẦN 2: HỆ THỐNG WINDOWS QUẢN LÝ BỘ LOGIC THEO CẤU TRÚC PHÂN TRANG (PAGING) 5

2.1 PHYSICAL STORAGE 5

2.2 VIRTUAL ADDRESS SPACE 6

2.3 PHÂN TRANG 8

2.4 WINDOWS PAGE TABLE MANAGEMENT 10

2.5 WINDOWS MEMORY PROTECTION 12

2.6 CẤU TRÚC ĐA BẢNG TRANG 12

PHẦN 3: QUẢN LÝ BỘ NHỚ ẢO (BỘ NHỚ LOGIC) 14

3.1 BỘ NHỚ ẢO (VIRTUAL MEMORY) 14

3.1.1 Quá trình ánh xạ từ bộ nhớ logic sang bộ nhớ vật lý diễn ra theo các bước sau 15

3.2 PAGE FAULTS 15

3.2.1 Page Faults là gì? 15

3.2.2 Lý do gây ra Page Faults 16

3.2.3 Các loại Page Faults có thể khắc phục 17

3.3 QUÁ TRÌNH DỊCH ĐỊA CHỈ ẢO : 18

3.4 KỸ THUẬT COPY-ON-WRITE 19

3.5 NHỮNG THÀNH PHẦN ĐƯỢC NẠP VÀO RAM: 19

3.6 PAGE FILE Ở ĐÂU 20

PHẦN 4: QUẢN LÝ BỘ NHỚ VẬT LÝ 21

4.1 PHÂN CHIA VÙNG TRONG RAM: 21

4.2 CÁCH THỨC CHUYỂN ĐỔI GIỮA CÁC VÙNG TRONG RAM: 21

4.3 CSDL VỀ KHUNG TRANG: 23

Trang 5

LỜI MỞ ĐẦU

Bộ nhớ máy tính là một thành phần quan trọng không thể thiếutrong mọi thiết bị điện tử Đây là nơi lưu trữ dữ liệu và chương trình củamáy tính Nó gồm 2 loại là bộ nhớ trong và bộ nhớ ngoài Trong quyển báocáo này, chúng em xin đề cập đến những nguyên lý của việc quản lý bộ nhớtrong của máy tính từ đó gắn vào hệ điều hành Windows

Bộ nhớ trong hay còn được gọi là bộ nhớ chính, được biết đến làmột thành phần vật lý khá quan trong nằm trong máy tính Nó giúp lưu trữ

và xử lý được tất cả các chương trình hay những ứng dụng đang hoạt độngtrên máy tính Bộ nhớ này không thể tách được ra khỏi máy tính Có thể dễdàng truy cập từ hệ thống mà không cần dùng đến bất cứ thiết bị đầu vàohay đầu ra nào Khi nhắc đến bộ nhớ trong, ta thường đề cập đến hai thànhphần chính của nó là RAM và ROM

Quản lý bộ nhớ trong: Nhiệm vụ của hệ điều hành là phải cấp phátkhông gian nhớ cho các chương trình hoạt động và thu hồi khi chương trìnhkết thúc Trong báo cáo này sẽ giải thích tiến trình gán địa chỉ(cấp phátkhông gian nhớ) cho các biến khi thực hiện một chương trình, các cấu trúc

cơ bản của các chương trình phần mềm và các phương pháp cấp phát bộnhớ của hệ điều hành Windows Nội dung cụ thể củ báo cáo sẽ gồm 5 phần:

lí bộ nhớ của hệ điều hành Windows Ngoài ra còn có thể biết được kháiniệm về bộ nhớ ảo và nguyên tắc hoạt động của nó

Trang 6

Cảm ơn thầy Nguyễn Thanh Hải- giáo viên đã hướng dẫn và cungcấp tài liệu và kiến thức để chúng em hoàn thiện bản báo cáo này! Bản báocáo còn nhiều thiếu sót nhưng chúng em rất mong nhận được những góp ý

từ thầy để sửa đổi

Một lần nữa chúng em xin chân thành cảm ơn thầy!

Trang 7

PHẦN 1: DẪN NHẬP & KHÁI NIỆM

hệ thống máy tính hiện đại Nó bao gồm một loạt các từ hoặc byte, mỗi cái

có địa chỉ riêng biệt để quản lý thông tin và dữ liệu của các tiến trình khácnhau

 Quản lý bộ nhớ là công việc của hệ điều hành với sự hỗ trợ củaphần cứng nhằm phân phối, sắp xếp các tiến trình trong bộ nhớ sao cho hiệuquả

 Mục tiêu cần đạt được là nạp càng nhiều tiến trình vào bộ nhớcàng tốt (gia tăng mức độ đa chương)

 Trong hầu hết các hệ thống, Kernel sẽ chiếm mốt phần cố địnhcủa bộ nhớ, phần còn lại phân phối cho các tiến trình (Kernel là một thànhphần quan trọng của hệ điều hành trong một máy tính Nó là phần cốt lõicủa hệ điều hành, chịu trách nhiệm quản lý tài nguyên hệ thống và cung cấpcác dịch vụ cơ bản cho các phần mềm ứng dụng và các phần khác của hệđiều hành.)

1.2 CÁC KHÁI NIỆM

 Địa chỉ logic, hay còn gọi là địa chỉ ảo ( Virtual Address ): là tất

cả các địa chỉ do bộ xử lý tạo ra Tập hợp tất cả các địa chỉ logic tạo nênkhông gian địa chỉ logic

Trang 8

 Địa chỉ vật lý, hay còn gọi là địa chỉ thực( Physical Address ): làđịa chỉ thực tế mà trình quản lý bộ nhớ nhìn thấy và thao tác Tập hợp tất cảcác địa chỉ vật lý tạo nên không gian địa chỉ vật lý.

 Paging & Page File: Paging là một kỹ thuật quan trọng được hệthống bộ nhớ ảo sử dụng để đảm bảo rằng dữ liệu mà chúng ta cần sẽ cótrong bộ nhớ một cách nhanh chóng và hiệu quả nhất Trong quá trình này,

hệ điều hành thực hiện việc sao chép một số trang nhất định từ thiết bị lưutrữ vào bộ nhớ chính

Khi một chương trình yêu cầu một trang mà hiện không tồn tạitrong bộ nhớ chính, hệ điều hành sẽ tiến hành sao chép trang đó từ thiết bịlưu trữ vào bộ nhớ và sau đó sao chép một trang khác từ bộ nhớ chính trởlại ổ đĩa Điều này giúp đảm bảo rằng dữ liệu cần thiết luôn sẵn sàng để sửdụng một cách hiệu quả

Page File, là một tập tin ẩn đặt trên ổ đĩa cứng, đó là phần quantrọng của hệ thống Windows được sử dụng như một bộ nhớ ảo.( Khi bộ nhớRAM đầy, hệ điều hành sẽ chuyển một số dữ liệu từ RAM sang page filetrên ổ đĩa cứng Điều này giúp giải phóng bộ nhớ RAM để sử dụng cho cácứng dụng và nhiệm vụ khác, trong khi đảm bảo rằng dữ liệu không bị mất.Khi cần, hệ thống có thể đọc lại dữ liệu từ page file vào RAM.)

PHẦN 2: HỆ THỐNG WINDOWS QUẢN LÝ BỘ LOGIC THEO CẤU TRÚC PHÂN TRANG (PAGING) 2.1 PHYSICAL STORAGE

Dung lượng bộ nhớ vật lý được hệ thống Windows hỗ trợ tối đakhoảng từ 2GB -> 24TB, tùy thuộc vào phiên bản của Windows

(Windows Sever 2016 hỗ trợ lên đến 24TB)

Trang 9

“working set”( sử dụng để phân bổ bộ nhớ cho các quá trình trong hệ điềuhành).

2.2 VIRTUAL ADDRESS SPACE

Mỗi tiến trình người dùng trên nền tảng Windows 32-bit được cấpphát một không gian địa chỉ ảo (Virtual Address Space) là 4 GB Còn ở nềntảng Windows 64-bit, mỗi tiến trình người dùng được cấp phát một khônggian địa chỉ ảo lên tới 128 TB Tất cả các tiểu trình (thread - luồng thực thiriêng lẻ) của một tiến trình có thể truy cập vào vùng địa chỉ ảo của chính

nó, tuy nhiên những tiểu trình đó lại không thể truy cập vào vùng địa chỉ ảothuộc về một tiến trình khác

Không gian địa chỉ ảo của một tiến trình là tập hợp tất cả các địachỉ bộ nhớ ảo mà nó có thể được sử dụng Các không gian bộ nhớ ảo nàyđược thiết lập riêng tư (private), và các tiến trình khác sẽ không thể đượctruy cập đến nó trừ khi nó được chia sẻ

Windows trên hệ thống 32 bit x86 systems có thể truy xuất (access)trên 4 Gigabytes bộ nhớ vật lý Do bởi thực tế bus address của bộ vi xử lý(tiến trình) là 32 lines hay 32 bits chỉ có thể truy xuất vùng address từ

Trang 10

0x00000000 đến 0xFFFFFFFF tức chỉ có 4GB 4 Gigabytes này được chia

ra làm hai phần:

 0->2 GB dưới: chứa dữ liệu và lệnh riêng của từng tiến trình.Vùng này hoạt động ở chế độ user-mode, người dùng chỉ thao tác được trênvùng 2GB này

 2->4 GB trên: chứa các thành phần dữ liệu thuộc về system(hệđiều hành hệ thống), được chia sẻ chung cho các tiến trình, hoạt động ở chế

độ kernel mode, vùng này do hệ điều hành quản lý, người dùng không thểtác động vào vùng này (không thể đọc và ghi được)

Hình minh hoạ: Không gian địa chỉ ảo được cấp phát cho 3 tiếntrình

Vậy Windows làm thế nào cấp phát vùng address 4GB cho nhiềutiến trình khi tổng bộ nhớ của nó có thể truy xuất cũng bị giới hạn bởi 4GB?

Để đạt được điều này, Windows dùng một đặc tính của x86 tiếntrình (386 trở lên) được biết đến là “phân trang” (paging) Paging cho phépphần mềm sử dụng một địa chỉ nhớ (được biết đến như logical address: địachỉ logic) khác với địa chỉ nhớ vật lý (physical memory address) Pagingchịu trách nhiệm chuyển đổi logical address thành physical address một

Trang 11

cách dễ dàng Điều này cho phép mọi tiến trình trong system có vùngaddress logical 4GB của chính nó Để hiểu điều này chi tiết hơn, chúng tahảy bắt đầu tìm hiểu cách paging trong môi trường làm việc của x86 Tiếntrình ở mục 3 kế tiếp.

là 1024x1024 các phần tử Chiều thứ nhất được biết đến như là PageDirectory và chiều thứ 2 được biết như Page Table Vì vậy chúng ta cần càiđặt một Page Directory với 1024 thành phần, mỗi thành phần point (trỏ đến)đến một Page Table Điều này cho phép chúng ta có 1024 Table Mỗi PageTable lại có 1024 thành phần, mỗi thành phần lại trỏ đến trang 4KB

Mỗi thành phần Page Directory Entry (PDE) có kích thước 4 bytes

và trỏ đến một Page Table Tương tự, mỗi Page Table Entry (PTE) có kíchthước 4 bytes và trỏ đến một physical address (địa chỉ vật lý) của trang4KB Để chứa 1024 PDE mà mỗi thành phần lại chứa 1024 PTE, chúng tacần tổng bộ nhớ là 4x1024x1024 bytes, có nghĩa là 4MB Vì vậy chia tòan

bộ 4GB vùng address cho trang 4KB, chúng ta cần 4MB vùng nhớ

Trang 12

Hình minh hoạ: Address Translation trong hệ thống phân trang Không gian địa chỉ ảo được Windows quản lý theo kiểu phân trang,kích thước mỗi trang 4kB = 212 byte; vì 4GB = 220 * 4kB => bộ nhớ ảo chứa

2 trang ảo Mỗi trang ảo có thể nằm ở một trong 3 trạng thái:

 Free: là trang chưa dùng để chứa dữ liệu và có thể được sử dụngbởi bất kỳ tiểu trình nào của tiến trình chứa nó, trang Free không được đưavào RAM Tham chiếu đến trang free gây ra lỗi (Page Fault), lỗi này không

xử lý được

 Committed: là trang đã được ánh xạ dữ liệu, đang nằm trên RAMhoặc vùng Paging File (Paging file là 1 vùng trên bộ nhớ ngoài được tổchức như RAM, cho cảm giác như RAM được mở rộng và được dùng đểchứa nội dung các trang bị đẩy ra từ RAM) Khi CPU gọi đến trangCommitted nếu trang đang ở vùng Paging File thì xuất hiện Page Fault,trang được đẩy vào RAM để hoạt động Còn nếu trang đang ở RAM thìkhông xuất hiện Page Fault

 Reserved: là trang hiện tại chưa có trong bộ nhớ vật lý, được đặttrước để chứa dữ liệu hoặc code Khi CPU gọi đến trang này thì xuất hiệnPage Fault Trang được xử lý để chuyển sang trạng thái committed

Ví dụ: Khi một tiểu trình được sinh ra, nó chỉ cần ngay 1 trangcommitted ở thời điểm hiện tại nhưng cũng có thể đặt trước đến 1MB cáctrang reserved liên tiếp ở ngay cạnh trang committed, để tiểu trình sử dụngsau này

Trang 13

Hình minh hoạ chuyển đổi trạng thái trang ảo bằng hàm API

2.4 WINDOWS PAGE TABLE MANAGEMENT

Trong Windows, mỗi tiến trình có Page Directory và Page Tablecủa chính nó Vì vậy Windows cấp 4MB của vùng nhớ này cho mỗi tiếntrình Khi một tiến trình được cài đặt, mỗi thành phần trong Page Directorychứa physical address (địa chỉ vật lý) của Page Table

Các thành phần trong Page Table hoặc là valid (hợp lệ) , hoặc làinvalid (không hợp lệ) Các thành phần valid chứa physical address của4KB page cấp cho tiến trình Một thành phần invalid (không hợp lệ) chứamột vài bits đặc biệt đánh dấu nó không hợp lệ và các thành phần này đượcbiết như Invalid PTEs (Page Table Entry) Khi memory được cấp cho tiếntrình, các thành phần trong Page Table được lắp các địa chỉ vật lý của cácpages đã cấp Ở đây là một tiến trình không biết bất kỳ điều gì về địa chỉ vật

lý và nó chỉ sử dụng địa chỉ logic mà thôi Chi tiết về việc địa chỉ logic nàotương ứng với địa chỉ vật lý nào được quản lý chuyển đổi bởi WindowsMemory Manager và Tiến trình (bộ vi xử lý)

Địa chỉ tại Page Directory nào đó của một tiến trình được định vịtrong bộ nhớ vật lý và được tham chiếu đến như là Page Directory Baseaddress Page Directory Base address này được chứa trong một thanh ghiđặc biệt của CPU là CR3 (trên nền x86) Để chuyển đổi ngữ cảnh khác,Windows tải một giá trị mới của CR3 để trỏ đến một Page Directory basemới của tiến trình Với cách này mỗi tiến trình sẽ lấy được các phần phânchia cả 4GB không gian địa chỉ vật lý của chính nó Tất nhiên, tổng dunglượng bộ nhớ cấp tại một thời điểm cho tất cả các tiến trình trong hệ thống

là không thể vượt quá số lượng RAM + kích thước pagefile nhưng theo

Trang 14

lược đồ đã thảo luận ở trên thì cho phép Windows cấp cho mỗi tiến trìnhvùng địa chỉ logic (hay Virtual: ảo) 4GB Chúng ta gọi nó là vùng địa chỉ

ảo (Virtual Address space) bởi vì ngay mỗi tiến trình có đến cả phạm vi là4GB address, nó chỉ có thể sử dụng bộ nhớ cấp cho nó Nếu một tiến trìnhthử truy xuất (access) một địa chỉ không được cấp phép, nó sẽ gây ra một sự

vi phạm truy xuất bởi vì PTE tương ứng với địa chỉ trỏ đến một giá trị kohợp lệ (invalid value)

Cũng vậy, tiến trình ko thể cấp bộ nhớ nhiều hơn những gì nó đượcphép trong hệ thống Phương thức tách riêng bộ nhớ logic từ bộ nhớ vật lýnày có nhiều thuận lợi Một tiến trình có được một vùng địa chỉ 4GB tuyếntính, do đó các lập trình viên ứng dụng ko còn phải lo lắng về các đoạn vàhoàn toàn không giống như những ngày tháng cũ làm việc với DOS Nócũng cho phép Windows chạy nhiều tiến trình cùng một lúc và cho phépchúng dung bộ nhớ vật lý trên máy tính mà không phải lo lắng chúng sẽ đèlên trên vùng không gian địa chỉ của tiến trình khác Một địa chỉ logic trongmột tiến trình sẽ không bao giờ trỏ đến một bộ nhớ vật lý được cấp cho tiếntrình khác (trừ khi chúng sử dụng phần nào để chia sẻ bộ nhớ) Vì vậy, mộttiến trình có thể không bao giờ đọc hay ghi vào bộ nhớ của tiến trình khác

Sự chuyển đổi từ logical address (địa chỉ logic) sang physicaladdress (địa chỉ vật lý) được thực hiện bởi bộ vi xử lý Một địa chỉ logic 32bit được chia thành 3 phần như hình dưới đây:

Vi xử lý sẽ tải địa chỉ vật lý của page directory lưu trữ trong CR3.Rồi nó được sử dụng 10 bits thấp từ địa chỉ logic như là một chỉ mục trongPage directory Tạo cho tiến trình một page directory entry (PDE) trỏ đếnmột Page Table 10 bits kế đến được sử dụng như một chỉ mục trong PageTable Sử dụng 10 bits này, nó lấy một page table entry (hay PTE) trỏ đếnmột trang vật lý 4KB 12 bits thấp nhất được sử dụng đánh địa chỉ các bytesriêng lẻ trên một trang (Giải thích rõ hơn ở mục 3.3)

Trang 15

2.5 WINDOWS MEMORY PROTECTION

Windows hổ trợ sự bảo vệ bộ nhớ cho tất cả các tiến trình mục đích

để một tiến trình không thể truy xuất một vùng bộ nhớ của tiến trình khác.điều này đảm bảo các họat động của nhiều tiến trình cùng lúc một cách trôichảy Windows đảm bảo chế độ bảo vệ này bằng cách theo các bước sau:

 Chỉ đặt địa chỉ vật lý của bộ nhớ được định vị trong PTE cho mộttiến trình Điều này đảm bảo rằng tiến trình bắt được một sự vi phạm truycập nếu nó thử truy xuất một địa chỉ mà không được định vị

 Một rouge process (tiến trình đang thực thi) có thể cố gắng thayđổi page tables của nó để nó có thể truy xuất bộ nhớ vật lý thuộc về mộttiến trình khác, điều này sẽ dẫn đến lỗi trang.Windows bảo vệ khỏi loại tấncông này bởi cơ chế cất giữ các page tables trong kernel address space

2.6 CẤU TRÚC ĐA BẢNG TRANG

Để tìm thông tin bên trong mỗi trang, PTE phân bổ một số bit địachỉ trang cho phần bù trang và sử dụng phần còn lại cho số trang thực tế.Với kích thước trang 4kB, chúng ta cần 12 bit để độ lệch trang tiếp cận toàn

bộ trang Điều đó để lại 20 bit cho các trang Với 20 bit có thể là 0 hoặc 1,chúng ta có 2 ^ 20 kết hợp Vì vậy, Điều này có nghĩa là chúng ta cần 2 ^

20 (xấp xỉ 1 triệu) PTE

Đối với mỗi PTE, chúng ta cần khoảng 4 byte Vì vậy, điều nàytính ra 1 triệu PTE nhân với 4 byte, tức là 4MB Mặc dù điều đó không tệlắm, nhưng vấn đề là mỗi chương trình cần bảng trang của nó Đối với một

hệ thống chạy 100 ứng dụng (điển hình trên các máy tính hiện đại), giá đỡnày lên đến 400MB Đây là một lượng bộ nhớ đáng kể để lưu trữ các bảngtrang và thông tin này không được hoán đổi vào đĩa Nó phải ở trong RAM

Để chống lại vấn đề này, các hệ thống kết hợp các bảng trang đacấp

Windows sử dụng hai cấp bảng trang: bảng trang cấp 1 (PT1-pagetable 1) và bảng trang cấp 2 (PT2-page table 2) để quản lý bộ nhớ nhằm

Ngày đăng: 28/10/2024, 11:42

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w