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

Giáo trình Lý thuyết Hệ điều hành do tác giả Nguyễn Kim Tuấn biên soạn, được lưu hành nội bộ tại Khoa Công nghệ Thông tin thuộc Trường Đại học Khoa học – Đại học Huế vào tháng 06/2004. Trong chương trình đào tạo bậc đại học ngành Công nghệ Thông tin, học phần Hệ điều hành giữ vị trí khối kiến thức cơ sở ngành bắt buộc, đóng vai trò bản lề kết nối giữa kiến thức phần cứng máy tính (kiến trúc máy tính, vi xử lý, hợp ngữ) và các khối kiến thức phần mềm bậc cao (lập trình ứng dụng, cơ sở dữ liệu, mạng máy tính).

Mục tiêu học tập của giáo trình là cung cấp cho người học cơ sở lý thuyết có hệ thống về cấu trúc và nguyên lý vận hành của các hệ thống điều hành máy tính. Kết thúc tài liệu, người học nắm được hai chức năng cốt lõi của hệ điều hành: giả lập máy tính mở rộng (che giấu chi tiết phần cứng phức tạp) và quản lý tối ưu các nguồn tài nguyên hệ thống (bộ vi xử lý, bộ nhớ trong, thiết bị xuất/nhập, hệ thống tập tin).

Cấu trúc giáo trình được tổ chức thành 4 chương chính trải dài trên 215 trang, tiếp cận vấn đề từ tổng quan lịch sử, mô hình kiến trúc cho đến các giải thuật kỹ thuật chuyên sâu về tiến trình, bộ nhớ và hệ thống lưu trữ. Điểm đặc sắc của giáo trình nằm ở phương pháp đối chiếu trực tiếp giữa nguyên lý lý thuyết trừu tượng với việc cài đặt thực tế trên các hệ điều hành cụ thể như MS-DOS, Windows 95, Windows NT/2000 và Linux, gắn liền với đặc tả phần cứng vi xử lý Intel x86.


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

                             GIÁO TRÌNH LÝ THUYẾT HỆ ĐIỀU HÀNH
                                (Nguyễn Kim Tuấn, 06/2004)
                                             │
      ┌──────────────────────┬───────────────┴──────────────┬──────────────────────┐
      │                      │                              │                      │
┌─────┴────────────┐   ┌─────┴────────────┐           ┌─────┴────────────┐   ┌─────┴────────────┐
│   CHƯƠNG I       │   │   CHƯƠNG II      │           │   CHƯƠNG III     │   │   CHƯƠNG IV      │
│ TỔNG QUAN HĐH    │   │ QUẢN LÝ TIẾN     │           │ QUẢN LÝ BỘ NHỚ   │   │ QUẢN LÝ FILE &   │
│                  │   │ TRÌNH            │           │                  │   │ ĐĨA              │
├──────────────────┤   ├──────────────────┤           ├──────────────────┤   ├──────────────────┤
│• Lịch sử 4 thế hệ│   │• Tiến trình/Luồng│           │• Phân vùng cố    │   │• Quản lý khối/   │
│• Phân loại HĐH   │   │• Đoạn găng       │           │  định & động     │   │  bảng thư mục    │
│• Cấu trúc: Đơn   │   │• Giải pháp khóa, │           │• Phân trang/đoạn │   │• FAT (MS-DOS/    │
│  khối, Phân lớp, │   │  Semaphore       │           │• Bộ nhớ ảo 32-bit│   │  Windows 98)     │
│  Máy ảo, C/S     │   │• Tắc nghẽn       │           │• Quản lý RAM DOS │   │• NTFS (MFT, Bad- │
│• Khảo sát: Win95,│   │  (Deadlock)      │           │  (PSP, MCB)      │   │  cluster, Index) │
│  Win2000, Linux  │   │• Điều phối CPU   │           │• Thay thế trang  │   │• Cấu trúc CD-ROM │
└──────────────────┘   └──────────────────┘           └──────────────────┘   └──────────────────┘

