TÀI LIỆU HỌC THUẬT: GIÁO TRÌNH HỆ ĐIỀU HÀNH – PHÂN HỆ QUẢN LÝ TIẾN TRÌNH VÀ QUẢN LÝ BỘ NHỚ


1. Tổng quan về giáo trình

Giáo trình thuộc khối kiến thức cơ sở ngành trong chương trình đào tạo Cử nhân và Kỹ sư các ngành Khoa học Máy tính, Kỹ thuật Phần mềm và Công nghệ Thông tin ở bậc đại học và sau đại học. Nội dung tài liệu tập trung vào các nguyên lý cốt lõi điều khiển tài nguyên phần cứng máy tính, trong đó trọng tâm được làm rõ là cơ chế quản lý tiến trình, tiểu trình và kiến trúc phân hệ quản lý bộ nhớ trong các hệ điều hành đơn chương, đa chương và đa nhiệm.

Mục tiêu học tập của giáo trình nhằm trang bị cho người học:

  • Khả năng phân tích cơ chế tạo lập, quản lý phân cấp tiến trình và tiểu trình trên các hệ điều hành tiêu biểu như Windows NT, POSIX, OS/2 và MS-DOS.
  • Khả năng mô tả và đánh giá năm nhiệm vụ cơ bản của bộ phận quản lý bộ nhớ: Tái định vị (Relocation), Bảo vệ (Protection), Chia sẻ (Sharing), Tổ chức logic (Logical Organization) và Tổ chức vật lý (Physical Organization).
  • Khả năng tính toán cơ chế chuyển đổi địa chỉ (Address Translation) từ không gian địa chỉ logic/ảo sang địa chỉ vật lý thông qua các kỹ thuật phân vùng cố định, phân vùng động, phân trang đơn, phân đoạn đơn và bộ nhớ ảo.
  • Khả năng mô phỏng các thuật toán cấp phát bộ nhớ (First-fit, Best-fit, Next-fit) và thuật toán thay thế trang (FIFO, Optimal, LRU, Clock) khi xử lý hiện tượng lỗi trang.

Giáo trình được cấu trúc theo phương pháp diễn dịch kỹ thuật, đi từ các nguyên lý lý thuyết trừu tượng đến việc cài đặt cụ thể trên các cấu trúc dữ liệu hệ thống (bản đồ bit, danh sách liên kết, bảng trang PCT, bảng đoạn SCT, cấu trúc PSP, MCB) và các kiến trúc vi xử lý thực tế như họ Intel 80386/80486 và Motorola 68040. Điểm đặc thù của tài liệu là phương pháp so sánh đối chiếu đa kiến trúc, đặt các giải pháp kỹ thuật của Windows NT, MS-DOS, POSIX và IBM OS/MVT cạnh nhau để làm rõ ưu nhược điểm của từng mô hình thiết kế.


2. Nội dung kiến thức cốt lõi

2.1. Các chương và chủ đề chính

Nội dung trích xuất từ giáo trình tập trung vào các phân hệ điều hành quan trọng, cụ thể:

Chủ đề 1: Khởi tạo tiến trình, tiểu trình và quan hệ phân cấp

Tài liệu làm rõ quy trình quản lý tiến trình trong Windows NT. Khi một ứng dụng client gửi yêu cầu tạo tiến trình tới hệ thống con (subsystem), hệ thống con sẽ phát yêu cầu tới thành phần Executive của Windows NT. Tiến trình con nhận các thuộc tính kế thừa từ tiến trình client thay vì tiến trình server (gồm access token, hạn ngạch thời gian quota, độ ưu tiên cơ sở - base priority, và processor affinity). Trong khi Windows NT không duy trì cấu trúc quan hệ định sẵn giữa các tiến trình, các hệ điều hành như POSIX và OS/2 lại áp đặt quan hệ phân cấp hình cây, sử dụng các thẻ điều khiển (handle) để duy trì mối liên hệ giữa tiến trình cha và tiến trình con. Trong Windows 16-bit và POSIX (mô hình gốc), tiểu trình không được hỗ trợ trực tiếp, do đó hệ thống con phải yêu cầu Windows NT tạo một tiểu trình ẩn để kích hoạt tiến trình ứng dụng.

