Giáo trình hệ điều hành nâng cao

Giáo trình hệ điều hành nâng cao cung cấp kiến thức chuyên sâu về quản lý bộ nhớ, tiến trình và tài nguyên hệ thống cho sinh viên công nghệ thông tin.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Giáo trình

2008

110
3
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan giáo trình hệ điều hành nâng cao toàn tập nhất

Giáo trình hệ điều hành nâng cao là một tài liệu học thuật chuyên sâu, được biên soạn nhằm cung cấp kiến thức nền tảng và các khái niệm phức tạp trong lĩnh vực hệ điều hành. Mục tiêu chính của môn học này không chỉ dừng lại ở việc mô tả chức năng, mà còn đi sâu vào phân tích cách thức hoạt động, các chiến lược tối ưu hóa và cấu trúc bên trong của các hệ điều hành hiện đại. Theo tài liệu lưu hành nội bộ của Đại học Khoa học Tự nhiên TP.HCM (Trần Hạnh Nhi, 2008), hệ điều hành đóng vai trò trung gian giữa người dùng và phần cứng, với hai nhiệm vụ cốt lõi: quản lý và chia sẻ tài nguyên hệ thống một cách hiệu quả, đồng thời giả lập một máy tính mở rộng để đơn giản hóa tương tác cho người dùng. Nội dung của một giáo trình hệ điều hành nâng cao thường bao quát các chủ đề từ cơ bản đến phức tạp. Các thành phần chính yếu được đề cập bao gồm quản lý tiến trình, quản lý bộ nhớ, quản lý nhập/xuất, hệ thống tập tin, và hệ thống bảo vệ. Việc nắm vững các khái niệm này là yêu cầu bắt buộc đối với bất kỳ chuyên gia công nghệ thông tin nào muốn làm việc ở tầng hệ thống hoặc phát triển phần mềm hiệu năng cao. Tài liệu này không chỉ là cẩm nang cho sinh viên mà còn là tài liệu tham khảo quý giá cho các nhà nghiên cứu và kỹ sư hệ thống, giúp họ hiểu rõ hơn về các nguyên tắc thiết kế và các thách thức trong việc xây dựng một hệ điều hành ổn định và an toàn.

1.1. Khám phá kiến trúc hệ điều hành qua tài liệu tham khảo

Một trong những nội dung quan trọng nhất của giáo trình hệ điều hành nâng cao là phân tích các loại kiến trúc hệ điều hành. Tài liệu gốc đề cập đến nhiều cấu trúc phổ biến. Cấu trúc đơn khối (Monolithic) như MS-DOS có ưu điểm là hiệu năng cao do các thành phần gọi trực tiếp lẫn nhau, nhưng nhược điểm lớn là khó bảo trì, mở rộng và thiếu cơ chế bảo vệ rõ ràng. Ngược lại, cấu trúc phân lớp (Layered) chia hệ thống thành các tầng, mỗi tầng xây dựng dựa trên tầng thấp hơn, giúp việc thiết kế và gỡ lỗi đơn giản hơn. Tuy nhiên, hiệu suất có thể bị ảnh hưởng do các lời gọi phải đi qua nhiều lớp. Mô hình máy ảo (Virtual Machines) tách biệt hoàn toàn chức năng đa chương và cung cấp một bản sao của phần cứng, tạo ra sự linh hoạt và bảo vệ tuyệt đối giữa các môi trường. Cuối cùng, mô hình client-server, điển hình như trong Windows NT, chuyển phần lớn chức năng của hệ điều hành thành các tiến trình server, trong khi hạt nhân (kernel) chỉ giữ lại các chức năng tối thiểu. Cách tiếp cận này giúp hệ thống dễ mở rộng và có độ ổn định cao hơn.

1.2. Slide bài giảng và vai trò trong việc học tập hiệu quả

Để hỗ trợ quá trình học tập, slide bài giảng đóng vai trò không thể thiếu bên cạnh giáo trình hệ điều hành nâng cao. Các slide bài giảng thường cô đọng những kiến thức cốt lõi, trình bày dưới dạng sơ đồ, hình ảnh minh họa và các gạch đầu dòng súc tích. Điều này giúp sinh viên dễ dàng nắm bắt các khái niệm trừu tượng như mô hình trạng thái của tiến trình, các thuật toán lập lịch CPU, hay cơ chế hoạt động của semaphore. Slide giúp hệ thống hóa kiến thức theo từng chương, làm nổi bật các từ khóa quan trọng và các điểm cần lưu ý. Hơn nữa, chúng thường được sử dụng làm khung sườn cho các buổi thảo luận trên lớp, khuyến khích sự tương tác và đặt câu hỏi. Việc kết hợp nghiên cứu sâu trong giáo trình với việc ôn tập nhanh qua slide là phương pháp học tập hiệu quả, giúp củng cố kiến thức và chuẩn bị tốt cho các bài kiểm tra cũng như bài tập hệ điều hành.

