Skip to content

Hệ điều hành: thuê "quản gia" cho máy tính

Mở đầu

Có CPU hoàn hảo và RAM vô hạn, máy tính dùng được ngay không?

Ở chương trước, ta đã thấy cách transistor kết hợp thành CPU mạnh. Nhưng kể cả hardware top, nếu cho chúng work trực tiếp, chỉ để hiện 1 chữ trên màn cũng cần viết vài trăm dòng machine instruction tối nghĩa.

Để giải nightmare này, Hệ điều hành (Operating System, OS) ra đời. Nó là tầng "software" vĩ đại nhất giữa bạn và hardware lạnh lùng.

Bạn sẽ học:

  • Năng lực troubleshoot "program treo", "RAM không đủ"
  • Hiểu sâu "multi-process", "virtual memory", "file permission"
  • Tư duy hệ thống: program tương tác với OS, process khác, hardware
  • Nền cho concurrent programming, system tuning, container
ChươngNội dung
1Quản lý process (Time-sharing CPU)
2Quản lý memory (Virtual memory, paging)
3File system (Tổ chức file, directory)

0. Toàn cảnh: không có OS thì sao?

Tưởng tượng bạn mở 1 "computing factory" (máy tính), có 1 worker top (CPU), 1 kho khổng lồ (RAM), vô số container (HDD).

Không thuê quản lý (OS):

  1. Khủng hoảng độc quyền CPU: CPU 1 lần chỉ làm 1 việc. Người nghe nhạc → người khác phải đợi
  2. Tai nạn giẫm đạp memory: 2 app cùng ghi RAM → crash
  3. Mê cung HDD: HDD chỉ là disc 0/1, phải nhớ "mặt 1, track 56, sector 8" — không ai nhớ nổi
📱 应用程序
🎵💬🎮
🖥️ 操作系统
调度CPU
分配内存
管理文件
💾 硬件
🧠 CPU💾 内存💿 硬盘
应用程序准备发起请求...

OS dùng "3 vũ khí": quản lý process, quản lý memory, file system.


1. Quản lý process: time-sharing CPU

Máy bạn chỉ 1 CPU core, sao cùng lúc chạy WeChat + nhạc + typing?

Nó không cùng lúc làm. OS đang "time management" điên cuồng.

⏱️ CPU 在疯狂切换,你感觉不出来
CPU
💬微信
时间片: 0ms
💬
微信
运行中
🎵
音乐
等待
🌐
浏览器
等待
💡 原理:CPU 每 100ms 切换一次进程,因为太快了你感觉是"同时运行"。实际上每个进程都在断断续续地执行。

1.1 "Process" là gì?

Mỗi program đang chạy = 1 process. Hiểu như 1 project group có code (việc cần làm), data memory (vốn), xếp hàng đợi CPU.

1.2 Time slice rotation

OS cắt thời gian CPU thành đoạn nhỏ (~10ms), luân phiên gán cho từng process. Switch quá nhanh → bạn cảm giác "chạy cùng lúc".


2. Quản lý memory: virtual address space

Nếu mọi software ghi data thẳng vào RAM thật → thảm hoạ giẫm đạp.

🧠 操作系统给每个程序"画饼"
📱 程序以为的内存(虚拟)
💬 微信
1
2
3
4
🎮 游戏
1
2
3
4
操作系统偷偷映射 ↓
💾 真实的内存条(物理)
1系统
2
3
4系统
5
6
7
8系统
💡 原理:每个程序以为自己独占连续的内存(左),实际上操作系统把数据分散存到真实内存各处(右)。程序看到的地址都是"假"的,操作系统负责翻译。

2.1 Virtual Memory

OS nói dối với mỗi process: "Bạn độc chiếm toàn bộ RAM, dùng thoải mái!"

Trong mắt process, RAM luôn liên tụcsạch sẽ.

2.2 Page Table mapping

Thực tế OS lén nhét data vào các khe nhỏ trong physical RAM. Lợi ích:

  1. An toàn: WeChat chỉ thấy space riêng, không sửa được data người khác
  2. Tận dụng fragment: dù physical RAM lộn xộn, virtual space vẫn gọn

3. File system: tổ chức lưu trữ persistent

HDD mới mua chỉ là vùng storage cell trắng. Muốn lưu ảnh, HDD hỏi: "Lưu ở byte thứ mấy?"

📁 你看到的文件 vs 硬盘上的碎片
📂 你看到的(文件夹)
📁照片
🖼️宠物.jpg2.5MB
🖼️旅游.png1.8MB
💾 硬盘实际存储(数据块)
1
2
3宠-1
4
5旅-1
6旅-2
7宠-2
8
9
10
11宠-3
12
💡 原理:文件系统把文件切成碎片存在硬盘各处(如宠物.jpg存在第3、7、11块),然后用"账本"记录位置。你看到的整齐文件夹只是账本上的记录。

3.1 File system làm gì?

  1. Cắt HDD: chia thành block 4KB
  2. Lập sổ kế toán: ghi block nào đầy/trống
  3. Dịch path: D:/photo/pet.jpg → "block 3, 7, 11"

Đây là lý do rename file xong ngay (chỉ đổi tên trong sổ), copy file lâu hơn (read/write data thật).


4. 3 component cùng work: process khởi động

🚀 双击图标后,电脑在忙什么?
1👆
你双击图标
操作系统收到"启动浏览器"的请求
2📋
创建进程
3🧠
分配内存
4📁
加载文件
5▶️
开始运行
🖱️
点击中...

Dù click icon hay print("Hello World"), đều dựa vào loạt operation phức tạp. Ta lướt thoải mái thế giới số được — vì OS gánh thay ở tầng dưới.


Đọc thêm

  • Process & Thread: process = project group, thread = employee trong group
  • Concurrency & Lock: 2 process cạnh tranh resource → tránh deadlock
  • System Call: "service window" OS cho ứng dụng

2026 update

  • WASM-based OS (Bytecode Alliance) nổi — OS-like environment trong browser
  • Unikernel revival: single-purpose OS cho serverless
  • Linux 6.x dominant ~99% server market
  • macOS Sequoia + Apple Intelligence: OS-level AI integration
  • WSL2 stable cho dev Windows + Linux