Chủ đề 2: Nhiệm vụ cốt lõi của quản lý bộ nhớ

Chương III xác định năm yêu cầu thiết kế của hệ thống quản lý bộ nhớ trong môi trường đa chương:

  1. Tái định vị (Relocation): Đảm bảo chương trình có thể bị hoán chuyển ra đĩa (swap-out) và nạp lại vào bộ nhớ chính (swap-in) tại các vị trí vật lý khác nhau mà vẫn tiếp tục thực thi chính xác.
  2. Bảo vệ bộ nhớ (Protection): Ngăn chặn các tiến trình người dùng truy cập trái phép vào không gian bộ nhớ của hệ điều hành hoặc của tiến trình khác thông qua việc kiểm tra động địa chỉ tại thời điểm chạy.
  3. Chia sẻ bộ nhớ (Sharing): Cho phép nhiều tiến trình cùng truy cập vào một bản sao chương trình hoặc cấu trúc dữ liệu dùng chung mà không vi phạm cơ chế bảo vệ.
  4. Tổ chức logic (Logical Organization): Hỗ trợ cấu trúc chương trình dạng module độc lập (read-only, execute-only) thông qua kỹ thuật phân đoạn (segmentation).
  5. Tổ chức vật lý (Physical Organization): Điều khiển luồng luân chuyển thông tin hai cấp giữa bộ nhớ chính (tốc độ cao, khả biến, dung lượng hạn chế) và bộ nhớ phụ (tốc độ chậm, lưu trữ lâu dài) mà không bắt buộc lập trình viên phải tự xử lý kỹ thuật phủ lắp module (overlaying).

Chủ đề 3: Kỹ thuật cấp phát phân vùng cố định và phân vùng động

  • Phân vùng cố định (Fixed Partitioning): Không gian bộ nhớ người dùng được chia thành các phân vùng có kích thước bằng nhau hoặc không bằng nhau. Tài liệu phân tích mô hình quản lý sử dụng nhiều hàng đợi riêng cho từng phân vùng (Hình 3.1a) so với mô hình một hàng đợi chung (Hình 3.1b). Nhược điểm chính là hiện tượng phân mảnh nội vi (internal fragmentation) và giới hạn số lượng tiến trình đồng thời theo số lượng phân vùng.
  • Phân vùng động (Dynamic Partitioning): Kích thước và số lượng phân vùng được cấp phát linh hoạt theo nhu cầu của tiến trình tại thời điểm nạp (được ứng dụng trong các hệ điều hành mainframe của IBM như OS/MVT). Kỹ thuật này loại bỏ phân mảnh nội vi nhưng làm phát sinh phân mảnh ngoại vi (external fragmentation), đòi hỏi thao tác sắp xếp lại bộ nhớ (compaction/relocation).
Mô hình tổ chức đơn vị cấp phát bộ nhớ động:
+---+---+---+---+---+---+---+---+---+
| P | P | H | H | P | P | P | H | H |   (P = Process, H = Hole)
+---+---+---+---+---+---+---+---+---+

1. Bản đồ Bit:         [ 1   1   0   0   1   1   1   0   0 ]
2. Danh sách Liên kết: [P, 0, 2] -> [H, 2, 2] -> [P, 4, 3] -> [H, 7, 2]

