[HDH] Bài tập quản lí bộ nhớ first fit, work fit, best fit

[QUOTE=11520537;181170]thế mi nghĩ đây là phân trang hay phân đoạn? với tau thì là phân đoạn.[/QUOTE]đây là phân đoạn vì các vùng nhớ có kích thước khác nhau,vậy bài trên cách của thầy Khánh là đúng.

Bài này thầy nào làm cũng đúng hết chỉ có cái đề là không rõ ràng thôi :sweat:… các bạn hiểu thế nào là “phân mảnh nội” và “phân mảnh ngoại” thì sẽ ngộ ra :sunglasses:

giải thích rõ hơn đi anh Mẫn

lật slide ra check lại phòng trường hợp mình nói sai nha, mới chơi dại nên toàn bộ tài liệu của 4 năm nay bị xóa sạch rồi :stick:

Phân mảnh nội: xảy ra khi bộ nhớ được chia thành các khối cố định
Phân mảnh ngoại: xảy ra bộ nhớ không được chia thành các khối cố định. Thằng nào vào => cấp đủ vùng nhớ cho nó, nếu nó dùng xong, trả lại thì dùng cái đó cấp cho thằng khác => phân mảnh

Nguyên nhân gây ra 2 hiện tượng này là do cách chúng ta cấp phát bộ nhớ như thế nào

nếu cấp phát theo các khối cố định -> mỗi tiến trình được cấp cho 1 khối -> phân mảnh nội (cách làm của thầy Lung)
nếu cấp phát đủ theo yêu cầu của tiến trình -> mỗi thằng chỉ lấy phần của nó phần còn dư cấp cho thằng khác-> phân mảnh ngoại (cách làm của thầy Khánh)

Với bài này theo ý kiến CHỦ QUAN của mình thì cái bài đó nó cấp phát cố định nên cách làm của thầy Lung hợp lý hơn. Nhưng vấn đề ở chỗ cái cách đó giờ chả có OS nào xài, làm theo cách của thầy Khánh thì hợp thời hơn :stick:

[QUOTE=08520229;181229]lật slide ra check lại phòng trường hợp mình nói sai nha, mới chơi dại nên toàn bộ tài liệu của 4 năm nay bị xóa sạch rồi :stick:

Phân mảnh nội: xảy ra khi bộ nhớ được chia thành các khối cố định
Phân mảnh ngoại: xảy ra bộ nhớ không được chia thành các khối cố định. Thằng nào vào => cấp đủ vùng nhớ cho nó, nếu nó dùng xong, trả lại thì dùng cái đó cấp cho thằng khác => phân mảnh

Nguyên nhân gây ra 2 hiện tượng này là do cách chúng ta cấp phát bộ nhớ như thế nào

nếu cấp phát theo các khối cố định -> mỗi tiến trình được cấp cho 1 khối -> phân mảnh nội (cách làm của thầy Lung)
nếu cấp phát đủ theo yêu cầu của tiến trình -> mỗi thằng chỉ lấy phần của nó phần còn dư cấp cho thằng khác-> phân mảnh ngoại (cách làm của thầy Khánh)

Với bài này theo ý kiến CHỦ QUAN của mình thì cái bài đó nó cấp phát cố định nên cách làm của thầy Lung hợp lý hơn. Nhưng vấn đề ở chỗ cái cách đó giờ chả có OS nào xài, làm theo cách của thầy Khánh thì hợp thời hơn :stick:[/QUOTE]một số tài liệu tiếng anh làm giống cách của thầy khánh vd:Operating System Concepts, 8th Edition.mọi người xem hình đính kèm

os.PNG

[QUOTE=11520549;181230]một số tài liệu tiếng anh làm giống cách của thầy khánh vd:Operating System Concepts, 8th Edition.[/QUOTE]

http://coltech.vnu.edu.vn/httt/components/com_joomlaboard/uploaded/files/nlhdh_tuan6.pdf

cái slide này có đề cập nè, trang 18

Bộ nhớ được chia thành các khối với cỡ cố định, mỗi tiến trình được cấp phát một khối

Mình không nói cách nào sai nhưng mà đề không cho biết vùng nhớ có “cố định hay không”… các bạn có thể check lại slide để xem lại coi có dòng “mỗi tiến trình được cấp phát 1 khối hay không”… mình nhớ slide của thầy Lung có câu này, còn của thầy Khánh thì chịu.

còn cuốn này “Operating System Concepts, 8th Edition” hình như nó mới edit, mình nhớ đọc cuốn 7th Edition thì vẫn theo cách của thầy Lung. Lâu rồi không biết có nhớ đúng ko nữa :smiley:

đã có câu trả lời từ thầy Trung. thầy ấy nói trường hợp do đề bài không nói rõ là phân mảnh nội hay ngoại nên khi làm bài cần xác đinh rõ làm theo hướng nào rồi mới làm. thầy nói thêm là lớp của thầy dạy khi thi sẽ làm theo cách học trên lớp( phân mảnh nội).
ý mình:
phân mảnh nội thì 1 phân vùng chỉ chứa 1 process, do đó, không thể tận dụng phần dư được. cách 2 đúng với trường hợp này.
phân mảnh ngoại thì 1 kích thước của process = kích thước của vùng nhớ cấp phát cho nó, phần còn dư thì tiếp tục dùng để cấp phát cho các process phù hợp, do đó cách 3 đúng.
có vẻ như cách 1 ý thứ 3(worst fit) sai.

