wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Hệ điều hành: Tiến trình và định thời (trích đề)

Total questions: 120

Worksheet time: 3600secs

Name
Class
Date
1.

Tiến trình (process) là gì?

a)

Là chương trình đang được biên dịch

b)

Là chương trình lưu trên đĩa

c)

Là chương trình đang bị tạm ngưng

d)

Là chương trình đang thực thi

2.

Chương trình là thực thể bị động, còn tiến trình là thực thể ________.

a)

bị động

b)

chủ động

c)

phụ thuộc

d)

không xác định

3.

Khi một tập tin thực thi được nạp vào bộ nhớ, nó trở thành gì?

a)

Chương trình

b)

Tiến trình

c)

Tập tin dữ liệu

d)

Thư viện động

4.

Phần nào của tiến trình chứa mã lệnh chương trình?

a)

Text section

b)

Data section

c)

Stack

d)

Heap

5.

Phần nào của tiến trình chứa biến toàn cục (global variables)?

a)

Text section

b)

Data section

c)

Heap

d)

Stack

6.

Phần nào chứa biến cục bộ và tham số hàm của tiến trình?

a)

Data section

b)

Heap

c)

Stack

d)

Text

7.

Trạng thái “new” của tiến trình có nghĩa là:

a)

Tiến trình vừa được tạo

b)

Tiến trình đang chạy

c)

Tiến trình đang đợi I/O

d)

Tiến trình đã kết thúc

8.

Trạng thái “ready” của tiến trình là khi:

a)

Chưa được cấp phát tài nguyên

b)

Đã có đủ tài nguyên, chỉ còn chờ CPU

c)

Đang đợi I/O

d)

Đã bị hủy

9.

Trạng thái “running” nghĩa là:

a)

Các lệnh đang được CPU thực thi

b)

Tiến trình đang đợi nhập/xuất

c)

Tiến trình đã hoàn thành

d)

Tiến trình vừa được tạo

10.

Trạng thái “waiting” còn được gọi là gì?

a)

Blocked

b)

Ready

c)

Running

d)

Terminated

11.

Trạng thái “terminated” của tiến trình là khi:

a)

Tiến trình đã kết thúc thực thi

b)

Tiến trình đang đợi CPU

c)

Tiến trình bị treo

d)

Tiến trình đang tạo tiến trình con

12.

Thông tin nào không nằm trong PCB?

a)

Trạng thái tiến trình

b)

Thanh ghi và bộ đếm chương trình

c)

Thông tin quản lý bộ nhớ

d)

Danh sách các file hệ thống toàn cục

13.

PCB (Process Control Block) dùng để:

a)

Lưu trữ thông tin cần thiết để quản lý tiến trình

b)

Lưu mã lệnh chương trình

c)

Tăng tốc CPU

d)

Cấp phát bộ nhớ cho tiến trình

14.

Ai chịu trách nhiệm chuyển đổi CPU từ tiến trình này sang tiến trình khác?

a)

Hệ điều hành

b)

Trình biên dịch

c)

Bộ nhớ chính

d)

Người dùng

15.

Quá trình CPU chuyển từ tiến trình này sang tiến trình khác gọi là:

a)

Chuyển ngữ cảnh (context switch)

b)

Chuyển đổi tiến trình

c)

Chuyển đổi bộ nhớ

d)

Chuyển đổi I/O

16.

Bộ định thời dài (long-term scheduler) còn được gọi là gì?

a)

Bộ định thời công việc (Job scheduler)

b)

Bộ định thời CPU

c)

Bộ định thời trung gian

d)

Bộ định thời ưu tiên

17.

Bộ định thời ngắn (short-term scheduler) còn được gọi là gì?

a)

Job scheduler

b)

CPU scheduler

c)

Medium-term scheduler

d)

IO scheduler

18.

Mục tiêu chính của định thời tiến trình là:

a)

Tận dụng tối đa CPU và giảm thời gian đáp ứng

b)

Giảm số tiến trình

c)

Giảm dung lượng bộ nhớ

d)

Tăng số tiến trình lỗi

19.

Trong mô hình cộng tác giữa các tiến trình, mục tiêu không phải là:

a)

Chia sẻ dữ liệu

b)

