Today I learned: Các chức năng chính của Operating System

nguyen duy
2 min readFeb 17, 2021

Dịch từ cuốn sách: “Modern Operating System” của tác giả Andrew Tanenbaum và Herbert Bos

Photo by Maxwell Nelson on Unsplash

OS có 2 chức năng chính

1. Thay mặt software để đi tương tác với hardware

Các bộ phận hardware như: disk, RAM, processor… được viết bằng machine-level language, chúng rất khó để cho các lập trình viên app có thể thao tác trực tiếp. Lúc này cần có 1 lớp abstraction để giấu đi sự phức tạp bên trong và cung cấp một giao diện đẹp cho thế giới bên ngoài sử dụng

Ví dụ, động cơ xe máy là một thực thể hết sức phức tạp rối rắm mà chỉ có các kĩ sư cơ khí mới có thể hiểu được. Vì vậy, các nhà sản xuất xe máy đã giấu (abstract away) mớ phức tạp hổ lốn đó đi và thay vào đó là một cái nút bấm: Người dùng chỉ việc bấm cái nút đó là động cơ xe sẽ khởi động, không cần biết cụ thể bên trong động cơ đã có chuyện gì xảy ra. Cái nút đó là 1 abstraction

Vậy thì, trong một hệ thống máy tính, lớp abstraction phủ lên trên sự phức tạp của hardware và cung cấp 1 “giao diện” (interface) đẹp cho software sử dụng chính là OS

Dưới lớp mặt nạ đẹp đẽ là địa ngục

Một ví dụ khác, để tương tác với dữ liệu được lưu trong disk, thay vì phải chọc vào từng khay rãnh của disk thì OS cung cấp cho software các file để thao tác

2. Quản lý các tài nguyên hệ thống

Các tài nguyên hệ thống có thể hiểu là: CPU, RAM, disk, … Chức năng này phát sinh chủ yếu từ việc: một hệ thống máy tính có rất nhiều các software cùng chạy, làm nảy sinh các tình huống như:

  • 2 file Word đều muốn sử dụng máy in cùng lúc: cái nào được in trước, cái nào in sau ?
  • 2 software cùng được load vào trong RAM: cái nào chạy trước, cái nào chạy sau ? Làm sao để đảm bảo cái chạy trước không ngốn hết CPU để cho thằng sau còn chạy ?
  • 2 chương trình cùng chỉnh sửa một file: làm sao để đảm bảo chúng không xung đột nhau ?

Các tình huống như trên sẽ được xử lý bởi OS

--

--