Để theo dõi các khối nhớ trống (Hole - H) và khối đã cấp phát (Process - P), hệ điều hành sử dụng hai cấu trúc dữ liệu:

  1. Bản đồ bit (Bitmap): Mỗi đơn vị cấp phát tương ứng với 1 bit (0 là trống, 1 là đã cấp phát).
  2. Danh sách liên kết (Linked List): Mỗi phần tử gồm ba trường: loại khối (P hoặc H), chỉ số đơn vị cấp phát đầu tiên, và độ dài khối (số lượng đơn vị cấp phát). Hệ thống có thể dùng một danh sách đơn hoặc tách thành hai danh sách riêng biệt.

Ba thuật toán tìm kiếm khối nhớ trống được phân tích gồm:

  • First-fit: Quét từ đầu bộ nhớ và chọn khối nhớ trống đầu tiên có kích thước đủ lớn.
  • Next-fit: Quét tiếp tục từ vị trí khối vừa được cấp phát gần nhất.
  • Best-fit: Quét toàn bộ danh sách để chọn khối có kích thước gần sát nhất với yêu cầu. (Ví dụ trong giáo trình: Với danh sách khối trống 8k, 12k, 22k, 18k, 8k, 6k, 14k, 36k, khi cấp phát cho tiến trình 16k: First-fit chọn khối 22k để lại mảnh vụn 6k; Best-fit chọn khối 18k để lại mảnh vụn 2k; Next-fit chọn khối 36k để lại mảnh vụn 20k).

Chủ đề 4: Kỹ thuật phân trang đơn và phân đoạn đơn

  • Phân trang đơn (Simple Paging): Bộ nhớ vật lý được chia thành các khung trang (page frame) có kích thước cố định ($2^n$, thường từ 512 byte đến 8192 byte). Không gian tiến trình chia thành các trang (page) bằng kích thước khung trang. Hệ thống duy trì bảng trang (Page Control Table - PCT) và thanh ghi cơ sở bảng trang (PTBR). Địa chỉ logic $m$ bit gồm $m-n$ bit số hiệu trang (Page Number) và $n$ bit độ lệch (Offset). Kỹ thuật này triệt tiêu phân mảnh ngoại vi nhưng vẫn tồn tại phân mảnh nội vi ở khung trang cuối.
  • Phân đoạn đơn (Simple Segmentation): Không gian địa chỉ được chia theo cấu trúc logic (code, data, stack, subprogram) thành các phân đoạn (segment) có kích thước không bằng nhau. Hệ thống sử dụng bảng phân đoạn (Segment Control Table - SCT) với hai trường: Địa chỉ cơ sở (Base) và Giới hạn (Length/Limit), kết hợp hai thanh ghi STBR (Segment Table Base Register) và STLR (Segment Table Length Register). Kỹ thuật này loại bỏ phân mảnh nội vi nhưng phát sinh phân mảnh ngoại vi.

Chủ đề 5: Kỹ thuật bộ nhớ ảo và giải thuật thay trang

Bộ nhớ ảo hoạt động trên nguyên lý phân trang theo yêu cầu (Demand Paging) hoặc phân đoạn theo yêu cầu (Demand Segmentation). Khi một tiến trình tham chiếu đến trang chưa nạp vào RAM, cơ chế phần cứng phát sinh ngắt lỗi trang (Page Fault). Hệ điều hành tiến hành nạp trang từ không gian swap trên đĩa vào khung trang trống hoặc thực hiện thay thế trang.

Bảng phần tử trang trong bộ nhớ ảo được bổ sung các bit trạng thái:

  • Bit Present (P): Xác định trang đang ở bộ nhớ chính ($P=1$) hay ở bộ nhớ phụ ($P=0$).
  • Bit Modify (M) / Dirty bit (D): Xác định nội dung trang có bị ghi đè hay không để quyết định việc ghi lại ra đĩa khi swap-out.
  • Bit Accessed (A): Ghi nhận trạng thái truy cập trang.
  • Bit Neo (Pinned bit): Đánh dấu các trang hệ thống quan trọng không được phép swap-out.