Tăng tốc tính toán

c)

Giảm tốc độ xử lý

d)

Thực hiện công việc chung

20.

IPC (Inter-Process Communication) có hai mô hình chính là:

a)

Shared memory và Message passing

b)

Client-server và Peer-to-peer

c)

Shared file và Remote call

d)

Blocking và Non-blocking

21.

Trong hệ thống đa chương, định thời tiến trình nhằm:

a)

Quản lý việc chia sẻ CPU giữa nhiều tiến trình

b)

Quản lý việc cấp phát bộ nhớ

22.

Khi tiến trình đang chạy bị ngắt bởi I/O, nó sẽ chuyển sang trạng thái:

a)

Waiting (Blocked)

b)

Ready

c)

Terminated

d)

New

23.

Khi tiến trình đang đợi I/O xong, hệ điều hành sẽ chuyển nó sang trạng thái:

a)

Ready

b)

Running

c)

New

d)

Terminated

24.

Thông tin lập thời biểu CPU trong PCB bao gồm:

a)

Danh sách tiến trình con

b)

Độ ưu tiên, thời gian sử dụng CPU

c)

Mã lệnh chương trình

d)

Bộ đệm I/O

25.

Hệ điều hành cần quản lý tiến trình nhằm:

a)

Đảm bảo hiệu suất CPU và tránh deadlock

b)

Tăng tốc truy xuất đĩa

c)

Tăng dung lượng bộ nhớ

d)

Giảm số lượng tiến trình

26.

Trong hệ thống, các tiến trình được lưu trữ ở đâu để định thời?

a)

Các hàng đợi tiến trình (queues)

b)

Các thanh ghi CPU

c)

Vùng heap

d)

Bộ nhớ đệm

27.

Hàng đợi “Ready Queue” chứa các tiến trình:

a)

Đã sẵn sàng để chạy nhưng chưa được CPU cấp phát

b)

Đang đợi I/O

c)

Đang kết thúc

d)

Chưa được tạo

28.

“Job Queue” là hàng đợi chứa:

a)

Các tiến trình đang trong hệ thống chờ cấp CPU

b)

Các tiến trình bị lỗi

c)

Các tiến trình đã hoàn tất

d)

Các tiến trình đang đợi nhập xuất

29.

Context switch xảy ra khi:

a)

CPU chuyển quyền điều khiển từ tiến trình này sang tiến trình khác

b)

Hệ điều hành tạo tiến trình mới

c)

Người dùng đăng nhập

d)

Bộ nhớ bị tràn

30.

Bộ định thời trung gian (medium-term scheduler) có nhiệm vụ chính là:

a)

Điều chỉnh mức độ đa chương bằng cách swap tiến trình ra/vào bộ nhớ

b)

Chia sẻ CPU

c)

Quản lý ổ đĩa

d)

Phân chia vùng nhớ

31.

System call nào trong Unix dùng để tạo tiến trình mới?

a)

fork()

b)

exec()

c)

exit()

d)

wait()

32.

Trong Unix, lệnh exec() có nhiệm vụ:

a)

Nạp chương trình mới vào vùng nhớ tiến trình hiện tại

b)

Tạo tiến trình mới

c)

Kết thúc tiến trình

d)

Tạm dừng tiến trình

33.

Khi tiến trình cha và con thực thi đồng thời, ta gọi là:

a)

Concurrent execution

b)

Parallel execution

c)

Sequential execution

d)

Time delay

34.

Một tiến trình con có thể chia sẻ tài nguyên của tiến trình cha bằng cách:

a)

Thừa hưởng toàn bộ hoặc một phần tài nguyên

b)

Sao chép độc lập toàn bộ tài nguyên

c)

Không thể chia sẻ

d)

Chỉ chia sẻ code

35.

Khi tiến trình cha đợi các tiến trình con kết thúc mới tiếp tục, ta nói rằng:

a)

Cha đồng bộ với con

b)

Con độc lập với cha

c)

Con chạy song song

d)

Cha bị chặn bởi kernel

36.

Tiến trình tự kết thúc bằng cách:

a)

Thực hiện system call exit()

b)

Bị hệ điều hành cưỡng bức hủy

c)

Gọi hàm destroy()

d)

Tự động khi hết thời gian CPU

