NỘI DUNG CHƯƠNG 1: BỘ NHỚ MÁY TÍNHBộ nhớ máy tính tiếng Anh: Computer data storage, thường được gọi là ổ nhớ storage hoặc bộ nhớ memory, là một thiết bị công nghệ bao gồm các phần tử máy
Trang 1TRƯỜNG ĐẠI HỌC VĂN HIẾN
- Nguyễn Hữu Nghĩa (211A010366) - Leader
- Quách Kim Ngân (211A010188)
- Phan Huy Thông (211A010083)
- Nguyễn Gia Huy (211A010227)
- Mai Nhật Huy (211A010386)
Trang 2LỜI MỞ ĐẦU
Công nghệ thông tin đang trong giai đoạn phát triển nhanh chóng trên mọi lĩnh vực trên cả nước cũng như thế giới Trong những năm qua, nước ta đã không ngừng đầu tư, nghiên cứu vào công nghệ Tin học đã và đang là một trong những vấn đề không thể thiếu đối với bất kỳ một tổ chức, công ty hay cá nhân nào Đặc biệt hơn cả, nó đóng vaitrò vô cùng thiết yếu trong việc quản lý, điều hành ở các công ty, trường học, …
Tuy ở Việt Nam công nghệ thông tin mới chỉ phát triển trong vài năm gần đây nhưng
nó đang chứng minh cho ta thấy nó là một phần của cuộc sống của mỗi con người Nhờ
có máy móc, con người đỡ được một phần nào của công việc Việc ứng dụng công nghệ thông tin vào các hoạt động sản xuất, kinh doanh đã giúp nâng cao hiệu quả, côngsuất, tiết kiệm thời gian và công sức Và để máy tính có thể ghi nhớ, lưu trữ được tất cảnhững thông tin mà con người không thể nào nhớ hết được, con người đã phát minh ra
bộ nhớ máy tính
Trong quá trình học tập và tìm hiểu về đề tài tiểu luận “Tìm hiểu các loại bộ nhớ có thể
sử dụng trong máy tính”, nhóm 10 đã không ngừng trau dồi kiến thức và tìm kiếm thông tin về các loại bộ nhớ thông qua các chương như: bộ nhớ máy tính, quản lí bộ nhớ máy tính và đề xuất giải pháp giúp tối ưu bộ nhớ Bộ nhớ là phần thiết yếu của máy tính, giúp máy tính lưu trữ những thông tin, tài liệu quan trọng Việc quản lí, tối
ưu bộ nhớ góp phần giúp bộ nhớ làm việc chặt chẽ, nhanh nhẹn hơn Qua đề tài tiểu luận trên, nhóm 10 chúng em đã giúp mọi người hiểu nhiều hơn về bộ nhớ trong thời đại 4.0 đang phát triển vượt bậc này
Trang 3MỤC LỤC
Lời nói đầu 1
Mục lục 2
Danh mục các ký hiệu, các chữ viết tắt 5
MỞ ĐẦU 7
1 Lý do chọn đề tài 7
2 Mục đích của tiểu luận 7
3 Đối tượng và phạm vi nghiên cứu 7
4 Phương pháp nghiên cứu 7
5 Cấu trúc của đề tài 8
NỘI DUNG 9
Chương 1: BỘ NHỚ MÁY TÍNH 9
1.1 Bộ nhớ máy tính 9
1.1.1 Bộ nhớ trong 10
1.1.1.1 Các thành phần của bộ nhớ trong 11
1.1.1.1.1 RAM (Random Access Memory) 11
1.1.1.1.2 ROM (Read-Only Memory) 17
1.1.1.1.3 Bộ nhớ đệm (Cache Memory) 23
1.1.2 Bộ nhớ ngoài 24
1.2 Lịch sử phát triển của bộ nhớ máy tính 25
Chương 2: QUẢN LÍ BỘ NHỚ MÁY TÍNH 29
2.1 Các vấn đề phát sinh khi quản lí bộ nhớ 29
2.1.1 Chuyển đổi địa chỉ tương đối sang địa chỉ tuyệt đối 29
Trang 42.1.3 Quản lý bộ nhớ đã cấp phát và chưa cấp phát 31
2.1.3.1 Các phương pháp quản lí việc cấp phát bộ nhớ 31
2.1.3.2 Các thuật toán chọn một đoạn trống 32
2.2 Các mô hình cấp phát bộ nhớ 32
2.2.1 Mô hình cấp phát liên tục 32
2.2.1.1 Mô hình Linker – Loader 32
2.2.1.2 Mô hình Base & Limit 33
2.2.2 Mô hình cấp phát không liên tục 36
2.2.2.1 Mô hình phân đoạn (Segmentation) 37
2.2.2.2 Mô hình phân trang (paging) 40
2.2.2.3.Mô hình phân đoạn kết hợp phân trang (Paged segmentation) 52
2.3 Bộ nhớ ảo 54
2.3.1 Phân trang theo yêu cầu (Demand paging) 55
2.3.1.1 Câu trúc một phần tử trong bảng trang 55
2.3.1.2 Chuyển địa chỉ ảo (p,d) thành địa chỉ vật lý 55
2.3.1.3 Thay thế trang 56
2.3.1.4 Thời gian thực hiện một yêu cầu truy xuất bộ nhớ 57
2.3.1.5 Các thuật toán chọn trang nạn nhân 57
2.3.1.5.1 Thuật toán FIFO (First In First Out) 58
2.3.1.5.2 Thuật toán tối ưu (Optimal Page Replacement Algorithm) 59
2.3.1.5.3 Thuật toán LRU (Least-recently-used) 59
2.3.1.5.4 Các thuật toán xấp xỉ LRU 61
2.3.1.5.5 Các thuật toán thống kê 63
2.3.2 Cấp phát số lượng khung trang và thay thế trang 63
2.3.2.1 Cấp phát số lượng khung trang 64
2.3.2.2 Thay thế trang 65
2.3.3 Hệ thống trì trệ (Thrashing) 65
Trang 52.3.3.1 Mô hình tập làm việc (Working set) 65
2.3.3.2 Cấu trúc chương trình 66
Chương 3: ĐỀ XUẤT CÁC GIẢI PHÁP GIÚP TỐI ƯU BỘ NHỚ 67
3.1 Nâng cao hiệu năng xử lý giao tác với mô hình cơ sở dữ liệu trong bộ nhớ 67
3.1.1 Mô hình cơ sở dữ liệu trong bộ nhớ 67
3.1.2 Kiến trúc H-Store và VoltDB 68
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 72
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
SDR
SDRAM Single Data Rate SynchronousDynamic Random Access Memory Bộ nhớ truy cập ngẫu nhiênđộng đồng bộ tốc độ dữ liệu
đơnDDR
SDRAM Double Data Rate SynchronousDynamic Random Access Memory Bộ nhớ truy cập ngẫu nhiênđộng đồng bộ tốc độ dữ liệu
gấp đôi
LPDDR Low Power Double Data Rate
Synchronous Dynamic RandomAccess Memory
Bộ nhớ truy cập ngẫu nhiênđộng đồng bộ công suất thấp
PROM Programmable Read-only memory bộ nhớ chỉ đọc có thể lập
trìnhEPROM Erasable Programmable Read-Only
Memory
Bộ nhớ chỉ đọc có thể lậptrình có thể xóa
EAROM Electrically Alterable Read-Only
EEPROM Electrically Erasable Programmable
Read-Only Memory
Bộ nhớ chỉ đọc có thể xóabằng điện
Trang 7STBR Segment Table Base Register Thanh ghi cơ sở bảng phân
đoạnSTLS Segment Table Limit Register Thanh ghi giới hạn bảng
phân đoạn
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Chúng ta đang sống trong kỉ nguyên công nghệ thông tin, việc nắm bắt thông tin thật nhanh, nhiều, chính xác và kịp thời ngày càng đóng vai trò cốt yếu trong quản lí, điều hành Bộ nhớ là thứ quan trọng giúp lưu trữ thông tin, dữ liệu dưới nhiều hình thức Bộnhớ giúp ích cho con người khi làm các thao tác trên máy tính Ghi nhớ, lưu trữ số lượng lớn thông tin, tài liệu mà người thường chưa chắc có thể ghi nhớ được
Hẳn nhiều người ít khi biết một bộ nhớ hoạt động như nào và theo quy tắc nào thì chúng tôi sẽ giúp mọi người biết
2 Mục đích của tiểu luận
- Tìm hiểu và khai thác các tính năng của bộ nhớ
- Phân biệt rõ từng thành phần các loại bộ nhớ
- Tìm ra các giải pháp giúp tối ưu bộ nhớ
- Vận dụng tính năng của bộ nhớ vào thực tiễn
3 Đối tượng và phạm vi nghiên cứu
Đối tượng và phạm vi nghiên cứu của tiểu luận là tìm hiểu về các bộ nhớ đã được phát triển qua từng thế hệ, chủ yếu là các bộ nhớ có thể dụng với máy tính
4 Phương pháp nghiên cứu
Trong luận văn này chúng tôi đã kết hợp nhiều phương pháp nghiên cứu khác nhau phù hợp với yêu cầu của đề tài, bao gồm các phương pháp nghiên cứu sau:
- Phương pháp nghiên cứu phân tích – tổng hợp: Nghiên cứu các tài liệu có liên
quan tới kiến thức cơ bản về các loại bộ nhớ bộ nhớ, các giải pháp đã sử dụng, phân tích về cơ chế của từng mô hình, phân tích để rút ra các vấn đề cốt lõi, sau
đó tổng hợp và xâu chuỗi lại để có cái nhìn tổng thể về vấn đề đang nghiên cứu
Trang 9- Phương pháp thực nghiệm: Thực nghiệm đối với cả giải pháp đã được các
chuyên gia đ aư ra và giải pháp đề xuất, so sánh đánh giá nhằm xác định tính khả thi, hiệu quả, mức độ giải quyết những vấn đề đang gặp phải trong việc đảmbảo an toàn dữ liệu lưu trữ trong bộ nhớ
5 Cấu trúc của đề tài
Ngoài phần mở đầu, tài liệu tham khảo, tiểu luận gồm 3 chương:
- Chương 1: BỘ NHỚ MÁY TÍNH
- Chương 2: QUẢN LÍ BỘ NHỚ MÁY TÍNH
- Chương 3: ĐỀ XUẤT CÁC GIẢI PHÁP GIÚP TỐI ƯU BỘ NHỚ
Trang 10NỘI DUNG CHƯƠNG 1: BỘ NHỚ MÁY TÍNH
Bộ nhớ máy tính (tiếng Anh: Computer data storage), thường được gọi là ổ nhớ
(storage) hoặc bộ nhớ (memory), là một thiết bị công nghệ bao gồm các phần tử máy tính và lưu trữ dữ liệu, được dùng để duy trì dữ liệu số Nó là một linh kiện cơ bản có chức năng cốt lõi của các máy tính
Bộ nhớ máy tính bao gồm các bộ nhớ điện tĩnh (non-volatile memory) để lưu trữ được
dữ liệu của máy tính một cách lâu dài (khi kết thúc một phiên làm việc của máy tính thì
dữ liệu không bị mất đi), hoặc bộ nhớ điện động (volatile memory) để lưu dữ liệu tạm thời trong quá trình làm việc của máy tính (khi kết thúc một phiên làm việc của máy tính thì bộ nhớ này bị mất hết dữ liệu)
Các thiết bị lưu trữ dữ liệu cho bộ nhớ lâu dài bao gồm: Đĩa cứng, Đĩa mềm, Đĩa quang, Băng từ, ROM, các loại bút nhớ
Các thiết bị lưu trữ dữ liệu tạm thời trong quá trình làm việc: RAM máy tính, Cache Hầu hết các bộ nhớ nêu trên thuộc loại bộ nhớ có thể truy cập dữ liệu ngẫu nhiên, riêngbăng từ là loại bộ nhớ truy cập tuần tự
Bộ nhớ máy tính có thể chia thành hai dạng: Bộ nhớ trong (main memory) và bộ nhớ ngoài (external storage)
Bộ nhớ máy tính (tiếng Anh: Computer data storage), thường được gọi là ổ nhớ
(storage) hoặc bộ nhớ (memory), là một thiết bị công nghệ bao gồm các phần tử máy tính và lưu trữ dữ liệu, được dùng để duy trì dữ liệu số Nó là một linh kiện cơ bản có chức năng cốt lõi của các máy tính
Bộ nhớ máy tính bao gồm các bộ nhớ điện tĩnh (non-volatile memory) để lưu trữ được
dữ liệu của máy tính một cách lâu dài (khi kết thúc một phiên làm việc của máy tính thì
Trang 11dữ liệu không bị mất đi), hoặc bộ nhớ điện động (volatile memory) để lưu dữ liệu tạm thời trong quá trình làm việc của máy tính (khi kết thúc một phiên làm việc của máy tính thì bộ nhớ này bị mất hết dữ liệu).
Các thiết bị lưu trữ dữ liệu cho bộ nhớ lâu dài bao gồm: Đĩa cứng, Đĩa mềm, Đĩa quang, Băng từ, ROM, các loại bút nhớ
Các thiết bị lưu trữ dữ liệu tạm thời trong quá trình làm việc: RAM máy tính, Cache Hầu hết các bộ nhớ nêu trên thuộc loại bộ nhớ có thể truy cập dữ liệu ngẫu nhiên, riêngbăng từ là loại bộ nhớ truy cập tuần tự
Bộ nhớ máy tính có thể chia thành hai dạng: Bộ nhớ trong (main memory) và bộ nhớ ngoài (external storage)
1.1.1 Bộ nhớ trong
Bộ nhớ trong hay còn được gọi là bộ nhớ chính, được biết đến là một thành phần vật lýkhá quan trong nằm trong máy tính Nó giúp lưu trữ và xử lý được tất cả các chương trình hay những ứng dụng đang hoạt động trên máy tính Bộ nhớ này không thể tách được ra khỏi máy tính Có thể dễ dàng truy cập từ hệ thống mà không cần dùng đến bất
cứ thiết bị đầu vào hay đầu ra nào Khi nhắc đến bộ nhớ trong, ta thường đề cập đến haithành phần chính của nó là RAM và ROM
Ngược lại với bộ nhớ trong, ta có khái niệm bộ nhớ ngoài (external memory) hay còn gọi là bộ nhớ thứ cấp (secondary memory) Có nhiều người đến nay vẫn chưa phân biệtđược sự khác nhau cơ bản giữa hai loại bộ nhớ này Internal memory (bộ nhớ trong) được dùng để lưu trữ tạm thời những dữ liệu và chương trình khi máy tính đang làm việc
Chúng sẽ bị mất đi khi bạn tắt máy Còn với bộ nhớ ngoài (external memory), nó được dùng để lưu giữ lâu dài các thông tin, dữ liệu, chương trình Chúng sẽ không bị mất đi
Trang 12khi bạn tắt máy Bộ nhớ ngoài có thể là những thiết bị quen thuộc như ổ cứng, thẻ nhớ, đĩa DVD, USB Ngoài ra, bộ nhớ trong có tốc độ xử lý nhanh hơn và có dung lượng
nhỏ hơn so với bộ nhớ ngoài.
1.1.1.1.1.RAM (Random Access Memory)
RAM (viết tắt của Random Access Memory) là một loại bộ nhớ khả biến cho phép truyxuất đọc-ghi ngẫu nhiên đến bất kỳ vị trí nào trong bộ nhớ dựa theo địa chỉ bộ nhớ.Thông tin lưu trên RAM chỉ là tạm thời, chúng sẽ mất đi khi mất nguồn điện cung cấp
Trang 13Bộ nhớ Ram có 4 đặc trưng sau:
Dung lượng bộ nhớ: Tổng số byte của bộ nhớ (nếu tính theo byte) hoặc là tổng
số bit trong bộ nhớ nếu tính theo bit
Tổ chức bộ nhớ: Số ô nhớ và số bit cho mỗi ô nhớ
Thời gian thập phân: Thời gian từ lúc đưa ra địa chỉ của ô nhớ đến lúc đọc đượcnội dung của ô nhớ đó
Chu kỳ bộ nhớ: Thời gian giữa hai lần liên tiếp thâm nhập bộ nhớ
a) RAM tĩnh
Hình 1.1.2 Một ô CMOS SRAM với sáu transitor
RAM tĩnh còn gọi là SRAM (Static Random Access Memory) SRAM lưu giữ các bit
dữ liệu trong bộ nhớ miễn là nguồn điện được cung cấp đầy đủ Không giống như DRAM, lưu bit dữ liệu trong các pin chứa tụ điện và bóng bán dẫn, SRAM không cần phải làm tươi theo định kỳ
SRAM là một loại RAM và nó là một bộ nhớ dễ bay hơi, mất dữ liệu khi tắt nguồn Trong SRAM, mỗi bit lưu trữ dữ liệu được tạo thành từ bốn hoặc sáu bóng bán dẫn tạo nên một flip-flop Có các bóng bán dẫn bổ sung được sử dụng để kiểm soát quyền truy cập đọc và ghi của các ô lưu trữ Mặc dù các SRAM điển hình sử dụng sáu bóng bán dẫn để lưu trữ mỗi bit, nhưng vẫn có những SRAM sử dụng tám, mười bóng bán dẫn
Trang 14trở lên để lưu trữ một bit Khi số lượng bóng bán dẫn giảm, kích thước của ô nhớ sẽ giảm Mỗi ô SRAM có thể ở ba trạng thái khác nhau được gọi là đọc, ghi và chờ Một
ô ở trạng thái đọc khi dữ liệu được yêu cầu và nó ở trạng thái ghi khi dữ liệu trong ô được sửa đổi Ô ở trạng thái chờ khi nó chạy không tải
SRAM chỉ chứa bóng bán dẫn và biến tần, dữ liệu được đưa vào SRAM với sự trợ giúpcủa bitline và được chuyển tiếp bởi wordline Biến tần được sử dụng để tạo feedback, dùng làm đầu vào cho các bóng bán dẫn, nhờ đó SRAM không cần phải làm mới hàng nghìn lần trong một chu kỳ như DRAM Nhưng trong một bit bộ nhớ có 6 bóng bán dẫn của SRAM khiến cho nó khá cồng kềnh và đòi hỏi nhiều không gian hơn DRAM (1 bit bộ nhớ chỉ có 1 bóng bán dẫn của DRAM) Điện năng mà SRAM cần cũng nhiềuhơn DRAM vì nó cần vận hành 6 bóng bán dẫn (thay vì 1 bóng như DRAM)
RAM tĩnh - SRAM (Static Random Access Memory) được chế tạo theo công nghệ ECL (dùng trong CMOS và BiCMOS) Mỗi bit nhớ gồm có các cổng logic với 6 transistor MOS SRAM là bộ nhớ nhanh, việc đọc không làm hủy nội dung của ô nhớ
và thời gian thâm nhập bằng chu kỳ của bộ nhớ Nhưng SRAM là một nơi lưu trữ các tập tin của CMOS dùng cho việc khởi động máy
SRAM nhanh hơn và đắt hơn DRAM, nó thường được sử dụng bên trong CPU Do tốc
độ cao, SRAM cũng được sử dụng như bộ nhớ cache và bộ nhớ chính trong các máy chủ để có hiệu năng tốt nhất
b) RAM động
RAM động - DRAM (Dynamic Random Access Memory) dùng kỹ thuật MOS Mỗi bitnhớ gồm một transistor và một tụ điện Việc ghi nhớ dữ liệu dựa vào việc duy trì điệntích nạp vào tụ điện và như vậy việc đọc một bit nhớ làm nội dung bit này bị hủy Dovậy sau mỗi lần đọc một ô nhớ, bộ phận điều khiển bộ nhớ phải viết lại nội dung ô nhớ
đó Chu kỳ bộ nhớ cũng theo đó mà ít nhất là gấp đôi thời gian thâm nhập ô nhớ
Trang 15Việc lưu giữ thông tin trong bit nhớ chỉ là tạm thời vì tụ điện sẽ phóng hết điện tích đãnạp và như vậy phải làm tươi bộ nhớ sau khoảng thời gian 2μs Việc làm tươi đượcthực hiện với tất cả các ô nhớ trong bộ nhớ Công việc này được thực hiện tự động bởimột vi mạch bộ nhớ.
Bộ nhớ DRAM chậm nhưng rẻ tiền hơn SRAM
Hình 1.1.3: 1 transistor và 1 tụ điện trong một ô nhớ của RAM động
Các loại DRAM:
1 SDRAM (Viết tắt từ Synchronous Dynamic RAM) được gọi là DRAM đồng bộ.SDRAM gồm 3 phân loại: SDR, DDR, DDR2,DDR3 và DDR4
2 SDR SDRAM (Single Data Rate SDRAM), thường được giới chuyên môn gọi tắt là
"SDR" Có 168 chân Được dùng trong các máy vi tính cũ, bus speed chạy cùng vậntốc với clock speed của memory chip, nay đã lỗi thời
3 DDR SDRAM (Double Data Rate SDRAM), thường được giới chuyên môn gọi tắt
là "DDR" Có 184 chân DDR SDRAM là cải tiến của bộ nhớ SDR với tốc độtruyền tải gấp đôi SDR nhờ vào việc truyền tải hai lần trong một chu kỳ bộ nhớ Đãđược thay thế bởi DDR2
4 DDR2 SDRAM (Double Data Rate 2 SDRAM), Thường được giới chuyên môn gọitắt là "DDR2" Là thế hệ thứ hai của DDR với 240 chân, lợi thế lớn nhất của nó sovới DDR là có bus speed cao gấp đôi clock speed
5 DDR3 SDRAM (Double Data Rate III SDRAM): có tốc độ bus800/1066/1333/1600 Mhz, số bit dữ liệu là 64, điện thế là 1.5v, tổng số pin là 240
Trang 166 RDRAM (Viết tắt từ Rambus Dynamic RAM), thường được giới chuyên môn gọitắt là "Rambus" Đây là một loại DRAM được thiết kế kỹ thuật hoàn toàn mới sovới kỹ thuật SDRAM RDRAM hoạt động đồng bộ theo một hệ thống lặp và truyền
dữ liệu theo một hướng Một kênh bộ nhớ RDRAM có thể hỗ trợ đến 32 chipDRAM Mỗi chip được ghép nối tuần tự trên một module gọi là RIMM (RambusInline Memory Module) nhưng việc truyền dữ liệu được thực hiện giữa các mạchđiều khiển và từng chip riêng biệt chứ không truyền giữa các chip với nhau Bus bộnhớ RDRAM là đường dẫn liên tục đi qua các chip và module trên bus, mỗi module
có các chân vào và ra trên các đầu đối diện Do đó, nếu các khe cắm không chứaRIMM sẽ phải gắn một module liên tục để đảm bảo đường truyền được nối liền.Tốc độ Rambus đạt từ 400-800 MHz Rambus tuy không nhanh hơn SDRAM làbao nhưng lại đắt hơn rất nhiều nên có rất ít người dùng RDRAM phải cắm thànhcặp và ở những khe trống phải cắm những thanh RAM giả (còn gọi là C-RIMM)cho đủ
7 LPDDR (Low Power Double Data Rate SDRAM), là loại DRAM có điện năngthấp Được đóng gói dưới dạng BGA (chân bi), loại DRAM này thường được sửdụng trên các loại điện thoại thông minh, máy tính bảng, laptop siêu mỏng
Các thông số của RAM
Dung lượng: Dung lượng RAM được tính bằng MB và GB, thông thường RAM đượcthiết kế với các dung lượng 256mb,512 mb,1gb,2gb,3gb,4gb,8gb Dung lượng củaRAM càng lớn càng tốt cho hệ thống, tuy nhiên không phải tất cả các hệ thống phầncứng và hệ điều hành đều hỗ trợ các loại RAM có dung lượng lớn, một số hệ thốngphần cứng của máy tính cá nhân chỉ hỗ trợ đến tối đa 4 GB và một số hệ điều hành(như phiên bản 32 bit của Windows XP) chỉ hỗ trợ đến 32 GB
Bus: Gồm 2 loại là BUS Speed và BUS Width
Trang 17- BUS Width là chiều rộng của bộ nhớ Các loại RAM DDR, DDR2, DDR3,DDR4 hiện nay đều có BUS Width cố định là 64.
- Công thức tính băng thông (bandwidth) từ BUS Speed và BUS Width:Bandwidth = (Bus Speed x Bus Width) / 8
- Bandwidth là tốc độ tối đa RAM có thể đọc được trong một giây Bandwidthđược ghi trên RAM là con số tối đa theo lý thuyết Trên thực tế, bandwidththường thấp hơn và không thể vượt quá được con số theo lý thuyết
Các loại RAM, BUS RAM và Bandwidth tương ứng
SDR SDRAM được phân loại theo bus speed như sau:
- PC-66: 66 MHz bus
- PC-100: 100 MHz bus
- PC-133: 133 MHz bus
DDR SDRAM được phân loại theo bus speed và bandwidth như sau:
- DDR-200: Còn được gọi là PC-1600 100 MHz bus với 1600 MB/s
Trang 18- DDR2-400: Còn được gọi là PC2-3200 100 MHz clock, 200 MHz bus với
DDR3 SDRAM được phân loại theo bus speed và bandwidth như sau:
- DDR3-1066: Còn được gọi là PC3-8500 533 MHz clock, 1066 MHz bus với
DDR4 SDRAM được phân loại theo bus speed và bandwidth như sau:
- DDR4-2133: Tên module PC4-17000 1067 MHz clock, 2133 MHz bus với
Trang 19- DDR4-3200: Tên module PC4-25600 1600 MHz clock, 3200 MHz bus với
25600 MB/s bandwidth
Bộ nhớ chỉ đọc (ROM) là một loại bộ nhớ không thay đổi được sử dụng trong máy tính
và các thiết bị điện tử khác Dữ liệu được lưu trữ trong ROM không thể được sửa đổi bằng điện tử sau khi sản xuất Bộ nhớ chỉ đọc hữu ích cho việc lưu trữ phần mềm hiếm khi thay đổi trong suốt vòng đời của hệ thống, đôi khi được gọi là phần sụn (firmware).Các ứng dụng phần mềm cho các thiết bị lập trình có thể được phân phối dưới dạng cáchộp mực bổ trợ có chứa bộ nhớ chỉ đọc (băng trò chơi video game)
Bộ nhớ chỉ đọc có thể lập trình xóa được (EPROM) và bộ nhớ chỉ đọc có thể lập trình xóa được bằng điện (EEPROM) có thể được xóa và lập trình lại, nhưng thông thường chỉ có thể được thực hiện ở tốc độ tương đối chậm, có thể cần thiết bị đặc biệt để thực hiện, và chỉ có thể một sửa đổi số lần nhất định
Thuật ngữ "ROM" đôi khi được sử dụng để chỉ một thiết bị ROM có chứa phần mềm hoặc một tệp có phần mềm được lưu trữ trong EEPROM hoặc Flash Memory Ví dụ: người dùng sửa đổi hệ điều hành Android gọi các tệp chứa hệ điều hành đã sửa đổi là
"ROM tùy chỉnh"
Vì ROM không thể được sửa đổi (hoặc khó sửa đổi), nên nó chỉ phù hợp để lưu trữ dữ liệu mà dự kiến sẽ không cần sửa đổi nhiều trong suốt vòng đời của thiết bị Cuối cùng,ROM đã được sử dụng trong nhiều máy tính để lưu trữ các bảng tra cứu để đánh giá các hàm toán học và logic (ví dụ: một đơn vị dấu phẩy động có thể lập bảng hàm sin đểtạo điều kiện tính toán nhanh hơn) Điều này đặc biệt hiệu quả với CPU chậm và ROM
rẻ hơn so với RAM
Trang 20Đáng chú ý, bộ xử lý hình ảnh màn hình của các máy tính ban đầu lưu trữ các bảng ký
tự phông chữ bitmap trong ROM Điều này thường có nghĩa là phông chữ hiển thị văn bản không thể thay đổi tương tác Đây là trường hợp cho cả bộ điều hợp CGA và MDA
có sẵn với IBM PC XT
Việc sử dụng ROM để lưu trữ một lượng nhỏ dữ liệu như vậy đã biến mất gần như hoàn toàn trong các máy tính đa năng hiện đại Tuy nhiên, Flash ROM đã đảm nhận vaitrò mới là phương tiện để lưu trữ hàng loạt hoặc lưu trữ thứ cấp các tệp
a) Cấu trúc của ROM máy tính
Cấu trúc của ROM khá phức tạp, gồm 4 phần cơ bản bao gồm mánh thanh ghi, bộ giải
mã hang, bộ giải mã cột và bộ đệm đầu ra
Hình 1.1.4: Sơ đồ cấu tạo ROM máy tính
Là bộ phận lưu trữ dữ liệu được lập trình vào ROM Mỗi thanh ghi bao gồm một ô nhớbằng số kích thước từ Trong trường hợp này mỗi thanh ghi chứa một từ 8bit Cácthanh ghi được sắp xếp theo ma trận vuông Có một lưu ý đó là tất cả các thanh ghi ởđây đều là thanh ghi “chết” và không thể ghi thêm được
Trang 21Vị trí của từng thanh ghi được định rõ qua số hàng và số cột cụ thể 8 đầu ra dữ liệucủa mỗi thanh ghi được nối vào một đường dữ liệu bên trong chạy qua toàn mạch Mỗithanh ghi có 2 đầu vào cho phép Cả 2 phải ở mức cao thì dữ liệu ở thanh ghi mới cóthể được phép đưa vào đường truyền.
Mã địa chỉ A3A2A1A0 quyết định thanh ghi nào trong dãy được phép đặt từ dữ liệu 8bit của nó vào đường truyền Ở đây dùng 2 bộ giải mã: bộ giải mã chọn hàng (chọn 1trong 4) và chọn cột Thanh ghi giao giữa hàng và cột được chọn bởi đầu vào địa chỉ sẽ
là thanh ghi được kích hoạt (cho phép)
Bộ phận này thường sử dụng mạch đệm 3 trạng thái, điều khiển bằng chân Khi ở mứcthấp, bộ đệm đầu ra chuyển dữ liệu này ra ngoài Khiở mức cao, bộ đệm đầu ra sẽ ởtrạng thái trở kháng cao D7 đến D0 thả nổi
Giống như trên RAM, ROM chứa một mạng lưới các cột và hàng đan xen Tuy nhiên,
ở nơi mà các hàng và cột giao nhau, trong khi RAM sử dụng các bóng bán dẫn để bậthoặc tắt quyền truy cập vào một tụ điện tại mỗi điểm giao cắt giữa các hàng và cột nóitrên thì ROM lại sử dụng một diode để kết nối các hàng và cột khi giá trị là 1 và ngượclại khi giá trị bằng 0
Trang 22Hình 1.1.5: Cách thức vận hành ROM máy tính
Mỗi diode thường chỉ cho phép dòng điện chạy theo một hướng duy nhất với mộtngưỡng nhất định Ngưỡng này được gọi là forward breakover (điện áp chuyển tiếp dựphòng) Khái niệm này giúp xác định cần bao nhiêu dòng điện trước khi chúng đi quacác diode Đối với các sản phẩm được sản xuất từ silicon như bộ vi xử lý và chip nhớ,điện áp chuyển tiếp dự phòng lý tưởng là khoảng 0,6 volt Bằng cách tận dụng các tínhchất độc đáo trên diode, ROM có thể truyền một dòng điện vượt quá ngưỡng chuyểntiếp tới các cột thích hợp thông qua các hàng thích hợp đã được lựa chọn, để tạo thànhnhững ô kết nối nhất định Nếu một diode có mặt tại ô đó, thì theo hệ nhị phân, giá trịđược hiểu sẽ là “on” (giá trị 1) Nếu giá trị của ô là 0 có nghĩa là không có diode ở các
ô giao điểm kết nối cột và hàng Vì vậy, dòng điện trên cột không được truyền tới hàng
Như vậy, cách thức hoạt động của ROM đòi hỏi dữ liệu phải được lập trình một cáchhoàn hảo và hoàn chỉnh ngay từ khi nó được sản xuất Bạn không thể tái lập trình cũngnhư viết lại một bộ nhớ ROM tiêu chuẩn Nếu trong quá trình tạo ra một bộ nhớ ROM,chỉ cần mắc phải một sai lầm về lập trình hoặc dữ liệu cần phải được cập nhật, bạn sẽphải làm lại tất cả mọi thứ từ bước đầu tiên
b) Các loại ROM
PROM là viết tắt của programmable Read-only memory trong tiếng Anh, hay "chíp bộnhớ chỉ đọc lập trình được" PROM là vi mạch lập trình đầu tiên và đơn giản nhất trongnhóm các vi mạch bán dẫn lập trình được (programmable logic device, hay PLD).PROM chỉ lập trình được một lần duy nhất bằng phương pháp hàn cứng PROM có số
Trang 23đầu vào hạn chế, thông thường đến 16 đầu vào, vì vậy chỉ thực hiện được những hàmđơn giản
Hình 1.1.6: D23128C PROM trên bo mạch ZX Spectrum
EPROM (Erasable Programmable Read-Only Memory): Bộ nhớ chỉ đọc có thể lậptrình lại (EPROM) bằng cách tiếp xúc với ánh sáng cực tím mạnh(thường trong 10phút hoặc lâu hơn), sau đó viết lại với quy trình cần điện áp cao hơn thông thường.Tiếp xúc nhiều lần với tia UV cuối cùng sẽ làm hao mòn EPROM, nhưng độ bền củahầu hết các chip EPROM đều đạt 1000 chu kỳ xóa và lập trình lại Các chip EPROMthường có thể được phân biệt bởi "cửa sổ" cho phép ánh sáng UV đi vào Sau khi lậptrình, cửa sổ thường được phủ nhãn bảo vệ để ngăn việc xóa do vô tình Một số chipEPROM được lập trình tại nhà máy trước khi chúng được đóng gói và không bao gồmcửa sổ
Hình 1.1.7: EPROM được chế tạo bằng nguyên tắc phân cực tĩnh điện Cửa sổ nhỏ
dùng để xóa bằng tia cực tím
Trang 24EAROM (Electrically Alterable Read-Only Memory): Bộ nhớ chỉ đọc có thể thay đổibằng điện (EAROM) là một loại EEPROM có thể được sửa đổi một bit mỗi lần Viếtlại là một quá trình rất chậm và cần điện áp cao hơn (thường là khoảng 12 V) so vớiđiện áp sử dụng để đọc dữ liệu EAROM dành cho các ứng dụng yêu cầu thay đổikhông thường xuyên và chỉ thay đổi một phần EAROM có thể được sử dụng làm bộlưu trữ không mất dữ liệu cho thông tin thiết lập hệ thống quan trọng; trong nhiều ứngdụng, EAROM đã được thay thế bằng RAM CMOS được cung cấp bởi nguồn điệnchính và được sao lưu bằng pin lithium.
Hình 1.1.8: EAROM
EEPROM (Electrically Erasable Programmable Read-Only Memory): Bộ nhớ chỉ đọc
có thể lập trình được bằng điện tử (EEPROM) dựa trên cấu trúc bán dẫn tương tự EPROM, nhưng cho phép xóa toàn bộ nội dung của nó, sau đó viết lại bằng điện, và chúng không bị xóa khỏi máy tính khi mất điện (máy tính nhúng trong máy ảnh, máy nghe nhạc MP3, v.v.) Viết hoặc flash EEPROM chậm hơn nhiều (mili giây trên bit) so với đọc từ ROM hoặc ghi vào RAM (nano giây trong cả hai trường hợp)
Trang 25Hình 1.1.9: EEPROM
1.1.1.1.3 Bộ nhớ đêm (Cache Memory)
Bộ nhớ Cache là một thành phần của bộ nhớ trong giúp lưu trữ các dữ liệu, thông tinđược sử dụng thường xuyên để CPU truy cập với tốc độ nhanh hơn trong tương lai.Nhìn chung, bộ nhớ đệm nằm sẵn trong máy tính và có tác dụng cũng gần giống nhưthanh RAM cắm trên mainboard
Như trên đã đề cập, bộ nhớ đệm thực ra là một dạng SRAM, còn thanh RAM trênmainboard kia là DRAM (có tốc độ chậm hơn nhiều so với SRAM) Với bộ nhớ đệmcủa cache càng lớn thì dung lượng sẽ lớn hơn, có nhiều không gian lưu trữ hơn, hoạtđộng mượt hơn
Cấu trúc của bộ nhớ đệm có thể chia làm ba phần gồm L1, L2 và L3 (L tức là Level).Bạn có thể nhìn vào hình bên dưới, dữ liệu sẽ được đi từ ổ cứng, đến DRAM, qua 3tầng cache và đến CPU để xử lý Các phần L1, L2, L3 giúp cho dữ liệu được truyềnqua với tốc độ tăng dần theo thời gian để CPU có thể xử lý nhanh nhất
Trang 26Hình 1.2: Hoạt động của bộ nhớ đệm
Bộ nhớ đệm giúp máy tính có thể xử lý nhanh hơn nhưng nếu bạn để lâu ngày mà không xóa chúng đi sẽ làm tăng lượng file rác không cần đến và giảm hiệu suất máy tính
1.1.2 Bộ nhớ ngoài
Bộ nhớ ngoài hay còn gọi là bộ nhớ phụ (Auxiliary storage): là các thiết bị lưu trữ thông tin với khối lượng lớn, nên còn được gọi là “bộ nhớ lưu trữ dung lượng lớn” (Mass stoge) Máy tính cần dùng dữ liệu thông tin nào (dữ liệu và chương trình) thì dữ liệu ấy được nạp vào bộ nhớ trong (bộ nhớ kiểu RAM) của máy tính (để làm việc cho nhanh hơn)
Trang 27Đĩa mềm, thiết bị lưu trữ USB và đĩa cứng là các loại thiết bị lưu trữ phổ biến nhất hiệnnay Thông tin được ghi trên các thiết bị này có thể ghi và đọc được thường xuyên, mặtkhác thông tin không bị mất đi khi mất điện hoặc tắt máy.
Đặc điểm của bộ nhớ ngoài:
- Dung lượng bộ nhớ ngoài có thể rất lớn hơn so với bộ nhớ trong
- Tốc độ truy xuất của bộ nhớ ngoài không nhanh bằng RAM, ROM
- Năm 1834: Charles Babbage bắt đầu xây dựng “Máy phân tích” của mình, tiền thân
của máy tính Nó sử dụng bộ nhớ chỉ đọc ở dạng thẻ đục lỗ
- Năm 1932: Gustav Tauschek phát minh ra bộ nhớ trống ở Áo.
- Năm 1936: Konrad Zuse áp dụng cho 1 bẳng sáng chế cho bộ nhớ cơ khí của mình
để được sử dụng trên máy tính của mình Bộ nhớ máy tính này dựa trên các bộ phận kim loại trượt
- Năm 1939: Helmut Schreyer phát minh ra một bộ nhớ nguyên mẫu sử dụng đèn
neon
- Năm 1942: Máy tính Atanasoff – Berry có 60 từ bộ nhớ 50 bit dưới dạng tụ điện gắn
trên 2 trống xoay Đối với bộ nhớ thứ cấp, nó sử dụng thẻ đục lỗ
- Năm 1944: J Presper Eckert đã phát minh ra bộ nhớ dòng trễ Sau đó ông và đồng
nghiệp đã chế tạo ra máy tính EDVAC có 128 dòng trễ Mỗi dòng lưu trữ 352 bit tương đương với 45.000 bit bộ nhớ
- Năm 1947: Frederick Viehe của Los Angeles áp dụng cho một bằng sáng chế cho
một phát minh sử dụng bộ nhớ từ tính Bộ nhớ trống từ được phát minh độc lập bởi nhiều người
AnWang đã phát minh ra thiết bị điều khiển xung từ, nguyên tắc dựa trên bộ nhớ lõi từ tính
Trang 28 Kenneth Olsen đã phát minh ra các thành phần máy tính quan trọng, nổi tiếng với
"Magnetic Core Memory" bằng sáng chế số 3.161.861 và là đồng sáng lập của Digital Equipment Corporation
Jay Forrester là người tiên phong trong việc phát triển máy tính kỹ thuật số sớm
và phát minh ra khả năng truy cập ngẫu nhiên, lưu trữ từ tính ngẫu nhiên
- Năm 1949: Jay Forrester hình dung ý tưởng của bộ nhớ lõi từ tính vì nó được sử
dụng phổ biến, với một mạng lưới các dây được sử dụng để giải quyết các lõi Dạng thực tế đầu tiên biểu hiện vào năm 1952 – 1953 và làm cho các loại bộ nhớ máy tínhlỗi thời trước đó
- Năm 1950: Ferranti Ltd hoàn thành máy tính thương mại đầu tiên với 256 từ 40 bit
của bộ nhớ chính và 16K từ của bộ nhớ trống Chỉ có tám chiếc được bán
- Năm 1951: Jay Forrester gửi một bằng sáng chế cho bộ nhớ lõi ma trận.
Eckert và Mauchly đã thành lập công ty riêng và cho ra mắt máy tính UNIVAC được lưu trữ bằng băng từ
- Năm 1952: Máy tính EDVAC được hoàn thành với 1024 từ 44 bit của bộ nhớ siêu
âm Một mô-đun bộ nhớ lõi được thêm vào máy tính ENIAC
- Năm 1955: An Wang được cấp bằng sáng chế Hoa Kỳ số 2.708.722 với 34 yêu cầu
về lõi bộ nhớ từ tính
- Năm 1956: RAMAC 305 chứa 50 đĩa có đường kính 610 mm cung cấp tổng dung
lượng lưu trữ khoảng 5MB Để truy cập bất kỳ bit dữ liệu nào, đầu đọc/đầu ghi sẽ di chuyển lên hoặc xuống trong ngăn xếp đĩa để tới được vị trí đĩa đang lưu trữ mà chương trình cần Sau đó đầu đọc/đầu ghi sẽ trượt vào giữa đĩa để bắt đầu đọc hoặc ghi dữ liệu RAMAC 305 có thể truy cập trung bình bất kỳ khối dữ liệu nào trong khoảng 0,6s
Trang 29- Năm 1958: SAGE (Semi-Automatic Ground Environment) là 1 hệ thống phòng
không của quân đội Hoa Kỳ Chương trình chính được lưu trữ trên 62.500 thẻ đục lỗtương đương với 5MB dữ liệu
- Năm 1966: Hewlett-Packard phát hành máy tính thời gian thực HP2116A với 8K bộ
nhớ Intel mới thành lập bắt đầu bán chip bán dẫn với bộ nhớ 2.000 bit
- Năm 1967: Alan Shugart phát minh ra ổ đĩa mềm có nhiều cải tiến so với loại đĩa
mềm 8 inch như 1 lớp vỏ bọc để bảo vệ
- Năm 1968: USPTO cấp bằng sáng chế 3.387.286 cho Robert Dennard của IBM cho
tế bào DRAM một bóng bán dẫn DRAM là viết tắt của Dynamic RAM (Bộ nhớ truy cập ngẫu nhiên) hoặc Bộ nhớ truy cập ngẫu nhiên động DRAM sẽ trở thành chip nhớ tiêu chuẩn cho máy tính cá nhân thay thế bộ nhớ lõi từ
Cùng năm này, Shugart đã rời khỏi IBM và lập công ty riêng, anh ra mắt đĩa mềm 5,25 inch và trở thành phổ biến
- Năm 1969: Intel bắt đầu với tư cách là nhà thiết kế chip và sản xuất chip RAM 1
KB, chip nhớ lớn nhất cho đến nay Intel sớm chuyển sang trở thành nhà thiết kế đáng chú ý của bộ vi xử lý máy tính
- Năm 1970: Intel phát hành chip 1103, chip nhớ DRAM đầu tiên có sẵn.
- Năm 1971: Intel phát hành chip 1101, bộ nhớ lập trình 256-bit và chip 1701, bộ nhớ
chỉ đọc có thể xóa (EROM) 256 byte
- Năm 1972: Xuất hiện bộ lưu trữ quang học dưới dạng 1 đĩa laser có đường kính
305mm
- Năm 1974: Intel nhận được bằng sáng chế của Hoa Kỳ cho một "hệ thống bộ nhớ
cho máy tính kỹ thuật số đa kênh"
- Năm 1975: Máy tính tiêu dùng cá nhân Altair được phát hành, nó sử dụng bộ xử lý
8-bit 8080 của Intel và bao gồm 1 KB bộ nhớ Cuối cùng năm đó, Bob Marsh sản xuất bo mạch bộ nhớ 4 kB đầu tiên của Công nghệ Bộ xử lý cho Altair
Trang 30- Năm 1981: Sony đã giới thiệu các loại đĩa mềm 3,5 inch đầu tiên
- Năm 1984: Máy tính Apple phát hành máy tính cá nhân Macintosh Đây là máy tính
đầu tiên có bộ nhớ 128 KB Chip bộ nhớ 1 MB được phát triển
- Năm 1987: IBM đã chuyển hoàn toàn các loại đĩa 5,25inch snag 3,5 inch và được sử
Chương 2: QUẢN LÍ BỘ NHỚ MÁY TÍNH
1 Các vấn đề phát sinh khi quản lí bộ nhớ
Chuyển đổi địa chỉ tương đối trong chương trình thành địa chỉ thực trong bộ nhớchính
Quản lí bộ nhớ đã cấp phát và chưa cấp phát
Các kĩ thuật cấp phát bộ nhớ sao cho:
Ngăn chặn các tiến trình xâm phạm đến vùng nhớ đã được cấp phát cho tiếntrình khác
Trang 31- Cho phép nhiều tiến trình có thể dùng chung một phần bộ nhớ của nhau.
- Mở rộng bộ nhớ để có thể lưu trữ được nhiều tiến trình đồng thời
1 Chuyển đổi địa chỉ tương đối sang địa chỉ tuyệt đối
Các địa chỉ trong chương trình thực thi (dạng exe) là địa chỉ tương đối, và cần đượcchuyển đổi các địa chỉ này thành các địa chỉ tuyệt đối trong bộ nhớ chính Việc chuyểnđổi có thể xảy ra vào một trong những thời điểm sau:
Thời điểm biên dịch (compile time):
Nếu tại thời điểm biên dịch, có thể biết vị trí mà tiến trình sẽ được nạp vào trong bộnhớ, trình biên dịch có thể phát sinh ngay mã với các địa chỉ tuyệt đối Tuy nhiên, nếu
về sau có sự thay đổi vị trí của chương trình, cần phải biên dịch lại chương trình Ví dụcác chương trình com chạy trên hệ điều hành MS-DOS có mã tuyệt đối ngay khi biêndịch
Thời điểm nạp (load time):
Nếu tại thời điểm biên dịch, chưa thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình biên dịch chỉ phát sinh mã tương đối Khi nạp chương trình vào bộ nhớ, hệ điều hành sẽ chuyển các địa chỉ tương đối thành địa chỉ tuyệt đối do đã biết vị trí bắt đầu lưu trữ tiến trình Khi có sự thay đổi vị trí lưu trữ, cần nạp lại chương trình để thực hiện lại việc chuyển đổi địa chỉ, không cần biên dịch lại chương trình
Thời điểm xử lý (execution time):
Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ này sang vùng nhớ khác trong quá trình tiến trình xử lý, thì việc chuyển đổi địa chỉ sẽ được thực hiện vào lúc tiến trình thực thi Chức năng chuyển đổi địa chỉ do phần cứng cung cấp gọi là MMU (memory management unit) Các hệ điều hành thường dùng việc chuyển đổi theo cách này
2 Không gian địa chỉ ảo và không gian địa chỉ vật lý
Trang 32 Địa chỉ vật lý (địa chỉ physic): là địa chỉ thực trong bộ nhớ chính, địa chỉ vật lý còn
gọi là địa chỉ tuyệt đối/địa chỉ thực
Không gian địa chỉ ảo của tiến trình: là tập hợp tất cả các địa chỉ ảo của một tiến
trình
Không gian điạ chỉ vật lý của tiến trình: là tập hợp tất cả các địa chỉ vật lý tương
ứng với các địa chỉ ảo
Khi chương trình nạp vào bộ nhớ các địa chỉ tương đối trong chương trình được CPU chuyển thành địa chỉ ảo, khi thực thi, địa chỉ ảo được hệ điều hành kết hợp với phần cứng MMU chuyển thành địa chỉ vật lý Tóm lại chỉ có khái niệm địa chỉ ảo nếu việc chuyển đổi địa chỉ xảy ra vào thời điểm xử lý, khi đó tiến trình chỉ thao tác trên các địa chỉ ảo, địa chỉ vật lý chỉ được xác định khi thực hiện truy xuất bộ nhớ vật lý
Hình 2.1.1: CPU gởi địa chỉ ảo tới MMU, MMU chuyển địa chỉ ảo thành địa chỉ vật lý
3 Quản lí bộ nhớ đã cấp phát và chưa cấp phát
Hệ điều hành cần lưu trữ thông tin về phần bộ nhớ đã cấp phát và phần bộ nhớ chưa cấp phát Nếu đã cấp phát thì cấp cho tiến trình nào Khi cần cấp phát bộ nhớ cho một tiến trình thì làm sao tìm được phần bộ nhớ trống thích hợp nhanh chóng và khi bộ nhớ
bị phân mảnh thì cần dồn bộ nhớ lại để tận dụng bộ nhớ và để tiến trình thực thi nhanh hơn
Trang 331 Các phương pháp quản lý việc cấp phát bộ nhớ
a) Sử dụng dãy bit: bít thứ i bằng 1 là khối thứ i đã cấp phát, bằng 0 là chưa cấp phát b) Sử dụng danh sách liên kết: mỗi nút của danh sách liên kết lưu thông tin một vùng
nhớ chứa tiến trình (P) hay vùng nhớ trống giữa hai tiến trình (H)
Hình 2.1.2: quản lý việc cấp phát bộ nhớ bằng dãy bit hoặc danh sách liên kết
Trước khi tiến trình X kết thúc, có 4 trường hợp có thể xảy ra và khi tiến trình X kết thúc, hệ điều hành cần gom những nút trống gần nhau
Hình 2.1.3: Các trường hợp có thể xảy ra trước khi tiến trình X kết thúc
2 Các thuật toán chọn một đoạn trống
First-fit: chọn đoạn trống đầu tiên đủ lớn
Best-fit: chọn đoạn trống nhỏ nhất nhưng đủ lớn để thỏa mãn nhu cầu
Worst-fit: chọn đoạn trống lớn nhất
2 Các mô hình cấp phát bộ nhớ
Có hai mô hình dùng để cấp phát bộ nhớ cho một tiến trình là:
Cấp phát liên tục: tiến trình được lặp vào một bộ nhớ liên tục
Trang 34 Cấp phát không liên tục: tiến trình được nạp vào một vùng nhớ không liên tục
Địa chỉ tuyệt đối = địa chỉ bắt đầu nạp tiến trình + địa chỉ tương đối.
Ví dụ: xét chương trình P.EXE có lệnh Jump 0X200, Giả sử chương trình được nạp tạiđịa chỉ 0X300, khi đó địa chỉ tương đối 0X200 sẽ được chuyển thành địa chỉ vật lý là0X300+0X200=0X500
Trang 35Hình 2.2.1: Một ví dụ về chuyển đổi địa chỉ tương đối thành địa chỉ vật lý trong mô hình
linker-loader
Chương trình khi nạp vào bộ nhớ cho thực thi thì gọi là tiến trình, vậy trường hợp nàycác địa chỉ trong tiến trình là địa chỉ tuyệt đối, còn địa chỉ trong chương trình là địa chỉtương đối Nhận xét:
Vì việc chuyển đổi địa chỉ chỉ thực hiện vào lúc nạp nên sau khi nạp không thể
di chuyển tiến trình trong bộ nhớ
Do không có cơ chế kiểm soát địa chỉ mà tiến trình truy cập, nên không thể bảo
vệ một tiến trình bị một tiến trình khác truy xuất bộ nhớ của tiến trình một cáchtrái phép
2 Mô hình Base & Limit
Giống như mô hình Linker-Loader nhưng phần cứng cần cung cấp hai thanh ghi, mộtthanh ghi nền (base register) và một thanh ghi giới hạn (limit register) Khi một tiếntrình được cấp phát vùng nhớ, hệ điều hành cất vào thanh ghi nền địa chỉ bắt đầu củavùng nhớ cấp phát cho tiến trình, và cất vào thanh ghi giới hạn kích thước của tiếntrình
Trang 36Hình 2.2.2: một ví dụ về mô hình Base & Limit
Khi tiến trình thực thi, mỗi địa chỉ ảo (địa chỉ ảo cũng chính là địa chỉ tương đối) sẽđược MMU so sánh với thanh ghi giới hạn để bảo đảm tiến trình không truy xuất ngoàiphạm vi vùng nhớ JUMP 0X5000 HĐH Bộ nhớ vật lý JUMP 0X2000 P.EXE 0X3000(base) 0X6000 (bound) 0X3000 0X0000 OPEN.PTIT.EDU.VN 105 được cấp cho nó.Sau đó địa chỉ ảo được cộng với giá trị trong thanh ghi nền để cho ra địa chỉ tuyệt đốitrong bộ nhớ
Hình 2.2.3: Cơ chế MMU trong mô hình Base & Limit
Nhận xét:
Có thể di chuyển các chương trình trong bộ nhớ vì do tiến trình được nạp ở dạngđịa chỉ ảo, khi tiến trình được di chuyển đến một vị trí mới, hệ điều hành chỉ cầnnạp lại giá trị cho thanh ghi nền, và việc chuyển đổi địa chỉ được MMU thựchiện vào thời điểm xử lý
Trang 37 Có thể có hiện tượng phân mảnh ngoại vi (external fragmentation ): tổng vùng nhớ trống đủ để thoả mãn yêu cầu, nhưng các vùng nhớ này lại không liên tục nên không đủ để cấp cho một tiến trình khác Có thể áp dụng kỹ thuật “dồn bộ nhớ “ (memory compaction ) để kết hợp các mảnh bộ nhớ nhỏ rời rạc thành một vùng nhớ lớn liên tục, tuy nhiên kỹ thuật này đòi hỏi nhiều thời gian xử lý Ví
dụ về sự phân mảnh ngoại vi của bộ nhớ, các tiến trình liên tục vào ra bộ nhớ, sau một thời gian sẽ để lại các vùng nhớ nhỏ mà không thể chứa bất kỳ tiến trìnhnào
Hình 2.2.4: Một ví dụ về sự phân mảnh ngoại vi trong mô hình cấp phát liên tục
* Vấn đề nảy sinh khi kích thước của tiến trình tăng trưởng trong quá trình xử lý
mà không còn vùng nhớ trống gần kề để mở rộng vùng nhớ cho tiến trình Có hai cách giải quyết:
- Dời chỗ tiến trình: di chuyển tiến trình đến một vùng nhớ khác đủ lớn để
thỏa mãn nhu cầu tăng trưởng của tiến trình
- Cấp phát dư vùng nhớ cho tiến trình: cấp phát dự phòng cho tiến trình một
vùng nhớ lớn hơn yêu cầu ban đầu của tiến trình
Trang 38Hình 2.2.5: dành chỗ trống để tiến trình có thể phát triển trong mô hình cấp phát liên
tục
Tiến trình luôn được lưu trữ trong bộ nhớ suốt quá trình xử lý của nó nên tính đachương của hệ điều hành sẽ bị hạn chế bởi kích thước bộ nhớ và kích thước của cáctiến trình trong bộ nhớ Cách giải quyết là khi tiến trình bị khóa (đợi tài nguyên, đợimột sự kiện,…) hoặc tiến trình sử dụng hết thời gian CPU dành cho nó, nó có thể đượcchuyển tạm thời ra bộ nhớ phụ (đĩa,…) và sau này được nạp trở lại vào bộ nhớ chính
để tiếp tục xử lý (kỹ thuật swapping)
Để tránh tình trạng bộ nhớ bị phân mảnh vì do phải cấp phát một vùng nhớ liên tục chotiến trình, hệ điều hành có thể cấp phát cho tiến trình những vùng nhớ tự do bất kỳ,không cần liên tục
2 Mô hình cấp phát không liên tục
Có ba mô hình cấp phát bộ nhớ không liên tục là mô hình phân đoạn, mô hình phântrang và mô hình phân đoạn kết hợp phân trang
Một chương trình được người lập trình chia thành nhiều phân đoạn, mỗi phân đoạn cóngữ nghĩa khác nhau và hệ điều hành có thể nạp các phân đọan vào bộ nhớ tại các vị tríkhông liên tục
Ví dụ: chương trình chia làm 5 phân đoạn (segment), mỗi phân đoạn được nạp vàovùng nhớ trống có thể không liên tục