wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

HỆ ĐIỀU HÀNH - BÀI 9

Total questions: 30

Worksheet time: 22mins

Name
Class
Date
1.

Cho đoạn code sau:

Hãy cho biết đoạn code dùng để làm gì?

a)

Thay đổi độ ưu tiên của tiến trình đang chạy (notepad.exe) trong Windows

b)

Tạo một tiến trình notepad.exe trong Windows

c)

Đồng bộ giữa hai tiến trình notepad.exe trong Windows

d)

Hủy một tiến trình đang chạy (notepad.exe) trong Windows

2.

Chương trình sau có gây rò rỉ bộ nhớ không?

a)

Có, vì con trỏ chưa được giải phóng khi kết thúc chương trình

b)

Có, nhưng chỉ khi chương trình chạy lâu dài

c)

Không, vì không có sự cấp phát bộ nhớ nào

d)

Không vì con trỏ đã được giải phóng khi kết thúc chương trình

3.

Kéo các API khi làm việc với tiến trình trong Windows dưới đây vào ô tương ứng với mô tả của chúng:

a)

Trả về mã lỗi nếu một thao tác thực hiện không thành công

1.

GetLastError()

b)

Tiến trình giải phóng tài nguyên được bảo vệ bởi Mutex

2.

ReleaseMutex()

c)

Tạo một Mutex để đồng bộ tiến trình

3.

CreateMutex()

d)

Tiến trình đợi trên Mutex để truy cập vào vùng tài nguyên được chia sẻ

4.

WaitForSingleObject()

4.

Hằng số nào thể hiện mức độ ưu tiên cao nhất của một tiến trình?

a)

HIGH_PRIORITY_CLASS

b)

ABOVE_NORMAL_PRIORITY_CLASS

c)

NORMAL_PRIORITY_CLASS

d)

IDLE_PRIORITY_CLASS

5.

Đâu là các vấn đề về bộ nhớ mà người lập trình cần chú ý viết một chương trình (chọn 2)?

a)

Vấn đề tràn bộ nhớ

b)

Vấn đề về khởi tạo giá trị cho các biến toàn cục

c)

Vấn đề về khởi tạo giá trị cho các biến cục bộ

d)

Vấn đề rò rỉ bộ nhớ

6.

API nào được sử dụng để tạo tiến trình trong Windows?

a)

CreateProcess()

b)

CreateThread()

c)

StartProcess()

d)

InitProcess()

7.

API nào sau đây được sử dụng để đợi trên Mutex khi tiến trình muốn truy cập vào vùng tài nguyên dùng chung?

a)

WaitForSingleObject()

b)

CloseHandle()

c)

CreateMutex()

d)

ReleaseMutex()

8.

Cho đoạn chương trình làm việc với tiến trình trên Windows như sau:

Hãy cho biết đoạn chương trình trên thực hiện thao tác gì?

a)

Đồng bộ giữa hai tiến trình chạy trong Windows

b)

Tạo một tiến trình cho một ứng dụng bất kỳ trong Windows

c)

Thay đổi độ ưu tiên của tiến trình đang chạy trong Windows

d)

Hủy một tiến trình đang chạy trong Windows

9.

Tại sao việc thay đổi độ ưu tiên của tiến trình là quan trọng?

a)

Giúp CPU hiệu quả hơn, tăng hiệu suất xử lý các chương trình quan trọng

b)

Giảm xung đột giữa tiến trình và hệ điều hành

c)

Giúp tiến trình chạy nhanh hơn mọi lúc

d)

Giúp tiến trình sử dụng ít RAM hơn

10.

Việc rò rỉ bộ nhớ thường xảy ra ở vùng nhớ nào nhất khi cấp cho tiến trình?

a)

Data

b)

Code

c)

Heap

d)

Stack

11.

Điều gì xảy ra khi một chương trình ghi vào vùng nhớ chưa được cấp phát?

a)

Không có vấn đề gì xảy ra

b)

Hệ điều hành tự động cấp phát vùng nhớ

c)

Lỗi lỗi truy cập bộ nhớ không hợp lệ

d)

Chương trình chạy nhanh hơn

12.

Chương trình sau gặp lỗi gì?

a)

Tràn bộ nhớ (Buffer Overflow)

b)

Không có lỗi

c)

Rò rỉ bộ nhớ

d)

Truy cập bộ nhớ không hợp lệ (Segmentation fault)

13.

Kéo các API làm việc với tiến trình trong Windows dưới đây vào ô tương ứng với mô tả của chúng:

a)

Thay đổi độ ưu tiên của tiến trình

1.

SetPriorityClass()

b)

Tạo một tiến trình

2.

CreateProcess()

c)

Đóng Handle của tiến trình đã tạo và giải phóng tài nguyên bị chiếm bởi tiến trình

3.

CloseHandle()

d)

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

4.

TerminateProcess()

14.

Kéo các API hoặc toán tử khi làm việc với tiến trình trong Windows dưới đây vào ô tương ứng với mô tả của chúng:

a)

Đóng và giải phóng tài nguyên được sở hữu bởi một tiến trình

1.

CloseHandle()

b)

Cấp phát vùng nhớ cho biến hoặc cấu trúc dữ liệu

2.

sizeof()

c)

Lấy về Handle của tiến trình hiện hành

3.

GetCurrentProcess()

d)

Xóa sạch vùng nhớ của một cấu trúc dữ liệu

4.

ZeroMemory()

15.

API nào sau đây được sử dụng để tiến trình giải phóng các tài nguyên được bảo vệ Mutex?