37.

Tiến trình có thể bị tiến trình khác kết thúc nếu tiến trình đó:

a)

Có đủ quyền (ví dụ tiến trình cha gọi abort())

b)

Có cùng trạng thái

c)

Có độ ưu tiên thấp hơn

d)

Cùng chia sẻ bộ nhớ

38.

Hệ điều hành cần thu hồi gì khi tiến trình kết thúc?

a)

Tài nguyên như bộ nhớ, I/O buffer, và PCB

b)

Bộ đệm chương trình

c)

Các hàm thư viện

d)

File nguồn

39.

Khi các tiến trình chia sẻ vùng nhớ chung, vấn đề gì có thể xảy ra?

a)

Xung đột truy xuất dữ liệu (race condition)

b)

Thiếu bộ nhớ ảo

c)

Không thể đồng bộ

d)

Gián đoạn CPU

40.

Cơ chế IPC nào yêu cầu có vùng nhớ dùng chung?

a)

Shared Memory

b)

Message Passing

c)

File Sharing

d)

Pipe System

41.

Trong mô hình IPC “Message Passing”, các tiến trình giao tiếp thông qua:

a)

Mailbox hoặc Port

b)

Shared memory

c)

File tạm

d)

Stack chung

42.

Trong giao tiếp trực tiếp (direct communication), lệnh gửi thông điệp có dạng:

a)

send(P, message)

b)

send(mailbox, message)

c)

send(msg)

d)

send_all(message)

43.

Trong giao tiếp gián tiếp (indirect communication), tiến trình gửi/nhận qua:

a)

Mailbox hoặc cổng (port)

b)

Bộ nhớ chính

c)

File hệ thống

d)

Thanh ghi

44.

Cơ chế “blocking send” nghĩa là:

a)

Tiến trình gửi bị dừng cho đến khi thông điệp được nhận

b)

Tiến trình gửi tiếp tục chạy

c)

Cả hai tiến trình bị treo

d)

Hệ điều hành tạm dừng I/O

45.

“Nonblocking receive” nghĩa là:

a)

Tiến trình nhận sẽ tiếp tục nếu chưa có thông điệp

b)

Tiến trình nhận phải đợi

c)

Hệ điều hành chặn tiến trình

d)

CPU bị ngắt

46.

Nếu vùng đệm (buffer) có kích thước bằng 0, đó là mô hình:

a)

Zero-capacity (no buffering)

b)

Bounded-capacity

c)

Unbounded-capacity

d)

Shared buffer

47.

“Bounded-capacity” queue nghĩa là:

a)

Hàng đợi chứa được số lượng thông điệp giới hạn

b)

Không có giới hạn kích thước

c)

Không chứa được thông điệp

d)

Dựa trên shared memory

48.

“Unbounded-capacity” nghĩa là:

a)

Hàng đợi có độ dài không giới hạn

b)

Hàng đợi không có phần tử

c)

Hàng đợi được giới hạn CPU

d)

Hàng đợi chạy trong kernel

49.

Tiểu trình (thread) là:

a)

Đơn vị cơ bản sử dụng CPU trong tiến trình

b)

Một chương trình độc lập

c)

Một tiến trình con riêng biệt

d)

Vùng nhớ chia sẻ

50.

Mỗi thread có các phần riêng:

a)

Thread ID, PC, Registers, Stack

b)

Code, Data, Heap

c)

File, Port, PCB

d)

Kernel, User, Buffer

51.

Thread chia sẻ chung các phần nào trong tiến trình?

a)

Code, Data, và tài nguyên hệ thống

b)

Stack

c)

Thanh ghi

d)

PC

52.

PCB (Process Control Block) lưu danh sách các thread tại trường nào?

a)

Threads list

b)

Thread Control Block

c)

Scheduling statistic

d)

Context

53.

TCB (Thread Control Block) chứa thông tin gì?

a)

Trạng thái thread, context cục bộ (stack, IP)

b)

Mã chương trình

c)

Dữ liệu toàn cục

d)

Bộ nhớ heap

54.

Ưu điểm của đa luồng (multithreading) là:

a)

Tạo và chuyển ngữ cảnh nhanh hơn tiến trình

b)