Tiêu chí so sánh Phân trang đơn (Simple Paging) Phân đoạn đơn (Simple Segmentation) Bộ nhớ ảo phân trang (Demand Paging) Bộ nhớ ảo phân đoạn (Demand Segmentation)
Phân chia bộ nhớ chính Khung trang (Frame) kích thước cố định Không phân vùng trước Khung trang (Frame) kích thước cố định Không phân vùng trước
Phân chia chương trình Chia thành các Page cố định bởi trình biên dịch/HĐH Chia thành các Segment theo cấu trúc logic bởi lập trình viên Chia thành các Page, nạp từng phần theo yêu cầu Chia thành các Segment, nạp từng phần theo yêu cầu
Hiện tượng phân mảnh Phân mảnh nội vi tại khung trang cuối; Không phân mảnh ngoại vi Phân mảnh ngoại vi; Không phân mảnh nội vi Phân mảnh nội vi tại khung trang cuối; Không phân mảnh ngoại vi Phân mảnh ngoại vi; Không phân mảnh nội vi
Cấu trúc quản lý Duy trì Bảng trang (PCT) cho mỗi tiến trình Duy trì Bảng phân đoạn (SCT) cho mỗi tiến trình Bảng trang bổ sung bit P, M, bit bảo vệ; Bảng trang 2 cấp Bảng phân đoạn bổ sung bit P, M, cấu trúc vòng bảo vệ (Ring)
Yêu cầu nạp thực thi Bắt buộc nạp toàn bộ trang của tiến trình vào RAM Bắt buộc nạp toàn bộ đoạn của tiến trình vào RAM Chỉ nạp các trang cần thiết; Đọc/Ghi trang qua swap khi có Page Fault Chỉ nạp các đoạn cần thiết; Hoán chuyển đoạn qua swap

Tài liệu minh họa cấu trúc bảng trang 2 cấp (Two-level Page Table) cho không gian địa chỉ 32-bit: Trường PT1 (10 bit, 1024 mục vào cấp 1) trỏ tới bảng trang cấp 2 (1024 mục vào cấp 2), mỗi mục cấp 2 quản lý 4KB, kết hợp với trường Offset (12 bit) để định vị byte vật lý (ví dụ chuyển đổi địa chỉ ảo 0x00403004 thành địa chỉ vật lý).

Giáo trình phân tích chi tiết thuật toán thay trang FIFO (First-In-First-Out). Với chuỗi tham chiếu 12 trang: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2 trong hệ thống có 3 khung trang ban đầu, thuật toán FIFO tạo ra tổng cộng 6 lần phát sinh lỗi trang (Page Fault). Tài liệu cũng cảnh báo hiện tượng "trì trệ hệ thống" (thrashing) khi hệ điều hành liên tục mất thời gian xử lý swap-out/swap-in thay vì thực thi chỉ thị tiến trình.

Chủ đề 6: Cơ chế quản lý bộ nhớ trong hệ điều hành MS-DOS

MS-DOS quản lý bộ nhớ theo mô hình đơn nhiệm đa chương:

  • Bộ nhớ chia thành vùng quy ước (Conventional Area - 640KB) chứa vector ngắt, io.sys, command.com và vùng TPA (Transient Program Area) cho ứng dụng người dùng, cùng vùng nhớ trên (Upper Area) chứa Video RAM, ROM BIOS.
  • Cấu trúc tiền tố chương trình PSP (Program Segment Prefix): Kích thước 256 byte, đứng đầu mỗi chương trình nạp qua hàm EXEC, lưu trữ bảng môi trường, độ dài và tham số dòng lệnh.
  • So sánh định dạng thực thi:
    • Chương trình .COM: Dung lượng tối đa 64KB (chứa cả PSP, Code, Data, Stack trong 1 segment duy nhất), thanh ghi con trỏ lệnh khởi tạo $IP = 100h$, con trỏ stack $SP = FFFEh$, các thanh ghi đoạn $CS = DS = SS = ES$.
    • Chương trình .EXE: Vượt giới hạn 64KB, có cấu trúc Header xác định kích thước, giá trị khởi tạo $IP, SP$, chứa bảng tái định vị địa chỉ do chương trình LINK tạo ra.
  • Cấu trúc khối điều khiển bộ nhớ MCB (Memory Control Block): Dài 16 byte (1 paragraph) đứng trước mỗi vùng nhớ cấp phát, gồm trường ID ('M' nếu còn tiếp, 'Z' nếu là khối cuối), trường địa chỉ PSP sở hữu (2 byte), và số lượng byte/paragraph được cấp (2 byte).