II. Thách thức lớn nhất Cách xử lý deadlock và đồng bộ hóa

Trong các hệ thống đa nhiệm, việc nhiều tiến trình cùng truy cập và chia sẻ tài nguyên là một thách thức lớn, dẫn đến hai vấn đề kinh điển mà mọi giáo trình hệ điều hành nâng cao đều phải phân tích kỹ lưỡng: đồng bộ hóa luồngdeadlock (khóa chết). Vấn đề đồng bộ hóa nảy sinh khi kết quả của việc thực thi đồng thời phụ thuộc vào thứ tự xử lý không thể đoán trước của các tiến trình, còn được gọi là "race condition". Để giải quyết, các cơ chế như miền găng (critical section), semaphore, và monitor được giới thiệu nhằm đảm bảo rằng tại một thời điểm, chỉ có một tiến trình được phép truy cập vào tài nguyên dùng chung. Tài liệu của Trần Hạnh Nhi (2008) nhấn mạnh rằng một giải pháp tốt cho bài toán miền găng phải thỏa mãn các điều kiện như loại trừ tương hỗ (mutual exclusion) và không có tiến trình nào phải chờ đợi vô hạn. Mặt khác, deadlock (khóa chết) là một tình huống nghiêm trọng hơn, khi một tập hợp các tiến trình bị chặn vĩnh viễn, mỗi tiến trình đang giữ một tài nguyên và chờ một tài nguyên khác do một tiến trình khác trong tập hợp nắm giữ. Việc hiểu rõ nguyên nhân, điều kiện xảy ra và các phương pháp phòng ngừa, tránh né, phát hiện và phục hồi deadlock là kiến thức cốt lõi, thể hiện sự am hiểu sâu sắc về quản lý tài nguyên trong hệ điều hành.

2.1. Phân tích hiện tượng deadlock khóa chết trong hệ thống

Hiện tượng deadlock (khóa chết) xảy ra khi bốn điều kiện xảy ra đồng thời: (1) Loại trừ tương hỗ: Tài nguyên không thể chia sẻ. (2) Giữ và chờ: Một tiến trình đang giữ ít nhất một tài nguyên và chờ tài nguyên khác. (3) Không ưu tiên: Tài nguyên không thể bị thu hồi một cách cưỡng chế. (4) Chờ đợi vòng tròn: Tồn tại một chuỗi các tiến trình đang chờ đợi nhau theo một vòng khép kín. Các giáo trình hệ điều hành nâng cao giới thiệu ba chiến lược chính để đối phó với deadlock. Thứ nhất là phòng ngừa (prevention), bằng cách phá vỡ một trong bốn điều kiện trên, ví dụ như yêu cầu tiến trình phải xin cấp phát tất cả tài nguyên cần thiết ngay từ đầu. Thứ hai là tránh né (avoidance), sử dụng các thuật toán như Banker's để phân bổ tài nguyên một cách an toàn. Cuối cùng là phát hiện và phục hồi (detection and recovery), cho phép deadlock xảy ra, sau đó sử dụng thuật toán để phát hiện chu trình trong đồ thị cấp phát tài nguyên và tiến hành phục hồi bằng cách hủy bỏ tiến trình hoặc thu hồi tài nguyên.

2.2. Giải pháp cho bài toán đồng bộ hóa luồng hiệu quả

Bài toán đồng bộ hóa luồng (hoặc tiến trình) là nền tảng để xây dựng các ứng dụng đa luồng đáng tin cậy. Các giải pháp ban đầu như sử dụng biến cờ hoặc kiểm tra luận phiên thường gặp lỗi trong một số trường hợp đặc biệt. Giải pháp của Peterson là một thuật toán phần mềm kinh điển giải quyết bài toán miền găng cho hai tiến trình. Tuy nhiên, các giải pháp phần cứng như cấm ngắt (disabling interrupts) hoặc sử dụng các lệnh nguyên tử (atomic instructions) như Test-and-Set mang lại hiệu quả cao hơn. Để tránh lãng phí CPU do "busy waiting", các cơ chế cấp cao hơn như semaphore và monitor được phát triển. Semaphore là một biến số nguyên hỗ trợ hai thao tác nguyên tử Down (chờ) và Up (tín hiệu). Monitor là một cấu trúc lập trình cấp cao hơn, tự động đảm bảo loại trừ tương hỗ cho các thủ tục bên trong nó. Việc lựa chọn giải pháp đồng bộ hóa luồng phù hợp phụ thuộc vào yêu cầu cụ thể của ứng dụng và sự hỗ trợ từ hệ điều hành.

III. Hướng dẫn quản lý tiến trình và phương pháp lập lịch CPU

