[Question] cách thức quản lý bộ nhớ ram |
19/12/2013 14:59:15 (+0700) | #1 | 279249 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
qua thời gian nghiên cứu đã lâu trên kiến trúc x86.
Mình chỉ thấy cơ chế quản lý bộ nhớ đoạn mà thôi
Không thấy cơ chế paging
Bạn nào biết cơ chế paging thì xin liên hệ với mình
panfider0@gmail.com |
|
[Unix] live free or die
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
19/12/2013 18:37:25 (+0700) | #2 | 279253 |
Stanley_00
Member
|
0 |
|
|
Joined: 01/03/2011 06:21:38
Messages: 74
Offline
|
|
Anh vẫn còn nghiên cứu tiếp đấy à?
Anh xem qua link này chưa nhỉ?
http://goo.gl/nO5PZo |
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
21/12/2013 11:34:35 (+0700) | #3 | 279262 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
trước khi hỏi mình đã tìm và đọc trên wikipedia và nhiều nguồn khác rồi.
Và mình không hiểu gì hết.
Chỉ biết là cách qurn lý bộ nhớ ram là paging.
Tuy vậy nhưng chưa hiểu cách paging là như thế nào |
|
[Unix] live free or die
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
03/01/2014 10:36:46 (+0700) | #4 | 279387 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
sao không ai giúp cho mình hiểu cơ chế quản lý bộ nhớ ram hết vậy?
MÌnh con một thắc mắc nữa là cơ chế đa xử lý của bộ vi xử lý?
Làm sao để đa xử lý khi mà chương trình được lâp trình để chạy từ trên xuống dưới |
|
[Unix] live free or die
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
22/01/2014 15:29:19 (+0700) | #5 | 279524 |
myquartz
Member
|
0 |
|
|
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
|
|
panfider wrote:
sao không ai giúp cho mình hiểu cơ chế quản lý bộ nhớ ram hết vậy?
MÌnh con một thắc mắc nữa là cơ chế đa xử lý của bộ vi xử lý?
Làm sao để đa xử lý khi mà chương trình được lâp trình để chạy từ trên xuống dưới
Đại khái là có thể mô tả như sau:
Trước hết phải hiểu "quản lý" là gì. Nó là việc chia chác, đánh địa chỉ, cấp phát, thu hồi, kiểm soát quyền, nạp dữ liệu... RAM cho mỗi chương trình cần đến nó.
Vì sao quản lý RAM theo paging (thay vì theo mỗi byte hoặc từng word) là vì 1 page nó to hơn, không tốn quá nhiều cho việc quản lý, truy cập, đánh địa chỉ..., page cũng bằng nhau để dễ chia chác chứ không có lẻ. Xin cấp 1 vài byte hay 1000 bytes là cấp luôn 1 page dù phần còn thừa không xài đến. Mỗi paging trong x86 là 4KByte/8KB tùy mode, nếu là huge paging nó là 2Mbyte.
Nó cũng tương tự như quản lý đất đai, người ta chia thành lô lớn rồi cấp phát chứ chả ai chia cục nhỏ đến tận mét vuông, xin cấp 10m là cấp cả 1 lô liền nhau 10m chứ không phải cấp 10 ô 1 mét (có thể không liền nhau), không đủ lô 10m thì báo là không còn.
Còn cơ chế đa xử lý, ý nói là nhiều chương trình dù viết tuần tự nhưng các chương trình vẫn chạy song song nhau, dù chỉ có 1 CPU, là do hệ điều hành thực hiện 1 việc gọi là context switch (chuyển ngữ cảnh), nó chia 1 giây ra thành nhiều slot nhỏ (ví dụ 20ms/1 slot), mỗi slot, nó gán quyền dùng CPU (đơn giản là jump tới 1 khúc nào đó để chạy) cho 1 chương trình, hết thời gian trong slot, OS nó "cướp" lại quyền chạy (bằng các ngắt của CPU) rồi save lại state của chương trình vừa bị cướp đó (state chứa thông tin chạy đến lệnh nào, trạng thái thanh ghi ra sao...), rồi load lại state của 1 cái khác đến lượt rồi lại jump, hết slot lại cướp save state. Do 1 slot rất nhỏ so với cảm giác, 1 giây có nhiều slot (20ms vị chi là 50 lần), việc cướp chuyển context cũng rất nhanh, nên cảm thấy trong 1 giây các chương trình chạy song song nhau. Thực chất là "tuần tự" nhưng mỗi ông 1 tí.
Tất nhiên vì đa xử lý nên tất cả sẽ chậm đều đi.
Nói chung cái này phải đọc tài liệu hoặc đi học môn vi xử lý thôi. Chả có cách nào tự nhiên hiểu nhanh mà không đọc và hoặc không học. Vài câu trên forum không thể lý giải hết đâu. |
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
12/03/2014 15:45:30 (+0700) | #6 | 279990 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
Cảm ơn myquartz,
myquartz đã cho mình thấy lý thuyết về cơ chế quản lý bộ nhớ(MMU).
Nhưng đó chỉ dừng lại lý thuyết mà thôi, cái mình cần là cơ chế chứ lý thuyết thì mù mờ lắm.
|
|
[Unix] live free or die
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
10/04/2014 04:41:34 (+0700) | #7 | 280245 |
hoangcuongflp
Member
|
0 |
|
|
Joined: 21/03/2014 06:42:47
Messages: 24
Offline
|
|
Em cũng đang tìm hiểu về vấn đề này.
Anh myquartz giúp em giải đáp là: Có thật sự là các bộ VXL có thể xử lý "song song", em nói "song song" ở đây có nghĩa là "cùng 1 thời điểm" chứ không phải là do nó chia nhỏ các slot ra rồi thực hiện với tốc độ rất nhanh làm cho ta cảm thấy như là nó đang chạy "song song" vậy?.
Có phải điều anh giải thích ở trên chỉ dành cho bộ VXL 1 lõi, chứ không phải các bộ VXL đa lõi như hiện nay, kể cả lõi ảo lẫn lõi thật?. |
|
Mình là 1 con gà trong công nghệ.
Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi. |
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
10/04/2014 11:19:31 (+0700) | #8 | 280259 |
Nhiều core thì nó chạy song song thật sự đó chứ !
Không biết các giáo trình vi xử lý ở VN hiện nay đã cập nhật các VXL đa core và VXL 64-bit chưa chứ hồi tui học vẫn còn học VXL 32-bit 386. Ai mới vừa học môn VXL xong cho biết thông tin nhé. |
|
Spam thêm một bài là góp một viên gạch xây diễn đàn lớn mạnh |
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
10/04/2014 16:29:03 (+0700) | #9 | 280271 |
myquartz
Member
|
0 |
|
|
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
|
|
Về cơ chế MMU thực sự (tức là sự triển khai), các bạn có thể ngâm cứu cách Linux kernel quản lý, hoặc đơn giản hơn là lấy source hệ điều hành đơn giản FreeDOS về ngâm cứu về khái niệm. Nó là sự triển khai của ý tưởng mình đã mô tả mà thôi.
Còn về xử lý song song, nếu là đa lõi hoặc đa bộ xử lý, thì nó song song thực sự giữa các CPU/core với nhau, và vẫn "giả" song song với 1 core. Ví dụ nếu máy bạn có 4 core, mà có 4 chương trình cùng chạy, thì lý thuyết là OS sẽ phân đều cho 4 core, và thực sự 4 chương trình này chạy song song nhau (không chia chác gì). Nếu có nhiều hơn, ví dụ 8 chương trình, thì từng cặp 2 cái một sẽ là giả song song trên 4 core (phải chia slot mỗi core cho 2 cái), và 4 core vẫn là song song nhau. Việc này tăng sức mạnh tính toán lên rất nhiều, nên CPU nhiều core mới thay thế loại cũ 1 core. Tất nhiên nếu chỉ 1 chương trình chạy thì cũng chỉ 1 core chạy, 3 core kia ngồi chơi.
Việc xử lý song song thật sự nó cũng có cái giá của nó, một chương trình không chỉ chạy các lệnh, mà còn truy cập tài nguyên khác, việc chạy song song kéo theo là việc xử lý xung đột tài nguyên (bộ nhớ, đĩa vào ra, cổng vào ra...) khi cả 2 cùng dùng đến 1 cái chung nhau. Có hẳn một chương dài về cái này (tiếng Anh nó là process synchronization in operating system), phải đọc thì mới hiểu rõ hơn.
Xử lý song song không chỉ thời 64bit mới có, mà thời 32bit máy chủ với nhiều bộ xử lý (dạng SMP) đã có và hoạt động. Và OS phải hỗ trợ mới tận dụng được không thì chỉ thấy 1 CPU thôi (Windows NT, 2000 hoặc Linux, tất nhiên UNIX thì có từ lâu lâu rồi). |
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
09/07/2014 17:48:42 (+0700) | #10 | 280972 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
Mình nghĩ mmu ttrong cpu chỉ là đồ giã mà thôi he he
Hh |
|
[Unix] live free or die
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
14/07/2014 08:38:04 (+0700) | #11 | 281012 |
panfider wrote:
Mình nghĩ mmu ttrong cpu chỉ là đồ giã mà thôi
Đừng nghĩ, hãy chỉ ra chứng cứ ! |
|
Spam thêm một bài là góp một viên gạch xây diễn đàn lớn mạnh |
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
18/07/2014 14:10:31 (+0700) | #12 | 281049 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
vì không có tài liệu nào của intel hay arm hoặc ibm nói chính xác về mmu.
Họ chỉ nói chung chung mà thôi
|
|
[Unix] live free or die
|
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
27/07/2014 00:48:07 (+0700) | #13 | 281093 |
|
van7hu
Member
|
0 |
|
|
Joined: 03/07/2010 02:38:47
Messages: 63
Location: Thuỷ điện Hoà Bình
Offline
|
|
Chào panfider,
Mình nhớ có một nick rất giỏi, rất giống nick của bạn, hình như là panfinder thì phải ở trong diễn đàn này.
Theo những gì mình biết, nếu nói paging là quản lý bộ nhớ thì cũng không chính xác, và nói "vì không có tài liệu nào của intel hay arm hoặc ibm nói chính xác về mmu." thì lại càng không chính xác.
Về Arm thì mình không nghiên cứu bao giờ nên không biết, còn đối với Intel, mấy cuốn manuals nói rất kỹ về vấn đề này. Không chỉ về cách quản lý bộ nhớ mà có rất nhiều thứ khác, tất cả đều rất phức tạp, và có liên quan chặt chẽ đến nhau. Ví dụ như bạn nói về "Paging" vậy, Paging chỉ được sử dụng khi Processor(s) chạy trong protected-mode, chế độ mà các hệ điều hành Windows, và *nix ngày nay đang chạy, còn trong real-mode, không có khái niệm "Paging", tất cả processes của ứng dụng và hệ điều hành đều chạy trong một address space. Để học được những khái niệm này tương đối vất vả và điên cuồng, còn nhiều thứ khác như IDT, GDT, ... . Mình cũng không nắm rõ lắm nên chỉ trả lời câu hỏi của bạn như vậy. Nếu bạn muốn thực hành thì điều kiện tốt nhất có lẽ là học cách lập trình cho Linux Kernel.
|
|
https://www.facebook.com/buivan.thu.94
Được phục vụ cho tổ quốc, đó là một niềm vinh hạnh lớn lao.. |
|
|
|
[Question] cách thức quản lý bộ nhớ ram |
27/07/2014 19:13:33 (+0700) | #14 | 281100 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
Tài liệu của intel nói tầm bậy về paging
|
|
[Unix] live free or die
|
|
[Question] cách thức quản lý bộ nhớ ram |
27/07/2014 21:38:48 (+0700) | #15 | 281104 |
|
van7hu
Member
|
0 |
|
|
Joined: 03/07/2010 02:38:47
Messages: 63
Location: Thuỷ điện Hoà Bình
Offline
|
|
Cảm thấy thật thiếu sót về kiến thức, không có thời gian nghiên cứu mấy thứ mặc dù là sở thích, nhưng lại không đem lại tiền cho mình, nên cũng chả dám nói nhiều. |
|
https://www.facebook.com/buivan.thu.94
Được phục vụ cho tổ quốc, đó là một niềm vinh hạnh lớn lao.. |
|
[Question] cách thức quản lý bộ nhớ ram |
28/07/2014 08:59:19 (+0700) | #16 | 281114 |
|
panfider
Member
|
0 |
|
|
Joined: 12/05/2010 01:51:04
Messages: 448
Offline
|
|
Tôi sẽ trả cho bạn 100 000 vnd nếu bạn nói được cơ chế quản lý bộ nhớ ram
|
|
[Unix] live free or die
|
|
|