Cấu trúc khối điều khiển bộ nhớ MCB trong MS-DOS (16 byte):
+------------+------------------+---------------------+-------------------------+
| ID (1 byte)| Địa chỉ PSP (2B) | Kích thước đoạn (2B)| Vùng chưa sử dụng (11B) |
| 'M' hoặc 'Z'| (Segment Base)   | (Tính theo Paragraph)|                         |
+------------+------------------+---------------------+-------------------------+

Chủ đề 7: Phân đoạn kết hợp Phân trang trong Windows NT trên kiến trúc Intel 80386/80486

Windows NT trên Intel 80486 hiện thực bộ nhớ ảo qua cơ chế chuyển đổi hai bước: Địa chỉ ảo $\rightarrow$ Địa chỉ tuyến tính $\rightarrow$ Địa chỉ vật lý.

  • Cấu trúc địa chỉ ảo 48-bit: Gồm 16 bit Segment Selector (chứa 13 bit Segment Number, 1 bit Table Indicator - TI để chọn GDT/LDT, 2 bit Requested Privilege Level - RPL) và 32 bit Offset.
  • Phần tử bảng phân đoạn (Segment Descriptor 64-bit): Gồm Base Address (32 bit), Limit (20 bit), Descriptor Privilege Level (DPL 2 bit, phân cấp bảo vệ từ Ring 0 đến Ring 3), Type (thuộc tính Read/Write/Execute), Accessed bit (A), và Segment Present bit (P).
  • Cơ chế phân trang hai cấp: Thư mục bảng trang (Page Directory) gồm 1024 mục vào, mỗi mục trỏ đến một Bảng trang (Page Table) gồm 1024 mục vào, mỗi trang có kích thước 4KB, quản lý toàn bộ không gian tuyến tính 4GB ($2^{32}$). Các phần tử chứa các cờ: $P$ (Present), $A$ (Accessed), $D$ (Dirty), $U/S$ (User/Supervisor), $R/W$ (Read/Write), và $AVAIL$ (dành cho hệ thống).

2.2. Kiến thức nền tảng được xây dựng

Nội dung giáo trình cung cấp các nguyên lý cơ bản của kỹ thuật hệ thống:

  1. Lý thuyết phân cấp địa chỉ: Phân định ranh giới giữa địa chỉ tương đối trong mã nguồn, địa chỉ logic/ảo do CPU phát ra, địa chỉ tuyến tính (linear) và địa chỉ vật lý (physical) trên RAM.
  2. Nguyên lý bảo vệ đa cấp: Cài đặt giới hạn truy cập thông qua các cặp thanh ghi phần cứng (Base/Limit registers), bit phân quyền $U/S$, $R/W$ trên bảng trang và mô hình phân cấp đặc quyền 4 mức (Ring 0 đến Ring 3) của cấu trúc phân đoạn.
  3. Mô hình ánh xạ bảng: Cấu trúc phân cấp dữ liệu quản lý bộ nhớ qua bảng trang đơn cấp, bảng trang hai cấp (Page Directory $\rightarrow$ Page Table), và bảng phân đoạn (SCT).

2.3. Kỹ năng phát triển