Quản lý tiến trình là một trong những chức năng trung tâm của mọi hệ điều hành đa nhiệm. Một tiến trình được định nghĩa là một chương trình đang trong trạng thái thực thi. Hệ điều hành chịu trách nhiệm cho toàn bộ vòng đời của một tiến trình, từ việc tạo, tạm dừng, tái kích hoạt cho đến khi kết thúc. Theo giáo trình hệ điều hành nâng cao, mỗi tiến trình được biểu diễn trong hệ điều hành bởi một Khối quản lý tiến trình (Process Control Block - PCB), chứa các thông tin quan trọng như trạng thái tiến trình, con trỏ lệnh, nội dung các thanh ghi, và thông tin lập lịch CPU. Các tiến trình có thể chuyển đổi giữa các trạng thái khác nhau: Mới (New), Sẵn sàng (Ready), Đang chạy (Running), Bị khóa (Blocked), và Kết thúc (Terminated). Một phần quan trọng của quản lý tiến trình là cung cấp các cơ chế cho phép chúng giao tiếp và đồng bộ với nhau. Tiểu trình (thread) là một khái niệm mở rộng, cho phép một tiến trình có nhiều luồng thực thi đồng thời, chia sẻ cùng một không gian địa chỉ, giúp tăng hiệu quả trong các ứng dụng đòi hỏi xử lý song song. Việc hiểu rõ các cơ chế này là nền tảng để xây dựng các ứng dụng phức tạp và hiệu suất cao.

3.1. Mô hình và các trạng thái trong quản lý tiến trình

Mô hình quản lý tiến trình trong hệ điều hành dựa trên sự chuyển đổi trạng thái. Khi một chương trình được nạp để thực thi, một tiến trình mới được tạo ra (trạng thái Mới) và đưa vào hàng đợi sẵn sàng (trạng thái Sẵn sàng). Bộ lập lịch sẽ chọn một tiến trình từ hàng đợi này để cấp phát CPU, chuyển nó sang trạng thái Đang chạy. Một tiến trình đang chạy có thể bị chuyển sang trạng thái Bị khóa nếu nó yêu cầu một thao tác nhập/xuất hoặc chờ một sự kiện nào đó. Khi sự kiện hoàn tất, nó sẽ quay trở lại trạng thái Sẵn sàng. Tiến trình cũng có thể bị ngắt và đưa về trạng thái Sẵn sàng nếu hết thời gian quantum được cấp. Cuối cùng, khi hoàn thành nhiệm vụ, nó sẽ chuyển sang trạng thái Kết thúc và tài nguyên sẽ được thu hồi. Sơ đồ chuyển đổi trạng thái này là một công cụ trực quan và mạnh mẽ để mô tả hoạt động động của các tiến trình trong hệ thống đa chương, được trình bày chi tiết trong các slide bài giảng và giáo trình.

3.2. Các chiến lược và thuật toán tối ưu cho lập lịch CPU

Mục tiêu của lập lịch CPU là tối đa hóa hiệu suất sử dụng CPU và giảm thiểu thời gian chờ của các tiến trình. Các giáo trình hệ điều hành nâng cao phân loại các thuật toán lập lịch dựa trên tính độc quyền (preemptive) và không độc quyền (non-preemptive). Các thuật toán phổ biến bao gồm: First-Come, First-Served (FCFS), một thuật toán không độc quyền đơn giản nhưng có thể gây ra hiệu ứng "convoy effect". Shortest-Job-First (SJF) là thuật toán tối ưu về mặt thời gian chờ trung bình, nhưng khó thực thi vì không thể biết trước thời gian xử lý của tiến trình. Round Robin (RR) là thuật toán độc quyền, cấp cho mỗi tiến trình một khoảng thời gian (quantum), rất phù hợp cho các hệ thống chia sẻ thời gian. Lập lịch theo độ ưu tiên (Priority Scheduling) cho phép các tiến trình quan trọng hơn được thực thi trước. Các hệ thống hiện đại thường sử dụng các thuật toán lai ghép như Hàng đợi đa mức phản hồi (Multilevel Feedback Queue) để cân bằng giữa các mục tiêu khác nhau như thời gian đáp ứng nhanh và thông lượng cao.

IV. Bí quyết quản lý bộ nhớ và kỹ thuật ảo hóa tiên tiến