a)

SetPriorityClass()

b)

ReleaseMutex()

c)

WaitForSingleObject()

d)

CloseHandle()

16.

Hiện tượng tràn bộ nhớ xảy ra trong trường hợp nào sau đây:

a)

Tiến trình ghi dữ liệu vào vùng nhớ có kích thước nhỏ hơn số byte cần ghi

b)

Tiến trình truy cập ra ngoài phạm vi của mảng

c)

Một vòng lặp chạy vô hạn không giải phóng bộ nhớ

d)

Tiến trình truy xuất đến địa chỉ bộ nhớ chưa được cấp phát

17.

Công cụ nào sau đây có thể sử dụng để quan sát các vùng nhớ cho từng tiến trình?

a)

Resource Monitor

b)

VMMap

c)

Task Manager

d)

Windows Memory Diagnostic

18.

Chương trình sau có thể gây ra lỗi gì?

a)

Không có lỗi gì

b)

Truy cập bộ nhớ không hợp lệ (Segmentation fault)

c)

Rò rỉ bộ nhớ (Memory Leak)

d)

Tràn bộ nhớ (Buffer Overflow)

19.

Cho khai báo sau đây trong C:

char buffer[10];

Lệnh nào sau đây gây ra hoặc không gây ra lỗi tràn bộ nhớ? Kéo các đáp án vào ô tương ứng:

Categorize the following

strcpy(buffer, "Nguyen ly he dieu hanh - cong nghe thong tin!")

strcpy(buffer, "Cong nghe thong tin - ictu - thai nguyen")

strcpy(buffer, "Chao ban!")

strcpy(buffer, "Lap Trinh!")

Các lệnh gây ra tràn bộ nhớ:
Các lệnh không gây tràn bộ nhớ:
20.

Hãy kéo các câu lệnh gây ra các vấn đề về bộ nhớ tương ứng với các mô tả dưới đây:

a)

char buffer[3]; strcpy(buffer, "Cong nghe thong tin");

1.

Tràn bộ nhớ

b)

int a[4]; a[5] = 100;

2.

Truy cập bộ nhớ không hợp lệ

c)

int* heap = (int*)malloc(10 * sizeof(int)); heap = NULL;

3.

Rò rỉ bộ nhớ

21.

Chương trình sau có thể dẫn đến lỗi gì?

a)

Lỗi tràn bộ nhớ (Stack Overflow)

b)

Không có lỗi gì

c)

Lỗi rò rỉ bộ nhớ

d)

Không có vấn đề về bộ nhớ nhưng chạy vô hạn

22.

Hàm nào được sử dụng để hủy tiến trình trong Windows?

a)

ExitProcess()

b)

KillProcess()

c)

TerminateProcess()

d)

CloseProcess()

23.

Hậu quả của việc hủy tiến trình bất ngờ là gì?

a)

Tiến trình được lưu lại để chạy lần sau

b)

Hệ điều hành tự động phục hồi tiến trình

c)

Mất dữ liệu, rò rỉ bộ nhớ

d)

CPU bị giảm hiệu suất ngay lập tức

24.

Khi sử dụng API SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS) cho một tiến trình, điều gì xảy ra?

a)

Tiến trình được ưu tiên sử dụng CPU nhiều hơn

b)

Tiến trình bị giảm quyền truy cập CPU

c)

Tiến trình chuyển sang trạng thái dừng

d)

Tiến trình bị hủy ngay lập tức

25.

Cho đoạn chương trình làm việc với tiến trình trong Windows:

Hãy cho biết chương trình trên thực hiện khi nào?

a)

Đồng bộ giữa các tiến trình chạy trong Windows

b)

Hủy một tiến trình đang chạy trong Windows

c)

Tạo một tiến trình cho một ứng dụng bất kỳ trong Windows

d)

Thay đổi độ ưu tiên của tiến trình đang chạy trong Windows

26.

Chương trình sau có lỗi gì?

a)

Truy cập bộ nhớ không hợp lệ (Segmentation fault)

b)

Tràn bộ nhớ (Stack Overflow)

c)

Không có lỗi gì

d)

Rò rỉ bộ nhớ (Memory leak)

27.

Cho đoạn chương trình C như dưới đây. Hãy viết lệnh sử dụng hàm free vào vị trí ----------- để giải phóng bộ nhớ được cấp phát cho biến arr để tránh vấn đề rò rỉ bộ nhớ:

Lệnh cần viết:

(a)  

28.

Lệnh nào sau đây có thể gây dò rỉ bộ nhớ?

a)

float y=2.5;

b)

char ch='A'

c)

int* heap = (int*)malloc(10 * sizeof(int));

d)

int x =10;

29.

Cho đoạn chương trình làm việc với tiến trình trong Windows:

Hãy cho biết đoạn chương trình trên dùng để làm gì?

a)

Thay đổi độ ưu tiên của tiến trình đang chạy dựa vào Handle

b)

Tạo một tiến trình cho một ứng dụng bất kỳ trong Windows

c)

Hủy một tiến trình đang chạy trong Windows dựa vào Handle

d)

Đồng bộ giữa hai tiến trình chạy trong Windows dựa vào Handle

30.

Chương trình sau có xảy ra vấn đề về bộ nhớ không?

a)

Có, xảy ra vấn đề tranh chấp tài nguyên

b)

Không, chương trình chạy bình thường

c)

Có, xảy ra lỗi tràn bộ nhớ

d)

Có, xảy ra rò rỉ bộ nhớ