WorksheetsTrắc nghiệm 7 8 9 HĐH
Total questions: 43
Worksheet time: 23mins
Trên hệ điều hành Ubuntu, một user đã tạo một file kịch bản có tên script1.sh trong thư mục hiện hành nhưng khi thực thi bằng lệnh ./script1.sh thì hệ thống báo lỗi không tìm thấy file hoặc thông báo:"Permission denied". Nguyên nhân có thể là:
Người dùng quên không tạo file
Người dùng gõ sai tên file
Người dùng chưa cấp quyền thực thi cho kịch bản
File bị lỗi
Đâu là khai báo và khởi tại mảng chứa danh sách các file và thư mục con trong thư mục /home/nmhung/exam đúng trong kịch bản shell bash trên ubuntu?
files=/home/nmhung/exam/
files=(/home/nmhung/exam/*)
files=/home/nmhung
files=(/nmhung/exam/*)
Cho mảng trong shell bash trên Ubuntu được khai báo như sau:
arr=(Exam Desktop Downloads)
Để lấy danh sách các phần tử trong mảng sử dụng cú pháp nào? (chọn 2)
${arr[@]}
${arr[*]}
len(arr)
${arr[#]}
Đâu là phép toán đúng để thêm một phần tử vào mảng arr trong shell bash trên Ubuntu?
arr+=("item")
arr.add("item")
arr=arr + ("item")
arr=+("item")
Trên shell bash của hệ điều hành Ubuntu:
Hãy cho biết sau khi thực hiện kịch bản trên giá trị của mảng arr gồm các phần tử là:
banana cherry mango
apple banana mango
apple banana cherry
apple cherry mango
Trên hệ điều hành Ubuntu, đâu KHÔNG phải là ưu điểm của kịch bản shell (shell script) là:
Một tập các lệnh trong kịch bản có thể thực thi nhiều lần mà không cần gõ lại
Tiết kiệm thời gian gõ lệnh thủ công
Giúp thực thi tự động một tập các lệnh theo một trình tự nhất định
Giúp thực thi các lệnh nhanh hơn
Đâu là khai báo và khởi tạo mảng gồm 4 phần tử đúng trong kịch bản shell bash trên Ubuntu? (chọn 2)
arr=(exam bt Desktop Downloads)
arr=("exam" "bt" "Desktop" "Downloads")
arr=[exam bt Desktop Downloads]
arr=(exam, bt, Desktop, Downloads)
Cho danh sách các tiến trình và thời gian thực thi tương ứng trong bảng sau:
Nếu bộ lập lịch sử dụng chiến lược công việc ngắn nhất thì tiến trình nào được thực thi đầu tiên?
Giả sử, tất cả các tiến trình đều vào danh sách sẵn sàng cùng một thời điểm.
P1
P2
P3
P4
Cho danh sách các tiến trình và thời gian thực thi tương ứng trong bảng sau:
Nếu bộ lập lịch sử dụng chiến lược công việc ngắn nhất thì tiến trình nào được thực thi cuối cùng?
Giả sử, tất cả các tiến trình đều vào danh sách sẵn sàng cùng một thời điểm.
P1
P2
P3
P4
Nếu một hệ thống gồm các công việc được xử lý theo lô và không có tương tác với môi trường bên ngoài thì nên sử dụng thuật toán lập lịch nào?
Công việc ngắn nhất (Shortest Job First)
Hàng đợi đa mức (Multiple Queues)
Xoay vòng (Round-Robin)
Ưu tiên (Priority)
Nếu các tiến trình được thực thi luân phiên nhau với một khoảng thời gian đều đặn thì bộ lập lịch sử dụng thuật toán nào?
Công việc ngắn nhất (Shortest Job First)
Dựa vào độ ưu tiên (Priority)
Hàng đợi đa mức (Multiple Queues)
Xoay vòng (Round-Robin)
Cho hình ảnh hệ điều hành cấp phát bộ nhớ cho tiến trình như hình dưới đây. Khi thực thi chương trình, các biến toàn cục được cấp phát trong vùng nhớ nào?
heap
stack
code
data
Trong quá trình thực thi một tiến trình, những vùng nhớ nào được cấp phát cho tiến trình này có kích thước KHÔNG cố định? (chọn 2)
code
data
stack
heap
: Giả sử các tiến trình được phân vào các lớp hàng đợi với các thuật toán lập lịch như sau: Nếu người sử dụng chạy một chương trình chơi Game thì sẽ được xếp vào hàng đợi nào?
Q1
Q2
Q3
Nếu CPU lựa chọn các tiến trình để thực thi theo thứ tự ưu tiên được xác định trước thì bộ lập lịch sử dụng thuật toán nào?
Dựa vào Độ ưu tiên (Priority)
Xoay vòng (Round-Robin)
Đa hàng đợi (Multiple Queues)
Công việc ngắn nhất (Shortest Job First)
Tiến trình là gì?
Một thiết bị được cắm vào máy tính (ví dụ chuột)
Một file chương trình được tải về nhưng chưa được cài đặt
Một chương trình ứng dụng được cài đặt trên máy tính
Một chuong trình được thực thi bởi CPU
Khi một người dùng chạy một chương trình ứng dụng 2 lần riêng biệt (Mở 2 cửa sổ riêng biệt) thì bộ nhớ của 2 chương trình được cấp phát trong bộ nhớ RAM như thế nào?
Vung nhớ code dùng cho 2 tiến trình, các vung data heap, stack là riêng biệt
Các vùng nhớ heap, stack, data của mỗi tiến trình là dùng chung
Các vùng nhớ code, data dùng chung cho 2 tiến trình, các vùng heap, stack là riêng biệt
Các vùng nhớ heap, stack, code, data của mỗi tiến trình là riêng biệt
API nào được dùng đẻ tạo tiến trình trong Windows?
Create Thread()
CreatProcess()
StarProcess()
InitProcess()
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?
ReleaseMutex()
WaitForSingleObject()
CreateMutex()
CloseHandle()
Hậu quả của việc hủy tiến trình bất ngờ là gì?
Mất dữ liệu, rò rỉ bộ nhớ
CPU bị giảm hiệu suất ngay lập tức
Hệ điều hành tự động phục hồi tiến trình
Tiến trình được lưu lại để chạy lần sau
Khi sử dụng API SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS) cho một tiến trình, điều gì xảy ra?
Tiến trình chuyển sang trạng thái dừng
Tiến trình bị hủy ngay lập tức
Tiến trình được ưu tiên sử dụng CPU nhiều hơn
Tiến trình bị giảm quyền truy cập CPU
Việc rò rỉ bộ nhớ thường xảy ra ở vùng nhớ nào nhất khi cấp phát cho tiến trình?
Stack
Heap
Code
Data
Hằng số nào thể hiện mức độ ưu tiên cao nhất của một tiến trình?
ABOVE_NORMAL_PRIORITY_CLASS
NORMAL_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
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?
Resource Monitor
Task Manager
VMMap
Windows Memory Diagnostic
Đ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?
Chương trình chạy nhanh hơn
Hệ điều hành tự động cấp phát vùng nhớ
Lỗi lỗi truy cập bộ nhớ không hợp lệ
Không có vấn đề gì xảy ra
Lệnh nào sau đây có thể gây dò rỉ bộ nhớ?
int x = 10;
int* heap = (int*)malloc(10 * sizeof(int));
char ch = 'A';
float y = 2.5;
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?
ReleaseMutex()
WaitForSingleObject()
SetPriorityClass()
CloseHandle()
Hiện tượng tràn bộ nhớ xảy ra trong trường hợp nào sau đây:
Tiến trình truy cập ra ngoài phạm vi của mảng
Tiến trình truy xuất đến địa chỉ bộ nhớ chưa được cấp phát
Một vòng lặp chạy vô hạn không giải phóng bộ nhớ
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
Tại sao việc thay đổi độ ưu tiên của tiến trình là quan trọng?
Giúp tiến trình sử dụng ít RAM hơn
Giúp tiến trình chạy nhanh hơn mọi lúc
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
Giảm xung đột giữa tiến trình và hệ điều hành
Hàm nào được sử dụng để hủy tiến trình trong Windows?
TerminateProcess()
ExitProcess()
CloseProcess()
KillProcess()
Đâ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)?
Vấn đề về khởi tạo giá trị cho các biến toàn cục
Vấn đề rò rỉ bộ nhớ
Vấn đề tràn bộ nhớ
Vấn đề về khởi tạo giá trị cho các biến cục bộ
Hãy cho biết đoạn code dùng để làm gì?
Tạo một tiến trình notepad.exe trong Windows
Thay đổi độ ưu tiên của tiến trình đang chạy (notepad.exe) trong Windows
Đồng bộ giữa hai tiến trình notepad.exe trong Windows
Hủy một tiến trình đang chạy (notepad.exe) trong Windows
Có, vì con trỏ chưa được giải phóng khi kết thúc chương trình
Không, vì không có sự cấp phát bộ nhớ nào
Có, nhưng chỉ khi chương trình chạy lâu dài
Không vì con trỏ đã được giải phóng khi kết thúc chương trình
Chương trình sau có thể dẫn đến lỗi gì?
Lỗi tràn bộ nhớ (Stack Overflow)
Không có vấn đề về bộ nhớ nhưng chạy vô hạn
Không có lỗi gì
Lỗi rò rỉ bộ nhớ
Chương trình sau có thể gây ra lỗi gì?
Không có lỗi gì
Rò rỉ bộ nhớ (Memory Leak)
Tràn bộ nhớ (Buffer Overflow)
Truy cập bộ nhớ không hợp lệ (Segmentation fault)f
Đồng bộ giữa hai tiến trình chạy trong Windows
Thay đổi độ ưu tiên của tiến trình đang chạy trong Windows
Hủy một tiến trình đang chạy trong Windows
Tạo một tiến trình cho một ứng dụng bất kỳ trong Windows
Tràn bộ nhớ (Buffer Overflow)
Rò rỉ bộ nhớ
Không có lỗi
Truy cập bộ nhớ không hợp lệ (Segmentation fault)
Tràn bộ nhớ (Stack Overflow)
Không có lỗi gì
Rò rỉ bộ nhớ (Memory leak)
Truy cập bộ nhớ không hợp lệ (Segmentation fault)
Đồng bộ giữa các tiến trình chạy trong Windows
Thay đổi độ ưu tiên của tiến trình đang chạy trong Windows
Tạo một tiến trình cho một ứng dụng bất kỳ trong Windows
Hủy một tiến trình đang chạy trong Windows
Thay đổi độ ưu tiên của tiến trình đang chạy dựa vào Handle
Hủy một tiến trình đang chạy trong Windows dựa vào Handle
Đồng bộ giữa hai tiến trình chạy trong Windows dựa vào Handle
Tạo một tiến trình cho một ứng dụng bất kỳ trong Windows
Có, xảy ra lỗi tràn bộ nhớ
Có, xảy ra vấn đề tranh chấp tài nguyên
Có, xảy ra rò rỉ bộ nhớ
Không, chương trình chạy bình thường