Quản lý bộ nhớ là một nhiệm vụ phức tạp, quyết định trực tiếp đến hiệu năng và số lượng tiến trình có thể chạy đồng thời trong hệ thống. Bộ nhớ chính là tài nguyên quý giá và giới hạn, nơi CPU có thể truy xuất trực tiếp. Bộ phận quản lý bộ nhớ của hệ điều hành phải đảm nhiệm việc cấp phát và thu hồi không gian bộ nhớ cho các tiến trình, theo dõi phần nào của bộ nhớ đang được sử dụng, và quyết định tiến trình nào sẽ được nạp vào bộ nhớ khi có không gian trống. Các kỹ thuật ban đầu như phân vùng cố định hoặc phân vùng động gặp phải vấn đề phân mảnh (fragmentation), làm lãng phí không gian bộ nhớ. Các kỹ thuật hiện đại hơn như phân trang (paging) và phân đoạn (segmentation) giải quyết vấn đề này bằng cách chia không gian địa chỉ logic của tiến trình thành các khối nhỏ và nạp chúng vào các khung bộ nhớ vật lý không nhất thiết phải liền kề. Đây là nền tảng cho kỹ thuật ảo hóa bộ nhớ, một khái niệm then chốt trong các giáo trình hệ điều hành nâng cao.

4.1. Nguyên tắc cơ bản trong quản lý bộ nhớ và bộ nhớ ảo

Kỹ thuật quản lý bộ nhớ ảo (virtual memory) là một bước đột phá, cho phép một tiến trình có không gian địa chỉ logic lớn hơn nhiều so với bộ nhớ vật lý có sẵn. Nguyên lý hoạt động là chỉ nạp những phần cần thiết của chương trình vào bộ nhớ chính tại thời điểm thực thi. Khi tiến trình truy cập một trang chưa có trong bộ nhớ, một lỗi trang (page fault) sẽ xảy ra. Hệ điều hành sẽ xử lý ngắt này, nạp trang cần thiết từ đĩa vào một khung trống trong bộ nhớ, và cập nhật lại bảng trang. Nếu không có khung trống, một thuật toán thay thế trang (ví dụ: FIFO, LRU, Optimal) sẽ được sử dụng để chọn một trang "nạn nhân" và hoán đổi ra đĩa. Bộ nhớ ảo không chỉ giúp chạy các chương trình lớn mà còn tăng mức độ đa chương và đơn giản hóa việc chia sẻ thư viện giữa các tiến trình. Đây là một chủ đề phức tạp đòi hỏi sự hiểu biết sâu về cả phần cứng (MMU) và phần mềm.

4.2. Tìm hiểu công nghệ ảo hóa và máy ảo Virtual Machines

Công nghệ ảo hóa (virtualization) mở rộng khái niệm hệ điều hành bằng cách tạo ra các máy ảo (Virtual Machines - VMs). Một máy ảo là một bản sao phần mềm của một máy tính vật lý, có thể chạy hệ điều hành và ứng dụng riêng của nó. Lớp phần mềm quản lý các máy ảo này được gọi là trình giám sát máy ảo (hypervisor). Theo tài liệu của Trần Hạnh Nhi (2008), hướng tiếp cận này phân tách hoàn toàn chức năng đa chương và việc cung cấp một máy tính mở rộng, tạo ra một hệ thống cực kỳ linh hoạt. Ảo hóa mang lại nhiều lợi ích: hợp nhất máy chủ (server consolidation) để tiết kiệm chi phí, tạo môi trường thử nghiệm và phát triển an toàn, và giải quyết vấn đề tương thích phần mềm. Nó là công nghệ nền tảng cho điện toán đám mây (cloud computing) ngày nay, cho phép các nhà cung cấp dịch vụ như Amazon AWS hay Google Cloud cung cấp tài nguyên tính toán theo yêu cầu một cách linh hoạt và hiệu quả.

V. Ứng dụng thực tiễn Hệ thống phân tán và Kernel Linux

Lý thuyết trong giáo trình hệ điều hành nâng cao sẽ trở nên sống động khi được áp dụng vào các hệ thống thực tế. Hai lĩnh vực ứng dụng quan trọng là hệ thống phân tán và việc nghiên cứu các hệ điều hành mã nguồn mở như Linux. Một hệ thống phân tán bao gồm nhiều bộ xử lý không chia sẻ bộ nhớ chung, giao tiếp với nhau qua mạng. Hệ điều hành cho các hệ thống này phải quản lý tài nguyên trên nhiều máy, che giấu sự phức tạp của mạng và cung cấp các cơ chế truyền thông liên tiến trình (IPC) mạnh mẽ, ví dụ như mô hình client-server. Trong khi đó, việc phân tích Kernel Linux là cách tốt nhất để hiểu cách các khái niệm lý thuyết được triển khai. Sinh viên có thể xem xét mã nguồn ví dụ về bộ lập lịch, hệ thống quản lý bộ nhớ, hay cách hệ thống tập tin như ext4 hoạt động. Việc này không chỉ củng cố kiến thức mà còn trang bị kỹ năng thực hành quý giá, giúp giải quyết các bài tập hệ điều hành một cách hiệu quả.

5.1. Triển khai hệ thống phân tán và mô hình client server