Các chương/chủ đề chính

  • Chương I: Tổng quan về hệ điều hành: Trình bày lịch sử phát triển qua 4 thế hệ máy tính (từ ống chân không, bán dẫn, mạch tích hợp đến máy tính cá nhân); phân tích 2 chức năng chính (máy tính mở rộng và quản lý tài nguyên); làm rõ các khái niệm cơ sở gồm tiến trình (Process), tiểu trình (Thread), vỏ giao tiếp (Shell), tài nguyên hệ thống, lời gọi hệ thống (System Calls). Phân loại các dạng hệ điều hành: xử lý theo lô đơn giản, theo lô đa chương, chia sẻ thời gian, đa vi xử lý (SMP/ASMP), thời gian thực và mạng. Phân tích 4 mô hình cấu trúc hệ điều hành: hệ thống đơn khối (Monolithic), hệ thống phân lớp (Layered), máy ảo (Virtual Machine) và mô hình Client/Server. Khảo sát chi tiết kiến trúc của Windows 95, Windows 2000 và Linux.
  • Chương II: Quản lý tiến trình: Đi sâu vào mô hình tiến trình, tiểu trình, các trạng thái vòng đời và khối quản lý tiến trình (PCB). Trình bày vấn đề tài nguyên găng, đoạn găng và các điều kiện đồng bộ hóa thông qua giải pháp phần cứng, biến khóa, giải pháp hệ điều hành và ngôn ngữ lập trình (Semaphore). Nghiên cứu hiện tượng bế tắc (Deadlock), 4 điều kiện hình thành, các chiến lược ngăn chặn (Prevention), nhận biết (Detection) và các thuật toán điều phối CPU trong môi trường đa nhiệm.
  • Chương III: Quản lý bộ nhớ: Khảo sát các kỹ thuật cấp phát bộ nhớ từ cơ bản đến nâng cao: phân vùng cố định, phân vùng động, phân trang đơn, phân đoạn đơn. Trình bày lý thuyết bộ nhớ ảo (Virtual Memory), phân tích cơ chế quản lý RAM trong MS-DOS (cấu trúc PSP, MCB, chương trình COM/EXE), cơ chế phân trang/phân đoạn trên Windows NT/2000, các thuật toán thay trang, cấp phát khung trang và cơ chế chuyển đổi địa chỉ ảo 32-bit thành địa chỉ vật lý.
  • Chương IV: Quản lý File và Đĩa: Tổng quan về hệ thống tập tin, bảng danh mục, chia sẻ tập tin, quản lý khối (block) trống và an toàn dữ liệu. Khảo sát cấu trúc tổ chức đĩa và hệ thống tập tin FAT trên MS-DOS, Windows 98; cấu trúc volume multipartition và hệ thống tập tin NTFS trên Windows 2000 (bảng Master File Table - MFT, bảng chỉ mục, ánh xạ Bad-cluster) cùng phương thức lưu trữ trên đĩa CD-ROM.

Progression logic của giáo trình đi từ việc xây dựng cái nhìn tổng thể về kiến trúc hệ thống, đến quản lý đơn vị thực thi (tiến trình/luồng), quản lý không gian làm việc trực tiếp của CPU (bộ nhớ trong), và hoàn thiện bằng việc quản lý không gian lưu trữ lâu dài (tập tin và đĩa cứng).

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

  • Lý thuyết trừu tượng hóa hệ thống: Cơ chế tạo lập máy tính logic nhằm che giấu tầng phần cứng phức tạp; mô hình phân lớp phần mềm trung gian.
  • Nguyên lý bảo vệ đa cấp: Cơ chế phân định mức đặc quyền dựa trên kiến trúc phần cứng Intel x86 với Ring 0 (Kernel Mode/Cấp đặc quyền cao nhất) và Ring 3 (User Mode/Cấp người dùng), bảo vệ không gian bộ nhớ hệ thống trước các truy cập trái phép.
  • Mô hình đồng bộ và loại trừ tương hỗ: Các nguyên lý giải quyết tranh chấp tài nguyên găng, điều kiện hình thành và giải tỏa bế tắc hệ thống (Deadlock).
  • Không gian địa chỉ tuyến tính và bộ nhớ ảo: Mô hình bộ nhớ phẳng 32-bit (Flat Memory Model) cho phép đánh địa chỉ không gian ảo lên tới 4GB.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Nhận diện và phân tích cách thức hoạt động của các lời gọi hệ thống (System Calls), cơ chế thông dịch dòng lệnh (Shell), kỹ thuật chuyển đổi địa chỉ ảo qua bảng trang, phân tích cấu trúc đĩa (FAT, MFT của NTFS).
  • Kỹ năng phân tích (Analytical skills): Đánh giá ưu nhược điểm của các mô hình cấu trúc hệ điều hành (Monolithic so với Client/Server; SMP so với ASMP); tính toán hiệu năng của các thuật toán điều phối tiến trình và giải thuật thay thế trang nhớ.
  • Kỹ năng ứng dụng thực tế (Practical competencies): Vận dụng các cơ chế đồng bộ hóa (biến khóa, Semaphore, Mutex) vào lập trình đa tiến trình/đa tiểu trình; xử lý tương thích ứng dụng giữa các môi trường 16-bit và 32-bit.

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