Tăng dung lượng bộ nhớ

c)

Giảm hiệu suất CPU

d)

Tăng overhead hệ thống

55.

Trong hệ thống đa lõi (multiprocessor), đa luồng cho phép:

a)

Thực hiện song song các luồng

b)

Chỉ chạy một luồng tại một thời điểm

c)

Cấm chia sẻ tài nguyên

d)

Giảm hiệu năng

56.

Mô hình tiểu trình người dùng (User Thread) hoạt động trong:

a)

User mode

b)

Kernel mode

c)

Cả hai

d)

Hệ thống file

57.

Trong mô hình tiểu trình hạt nhân (Kernel Thread):

a)

Thread được quản lý bởi nhân hệ điều hành

b)

Thread chỉ do người dùng tạo

c)

Không thể đồng bộ

d)

Không chia sẻ code

58.

Mô hình “Many-to-One” có đặc điểm:

a)

Nhiều thread người dùng ánh xạ vào một thread nhân

b)

Mỗi thread người dùng ánh xạ riêng

c)

Một thread nhân ánh xạ nhiều thread nhân khác

d)

Không có ánh xạ

59.

Nhược điểm của mô hình “Many-to-One” là:

a)

Một thread bị block khiến toàn bộ thread bị block

b)

Không thể chạy nhiều tiến trình

c)

Không thể cấp CPU

d)

Không chia sẻ tài nguyên

60.

Ưu điểm của mô hình “One-to-One” so với “Many-to-One” là:

a)

Tính đồng thời tốt hơn, vì một thread bị block không ảnh hưởng thread khác

b)

Tốn ít bộ nhớ hơn

c)

Không cần hệ điều hành hỗ trợ

d)

Không cần nhân hệ thống

61.

Trong mô hình “Many-to-Many”, các tiểu trình người dùng được ánh xạ như thế nào?

a)

Nhiều tiểu trình người dùng ánh xạ với nhiều tiểu trình hạt nhân

b)

Một–một

c)

Nhiều–một

d)

Một–nhiều

62.

Ưu điểm lớn nhất của mô hình “Many-to-Many” là:

a)

Giải quyết được hạn chế của hai mô hình còn lại

b)

Tăng tốc CPU

c)

Giảm số lượng tiến trình

d)

Không cần lập lịch

63.

Nhược điểm chính của mô hình “Many-to-Many” là:

a)

Khó cài đặt, phức tạp trong quản lý

b)

Không chia sẻ dữ liệu

c)

Không hỗ trợ đa lõi

d)

Không chạy song song

64.

Trong các hệ điều hành hiện nay, mô hình được sử dụng phổ biến nhất là:

a)

One-to-One

b)

Many-to-One

c)

Many-to-Many

d)

Hybrid

65.

Chức năng chính của “Context Switch” là gì?

a)

Lưu trạng thái tiến trình hiện tại và khôi phục tiến trình kế tiếp

b)

Xóa tiến trình

c)

Sao chép dữ liệu vào bộ nhớ

d)

Tạo tiến trình mới

66.

Trong lập lịch CPU, nếu ưu tiên cho tiến trình có thời gian CPU ngắn nhất, đó là:

a)

SJF (Shortest Job First)

b)

FCFS (First Come First Serve)

c)

RR (Round Robin)

d)

Priority Scheduling

67.

Trong hệ thống chia thời, mục tiêu của định thời là:

a)

Giảm thời gian đáp ứng người dùng

b)

Tăng tốc nhập xuất

c)

Giảm số lượng tiến trình

d)

Giảm số lần context switch

68.

Khi nào xảy ra chuyển trạng thái “running → waiting”?

a)

Khi tiến trình yêu cầu I/O hoặc sự kiện bên ngoài

b)

Khi tiến trình bị lỗi

c)

Khi CPU hoàn thành chương trình

d)

Khi tiến trình chờ CPU

69.

Khi nào xảy ra chuyển trạng thái “waiting → ready”?

a)

Khi I/O hoàn tất hoặc tín hiệu được gửi đến

b)

Khi tiến trình kết thúc

c)

Khi CPU bị ngắt

d)

Khi người dùng yêu cầu

70.

Trong mô hình cây tiến trình, tiến trình “init” trong Linux có vai trò gì?