Mô hình client-server là kiến trúc phổ biến trong các hệ thống phân tán. Trong mô hình này, các tiến trình được chia thành hai loại: server, cung cấp dịch vụ (ví dụ: quản lý tập tin, cơ sở dữ liệu), và client, yêu cầu dịch vụ. Hạt nhân của hệ điều hành chỉ cần cung cấp cơ chế giao tiếp cơ bản giữa chúng. Ưu điểm của kiến trúc này là tính module hóa cao, dễ dàng mở rộng và bảo trì. Nếu một server gặp lỗi, nó không làm sập toàn bộ hệ thống. Các server có thể chạy trên các máy khác nhau, cho phép phân bổ tải và tăng cường độ tin cậy. Việc tìm hiểu mô hình này giúp sinh viên hiểu rõ hơn về kiến trúc của các dịch vụ mạng hiện đại và các hệ điều hành được thiết kế cho môi trường kết nối mạng.

5.2. Phân tích mã nguồn ví dụ trên Kernel Linux thực tế

Nghiên cứu Kernel Linux là một trải nghiệm học tập vô giá. Vì là mã nguồn mở, bất kỳ ai cũng có thể tải về, đọc và sửa đổi mã nguồn. Bằng cách phân tích các mã nguồn ví dụ cụ thể, sinh viên có thể thấy rõ các thuật toán lập lịch CPU như CFS (Completely Fair Scheduler) được cài đặt như thế nào, hay cách cơ chế copy-on-write được sử dụng trong hàm fork() để tối ưu hóa việc tạo tiến trình. Việc này giúp chuyển hóa kiến thức trừu tượng từ giáo trình hệ điều hành nâng cao thành hiểu biết cụ thể. Nó cũng là một kỹ năng quan trọng cho các kỹ sư hệ thống nhúng, nhà phát triển driver, hoặc bất kỳ ai muốn làm việc ở tầng thấp của hệ thống.

5.3. Hướng dẫn giải bài tập hệ điều hành từ cơ bản đến khó

Để kiểm tra và củng cố kiến thức, việc giải bài tập hệ điều hành là cực kỳ quan trọng. Các bài tập thường xoay quanh các chủ đề như: mô phỏng các thuật toán lập lịch CPU và tính toán thời gian chờ trung bình; giải quyết các bài toán đồng bộ hóa kinh điển (Producer-Consumer, Readers-Writers) bằng semaphore hoặc monitor; và phân tích các kịch bản có thể dẫn đến deadlock. Nhiều giáo trình cung cấp các bài tập kèm theo mã nguồn ví dụ để sinh viên có thể chạy thử và quan sát. Việc thực hành thường xuyên không chỉ giúp nắm vững lý thuyết mà còn rèn luyện tư duy logic và kỹ năng giải quyết vấn đề, là hành trang cần thiết cho sự nghiệp trong ngành công nghệ thông tin.

VI. Tương lai ngành Top các xu hướng bảo mật hệ điều hành

Trong bối cảnh các mối đe dọa an ninh mạng ngày càng gia tăng, bảo mật hệ điều hành đã trở thành một trong những lĩnh vực được quan tâm hàng đầu và là phần không thể thiếu trong các giáo trình hệ điều hành nâng cao hiện đại. Hệ điều hành là lớp phần mềm cốt lõi, kiểm soát mọi tài nguyên của hệ thống, do đó nó là mục tiêu chính của các cuộc tấn công. Hệ thống bảo vệ (protection system) là cơ chế kiểm soát truy cập của các tiến trình và người dùng tới các tài nguyên hệ thống. Các cơ chế này phải đảm bảo rằng chỉ những truy cập được ủy quyền mới được phép thực hiện. Các khái niệm như ma trận truy cập (access matrix), danh sách kiểm soát truy cập (ACLs), và capabilities là những công cụ cơ bản để thực thi chính sách bảo vệ. Ngoài ra, việc phân biệt giữa các chế độ xử lý (chế độ người dùng và chế độ kernel/đặc quyền) với sự hỗ trợ của phần cứng là một biện pháp bảo vệ nền tảng, ngăn chặn các chương trình người dùng thực hiện các hành động có thể gây hại cho toàn bộ hệ thống.

6.1. Các cơ chế bảo vệ hệ thống khỏi các truy cập trái phép

Để đảm bảo bảo mật hệ điều hành, nhiều cơ chế bảo vệ được triển khai. Vòng bảo vệ (protection rings) là một mô hình phân cấp quyền truy cập, trong đó Kernel hoạt động ở vòng trong cùng (vòng 0) với đặc quyền cao nhất, và các ứng dụng người dùng ở các vòng ngoài với đặc quyền bị hạn chế. Khi một ứng dụng cần thực hiện một thao tác đặc quyền, nó phải thực hiện một lời gọi hệ thống (system call), chuyển quyền điều khiển cho kernel một cách có kiểm soát. Ngoài ra, các kỹ thuật như ASLR (Address Space Layout Randomization) làm cho việc khai thác lỗ hổng tràn bộ đệm trở nên khó khăn hơn bằng cách ngẫu nhiên hóa vị trí của các vùng dữ liệu quan trọng trong bộ nhớ. Sandboxing là một kỹ thuật khác, tạo ra một môi trường bị cô lập để chạy các chương trình không đáng tin cậy, hạn chế quyền truy cập của chúng vào tài nguyên hệ thống.