Giáo trình áp dụng phương pháp sư phạm diễn dịch kết hợp đối chiếu hệ thống: xuất phát từ việc mô hình hóa các bài toán kinh điển trong khoa học máy tính (như bài toán đoạn găng, tranh chấp tài nguyên, phân mảnh bộ nhớ), sau đó phân tích các giải thuật giải quyết và minh họa bằng việc cài đặt thực tế trong các hệ điều hành thương mại lẫn mã nguồn mở.

Hệ thống ví dụ và ca nghiên cứu (case studies) được tích hợp xuyên suốt nội dung bài giảng:

  • Phân tích lớp chuyển đổi Thunking và chế độ 8086 ảo của vi xử lý Intel 80386 trong Windows 95 nhằm giải quyết bài toán tương thích ứng dụng 16-bit và 32-bit.
  • Mô hình kiến trúc Windows 2000 gồm 2 phân vùng User Mode (chứa các Subsystems như Win32, POSIX, OS/2) và Kernel Mode (chứa Executive, Kernel, Device Drivers và HAL).
  • Khảo sát hệ điều hành Linux với cơ chế phân tách User Level và Kernel Level, kết hợp giao diện System Call Interface và ngăn xếp giao thức mạng TCP/IP tích hợp trong nhân.

Phương thức đánh giá người học được thiết kế gắn liền với:

  • Trả lời các câu hỏi lý thuyết về phân loại hệ điều hành, chu kỳ trạng thái của tiến trình, cơ chế phân trang và phân đoạn.
  • Giải các bài tập định lượng về thuật toán điều phối CPU, mô phỏng thuật toán thay thế trang, tính toán dung lượng phân vùng đĩa và chuyển đổi địa chỉ logic/vật lý.
  • Viết các đoạn mã hoặc thủ tục giao tiếp với hệ thống thông qua các hàm API (như Win32 API CreateProcess, CreateThread, GetThreadContext, các ngắt hệ thống MS-DOS Int 21h).

Hướng dẫn tự học: Người học cần đọc tuần tự các chương mục theo đúng tiến trình từ Chương I đến Chương IV; sau mỗi chương lý thuyết, cần tra cứu trực tiếp các cấu trúc dữ liệu tương ứng trên hệ điều hành đang sử dụng (như Registry của Windows, Task Manager, bảng chỉ mục tập tin NTFS hoặc mã nguồn mở Linux).


Điểm nổi bật và cập nhật

Tiêu chí phân tích Nội dung thể hiện trong giáo trình Dữ kiện kỹ thuật từ tài liệu
Chuyển dịch nền tảng Khảo sát bước chuyển từ kiến trúc 16-bit sang kiến trúc 32-bit Loại bỏ phân đoạn 64KB của DOS/Win16; sử dụng bộ nhớ phẳng 4GB trên nền vi xử lý Intel 80386 trở lên
Mô hình đa nhiệm So sánh giữa đa nhiệm hợp tác và đa nhiệm chiếm quyền Phân tích Cooperative Multitasking (trên Win16) và Preemptive Multitasking (trên Win32/Windows NT/2000)
Hỗ trợ phần cứng đa xử lý Cơ chế đa xử lý đối xứng (SMP) và bất đối xứng (ASMP) Windows 2000 Server/Datacenter hỗ trợ từ 4 đến 32 vi xử lý thông qua lớp trừu tượng phần cứng (HAL)
Hệ thống tập tin thế hệ mới Chuyển đổi từ FAT sang NTFS Cấu trúc Master File Table (MFT), quản lý bad-cluster, bảng chỉ mục và bảo vệ an toàn dữ liệu trên đĩa
Mở rộng mã nguồn mở Phân tích tính toàn vẹn và an toàn của hệ điều hành Linux Nhân mã nguồn mở, hỗ trợ TCP/IP nguyên bản, đa người dùng (Multi-User), bảo mật mật khẩu mã hóa

