« Home « Kết quả tìm kiếm

Bài giảng Hệ điều hành - Chương 4: Memory (Lương Minh Huấn)


Tóm tắt Xem thử

- Các kiểu địa chỉ nhớ.
- Chuyển đổi địa chỉ nhớ IV.
- Cấp phát bộ nhớ liên tục.
- Cấp phát bộ nhớ không liên tục.
- Một chương trình muốn chạy thì phải được nạp vào trong bộ nhớ chính..
- Quản lý bộ nhớ giúp tối ưu hóa hoạt động của bộ nhớ.
- Tận dụng tối đa bộ nhớ của máy tính.
- Nhiệm vụ của quản lý bộ nhớ:.
- Tổ chức và quản lý bộ nhớ vật lý.
- Tổ chức và quản lý bộ nhớ logic.
- Chia sẻ bộ nhớ cho các tiến trình.
- Layout của bộ nhớ:.
- CÁC KIỂU ĐỊA CHỈ NHỚ.
- Bộ nhớ: là một dãy các ô nhớ liên tục nhau.
- Mỗi ô nhớ (một word) có một địa chỉ.
- Nạp chương trình vào bộ nhớ =>.
- xác định ánh xạ giữa các chỉ thị, dữ liệu vào địa chỉ trong bộ nhớ.
- Địa chỉ vật lý (physical address – địa chỉ thực, địa chỉ tuyệt đối) là một vị trí thực trong bộ nhớ chính..
- Địa chỉ logic (logical address – địa chỉ luận lý) là tham chiếu đến một vị trí nhớ độc lập với cấu trúc, và tổ chức vật lý của bộ nhớ..
- Các trình biên dịch (compiler) tạo ra mã lệnh chương trình mà trong đó, mọi tham chiếu bộ nhớ đều là địa chỉ logic..
- Địa chỉ tương đối (relative address) là một kiểu địa chỉ logic trong đó các địa chỉ được biểu diễn tương đối so với một điểm xác định nào đó trong chương trình..
- Khi lệnh được thực thi, các tham chiếu đến địa chỉ logic phải được dịch sang địa chỉ vật lý.
- NẠP CHƯƠNG TRÌNH VÀO BỘ NHỚ.
- Bộ loader: nạp load module vào bộ nhớ:.
- III.CHUYỂN ĐỔI ĐỊA CHỈ NHỚ.
- Chuyển đổi địa chỉ: quá trình ánh xạ địa chỉ từ không gian địa chỉ này sang không gian địa chỉ khác..
- Biểu diễn địa chỉ nhớ:.
- Thời điểm biên dịch: các địa chỉ có thể tái định vị (relocatable address), hay địa chỉ tương đối (relative address)..
- Thời điểm linking/ loading: địa chỉ tuyệt đối.
- Ví dụ: địa chỉ nằm tại địa chỉ bộ nhớ thực: 2030..
- CHUYỂN ĐỔI ĐỊA CHỈ NHỚ.
- Việc ánh xạ chỉ thị, dữ liệu vào địa chỉ bộ nhớ có thể xảy ra tại 3 thời điểm:.
- Thời điểm biên dịch: nếu địa chỉ vùng nhớ được biết trước thì mã lệnh tuyệt đối (có địa chỉ tuyệt đối) có thể được tạo ra ngay tại thời điểm biên dịch.
- Nếu địa chỉ bắt đầu của vùng nhớ bị thay đổi thì sẽ phải biên dịch lại..
- Thời điểm nạp: Tạo ra các mã lệnh có thể tái định vị (relocatable code) nếu địa chỉ vùng nhớ không thể biết tại thời điểm biên dịch..
- Thời điểm thi hành: Việc kết hợp mã lệnh và địa chỉ sẽ được trì hoãn cho đến lúc chạy chương trình nếu tiến trình đó có thể bị di chuyển từ phân đoạn nhớ này đến phân đoạn nhớ khác.
- Cần phải có hỗ trợ từ phần cứng để ánh xạ địa chỉ (ví dụ: thanh ghi cơ sở và thanh ghi giới hạn (base registers, limit registers))..
- Chia sẻ: một module ngoài chỉ cần nạp vào bộ nhớ một lần.
- tăng độ hiệu dụng của bộ nhớ (memory.
- Địa chỉ được chuyển đổi động trong khi thực thi..
- Không gian địa chỉ vật lý có thể không liên tục (noncontigunous)..
- Cần có phần cứng để chuyển đổi địa chỉ logic sang địa chỉ vật lý được nhanh..
- Là một cơ chế phần cứng để ánh xạ địa chỉ logic thành địa chỉ vật lý vào thời điểm xử lý..
- Trong mô hình MMU, mỗi địa chỉ phát sinh bởi một tiến trình được cộng thêm giá trị của thanh ghi tái định vị (relocation register) tại thời điểm nó truy xuất đến bộ nhớ..
- Chương trình người dùng chỉ quan tâm đến địa chỉ lôgic.
- nó không thấy địa chỉ vật lý thật sự..
- CẤP PHÁT BỘ NHỚ LIÊN TỤC.
- Ưu điểm: việc chuyển đổi địa chỉ logic thành địa chỉ vật lý và ngược lại chỉ cần dựa vào một công thức đơn giản.
- <địa chỉ vật lý>.
- <địa chỉ bắt đầu>.
- <địa chỉ logic>.
- HIỆN TƯỢNG PHÂN MẢNH BỘ NHỚ.
- Để giải quyết vấn đề phân mảnh bộ nhớ:.
- Kết hợp các mảnh bộ nhớ trống nhỏ rời rạc thành một vùng nhớ trống lớn liên tục..
- Đòi hỏi nhiều thời gian xử lý, ngoài ra sự kết buộc địa chỉ phải.
- thực hiện vào thời điểm xử lý vì các tiến trình có thể bị di chuyển trong quá trình dồn bộ nhớ..
- Khi thích hợp, nạp process vào bộ nhớ (swap in) để có thể tiếp tục thực thi..
- Chỉ lưu trong bộ nhớ chỉ thị và dữ liệu đang cần..
- ÁNH XẠ BỘ NHỚ TẠI THỜI ĐIỂM NẠP CHƯƠNG TRÌNH.
- Hệ điều hành sẽ trả về địa chỉ bắt đầu nạp tiến trình và thay các địa chỉ tham chiếu trong tiến trình (đang là địa chỉ logic) bằng địa chỉ vật lý theo công thức.
- (địa chỉ vật lý.
- (địa chỉ bắt đầu.
- ÁNH XẠ BỘ NHỚ TẠI THỜI ĐIỂM THỰC THI.
- MÔ HÌNH QUẢN LÝ BỘ NHỚ THỰC.
- Chia bộ nhớ thành nhiều partition có kích thước bằng nhau hoặc khác nhau..
- swap process đó ra bộ nhớ phụ nhường chỗ cho process mới..
- Khi cần nạp process vào bộ nhớ =>.
- Mỗi process được cấp phát chính xác dung lượng bộ nhớ của mình.
- Dùng để quyết định cấp phát khối bộ nhớ nào còn trống cho process..
- Không gian địa chỉ logic của một tiến trình có thể không liên tục..
- Chia bộ nhớ vật lý thành các khối có kích thước cố định gọi là khung(frame) (kích thước là số mũ của 2, từ 512 đến 8192 bytes)..
- Chia bộ nhớ logic thành các khối có cùng kích thước và gọi là trang(pages)..
- Tạo một bảng trang để chuyển đổi địa chỉ lôgic sang địa chỉ vật lý..
- Có hiện tượng phân mảnh bộ nhớ nội vi.
- MÔ HÌNH CHUYỂN ĐỔI ĐỊA CHỈ.
- Địa chỉ được tạo ra bởi CPU gồm có hai phần:.
- Số trang (Page number)(p)–được dùng như là một chỉ số của một bảng trang chứa địa chỉ cơ sở của mỗi trang trong bộ nhớ vật lý..
- Page offset(d)–kết hợp với địa chỉ cơ sở để định ra không gian địa chỉ vật lý được gởi đến bộ nhớ..
- CHUYỂN ĐỔI ĐỊA CHỈ NHỚ TRONG TRANG.
- Bảng trang được đặt trong bộ nhớ..
- “valid” chỉ ra rằng trang đi kèm là nằm trong không gian địa chỉ lôgic của tiến trình vì vậy truy xuất trang này là hợp lệ..
- “invalid” chỉ ra rằng trang đi kèm không nằm trong không gian địa chỉ lôgic của tiến trình..
- quản lý bộ nhớ rất lớn =>.
- Một địa chỉ lôgic (trên máy 32 bit với kích thước trang là 4K) được chia thành:.
- Địa chỉ lôgic sẽ có cấu trúc như sau:.
- Chuyển đổi địa chỉ.
- Bảng phân trang 2 mức giúp tiết kiệm bộ nhớ..
- Một entry bao gồm địa chỉ ảo của khung và tiến trình sở hữu khung đó..
- Đoạn mã phải nằm ở một vị trí giống nhau trong tất cả các không gian địa chỉ của của tiến trình muốn chia sẻ.
- Hổ trợ quản lý bộ nhớ theo góc độ người dùng..
- Dùng cơ chế phân đoạn trong quản lý bộ nhớ có hổ trợ user view:.
- Không gian địa chỉ ảo là một tập các đoạn, mỗi đoạn có tên và kích thước riêng..
- Một địa chỉ logic gồm tên đoạn và offset bên trong đoạn đó..
- Cho phép không gian địa chỉ vật lý cấp không liên tục cho các process..
- Địa chỉ logic = <segment-number, offset>.
- Bảng phân đoạn (Segment table): chuyển đổi địa chỉ hai chiều thành địa chỉ vật lý một chiều.
- Thanh ghi nền (base) –chứa địa chỉ vật lý bắt đầu của phân đoạn trong bộ nhớ chính..
- Segment-table base register (STBR)lưu trữ địa chỉ của bảng phân đoạn trong vùng nhớ..
- CHUYỂN ĐỔI ĐỊA CHỈ.
- Mỗi địa chỉ ảo là một bộ <s,d>:.
- địa chỉ tương đối d : có giá trị trong khoảng từ 0 đến giới hạn chiều dài của phân đoạn.
- Nếu địa chỉ tương đối hợp lệ, nó sẽ được cộng với giá trị chứa trong thanh ghi nền để phát sinh địa chỉ vật lý tương ứng.
- Bộ nhớ = nhiều phân đoạn

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt