Font size
WorksheetsHDHGK
Total questions: 102
Worksheet time: 51mins
Trong mô hình đa tiến trình, mô hình nào phổ biến nhất?
a. Mô hình tiến trình đơn
b. Mô hình client-server
c. Mô hình phân cụm
d. Mô hình peer-to-peer
Vấn đề nào thường gặp khi sử dụng lập trình đa luồng?
a. Các luồng không thể chia sẻ dữ liệu với nhau.
b. Đồng bộ hóa dữ liệu giữa các luồng có thể gây tranh chấp tài nguyên.
c. Không thể kiểm soát thời gian thực thi của từng luồng.
d. Các luồng chỉ chạy trên một lõi CPU duy nhất
Hệ điều hành cung cấp cách nào để tiến trình có thể yêu cầu dịch vụ từ nó?
a. Thông qua lời gọi hệ thống.
b. Bằng cách gửi tin nhắn đến hệ điều hành.
c. Thông qua giao diện dòng lệnh.
d. Thông qua các tập tin cấu hình hệ thống.
Một nhược điểm chính của thiết kế phân lớp (Layered) trong hệ điều hành là gì?
a. Giảm hiệu suất do phải qua nhiều tầng xử lý.
b. Khó phát triển và bảo trì.
c. Không hỗ trợ đa nhiệm.
d. Không thể chạy trên hệ thống nhiều bộ xử lý.
Những lợi ích nào mà lập trình đa luồng mang lại?
a. Dễ triển khai trên hệ thống nhiều nhân, giúp chương trình chạy ổn định hơn.
b. Nâng cao khả năng mở rộng, giúp chương trình hoạt động nhanh hơn.
c. Cải thiện tốc độ xử lý, tận dụng tài nguyên tốt hơn, mở rộng linh hoạt.
d. Tăng tốc độ phản hồi, tiết kiệm bộ nhớ, dễ bảo trì chương trình.
Một chương trình đa luồng có thể giúp cải thiện điều gì so với đơn luồng?
a. Giảm kích thước của mã nguồn
. b. Giảm mức tiêu thụ bộ nhớ.
c. Giảm độ trễ của các tác vụ I/O.
d. Giảm số lượng lỗi logic trong chương trình.
Lập trình viên thường gặp thử thách gì khi phát triển ứng dụng đa luồng?
a. Phân bổ bộ nhớ không đều có thể làm giảm hiệu năng.
b. Phải quản lý tài nguyên hợp lý để tránh xung đột.
c. Khó khăn trong việc xử lý đầu vào và đầu ra đồng thời.
d. Không thể tạo quá nhiều tiểu trình do giới hạn hệ điều hành.
Khi một tiến trình kết thúc, trạng thái của nó sẽ là gì?
a. Ready
b. Waiting
c. Running
d. Terminated
Đặc điểm nào đúng về một hệ thống xử lý đa luồng?
a. Mỗi tiến trình chỉ có một luồng chạy tại một thời điểm nhất định.
b. Chỉ hỗ trợ trên hệ điều hành có nhân hỗ trợ đa luồng.
c. Có thể thực hiện nhiều tác vụ đồng thời trên một hoặc nhiều CPU.
d. Tất cả các luồng trong hệ thống chia sẻ chung một không gian bộ nhớ.
Mô hình tiểu trình nào ánh xạ nhiều tiểu trình mức người dùng vào một tiểu trình mức nhân?
a. One-to-One.
b. Hybrid.
c. Many-to-Many.
d. Many-to-One.
Bên cạnh việc dùng chung tài nguyên, một tiểu trình có dữ liệu nào là riêng biệt?
a. Mã chương trình, vùng nhớ heap, ngăn xếp.
b. Thanh ghi CPU, bảng trang, heap.
c. Bộ nhớ dùng chung, stack riêng, biến toàn cục.
d. Con trỏ lệnh, các thanh ghi CPU, ngăn
Mô hình một hệ thống máy tính tổng quát gồm những thành phần nào?
a. Người sử dụng, phần mềm hệ thống và ứng dụng, hệ điều hành, phần cứng.
b. Thiết bị nhập và thiết bị xuất, thiết bị tính toán và thiết bị lưu trữ.
c. Thiết bị phần cứng và các phần mềm, cùng với chương trình ứng dụng.
d. Phần mềm ứng dụng, phần mềm hệ thống và bên dưới là hệ điều hành.
Hệ điều hành sử dụng thuật toán nào để quản lý CPU scheduling?
a. FCFS, SJF, RR, và Priority Scheduling.
b. Binary Search, Merge Sort, và Quick Sort.
c. Best-Fit, First-Fit, và Worst-Fit.
d. FIFO, LRU, và Optimal.
Hệ điều hành nào sử dụng mô hình One-to-One để quản lý đa luồng?
a. Tất cả các hệ điều hành trên.
b. macOS
. c. Windows.
d. Linux.
Hai chế độ hoạt động (mode) các Hệ điều hành là chế độ nào?
a. User mode và Kernel mode.
b. Normal mode và Safe mode.
c. Admin mode và Kernel mode.
d. User mode và Admin mode.
Tiểu trình" (hay còn gọi là luồng) được hiểu như thế nào?
a. Một đơn vị nhỏ nhất có thể thực thi trong tiến trình.
b. Một tiến trình con chia sẻ tài nguyên.
c. Một đoạn mã được thực thi độc lập trong chương trình.
d. Một tiến trình cấp thấp trong hệ điều hành
Giải thuật nào có thể gây ra tình trạng Starvation?
a. Round Robin
b. Priority Scheduling
c. First-Come, First-Served
d. Shortest Job Next
Nhân (kernel) của hệ điều hành là gì?
a. Mã nguồn mở của chương trình hệ thống và ứng dụng bên trong một hệ điều hành.
b. Phần mã nguồn của các chương trình hệ thống chính yếu của một hệ điều hành.
c. Chương trình luôn chạy trong hệ thống từ lúc khởi động cho đến khi tắt máy tính.
d. Một tên gọi khác của các bộ phận phần cứng có nhiệm vụ thực thi chương trình.
Lệnh nào giúp một tiểu trình chờ tiểu trình khác hoàn thành trong POSIX Threads?
a. pthread_wait().
b. pthread_exit().
c. pthread_join().
d. pthread_sync
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ì?
a. Các tiến trình đang thực thi và bộ điều phối tiến trình.
b. Nhân hệ điều hành và một tiến trình đang được xử lý.
c. Chỉ chứa một tiến trình đang được xử lý và bộ gỡ lỗi.
d. Nhân hệ điều hành và nhiều các trình đang thực thi
Lập trình đa luồng thường gặp trở ngại gì?
a. Chỉ có thể chạy trên hệ điều hành hỗ trợ song song.
b. Độ trễ tăng do cần quản lý nhiều luồng đồng thời.
c. Việc đồng bộ hóa dữ liệu giữa các luồng phức tạp.
d. Hiệu suất kém hơn do phải chia sẻ tài nguyên CPU.
Hệ điều hành có vai trò gì với các phần mềm chạy trên nó?
a. Tối ưu hoá mã nguồn phần mềm.
b. Cung cấp một môi trường thực thi.
c. Cung cấp các bộ kiểm thử phần mềm.
d. Hướng dẫn người sử dụng cách dùng.
Hệ điều hành hỗ trợ giao tiếp giữa người dùng và phần cứng thông qua:
a. Chương trình ứng dụng.
b. Trình biên dịch.
c. Trình điều khiển thiết bị.
d. Trình thông dịch
Hệ điều hành sử dụng phương pháp nào để cung cấp dịch vụ cho phần mềm?
a. Thông qua các lệnh trực tiếp từ người dùng.
b. Thông qua giao diện người dùng đồ họa.
c. Thông qua tập hợp các lời gọi hệ thống.
d. Thông qua các trình điều khiển thiết bị.
Khi một tiểu trình bị treo trong mô hình Many-to-One, điều gì sẽ xảy ra?
a. Tất cả các tiến trình trong hệ thống đều bị ảnh hưởng.
b. Chỉ tiểu trình đó bị chặn, các tiểu trình khác tiếp tục chạy.
c. Hệ điều hành tự động khởi động lại tiến trình.
d. Toàn bộ tiến trình bị chặn.
Hệ thống IPC phải hỗ trợ tối thiểu những thao tác nào trên thông điệp?
a. send và delete.
b. write và delete.
c. receive và send.
d. delete và receive.
Điều kiện để hai tiến trình P và Q có thể giao tiếp gián tiếp là gì?
a. Một tiến trình trung gian chịu trách nhiệm chuyển thông điệp.
b. Một hộp thư trung gian để chuyển thông điệp.
c. Một máy chủ riêng xử lý giao tiếp giữa P và Q.
d. Một vùng lưu trữ trên đĩa cứng để lưu thông điệp.
Trong mô hình vi nhân (Microkernel), hệ điều hành thực hiện chức năng nào?
a. Chỉ quản lý bộ nhớ và tiến trình, các dịch vụ khác nằm ngoài nhân.
b. Không quản lý tài nguyên, chỉ chuyển tiếp yêu cầu đến phần cứng.
c. Đảm bảo hiệu suất tối đa bằng cách chạy mọi thứ trong nhân.
d. Xử lý tất cả các tác vụ từ quản lý tập tin đến giao tiếp mạng.
Khi sử dụng hàng đợi có kích thước bằng 0 (Zero capacity queue), điều gì xảy ra?
a. Tiến trình nhận bị khóa cho đến khi có thông điệp mới.
b. Tiến trình gửi phải chờ cho đến khi tiến trình nhận lấy thông điệp.
c. Hàng đợi có thể chứa ít nhất một thông điệp.
d. Tiến trình gửi không bị chặn, có thể gửi liên tục.
Một trong những mục tiêu của hệ điều hành là gì?
a. Quản lý tiến trình sử dụng tài nguyên hiệu quả.
b. Làm cho hệ thống máy tính phức tạp và đa chức năng.
c. Điều khiển hoạt động của các tài nguyên.
d. Tăng tốc độ hoạt động của các thiết bị phần cứng
Trong Python, module nào hỗ trợ lập trình đa luồng?
a. parallel.
b. multiprocessing.
c. threading.
d. async.
Tiến trình có thể chứa nhiều tiểu trình, vậy chúng chia sẻ tài nguyên nào?
a. Không gian địa chỉ, vùng nhớ heap, tài nguyên hệ thống.
b. Không có tài nguyên nào được chia sẻ.
c. Chỉ có bộ nhớ heap và các biến toàn cục.
d. Con trỏ lệnh, thanh ghi CPU, stack riêng
Nhân hệ điều hành (Kernel) có đặc điểm nào?
a. Luôn thường trực trong bộ nhớ khi hệ thống hoạt động.
b. Chạy trong không gian người dùng thay vì không gian hệ thống.
c. Có thể bị tắt đi nếu không cần sử dụng.
d. Chỉ nạp vào bộ nhớ khi một ứng dụng yêu cầu
Dịch vụ của hệ điều hành nhằm mục đích gì?
a. Hỗ trợ người dùng tương tác trực tiếp với phần cứng.
b. Hỗ trợ ứng dụng bằng cách cung cấp các chức năng cần thiết.
c. Tạo môi trường để phần cứng hoạt động hiệu quả.
d. Giúp lập trình viên viết chương trình dễ dàng hơn
Thư viện nào hỗ trợ lập trình đa luồng trên hệ điều hành Linux?
a. Threading API.
b. Pthread.
c. Multi-Core Scheduler.
d. Windows Thread.
Trong mô hình bộ nhớ ảo, thuật ngữ "page" dùng để chỉ gì?
a. Một cấu trúc quản lý tiến trình.
b. Một khối dữ liệu cố định trong bộ nhớ.
c. Một tập hợp các tiến trình đang chạy.
d. Một phần của bộ nhớ cache.
Loại giao diện nào được sử dụng để người dùng tương tác với hệ điều hành?
a. Chỉ có giao diện dòng lệnh.
b. Chỉ có giao diện đồ họa.
c. Chỉ có màn hình cảm ứng.
d. Giao diện lệnh, giao diện đồ họa, màn hình cảm ứng
Bảng định vị tiến trình (Process Control Block - PCB) chứa thông tin gì?
a. Mã nguồn của tiến trình đang thực thi.
b. Thông tin về thiết bị nhập/xuất của hệ thống.
c. Danh sách tất cả các tiến trình trong hệ thống.
d. Thông tin về trạng thái và tài nguyên của tiến trình.
Khi chạy chương trình trên Linux, làm thế nào để xem danh sách các tiến trình đang hoạt động?
a. Sử dụng lệnh ps hoặc top.
b. Khởi động lại hệ thống.
c. Dùng lệnh ls.
d. Mở Task Manager.
Trình liên kết (Linker) có chức năng gì?
a. Tạo các tập tin thư viện từ mã nguồn
. b. Biên dịch mã nguồn thành mã máy.
c. Kết hợp các tệp đối tượng thành một chương trình có thể chạy.
d. Tải chương trình vào bộ nhớ để thực thi.
Chuyển ngữ cảnh (Context switch) xảy ra khi nào?
a. Khi tiến trình đang chạy bị dừng.
b. Khi CPU chuyển quyền thực thi giữa các tiến trình.
c. Khi tiến trình thay đổi trạng thái.
d. Khi người dùng điều chỉnh thiết lập hệ điều hành.
Điểm mạnh của thiết kế hệ điều hành nguyên khối (Monolithic) là gì?
a. Giảm tối đa dung lượng bộ nhớ sử dụng.
b. Dễ dàng sửa đổi từng thành phần riêng lẻ.
c. Hạn chế lỗi xảy ra khi có sự cố phần cứng.
d. Hiệu năng cao và đơn giản.
Khi một tiến trình thực hiện I/O, điều gì sẽ xảy ra?
a. Tiến trình chuyển sang trạng thái Waiting.
b. Tiến trình bị xóa khỏi hệ thống.
c. Tiến trình sẽ tiếp tục chạy song song với I/O.
d. Tiến trình sẽ chiếm CPU cho đến khi I/O hoàn thành
Phát biểu nào mô tả đúng về giao tiếp trực tiếp giữa các tiến trình?
a. Mỗi cặp tiến trình cần hai liên kết giao tiếp.
b. Với N tiến trình, sẽ có N*(N-1)/2 liên kết.
c. Một liên kết giao tiếp chỉ phục vụ đúng hai tiến trình.
d. Một liên kết giao tiếp có thể được chia sẻ giữa nhiều tiến trình
Những phương thức nào được dùng để thiết lập IPC?
a. Vùng nhớ chia sẻ và biến dùng chung.
b. Vùng nhớ chia sẻ và truyền thông điệp.
c. Gửi thông điệp và truyền đối số.
d. Truyền thông điệp và lời gọi hệ thống.
Lập trình đa luồng có thể gây ra tình trạng gì nếu không kiểm soát tốt tài nguyên?
a. Memory leak.
b. Deadlock.
c. Tất cả các vấn đề trên.
d. CPU overutilization.
Liên kết giao tiếp giữa hai tiến trình P và Q để trao đổi thông điệp được gọi là gì?
a. message-passing link
b. send and receive link
c. communication link
d. synchronization link
Khái niệm đường ống (Pipe) trong hệ điều hành là gì?
a. Một hàng đợi chuyên biệt dành cho tiến trình.
b. Một lời gọi hệ thống phục vụ việc truyền dữ liệu.
c. Một cấu trúc dữ liệu dùng trong truyền thông liên tiến trình.
d. Một kênh liên lạc giữa các tiến trình.
Làm thế nào để chạy một chương trình trong giao diện dòng lệnh của Ubuntu?
a. Gõ tên chương trình kèm ".exe".
b. Gõ tên chương trình kèm ".out".
c. Gõ đường dẫn tương đối của chương trình.
d. Nhấp vào biểu tượng của chương trình
Nhiệm vụ nào sau đây KHÔNG thuộc về hệ điều hành?
a. Quản lý tài nguyên phần cứng.
b. Tăng tốc độ xử lý của CPU.
c. Bảo vệ hệ thống khỏi phần mềm độc hại.
d. Hỗ trợ giao tiếp giữa các tiến trình.
Trong hệ điều hành Linux, lệnh ls có chức năng gì?
a. Liệt kê danh sách các tập tin và thư mục.
b. Xóa một tập tin hoặc thư mục.
c. Di chuyển tập tin từ thư mục này sang thư mục khác.
d. Tạo một tập tin mới.
Để bộ xử lý (CPU) 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. Chỉ có thể là trong bộ nhớ chính.
b. Trong bộ nhớ chính hoặc bộ nhớ thứ cấp.
c. Trong thiết bị lưu trữ nào cũng được.
d. Trong thẻ nhớ hoặc ổ đĩa USB.
Ngắt (interrupt) là gì?
a. Khoảng thời gian tạm dừng thực thi của CPU.
b. Một lời gọi để chuyển quyền sử dụng CPU.
c. Tín hiệu mà thiết bị phần cứng gửi cho CPU.
d. Một câu lệnh tạm dừng để đồng bộ tiến trình
Để tạo một tiểu trình trong C sử dụng thư viện POSIX, ta dùng hàm nào?
a. create_thread().
b. init_thread().
c. start_thread().
d. pthread_create().
Khi sử dụng lập trình đa luồng, hệ thống sẽ tận dụng tốt hơn tài nguyên nào?
a. Tài nguyên đồ họa GPU.
b. Bộ nhớ đệm.
c. Bộ nhớ ROM.
d. Bộ xử lý đa nhân
Hệ điều hành quản lý bộ nhớ chính với các công việc bao gồm
a. Cấp phát động và giải phóng không gian bộ nhớ chính.
b. Đọc / Ghi bộ nhớ cache để hổ trợ CPU thực thi chương trình.
c. Can thiệp vào các giá trị biến số đang lưu trong bộ nhớ.
d. Hỗ trợ lưu trữ các tập tin và giá trị dữ liệu của chương trình.
Thư viện nào hỗ trợ lập trình đa luồng trong Java?
a. java.lang.Thread.
b. java.util.Thread.
c. java.system.Thread.
d. java.core.Thread.
Khi nào một chương trình được xem là một tiến trình?
a. Khi hệ điều hành quyết định khởi tạo nó.
b. Khi nó được nạp vào bộ nhớ và bắt đầu thực thi.
c. Khi nó đã được biên dịch thành mã thực thi.
d. Sau khi nó được tải về và lưu trên đĩa.
Mô hình ánh xạ giữa tiểu trình mức nhân và tiểu trình mức người dùng nào không tồn tại?
a. Một-một (One-to-one).
b. Một-nhiều (One-to-many).
c. Nhiều-một (Many-to-one).
d. Nhiều-nhiều (Many-to-many
IPC là chữ viết tắt của thuật ngữ nào?
a. In Process Communication.
b. Inter Process Communication.
c. Inside Process Communication.
d. Inter Process Corporation
Gửi không-chặn (non-blocking send) có đặc điểm nào?
a. Tiến trình gửi liên tiếp truyền thông điệp mà không chờ phản hồi.
b. Tiến trình gửi chờ cho đến khi thông điệp được nhận.
c. Tiến trình gửi chỉ có thể gửi một thông điệp tại một thời điểm.
d. Tiến trình gửi chờ phản hồi từ tiến trình nhận
Khi xảy ra Deadlock, hệ điều hành có thể làm gì?
a. Giảm mức ưu tiên của tiến trình bị kẹt.
b. Xóa tất cả tiến trình đang chạy.
c. Tăng tốc CPU để tránh tình trạng nghẽn.
d. Phát hiện và xử lý hoặc ngăn chặn ngay từ đầu.
Ưu điểm của sử dụng thread pool thay vì tạo tiểu trình động là gì?
a. Tiết kiệm bộ nhớ hơn.
b. Tất cả các lợi ích trên.
c. Tránh tình trạng tạo quá nhiều tiểu trình cùng lúc.
d. Giảm chi phí tạo và hủy tiểu trình.
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?
a. Bảo vệ và an toàn.
b. Quản lý đăng nhập.
c. Quản lý người dùng.
d. Phân quyền và đăng nhập.
Trong các cấp độ lưu trữ dữ liệu, bộ nhớ nào có tốc độ nhanh nhất?
a. Bộ nhớ RAM.
b. Bộ nhớ Cache.
c. Ổ cứng SSD.
d. Ổ cứng HDD.
Shared Memory giúp các tiến trình giao tiếp bằng cách nào?
a. Dùng hệ thống tệp làm trung gian.
b. Gửi tin nhắn qua mạng.
c. Chia sẻ một vùng nhớ chung giữa các tiến trình.
d. Mỗi tiến trình có bộ nhớ riêng, không thể chia sẻ.
GPL là gì?
a. Một hệ điều hành và bộ phần mềm ứng dụng.
b. Một giấy phép sử dụng phần mềm thương mại.
c. Một tổ chức quản lý các phần mềm mã nguồn mở.
d. Một giấy phép công cộng cho các phần mềm
Khi một ứng dụng gặp lỗi nghiêm trọng, hệ điều hành thường tạo ra tệp nào?
a. Memory snapshot.
b. Debug report.
c. Core dump.
d. Error log.
Cơ chế bảo vệ bộ nhớ giúp hệ điều hành tránh được lỗi gì?
a. Lỗi truy cập vào vùng nhớ không hợp lệ.
b. Lỗi treo phần cứng do quá tải.
c. Lỗi tràn bộ nhớ cache.
d. Lỗi mất dữ liệu trên ổ cứng
Việc nào sau đây phù hợp nhất khi thiết kế một hệ điều hành theo hướng người dùng?
a. Hỗ trợ nhiều loại thiết bị ngoại vi nhất có thể.
b. Cung cấp giao diện đơn giản, dễ sử dụng.
c. Tập trung vào quản lý bộ nhớ hiệu quả.
d. Tối ưu hóa tốc độ xử lý của bộ vi xử lý.
Thư viện nào được sử dụng như API tiêu chuẩn trên hệ điều hành Linux?
a. .NET.
b. Win32.
c. POSIX.
d. DirectX.
Các lệnh / chỉ thị đặc quyền (privilege instruction) có tính chất gì?
a. Chỉ có thể được thực thi trong chế độ nhân.
b. Bộ vi xử lý ưu tiên thực thi các chỉ thị này.
c. Chỉ các tiến trình hệ thống mới được gọi.
d. Thao tác dành riêng cho lập trình viên sử dụng.
Trong mô hình Many-to-Many, số lượng tiểu trình mức nhân so với tiểu trình mức người dùng là thế nào?
a. Luôn bằng nhau.
b. Lớn hơn.
c. Ít hơn hoặc bằng.
d. Không có quy tắc cố định.
Mục đích chính của việc chia sẻ thời gian CPU giữa các tiến trình là gì?
a. Cho phép người dùng điều khiển trực tiếp CPU.
b. Đảm bảo CPU không bị lãng phí tài nguyên.
c. Giảm số lượng tiến trình chạy đồng thời.
d. Hỗ trợ chỉ chạy một tiến trình tại một thời điểm.
Tiến trình con được tạo ra bằng lời gọi fork() sẽ kế thừa những gì từ tiến trình cha?
a. Chỉ kế thừa biến môi trường, không kế thừa tài nguyên.
b. Chỉ kế thừa bộ đếm chương trình.
c. Bộ nhớ riêng biệt và danh sách tiến trình hệ thống.
d. Không gian địa chỉ và các tài nguyên mở.
Ảo hoá (virtualization) là gì?
a. Tạo ra các nhân vi xử lý luận lý nhằm gia tăng sức mạnh tính toán cho hệ thống.
b. Thay đổi hệ điều hành hiện tại thành một hệ điều hành khác để nghiên cứu và học tập.
c. Trừu tượng hóa phần cứng máy tính thành nhiều môi trường thực thi khác nhau.
d. Trừu tượng các phần mềm thành những phần cứng máy tính để tăng tốc độ xử lý.
Thread là gì?
a. Một chương trình chạy trên CPU.
b. Một tiến trình con độc lập.
c. Một phương pháp quản lý bộ nhớ.
d. Một luồng thực thi trong một tiến trình.
Cách tiếp cận nào được sử dụng để thiết kế các máy ảo?
a. Nguyên khối.
b. Vi nhân.
c. Hệ thống module.
d. Phân lớp.
thông điệp được gọi là gì?
a. message-passing link
b. synchronization link
c. send and receive link
d. communication link
Tại sao các lập trình viên thường không gọi trực tiếp lời gọi hệ thống?
a. Vì chúng chỉ hoạt động với phần cứng cụ thể.
b. Vì có các API giúp đơn giản hóa việc sử dụng.
c. Vì hệ điều hành không cho phép.
d. Vì chúng quá phức tạp để sử dụng.
Cơ chế chuyển đổi ngữ cảnh (context switch) diễn ra khi nào?
a. Khi một tiến trình bị lỗi và bị hủy bởi hệ điều hành.
b. Khi hệ điều hành tải một chương trình mới từ ổ đĩa vào bộ nhớ.
c. Khi CPU chuyển từ thực thi tiến trình này sang tiến trình khác.
d. Khi một tiến trình kết thúc và giải phóng tài nguyên
Để biên dịch một chương trình C trên Linux bằng gcc, bạn sử dụng lệnh nào?
a. compile program.c
b. run program.c
c. make program.c
d. gcc program.c -o program
Ưu điểm chính của đa luồng (Multithreading) là gì?
a. Giảm số lượng tiến trình cần tạo ra.
b. Ngăn chặn hoàn toàn lỗi bộ nhớ.
c. Tăng hiệu suất xử lý bằng cách chia sẻ tài nguyên.
d. Loại bỏ hoàn toàn tình trạng Deadlock.
Ai là đối tượng chính sử dụng các dịch vụ của hệ điều hành?
a. Các phần mềm chạy trên hệ thống.
b. Nhà quản trị hệ thống.
c. Người dùng cuối.
d. Nhà sản xuất phần cứng
Cơ chế nào giúp hệ điều hành quản lý thời gian thực thi của từng tiểu trình?
a. Bộ nhớ ảo (Virtual Memory).
b. Trình biên dịch (Compiler).
c. Bộ quản lý tiến trình (Process Manager).
d. Bộ lập lịch tiểu trình (Thread Scheduler).
Semaphore là gì trong lập trình đồng bộ?
a. Một cách quản lý tiến trình con.
b. Một phương thức quản lý bộ nhớ đệm.
c. Một kiểu dữ liệu lưu trữ trạng thái của tiến trình.
d. Một biến đặc biệt dùng để kiểm soát truy cập tài nguyên.
Một lợi ích quan trọng của lập trình đa luồng là gì?
a. Giảm nhu cầu sử dụng bộ nhớ hệ thống.
b. Tăng tốc độ xử lý bằng cách chạy nhiều công việc đồng thời.
c. Giảm mức tiêu thụ năng lượng của hệ thống.
d. Giúp chương trình đơn giản hơn và dễ bảo trì hơn.
Một ưu thế của mô hình đa luồng so với đơn luồng là gì?
a. Giúp tối ưu việc quản lý bộ nhớ của hệ điều hành.
b. Lập trình đơn giản và dễ bảo trì hơn.
c. Tận dụng tốt hơn hiệu suất của các bộ xử lý đa nhân.
d. Giảm độ trễ khi chuyển đổi ngữ cảnh giữa các tiến trình.
Khi một tiến trình cần giao tiếp với một tiến trình khác, nó có thể sử dụng cơ chế nào?
a. Sử dụng bộ nhớ cache chung.
b. Tăng mức độ ưu tiên trong CPU.
c. Gửi email giữa các tiến trình.
d. Inter-Process Communication (IPC).
Trạng thái Ready của tiến trình có nghĩa là gì?
a. Tiến trình sẵn sàng được CPU thực thi.
b. Tiến trình bị dừng vĩnh viễn.
c. Tiến trình đang chờ một tài nguyên.
d. Tiến trình đang chạy trên CPU
Một tiến trình ở trạng thái Waiting khi nào?
a. Khi nó đang thực thi trên CPU.
b. Khi nó vừa được tạo ra nhưng chưa sẵn sàng chạy.
c. Khi nó bị hệ điều hành chặn vĩnh viễn.
d. Khi nó đang chờ một sự kiện hoặc tài nguyên.
Lập trình đa luồng có thể giúp tăng hiệu suất trong trường hợp nào?
a. Khi sử dụng trên hệ thống đơn nhân.
b. Khi cần truy cập dữ liệu từ một tệp duy nhất.
c. Khi chỉ có một luồng cần thực thi chính
. d. Khi chương trình có nhiều tác vụ có thể thực thi đồng thời.
Hệ điều hành UNIX sử dụng lời gọi nào để tạo tiến trình?
a. fork()
b. exec()
c. Fork()
d. CreateProcess()
Lời gọi hệ thống (System Call) chủ yếu được dùng để làm gì?
a. Cho phép ứng dụng yêu cầu dịch vụ từ hệ điều hành.
b. Hiển thị thông báo hệ thống cho người dùng.
c. Quản lý tiến trình trong hệ điều hành
. d. Kết nối trực tiếp ứng dụng với phần cứng.
Cấu trúc bộ nhớ của một tiến trình bao gồm những phần nào?
a. Phần mã, vùng dữ liệu, bộ nhớ heap và stack.
b. Dữ liệu, biến số, vùng nhớ mở rộng và các con trỏ.
c. Phần mã, vùng dữ liệu tĩnh, vùng dữ liệu chưa khởi tạo.
d. Phần mã, khối quản lý tiến trình, bộ nhớ heap và stack
Khái niệm "Tiến trình" (Process) là gì?
a. Một chương trình đang thực thi trong hệ thống.
b. Một chương trình được lưu trữ trên ổ đĩa.
c. Một chương trình có thể được thực thi.
d. Một chương trình đã được biên dịch thành mã máy
Để 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ì?
a. Cung cấp sẵn các giao diện cho phần mềm ứng dụng.
b. Cung cấp các trình điều khiển (driver) thiết bị phần cứng.
c. Mã nguồn (Source code) của Hệ điều hành.
d. Một thư viện lập trình hiệu quả và tài liệu đầy đủ
Hệ điều hành nào sau đây là hệ điều hành mã nguồn mở?
Windows
iOS
MacOS
Linux
Lệnh nào dùng để kết thúc một tiến trình trong Linux?
a. delete
b. stop
c. kill
d. exit
GPL là gì?
a. Một hệ điều hành và bộ phần mềm ứng dụng.
b. Một giấy phép sử dụng phần mềm thương mại
c. Một tổ chức quản lý các phần mềm mã nguồn mở.
d. Một giấy phép công cộng cho các phần mềm tự do.
Hệ điều hành có chức năng gì đối với các phần mềm ứng dụng?
a. Lập trình ra các phần mềm ứng dụng.
b. Sửa lỗi của phần mềm ứng dụng.
c. Tối ưu hóa mã nguồn các ứng dụng.
d. Phân phối tài nguyên phần cứng.
Mục đích chính của hệ thống tập tin (file system) là gì?
a. Tăng tốc độ xử lý của các chương trình.
b. Giám sát hoạt động của tất cả các tiến trình.
c. Quản lý quyền truy cập vào phần cứng.
d. Lưu trữ và tổ chức dữ liệu trên thiết bị lưu trữ.