6.2. Xu hướng phát triển bảo mật hệ điều hành trong tương lai

Tương lai của bảo mật hệ điều hành đang hướng tới các mô hình bảo mật chủ động và toàn diện hơn. Một xu hướng là phát triển các microkernel (hạt nhân cực tiểu), giảm thiểu lượng mã chạy ở chế độ đặc quyền để hạn chế bề mặt tấn công. Các hệ điều hành như seL4 là minh chứng cho thấy có thể chứng minh tính đúng đắn của kernel về mặt toán học, đảm bảo không có lỗ hổng bảo mật ở cấp độ thiết kế. Trí tuệ nhân tạo (AI) và học máy (Machine Learning) cũng đang được áp dụng để phát hiện các hành vi bất thường và các mối đe dọa zero-day trong thời gian thực. Ngoài ra, bảo mật dựa trên phần cứng (Hardware-based security) với các công nghệ như Intel SGX hay AMD SEV đang trở nên phổ biến, cho phép tạo ra các vùng thực thi an toàn (enclaves) để bảo vệ dữ liệu và mã lệnh ngay cả khi hệ điều hành đã bị xâm phạm.

16/08/2025

Trích đoạn nội dung tài liệu

ĐẠI HỌC QUỐC GIÁ TP. HỖ CHÍ MINH. TRƯỜNG BAI HOC KHOA HOC TU NHIEN KHOA CONG NGHE THONG TIN HE DIEU HAN (LƯU HÀNH NỘI BỘ). Bién soan’: TRAN HANH NHI Hiệu đính : GS.

HOÀNG KIỂM 2008 L ot 42 BHéu Giáo trình * Hệ điều hành nâng cao” được biên soan theo chương trình đào tạo chuyên ngành tín học ở các hệ cử nhân và tủ nhân 2 của Bộ giáo dục và đào tạo. Tuy có rất nhiều cố gắng trong công tác biên soạn nhưng - chắc chẩn rằng giáo. trình này vẫn. Chúng tôi xịn.

trân trọng tiếp tu tất cả những ý kiến đóng gúp của bạn' đọc,c ting như của các động nghiệp tr ong lĩnh vực này để hoàn "hiện giáo trình, phục vu tot hon cho việc day va hee Tin hoc dang ngày càng phát triển ở nước lal. Khoa Công Nghệ Thông.Tin Đại Học Khoa Học Tự Nhiên —_ Đại Học Quốc Gia Thành Phố Hồ Chí Minh Chướng Ì TONG QUAN” 1. CÁC CHỨC NĂNG CHÍNH CUA HE DIEU HANH Hệ điều hành là một chương trình đóng vai trò trung gian trong việc giao tiếp eiữa người sử dụng và phần cứng của máy tính. Mục tiêu của hệ điểu hành là cung cấp một¡r nội trường cho phép người sử dụng phát triển và thực hiệ: các ứng dụng của họ một cách dễ đàng và hiệu qủa.

_ Theo nguyên tắc, một hệ điều hành cần thỏa mar. hai chức năng chính yếu sau đây;. Quận lý, chia sé tai nguyén + Tài nguyên hệ thống, đặc biệt các tài nguyên phần cứng như CPU, bộ nhớ, thiết bị ngoại vi.thường rất giới hạn, những trong những hệ thống đa nhiệm, nhiều người sử dụng có hể đồng thời yêu cầu các tài nguyên. Nhằm thỏa mãn nhiều vêu _ cầu chỉ với một số tài nguyên hữu hạn, và nâng cao hiệu sả sử dụng tài nguyên,hệ điều hành cần có các cơ chế và chiến lược thích hợp để quần lý việc phân phối tài nguyên.

Ngoài nguyên nhân kinh tế đồi hỏi nhiều người sử dụng phải dùng chung tài nguyên , có nhiều trường hợp ngườ: sở dụng cần chia sẻ thông tin (tài nguyên phần -mềm) lẫn nhá, khi đó hệ điều hành cần bảo đảm việc truy xuất đến các sài ._ nguyên này là hợp lệ, không xảy ra các sai trái gây mất đồng _ nhất dữ liệu. Gia lap một máy tính mở rộng Việc ép buộc người sử dụng phải giao. tiếp, điều khiển trực tiếp các thiết bị.phần cứng cửa máy tính sẽ gây nhiều khó -® Tạm đừng, tái kích hoạt một tiến trình khăn cho người sử dụng, và do đó thu hẹp phạm vị sử dụng máy tính. Chức năng chính thứ hai của hệ điểu hành là che ® Cung cấp các cơ chế trao đổi thông tin giữa các tiến dấu các chỉ tiết phần cứng của.

