Professional Documents
Culture Documents
B. **Quyết định tiến trình nào sẽ được thực thi bởi CPU tiếp theo**
Bộ điều phối (Dispatcher) của hệ điều hành làm việc ở chế độ nào?
B. **Chế độ hệ thống**
C. Chế độ an toàn
D. Chế độ xử lý batch
Tiến trình ở trạng thái nào sẽ được bộ lập lịch CPU xem xét đến?
A. Terminated
B. **Ready**
C. Blocked
D. Running
B. Input và Output
C. Fetch và Execute
D. Start và Stop
C. **Để tối ưu hóa sử dụng CPU và giảm thời gian chờ của tiến trình**
Một trong những tiêu chí để đánh giá một bộ lập lịch CPU là
Với những trường hợp nào thì bộ định thời CPU sẽ giữ quyền ưu tiên (preemptive)?
A. Khi tiến trình đang chạy hoàn thành công việc của mình
B. **Khi một tiến trình với ưu tiên cao hơn cần CPU**
Với bộ lập lịch không có khả năng chiếm quyền ưu tiên thì khi nào tiến trình đang chạy trả lại
CPU?
B. **Khi nó hoàn thành CPU burst hoặc chuyển sang trạng thái chờ I/O**
A. Thời gian từ khi tiến trình bắt đầu cho đến khi nó kết thúc
B. **Thời gian từ khi tiến trình được gửi đến hệ thống cho đến khi bắt đầu được thực thi**
C. Thời gian CPU thực thi tiến trình
A. Quản lý bộ nhớ
Hạn chế của giải thuật Đến trước phục vụ trước (FCFS) là gì?
A. **Có thể gây ra hiện tượng "convoy effect" khi tiến trình dài ngăn chặn các tiến trình ngắn**
Hạn chế của giải thuật Tác vụ ngắn nhất trước (SJF) là gì?
A. Không thể dự đoán được thời gian chạy của tiến trình
B. **Có thể gây ra hiện tượng "starvation" cho các tiến trình có thời gian chạy dài**
B. **Thời gian chờ có thể tăng nếu quantum time được chọn không phù hợp**
B. **Có thể gây ra hiện tượng "starvation" cho các tiến trình có độ ưu tiên thấp**
Cho hệ thống có 3 tiến trình vào theo thứ tự là P1, P2 và P3; có CPU Burst lần lượt là 15 ms,
06 ms và 20 ms. Áp dụng chiến lược điều phối FCFS (Đến trước phục vụ trước). Thời gian chờ
trung bình khi thực hiện cả 3 tiến trình là bao nhiêu?
Cho hệ thống có 3 tiến trình vào theo thứ tự là P1, P2 và P3; có CPU Burst lần lượt là 24 ms,
06 ms và 10 ms. Áp dụng chiến lược điều phối FCFS (Đến trước phục vụ trước). Thời gian
quay vòng trung bình khi thực hiện cả 3 tiến trình là bao nhiêu?
B. **Khả năng ngắt và lấy CPU từ tiến trình đang chạy nếu có tiến trình ưu tiên cao hơn cần
CPU**
C. Khả năng giữ tiến trình đang chạy cho đến khi nó hoàn thành
D. Khả năng không cho tiến trình nào khác sử dụng tài nguyên
Trong một hệ điều hành sử dụng giải thuật định thời Round Robin với quantum time/ time slide
là k (đơn vị thời gian); có n tiến trình đang sẵn sàng. Thời gian chờ giữa 2 lần gọi vào CPU liên
tiếp nhau của một tiến trình bất kỳ sẽ là bao nhiêu?
A. **(n-1) * k**
B. n * k
C. k / n
D. k – n
Chương 4
Khái niệm “Tiểu trình” (hay còn gọi là Luồng, Thread) là gì?
C. **Một đơn vị cơ bản của việc thực thi chương trình, có thể chạy độc lập và chia sẻ tài
nguyên với các tiểu trình khác trong cùng một tiến trình**
D. C++11 Threads
Ngoài các tài nguyên chia sẻ, tiểu trình có dữ liệu nào riêng?
B. **Có, bao gồm bộ đếm chương trình, thanh ghi và ngăn xếp (stack)**
B. **Cải thiện hiệu suất bằng cách tận dụng tốt hơn các tài nguyên CPU**
Một khó khăn của chương trình đa luồng so với đơn luồng thể hiện ở đâu?
B. **Cần phải quản lý đồng bộ hóa và tránh tình trạng đua tranh tài nguyên**
Thách thức cho lập trình viên trong viết các chương trình đa luồng bao gồm những gì?
C. Viết mã nguồn
Mô hình nào ánh xạ giữa tiểu trình mức người dùng và tiểu trình mức nhân là không tồn tại?
A. One-to-one
B. Many-to-one
C. Many-to-many
D. **One-to-many**
Khả năng đặc trưng của một hệ thống xử lý song song (parallelism) là gì?
A. **Thực hiện nhiều tác vụ cùng một lúc trên nhiều bộ xử lý**
B. Thực hiện một tác vụ tại một thời điểm
Khả năng đặc trưng của một hệ thống xử lý đồng thời (concurrency) là gì?
B. **Thực hiện nhiều tác vụ trong cùng một khoảng thời gian nhưng không nhất thiết cùng lúc**
A. **Hệ thống có khả năng xử lý nhiều phần dữ liệu cùng một lúc**
Một chương trình có đoạn mã chứa a% song song và được di chuyển từ vi xử lý đơn nhân
sang vi xử lý i nhân. Hệ số tăng tốc mà chương trình đạt được là bao nhiêu?
A. i / a
B. **1 / (1 - a + a/i)**
C. a * i
D. i - a
Mô hình ánh xạ tiểu trình mức người dùng vào tiểu trình mức nhân nào thông dụng nhất và
đang dùng trong Windows lẫn Linux?
A. Many-to-one
B. **One-to-one**
C. Many-to-many
D. One-to-many
B. **Có thể tốn nhiều tài nguyên hệ thống nếu có quá nhiều tiểu trình**
Bài toán nào sau đây không thể áp dụng giải pháp lập trình đa luồng?
A. **Bài toán yêu cầu tính toán tuần tự không thể phân chia**
Bài toán sắp xếp trộn (Merge Sort) trên một mảng số nguyên có thể cải tiến hiệu suất bằng
cách nào hay không?
B. **Sử dụng đa luồng để sắp xếp đồng thời các phần của mảng**
Ứng dụng nhân ma trận được hiện thực bằng một tiến trình đa luồng có tính chất nào sau đây?
B. **Có thể phân chia công việc nhân các hàng và cột vào các luồng khác nhau để tăng tốc độ
tính toán**
C. Tốn nhiều tài nguyên hơn so với tiến trình đơn luồng
D. Không thể chia sẻ tài nguyên
Khi một tiểu trình mục tiêu chấm dứt trì hoãn (deferred cancellation) thì nó phải kết thúc khi
nào?
B. **Khi nó đạt đến một điểm kiểm tra chấm dứt cụ thể trong mã nguồn**
Chương 3
B. **Một đơn vị cơ bản của việc thực thi chương trình, bao gồm mã chương trình, bộ nhớ và
trạng thái**
Bố cục trong bộ nhớ của một tiến trình bao gồm những gì?
A. Chỉ mã nguồn
B. Chỉ dữ liệu
B. **Inter-Process Communication**
A. create()
B. **fork()**
C. exec()
D. spawn()
Liên kết mà 2 tiến trình P và Q sử dụng để gửi nhận các thông điệp được gọi là gì?
A. **Channel**
B. Pipe
C. Socket
D. Port
C. **Một cơ chế IPC cho phép truyền dữ liệu từ tiến trình này sang tiến trình khác**
A. Multithreading
C. Polling
D. Interrupts
Khi nào một chương trình trở thành một tiến trình?
A. Khi nó được viết ra
C. **Khi nó được hệ điều hành nạp vào bộ nhớ và bắt đầu thực thi**
Trong giao diện dòng lệnh của Ubuntu, làm thế nào để khởi chạy một chương trình?
D. Mở Control Panel
Một bộ IPC phải cung cấp tối thiểu những thao tác nào trên các thông điệp?
A. **Gửi và nhận**
D. Mở và đóng
Khi nào Hệ điều hành thực hiện Chuyển ngữ cảnh (Context switch)?
A. Khi một tiến trình hoàn thành công việc của mình
B. **Khi một tiến trình bị chặn hoặc một tiến trình khác có ưu tiên cao hơn cần CPU**
Phát biểu nào đúng về giao tiếp trực tiếp (direct communication)?
B. **Các tiến trình gửi và nhận thông điệp bằng cách chỉ định địa chỉ của tiến trình đích**
C. Các tiến trình giao tiếp qua một trung gian
D. Các tiến trình giao tiếp không cần đến hệ điều hành
Để cho 2 tiến trình P và Q giao tiếp gián tiếp (indirect communication) với nhau thì cần gì?
B. **Một khu vực lưu trữ chung như hàng đợi thông điệp**
Kỹ thuật gửi không-chặn giữa các tiến trình (non-blocking send) có tính chất nào sau đây?
A. Tiến trình gửi phải chờ đợi cho đến khi thông điệp được nhận
B. **Tiến trình gửi có thể tiếp tục thực hiện mà không cần chờ đợi**
Khi sử dụng hàng chờ kích thước Zero (Zero capacity queue), phát biểu nào đúng?
B. **Tiến trình gửi phải chờ đợi cho đến khi tiến trình nhận sẵn sàng nhận thông điệp**
C. Tiến trình nhận có thể lấy thông điệp bất cứ lúc nào
D. Hàng đợi có thể chứa nhiều thông điệp cùng một lúc
Hàng chờ kích thước Zero (Zero capacity queue) được sử dụng ở đâu?
A. CPU
B. Bộ nhớ chính
D. Ổ cứng
Khi một tiến trình cha gọi fork() sinh ra tiến trình con, tiến trình con thừa kế cái gì từ cha nó?
A. Chỉ mã nguồn
C. Chỉ bộ nhớ
Một tiến trình mang trạng thái “Ready” có thể chuyển sang trạng thái nào sau đây?
A. **Running**
B. Blocked
C. Terminated
D. New
Bước chuyển trạng thái nào sau đây là không tồn tại?
A. Từ Ready sang Running
Hệ điều hành cần chuyển CPU đang xử lý tiến trình B sang xử lý cho tiến trình A. Hệ điều hành
phải làm công việc nào trước tiên?
A. **Lưu trạng thái của tiến trình B vào PCB của nó**
PCB (Process Control Block) của một tiến trình có đặc điểm gì sau đây?
B. **Chứa thông tin về trạng thái, bộ đếm chương trình, bộ đăng ký CPU, và thông tin quản lý
bộ nhớ**
Các hàng đợi dành cho các tiến trình được xây dựng bằng cấu trúc dữ liệu nào?
A. Mảng
B. Cây
D. Bảng băm
Hai (2) hình thức giao tiếp phổ biến giữa server và client là gì?
A. Email và FTP
B. **Sockets và RPC (Remote Procedure Call)**
C. HTTP và HTTPS
D. TCP và UDP
Trong UNIX, đường ống loại nào được thiết kế cho giao tiếp giữa các tiến trình có quan hệ cha
– con?
A. Named pipe
B. **Anonymous pipe**
C. Half-duplex pipe
D. Full-duplex pipe
Có bao nhiêu tiến trình được tạo ra khi thực thi đoạn mã dưới đây, bao gồm cả tiến trình ban
đầu?
```c
int main() {
fork();
fork();
fork();
return 0;
```
A. 2
B. 4
C. **8**
D. 16
B. Mục tiêu là tăng tốc độ thực thi tiến trình, hạn chế là giảm bảo mật
C. Mục tiêu là giảm sử dụng bộ nhớ, hạn chế là tăng thời gian chờ
D. Mục tiêu là tăng cường đa nhiệm, hạn chế là giảm hiệu suất
Trong mã nguồn của tiến trình con, phát biểu nào sau đây đúng?
A. Tiến trình con không thể thực thi cùng một mã nguồn như tiến trình cha
B. **Tiến trình con bắt đầu thực thi từ điểm mà lời gọi fork() được thực hiện**
C. Tiến trình con phải được viết bằng một ngôn ngữ lập trình khác
D. Tiến trình con không có quyền truy cập vào các biến của tiến trình cha
Phát biểu nào đúng đối với cơ chế “đường ống” (Pipe) được sử dụng trong IPC?
A. Đường ống cho phép giao tiếp hai chiều giữa các tiến trình
B. **Đường ống là một cơ chế IPC cho phép truyền dữ liệu theo một hướng từ tiến trình này
sang tiến trình khác**
C. Đường ống chỉ có thể sử dụng trong giao tiếp giữa các tiến trình không có quan hệ cha-con
Chương 2
B. **Một cơ chế để các chương trình ứng dụng yêu cầu dịch vụ từ hệ điều hành**
A. Phần cứng
C. Hệ điều hành
C. Windows API
D. POSIX API
A. **Các chức năng cung cấp cho người dùng và chương trình ứng dụng**
A. **Một công cụ dùng để kết hợp các tệp tin mã đối tượng thành một chương trình thực thi**
Chức năng nào không phải là một chức năng cơ bản của một Hệ điều hành?
C. Quản lý bộ nhớ
Chức năng nào sau đây là một trong những chức năng chính của một hệ điều hành?
B. Tạo mã nguồn mở
Nhóm các lời gọi thuộc bộ quản lý tiến trình là nhóm nào sau đây?
Các lập trình viên thông qua phương tiện gì để tiếp cận các lời gọi hệ thống?
Vui lòng gửi yêu cầu mới để tiếp tục cung cấp các câu hỏi dạng multi choice với đáp án được in
đậm cho phần còn lại của danh sách.
Lợi điểm của phương pháp thiết kế nguyên khối (Monolithic) của một hệ điều hành là gì?
A. **Hiệu suất cao do tính chặt chẽ của các thành phần**
Khuyết điểm của phương pháp thiết kế phân lớp (Layered) của một hệ điều hành là gì?
Chức năng của các System Calls (Lời gọi hệ thống) là gì?
A. Tạo mã nguồn mở
C. **Cung cấp cách thức để chương trình ứng dụng yêu cầu dịch vụ từ hệ điều hành**
Ứng dụng bị lỗi sẽ tạo ra tập tin nào để lưu lại bộ nhớ của tiến trình?
A. Log file
D. Configuration file
C. Đa nhiệm
D. Đa người dùng
Phương pháp thiết kế nào mà cung cấp hầu hết các dịch vụ dưới dạng ứng dụng người dùng
và các tiến trình liên lạc bằng truyền thông điệp?
C. **Microkernel**
D. Mô-đun (Modular)
D. Quản lý mạng
Mục tiêu của việc “Phân chia thời gian sử dụng CPU” cho các tiến trình là gì?
B. **Tối ưu hóa sử dụng CPU và giảm thời gian chờ của các tiến trình**
B. **Tập trung vào giao diện người dùng và trải nghiệm người dùng**
Chương 1
2. Ngắt là gì?
A. Lỗi hệ thống
3. Ảo hoá là gì?
C. Bộ nhớ chính
D. Ổ cứng
6. Hai chế độ (mode) hoạt động thông dụng nhất của các Hệ điều hành là chế độ nào?
8. Hệ điều hành có vai trò gì đối với các phần mềm ứng dụng chạy bên trong hệ thống?
9. Với một hệ thống máy tính chạy hệ điều hành đa nhiệm, thì bộ nhớ chính sẽ chứa nội dung
gì?
10. Để bộ xử lý có thể đọc các lệnh của một chương trình và thực thi nó, các lệnh đó cần phải
lưu trữ ở đâu?
A. Trên ổ cứng
B. **Trong RAM**
11. Để cho công việc của lập trình viên thuận lợi và hiệu quả, Hệ điều hành cần cung cấp cái
gì?
C. Hỗ trợ kỹ thuật
12. Các lệnh / chỉ thị đặc quyền (privilege instruction) có tính chất gì?
B. Chỉ có thể thực hiện bởi người dùng có quyền hạn cao
C. Chỉ có thể thực hiện bởi phần cứng
14. Hệ điều hành quản lý bộ nhớ chính với các công việc bao gồm
A. Phân bổ bộ nhớ
B. Quản lý bộ nhớ ảo
15. “Người sử dụng được định danh bằng ID và mật khẩu, họ có hoặc không quyền chạy một
số chương trình”, là mô tả nhiệm của bộ quản lý nào bên trong hệ điều hành?
16. Môi trường điện toán máy khách – máy chủ (client – server) có đặc trưng gì?
A. **Đa nhiệm cho phép chạy nhiều chương trình cùng một lúc**
18. Khó khăn chủ yếu mà lập trình viên phải đối mặt khi lập trình một hệ điều hành trong môi
trường thời gian thực là gì?
A. Quản lý bộ nhớ
19. Hệ điều hành thời gian thực (Real time OS) có đặc điểm gì?
B. Hỗ trợ đa nhiệm