Người học tiếp thu và hình thành các nhóm kỹ năng kỹ thuật:

  • Kỹ năng phân tích kiến trúc bit: Trích xuất và phân tích cấu trúc trường bit trong địa chỉ logic 16-bit, 32-bit và địa chỉ ảo 48-bit (xác định chỉ số Directory, Page Index, Segment Selector, Offset).
  • Kỹ năng tính toán địa chỉ vật lý: Thực hiện các phép dịch bit, tra cứu bảng trang/bảng đoạn và cộng đại số với địa chỉ cơ sở để tính toán chính xác ô nhớ vật lý trên RAM.
  • Kỹ năng mô phỏng giải thuật quản trị: Vẽ sơ đồ cấp phát bộ nhớ động theo bản đồ bit/danh sách liên kết; trace bảng trạng thái khung trang theo giải thuật thay thế FIFO; tính toán tỉ lệ phát sinh lỗi trang (Page Fault Rate).
  • Kỹ năng phân tích cấu trúc nhị phân cấp thấp: Đọc hiểu và phân tích cấu trúc file nhị phân hệ thống gồm Header file .EXE, cấu trúc khối tiền tố PSP và chuỗi liên kết MCB trong môi trường hệ điều hành thực tế.

3. Phương pháp giảng dạy và học tập

3.1. Phương pháp tiếp cận sư phạm (Pedagogical Approach)

Giáo trình triển khai phương pháp giảng dạy kết hợp giữa phân tích nguyên lý và mô hình hóa trực quan. Các khái niệm phức tạp đều được trừu tượng hóa thành:

  • Sơ đồ cấu trúc phần cứng: Sơ đồ chuyển đổi địa chỉ logic - vật lý (Hình 3.7a, Hình 3.9b, Hình 3.b).
  • Sơ đồ cấu trúc dữ liệu: Mô hình khối quản lý bộ nhớ MCB (Hình 3.16, 3.17), mô hình bảng trang hai cấp, và bảng phân đoạn kết hợp thanh ghi STBR/STLR.
  • Bảng ma trận đối sánh: Đối chiếu trực tiếp 4 cơ chế quản lý bộ nhớ (Phân trang đơn, Phân đoạn đơn, Bộ nhớ ảo Demand Paging, Bộ nhớ ảo Demand Segmentation).

3.2. Bài tập và trường hợp nghiên cứu (Case Studies & Exercises)

Hệ thống bài tập trong giáo trình gắn liền với các tham số kỹ thuật thực tế:

  • Bài tập tính toán ánh xạ địa chỉ logic:
    • Cho địa chỉ logic 16 bit, kích thước trang 1KB ($2^{10}$ byte), số hiệu trang 6 bit. Tính số hiệu trang và Offset của địa chỉ logic 0000010111011110 (= 1502). Kết quả: Số hiệu trang = 1, Offset = 478. Xác định địa chỉ vật lý khi trang nạp vào khung trang 6 (0001100111011110).
    • Chuyển đổi địa chỉ ảo 32-bit 0x00403004 qua bảng trang 2 cấp (trường PT1 = 1, PT2 = 3, Offset = 4) sang địa chỉ vật lý.
  • Bài tập cấp phát bộ nhớ động:
    • Cho chuỗi khối nhớ trống: 8k, 12k, 22k, 18k, 8k, 6k, 14k, 36k. Mô phỏng vị trí cấp phát cho tiến trình 16k theo 3 giải thuật First-fit, Best-fit, Next-fit và tính dung lượng phân mảnh tạo thành.
  • Bài tập mô phỏng giải thuật thay trang:
    • Xây dựng bảng theo dõi trạng thái 3 khung trang khi nạp chuỗi tham chiếu trang: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2 theo thuật toán FIFO và xác định các thời điểm phát sinh Page Fault.