máy tính và giới thiệu với trình người ding một máy tinh mở rộng có đầy đủ các chức năng » Cung cấp các cơ chế đồng bộ-hóa các của rnáy tính thực, nhưng đơn giản hơn và dễ sử dụng hơn. tiến trình H. Quan i bộ nhớ chính IL. CÁC THÀNH PHAN CỦA HỆ ĐIỀU HÀNH ở : Bộ nhớ chính là thiết bị lưu trữ duy nhất n mà CPU có¢ thể Để hoàn thành các chức năng của mình, phan lớn các hệ truy xuất trực tiếp.

Một chương trình cần được nạp vào bộ nhớ điều hành cần bao gồm các thành phần chính yếu, sau đây: chính và chuyển đổi các địa chỉ thành địa chỉ tuyệt đối để HL 2. Quân lý tiến trình. CPU truý xuất trong quá trình xử lý, Để tăng hiệu suất sử dụng CPU, các hệ thống đa nhiệ ._ Có thể định nghĩa. tiển trình là một chưưng uinh dang thi m cố Bang giữ nhiều tiến - ` trình trong bộ nhớ chính tại một thời hành.

Hệ điều hành phải tạo lập. và duy trì hoạt động của các điểm, Bộ phận quản lý bộ nhớ cần đảm nhiệm các sản tiến trình, Để hoàn tất tác vụ, một tiến trình thường đòi hỏi VIỆC Sau : ° một số tài nguyên nào đó như CPU, hộ nhớ, thiết hị Pn ù g nhap/xuat. Các tài nguyên này sẽ được cấp phát cho tiến trình vào thời điểm tiến trình được tạo lập hay trung thời pian ® Chi nhan tinh trang bộ nhớ chính - ˆ : phần nào đã được tiến trình hoạt động. Khi tiến trình kết thúc hệ điều hành vần cấp phát, phần nào cồn có thể sử dung.

thu hồi lại các tài nguyên đã cấp phát cho tiến trình để tái sử dựng. Hơn nữa, mỗi tiến trình là một đơn vị tiêu thự thời ggian _® Quyết định tiến trình nào được nạp vào bộ nhớ chính - khi có một vùng nhớ trống st dung-CPU, do vậy trong môi trường đa nhiệm, để đáp ứng nhu câu xử lý đồng hành, hệ điều hành còn phải đảm nhiệm _ TL3. Quản lý nhập/xuất _ việc phân phối CPU cho các tiến trình một cách hợp. Ngoài Một trong những.

mục tiêu của hệ _ra hệ điểu hành cũng cần cung cấp các cơ chế giúp các tiến các chỉ tiết phần cứng cụ thể điều hành là trình có thể trao đổi thông tin, và đồng bệ hóa hoạt động c của đốt với: người dùng. Việc\ che điều ea - khiển các thiết bị nhập/ xuất là = chúng. m tột nhiệm vụ chính yếu của hệ điều hành. Hệ điểu hành phải BỞI các lệnh điểu khiển đến.

Tóm lại bộ phận quan i tiến trình phụ trách cácc công các thiết hi, tiếp nhận các ngắt và Xử lý lỗi, Hơn nữa hệ. điều việc sau đầy: hành ' cũng,_phải cùng cấn mệt giao dién đơn jgiản. dàng ° Tao lập, hủy. bỏ một tiế ñtưành _ giữa các thiết bị nhập/xuất và phần còn lại của hệ thống.

Giao cho ` phéẤyp đặcBr tảtf sự kiể ‘2 m sOắt, vàA một phương điện này cần độc lập thiết bị. cách để dp dung _ các chiến lược bảo vệ thích hợp. Máy tính có thể lưu trữ thông tin trên nhiều loại thiết bị lưu trữ vật lý khác nhau, mỗi thiết bị lưu trữ này có những tính l .Một hệ thống phân bố bao gồm nhiều bộ xử lý khéno chất và tổ chức vật lý đặc trưng, Nhằm cho phép sử dụng tiện cũng chia sẻ bộ nhớ chung. Mỗi bộ xử lý có một bộ nhớ đụ.

