Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Bộ xử lý thực thi các chương trình ở User Mode hoặc Kernel Mode. Khi bạn sử dụng PC, bộ xử lý thường xuyên chuyển đổi giữa hai loại chế độ này, tùy thuộc vào công việc của nó. Nhưng User Mode và Kernel Mode là gì? Sự khác biệt giữa hai chế độ này ra sao? Tại sao CPU cần chuyển đổi giữa các chế độ này.

Khi bạn khởi động một chương trình trên Windows, chương trình đó sẽ khởi chạy ở User Mode. Bất cứ khi nào một chương trình ở User Mode muốn chạy, Windows sẽ tạo ra một tiến trình cho nó. Tiến trình chỉ là một chương trình mà một bộ xử lý đang thực thi hoặc một chương trình mà Windows đã lên lịch để thực thi. Và bất cứ khi nào Windows tạo một tiến trình, nó cũng tạo ra một không gian địa chỉ ảo cho tiến trình đó.
Không gian địa chỉ ảo là tập hợp các địa chỉ logic (phi vật lý) mà Windows gán cho một tiến trình. Các tiến trình có thể sử dụng những địa chỉ này để lưu trữ dữ liệu trên bộ nhớ vật lý.
Ngoài ra, không gian địa chỉ ảo bị cô lập. Vì vậy, không gian địa chỉ ảo của một tiến trình không can thiệp vào không gian địa chỉ của tiến trình khác. Và bởi vì các chương trình ở User Mode có không gian địa chỉ riêng biệt, nếu một chương trình gặp sự cố, chương trình đó sẽ chỉ bị hỏng một mình và không làm ảnh hưởng các chương trình khác hoặc toàn bộ hệ điều hành với nó.
Một cách khác để mô tả các ứng dụng ở User Mode là sử dụng thuật ngữ “ít đặc quyền”. Windows hạn chế các ứng dụng ở User Mode truy cập trực tiếp vào các tài nguyên hệ thống quan trọng, do đó làm cho chúng có ít đặc quyền hơn. Ví dụ, nếu một ứng dụng muốn truy cập vào phần cứng, nó phải thông qua OS kernel bằng cách sử dụng các system call (cách lập trình trong đó một chương trình máy tính yêu cầu một dịch vụ từ nhân của hệ điều hành mà nó được thực thi).
Nói một cách đơn giản, các chương trình ứng dụng như video game chạy ở User Mode. Chúng có ít đặc quyền, vì vậy không có quyền truy cập không hạn chế vào tài nguyên hệ thống. Mỗi ứng dụng User Mode có không gian địa chỉ riêng. Một ứng dụng không thể thay đổi không gian địa chỉ của ứng dụng khác. Do đó, nếu một ứng dụng gặp sự cố, nó không ảnh hưởng đến các chương trình khác đang chạy trên máy tính.

Trước khi thảo luận về Kernel Mode, trước tiên chúng ta phải biết "kernel" là gì và nó hoạt động như thế nào với Windows.
Kernel là bộ não của một hệ điều hành. Nó là thành phần phần mềm cốt lõi mà tất cả các thành phần khác bên trong hệ điều hành đều dựa vào. Kernel quản lý phần cứng máy tính, lập lịch trình chạy trên máy tính, cũng như xử lý các tương tác giữa phần cứng và phần mềm ứng dụng.
Tóm lại, kernel là đoạn code đặc quyền nhất chạy trên hệ thống, bởi vì nó là code tương tác trực tiếp với phần cứng. Mọi chương trình khác muốn sử dụng tài nguyên phần cứng phải yêu cầu quyền truy cập thông qua kernel.
Khi một chương trình ứng dụng đang chạy trong User Mode và muốn truy cập vào phần cứng như webcam, chương trình đó phải yêu cầu kernel bằng cách sử dụng system call. Để phục vụ các yêu cầu này, CPU, tại thời điểm thực thi chương trình, sẽ chuyển từ User Mode sang Kernel Mode.
Sau khi quá trình thực thi hoàn tất, CPU sẽ chuyển trở lại User Mode và bắt đầu thực hiện tiến trình đã lên lịch tiếp theo. Đây được gọi là “Context Switching” (Chuyển đổi ngữ cảnh).
Sự khác biệt chính giữa User Mode và Kernel Mode là mức độ đặc quyền mà mỗi chế độ cung cấp. Trong User Mode, các ứng dụng có ít đặc quyền hơn. Chúng không có quyền truy cập trực tiếp vào tài nguyên phần cứng và cũng không thể ghi vào vùng địa chỉ của những ứng dụng khác.
Code chạy trong Kernel Mode có các đặc quyền nâng cao. Nó không chỉ có quyền truy cập trực tiếp vào phần cứng máy tính mà tất cả các chương trình đang chạy ở Kernel Mode, bao gồm cả hệ điều hành, cũng chia sẻ một không gian địa chỉ. Vì vậy, nếu một chương trình ở Kernel Mode gặp sự cố, nó có thể khiến toàn bộ hệ điều hành bị hỏng. Để đảm bảo không xảy ra sự cố như vậy, Windows chỉ cho phép một số tiến trình chạy ở Kernel Mode.
Windows sử dụng mô hình phân lớp để xác định mức độ đặc quyền của các tiến trình. Những ứng dụng nằm ở lớp ngoài cùng là những ứng dụng có đặc quyền cho thuê. Cốt lõi của các lớp này là kernel. Do đó, kernel có quyền truy cập không giới hạn vào tài nguyên hệ điều hành.
Phương pháp phân lớp cũng bảo vệ chức năng quan trọng của hệ điều hành. Khi các chương trình ở lớp trên gặp sự cố ngẫu nhiên, điều đó không ảnh hưởng đến hệ điều hành. Mặt khác, khi kernel gặp sự cố, toàn bộ hệ điều hành sẽ bị ảnh hưởng.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
TOP phần mềm AI bảo mật Internet tốt nhất hiện nay
Biến các ý tưởng thành giải thích trực quan, tương tác trong ChatGPT
TOP tiện ích mở rộng AI cho VS Code tốt nhất
Cách tạo website Portfolio miễn phí bằng ChatGPT
6 lựa chọn thay thế Visual Studio Code tốt nhất có tích hợp AI
Tạo form hỏi đáp tương tác trong vài phút và prompt chỉnh sửa
Hướng dẫn sử dụng Google Slides trong Claude
Hướng dẫn sử dụng Wolfram trong ChatGPT giải toán nâng cao
15 prompt AI thú vị cho ngày lễ Halloween
Hoàn thiện một thiết kế thực tế với ChatGPT + Canva
Cách kết nối ElevenLabs agent với hệ thống lên lịch Calendly
Cách tắt app chạy ngầm Windows 11, giảm ngốn RAM trên Win 11
Câu nói hay nhất về tháng 11, chào tháng 11
TOP công cụ AI tạo tài liệu tốt nhất
Cách xây dựng plugin trong ChatGPT
Hướng dẫn tự thiết kế website Portfolio bằng Claude
5 thiết kế ChatGPT + Canva đáp ứng hầu hết các nhu cầu trong cuộc sống
Những công cụ AI tốt nhất giúp giải toán dễ dàng
Hướng dẫn kết nối Booking.com với ChatGPT lên kế hoạch du lịch
15 prompt Gemini tạo ảnh sinh nhật đẹp nhất
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Claude Code thực sự có giá bao nhiêu?
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10
Hướng dẫn tạo flashcard trên Canva AI