3.3. Phương pháp đánh giá và hướng dẫn tự học

  • Phương pháp đánh giá:
    • Đánh giá qua bài kiểm tra trắc nghiệm và tự luận tính toán địa chỉ, chuyển đổi hệ cơ số nhị phân/thập lục phân trong cấu trúc bảng trang/đoạn.
    • Đánh giá qua bài tập lớn: Viết chương trình mô phỏng các thuật toán cấp phát bộ nhớ (First-fit, Best-fit) hoặc mô phỏng thuật toán thay thế trang (FIFO, LRU).
  • Hướng dẫn tự học:
    • Tự vẽ lại lưu đồ xử lý lỗi trang của hệ điều hành trong hai tình huống: còn khung trang trống và không còn khung trang trống.
    • Phân tích sự khác biệt về phân bổ thanh ghi ($CS, DS, SS, ES, IP, SP$) khi nạp chương trình dạng .COM và .EXE vào bộ nhớ RAM.

4. Điểm nổi bật và cập nhật kỹ thuật

Tài liệu thể hiện các nội dung cập nhật về kỹ thuật kiến trúc máy tính và hệ điều hành:

  1. Phân tích chi tiết kiến trúc vi xử lý 32-bit Intel x86: Cung cấp thông số cấu trúc phần cứng của dòng vi xử lý Intel 80386 và Intel 80486, giải thích phương thức hỗ trợ phần cứng cho Windows NT trong việc thiết lập không gian địa chỉ ảo 64TB ($2^{46}$) và không gian tuyến tính 4GB ($2^{32}$).
  2. Cơ chế phân trang hai cấp (Two-level Paging): Giải quyết vấn đề dung lượng bảng trang quá lớn bằng cách phân trang chính bản thân bảng trang, chỉ nạp các phần bảng trang cần thiết vào bộ nhớ chính thông qua thư mục Page Directory.
  3. Mô hình bảo vệ phân tầng Ring: Phân tích mô hình bảo vệ 4 cấp (Ring 0 dành cho Kernel, Ring 1-2 cho dịch vụ hệ thống, Ring 3 cho ứng dụng người dùng), gắn liền với các trường DPL trong bộ mô tả đoạn (Segment Descriptor).
  4. Đối chiếu hiện thực MS-DOS và Windows NT: Làm rõ sự chuyển dịch từ cơ chế quản lý bộ nhớ thực phân vùng đơn cấp với MCB/PSP trong MS-DOS sang cơ chế bảo vệ phân trang/phân đoạn kết hợp đa nhiệm trong Windows NT.

5. Đối tượng sử dụng giáo trình

  • Sinh viên đại học chuyên ngành: Sinh viên năm thứ hai hoặc năm thứ ba các ngành Khoa học Máy tính, Kỹ thuật Máy tính, Mạng máy tính và Truyền thông, Công nghệ Thông tin đang theo học học phần Hệ điều hành hoặc Kiến trúc máy tính nâng cao.
  • Học viên cao học: Học viên theo học các chuyên ngành Kỹ thuật phần mềm, Hệ thống thông tin cần nghiên cứu sâu về cơ chế quản trị tài nguyên hệ thống cấp thấp và tối ưu hóa hiệu năng vi xử lý.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Kiến thức về Cấu trúc dữ liệu và Giải thuật (danh sách liên kết, mảng, hàng đợi).
    • Kiến thức về Kiến trúc máy tính và Hợp ngữ (tổ chức thanh ghi CPU, chu kỳ chỉ thị, hệ thống số nhị phân, bù 2, hệ thập lục phân).
    • Khái niệm cơ bản về lập trình C/C++ và nguyên lý biên dịch, liên kết chương trình (LINK, EXEC).
  • Giảng viên và Nghiên cứu viên: Dùng làm khung giáo trình chuẩn để xây dựng bài giảng lý thuyết, thiết kế bài tập tính toán ánh xạ địa chỉ và xây dựng đề tài thực hành mô phỏng hệ thống.

6. Câu hỏi thường gặp (FAQ)

1. Giáo trình này phù hợp với đối tượng người học nào?