lợi hệ thống thông tin, hệ điểu hành đưa ra một khái niệm- phươiig độc lập, các tiến trình trong hệ thống có thể được ` trừu tượng đồng nhất cho tất cả các thiết bị lưu trữ vật lý, bằng nổi với nhau thông qua mang truyền thông. aide hash Hệ 'cách định nghĩa một đơn vị lưu trữ là một /ập ơi. Hệ điều thường xem việc truy xuất đến tài nguyên mạng nhự mài dang truy xuất tập tin, với các hành thiết lập mối liên hệ tương ứng giữa tập tin và thiết bị chỉ tiết kỹ thuật về mane i bas chứa đựng trong các trình điều khiể lưu trữ vật lý chứa nó. Để có thể dễ dàng truy xuất , hệ điều n giao tiếp mạng co _ hành còn tổ chức các tập tin thành các thư mục.

Ngoài ra, hệ {L7, He thông địch lệnh điểu hành còn trách nhiệm kiểm soát việc truy cập. đồng thời ' Đây là một trong những bộ phận quan đến cùng một tập tin. trọng nhất của hệ điều hành, đóng Vai trò giao điện giữa hệ điểu h ảnh vàÀ new Như vậy, hệ điểu hành chịu trách nhiệm về các thao tác người ` ` xự. sử dụng, Các lệnh được chuyển gười đến hê điều hà nh dưới dang liên quan đến tập tín sau đây :- chỉ thị điều khiển, Chương trình shell-bộ thông dich lệnh-cn? © Tạo lập, húy bỏ một tập tin.

só nhiệm vụ đơn giản là nhận lệnh tiếp theo va Hone H ° lệnh đó để hệ điều hành có xử lý tưởn © Tạo lập, hủy bổ một thự mục g ứng. Cung cấp các thao táo xử lý tập tin và thư mục: 1H, CẤU TRÚC HỆ ĐIỀU HÀNH © Tao lap quan hệ tương ứng giữa tập tin và bộ nhớ phụ. Một hệ thống thor lớn và ẳ phức phải được thiết kế kỹ lưỡng để có tạthểap nhu hệ điều điểu hihành cds: chứa nó. TS sửa đổi.

Hướng tiếp cậ n hiện nay hoạt độn đứng và d¿g ` là phân chia toàn bộ tác v 1. Hệ thống bảo vệ - của| hệ điểu hành th anh cdc thanh phan nhỏ, mỗi thành phan Khi hệ thống cho phép nhiều người sử dụng đồng thời, đảm nhiệm một công việc chuyên biệt và bao gồm các chú: _ các tiến trình đồng hành cần phải được bảo vệ lẫn nhaế để năng được định nghĩa rõ ràng. Cấu trức của hệ điều hành Ì› tránh sự xâm phạm vô tình hay cố ý có thể gây sai lạc cho cách thức phân chia và kết nối các thà nh phần này với nhau, 'toàn hệ thống. Hệ điểu hành cân xây dựng các cơ chế bảo vệ 4 _ Ví dụ : Dos, Unix (version nguyên thủy) 1IL.

CÁc hệ cấu trúc đơn giãn (Monolithique)'. gọi lấn - Chương trình ứng dụng - p cá c thủ tục, CÓ thể Hệ điđiểu hành là một t ập hợ. trúc ue cling ¢ ó thể có mộ t cấu. mo no li th iq Một số hệ 2 cấp.

Chương trình hệ thống thường trú ch ia các tế : tục trong hệ thống thành en i ph an độ: Drivers MS-DOS dụng) trìn h, chí t nh (c hư ơn g trình e của người sử |` ương ời Ỷ_ mộ t thủ tục 'củ a hệ điểu hành, được gọi 1à °` mạ m “Drivers ROM-BIOS tem call). - „ gọi hệ thống: (sys xử lý những lời tực dich vự (service). Hinh 1 2 Cấu trúc MS- DOS | e Tập hợp. gọi hệ thống.

thủ tục tiệ n ích (uti lity) hỗ trợ các mo Khuyết điểm: e Tập hợp các g. gọi hệ thốn địch vụ xử Wy những lời Bế Không có sự che dấu dữ liệu, mỗi thủ tục có thể gọi "Thủ tục đến tất-cả các thủ tục khác. Các mức độ phân chia thử" chính : tục nếu có cũng không rõ rệt, chương trình ứng dụng có thể truy xuất đến các thủ tục cấp thấp, tác động “Thủ tục ` _ đến cả phẩn cứng, do vậy hệ điều hành khó kiểm dịch vụ. soát xà bảo vệ hệ thống.

: Thủ tục `” a Hé théng thủ tục mang tính chất tĩnh, chỉ được kích it khi cân thiết, do vậy hệ điểu hành thiếu chủ động trong việc quần lý môi trường. Cấu trúc phêu lớp (Layered) Có thể đơn thể hóa hệ thống theo nhiều cách, một, trong ˆ các cách tiếp cận đó là cấu trúc hệ điều hành theo kiểu phân lớp. Hệ thống được cắt:thành một số lớp. mỗi lớp được xây ._ đựng dựa trên các lớp bên trong.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