Ý của Sang hỏi thầy Trung mình nghỉ là kết thúc vấn đề rồi nhỉ.

đời không như là mơ, rốt cuộc là thế nào? Một bài mà hai cách hiểu thì chết rồi. Nhưng vẫn bảo vệ quan điểm của mình là dung cách thứ 3.

[QUOTE=08520229;181231]http://coltech.vnu.edu.vn/httt/components/com_joomlaboard/uploaded/files/nlhdh_tuan6.pdf

cái slide này có đề cập nè, trang 18

Mình không nói cách nào sai nhưng mà đề không cho biết vùng nhớ có “cố định hay không”… các bạn có thể check lại slide để xem lại coi có dòng “mỗi tiến trình được cấp phát 1 khối hay không”… mình nhớ slide của thầy Lung có câu này, còn của thầy Khánh thì chịu.

còn cuốn này “Operating System Concepts, 8th Edition” hình như nó mới edit, mình nhớ đọc cuốn 7th Edition thì vẫn theo cách của thầy Lung. Lâu rồi không biết có nhớ đúng ko nữa :D[/QUOTE]
đời luôn biến đổi anh ơi, không biết đường nào mà lần.

[QUOTE=11520537;181322]đời luôn biến đổi anh ơi, không biết đường nào mà lần.[/QUOTE]

nhưng luôn tồn tại cái bất biến trong đó… 2 cách giải trong bài này đều đúng, chỉ có 1 cái đã cổ lỗ sỉ ko phù hợp với hệ điều hành bây giờ còn cái kia thì hợp thời hơn thôi. Bản chất vẫn như nhau :funny:

đã có hồi âm từ thầy Lung:

Em hỏi rất chính xác thể hiện em hiểu bài rất rõ. Ở đây cần phân biệt 2 trường hợp;Fixed partitioning và dynamic partitioning. Do đề bài không đề cập đến loại nào nên nếu là Fixed Partitioning thì cách thầy và của thầy Trung là đúng. Em xem lại slide phần này thầy có nhận xét “Không hiệu quả do bị phân mảnh nội: một chương trình dù lớn hay nhỏ đều được cấp phát trọn một partition” hoặc trong sách ghi rõ “Each partition may contain exactly one process”. Nếu là Dynamic partitioning thì theo cách thầy Khánh. Như vậy ở đây do khi giải bài thầy đã không giải thích rõ cho mấy em và cũng không đưa ra 2 trường hợp nên thầy sẽ họp tổ giảng dạy môn HĐH và nếu mấy em làm theo cách nào cũng sẽ đúng nhá.

kết thúc tại đây nha.

xong phim, mời cả nhà gáy khò khò!:tire:

[QUOTE=11520327;181466]đã có hồi âm từ thầy Lung:
[/QUOTE]
hihi thế là ok rùi anh em yên tâm được rồi hehe không ngờ nó cũng hót chứ bộ:funny:

Phải cảm ơn bác Lăng Hoài Sang đã ‘lăng’ xả nhiệt tình gửi mail cho thầy chứ.:baffle:

lưu ý các bác là đã làm theo cách cấp phát cố định hay ko cố định thì phải làm cho cả 3 giải thuật đó ko là teo:beauty:

Cách của thầy Lương Ngọc Khánh là hoàn toàn đúng đó bạn.
First fit: là xét từ bên trái sang phải, cái nào mà phù hợp đầu tiên thì lấy nó đem cấp phát.
Best fit: là lấy cái nào mà vừa hoặc là gần khít (vùng nhớ đem cấp phát >= vùng nhớ yêu cầu) thì đem ra cấp phát.
Worst fit: là lấy cái lớn nhất trong số các vùng nhớ đó mà phù hợp đem ra cấp phát.

Thuật toán nào cho phép sử dụng bộ nhớ hiệu qủa nhất trong trường hợp trên ?

Vậy kết quả câu này là gì ta ? :canny:

[QUOTE=11520237;181626]Cách của thầy Lương Ngọc Khánh là hoàn toàn đúng đó bạn.
First fit: là xét từ bên trái sang phải, cái nào mà phù hợp đầu tiên thì lấy nó đem cấp phát.
Best fit: là lấy cái nào mà vừa hoặc là gần khít (vùng nhớ đem cấp phát >= vùng nhớ yêu cầu) thì đem ra cấp phát.
Worst fit: là lấy cái lớn nhất trong số các vùng nhớ đó mà phù hợp đem ra cấp phát.[/QUOTE]
bác đọc lại mấy cái post trước dùm em, mọi chuyện đã ngã ngũ khi cả thầy Trung và thầy Lung đều kết luận là đề chưa rõ rang, nên sinh viên làm hướng nào cũng được nhưng phải nhất quán cách đó cho cả ba giải thuật.

Uhm. Mình cũng mới biết à.
Hy vọng là vào phòng thi sẽ ko còn gặp TH này nữa.
Nếu ko thì 3 cách đều được, như vậy thì có vấn đề lớn rồi.