Giáo trình được biên soạn phục vụ sinh viên bậc đại học và sau đại học ngành Khoa học Máy tính, Kỹ thuật Phần mềm và Công nghệ Thông tin cần nắm vững nguyên lý hoạt động cấp hệ thống của vi xử lý và hệ điều hành.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi tiếp cận giáo trình?

Người học cần có kiến thức nền tảng về Kiến trúc máy tính (thanh ghi, bus, bộ nhớ), hệ thống số nhị phân/hexadecimal, các cấu trúc dữ liệu cơ bản (danh sách liên kết, mảng, hàng đợi) và nguyên lý cơ bản về tiến trình trong hệ điều hành.

3. Điểm khác biệt cốt lõi giữa phân trang đơn và phân đoạn đơn là gì?

Phân trang đơn chia bộ nhớ thành các khối có kích thước cố định bằng nhau ($2^n$), trong suốt với người lập trình, loại bỏ phân mảnh ngoại vi nhưng còn phân mảnh nội vi. Phân đoạn đơn chia bộ nhớ thành các khối có kích thước linh hoạt theo cấu trúc logic của chương trình (code, data, stack), thấy được đối với người lập trình, loại bỏ phân mảnh nội vi nhưng làm phát sinh phân mảnh ngoại vi.

4. Bảng trang hai cấp giải quyết vấn đề kỹ thuật nào trong quản lý bộ nhớ ảo?

Bảng trang hai cấp (Page Directory và Page Table) giải quyết vấn đề tiêu tốn dung lượng bộ nhớ chính để lưu trữ bảng trang khi không gian địa chỉ ảo quá lớn (ví dụ không gian 4GB). Nhờ cấu trúc này, hệ điều hành chỉ cần nạp Page Directory và các bảng trang cấp 2 đang được sử dụng vào RAM, các phần còn lại được lưu trữ trên bộ nhớ ảo.

5. Cấu trúc MCB trong hệ điều hành MS-DOS có chức năng gì?

Khối điều khiển bộ nhớ MCB (Memory Control Block) dài 16 byte trong MS-DOS đóng vai trò quản lý một khối nhớ nằm liền sau nó trong vùng TPA. Mỗi MCB chứa trường định danh ('M' hoặc 'Z'), địa chỉ đoạn của PSP sở hữu, và kích thước vùng nhớ được cấp phát, tạo thành một danh sách liên kết theo dõi toàn bộ tài nguyên bộ nhớ khả dụng.


7. Kết luận

Giáo trình cung cấp hệ thống tri thức kỹ thuật hoàn chỉnh về phân hệ quản lý tiến trình và quản lý bộ nhớ trong hệ điều hành máy tính. Nội dung tài liệu làm rõ toàn bộ chu trình xử lý bộ nhớ từ các phương pháp phân vùng cổ điển (phân vùng cố định, phân vùng động), các kỹ thuật ánh xạ địa chỉ cơ bản (phân trang đơn, phân đoạn đơn) cho đến kiến trúc bộ nhớ ảo hiện đại (Demand Paging, Demand Segmentation, Bảng trang 2 cấp, giải thuật thay trang FIFO).

Lộ trình học tập khuyến nghị:

  1. Nghiên cứu cơ chế khởi tạo và phân cấp tiến trình/tiểu trình (Windows NT, POSIX, OS/2).
  2. Nắm vững 5 nhiệm vụ của quản lý bộ nhớ và các thuật toán cấp phát phân vùng động (First-fit, Best-fit, Next-fit).
  3. Thực hành tính toán chuyển đổi địa chỉ trong phân trang đơn và phân đoạn đơn.
  4. Nghiên cứu sâu cơ chế bộ nhớ ảo, quy trình xử lý lỗi trang và thuật toán thay thế trang.
  5. Phân tích hiện thực kiến trúc thực tế trên MS-DOS (PSP, MCB) và Windows NT trên Intel 80486 (Descriptor 64-bit, Two-level Page Table).