Giáo trình ghi nhận đầy đủ các bước phát triển công nghệ tại thời điểm biên soạn (2004), đặc biệt là việc làm rõ sự chuyển dịch từ các hệ thống đơn nhiệm (MS-DOS) sang các hệ điều hành mạng, đa nhiệm, đa người dùng, có kiến trúc phân lớp rõ ràng và độ ổn định cao phục vụ môi trường máy chủ (Windows 2000 Advanced Server, Linux Server).


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

  • Sinh viên: Phục vụ trực tiếp sinh viên năm thứ hai hoặc năm thứ ba thuộc các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Khoa học Máy tính, Hệ thống Thông tin tại các trường đại học và cao đẳng.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Kiến trúc máy tính và nguyên lý tổ chức phần cứng (CPU, thanh ghi, bộ nhớ RAM, thiết bị ngoại vi).
    • Lập trình Hợp ngữ (Assembly) hoặc ngôn ngữ lập trình hệ thống (C/C++, Pascal) để hiểu rõ cơ chế ngắt và các cấu trúc dữ liệu nhị phân.
    • Cấu trúc dữ liệu và giải thuật (ngăn xếp, hàng đợi, danh sách liên kết, cây chỉ mục).
  • Giảng viên: Sử dụng làm đề cương chi tiết và tài liệu giảng dạy chính khóa cho môn học Lý thuyết Hệ điều hành; làm cơ sở xây dựng ngân hàng câu hỏi thi kết thúc học phần và đề tài tiểu luận.
  • Nghiên cứu và tham khảo: Lập trình viên hệ thống, kỹ sư phát triển phần mềm ứng dụng muốn tìm hiểu sâu về nguyên lý quản lý bộ nhớ, cơ chế phân luồng đa nhiệm và tương tác với các hàm API cấp thấp của hệ điều hành.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Giáo trình được thiết kế chuẩn hóa cho sinh viên đại học chuyên ngành Công nghệ Thông tin, giảng viên giảng dạy môn học Hệ điều hành và các kỹ sư phần mềm cần tài liệu tra cứu có hệ thống về nguyên lý cấu tạo của hệ điều hành máy tính.

2. Cần kiến thức nền nào để học?

Người học cần trang bị trước kiến thức về Kiến trúc máy tính (nguyên lý hoạt động của CPU, thanh ghi, Bus), hiểu biết về lập trình Hợp ngữ (ngắt phần cứng, lệnh gọi hàm Int) và ngôn ngữ lập trình bậc cao (C, Pascal) để có thể nắm bắt các giải thuật điều phối và cấu trúc điều khiển hệ thống.

3. Điểm khác biệt với giáo trình khác?

Giáo trình kết hợp song song giữa lý thuyết nguyên lý tổng quát (4 mô hình cấu trúc, các giải thuật điều phối, bế tắc, phân trang) với việc bóc tách cấu trúc kiến trúc thực tế của các hệ điều hành phổ biến: từ cấu trúc bộ nhớ MS-DOS (PSP, MCB), cơ chế bảo vệ Intel Ring 0/Ring 3 trên Windows 95, kiến trúc phân lớp HAL và Executive trên Windows 2000, cho đến cấu trúc nhân phân quyền của Linux.

4. Làm sao để tự học hiệu quả?

Người học nên tuân thủ trình tự 4 chương: nắm chắc khái niệm tiến trình và tài nguyên ở Chương I, thực hành tính toán các giải thuật điều độ và đồng bộ ở Chương II, phân tích mô hình bộ nhớ ảo ở Chương III, và liên hệ với hệ thống tập tin đĩa cứng ở Chương IV; kết hợp tra cứu thực tế trên môi trường máy ảo hoặc hệ điều hành máy trạm.

5. Có tài liệu bổ trợ nào kèm theo?

Giáo trình có phần danh mục Tài liệu tham khảo tại trang 215, liệt kê các sách giáo trình chuyên khảo và tài liệu kỹ thuật về hệ điều hành được biên soạn trong nước và quốc tế để người học mở rộng nghiên cứu.


Kết luận

Giáo trình Lý thuyết Hệ điều hành của tác giả Nguyễn Kim Tuấn (Khoa Công nghệ Thông tin – Trường Đại học Khoa học, Đại học Huế) cung cấp một hệ thống lý thuyết hoàn chỉnh về cơ chế điều hành và quản lý tài nguyên máy tính. Tài liệu dẫn dắt người học qua lộ trình chuẩn mực: từ nắm bắt tổng quan kiến trúc, kiểm soát tiến trình và tiểu trình, tối ưu hóa không gian bộ nhớ, đến tổ chức lưu trữ an toàn trên hệ thống tập tin. Để mở rộng kiến thức chuyên sâu, người học có thể tham khảo thêm danh mục tài liệu nghiên cứu chuyên ngành được chỉ dẫn tại trang 215 của văn bản.