a)

Tiến trình gốc của toàn bộ hệ thống (PID = 1)

b)

Tiến trình con của kernel

c)

Tiến trình ngẫu nhiên

d)

Tiến trình thử nghiệm

71.

Lệnh fork() trong Unix trả về giá trị gì cho tiến trình cha?

a)

PID của tiến trình con

b)

0

c)

-1

d)

Không trả về gì

72.

Lệnh fork() trả về giá trị gì cho tiến trình con?

a)

0

b)

PID của cha

c)

-1

d)

1

73.

Nếu fork() trả về giá trị âm, điều đó nghĩa là:

a)

Tạo tiến trình thất bại

b)

Thành công

c)

Đang chạy song song

d)

Không có tác dụng

74.

Giả sử chương trình có 2 lệnh fork() liên tiếp, sẽ tạo ra bao nhiêu tiến trình?

a)

4 tiến trình 222^2

b)

2 tiến trình

c)

3 tiến trình

d)

5 tiến trình

75.

Trong đoạn mã: pid = fork(); if (pid == 0) fork(); Sẽ tạo ra bao nhiêu tiến trình sau khi chạy?

a)

3 tiến trình

b)

2 tiến trình

c)

4 tiến trình

d)

1 tiến trình

76.

Khi tiến trình cha kết thúc trước, tiến trình con sẽ trở thành:

a)

Orphan process (tiến trình mồ côi)

b)

Zombie process

c)

Terminated

d)

Idle

77.

Khi tiến trình con kết thúc nhưng chưa được thu hồi bởi cha, nó sẽ trở thành:

a)

Zombie process

b)

Orphan process

c)

Sleeping process

d)

Blocked process

78.

Trong IPC, phương pháp nào phù hợp để gửi dữ liệu nhỏ, ngắn gọn giữa tiến trình?

a)

Message Passing

b)

Shared Memory

c)

File Mapping

d)

RPC

79.

Trong IPC, phương pháp nào cho phép tốc độ truyền cao hơn?

a)

Shared Memory

b)

Message Passing

c)

File IO

d)

Signal

80.

Cơ chế đồng bộ trong shared memory nhằm:

a)

Đảm bảo các tiến trình không truy cập cùng lúc vào vùng dữ liệu chung

b)

Giảm dung lượng bộ nhớ

c)

Ngăn chia sẻ dữ liệu

d)

Tăng số tiến trình

81.

Khi xảy ra context switch, trạng thái tiến trình hiện tại được lưu vào đâu?

a)

Process Control Block (PCB)

b)

Stack

c)

Heap

d)

Register file

82.

Mỗi lần chuyển ngữ cảnh (context switch) sẽ làm:

a)

Giảm hiệu năng do overhead hệ thống

b)

Tăng tốc CPU

c)

Giảm số tiến trình

d)

Tăng dung lượng bộ nhớ

83.

Thông tin nào KHÔNG được lưu trong PCB?

a)

Nguồn cấp điện của CPU

b)

Thanh ghi

c)

Trạng thái tiến trình

d)

Thông tin định thời

84.

Tại sao việc định thời lại cần thiết trong hệ điều hành đa chương?

a)

Vì có nhiều tiến trình cạnh tranh cùng CPU

b)

Vì chỉ có một tiến trình

c)

Để giảm dung lượng RAM

d)

Để tăng tốc GPU

85.

Khi một tiến trình yêu cầu I/O, điều gì xảy ra?

a)

Tiến trình bị chặn và chuyển sang trạng thái waiting

b)

Tiến trình bị xóa

c)

Tiến trình chạy song song

d)

Tiến trình vào ready queue

86.

Khi I/O hoàn tất, tiến trình được chuyển sang:

a)

Ready queue

b)

Running queue

c)

Waiting queue

d)

Job queue

87.

Bộ định thời CPU chọn tiến trình nào để chạy?

a)

Tiến trình trong hàng đợi ready

b)

Tiến trình trong hàng đợi waiting

c)

Tiến trình trong job queue

d)

Tiến trình trong I/O queue

88.

Khi tiến trình kết thúc, hệ điều hành phải thực hiện bước nào đầu tiên?

a)

Giải phóng tài nguyên và xóa PCB

b)

Lưu lại trạng thái tiến trình

c)

Gửi tín hiệu restart

d)

Tạo tiến trình mới

89.

Ưu điểm chính của shared memory so với message passing là:

a)

Tốc độ giao tiếp nhanh hơn

b)

Dễ lập trình hơn

c)

Không cần đồng bộ

d)

Giảm bộ nhớ

90.

Nhược điểm của shared memory là:

a)

Khó đồng bộ truy cập dữ liệu

b)

Tốc độ chậm

c)

Không chia sẻ được dữ liệu

d)

Không an toàn

91.

Ưu điểm của message passing là:

a)

Không cần dùng chung bộ nhớ

b)

Truy cập nhanh

c)

Không cần đồng bộ

d)

Tốc độ cao hơn shared memory

92.

Tiểu trình (thread) khác với tiến trình (process) ở điểm nào?

a)

Thread chia sẻ chung tài nguyên trong cùng process

b)

Thread có không gian địa chỉ riêng

c)

Thread luôn chạy độc lập

d)

Thread không có stack

93.

Việc tạo thread mới thường:

a)

Nhanh hơn tạo process mới

b)

Chậm hơn process

c)

Giống hệt process

d)

Không phụ thuộc hệ điều hành

94.

Trong chương trình đa luồng, nếu một thread bị lỗi, ảnh hưởng có thể là gì?

a)

Có thể làm hỏng toàn bộ process

b)

Không ảnh hưởng gì

c)

Chỉ lỗi riêng thread đó

d)

Tự động khôi phục

95.

Để đồng bộ nhiều thread trong cùng process, ta có thể dùng:

a)

Mutex, Semaphore

b)

Context switch

c)

IPC message

d)

Scheduler

96.

Khi hai thread cùng ghi vào biến chung mà không đồng bộ, có thể gây ra:

a)

Race condition

b)

Deadlock

c)

Starvation

d)

Sleep

97.

Để tránh “race condition” trong shared memory, cần dùng:

a)

Cơ chế khóa (lock) hoặc semaphore

b)

Shared variable

c)

Fork()

d)

I/O interrupt

98.

Lý do sử dụng thread trong chương trình có tác vụ I/O là:

a)

Giúp các phần khác của chương trình tiếp tục chạy khi I/O bị chặn

b)

Tăng dung lượng bộ nhớ

c)

Giảm số dòng code

d)

Giảm overhead CPU

99.

Khi một thread bị block do I/O trong mô hình Many-to-One, điều gì xảy ra?

a)

Toàn bộ thread của process đó bị block

b)

Chỉ thread đó bị block

c)

Thread khác chạy tiếp

d)

Hệ điều hành loại bỏ tiến trình

100.

Trong mô hình One-to-One, khi một thread bị block:

a)

Thread khác vẫn có thể chạy

b)

Tất cả thread bị chặn

c)

Thread cha cũng bị block

d)

Hệ điều hành dừng process

101.

Trong chương trình Unix, lời gọi wait() có chức năng gì?

a)

Yêu cầu tiến trình cha chờ tiến trình con kết thúc

b)

Tạo tiến trình con

c)

Gửi tín hiệu đến kernel

d)

Hủy tiến trình con

102.

Nếu tiến trình cha không gọi wait() cho con, điều gì xảy ra?

a)

Con trở thành zombie process

b)

Con bị hủy ngay lập tức

c)

Cha bị block

d)

Kernel tự động xóa con

103.

Trong Unix, exec() được dùng để:

a)

Thay thế nội dung tiến trình hiện tại bằng chương trình mới

b)

Tạo tiến trình con

c)

Giết tiến trình

d)

Dừng chương trình

104.

Sự khác nhau giữa fork() và exec() là:

a)

fork() tạo tiến trình mới, exec() nạp chương trình mới vào tiến trình hiện tại

b)

Cả hai đều tạo tiến trình mới

c)

Cả hai đều kết thúc chương trình

d)

exec() tạo bản sao của tiến trình cha

105.

Đoạn code: fork(); fork(); fork(); Sẽ tạo ra tổng cộng bao nhiêu tiến trình?

a)

8 tiến trình ( 232^3 )

b)

4 tiến trình

c)

