Thumbnail for MainMemory by Lê Mạnh Hùng

MainMemory

Lê Mạnh Hùng

1h 35m21,072 words~106 min read
YouTube auto captions
Transcript source

YouTube auto captions

This transcript was extracted from YouTube's auto-generated caption track. The transcript below is server-rendered so it can be read, searched, cited, and shared without opening the original YouTube player.

Pull quotes
[0:00]Một đơn vị của nhớ chỉ thấy được một luồng rồi địa chỉ và yêu cầu đọc hoặc là địa chỉ rồi đến dữ liệu về yêu cầu ghi chẳng hạn.
[0:00]Vậy rồi à cập thanh ghi phải được thực hiện trong một cái sự nhì CPU à bộ nhớ chính thì chỉ có thể có thể mất nhiều cái chu kỳ để gây ra cái tình trạng dừng.
[0:00]Đó là sử dụng sử dụng cơ chế là sử dụng các cái cặp thanh ghi là base và limit để xác định phạm vi và không gian đĩa của một tiến trình.
[0:00]Chúng ta thấy trên hình này thì cái phần operating system này là của có thể hiểu là của hệ điều hành ha.
Use this transcript
Related transcript hubs

[0:00]Rồi chào các lớp nha mình đến với chương tính đây là những nội dung về việc quản lý nhớ của nh chính đây cái phần gọi là nhiệt tạng chúng ta cần phải biết đó là cái chương trình nó sẽ đây là thứ tự của chương trình á nó sẽ phải được đưa từ đĩa vào bộ nhớ và đặt trong một cái trình quy trình cụ thể nói để chạy bộ nhớ chính thì và các thanh ghi chỉ là cái à bộ nhớ chính và các thanh ghi là cái bộ nhớ mà có thể truy cập vào trực tiếp được đơn vị bộ nhớ Và chỉ thấy được một luồng thôi. Một đơn vị của nhớ chỉ thấy được một luồng rồi địa chỉ và yêu cầu đọc hoặc là địa chỉ rồi đến dữ liệu về yêu cầu ghi chẳng hạn. Vậy rồi à cập thanh ghi phải được thực hiện trong một cái sự nhì CPU à bộ nhớ chính thì chỉ có thể có thể mất nhiều cái chu kỳ để gây ra cái tình trạng dừng. Rồi bộ nhớ đệm thì nằm giữa bộ nhớ chính và các thanh ghi CPU. Cần phải bảo vệ bộ nhớ để đảm bảo cái tính hoạt động chính xác. Rồi đầu tiên chúng ta lấy cái phần bảo vệ. Th nhất á cái a ở đây thì tại sao cần phải bảo vệ bộ nhớ ví dụ trong đầu tiên này trong hệ điều hành đa nhiệm á thì nhiều tiến trình nó sẽ chạy cùng một lúc mỗi tiến trình thì cần một cái bộ nhớ về về một cái bộ nhớ riêng để lưu trữ dữ liệu và mã lệnh nếu không có cơ chế bảo vệ thì một tiến trình có thể vô tình hoặc cố ý tùy cập vào bộ nhớ của một cái tiến trình khác và hoặc là của ví dụ của hệ điều hành chẳng hạn dẫn đến lỗi dữ liệu và à có thể làm sọc cái hệ thống vậy rồi Về việc bảo vệ hệ thống thì nó sẽ thực hiện như thế nào? Đó là sử dụng sử dụng cơ chế là sử dụng các cái cặp thanh ghi là base và limit để xác định phạm vi và không gian đĩa của một tiến trình. Không gian a địa chỉ của tiến trình. Chúng ta thấy trên hình này thì cái phần operating system này là của có thể hiểu là của hệ điều hành ha. Một cái tiến trình nó sẽ là từ base đến base cộng limit thì nghĩa là sao? Một cái tiến trình nó sẽ chạy từ địa chỉ này đến cái địa chỉ phía sau. Chị tiếp theo đó là cái địa chỉ của một tiến trình nó sẽ sử dụng nó bảo vệ như thế này người ta nó sẽ sử dụng cái B và cái limit này để cho phép truy cập coi như là à một cái tính nó chỉ được truy cập trong cái giải địa chỉ ở trong khoảng đó thôi. Đó và chúng ta hiểu đơn giản là cái phần phần bảo vệ dữ liệu như vậy. Ok. Ví dụ như là [âm nhạc] à cái cái một cái tiến trình nó sẽ được truy cập à vào cái bộ chính ở đây là RAM á nó sẽ có địa chỉ truy cập từ 3000 30.000 và 300.000 đến 420.000. Đó về quá ở bên ngoài này thì sao? Ngoài cái vùng base ví dụ nhỏ hơn vùng base và lớn hơn vùng base limit này thì nó sẽ không cho phép đề cập à cơ chế bảo vệ. Rồi là cái bảo vệ địa chỉ phần cứng phân cứng nó sẽ bảo vệ như thế nào? Khi nhìn vào cái hình này ha thì chúng ta từng chúng ta sẽ hiểu cái cơ chế như thế này. Đầu tiên nó sẽ tạo một cái quy trình kiểm tra và CPU nó sẽ kiểm tra cái địa chỉ address nghĩa là address của cái cái cái địa chỉ của cái cái của bộ nhớ đó nó kiểm tra vào trong cái địa chỉ này nếu như mà address này lớn hồi bằng thì sao nó sẽ chuyển về Z đúng không? Còn nếu không nó thì đọc phải no đây. Và best limit nhỏ hơn và nhỏ hơn B limit thì đó thì nó chạy về Z cho phép truy cập vào cái memory. Ok rồi. Còn ngược lại thì nó trả phải lỗi. Rồi đó thì cái CPO nó sẽ kiểm kiểm tra mọi mọi cái truy cập bộ nhớ từ cái chế độ người dùng. Và để đảm bảo cái địa chỉ nằm trong cái phạm vi từ B đến B limit mà thôi. Kình kiểm tra là nó sẽ kiểm tra ra theo cái hướng như vậy. Ok. Rồi tiếp theo về cái add địa chỉ à bing liên kết địa chỉ thì trước hết á khi chúng ta viết một cái chương trình thì các lệnh về dữ liệu của chương trình đó sẽ được lưu chuyển trên đĩa cứng. đĩa chương trình có thể chạy được mà nó cần phải đưa cái bộ nhớ cái cái dữ liệu của cái chương trình này vào cái bộ nhớ chính ràm và để CV có thể truy cập vào lúc nãy chúng ta đã nhắc lại kiến thức cũ rồi ha thì C chỉ có thể truy cập được vào trong cái bộ nh chính và các cái thanh ghi ví dụ như test mà thôi đúng không thì CPU có thể truy cập và thực thi được thì phải đưa vào trong RAM đúng chưa và quá trình này giống như việc mà như các em lấy một cái trách từ tủ ở đây là đại diện cho địa cứng ra bàn học và ram ví ra bàn bàn học cái CPU là các em và các em sẽ đọc cuốn sách đó ở trên bàn học. Đó. Rồi ở đây á cái quá trình liên kết địa chỉ này ờ rồi cho nó ngắn gọn ha. À quá trình liên kết địa chỉ này là sẽ là một cái bước quan trọng để thực hiện một chương trình. địa chỉ của các thành phần trong chương trình phải cao có giai đoạn chuyển đổi. Đầu tiên chúng ta ví dụ như là thứ nhất là các cái chương trình trên đĩa thì sẽ thì nó nó sẽ tạo thành một cái hàng đợi đầu vào. Chúng ta tưởng tượng như là có một người đang chờ để được chập phim mỗi người mỗi người là một cái chương trình đang chờ để được các pháp một cái thẻ để ví dụ thẻ hoặc là một cái là coi như một cái bộ nhớ để bắt đầu chạy. này à thứ hai là nếu như có sự hỗ trợ độ động không không có một cái cái cơ chế nào không có cơ có một cơ chế đặc biệt nào thì chương trình đầu tiên thường sẽ phải được tải với cái địa chỉ đầu tiên của RAM đó là địa chỉ vật lý là từ 00 đúng không 00 nó là cái địa chỉ vị trí đầu tiên trong cái bộ nhớ rồi tuy nhiên á việc luôn gán địa chỉ vật lý đầu tiên cho một cái chương trình có thể gây ra nhiều cái sự bất tiện hay là lỗi có thể tạo ra lỗi rồi thử nghĩ nhá nếu Nếu như một chương trình lớn và nếu như muốn chạy nhiều chương trình cùng một lúc, tất nhiên là hệ thống thì luôn chạy multi nhiều chương trình của một lúc ha. Vậy thì cái việc mà làm sao để gắn cái địa chỉ đó vào cái cái ví dụ như gắn cái địa chỉ vào chỗ nào là cái cái cái làm sao để à ở đây cái câu hỏi về how can if not là tại sao nó không thể khác đi ở đây nghĩa là liệu cái nào linh hoạt hơn cho việc mà gắn cái địa chỉ thì bộ nhớ và không và chúng ta sẽ tìm hiểu về cái việc đó là làm sao để gắn những cái dữ hiệu của các cái chương trình khác nhau vào trong cái bộ trị vào và vào và cho phép truy cập là tải cái dữ liệu bộ nhớ của từ bên ngoài địa ứng vào trong RAM làm sao cho nó phù hợp và nó bị xảy ra những cái lỗi. Rồi à ở các cái phần tiếp theo ví dụ địa chỉ mã nguồn á thì là các địa chỉ tầng tưng thôi. Rồi địa chỉ trong mã biên dịch á thì sẽ được liên kết bing với các cái địa chỉ có thể di rời ở đây là relocal t address ạ. Rồi liên kết à trình liên kết linker hoặc là loader thì nó sẽ liên kết các địa chỉ có thể di rời này với các địa chỉ tuyệt đối. Đấy và cuối cùng mỗi quá trình liên kết sẽ ánh xạ một cái không gian địa chỉ sang một cái không gian địa chỉ khác. Ok chúng ta sẽ tìm hiểu dần qua các cái slide tiếp theo. Rồi thời điểm địa chỉ liên kết này đầu tiên một là thời điểm biên dịch. Tại cái thời điểm biên dịch á thì à à ví như dụ chúng ta đã biết chính xác cái vị trí bộ nhớ mà chương trình sẽ được tải vào và trình viên dịch có thể tạo ra mã tuyệt đối ở đây là absolute code. Điều này là nghĩa là các địa chỉ bộ nhớ đã được gán một cách cụ thể trong mã máy rồi. Rồi à sẽ thời điểm về cái lo time á thời điểm mà tải vào cái trái cái mã mà ch mã chương trình sẽ được tải à và à tải vào ví dụ như cái thời tại thời điểm này này nếu mà vị trí bộ nhớ mà chương trình sẽ được tải vào rồi hoặc và chưa được xác định tại thời điểm biên dịch ấy thì trình biên dịch sẽ tạo ra mã để có thể rời để có thể di rời cái cái cái những cái cái địa chỉ này những cái địa chỉ của cái bộ nhớ này trong cái loại mã này thì các địa chỉ bộ nhớ sẽ không phải là một cái địa chỉ tuyệt đối và các địa chỉ tương đối so với một thời điểm bắt đầu nà chương trình hoặc là một cái module. Đây à ví dụ ha. À khi mà chúng ta chỉ tưởng cho một người nào đó chẳng hạn thì à thay vì nói là rễ trái ở số nhà 100 đường ABC nào đó thì chúng ta sẽ nói là đi thẳng khoảng 500 m rồi rễ trái ở ngã tư tiếp theo thì cái 500 m ở đây là một cái địa chỉ tương đối. Đúng chưa? Còn cái địa chỉ tuyệt đối là cái rễ trái ở sổ nhàc. Và theo cái cái cái tại thời điểm lock time này á thì đến cái thời điểm chương trình được tải và nhớ thì hệ đầy quyết định địa chỉ bắt đầu cụ thể để cụ thể và cái tình nào để loser hoặc là cái cái cái tình tình tình nạp á tình nạp nó sẽ điều khiển tất cả các cái địa chỉ tương đối mà mã có thể di rời bằng cách mà cộng chúng địa chỉ bắt đầu để tạo ra cái địa chỉ tuyệt đối nó hơi hơi khó hiểu ha. Rồi thời điểm thực thi á đó là trong một vài trường hợp phức tạp rồi cái việc liên kết dữ liệu có thể bị trì hoãn cho đến tận thời điểm thực thi nghĩa là sao? Nghĩa là điều này thường à khi mà nó xảy ra với một cái thiến tình có sách có thể được di chuyển từ phân đoạn bộ nhớ này sang phân đoạn bộ nhớ khác trong quá trình chạy ờ thì mình có thể tưởng tượng như là một cái đoạn tàu đang di chuyển đường ray và tại một cái thời điểm nào đó thì đoàn tàu có thể chuyển từ một đường ray này qua một cái đường ray khác để tối ưu lộ trình hoặc là tránh tóc nhẽn và cái việc chuyển đường ray này thì tương ứng với việc di chuyển tiến tình trong bộ nhớ rồi ở đây để hỗ trợ cái việc di chuyển này thì chúng ta cần sự hỗ trợ của phần cứng cho việc cánh xạ địa chỉ address smart rồi à sử dụng các cái thanh ghi gốc như đây chúng ta hiểu rằng cái base hoặc là cái thanh ghi giới hạn và limit repe thanh ghi gốc này sẽ chứa các địa chỉ bắt đầu của phân đoạn bộ nhớ mà tiến trình đang sử dụng và cái thanh ni giới hạn sẽ xác định kích thước của phân đoạn nó giống như là cái base và prit này ha rồi tiếp theo à xử lý đây là quá trình chúng ta hiểu về quá trình xử lý nhiều bước của một cái chương trình đầu tiên là Cái a SH program là cái chương trình nguồn á có thể chương trình này có thể viết bằng nhiều loại mã C+ cộng gì đó vân vân ha. Mã nguồn này sẽ được đưa vào cái trình biên dịch đó là compiler đây ha. Rồi rồi tiếp theo là cái cầm à compiler cái cái chương trình compiler hoặc là thì nó gì? Chuyển đổi mã nguồn thành cái mã máy. Nó sẽ chuyển đổi cái mã nguồn thành cái mã máy hoặc là tạo ra những cái mã đối tượng object. Rồi và ở đây là cái gọi là thời gian comply time. Rồi phần tiếp theo cái object module là một cái module đối tượng mã máy sẽ được tạo ra bởi cái trình biên dịch. Đây tại thời điểm này nó sẽ tạo ra các cái đoạn mã máy và nó nhưng mà ở đây thì nó chưa chưa chạy trực tiếp được. phải có các cái module được liên kết với nhau và nó liên kết bằng cái link page linker linker page linker ở đây này mình gọi là cái gì nó liên kết các cái module này này order object module này này nó sẽ tạo liên kết với bộ liên kết của nó linker á thì các cái cái cái module những cái module này này nó tạo thành một cái thư viện hệ thống hoặc là một cái thư viện chia sẻ nào đó là tạo ra chương trình tạo ra một cái chương trình có thể thực. Rồi tiếp theo là đến cái phần à last module là bộ nạp chương trình được liên kết vào cái bộ nhớ chính để chuẩn bị thực hiện chương trình. Rồi có một cái nữa là liên kết động và thư viện liên kết động. Ở trong một số hệ thống á thì cái việc đây trong một số hệ thống á thì cái việc liên kết với thư viện có thể được tù hoãn đến tận thời điểm thực thi ở cái thời điểm thực thi ở dưới này thì đây gọi là một cái tình liên kết động. Khi mà chương trình cần sử dụng một hàm từ thư viện lên kết động thì đều hành sẽ tải cái thư thư viện đó vào cái bộ nhớ. và thực hiện các liên kết tại thời điểm chạy. Nghĩa là cái việc link cơ nó sẽ sẽ liên kết lại những cái liên kết cộng này tại cái thời điểm mà thực thi rồi phải tóm gọn lại tm tắt lại cái a nó sẽ gồm có ba đại dận bao đoạn chính của cái việc này nó đầu tiên là à gì à compiler nó sẽ dịch cái mã nguồn trong mã máy này rồi chuyển thành các cái mã đối tượng chuyển thành các đối tượng và tạo thành các cái thư viện thực thi này rồi load time là liên kết các cái đối tượng lại với nhau và tạo thành một cái chương trình thực Còn cái rương sam là sẽ tải chương trình vào bộ nhớ và thực hiện nó. Rồi không gian a tiếp theo là cái không gian địa chỉ và lộ địa chỉ logic và vật lý. Thì ở đây á cái a địa chỉ logic là cái gì? Là địa chỉ do nó gì nhỉ? Do CPU nó sẽ tạo ra hay còn gọi là địa chỉ ạo. Còn cái địa chỉ vật lý là địa chỉ thực tế mà đơn vị của nhớ có thể nhìn thấy. Chúng ta so sánh hai cái địa chỉ này thì địa chỉ logic và vật lý giống nhau trong cái việc liên trong cái liên kết tại thời điểm biên dịch. hoặc là cái thời điểm tài. Còn cái địa chỉ logic và vật lý nó khác nhau tại cái thời điểm thực thi rồi cái không gian địa chỉ á cái địa chỉ logic thì nó tập hợp tất cả các địa chỉ logic của một cái chương trình. Còn cái địa chỉ vật lý á thì nó sẽ tập hợp tất cả các địa chỉ vật lý. À à nghĩa là cái logic á là tập hợp tất cả cái địa chỉ logic của một chương trình. Còn cái vật lý thì nó tập hợp những cái địa chỉ vật lý. Ok. Rồi, ở đây chúng ta xem nào. Về ánh xạ. Ánh xạ thì sao? Nó sẽ liên kết đến cái thời điểm thực thi địa chỉ logic. Ví dụ ở đây bây giờ mình mình đưa ra một cái ví dụ này về địa chỉ logic á thì có thể là một cái chương trình nó có thể à nó nó nó nó nó một cái chương trình nó có thể nghĩ là cái cái CBO nó sẽ nghĩ là nó đang sử dụng một cái địa chỉ là 500 đi. Địa chỉ 500. Rồi còn cái địa chỉ vật lý ở đây là cái gì? Là cái địa chỉ thực tế trong bộ nhớ chính. Ví dụ như mình nghĩ là 500 thì nhưng mà trong cái địa chỉ bộ nhớ chính thì nó có thể lên thành 20.500 chẳng hạn. Đó và à việc ánh xã thì trong liên kết tại thời điểm thực thi á thì địa chỉ logic nó có thể được cộng với cái gì? Cộng thêm 20.000 và nó coi như chúng ta coi như là đánh xạ thành cái địa chỉ là 20.500 500 bởi cái a ở đây chúng ta gọi là cái m memory manager unit là MMU. Ok. Ờ chúng ta hiểu và tưởng tượng cái phân biệt cái cái cái địa chỉ logic và cái địa chỉ vật lý như thế này. Ví dụ như ở cả các cái khách sạn hoặc các chung cư nà chẳng chẳng hạn ở căn hộ đi thì à chúng ta thường nói căn hộ chúng ta là căn hộ số 500 chẳng hạn. Ok. Nhưng ban quản lý hay là cái địa chỉ thực tế thì nó có thể là à tòa nhà a phòng bao nhiêu? Phòng à 20.500. Đó thì đó là cái địa chỉ vật lý. Còn cái địa chỉ logic á thì nữa là chúng ta nói đơn giản là căn hộ số 500 hết. Còn cái hệ thống MMU ở đây là cái gì? Nó sẽ tự động ánh xạ hay là gọi là trên ban quản lý tòa nhà nó sẽ tự động ánh xả căn hộ 500 này thành cái phòng 20.500 để mà xác định đúng chỗ. Đó. Rồi rồi chúng ta đến với cái mu chi tiết thì cái MMU là gì? Đầu tiên á MMU là cái thiết bị phần cứng để mà ánh sả cái địa chỉ ảo. Ví dụ như là địa chỉ 5 thành cái địa chỉ vật lý là phical á tại cái thời điểm chạy nghĩ là sao? CO nó chỉ cần biết là địa chỉ nó có địa chỉ là bao nhiêu thôi. Ví dụ nó nó chỉ cần biết là địa chỉ có nó muốn truy cập vào cái địa chỉ bộ nhớ là 500. Còn cái MMU này nó sẽ phải tự động ánh xạ thành 20.500 đó. Rồi có nhiều phương pháp ví dụ như là nhiều cái phương pháp ánh chạ khác nhau và chúng ta sẽ học dần dần dần các cái phương pháp ánh sạ này. Rồi sơ đồ này là CBU nó sẽ gửi về một cái địa chỉ logic địa chỉ ảo vàu nó sẽ chuyển đổi cái địa chỉ ảo này thành cái địa chỉ vật lý để truy cập vào chính các cái vị trí bộ nhớ mà cái chương trình đang cần. Rồi rồi và về MMU tiếp theo ở đây à chúng ta sẽ xem xét một cái cơ chế đơn giản để thực hiện cái việc đánh xả giữa địa chỉ logic và địa chỉ vật lý à mình gọi là cái sơ đồ thanh ghi gốc là B register á và ừ đầu tiên á thì cái thanh ghi gốc ờ bây giờ mình mình gọi cái thanh ghi gốc là đ base best base best base register sẽ được gọi thành relocoal relocation register à đây cái base register nó giống như thế này đó ha base này b limit đó rồi chúng ta sẽ thay đổi cách gọi lại mặc dù cách gọi khác nhau mục tiêu mục đích các cái chức năng của nó thì giống nhau ha thứ hai giá trị trong thanh ghi định vị sẽ được cộng vào mọi địa chỉ được tạo ra bởi một cái tiến trình người dùng tại thời điểm mà nó được gửi đến bộ nhớ Rồi điểm thứ ba là chương trình người dùng chỉ làm việc với các địa chỉ logic nó không nó nó nó nó sẽ không bao giờ nhìn thấy các địa chỉ vật lý thực tế như là sao cái tiến trình nó sẽ chỉ làm việc với các cái cái cái địa chỉ vật lý à địa chỉ logic thôi hay gọi là địa chỉ ảo thôi. Còn cái địa chỉ vật lý thực tế thì là do MMU nó quy định và cái này cũng là một cái cơ chế để để để bảo vệ cái địa chỉ vật lý ha. Rồi lập trình viên thì không cần quan tâm đến cái việc chương trình nó sẽ được tải vào vị trí nào và họ chỉ cần quan tâm đến việc đó là không gian địa chỉ logic mà Cung cấp. Chỉ vậy thôi. Và công việc ánh xạ thì là do phần cứng và hệ điều hành lo hết rồi. Rồi cái việc liên kết địa chỉ tại thời điểm thực thi a xảy ra khi mà có một cái tham chiều đến một vị trí trong bộ nhớ. Điều này có nghĩa là chỉ khi mà CPU thực hiện thực sự cần truy cập vào bộ nhớ vào một cái địa chỉ ảo nào đó để đọc dữ liệu hoặc là thực thi một cái lệnh thì địa chỉ logic đó mới được ánh sả sang cái địa chỉ vật lý. Thế là sao? À bằng cách nó sẽ cộng cái giá trị ở trong thanh ghi định vị. Ở đây là cái cái cái relocation register và kết quả là địa chỉ logic được liên kết với địa chỉ vật lý. Rồi ví dụ đơn giản mà chúng ta à ví dụ như chương trình mà cái chương trình mà các em viết đi thì hệ điều hành cấp pháp một vùng nhớ bắt đầu từ cái địa chỉ là 20.000 này và cái 20.000 nó sẽ được lưu trong cái thanh vi định vị và cái thanh vi định vị này là cái gì? relocation register á và ví dụ như chương trình muốn chương trình các em muốn chạy vào cái việc truy cập một cái cái cái một cái vị trí ô nhớ là 50 chẳng hạn thì nó sẽ tạo thành là à CPU nó sẽ lấy cái cái phần 50 này và IMMU nó sẽ chuyển đổi cái địa chỉ 50 này bằng cách gì? Cộng với từ 20.000 cộng với 50 nữa thành 20.000 đó. Và nó sẽ quy truy cập vào cái bộ nhớ chính như vậy à. Ok ha. Rồi ở đây thì à chúng ta quay lại với cái phần lúc nãy này thì chúng ta thể hiểu rằng cái CPU á trong cái cái hình này đó là cái CPU á nó sẽ truy cập một cái điện muốn truy cập đến một cái địa chỉ là 346 và cái cái cái thanh ghi cái cái gọi là cái thanh ghi định vị á nó sẽ đang giữ một cái giá trị đó là 14.000 chẳng hạn. Và cái địa chỉ vật lý thực tế của môn truy cập và memory là gì? Là 14.346. Đó, đó là nội dung của cái v à đơn giản nó là nó sẽ mọi thứ nó sẽ được ghi vào một cái trong trong một cái thành ghi định vị. Còn à CPU thì chỉ làm việc với các cái a cái cái cái địa chỉ logic và MMU nó sẽ truy cập à cái đánh xả cái các cái địa chỉ logic này thành các địa chỉ vật lý và truy cập vào cái phần à memory bằng cách cái gì? Bằng cách sử dụng cái relocation register. Ok ha. Ừ. Tiếp theo chúng ta đến cái gọi là dynamic loading gọi là tải động đi. Thì à đầu tiên á thì gọi là không phải tất cả các toàn bộ cái nội dung toàn bộ cái chương trình đi có thể là những cái chương trình lớn thì tất không phải tất cả mọi thứ đều được load vào cái bộ nhớ ngay từ đầu thấy chưa? Và nó chỉ ví dụ như khi nào mà cần đến đoạn đoạn một cái đoạn mã nào đó thì hệ thống nó mới nạp cái đoạn mã đó vào trong bộ nhớ và xử lý thôi. Thì trước kia thầy đã ví dụ rồi ha thì có thể là những cái trò chơi của các em đi nó có một cái dung lượng yêu cầu rất là lớn và RAM không thể nào lưu trữ được toàn bộ tất cả các chương trình trò chơi đó trong RAM được. Nó còn phải nhường chỗ cho cái hệ điều hành hoặc là những cái cái cái những cái chương trình khác. thì cái việc mà không tải toàn bộ chương trình và cái việc lúc nào cần thì mới gọi đến này thì nó sẽ làm tăng cái hiệu quả sử dụng cho toàn bộ nhớ và chúng ta có thể hiểu rằng có những cái đoạn mã mà nó sẽ không bao giờ được gọi tới và nó sẽ không bị chiếm không bao giờ chiếm chỗ trong cái ram cả tất cả các đoạn mã sẽ được lưu giữ dưới dạng có thể được tải được đó vậy nó sẽ hữu ích trong các cái chương trình lớn có nhiều chức năng nhưng mà hiếm khi dùng tới không cần ví dụ như Trong một cái ứng dụng nào đó thì có những cái tính năng nâng cao mà người dùng hiếm khi sử dụng đến. Ví dụ như cái tính năng trả tiền. Ok. Mỗi lần dùng thì mỗi lần trả tiền. Đó thì chúng ta sẽ hiểu rằng là những cái tính năng nó hiếm khi chúng ta dùng đến thì nó sẽ không được lát vào trong cái cái cái cái bụ nhớ chính để thực phi. Và nó không cần có một cái sự hỗ trợ đặc biệt nào từ hệ điều hành cả. Và tình viên thì hoàn toàn có thể thiết kế chương trình để tự kiểm tra và nạp các đoạn mã nào khi nạp thật. Ví dụ đối với các cái hàm thư viện ví dụ các em viết với C chẳng hạn đi một cái một cái chức năng nào đó thì các em sẽ gọi đến những cái thư viện nào và lúc nào đó thì khi nào đọc đến chạy hoặc là combine những cái cái cái đoạn mã đó thì cái cái cái hệ thống nó mới gọi đến các cái thư viện đó ha. Rồi về dynamic link đó là liên kết động nó tải động rồi bây giờ mình liên kết động ha. Thì liên kết động là cái gì? Là cái cái chúng ta đầu tiên chúng ta cho khánh trước. Tên hiểu cái liên kết tĩnh này. Static link là thư cái static link này là một cái thư viện mà và những cái mã chương trình sẽ được liên kết cố định trong file chương trình trước khi chạy. Nghĩa là trước khi chạy cái file XE này thì mọi những cái cái cái thư viện hoặc là cái đoạn mã nó cố định đã được tất cả nó sẽ được tạo trong một cái file file SE hết. Và khi nhược điểm của cái static linking này đó là tất cả mọi thứ sẽ được nạp vào dẫn đến là chương trình nó sẽ lớn. nhiều bản sao thư viện giống nhau hay là cái lãng tí thành nguyên. Còn cái dynamic link thì rằng việc liên kết thư viện chỉ được nó sẽ được hóa lại đến khi chừng chương trình được chạy. Ok. Và cái gì? Một cái một cái đ phần nhỏ của code thì nó sẽ được lưu vào trong cái mã tạo là cái sub á và dự chỗ cho các cái hàm của thư viện. Và khi mà chương trình chạy đến thì sub sẽ tìm và gọi các cái hàm tương ứng trong thư viện hệ thống. Rồi đối với các cái hệ điều hành xử lý thông minh thì nếu như thư viện mà chưa có trong bộ nhớ thì nó sẽ tải vào. Còn nếu như đã có sẵn rồi thì nó sẽ tạo thành một cái chương trình nhều chung. Vậy là sao? Ví dụ như chương trình A đã gọi đến cái thư viện đó rồi thì khi mà chạy đến chương trình B thì nó gọi là đã có sẵn ở trong RAM rồi nó sẽ không gọi vào nữa. Vậy thì sao? Nó sẽ tiết kiệm được bộ nhớ. Đó đó là cái phương pháp tiết kiệm bộ nhớ của RAM. Và mình dùng cái dynamic link. Ok. và các cái ứng dụng nó sẽ tạo nên một cái gọi là nhanh hơn đối với cái việc chung này. Rồi tiếp theo là phân bổ. Đây là phân bổ liên tiếp. Chúng ta có thể hiểu rằng là cái phân bổ này là phân bổ cái gì? Phân bổ cái dữ liệu nha. Phân bổ cái cái cái cái không phải dữ liệu mà là phân bộ nhớ của cái các cái hệ điều hành và các chương lịch người dùng. Về đầu tiên á bộ nhớ chính thì ví dụ RAM đi các em hiểu rằng RAM và cái đơn giản hiệu điều hành là cũng là một cái chương trình như vậy RAM nó sẽ cũng phải dành một cái cái phần ô nhớ một cái phần bộ nhớ của nó để chứa cái cái chương trình của hệ điều hành và cái bộ nhớ chính phải chứa toàn bộ cả hệ điều hành lẫn tất cả các cái chương trình con ví dụ giống như một cái tòa nhà đ chẳng hạn coi như là một cái tòa nhà đi thì cái hệ điều hành sẽ là cái gì là là là cái khu vực quản lý còn các cái chương trình dùng chung đó là các cái căn hộ cư dân. Ok. Rồi cái bộ nhớ là một cái tài nguyên có hạn cho nên chúng ta cần phải sử dụng nó một cách hiệu quả làm sao giống như làm sao để sử dụng hiệu quả thì cũng giống như diện tích tòa nhà có hạn thì chúng ta cần phải sắp xếp căn hộ khu vực quản lý sao cho nó hợp lý và tránh lại tí không gian đúng không? Rồi tất nhiên hiện tại bây giờ thì nhà này có nhiều tiền thì nhà đó có diện tích lớn thế thôi đúng không? Nhưng mà cái thực tế thì chúng ta phải sắp xếp lại những cái chương trình này. Rồi cấp pháp liên tục là một trong những cái phương pháp quản lý bộ nhớ đầy đầu. Ừ đầu tiên thì mình sẽ gọi là cấp phát liên tục đi với cách tiếp cận á là nó sẽ sắp xếp các chương trình và cái sắp xếp tất cả các chương trình và bộ nhợ và nó sẽ sẽ sẽ dùng đầu tiên là cái cái bộ nhớ chính sẽ luôn luôn được chia thành hai phần chính phần bộ nhớ thấp là chứa hệ điều hành và bảng ngắt. Ok nghĩa là phải có một cái phần phần phần kính này phần phần bộ nhớ thấp đó thì là luôn luôn ch điều hành. và các cái bảng ngắt interprot. Rồi phần bộ nhớ cao thì dành cho các chương trình người dùng ở đây ví dụ như là hình dung là ở một cái tòa nhà thì cái tầng một tầng trên tầng hầm sẽ dùng cho hệ cho cho hệ điều hành. Còn cái phần trên đó là dùng cho những cái tư dân. Ok. Và mỗi chương trình sẽ được chớ trong một cái vùng bộ nhớ liền kề. Ví dụ như chương trình đầu tiên cho vào căn hộ A, chương trình thứ hai cho căn hộ B kiểu vậy ha. Đó và đây là cái phân bổ liên tiếp nghĩ là cứ thế là cho vào thôi và nó liên kề với nhau trong một tòa nhà không bị ngắt quãng nó không bị ngoặt quãng gì cả. Ờ về ví dụ như một gia đình có thể có nhiều thành viên đi thì có thể ví dụ một ở đây chúng ta có thể hiểu là một cái chương trình đi một chương trình lớn thì nó có thể chiếm hai hoặc ba căn hộ đó. Và các cái cái cái chương trình này nó sẽ không không bị ngất quãng. Ví dụ như là một cái chương trình A thì nó sẽ chiếm liên tục một cái dãy cái dãy ba căn hộ liền kề với nhau và nó không bị ngắt quãng bởi một cái cái cái cái chương trình một cái tiến một cái phần bộ nhớ cho một cái nào khác cả một căn hộ nào khác ở giữa hết. Rồi về cái a cái cái cái sử dụng các cái thanh vị nó sẽ sử dụng các cái thanh vị định vị để đảm bảo cái tiến trình của người dùng. nó không gọi là mỗi một tiến trình thì nó sẽ cách biệt khỏi nhau và đảm bảo cái phần dữ liệu nó sẽ được ờ tách biệt và bảo vệ. Kiểu như là nó sẽ sử dụng cái gì? Cái thanh các cái thanh ghi cơ sở là B reler và thanh ghi giới hạn như lúc đầu mà các em đã hình dung ấy. Tiếp theo cái mu nó sẽ là cái đơn vị quản lý và ánh sạn bộ nhớ một cách rồi là sao? Ví dụ như dùng như thế nào đó thì nó sẽ sử dụng một cái thanh ghi đúng chưa? Và cứ thế nó nạp vào cái cái phần vùng mà đã được vùng bộ nhớ của cái chương trình mà đã được định vị rồi. Đó. Tiếp theo nữa là cái phép các hành động như mã canel trở thành một cái mã canel thành tạm thời và thay đổi kích thước. Ở đây canal là gì? Hệ điều hành đúng không? Thì hệ điều hành thì nó sẽ làm sao? Nó sẽ quản lý bộ nhớ kinh hoàn. Một số cái thành phần của hệ điều hành có thể không cần thiết trong một khoản trà nào đó. Ví dụ như là gì? những cái cái phần chương trình mà ta có thể hiểu ra là đối với một những cái máy mà không bao giờ sử dụng cái máy ít chẳng hạn thì sao? Nó có thể loại nó có thể nó có thể thể gọi là ừ gọi là cái phần phần à cái phần dữ liệu của cái hệ đội hành này này nó sẽ sẽ có thể tuyển đi khỏi cái bộ nhớ khi công không được chục và nhường chỗ cho các cái chương trình đó. Và chúng ta có thể hiểu là nó cái phần kích thước của hệ đ hành có thể được điều chỉnh lại theo nhu cầu giữ RAM thấp. Như chúng ta thấy rằng à tại sao mà à đối với những cái hệ thống mà RAM có 4 GB thôi nhưng mà cài tài Win 64 bit chẳng hạn thì chư khi mà load lên thì nó chiếm dụng mất một nửa đúng không? Nhưng mà với những cái ngệ 8 GB chẳng hạn thì khi mà khởi động máy lên không thôi thì nó cũng đã chiếm hết tầm khoảng 3 GB RAM. tại sao lại có cái trường hợp đó là cùng một cái hệ điều hành nhưng mà nó lại chỉ chiếm dụng 2 GB RAM cho hệ điều hành. Lúc thì chiếm dụng 2 GB RAM, lúc thì chiếm dụng 3 GB RAM. Đó là ý nghĩa ở đây ha. Ok. Rồi ở đây chúng ta cá đến cái cái cái phần cứng nó sẽ hỗ trợ như thế nào thì ngược lại với cái phần lúc nãy thì chúng ta ở đây CPU nó cũng sẽ là ghi ra cái quan tâm đến cái phần địa chỉ local logic chỉ ảo nhưng mà đầu tiên nó sẽ truy cập vào cái là so sánh nó có nhỏ hơn cái limit không. Thứ nhất là nó nó có nhỏ hơn cái đi cái cái thanh ghi limit hay không? Mà nếu mà nhỏ hơn thì sao? Cái nó sẽ sử dụng đến cái gì? Cái relocal relocation á là cái gì? Thanh ghi giới hạn thanh ghi định vị nó sẽ cộng vào cộng vào cái địa chỉ vật lý và coi như là cái nó sẽ sử dụng cái này để ánh xả nó. Đúng chưa? Đó ha. Và truy cập vào cái memory. Rồi tiếp theo phân vùng động. Phân vùng động là gì? là thứ nhất á là nó sẽ âm vùng động một cái phương pháp quản lý bộ nhớ linh hoạt hơn so với v cấp pháp liên tục như chúng ta thấy lúc nãy á. Bây giờ ví dụ như cái phần các pháp liên tục đi thì các em có thể hiểu rằng là ừ xem nào. Coi như là bã gửi xe đi. Việc cấp phát liên tục á coi như cái bã gửi xe đi. Nếu như vào trong xe ví dụ các cái xe nhỏ đây chẳng hạn thì mỗi xe nó chiếm một ô một cái ô nhớ coi như là mỗi một cái xe xe vào cái bãi xe đó nó sẽ chiếm một cái ô nhớ việc cấp phát liên tục nha. Thầy ví dụ về cái tắt liên tục. Đấy còn những cái xe tải lớn chẳng hạn thì sao? Nó sẽ có thể một lần nó chiếm đến năm bộ nhớ chẳng hạn. Ví dụ xe container chẳng hạn, một lần nó chiếm đến năm bộ nhớ. Ok. Vậy trong cái xe tải ví dụ như ở cái ô có ba xe nhỏ và nó có năm à có có tám hô nhớ đi nhưng có ba có ba xe nhỏ nó vào nếu như ba xe nhỏ đó xếp thứ tự với nhau thì sao? Từ 1 2 3 ok thì có một cái container nó vào chẳng hạn nó cần n mô nhớ. Thì nếu như mà ba cái xe kia nó xếp thứ tự thì container này nó đủ. Nhưng mà lỡ như cái ba cái xe nhỏ mà nó lại xếp thứ tự là 1 2 4 chẳng hạn thì cái container không xếp vào được nữa. Đó đó là cái hạn chế của cái phân vùng à mà cấp phát kêu. Còn ở đây bây giờ mình sẽ truy cập vào cái gọi là phân vùng động thì nghĩa là như thế nào? Phân vùng động nó là cái phương pháp quản lý bộ nhớ linh hoạt hơn cái việc cấp phát liên tục. Thay vì nó chia bộ nhớ thành các cái phân vùng cố định thì các cái phân vùng động à à nó sẽ cho phép các cái phân vùng ô nhớ có kích thước thay đổi phù hợp với nhu cầu thực tế. Đó cho này nó sẽ giúp tối ưu hóa cái bộ nhớ và tránh giảm kỹ không gian không cần thiết. Tuy nhiên á về quản lý cái phân vùng động này cũng phức tạp hơn. À việc đầu tiên à việc cấp phát cái phân vùng à ví dụ như ở đây này phân vùng động là một cái nó nó sẽ phân cái ô nhớ này thành nhiều vùng mỗi vùng có thể có kích thước khác nhau hình ảnh ha chúng ta nhìn hình ảnh này ở đây là các cái process này process 5 process 8 process 2 mỗi một cái phân vùng này có một cái cái cái kích thước khác nhau ha rồi À và cái kích thước của các phân vùng này là linh hoàn thì như lúc nãy á ở trong cái phân vùng liền kề á thì nó sẽ chia thành các cái ô nhớ. Ô nhớ ở đây như là một cái căn hộ ở trong a và cái mỗi một cái chương trình nó sẽ chiếm một căn hộ hoặc là nhiều căn hộ. Và ví dụ như nó chiếm có một cái tiến trình mà nó chiếm đến ba căn hộ nhưng mà thực tế nó chỉ dùng đến hai thôi thì nó sẽ dư. Đó nó tạo ra cái d như như một cái căn hộ dư phần vật lý. Còn cái a phần vùng động này thì sao? nó sẽ cấp phát theo theo theo theo theo theo à kích thước cái phần vùng này nó sẽ linh hoạt hơn. Mỗi phần vùng sẽ được xác định dựa trên một cái yêu cầu của nhớ của tiến tình khi được cấp phát. Tuy nhiên cái sự gọi là xuất hiện của cái hư đấy là cái gì? Lỗ hổng của cái tiến tình được cấp phát và phóng bộ nhớ. Các vùng bộ nhớ trống lỗ hổng v kích thước khác nhau sẽ xuất hiện trong quá trình à giải tác trong bộ nhớ. Thì chúng ta hiểu rằng là sao? Ví dụ đầu tiên này cái phần OS và cái phần tiến trình đầu tiên á là cái ví dụ thằng Process 5 tiếp theo là process 8. À đầu tiên thì process 8 nó đang đang thực thi sau đó process 8 nó thực thi xong thì nó đang tạo ra một cái lỗ hồng ở đây. Tiếp theo là nó sẽ bù đắp vào một cái process 9 nhưng mà process 9 có kích thước nhỏ hơn process 8 thì nó vẫn dư ra mỗ cái phần này ở dưới này. Ok. Và tiếp theo cứ như thế thì nó sẽ tạo ra nhiều cái lỗ hồng à cấp phát nhu cầu. Nghĩa là khi một cái tiến trình, hệ thống tìm một cái lỗ hổng có kích thước đủ lớn để các cấp phát một cái tiến trình à và hợp nhất lỗ hổng khi một tiến trình hình dài phóng một cái bộ nhớ các lỗ hổng liền kề có thể được hợp lại với nhau để tạo thành một cái lỗ hổng lớn hơn. Ok. Đó, ví dụ đối với cái bãi nhỉ xe đi thì nếu như mà à ba cái xe ví dụ như chúng ta hiểu rằng ba cái xe nhỏ, ba xe gia đình ở cái vị trí là 124 thì nó sẽ tạo được cái lỗ hồng ở vị trí số 3 đó. và à các cái vị trí khác như 5 6 7 8 thì nó sẽ làm phếu hợp đó kiểu như vậy. Rồi cái bài toán phân cấp bộ nhớ thì phân cấp như thế nào? Đầu tiên á khi một tiến trình yêu cầu một cái lượng bộ nhớ có kích thước là n thì làm thế nào hệ thống phải chọn ra cái lỗ hồng phù hợp từ các danh sách lỗ hồng n là sao? với ví dụ như process 9 là nó yêu cầu một cái cái cái cái kích thước là n đó việc của hệ điều hành 9 này việc của hệ điều hành là làm sao để chọn được cái cái lỗ hồng phù hợp cho cái của set9 này chui vào và làm sao cho nó phần bổ hợp lý nhất và ý chính của cái việc à cấp phát bộ nháo động này thì nó sẽ là à giới thiệu cái thuật toán đầu tiên là first pit nghĩa là cái gì à cái nào ví dụ trong cái a duyệt sang các cái danh sách ví dụ cái nào ví dụ như cái nào vừa đầu tiên thì nó đẩy vào và không cần biết là nó sẽ gây ra ảnh hưởng cái gì ưu điểm nó là đơn giản đúng không nhược điểm là tạo ra nhiều lỗ hồng nhỏ hơn bởi vì sao nó không có m quy hoạch nào hết cứ cứ vừa là vào thôi thì nó sẽ tạo ra nhiều cái lõ học hơn rồi cái à thuật toán tiếp theo là cái b nghĩa là lựa chọn phù hợp nhất nghĩa là nó sẽ quy hoạch ở đây gọi là có một cái quy hoạch hoạt động của cái thuật toán này Vượt qua toàn bộ danh sách này các cái lỗ hổng à đống và chọn cái lỗ hổng nhỏ nhất mà vừa đủ lớn nghĩa là sao? Vừa khít làm sao để chọn cái kích thước vừa khí hoặc là những cái lỗ hổng mà sao nhỉ? Ừ nó có cái sự dư ra là ít nhá để tiết kiệm. Ưu điểm đó là tạo ra cái lỗ hổng dư thừa có kích thước nhỏ nhất đúng không? Và tốn cái đỡ tốn tiết kiệm cái tối ưu hóa cái không gian bộ nhớ nhược điểm là nó khó và nó cồng kệch hơn. Rồi cái workfit thì sao? Đ là lựa chọn kém phù hợp nhất là thật toán là duyệt qua toàn bộ danh sách và các cái lỗ hồng và chọn cái lỗ hồng nó lớn nhất để cấp phát cho tiến tích ngược lại với cái bí đó ưu điểm nó là mục đích tạo ra cái lỗ hồng dư thừa có kích thước lớn với hy vọng rằng nó sẽ cái lỗ hổng này nó sẽ hữu ích cho các cái yêu cầu bộ nhớ lớn hơn trong tương lai. Nghĩa là sao? Cứ nhét vào những cái thằng lớn nhất cứ nhét vào nhét nhét nhét nhét vào đó. về ví dụ như những cái bộ nhớ lớn này là bữa sau đến lần sau có một cái tiến trình nào đó lại nhét vào tiếp đơn giản ưu điểm đó là tạo rỗ hộng dư thừa có tích lớn nhược điểm là xu hướng làm giảm số lượng các lỗ hổng trong bộ nhớ và có thể gây khó khăn cho việc cấp phát tiến tỉnh đ rồi chúng ta đấy là cái phần phân mảnh phân mảnh cái gì nghĩa là ừ định nghĩa và nó sẽ xảy ra khi có tổng dung độ bộ nhớ trống đủ lớn để đáp ứng hướng cái yêu cầu thình nhưng các cái vùng bộ nhớ trống này lại không liền về lẫn nhau nó tạo ra sự phân mảnh đây các em à phân mảnh là cái gì tổng thương lượng của một nóng đủ lắm ok nhưng mà nó lại không nằm liền kề lẫn nhau nghĩa là gần như là không có phát được ok ví dụ là quay lại cái bãi đấu xe thì mình sẽ trả cần à cần cái ô nhớ là 5 năm 5 ô đ nhưng mà hiện tại thì đang có bốn có có thể có bốn ô trống nhưng mà nó không cần lềm kề lẫn nhau vì vậy thì nó không đủ được cấp cho cái xe tải này rồi cái phần đó là phân mành ngoài ha còn phân mành trong phân mành trong là gì là ví dụ như cái xe đải à nó cần bốn cần 3 ô rưỡi nhưng mà đang có bốn ô trống thì làm sao nó sẽ chiếm dụng cả bốn ô này. Vậy thì cái cái cái phân vành trong là gì? Nghĩa là cái phần 0,5 ô mà cái 0,5 ô mà cái xe tải ấy nó chiếm dụng á đó là phần dư ra đó là nghĩa đơn giản cái phần phân mảnh. Rồi làm sao để giảm các phân mảnh ngoài? Chúng ta hiểu một cái gọi là cái cái nến bộ nhớ nến bộ nhớ sử dụng nến cách nến bộ nhớ để cái phần vấn đề về phân mảnh ngoài thì giảm phân mạch ngoài bằng cách nén bộ nhớ thì nghĩa là sao? Nến bộ nhớ là quá trình sáo trộn tất cả các cái nội dung của ô nhớ các tiến trình ra để gom các cái vùng nhớ trống lại thành câu khối duy nhất. Nghĩ là ví dụ đối cái ví dụ về về bãi dĩa xe đi thì à ở cái ví dụ đó là các cái xe xe nhỏ nằm không đền nhau thì cái việc nén nộ nhớ này là gì? Nó sẽ sắp xếp vào cái xe nhỏ này vào trong một cái vùng liền ghề lẫn nhau để tạo ra thành một cái khối nhớ lớn và duy nhất để cho các cái xe tải có thể đậu vào. Rồi điều kiện để nén bộ nhớ khả thi đó là định vị lại động. Việc ném bộ nhớ chỉ có thể thực hiện nếu như các tiến trình có thể được định vị lại nghĩa là relocate trong cái bộ nhớ một cách động trong quá trình thi này nghĩa là cái địa chỉ vật lý mà tiến tình sử dụng có thể thay đổi khi mà nó được di chuyển đến một vị trí mới bộ nhớ thì là đảm bảo cho cái việc đó là các cái tính tình khác nó vẫn phải hoạt động hiệu quả trong khi mà đã thay đổi cái định vị vật lý rồi đúng chưa và các cái thanh ghi định vị này chúng ta à cũng cái thanh ghi định vị á thì thì nó sẽ đóng một cái vai trò quan trọng và có vấn đề ở đây là có có thể thay đổi cái thanh ghi định vị này được hay không? Và thực à đầu tiên là tất nhiên là nó sẽ thực hiện tại thời điểm chạy quá trình nén bộ nhớ thì nó sẽ thực hiện khi cần thiết trong quá trình hệ thống đã hoạt động. Vấn đề ở đây là vấn đề về nhập suất. vấn đề nhập suất đặt ra trong quá trình ném độ nhớ thì có một cái vấn đề cần lưu ý đó là hoạt động nhập suất nếu một tương trình đang thực hiện một cái thao tác nhập suất và dữ liệu đang được truyền thực tếp giữa các thiết bị nhập xuất thì việc di chuyển tiến trình quá trình nến có thể gây ra lỗi giải pháp đó là ghi công lực trong cái bộ nhớ lại không di chuyển tới trình đang thành hoạt động yêu đầu tiên và chỉ thực hiện các cái hoạt động nhập xuất trong cái thông qua cái bộ đệm của hệ điều hành đó rồi đến với phần trang thì phân trang là gì? Đó là một cái kỹ thuật quản lý bộ nhóm mạnh mẽ để cho phép các cái tuyến định sử dụng của nhóm vật lý không liên tục và giải quyết được cái vấn đề đó là phân bả ngoài. Rồi chúng ta đến một cái ví dụ đi ha. Bây giờ sử dụng ví dụ để các em hiểu. À tưởng tượng rằng mình sẽ có một cuốn sách là một cái tiến trình về nó sẽ được chia thành các cái trang. Rất nhiều cuốn sách nó sẽ có nhiều cái trang và các cái trang này thì sao? nó sẽ có một cột kích thước cố định và chúng ta muốn cất cái trang sách này vào một cái tủ sách đó là một cái bộ nhớ vật lý. Ok. Và à gọi là cái tủ sách này nó coi như là RAM á hoặc là bộ nhớ chính á. Thì cái tủ sách này thì nó có các cái ngăn để chúng ta bỏ vào. Và cái ngăn này chúng ta gọi là các cái frame. Ok. Và các cái kích thước của frame này thì vừa đủ với cái thằng sách hay là chúng ta không cũng không gọi là các cái ngăn nữa mà gọi là ừ ok gọi là ngăn đi ngăn nh rồi. Ờ cái phân trang là gì? Nghĩa là chúng ta sẽ cất các cái trang sách này vào các cái ngăn khác nhau và nó lộn trộn nó không tuân theo một cái thứ tự nào cả. Ok. Không cần thiết ví dụ trang một phải nằm đến cái trang hai gì hết mà có thể là trang một nằm ở một cái ngăn a ngăn 3 rồi trang 2 nằm ở ngăn n nào đó. Ok. Vậy thì làm sao để tuyết cập? nó sẽ thi cập thông qua cái gọi là page app nghĩa là cái page table chứ là cái page table nghĩa là cái gì là cái bảng mục lục. Chúng ta có thể hiểu rằng đó là một cái bảng mục lục và cái mục lục này giữ sẽ ghi lại các cái số trang nằm ở cái frame nào. Ví dụ như là trang một nằm ở năm nào của frame nào, trang hai nằm ở frame nào. Đó và khi kết hợp cái này lại thì chúng ta sẽ có một cái địa chỉ vật lý cụ thể để mà cái cái cái hệ điều hành có thể được cập vào được. Có có thể được cập vào đị kiệ vật lý được. Rồi đến với cái nội dung thì à cái việc phân trang này á thì nó sẽ giúp cho việc tránh được phân hảnh ngoài, tránh được cái vấn đề về các cái khối của nhiều các kích thước khác nhau. Ok. À quay lại với cái ví dụ về xe tải đi thì chúng ta có thể hiểu rằng đó là cái xe tải nó sẽ được phân thành các cái bộ phận khác nhau và nhét vào trong những cái ô nhớ khác nhau. Ok. Ví dụ như là à chúng ta có thể gọi là xe container thì chúng ta tách cái phần đầu của cái xe container ra à cho vào trong cái một cái ô nhớ. Còn cái phần container còn lại thì để lại ở ba hai hai cái ô nhớ trống khác đó. Thì vấn đề về coner được giải quyết. Đó, đó là phần phân khác. Rồi tiếp theo là cái sơ đồ dịch địa chỉ. Ok. Chúng ta sẽ suy nghĩ kỹ hơn về cái việc sử dụng cái test trong cái nội dung này. Và trong cái slide này thì chúng ta quan tâm đến đó là đầu tiên là số trang đó là page number và cái page offset là cái độ rời trang. Cái page number là cái phần sử dụng như là một cái chỉ số index vậy ạ để tra cứu trong cái page tab các cái địa chỉ địa chỉ cơ sở như là page asset. Rồi còn cái độ rời trang là cái gì? Là nó sẽ kết hợp với địa chỉ cơ sở và cái page number á để lấy từ cái bảng trang để xác định cái địa chỉ vật lý cụ thể. Hay là cái page offset này nó sẽ giống như là một cái relocation address ấ đó. Rồi đây chúng ta sẽ hiểu hơn trong đối với cái việc mà nó sẽ phân phân sử dụng như thế nào. Đây là cái việc phân trang dựng trên phần cứng thực tế chỗ cái sơ đồ này chúng ta sẽ dễ hiểu hơn. À một cái CPU nó sẽ tạo ra các địa chỉ logic sẽ truy cập vào cái các cái địa chỉ đó là địa chỉ logic ở đây là gồm có một cái P và D. Được chưa? Cái P và D là lúc nãy thầy đã nói rồi ha. P là cái gì? Đ là số trang còn D là cái độ dời trang. Ok. Rồi đầu tiên nó sẽ sử dụng cái P để truy cập đến cái Pab và xác định là cái số frame đang giữ cái số frame đang đang đang giữ cái trang đó paste. Và mình gọi ở đây là cái F. Rồi tại cái địa chỉ vật lý thì nó sẽ kết hợp cái chữ cái số frame này với lại cái độ rời trang nghĩa là F và D để truy cập vào cái bộ nhớ vật lý. Đây cụ thể ví dụ như D nằm ở đây nghĩa là sao? F nó sẽ truy cập vào cái frame F này. Còn D nó là cái địa chỉ từ bao nhiêu đến bao nhiêu của frame này. Ok. Thường thì cái D này nó sẽ là toàn bộ cái trang toàn bộ cái frame. Rồi đó là chúng ta hiểu về cái cái cái phần phân trang ha. Rồi ở đây là cái mô hình phân trăng của cái bộ nhớ logic về vật lý. Bài đầu tiên này thì trong cái phần vật lý á thì nó chỉ chứa các cái trang như từ à gồm có bốn trang từ 0 đến 3. Ok. Rồi còn cái test thì nó sẽ chứa hai cái giải đầu tiên là các cái trang 012 3. Tiếp theo đó là các cái số frame frame 1 4 3 7. Ok. Rồi vậy thì cái việc ví dụ như khi CU muốn truy cập từ một cái địa chỉ trong cái bộ nhớ logic đây ví dụ như là nó muốn truy cập vào cái trong cái page 2 đi thì phần cứng nó sẽ trư cho cái số trang ở đây là số trang là P là 2 được chưa từ cái địa chỉ logis và nó sẽ truy cập vào cái page trang cái page tab app này này page fal này này nó tìm đến số 2 cái số trang hai của nó và nó sẽ lấy được cái số frame là 3 ok và nó sẽ truy cập vào trong cái địa chỉ vật lý là cái tăng frame số 3 ở đây. Đây ha. Đầu tiên này lấy cái số hai số hai của cái địa chỉ local này. Rồi trong cái page tab này thì dựa vào cái số trang là 2 cho nó lấy được cái frame là 3 này. Và truy cập vào cái frame 3 lấy được cái toàn bộ cái nội dung của cái B 2 ra. Ok được chưa? Rồi cái phần à phần phần ví dụ này ta đến với ví dụ tiếp theo. Đầu tiên chúng ta sẽ có một cái địa chỉ logic với n = 2 và m = 4. Rồi và sử dụng một cái page size có có có có độ lớn là 4 bài và cái địa chỉ vật lý là 32 bài. Cái cái cái cái bộ nhớ vật lý là có kích thước là 32 bài và chứa 8 page đây. Ok ha. Rồi bây giờ phân tích ra địa chỉ logic có 4 bit m = 4 hay là m = 4 bit. Điều này có nghĩa là cái gì? Cái không gian của địa chỉ logic này là 2 mũ 4. Quay lại với công thức ngay từ đầu này nhá. Đâu rồi? Đây à vest ped link à đâu rồi nhỉ? Đ m slide nào nhỉ? Ờ m nhá rồi đây à. Điều này có nghĩa là không gian địa chỉ logic là 2. Rồi địa chỉ logic có m = 4 bit. Điều này có nghĩa là không gian địa chỉ logic là 2 mũ 4 thì bằng 16 bài. Ok. Và đánh địa chỉ từ 0 đến 15. Và đây cái không gian địa chỉ logic này chúng ta xác định được m dựa trên m chúng ta xác định được cái địa chỉ logic nó sẽ sử dụng là 16 16 B và chạy từ 0 đến 15. Rồi cái số bí tổng cái bộ lệch trang thì nó gồm là gì? là 2 mũ 2 sử dụng n là 2 mũ 2 thì nó sẽ có 4 page có cái có có có kích thước là 4 by và 4 by thì nó sẽ lưu giữ được bao nhiêu ạ từ 0 đến 3 đúng không? Rồi ok. Rồi số lượng frame vật lý đầu tiên là kích thước vật lý là 32 B. Được chưa? Vậy số lượng cái frame vật lý là bao nhiêu? 4 B. Đây đây đây đây. 4 B. Một cái trang vật lý nó có 4 B. Vậy thì nó sẽ có 8 trang chứ. Đ đây bên này là cái phần vật lý nhớ nhỉ. Nó sẽ đánh dỗ từ 0 đến 7. Ok. Nhưng mà tự nhiên là 1 2 3 4 6 7 này đầu tiên nó chạy từ 0 đến 3 đến 4 đến 8 kiểu thế. Ok nhớ nhá. Các cái trang này nó sẽ gồm có bốn trang này. Page p page page 0 ứng với lại cái phần page 0 nó có sẽ 4 B ta chạy từ 0 đến 3 này, 4 đến 7 này, 8 đến 11, 12 đến 15 tương ứng với lại các cái số trang đó là page 0, P1, P 2 P 3. Ok chưa? Rồi ở cái phần page tab này thì nghĩa là sao? Trang cái page này page 0, P1, P 2, page 3. Page 0 này sẽ tương ứng với lại cái gì? À cái frame ở đây là frame xuống từ 5. Frame số 5. Frame ánh xạ page 0 ánh xạ đến frame 5. Ok. Còn cái page 1 này thì ánh sạ đến frame 6. Page 2 ánh sạ frame 1. P 3 ánh xạ đến frame 2. Ok. Rồi chuyển qua cái địa chỉ sorry chuyển qua đến cái địa chỉ về cái cái a địa chỉ địa chỉ vật lý thì sao? Page 0 chúng ta sẽ tìm đến cái frame 5 ở đây đúng không? P0 này ABCD nó frame 5 ở đây là ABCD này. Ok được chưa? Với nằm trong cái frame 5 này. Đó rồi P 1 thì nằm trong frame 6 là EFGH đúng chưa? Rồi à P 2 thì nằm ở cái frame 1 đây. Đó là các ánh sạ ha. Đây là ví dụ về phần phân trà. Rồi cách tính toán cái việc phân mạch. Ở đây thì chúng ta đây là cái slide về cái tính toán cái bộ phân mảnh. Đó là cách tính các phần phân mảnh. Rồi trong cái nội dung slide này thì chúng ta sẽ chú ý đến cái dòng như thế này. Đầu tiên là sẽ tính toán cái nội cái lượng phânn mảnh nội bộ trong cái ví dụ ở đây á cái page size là hai 20487 và một cái tiến tình thì nó sẽ sử dụng là 72.767 và nó sẽ có 35 cộng với lại ở đây là một nửa của cái best size nghe nói thẳng ra thì chúng ta đang dùng đến 36 trang được chưa? Ở đây là cái vùng mà gọi là gì? Nó sẽ tính ra cái gọi là cái trang này này. Cái cái dòng này này là dòng mà nó sẽ tính ra cái cái cái cái cái phần mà 962 B này là cái phần à gọi là phần mạnh trong đó. Bởi bằng cái gì? Nghĩa là bằng cái page size trừ đi một cái phần còn lại của cái trang. Đúng chưa? Vậy thì nó sẽ tính ra được cái số bài dư trong cái trang số 36. Được chưa? Rồi về nó chúng ta có thể giả sử rằng đây là cái dòng mà nó sẽ mô tả cái tình huống phân mảnh đối bộ nhỏ nhất. Ví dụ như 35 trang này đã đầy rồi cộng thêm một cái bay nữa thì nghĩa là sao? Nó sẽ dư toàn bộ 200 2047 B là dư rồi. Và cái tính trung bình là bằng 1/2 frame size nghĩa là 1024. Ok. Đó đó là nội dung của việc tính toán cái phần phần mềnh trong. Rồi tiếp theo ở đây là cái free frame gọi là các khung trang trống. Không đang trống này nghĩa là làm gì ở chỗ này nó sẽ cho thấy cái trạng thái danh sách của cácf frame trống bộ nhớ vật lý trước và sau khi một tiến trình mới được cấp phát các frame sẽ chứa trong các cái trang của nó. Ok. Bây giờ nà đầu tiên đó là khi cấp pháp. Trước khi cấp pháp cái đầu tiên tức khi cấp pháp này thì chúng ta nó sẽ có các cái phần các cái frame frame trống như thế này chạy từ 14 13 18 20 15. Ok. Và các cái trang cái new process này là một cái tiến hình mới và đang yêu cầu bốn trang. Được chưa? Và trong cái phần này là cái bộ nhớ vật lý. Và cái bộ nhớ vật lý này thì nó đang có những cái cái cái phần trống nào? Ở đây là 13 14 15 đấy. 13 14 15 này frame các frame trống này 18 20 các frame này nó sẽ trống rồi. Và khi cấp phát thì nó làm cái gì? Nó sẽ cấp phát theo thứ tự gì 13 18 20 14 13 18 20 được chưa? Rồi nó sẽ cấp phát theo tự trên xuống dưới như thế này. Và vẫn còn một cái frame 15 đang trống rồi nó sẽ cấp thứ tự này p 0 cho 14 được chưa ạ? P 0 14 P 1 cho 13 P 2 cho 18 và P 3 cho 20. Đó và nó sẽ truy cập vào ví dụ như P 1 là 13 P cộng 14. Đó đó là cái toàn bộ cái quá trình cấp phát. Và ừ ở đây á thì chúng ta cần phải cập nhật các cái danh sách frame trống bằng cách loại bỏ các cái frame đã cướp pháp và tạo ra một cái bảng trang cho một cái tiến tỉnh mới nhất và điền vào trong cái bảng trang này các cái ánh xạ. Rồi ok ha. đến với cái cái nội dung về cái triển khai bảng trang thì cái bảng trang là một cái cấu trúc dữ liệu trong hay gọi là cái page table á nó là một cái dữ cấu trúc dữ liệu quan trọng cho cái phản lý nhớ bằng kỹ thuật phân trang đúng không lúc nãy chúng ta đã nói về nó rồi và thường được đổi trong trực tiếp trong bộ nhà chính và các cái thanh ghi ở đây chúng ta thấy có các thanh ghi là page ph page page bay reiterater và cái gọi là pt PB R và PTL thì các cái cái cái thanh ghi này sẽ giúp hệ điều hành theo dõi cái vị trí và kích thước của cái s của cái bảng trang á. Tuy nhiên mà với cái việc truy cập cái bộ nhớ thông qua cái bảng trang thì có thể làm giảm hiệu suất do là cái yêu cầu. Chúng ta có thể hiểu rằng cả cái a cái bảng trang này này và cái dữ liệu tính thì đều nằm ở đâu? nằm ở trong cái cái bộ nhớ chính và để mà sử dụng được một cái dữ liệu thì hệ điều hành hoặc là CPU nó sẽ phải truy cập hai lần vào trong nhớ chính và nó sẽ làm giảm suất. Điều này sẽ làm giảm suất. Và người ta đưa ra một cái phương pháp để tránh cái việc này đó là sử dụng HTBL. Cái TBL này là một cái địa chỉ đặc biệt được sử dụng để làm giảm thiểu cái vấn đề về truy cập. hoặc là lưu trữ các ánh xạ trang frame à giúp tăng tốc độ cái quá trình à dịch địa chỉ. Nghĩa là sao? Ví dụ như khi tạo ra một cái frame hoặc là một cái gì đó thì mọi thứ sẽ được lưu trữ vào trong cái t này và thay vì truy cập thay vì truy cập vào cái cái cái cái page cái bảng trang tại à tại tại RAM á thì nó sẽ cập vào cái TPL này trước. Và cái TPL này được lưu trữ ở đâu? Nó được lưu trữ ở trong các cái các cái thanh thanh kết và các thanh kết này có tốc độ truy cập nhanh hơn. Được chưa? Điều này là vừa giải quyết được cái vấn đề về dung lượng cho RAM, vừa giải quyết được vấn đề về hiệu tất. Đó được chưa? Rồi tiếp theo cái cái bộ chúng ta đến với cái bộ đệm tìm kiếm dịch. Ok. À một số cái loại CPL thì nó lưu trữ định danh không giới hạn địa chỉ. Ví dụ như các bạn ở đây là cái chúng ta hiểu về nếu là ASID cái định danh không giữ hạng địa chỉ này khi a trong mỗi một mỗi một cái mỗi một cái mỗi một mục TBL thì nó sẽ lưu trữ một cái lưu trữ cái định danh không giới hạn địa chỉ này và cái định doanh duy nhất cho một cái thế để cung cấp cái sự bảo vệ không gian địa chỉ cho cái thế hình đó. À ở đây thì chúng ta gọi như ASID này á thì nó là cái address spec identif cái không gian điều chỉ cho một cái tiến trình duy nhất và nhiều tiến trình nó sẽ có thể chúng ta hiểu rằng cái TPL này thì được được nhiều tiến trình chia sẻ và việc lưu tự as cái ASID này thì giúp đảm bảo cái việc ánh xạ này nó của một cái tiến trình nó sẽ không bị nhầm lẫn với các cái ánh xảo của thứ tỉnh khác. Đúng chưa? Và nếu như mà không có cái ads ID này thì hbl cần phải được làm rỗng. Mỗi lần ví dụ truy cập xong có phải clear nó đi và làm lại và nó sẽ a mỗi một lần nó cần phải cần phải chuyển đổi ngữ cảnh giữa các thầy trình và nó sẽ gây ra về vấn đề về cái hiệu suất. người ta cũng nói rằng cái TBL thì nó sẽ thường là nhỏ, thông thường nó sẽ chữa từ 64 đến 10524 mục thôi. Vì nó là một cái bộ nhớ ké cho nên kích thước của nó thường được giới hạn lại để đảm bảo tốc độ. Và khi mà cái T CBL Mid và CPL MID là gì? Nghĩa là nó không tìm thấy cái địa chỉ ánh xạ nằm trong cái TBL thì giá trị sẽ sẽ phải được tải vào cái TBL để truy cập nhanh hơn vào lần sau. Nghĩa là à cái quá trình á nó sẽ phải được tải lại vào lần sau và cần phải xem xét về cái chính sách thay thế. Cái thứ hai nữa là phải có một số mục có thể được gắn chặt vào trong gắn chặt vào và truy cập nhanh vĩnh viễn. Đây chúng ta sẽ đi nhanh một vài cái phần này về vấn đề phần cứng thì à cái cái phần cứng này sẽ là một cái cách kết hợp bộ nhớ kết hợp với TPL thực hiện tìm kiếm song song để tăng tốc độ hộ về dịch địa chỉ hay là cái bộ nhớ song song này cái phần dịch địa chỉ á thì nếu có trong thanh ghi kết hợp TPL hit thì lấy số khung ra ở trong cái frame. Còn nếu ngược lại thì số lấy số khung trang từ ừ bảng trang trong cái bộ nhớ tức là trong trường hợp mà TP mid chưa? Rồi bây giờ những cái phần này chúng ta sẽ dễ hiểu hơn. Đó thì CB vẫn truy cập ở tới cái bộ nhớ logic ha. Đây nè CPU vẫn truy cập bộ nhớ logic. Đầu tiên nó sẽ dùng cái bảng trang này. Cái TBL nó sẽ truy cập cái page number frame. Nếu như mà TBL TLP TLB hit thì sao nó sẽ lấy được cái frame từ trực tiếp với TPL luôn. Còn nếu như mà mid thì làm sao nó phải lấy lại này. Nó phải thực hiện lại cái tuy cập vào cái pable và giảm đồng nghĩa với việc nó giảm đi hiệu suất. Được chưa? Và vấn đề mục tiêu của cái cùng nó vẫn là phải làm sao để lấy được cái thằng frame này để kết hợp với cái phần D. Ok. Và khi mà thực hiện cái mid này thì phải có một cơ chế để ghi vào trong cái TP này. Đó. Và có một cái vấn đề nữa đó là cái TPL này thì nó chỉ thông thường chỉ có từ 64 đến 124 mục. Nghĩa là sao? để là mỗi một lần là phải truy cập đồng thời vào tất cả các vùng này và nó là cái bộ nhết thì nó phải đảm bảo cái nhỏ và nhanh. Được chưa? Rồi tiếp theo đó là thời gian truy cập hiệu dụng. À tính thời gian truy cập hiệu dụng. À ở đây là AIT. Đầu tiên chúng ta phải làm rõ cái về hit rator. Hit rator là tỉ lệ phần trăm mà số lần cái các cái số trang logic được tìm thấy trong TPL như là sao? Ví dụ như truy cập vào cái TPL 100 lần thì ở đây người ta có thể gọi đặt ra một cái ví dụ là truy cập vào cái trang 100 lần thì à có 80 lần thực hiện được. Và giả sử rằng à thì thì nghĩa là sao? À tỉ lệ hit là 80% thì đều có nghĩa là trong một lần truy cập thì là 80 lần có trong cái tpl rồi và thời gian để truy cập bộ nhớ ở vật lý là 10 nano rồi bây giờ tính tính cái công thức tính EAT như thế nào? Và ET là gì? E là thời gian trùy cập hiệu dụng được tính bằng cái công thức. Thời gian truy cập hiệu dụng được tính bằng công thức gì? Đầu tiên là tỉ lệ hit. Đây là 0,8 đúng không? Nhân với thời gian truy cập của vào cái bộ nhớ chính nha. S memory nè. Rồi cộng với cái gì? À tỷ lệ có nghĩa là 100 - 80 nhân với ờ cái 2 20 ở đây là gì? Thời gian truy cập mid đấy. Nó sẽ hai lần chúng ta bây giờ 10 giây cho một lần truy cập vào memory và cái việc mà truy cập vào cái page table thì sao? Chúng ta phải mất 20 giây. Bởi vì sao? Nó truy cập vào hai lần. Được chưa? Đó là cái công thức tính AC. Rồi bảo vệ bộ nhớ thì cái vấn đề về bảo nhệ bộ bảo vệ bộ nhớ này thì nó sẽ sử dụng dựa trên cái bit bảo vệ à kết hợp với số khung trang để chỉ ra cái quyền truy cập. Một là chỉ đọc ghi hoặc là chỉ đọc hoặc là đọc hoặc ghi. Ở đây thì mình sẽ có phân sử dụng cái đó là bit hợp lệ hoặc là không hợp lệ được gắn vào trong a mục bảng trang hợp lệ là V còn không hợp lệ là I là valid và invalid. Được chưa? Rồi trong cái ví dụ này chúng ta sẽ dễ hiểu hơn. Ở đây á thì chúng ta có bao nhiêu trang? Năm trang đúng không? Và tương ứng các frame này ở đây năm trang à năm trang này và các frame này ở đây trong cái bảng trang này thì nó còn đến bảy trang lận và frame là chưa được ánh xả này và cái valid invalid nó sẽ nằm ở trong cái bảng trang này và nó chỉ truy cập đến các cái phần hợp lệ thôi rồi thấy chưa và các cái phần hợp lệ này thì mới có giá trị ở trong cái bộ nhớ chính ok rồi thì tiếp theo về cái việc đó là sử dụng cái xe các cái tang Nghĩa là sao? Nghĩa là có nhiều tiến trình có thể dùng cùng một cái bàn sao dùng cùng một cái số trang trong cái bộ nhớ vật lý nhằm tiết kiệm bộ nhớ và tăng cái hiệu quả của hệ thống đúng không? Ờ chúng ta lấy ví dụ lúc nãy đó là có nhiều cái chương trình cùng dùng một cái thư viện đó và cái việc mà tải nhiều ví dụ mỗi chương trình lại có cái sự trùng lập trong trong cái bộ nhớ vật lý là một cái sự lãng trí đúng chưa? Bởi vì bộ nhớ vật lý thì thường là nhỏ hơn bộ nhớ bộ nhớ chính thì sẽ nhỏ hơn các cái bộ nhớ bên ngoài. Được chưa? Và ở đây là chúng ta sẽ sử dụng cái share page hoặc là share các cái trang dùng chung này thì gọi là mã dùng chung á thì đầu tiên á thì nó sẽ là tạo ra một cái bàn pha mã chỉ đọc. Rồi à nó tương tự như nhiều luồng thớt nó sẽ chia sẻ cùng một không gian của một cái tiến trình. Được chưa? trong cái tiến trình đa luôn đ các em có hiểu rồi rồi nó sẽ cung cấp thử ích cho cái việc giao tiếp giữa các cái tiến trình cho các cái trang có thể chia sẻ các trang đọc ghi mã v dữ liệu phần riêng tư mỗi tiến tình sẽ giữ một cái bản sao mã riêng của mã bản sao riêng của mã và dữ liệu riêng của nó các cái trang và mã dữ liệu riêng tư có thể được xuất hiện ở bất kỳ đâu trong không gian địa chỉ và logic của tinh ok nó hơi khó hiểu như vậy chúng ta quay lại nh ở đây trên cái hình này thì sao các cái tiến trình P1 P2 V3 V1, B2, V3 nó đều có các cái list và cái thư viện nha. Thư viện M4 này và nó giống nhau. Các tến trình này đều sử dụng bốn cái thủ viện giống nhau như thế này. Được chưa? Và nghĩa là sao? Nó sẽ truy cập vào ý nghĩa là nó sẽ chỉ trùy cập vào một cái bộ nhớ vật lý và các cái thư viện này được nằm trong cùng cái bộ nhớ vật lý này. Và các cái thư viện này các cái tính tình này nó sẽ sử dụng trùng chung bốn cái thư viện này với nhau. Đó, đó là cái vấn đề về cái chia sẻ cái trang. Rồi cấu trúc của bảng trang thì cấu trúc của bộ nhớ phân trang có thể trở nên rất lớn đúng chưa? Về khi mà sử dụng các phương pháp trực tiếp và chúng ta cần phải trong cái cấu trúc này thì mới cần phải tìm ra các giải pháp để chia các cái trang này thành các cái đơn vị nhỏ hơn và sử dụng các cái hợp toán các cái phương pháp để giải quyết các vấn đề về kích thước lớn của cái bảng trang. Đầu tiên nữa đó là phân trang theo cấp bậc. Thì tiếp theo là phân trang hàm bong và phân trang đảo ngược. Thì phân trang cấp ấy là giống như nó chia cuốn từ điểm thành nhiều cuốn nhỏ hơn ví dụ như theo chữ cái đầu hoặc là gì đó. Còn trong phân rang theo cái bảng băm thì sao? Như việc sử dụng một cái bảng chỉ mục băm ở cuối cuốn cuối sách thay vì duyệt toàn bộ sách thì mình sẽ sử dụng hàm băm để nhanh chóng tìm đến cái vị trí chứa cái thông tin mà mình cần. À bảng trang đảo ngược thì giống như cái việc mà có một cái danh sách các ngân tụ gọi là khung trang vật lý. Còn mỗi ngân tụ ghi lại tên cuốn sách tiến trình và số trang được lưu được đặt trong đó. Và thay vì tìm theo tên sách để biết vị trí trang thì mình sẽ tìm theo vị trí ngăn tủ để biết sách nào đang nằm ở trong đó. Đó là ba cái phương pháp. Ok ha. Và cái đầu tiên là chúng ta đến với cái bảng trang phấ bậc. Đây là nó sẽ chia cái không gian địa chỉ logic thành nhiều cái bảng trang nhỏ. Và cái kỹ thuật đây là một kỹ thuật đơn giản là cái gọi là mình mình có thể gọi là bảo trang hai cấp và sau đó thì chúng ta sẽ phân trang chính thành các bản trang. Ở trong cái hình minh họa đầu tiên á thì cái phần này này nó là một cái số mục nhập. Mỗi mục nhập trỏ đến một cái gọi là trang trọng gọi là một trang chứa một phần của bảng trang trọng. Đây nó trò đến ví dụ thằng này trò đến từ 1 đến 500 đó nó chia cái bảng trang này thành nhiều cái bảng trang nhỏ đó. Rồi cái page a là page of page table ha. Rồi quá trình dịch địa chỉ thì nó sử chạy như thế nào? một cái địa chỉ logic. CU sẽ sử dụng một cái phần của địa chỉ logic để tìm đến một mục nhập trong bảng trang bên ngoài. Rồi mục nhập này sẽ tỏ đến một cái bảng trang trong đó. À sau đó các phần địa chỉ logic nó sẽ được thực hiện như bình thường. Lợi ích của cái việc phân cấp này á thì nó giảm kích thước là bảng trang liên tục. Chỉ những cái phần của cái bảng trang cả trong và cả ngoài thực sự cần thiết mới được lưu giữ trong cái bộ nhớ và hỗ trợ không gian địa chỉ logic lớn. Đây mình đến với cái ví dụ về cái việc phân trang hai cấp hạ. Cái tình huống đưa tình huống được đưa ra á là một cái máy tính 30 32 bit thì có kích thước trang là cái size là 1 KB tương đương với lại 2 mũ 10 B được chưa? Rồi địa chỉ logic nó sẽ là 32 bit. Rồi cấu trúc thân trang hai cấp thì vì kích thước trang là 1 GB cho nên cái offset trong trang đang chiếm 10 bit. Ok bây giờ chúng ta cái vấn đề này nó có vẻ hơi sai sai nha. 10 bit rồi thì cái số bit còn lại của trang địa chỉ là người ta có đang dùng 32 bit mà đã dùng đi 10 bit rồi thì nó sẽ chỉ còn lại à 22 bit thôi. Đấy chưa? Thế là cái vấn đề này đó là cái số number. Rồi tiếp theo được chia đều cho hai trang phân hai chia đều cho hai cấp phân trang số 22 này được chia đều ra và page 1 ở đây chúng ta lên cái cái page set ạ. Thì p còn lại là mbit nha. Rồi tiếp theo cái P à PM cấp 1 á thì là 10 bit còn ở đây người ta đang ghi là 10 bit nhưng mà các em phải hình dung lại là cái pet offet này tức là 10 thì ở đây phải là mỗi cái P1 P2 này phải là 11 có thể là có cái lỗi nào đó trong v máy ha rồi và cái chúng ta hiểu như vậy vậy thì tổng cộng cái địa chỉ 32 bit sẽ được chia thành P1 P2 cộng với lại D là cái phần off thì nó phải đủ 32 bit được chưa Rồi à về cái hình ảnh này á thì là cái gì? Là một cái a thanh thanh ngang 32 bit chia gồm ba phần B1 B2. À B1 là từ bit 31 tức là từ bit số 31 đến cái này phải là từ bit 21 đến cái bit 21 mới đúng. Nó là cái chỉ số out bên ngoài. Nghĩa là cái phân trang bên ngoài. Còn cái P2 là chiếm 10 bit phân trang bên trong. Còn cái D là cái số bit mà offset là cái phần giờ trang á. À ở trong này chúng ta sẽ dễ hiểu hơn này. Với cái thanh ghi thanh ngang lúc nãy của cái 32 bit á thì nó sẽ làm cái gì? Cái sơ đồ địa chỉ này nó cái sơ đồ địa chỉ này nó sẽ chỉ ra các thành phần như sau. Ví dụ như P1 này nó sẽ truy cập vào cái Autopage. Đây là cái a địa chỉ của cái Autopade. Nó sẽ là cái phần P1. Và tiếp theo cái P2 nó sẽ truy cập vào cái page trong cái gọi là cái phần trang bên trong. Và kết hợp hai cái phần trang này thì nó sẽ lấy được cái à ở cái D cuối cùng á cái phần P1 P1 bên ngoài là cái địa chỉ logic để sử dụng làm chỉ mục để truy cập vào cái bảng trang bên ngoài. Còn cái page trang bên trong á là cái địa chỉ đây này. Cái trang bên trong này là cái địa chỉ lấy như từ cái bảng trang ngoài trò đến một cái trang chứa một phần của bảng trang trong là cái phần B2 của địa chỉ logic. được sử dụng là cái độ lệch độ lịch phần chỉ mục rồi cái địa chỉ vật lý á là cái số frame đây lấy từ cái bảng trang được kết hợp với phần D độ lệch trang và cuối cùng chúng ta sẽ truy cập vào được cái địa chỉ vật lý ok ha và cái sơ đồ này chỉ cho chúng ta thấy cái cách mà cái địa chỉ logic được điều hướng qua hai cấp lỗ trang để tìm ra cái frame vật lý bảng trang ngoài đóng vai trò như một cái thư mục chứa các cái là các cái trang của bảng trang trong và các trang bảng trong này cuối cùng chứa thông tin về vị trí thực tế của dữ liệu nằm trong cái bộ nhớ vật Rồi cái phần về về không gian điện logic 64 m. Rồi vấn đề trong cái nội dung này thì vấn đề với cái phần trang hai cấp trong cái không gian địa chỉ 64 bit này nó sẽ nêu ra đó là nếu kích thước tang là 4 KB tương đương với là 2 10 mũ 12 2 thì cái offset nó sẽ chiếm 12 bit. Đấy chưa? Còn cái số bit còn lại trong cái nghĩa là chiếm 12 bit ấ nghĩa là số bit còn lại trong địa chỉ 64 bit là 64 đi 12 là còn 52 bit à còn 52 bit ở đây đúng không? Rồi với cái phân trang hai cấp nếu mỗi cấp outpage dùng 52 chia cho 2 thì còn 26 bit thì cái outpage của cái cái phân ra ngoài out cứ cứ dễ bị nhậm quá ha gọi là cái outer page outer page table huyền ngoài á thì nó sẽ có hai hai mẫu 26 mục rồi cái phân trang bên trong thì cũng có hai mũ 26 mục và kích thước cái bảng kích thước cái bản trang ấy mỗi mục mỗi mục m phục trong cái bảng chiếm 4 by à có thể là 8 by à nhưng mà ở đây thì chúng ta dự định là 8 là 4 by ha và cái outpet thì nó tương đương với lại 2 mũ 26 nhân với 4 by thì bằng 256 mb và cái interpage thì cũng là 256 nhưng có tổng kích thước là cái gì 2 mũ 26 nhân với lại 256 mb tương đương với lại 16 tb vậy vấn đề là 16 tảng trang là quá lớn và không khả thi để lưu trữ chúng ta vấn đề đấy. Sao ha cái vấn đề ở đây được đưa ra đó là nó có một cái nó yêu cầu để mà mà tổng cái yêu cầu cho các cái bản trang ở trong cái cái cái cái cái không gian địa chỉ logic mà chướm đến 64 bit là quá lớn và nó không khả thi để lưu trữ. Và giải pháp này là cái gì? Đó là thêm một cấp thứ hai cho Autobas. Nghĩa là thêm một cái autobit bên ngoài. Biến cái Autobase bên ngoài. Nghĩa là biến cái này này. Cái phần bên ngoài này thành một cấp nữa. Hay chúng ta sẽ trở thành cái mô hình ba cấp. Được chưa? Và nó sẽ có thành ba cấp phân trang. Đầu tiên là autobit cấp 1 rồi outit cấp hai và cuối cùng mới là à cái phần inter bên trong. Được chưa? Đó là cái giải pháp. Rồi với cái mô hình phân trang ba cấp á ở cái sơ đồ phân trang ba cấp này thì cái luồng dịch à địa chỉ trong hệ thống phần trang ba cấp này C CBU sẽ tạo ra cái địa chỉ logic là P1 P2 P3 rồi mới đến cái phần D P1 thì được sử dụng làm địa chỉ mục để truy cập vào cái trang bên ngoài cấp 2 đây như lúc nãy chúng ta hiểu ha cái P1 này được truy cập vào cái trang 2 này và từ cái trang 2 này thì nó mới lấy cái các cái frame được lưu trữ trong cái vật lý và còn ở đây thì P1 1 sẽ l truy cập vào cái outer page trong rồi cái từ cái outer page này mới truy cập vào cái inner page và vào cái offset page. Đây là cái nội dung của cái mô hình à hình phân đ ba cấp và tuy nhiên thì nó cái lợi ích của cái phân đan ba cấp này á thì là giảm kích thước của các bạn trang lại một cấp tăng tính linh hoạt trong cái việc quản lý bộ nhớ nhưng mà hạn chế á là tăng số lần truy cập vào cái bộ nhớ chúng ta thấy rằng nó cần phải truy cập vào bao nhiêu lần 1 2 3 4 lần mới truy cập được vào cái a cái cái cái bộ nhớ chính và thực ra thì mình vẫn đang truy cập vào bộ nhớ chính bảo vào cái RAM thôi và cái điều này nó sẽ cái làm tăng cái thời gian đang truy cập và gọi là làm giảm cái hiệu năng về hệ thống chưa? Đó là cái hạn chế của cái phương pháp này. Rồi chúng ta đến với cái bảng trang băm thì cái bảng trăm băm này thì nó sẽ không phổ biến cho công dạn địa chỉ lớn hơn 32 bit. Nghĩa là những cái bảng mà 64 bit như lúc nãy á thì chúng ta không dùng được. Rồi sorry sorry nghĩa là nó phổ biến cho cái không gian địa chỉ 32 bit ha. Và chúng ta đến với bảng trang bâm thì nó ý nghĩa của cái bảng trang bâm này á là à các cái bảng trang bâm được sử dụng để ánh xả các cái trang ảo đến cái cung khung trang vật lý giúp giảm kích thước của bảng trang và tăng tốc độ tìm kiểm. Đấy là cái vấn đề của cái phần tân trang ba cấp kia. Rồi cái trang bong này thì nó sẽ phổ biến cho các không gian địa chỉ lớn hơn 32 bit và nó thường được sử dụng khi mà không gian địa chỉ logic lớn. Cái số trang ảo được băm vào cái bản trang. Số trang ảo được đưa vào một cái hàm bông để tạo ra một cái chỉ mục và bảng băm. Bảng trang chứa cất cái chuỗi phần tử băm đến cùng một vị trí. Mỗi phần tự chứa số trang ảo, số frame vật lý được cánh xạ. Con trỏ đến là từ tiếp theo trong chỗ anh đều có. Rồi việc tìm kiếm ánh xạ số trang ảo cần được băm và sau đói liên kết tại vị trí băm được duyệt để tìm một cái mục khớp và số trang ảo. Rồi biến thể cho cái địa chỉ 64 bit là bản trang theo cụm tương tự như trang mâm nhưng mỗi mục nó sẽ tham chế đến một nhiều trang ví dụ từ 16 thay vì 1 và đặc biệt hữu ích cho các không gian địa chỉ thơ thấp. Vậy cái bảng tr bom này là một cái phương pháp hiệu quả để quản lý các cái trang lớn được chưa? Và đặc biệt trong cái hệ thống không gian địa chỉ lớn 32 bit lớn hơn 32 bit và cái không gian địa chỉ thư thớp nó sử dụng hàm bâm để tìm kiếm các cái ánh xả trang frame xử lý xung đột bằng cách sử dụng các cái danh sách liên kết. Ờ ví dụ ha à mình đưa ra một cái ví dụ để dễ hiểu hơn về cái trang băm này thì là mình tưởng tượng một trang băm giống như một cái thư mục chứa các tệp. Thay vì có một vị trí cố định cho mỗi trang ảo thì chúng ta tìm một cái hàm băm. Ví dụ như lấy cái chữ cái đầu của tên trang ảo để xác thực thư mục nào có thể chứa thông tin về cái trang đó. Mỗi thư mục có thể chứa một chứa nhiều tệp vì các cái tên trang ạo. Rồi tiếp theo đây là cái sơ đồ của cái bảng trang bâm này. Thì các cái bước quy trình nó sẽ thực hiện như thế này. Đầu tiên á là CPU nó sẽ truy cập đến cái địa chỉ logic. Địa chỉ này tạo ra bao gồm cái số trắng ảo P và độ lệch D. Đây bây giờ cái P này sẽ chứa cái số trắng ảo hơn. Rồi dựa đưa cái P này vào cái hàm băm đang ảo ra được chưa? Để tạo ra một cái giá trị băm đây. Had truy cập vào cái cái cái bảng băm này thì nó sẽ giá trị băm sẽ được sử dụng làm chỉ mục để tìm kiếm trong cái hasp các cái headb như lúc nãy chúng ta nói đó là các cái giá trị ví dụ như cái đầu được chưa? Rồi và lấy cái số frame vật lý. Ở đây chúng ta sẽ lấy cái số. Rồi sau khi mà truy cập vào cái hàm bom này để tìm kiếm được cái chỉ mục rồi á thì mình sẽ tìm kiếm cái phần ánh xạ tại cái vị trí được chỉ trong cái mục trong cái bảng bâm để có một cái chuỗi các cái mục đến các cái ô liên kết nhau. Hệ thống sẽ tìm kiếm trong cái chuỗi này để tìm một cái cái mục khớp với số P ban đầu. Ok. À tiếp theo nữa là nó lấy cái frame vật lý, địa chỉ frame vật lý ra và kết hợp với cái phần D này để truy cập vào cái bộ nhớ cái cái cốt lõi của cái hàm cái bảng băm này á là sẽ ở cái phần tìm kế bán xạ này sau khi mà đã lấy được cái giá trị à truy cập vào cái hàm băm này rồi thì nó sẽ dựa trên nó sẽ tìm kiếm truy cập vào cái tìm kiếm tính dạng và tại vị trí cái chỉ mục trong cái bảng băm đã được lấy ra rồi thì nó sẽ lấy được một cái chuỗi các cái mục và được biểu diễn vào cái gọi là các cái ô liên kề với nhau. Ví dụ như các cái ô này hệ thống sẽ tìm kiếm đ cái chỗ này để tìm một cái mục khớp với cái số trang ảo ban đầu. Ở đây chúng ta ví dụ như là chúng ta đang tìm cái mục nào có cái chữ B này chẳng hạn. Đây và trong mỗi cái chuỗi chứa số trangng ảo này thì lấy ra một cái cái số frame vật lý R tương ứng. Và đây là cái R tìm kiếm. Và sau khi đã có cái số frame rồi thì nó sẽ kết hợp cái phần D gọi là cái offset để mà mà truy cập vào cái bộ nhớ tính bộ nhớ vật lý. Tiếp theo ha. hãng cao động ngược thì nó là một cái cái cách tiếp cận khác để quản lý cái việc ánh xạ các cái trang tập trung vào cái các cái phương trang vật lý thay vì các cái trang logic của từng tiến trình. Ờ ở đây á thì nó không giống như các cái bảng trang thông thường là thay vì mỗi tiến trình có một cái bảng trang bình thường để theo dõi tất cả các trang volic thì cái bảng trang động ngược này nó sẽ theo dõi tất cả các cái trang vật lý trong hệ thống đó. Rồi một mục nhập cho mỗi trang vật lý thì cái mục nhập cho cái bản trang vật lý này thì bản trang động ngược nó có một cái mục nhập cho mỗi frame trang vật lý của bộ nhớ. Rồi cái mục nhập chứa cái địa chỉ ảo của trang được lưu trữ tại vị trí bộ nhớ vật lý. Đó cùng với cái thông tin về tiến trình sở hữu trang. Nghĩa là nó lưu cả ví dụ nó lưu P1 luôn này rồi lưu cả cái frame vật lý luôn. Đó ưu điểm của cái này là giảm cái bộ nhớ cần thiết để lưu trữ bảng trang nghĩa là giảm cái kích thước của cái bảng trang đi. Rồi nhược điểm nó tăng thời gian tìm kiếm. Vậy vì sao? Nó sẽ tạo ra một cái một cái bạc bầm khi mà muốn tham chiếu đến một cái trang. Giải pháp để tăng tốc. Giải pháp được đưa ra đó là à sử dụng cái bản bâm để giới hạn cái tìm kiếm trong một hoặc vài ngục nhập bản và TBL cũng có thể giúp tăng tốc truy cập. Và vấn đề với bộ nhớ chia sẻ thì cần một cái cơ chế để ánh xả đến ánh xả địa chỉ ảo đến cái địa chỉ vật lý đã được chia sẻ rồi. Đây là cái sơ đồ của bản trao đạo ngược. Ok ha. Thì rồi đây là cái sơ đồ của cái bảng trao đảo ngược ha. Chúng ta nhìn vào cái sơ đồ này chúng ta sẽ dễ hiểu hơn. Vấn đề ở đây đó là khi mà CPU nó sẽ tạo ra một cái địa một cái địa chỉ logic bao gồm cái điểm khác biệt ở đây là có cái ID tính PID này này và cái số đang ảo pi và D. Trong cái địa chỉ logic nó sẽ có cả cái ID tiến trình nữa. Cái việc cái bao gồm cả cái ID tiến trình này là rất quan trọng bởi vì cái bảng trang độ ngược là cái cái PID này là cái phần duy nhất cho toàn bộ hệ thống. Nghĩ là sao? Một cái tiến trình này là cái giá trị duy nhất cho toàn bộ hệ thống. Rồi cái bảng trang tiếp theo là cái phần page table này này nó tạo ra cái địa chỉ logic bao gồm ID tín hình, pit id và cái phần v là số trắng ảo. Ok. trong nó lưu giữ cả hai cái giá trị này. Rồi cái phần tìm kiếm á thì là khi một cái địa chỉ logic có P ID và P và D thì nó sẽ lấy cái địa chỉ này nó tìm kiếm đến khi chính xác em nó sẽ tìm toàn bộ trong cái này. Và cái vấn đề chúng ta xảy ra ở đây đó là làm sao để tìm kiếm được nhanh nhất có thể tạo ra cái nâng cao cái hiệu suất tìm kiếm này. Nếu mà tìm thấy một cái thư mục ở trong bảng trang mà pit id và số trang P này khớp với pit ID thì nó sẽ lấy ra cái chỉ số index của mục này trong bảng trang chính. Đây lấy cái I ra và khớp với lại cái độ dời trang này để truy cập đến đánh xạ đến cái địa chỉ vật lý. Rồi tóm gọn lại nè thì chúng ta sẽ dùng PID và P thay vì như bình thường thì chúng ta sẽ dùng cái pid và P này để tìm kiếm ở trong cái phần bảng trang truyền thống. Được chưa? À cái vấn đề xảy ra hiệu suất ở đây là cái việc tìm kiếm nó sẽ chậm hơn và khi mà để nâng cao hiệu suất á thì nó sẽ có một cái bảng bong th đưa thêm vào một cái bảng bong nữa. Ví dụ như cái bảng bong này là một cái bảng hướng dẫn để tìm kiếm ở ở cái cái cái phần nèo trong cái cái cái cái bảng cái cái cái bản trang này để cho nó nhanh. Giờ ví dụ như cái pit id trị ID là 200 thì nó sẽ dựa vào cái bảng bom là 200 để nó tìm. Có thể là như thế. Đó. Đó là cái cách xử lý về cái nâng cao hiệu suất cho cái cái cái cái bảng trang đạt ngược này. Ok. Ở đây chúng ta đến với cái ví dụ về cái việc quản lý lấy bộ nhớ ảo trong cái hệ điều hành cụ thể ở đây là Oracle Spect Solary. Về cái này á thì nó sẽ sử dụng cái hàm băm à nói chung là cái Oracle này thì cái cái cái cái Solari này sẽ sử dụng cái hàm bao phức tạp để quản lý bộ nhớ ào 64 bit một cách hiệu quả hơn. Và nó sẽ sử dụng hai cái mảng băm, một cho kernal và một cho cái user để ánh xạ một cái bộ nhớ ảo trong cái bộ nhớ vật lý. Đặc điểm là mỗi một mục nhập trong cái bảng bong này đại diện cho một vùng bộ nhớ ảo liên tục được xác định đợi cái địa chỉ cơ sở và số lượng trang span giúp làm tăng hiệu quả và giảm kích thước bằng băm so với việc ánh xạ từng trang riêng mảnh. Rồi thì nó cũng sử dụng cái việc là thực ra thì từ một cái bảng bông thì nó sẽ ánh sạ thành hai bảng bông và ánh sạ đến cái vùng cái bộ nhớ liên tục. Rồi cái mục nhập á thì nó chứa cái địa chỉ ảo của cơ sở vùng nhớ và số lượng trang span mà mục đỏ mục nhập nó đại diện nó sẽ hiệu quả hơn cái việc ánh xạ từng cái trang một. Và cái phương pháp của cái Solari này thì nó sẽ hiệu quả hơn với mặt kích thước bảng băm và à tốc độ tìm kiếm so với việc có một mục nhập cho một cái trang riêng đơn lẻ nào đó. Rồi ờ về cái phần TPL nó giữ lưu trữ với TPL. Tiếp theo á là cái Solar nó ở trong cái nội dung này thì là cái Solary nó sử dụng cái TBL và một cái bộ nhớ đệm phần cứng để tăng cái tốc độ dịch cái địa chỉ hay là tìm kiếm cái địa chỉ vật lý đã được lưu trữ. Thì cái TBL trong Solary này sẽ lưu tự các cái mục nhập của các cái bảng địa chỉ. Chúng ta gọi tắt ở cái tên của nó là cái gì? Translation table entry entry hay gọi tắc là cái gì? À TT TTE để cái tra cứ phần chứng nhanh chóng hơn. Và một cái kết của các một cái kết của các cái T ti sẽ được duy trì trong cái bộ nhớ gọi là TSV. Ok. Khi mà có một cái tham chiếu đến địa chỉ ảo thì TLP sẽ được tìm kiếm trước. Nếu không tìm thấy gọi là nếu như mà TLP mid thì phần cứng sẽ tìm trong TSP. Nếu vẫn không tìm thấy thì sẽ can thiệp để tìm kiếm trong cái bảng bong và tạo ra một cái Thi Y mới. Ok. Vấn đề ở đây chúng ta cần phải hiểu rằng đó là TLB nó sẽ lưu trữ các phục nhập trong cái bảng dịch TTI để tra cứu đến cái phần cứng và cái case tạo ra một cái case TTE được duy trì trong cái bộ nhớ song song với lại TLP. Ok. Và cái kết này sẽ được gọi là TSB. Khi mà có tham chiếu đến địa chỉ ảo nghĩa là CBO nó sẽ lên tham chiếu đến cái CBO nó có cái gọi là có nhu cầu vấn đến thì nó vẫn tuân theo một quy trình đó là TLB sẽ được tìm kiếm trước. Nếu như mà không thấy thì nó tìm trong TSB, nghĩa là nó tìm trong hai cái kết trước. Và nếu như không tìm thấy nữa thì Gel sẽ can thiệp để tìm kiếm trong cái bảng bom và tạo ra một cái TI mới. Tóm lại ở đây á thì là Solary sẽ sử dụng một cái hệ thống quản lý bộ nhớ ảo hiệu quả phối hợp giữa cái TLB và TSP. TLB thì cung cấp khả năng tr cứu nhanh cho các cái ánh xạ thường xuyên được sử dụng. Còn TSP thì nó đóng vai trò như một cái kết thứ cấp lớn hơn trong cái bộ nh chính giúp giảm số lần phải truy cập vào cái bảng băm. Và tất nhiên truy cập vào cái bảng bom thì nó có thể nó sẽ luôn phức tạp hơn và chỉ khi mà không tìm thấy ánh xả cái thông tin trong cả T LB và TSB á thì cơ đồ nó mới can thiệp để tìm kiếm trong cái bảng bắp mà thôi. Đó và cách này là cách mà gọi là tiếp cận tiếp tối ưu hóa cái hiệu suất dịch địa chỉ trong cái Solary. Rồi mình đến với swapping hán đổi thì đây là một cái kỹ thuật mà nội nội dung chính là nó sẽ di chuyển các cái tiến tỉnh à ra khỏi cái bộ nhó chính là ra sang một cái phân vùng lưu trữ nằm ở trên đĩa mà hệ điều hành sẽ tạo ra ở trên đĩa gọi là backing store. về khi cần thiết ấ thì nó sẽ đưa trở lại bộ nhớ để tiếp tục thực thi cái cái cái hạn chế chính của cái cái phương pháp này á của cáiing này là cái chi phí của Hà Nội nghĩa là cái thời gian truyền dữ liệu nó sẽ bị ảnh hưởng bởi vì sao cái tốc độc ghi của cái đĩa đĩa cứng dữ HD hoặc luôn luôn chậm hơn rang và nó sẽ sẽ có thể làm giảm hiệu suất tuy nhiên á thì nó sẽ giúp hệ thống có thể chạy được nhiều tiến trình hơn với cái tổng dung lượng bộ nhớ chính bộ nhớ r nhỏ nhỏ hơn nhưng mà tốc độ thì nó sẽ chậm hơn. Đó. Rồi ở cái phần này thì một cái nó người ta vấn đề là một cái tiến trình có đưa ra một cái vấn đề đó là một cái tiến trình có cần hoán đổi trở lại cùng với địa chỉ vật lý hay không hay phụ thuộc vào cái phương pháp gắn kết địa chỉ. Nghĩa là sao? P1 đang nằm ở một cái địa chỉ vật lý là với cái frame là frame F chẳng hạn. Sau khi mà Roll roll out nó ra và run in lại thì sao? à nó có cần phải đưa về đúng cái địa chỉ vật lý cũ của nó hay không. Rồi à các cái hoạt động nhập xuất đang chờ xử lý cũng cần được xem xét. Các thế hệ điều hành hiện đại thường có các cái phiên bản thật toán hoán đổi được điều chỉnh thường bị tắt theo mặc định và chỉ khi hoạt bộ nhớ cái bộ nhớ khi mà nó bị áp lực lớn hoặc là có dấu hiệu là bị tràn bộ nhớ á thì nó mới kích hoạt cái việc hoán đổi này thôi. Và chúng ta thấy rằng cái việc khoán đổi là một cái cơ chế dự phòng cho những cái cái bộ nhớ vật lý không đủ và nó cần được sử dụng thận trọng. Đây là cái sơ đồ về cái scrapping. Chúng ta có thể dễ dễ dàng hình dung ha. Đây là cái phần user và các cái tiến trình có thể đi vào thông qua spap out và nó đi ra cái phần backing store. Đây là backing store này là nằm đất đĩa này. Còn đây là main memory và cái các cái process nó có thể chuyển qua trở lại thông qua scrap out hay là scrap in. Rồi mình đến với cái phần này đây là cái thời gian chuyển đổi ngữ cạnh. Cái nhật điểm đầu tiên mà mình cần chỉ ra của cái phần slapping đó là với một cái tiến tình hay chúng ta gọi là trong cái bài toán này ha với một tính tình là 100 m cái tốc độ truyền truyền dữ liệu là 50b/ giây thì sao cái phần scrap out đây scrap out để đưa ra một cái tiến trình như thế này một cái tiến trình 50 m này là mất 2 giây. Ok. Web out mất 2 giây thì là tương đương với lại là cả web out và swap in. Tương đương với việc đó là chúng ta cần phải chờ đến 4 giây để hoàn tất cái việc à sinking này. Vậy cái tác động ở đây là gì? Là cái thời gian này làm chậm cái hiệu suất của hệ thống. Bởi vì sao? cái việc mà ví dụ như cả hai tiến trình trong cùng một cái đang đang nằm trên một cái RAM đi và tiến tình P1 đang gọi là sau về các cái cái thuật toán mà ừ gọi là dùng cái context s á thì cái context s này nó chỉ mất trong tầm khoảng vài micro giây để chuyển đổi từ một cái tiến trình nameway sang một cái tiến về sang chuyển đổi cái trạng thái từ ready sang running mà thô Thôi. Còn cái smartping này thì sao? Nó mất đến 4 giây là đây là có thể gọi là ví dụ thôi ha. Nhưng mà dù ra thì nó cũng mất đến 4 giây để nó thực thi một cái tiến tinh. Và đây là một cái tác động thời gian gọi là nó làm giảm đi hiệu suất của cái hệ thống đi rất là lớn. Rồi cái thứ hai nữa đó là cái thời gian chuyển đổi và cái cái scrapping này cần phải chú ý thêm một cái phần nữa đó là cái thời gian chờ của các thiết bị nhập xuất. Nếu một tiến trình nhập suất như là đọc hoặc là ghi dữ liệu nó bị wap out ra đang chờ nha. Ví dụ P1 đang chờ để được đọc ghi dữ liệu được chưa? Và nó bị stop out ra thì cái việc đọc ghi này nó sẽ gửi đến sai tiến tỉnh. Chúng ta hiểu rằng ví dụ đối với đây P1 P1 này đang đang chờ để được đọc ghi dữ liệu và nó đang giữ một cái địa chỉ vật lý lại trên RAM. Ok. Nhưng mà nó đang chờ như vậy thì nó bị SP out ra. Ok. Và thay vào đó là cái process 2. Và sau kết thúc quá trình chờ rồi thì cái phần dữ liệu mà process 2 được nhận được là của Process 1. Đây là vấn đề mà à nó xảy ra. À cái vấn đề xảy ra ở đây. Ok. Rồi cái double bing này là cái gì? Trong cái hệ thống sử dụng double bing là kỹ thuật dùng hai bộ nhớ đệm để tăng tốc việc nhập xuất làm tăng chi phí và bộ phức ạ. Điều này gây thêm cái ánh lượng xử lý cho hệ thống. Rồi vậy thì tổng cái vấn đề thì cái swapping làm tăng cái thời gian chuyển đổi lên đến 4 giây cho các cái tiến tình và cái chậm hệ thống được chưa? Và ngoài thời gian scpping còn gặp cái vấn đề về hiệu su phất nhập nên cần phải quản lý bộ nhớ hiệu quả hơn và giảm kích thước bộ nhớ swap lại. Đó đây là nội dung của scrapping. Rồi với cái swapping trên mobile thì nó sẽ hạn chế bộ nhớ trên cái thiết bị di động. Trên cái thiết bị di động thì bộ nhớ class nhanh nhưng dung lượng rất là hạn chế. Số chu kỳ độc ghi của class và dễ hào mòn. Hiệu suất của CPU nó và bộ nhớ trên cái thiết bị di động kém hơn rất nhiều so với máy tính truyền thống. Và đây là cái giải pháp thay thế khi mà bộ nhớ thấp. Ví dụ như iOS thì yêu cầu ứng dụng tự nguyện giải phóng bộ nhớ đã cấp phát. Nếu không thì dữ liệu chỉnh được đọc with lưu sẽ bị xóa và tải lại từ flash khi cần. Còn Android đó là phải kết thúc ứng dụng khi mà bộ nhớ thâm. Ưu tiên ghi dữ liệu trước khi dừng và cả hai liệu hành này thì hỗ trợ nhanh là pháp restart để khôi phục ứng dụng hiệu quả. Tổng lại á là do hạn chế của bộ nhớ flash thì à cả iOS và Android đều tránh dùng choing mà ưu tiên các chế giải phóng tự nguyện à và kết ứng dụng hoặc là à phương pháp phân trang nhanh để còn lấy bộ hậu quả nhớ hiệu quả hơn. Rồi sự wing với phần phân đây à đây là cái wpping với phân tang ha. Đây là một cái kỹ thuật phổ biến trong cái hệ điều hành hiện đại để kết hợp cái ưu điểm của cả hai phương pháp quản lý bộ nhã ạo. Đầu tiên cơ chế squpping. Ờ với cái page out đầu tiên này thì gì? nó sẽ lấy những cái một phần ví dụ một số page của cái tiến trình ví dụ như cái tiến trình process A này này nó sẽ lấy ra một cái số page như là BCE để đưa ra chuyển ra bên ngoài. Có thể là những cái page này nó ít được truy cập và lưu vào trong một cái backing store ở bên ngoài. Rồi khi mà P in ấy thì nó cũng sẽ chỉnh lấy từ cái backing store một vài phần đã được đưa ra ngoài của cái process B mà thôi. Và với cái ý ý nghĩa của phần wap sping này kết hợp cả hai cái phần này á là cho phép hệ hành quản lý bộ nhớ hiệu quả hơn bằng cách chia nhỏ cái tiến trình thành các page thay vì swap toàn bộ cái tiến trình ra chúng ta hiểu ở đây á là ví dụ một cái tiến trình như lúc nãy với scrapping bình thường á thì nó sẽ lấy toàn bộ cái tiến trình đưa ra cái backing store. Còn ở đây á thì nó chỉ lấy một phần thôi. Một phần các cái tiến các cái cái cái trang mà ít được sử dụng chẳng hạn nó sẽ đưa ra ngoài. Nếu như được gọi được sử dụng lại thì nó sẽ đưa vào lại đưa vào trong cái cái bộ nhớ lại với đầy đủ các cái vị trí frame truy cập. Bởi vì sao? Lúc này á cái process vẫn đang nằm ở trên RAM. Được chưa? Đó. Rồi các cái phần ví dụ này thì chúng ta đọc thêm ha. Ở đây chúng ta sẽ tìm hiểu về cái IA32. Vậy thì Ia32 là gì? IA32 là một cái kiến trúc tập lệnh 32 bit thuộc dòng X86. Và các đặc điểm chính của I32 thì nó sẽ sử dụng các cái thanh 32 bit này và sử dụng cái kỹ thuật phân đoạn phân trang và tân thích ngược. Và nó được ứng dụng trong các cái hệ đều hành 32 bit. Được chưa? À cái trong cái này thì chúng ta sẽ tìm hiểu cái luồng xử lý chuyển đổi cái địa chỉ từ logic sang vật lý. Thì đầu tiên nó sẽ CBU sẽ tạo ra cái đị chỉ logic bao gồm các setment và các off. Rồi tiếp theo cái setmentation unit tức là cái đơn vị phân đoạn này nè. thì nó sẽ chuyển đổi các cái địa chỉ logic này thành cái địa chỉ tuyến tính liner bằng cách ánh xạ và phân đoạn các phân đoạn và cộng các set lại. Còn cái liner add này cái nó sẽ được chia thành các cái ví dụ như ở đây là P1, P2 và D này này. Cái P1 là chỉ số thư mục trang, cái P2 là chỉ số bảng trang và cái D là cái offset trong cái trang. Rồi cái page unit, cái page unit là cái đơn vị phân trang dùng P1 P2 để phân để tra cứu các bảng trang và xác định các khung trang. Còn cái a tạo ra cái địch vật lý ha. Rồi tiếp theo đây là cái gọi là cái phần phần phần cơ chế trong cái segmentation từ cái địa chỉ logist bao gồm có selector và offet lúc nãy thì cái phần selector nó sẽ được địa chỉ logist nó sẽ được à gọi là trong cái phần selector này này thì sẽ được tra cứu trong cái bảng à bảng segment description này gọi là cái bảng mô tả để lấy ra được cái segment description và ừ trong cái setment decp decper chứ decp này thì nó sẽ chứa các cơ sở chứa các cái địa chỉ cơ sở là BRZ và các cái thuộc tính như là giới ví dụ như là phần giới hạn rồi quyền truy cập các thứ đó. Rồi về cái địa chỉ tuyến tính cái liner address ở phía dưới này thì nó sẽ được sẽ là do cái địa chỉ cơ sở được cộng với cái offset. Địa chỉ cơ sở lấy ở trong cái setment degister này cộng với lại cái offset để tạo ra cái liner này. Ok ha. Ở cái tiếp theo này ha, chúng ta sẽ đến với cái phần mở rộng cái địa chỉ trang trong Intel à trong cái Intel J32 này quan trọng hơn. Mục đích là cái PAE này này. PAE nó sẽ cho phép một cái hệ thống 32 bit vượt quá giới hạn địa chỉ 4 GB để làm gì? Mở rộng cái không gian địa chỉ vật lý lên đến 64 GB. Và cơ chế hoạt động là mở rộng cái địa chỉ vật lý. Bình thường thì IA32 chỉ hỗ trợ địa chỉ 32 bit thôi. Tối đa 4 GB. Với pee thì địa chỉ vật lý được mở rộng lên 36 bit và cho phép trư tập 64 GB bộ nhớ. Sử dụng cái phân trang ba cấp thay vì hai cấp. Và cái phân trang ba cấp này thì bao gồm có cái Bister P table là cái phần cao cấp nhất để chứa các con trọ đến page Dor. Còn cái page register là chứa các con trọ đến cái page table à gọi là cái bảng trang á. Cái page table này chứa các địa chỉ của các khung trang trong bộ nhớ vật lý. Cấu group đội chỉ tuyến tính vẫn là 32 bit. Thanh ghi CR3 thì sẽ trỏ đến cái P register table để bắt đầu quá trình ánh sạ địa chỉ. Về cái hiệu quả của cái PE này thì là không gian địa chỉ vật lý nó sẽ được mở rộng từ 4 GB lên 64 GB nhưng không gian địa chỉ tuyến tính của mỗi tuyến tình vẫn giới hạn là 4 GB vì vẫn là hệ thống 32 bit mà thôi. Và cái PAE này là một cái giải pháp tạm thời để mở rộng cái bộ nhớ nó trên cái hệ 32 bit trước khi chuyển sang cấu trúc 64 bit. Rồi ở cái cấu trúc Intel X8664 này hay gọi còn gọi là AMD64 á thì là kiến trúc 64 bit mở rộng từ cái IA32. Và cái cơ chế phân trang này thì nó sẽ là cái cấu trúc địa chỉ ảo 48 bit được chia thành các cái phần như là từ bit 6 48 đến bit 1100 110 nó sẽ sử dụng cái các cái chỉ số từ cấp 1 2 3 4 và kiểu vậy và nó sẽ sử dụng phần tră bốn cấp bao gồm có là à ở đây là cái gì ừ sử dụng cái cơ chế phân đang bốn cấp thôi. Và kích thước của mỗi trang á thì nó sẽ hỗ trợ các cái kích thước trang từ bốn 4 K 3 R2M và 1 KB tùy thuộc vào cấu hình hệ điều hành và thật cứng. Rồi và nó tương thích với PAE cũng có thể ờ gọi là X8664 này cũng có thể sử dụng cái PAE để mở rộng địa chỉ vật lý lên 52 bit và hỗ trợ cái bộ nhớ vật lý lớn hơn. Rồi kết thúc cái phần nội dung của chương thì các em cần nắm lại các cái liệt kê và nắm lại các thông tin của các cái thứ nhất là phân biệt ra không gian địa chỉ logic và vật lý này. Thứ hai là cái phần MMU đơn vị quản lý bộ nhớ các cái việc cấp thoát liền kề rồi à các cái dynamic loading tải động này kiến thức về dynamic loading rồi dynamic linking rồi các cái phân vùng biến đổi. Tiếp theo là bài toán cấp pháp của nhớ động. Rồi các cái dạng bài toán cấp pháp của nhớ động và các cái loại phân mạch. Tiếp theo là về phân trang. Ở trong cái phân trang này thì cần phải chú ý được các cái bài toán tránh được cái phân mảnh, tránh được các cái vấn đề về các cái bộ nhật v thức khác nhau tới. Rồi theo dõi tất cả các cái frame trống đó. Rồi và lực độ. Tiếp theo là phần về lực độ dịch địa chỉ rồi cái phần TLB rồi thời gian cập hiệu quả và bảo vệ bộ nhớ. Rồi chào Vlog ha. H

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript