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

Giáo trình Hệ điều hành phân tán do PGS. TS. Hà Quang Thụy biên tập (phát hành qua hệ thống Học liệu Mở Việt Nam - VOER, mã tài liệu: voer.vn/c/2e32f7cb, dung lượng 249 trang) là tài liệu học thuật chuyên khảo phục vụ chương trình đào tạo đại học và sau đại học ngành Khoa học Máy tính và Công nghệ Thông tin. Môn học định vị ở giai đoạn chuyên ngành nâng cao, tiếp nối các học phần nền tảng như Kiến trúc máy tính, Hệ điều hành truyền thống (tập trung) và Mạng máy tính.

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

  • Hiểu biết có hệ thống về quá trình tiến hóa từ hệ điều hành tập trung sang hệ điều hành mạng (NOS), hệ điều hành phân tán (DOS) và hệ tự trị cộng tác (CAS).
  • Nắm vững các cơ chế quản trị ba thực thể cốt lõi trong môi trường phân tán: Quá trình (Process), File và Đường truyền thông (Communication Channel).
  • Nắm rõ nguyên lý thiết kế và cài đặt các thuật toán điều khiển phân tán: đồng bộ hóa, loại trừ tương hỗ, bầu thủ lĩnh, lập lịch, cân bằng tải, quản trị hệ thống file phân tán (DFS) và nhân bản dữ liệu.

Cấu trúc giáo trình gồm 31 chương/chủ đề được thiết kế theo logic phân tầng: đi từ phân tích kiến trúc hệ điều hành truyền thống, cấu trúc vi nhân (microkernel) và dịch vụ giao vận mạng, sau đó phát triển chuyên sâu vào các dịch vụ nguyên thủy, dịch vụ hệ thống và dịch vụ giá trị gia tăng trong môi trường tính toán phân tán.

Điểm đặc sắc của tài liệu là phương pháp phân loại 4 thế hệ hệ điều hành dựa trên hai tiêu chí định lượng và định tính: độ kết dính phần cứng - phần mềm (tỷ số chi phí truyền thông liên bộ xử lý so với thời gian truyền thông nội tại) và tổ hợp mục tiêu - đặc trưng (Máy tính mở rộng, Liên thao tác, Tính trong suốt, và Tính tự trị). Đồng thời, giáo trình chuẩn hóa 10 chiều cạnh của tính trong suốt (transparency) làm thước đo thiết kế cho các hệ thống phân tán.


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

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

Nội dung 31 chương của giáo trình được quy hoạch thành 5 cụm chủ đề trọng tâm:

  1. Tiến hóa và kiến trúc hệ điều hành (Chương 1 – Chương 8, Chương 10): Trình bày sự chuyển dịch từ hệ điều hành đơn chương trình (hoạt động theo chế độ SPOOLING), đa chương trình (chế độ mẻ với kỹ thuật MFT, MVT; chế độ phân chia thời gian TSS với lượng tử thời gian xấp xỉ 0,05s) đến các hệ đa xử lý (phân loại theo Flynn: SISD, SIMD, MISD, MIMD). Phân tích cấu trúc vi nhân, phân hoạch dọc/ngang, giao diện API, SPI, lớp trừu tượng phần cứng HAL, mô hình Client/Server và trường hợp kiến trúc Windows NT.
  2. Hạ tầng mạng và truyền thông phân tán (Chương 9, Chương 11, Chương 15 – Chương 19): Mô hình hóa các mạng truyền thông dựa trên tuyến chia sẻ (Bus LAN: Ethernet, Token Bus, Token Ring, FDDI, DQDB) và mạng chuyển mạch (Switch: ISDN, SMDS, ATM; mạng diện rộng WAN/MAN với các chuẩn T1, DS1, DS3, SONET). Phân tích cơ chế truyền thông chuyển thông điệp (CTĐ), truyền thông hỏi - đáp, truyền thông giao dịch, cùng các giao thức tầng ứng dụng (RPC, Socket, Telnet, FTP, SMTP, HTTP, Java Applet).
  3. Quá trình, luồng và đồng bộ hóa phân tán (Chương 12 – Chương 14, Chương 20 – Chương 22): Quản lý quá trình, tiểu trình (luồng); các cấu trúc đồng bộ ngôn ngữ (Semaphore $P/V$, khoảng tới hạn có điều kiện CCR, Monitor, Communicating Sequential Processes - CSP, điểm hẹn Rendezvous trong Ada, biểu thức đường đi Path Expression). Thiết lập trật tự sự kiện qua đồng hồ logic Lamport; triển khai dịch vụ tên, dịch vụ thư mục; các giải thuật loại trừ ràng buộc phân tán và thuật toán bầu thủ lĩnh.
  4. Mô hình hiệu năng, lập lịch và cân bằng tải (Chương 23 – Chương 27): Đánh giá hiệu năng hệ thống thông qua tham số trễ $a$ (tỷ số độ trễ truyền trên độ trễ chuyển), độ tăng tốc (speedup) và thông lượng (throughput). Triển khai kỹ thuật lập lịch tĩnh dựa trên mô hình quan hệ đi trước, kỹ thuật chia sẻ và cân bằng tải động dựa trên mô hình quan hệ phụ thuộc quá trình, cơ chế di trú quá trình và lập lịch thời gian thực với hạn định nghiêm ngặt (deadtime).
  5. Hệ thống file phân tán và quản trị dữ liệu (Chương 28 – Chương 31): Thiết kế và thi hành DFS (điển hình như Sun NFS), kỹ thuật bộ đệm (caching), các cơ chế điều khiển đồng bộ và giao dịch phân tán, cùng các thuật toán nhân bản dữ liệu và nhân bản file nhằm duy trì tính nhất quán toàn cục.

Logic phát triển nội dung đi từ việc chỉ ra các giới hạn của hệ thống tập trung (phụ thuộc bộ nhớ chung, ngắt trực tiếp), mở rộng sang giao vận mạng liên thao tác, trừu tượng hóa toàn bộ tài nguyên thành một máy tính ảo duy nhất thông qua tính trong suốt, và giải quyết các bài toán phân tán phức tạp khi không tồn tại đồng hồ vật lý tập trung hay không gian nhớ dùng chung.

+-------------------------------------------------------------------------+
|                  HỆ TỰ TRỊ CỘNG TÁC (CAS) / MIDDLEWARE                  |
|          (Tính mở, Tự trị, Tích hợp dịch vụ, ODP, CORBA, CSCW)          |
+-------------------------------------------------------------------------+
                                    ^
                                    | Tiến hóa
+-------------------------------------------------------------------------+
|                    HỆ ĐIỀU HÀNH PHÂN TÁN (DOS)                         |
|     (Tính trong suốt, 3 thực thể: Quá trình - File - Kênh truyền thông,  |
|      Thuật toán phân tán: Đồng hồ Lamport, Bầu thủ lĩnh, DFS, Cân bằng tải) |
+-------------------------------------------------------------------------+
                                    ^
                                    | Mở rộng
+-------------------------------------------------------------------------+
|                      HỆ ĐIỀU HÀNH MẠNG (NOS)                           |
|       (Liên thao tác, Chia sẻ tài nguyên, Dịch vụ giao vận, RPC/Socket) |
+-------------------------------------------------------------------------+
                                    ^
                                    | Nền tảng
+-------------------------------------------------------------------------+
|                   HỆ ĐIỀU HÀNH TRUYỀN THỐNG (TẬP TRUNG)                 |
|   (Quản trị 4 tài nguyên: CPU, Bộ nhớ, I/O, File; Nhân tối thiểu/Vi nhân)|
+-------------------------------------------------------------------------+

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

  • Lý thuyết nền tảng (Fundamental theories): Phân loại kiến trúc song song/đa xử lý của Flynn (SISD, SIMD, MISD, MIMD); lý thuyết đồng bộ tiến trình của Dijkstra (Semaphore), Hoare (CSP, Monitor); lý thuyết về trật tự nhân quả và đồng hồ logic của Leslie Lamport.
  • Nguyên lý cốt lõi (Core principles): Nguyên lý trừu tượng hóa máy tính ảo (Virtual Computer) và quản trị tài nguyên; nguyên lý kiến trúc vi nhân (tách biệt cơ chế trong nhân tối thiểu với chính sách ở không gian người dùng); nguyên lý phân loại 10 khía cạnh tính trong suốt: truy nhập, định vị, di trú, đồng thời, nhân bản, song song, lỗi (thứ lỗi), hiệu năng, kích thước, và duyệt lại (phân đoạn).
  • Mô hình và khung cấu trúc (Essential frameworks): Mô hình Client/Server; mô hình Trạm làm việc - Máy phục vụ (Workstation - Server); mô hình Xâu bộ xử lý (Processors - pool); khung tính toán phân tán mở ODP (Open Distributed Processing) và kiến trúc môi giới đối tượng chung CORBA (Common Object Request Broker Architecture).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Phân tích và thiết kế các giao diện lập trình API/SPI; xây dựng các mô-đun truyền thông chuyển thông điệp đồng bộ/dị bộ, kết khối/không kết khối, có đệm/không đệm; cấu hình và tích hợp các dịch vụ phân tán như Sun NFS, RPC, Socket, telnet, ftp.
  • Kỹ năng phân tích (Analytical skills): Đo lường và đánh giá các thông số hiệu năng phân tán (độ tăng tốc, thông lượng, tham số trễ $a$); phân tích nguy cơ bế tắc phân tán (deadlock); thẩm định tính nhất quán và độ trễ trong các giải pháp nhân bản dữ liệu.
  • Năng lực thực hành chuyên môn (Practical competencies): Thiết kế giải thuật điều khiển phân tán (thuật toán bầu thủ lĩnh, loại trừ tương hỗ); giải bài toán lập lịch tĩnh và cân bằng tải động cho các tiến trình; tổ chức quản lý lưu trữ và phân quyền trong hệ thống file phân tán DFS.

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

  • Cách tiếp cận sư phạm (Pedagogical approach): Giáo trình áp dụng phương pháp tiếp cận phân tầng logic kết hợp đối sánh tiến hóa lịch sử. Người học được dẫn dắt từ các khái niệm quản trị tài nguyên nội tại của hệ thống đơn/đa xử lý truyền thống, nhận diện các nút thắt cổ chai khi mở rộng mạng, từ đó tiếp cận các nguyên lý trừu tượng hóa của hệ điều hành phân tán và hệ tự trị cộng tác. Kiến trúc hệ thống luôn được phân rã theo hai chiều: phân hoạch dọc (phân mức trừu tượng) và phân hoạch ngang (phân rã mô-đun chức năng độc lập).
  • Phân tích ca điển hình (Case studies): Lý thuyết đi kèm với các trường hợp triển khai thực tế trong công nghiệp phần mềm và các hệ thống thực nghiệm:
    • Phân tích kiến trúc vi nhân của IBM Microkernel và Windows NT (cơ chế phân tách hệ thống con Win32, POSIX, OS/2 chạy độc lập trên vi nhân qua API/SPI/HAL).
    • Khảo sát hệ thống file mạng NFS của Sun Microsystems để làm rõ cơ chế chuyển dịch yêu cầu truy nhập file từ xa.
    • Khảo sát các hệ điều hành phân tán thực nghiệm điển hình như AMOEBA, MACH, CHORUS, DCE.
    • Phân tích mô hình thực thi từ xa qua Java Applet và cơ chế mở rộng thư điện tử đa phương tiện MIME.
  • Bài tập và thực hành (Practical exercises): Hệ thống bài tập tập trung vào việc mô hình hóa đồ thị quan hệ đi trước và quan hệ phụ thuộc của các tiến trình; tính toán các chỉ số trễ truyền thông trên các cấu trúc liên kết mạng Bus/Switch; thiết kế giải thuật đồng bộ hóa dựa trên semaphore, monitor hoặc chuyển thông điệp CTĐ.
  • Phương pháp đánh giá (Assessment methods): Kiểm tra mức độ nắm vững lý thuyết thông qua các bài toán phân tích kiến trúc vi nhân, đánh giá giải thuật lập lịch tĩnh/động; đánh giá kỹ năng thực hành qua các bài tập lớn mô phỏng thuật toán bầu thủ lĩnh, thuật toán đồng hồ logic Lamport hoặc thiết kế giao thức truyền thông hỏi - đáp.
  • Hướng dẫn tự học (Self-study guidelines): Người học cần tiếp cận tuần tự theo từng cụm chương. Bắt buộc nắm vững cơ chế quản trị 4 lớp tài nguyên (quá trình, bộ nhớ, vào-ra, file) ở Chương 1 – Chương 3 trước khi nghiên cứu cơ chế mạng ở Chương 4 và các thuật toán phân tán từ Chương 6 trở đi.

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

  • Tính cập nhật so với hệ điều hành truyền thống: Mở rộng không gian bài toán từ một hệ thống đơn lẻ có bộ nhớ chung sang một tập hợp các máy tính tự trị kết nối qua mạng. Giáo trình xác lập khung làm việc ba thực thể (Quá trình, File, Kênh truyền thông), giải quyết triệt để các thách thức phát sinh do không có thông tin toàn cục, độ trễ truyền thông lớn và sự cố phân đoạn mạng.
  • Tích hợp các xu hướng công nghệ:
    • Tích hợp khái niệm Hệ tự trị cộng tác (Collaborative Autonomous Systems - CAS) và mô hình phần mềm trung gian (middleware).
    • Đưa vào các chuẩn công nghệ mở như ODP và kiến trúc đối tượng phân tán CORBA với các vai trò môi giới dịch vụ (Trader/Broker).
    • Giới thiệu mô hình hỗ trợ làm việc cộng tác qua máy tính (CSCW/Groupware) và các dịch vụ giá trị gia tăng như hội thảo phân tán, soạn thảo đồng thời, dịch vụ World Wide Web (WWW, HTTP, HTML).
    • Cập nhật các khái niệm về mạng tích cực (active network) và thông điệp tích cực (active message).
  • Ứng dụng thực tế và kết nối công nghiệp:
    • Chuẩn mạng LAN/MAN/WAN: IEEE 802 (Ethernet, Token Bus, Token Ring, FDDI, DQDB), các dịch vụ chuyển mạch gói tốc độ cao như ATM, ISDN, SMDS và mạng truyền dẫn quang đồng bộ SONET.
    • Chuẩn truyền thông và thư tín: Mô hình 7 tầng OSI của ISO, giao thức TCP/IP, SMTP của Bộ Quốc phòng Mỹ, chuẩn X.400 của CCITT (nay là ITU-T) và chuẩn trao đổi dữ liệu điện tử EDI.

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

  • Sinh viên và học viên:
    • Sinh viên đại học năm thứ 3 và năm thứ 4 thuộc các ngành: Khoa học Máy tính, Kỹ thuật Phần mềm, Công nghệ Thông tin, An toàn Thông tin và Mạng máy tính & Truyền thông dữ liệu.
    • Học viên cao học chuyên ngành Khoa học Máy tính và Hệ thống Thông tin cần nghiên cứu chuyên sâu về kiến trúc hệ thống phân tán, điện toán đám mây và xử lý dữ liệu quy mô lớn.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Đã hoàn thành các môn học: Kiến trúc máy tính & Hợp ngữ, Nguyên lý Hệ điều hành (nắm vững cơ chế lập lịch CPU, bộ nhớ ảo paging/segmentation, quản lý vào/ra và hệ thống tập tin tập trung), Mạng máy tính (nắm vững mô hình OSI, TCP/IP, socket, định tuyến).
    • Có kỹ năng lập trình thành thạo với các ngôn ngữ có hỗ trợ đồng thời và phân tán như C, C++ hoặc Java.
  • Giảng viên và nghiên cứu viên: Sử dụng tài liệu làm khung đề cương chi tiết cho học phần Hệ điều hành phân tán, Hệ thống phân tán, hoặc tài liệu tham khảo cho các chuyên đề sau đại học về giải thuật phân tán và kiến trúc phần mềm phân tán.
  • Kỹ sư hệ thống và kỹ sư phần mềm: Dùng làm tài liệu tra cứu các nguyên lý thiết kế vi nhân, cơ chế đồng bộ hóa tiến trình, giải thuật cân bằng tải và thiết kế hệ thống file mạng trong thực tế.

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

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

Tài liệu được biên soạn cho sinh viên đại học năm cuối, học viên cao học chuyên ngành Công nghệ thông tin/Khoa học máy tính, cũng như các kỹ sư phần mềm hệ thống và kỹ sư kiến trúc mạng muốn tìm hiểu sâu về bản chất tính toán phân tán.

2. Cần kiến thức nền nào trước khi học giáo trình này?

Người học cần nắm vững kiến thức về Hệ điều hành truyền thống (quản lý tiến trình, luồng, bộ nhớ ảo, hệ thống file), Mạng máy tính cơ bản (các tầng giao thức, socket, chuyển mạch gói), Kiến trúc máy tính và kỹ năng lập trình trên C/C++ hoặc Java.

3. Điểm khác biệt cốt lõi giữa giáo trình này và giáo trình Hệ điều hành truyền thống là gì?

Giáo trình Hệ điều hành truyền thống tập trung vào việc quản trị tài nguyên phần cứng nội tại thông qua chia sẻ bộ nhớ và ngắt trên một máy tính vật lý. Giáo trình này giải quyết bài toán quản trị tài nguyên trên nhiều máy tính tự trị kết nối qua mạng không có bộ nhớ chung, lấy tính trong suốt (transparency), cơ chế truyền thông chuyển thông điệp (CTĐ) và các thuật toán phân tán (đồng hồ Lamport, bầu thủ lĩnh, DFS, nhân bản) làm trọng tâm.

4. Làm sao để tự học giáo trình này đạt hiệu quả cao nhất?

Người học nên tuân thủ lộ trình: đọc kỹ Chương 1 đến Chương 3 để hệ thống hóa kiến trúc vi nhân và quản trị 4 tài nguyên cơ sở; sau đó nghiên cứu Chương 4 – Chương 8 để hiểu rõ các mô hình phân tán và tính trong suốt; cuối cùng đi sâu vào từng chủ đề kỹ thuật chuyên biệt (đồng bộ, lập lịch, DFS, nhân bản dữ liệu) kết hợp làm bài tập mô hình hóa giải thuật.

5. Có tài liệu và hệ thống thực nghiệm nào được trích dẫn trong giáo trình để tham khảo thêm?

Giáo trình cung cấp các dẫn chứng và tài liệu tham khảo về các hệ điều hành phân tán thực nghiệm điển hình như AMOEBA, MACH, CHORUS, DCE; các hệ thống thương mại như Windows NT, Sun NFS; cùng các khung tiêu chuẩn quốc tế như ODP, CORBA, POSIX, IEEE 802 và CCITT/ITU-T.


Kết luận

Giáo trình Hệ điều hành phân tán của tác giả Hà Quang Thụy cung cấp một hệ thống lý thuyết chuẩn mực và chi tiết về nguyên lý hoạt động, kiến trúc phần mềm và các giải thuật cốt lõi trong các hệ thống tính toán phân tán hiện đại. Giá trị học thuật của tài liệu thể hiện qua việc phân loại rõ ràng 4 thế hệ hệ điều hành, chuẩn hóa 10 tiêu chí tính trong suốt và phân tích sâu các cơ chế vi nhân, truyền thông chuyển thông điệp cùng hệ thống file phân tán.

Lộ trình học tập đề xuất cho người học là tiếp cận tuần tự: nắm vững cấu trúc vi nhân và mô hình Client/Server $\rightarrow$ phân tích cơ chế truyền thông CTĐ và đồng bộ hóa qua đồng hồ logic Lamport $\rightarrow$ làm chủ các thuật toán lập lịch tĩnh/động và cân bằng tải $\rightarrow$ nghiên cứu thiết kế hệ thống file phân tán DFS và các giải pháp điều khiển nhất quán nhân bản dữ liệu. Tài liệu kết hợp chặt chẽ giữa lý thuyết hệ thống và các tiêu chuẩn công nghiệp (Sun NFS, Windows NT, CORBA, ODP, chuẩn mạng IEEE/ITU-T), tạo nền tảng vững chắc cho việc nghiên cứu và phát triển phần mềm hệ thống chuyên sâu.