6 tiến trình

d)

7 tiến trình

106.

Trong hệ thống đa tiến trình, việc định thời không công bằng có thể gây ra:

a)

Starvation (chết đói tiến trình)

b)

Deadlock

c)

Context switch

d)

Race condition

107.

Một tiến trình bị “starvation” nghĩa là:

a)

Không bao giờ được cấp CPU dù vẫn sẵn sàng

b)

Đang bị treo bởi I/O

c)

Bị khóa vĩnh viễn

d)

Đang thực thi bình thường

108.

“Deadlock” xảy ra khi:

a)

Các tiến trình chờ lẫn nhau giữ tài nguyên mà không tiến triển được

b)

Một tiến trình chờ CPU

c)

Một tiến trình kết thúc sớm

d)

Tất cả tiến trình bị treo tạm thời

109.

Trong sơ đồ lập lịch tiến trình, khi tiến trình chuyển từ running sang ready, nguyên nhân thường là:

a)

Do có tiến trình ưu tiên cao hơn hoặc hết thời lượng CPU

b)

Do I/O hoàn tất

c)

Do tiến trình mới tạo

d)

Do kết thúc chương trình

110.

Ưu điểm chính của mô hình nhiều luồng trong cùng process là gì?

a)

Chia sẻ tài nguyên và tăng tốc độ xử lý song song

b)

Giảm tốc độ phản hồi

c)

Giảm độ phức tạp

d)

Tách biệt bộ nhớ

111.

Trong lập trình đa luồng, lỗi “race condition” thường xảy ra khi:

a)

Hai luồng truy cập cùng tài nguyên mà không đồng bộ

b)

Mỗi luồng có vùng nhớ riêng

c)

Các luồng không chia sẻ tài nguyên

d)

Luồng bị treo bởi kernel

112.

Một cách phổ biến để tránh “race condition” là:

a)

Sử dụng mutex hoặc semaphore để khóa tài nguyên

b)

Tắt chia sẻ bộ nhớ

c)

Giảm số luồng

d)

Sử dụng I/O delay

113.

Khi nhiều luồng chia sẻ cùng một vùng dữ liệu mà không có cơ chế bảo vệ, kết quả là:

a)

Không xác định (nondeterministic)

b)

Luôn đúng

c)

Luôn sai

d)

Không thực thi được

114.

Đặc điểm của thread trong mô hình One-to-One là:

a)

Mỗi thread người dùng có một thread nhân tương ứng

b)

Nhiều thread chia sẻ chung một nhân

c)

Tất cả thread chạy trong user mode

d)

Không thể block độc lập

115.

Trong mô hình Many-to-Many, ai quyết định số lượng thread nhân được tạo?

a)

Hệ điều hành

b)

Người dùng

c)

Compiler

d)

Scheduler của tiến trình

116.

Lợi ích của lập lịch đa cấp (multilevel queue scheduling) là:

a)

Phân loại tiến trình theo tính chất và ưu tiên riêng

b)

Mỗi tiến trình có ưu tiên bằng nhau

c)

Giảm tốc độ CPU

d)

Chỉ dành cho hệ thống đơn nhiệm

117.

Trong hàng đợi định thời, tiến trình tương tác (interactive process) thường được ưu tiên:

a)

Thời gian đáp ứng nhanh hơn (CPU short bursts)

b)

Thời gian chạy dài hơn

c)

Ưu tiên thấp nhất

d)

Chỉ chạy nền

118.

Tiến trình batch (chạy nền, không tương tác) thường được xếp vào:

a)

Hàng đợi ưu tiên thấp (background queue)

b)

Hàng đợi foreground

c)

Hàng đợi ưu tiên cao

d)

Hàng đợi thời gian thực

119.

Khi một tiến trình bị swap ra khỏi bộ nhớ chính, bộ định thời nào chịu trách nhiệm?

a)

Medium-term scheduler

b)

Long-term scheduler

c)

Short-term scheduler

d)

IO scheduler

120.

Khi tiến trình được swap trở lại bộ nhớ chính để chạy tiếp, nó chuyển từ:

a)

Đĩa → Bộ nhớ → Hàng đợi ready

b)

Ready → Waiting

c)

New → Running

d)

Terminated → Ready