Hệ điều hành là thành phần quan trọng trong việc điều hành toàn bộ hệ thống máy tính. Hệ điều hành thực hiện các chức năng chính sau:
- Chức năng thiết yếu: Đảm bảo sử dụng tài nguyên tối ưu và hiệu quả
- Chức năng giám sát: Theo dõi và thu thập thông tin liên quan đến hiệu suất hệ thống
- Chức năng dịch vụ: Cung cấp các dịch vụ hỗ trợ người dùng
Hãy cùng tìm hiểu chi tiết về các chức năng này và cách hệ điều hành quản lý chúng.

Có gì hay?
Quản lý bộ xử lý (Processor Management)
Quản lý bộ xử lý là việc tối ưu hóa việc sử dụng CPU bằng cách phân bổ thời gian xử lý cho từng tác vụ cần hoàn thành. Điều này được gọi là lập lịch công việc (job scheduling). Mục tiêu của việc lập lịch bao gồm:
- Tối đa hóa hiệu suất CPU
- Giảm thiểu thời gian hoàn thành công việc (turnaround time)
- Giảm thời gian chờ đợi tối đa
- Đảm bảo mỗi công việc nhận được phản hồi nhanh nhất có thể
- Tăng tối đa năng suất (throughput) của hệ thống
Các phương pháp lập lịch công việc trong hệ điều hành

Lập lịch ưu tiên (Preemptive Scheduling):
Trong phương pháp này, công việc tiếp theo có thể được lập lịch trước khi công việc hiện tại hoàn tất. Nếu có một công việc có độ ưu tiên cao hơn xuất hiện, bộ xử lý sẽ ngừng công việc hiện tại để thực hiện công việc mới.
Các kỹ thuật lập lịch ưu tiên bao gồm:
- Round Robin: Mỗi chương trình được cấp một khoảng thời gian nhất định (time slice) để thực thi. Nếu không hoàn thành trong thời gian đó, nó sẽ được đưa vào hàng chờ và chờ lượt tiếp theo.
- Response Ratio Scheduling: Tỷ lệ ưu tiên được tính bằng thời gian đã trôi qua / thời gian đã nhận được lệnh thực thi. Chương trình có tỷ lệ phản hồi ngắn hơn sẽ được ưu tiên thực thi trước.
Lập lịch không ưu tiên (Non-Preemptive Scheduling)
Trong phương pháp này, một công việc chỉ được lập lịch sau khi công việc hiện tại hoàn tất.
Các kỹ thuật bao gồm:
- First Come First Serve: Công việc nào đến trước sẽ được thực hiện trước.
- Shortest Job Next: Công việc có thời gian thực thi ngắn nhất sẽ được ưu tiên.
- Deadline Scheduling: Công việc có thời hạn sớm nhất sẽ được lập lịch để thực hiện trước.
Quản lý bộ nhớ (Memory Management)

Quản lý bộ nhớ là quá trình điều chỉnh không gian lưu trữ để tối ưu hóa hiệu suất hệ thống. Bộ nhớ được chia thành bộ nhớ chính (nhanh nhưng đắt tiền) và bộ nhớ phụ (chậm hơn nhưng rẻ hơn). Hệ điều hành phải cân bằng sử dụng giữa hai loại này để đảm bảo hiệu suất hệ thống và chi phí hiệu quả.
- Phân bổ bộ nhớ liên tục (Contiguous Storage Allocation): Phương pháp đơn giản nhất, trong đó các vị trí bộ nhớ liên tục được phân bổ cho mỗi chương trình.
- Phân bổ bộ nhớ không liên tục (Non-Contiguous Storage Allocation): Chương trình và dữ liệu không cần phải được lưu trữ liên tục. Hệ điều hành sử dụng bảng để theo dõi vị trí của từng phần của chương trình.
Lưu trữ ảo (Virtual Storage)
Khi bộ nhớ chính không đủ, hệ điều hành sử dụng lưu trữ ảo, cho phép lưu trữ chương trình trên bộ nhớ phụ nhưng vẫn hiển thị như đang ở bộ nhớ chính. Điều này gây ra một độ trễ nhỏ khi truy cập.
- Phân trang (Paging): Chương trình được chia thành các trang và lưu trữ trong bộ nhớ phụ. Bảng trang được dùng để ánh xạ các địa chỉ trang.
- Phân đoạn (Segmentation): Chương trình được chia thành các đoạn logic và lưu trữ trong bộ nhớ phụ. Bảng đoạn giúp chuyển các đoạn từ bộ nhớ phụ vào bộ nhớ chính.
Quản lý tập tin (File Management)

Dữ liệu được lưu trữ dưới dạng tập tin trên máy tính. Quản lý tập tin là một chức năng quan trọng của hệ điều hành để giúp người dùng lưu trữ và truy xuất dữ liệu an toàn và chính xác. Quản lý tập tin bao gồm:
- Tạo tập tin mới
- Cập nhật, chia sẻ tập tin
- Bảo mật dữ liệu qua mật khẩu và mã hóa
- Khôi phục dữ liệu trong trường hợp hệ thống bị lỗi
Quản lý thiết bị (Device Management)
Quản lý thiết bị là quá trình thực hiện, vận hành và bảo trì các thiết bị ngoại vi (máy in, bàn phím, chuột) thông qua hệ điều hành. Trình điều khiển thiết bị (device driver) là phần mềm hệ thống giúp hệ điều hành giao tiếp và quản lý các thiết bị này.
Khi có nhiều tiến trình yêu cầu truy cập thiết bị, hệ điều hành sẽ quản lý để chia sẻ thiết bị một cách hiệu quả thông qua giao diện gọi hệ thống (system call interface).


