Trắc nghiệm: Tiến trình và lập lịch CPU
Phần nặng bài tập nhất của đề thi. Mỗi câu tính toán đều có sơ đồ Gantt và các bước ra số trong phần Chi tiết.
Chưa vững lý thuyết thì đọc Các thuật toán lập lịch tiến trình trước, trong đó có ví dụ tính tay cho FCFS, SJF và Round Robin.
- Turnaround time = thời điểm hoàn thành − thời điểm đến
- Waiting time = turnaround time − burst time
- Hoà nhau trong SJF: ưu tiên tiến trình đến trước. Hoà trong SRTF: giữ tiến trình đang chạy.
Chọn đáp án là biết đúng/sai ngay, bấm “Chi tiết” để xem giải thích.
- Câu 1fork()Cuối kỳ HĐH – SPKT
Kết quả của chương trình sau là gì?
main( ) { int a = 10; if ((fork( ) == 0)) a++; printf ("%d\n", a ); } - Câu 2Tiêu chí lập lịchCuối kỳ HĐH – SPKT
Một thuật toán lập lịch tối ưu để giảm thiểu thời gian chờ trung bình của một tập hợp tiến trình là _____
- Câu 3SRTFCuối kỳ HĐH – SPKT
Sử dụng thuật toán lập lịch SJF – preemptive cho các tiến trình theo thông tin dưới bảng. Thời gian chờ trung bình là bao nhiêu?
Process Arrival Time Burst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4
- Câu 4SJFCuối kỳ HĐH – SPKT
Sử dụng thuật toán lập lịch SJF – non-preemptive cho các tiến trình theo thông tin dưới bảng. Thời gian chờ trung bình là bao nhiêu?
Process Arrival Time Burst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4
- Câu 5Round RobinCuối kỳ HĐH – SPKT
Nếu khoảng thời gian quantum (time-slice) được sử dụng trong thuật toán lập lịch Round-robin nhiều hơn thời gian tối đa cần thiết để thực hiện bất kỳ tiến trình nào, thì thuật toán sẽ
- Câu 6PriorityCuối kỳ HĐH – SPKT
Xem xét tập các tiến trình với thời gian đến, thời gian nổ CPU và mức độ ưu tiên (0 là mức ưu tiên cao nhất). Không có quy trình nào có thời gian bùng nổ I/O. Thời gian chờ của tiến trình P1 khi dùng lập lịch ưu tiên có trưng dụng là bao nhiêu?
Process Arrival Time Burst Time Priority P1 0 11 2 P2 5 28 0 P3 12 2 3 P4 2 10 1 P5 9 16 4
- Câu 7SRTFCuối kỳ HĐH – SPKT
Xem xét các tiến trình CPU sau với thời gian đến và Burst Time, ngoại trừ tiến trình P4. Nếu thời gian chờ trung bình trên tất cả các tiến trình là 2 mili giây và thuật toán Shortest Remaining Time First được sử dụng, hãy tìm giá trị của x.
Process Arrival Time Burst Time P1 0 5 P2 1 1 P3 3 3 P4 4 x
- Câu 8Tiêu chí lập lịchCuối kỳ HĐH – SPKT
Tiêu chí nào sau đây không phải là tiêu chí tối ưu hóa trong thiết kế thuật toán lập lịch tiến trình CPU?
- Câu 9SRTFCuối kỳ HĐH – SPKT
Hệ điều hành sử dụng thuật toán lập lịch Shortest Remaining Time First (SRTF). Tổng thời gian chờ đợi cho tiến trình P2 là bao nhiêu?
Process Execution time Arrival time P1 20 0 P2 25 15 P3 10 30 P4 15 45
- Câu 10SRTFCuối kỳ HĐH – SPKT
Hệ điều hành sử dụng thuật toán lập lịch Shortest Remaining Time First (SRTF). Turnaround time trung bình cho các tiến trình này là bao nhiêu?
Process Arrival Time Burst Time P1 0 5 P2 1 3 P3 2 3 P4 4 1
- Câu 11ThroughputCuối kỳ HĐH – SPKT
Xét một tập hợp n nhiệm vụ với thời gian chạy đã biết r1, r2, …, rn sẽ được chạy trên máy đơn xử lý. Thuật toán lập lịch CPU nào sau đây sẽ dẫn đến throughput (thông lượng) tối đa?
- Câu 12Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Biểu đồ chuyển đổi trạng thái tiến trình có các cung: NEW → READY, READY → RUNNING, RUNNING → READY, RUNNING → BLOCKED, BLOCKED → READY, RUNNING → TERMINATED. Biểu đồ này là đại diện của ….
- Câu 13ThreadCuối kỳ HĐH – SPKT
Điều nào sau đây không được chia sẻ bởi tất cả các thread trong một tiến trình?
- I. Program Counter
- II. Stack
- III. Registers
- IV. Address space
- Câu 14SJFCuối kỳ HĐH – SPKT
Trên hệ thống sử dụng lập lịch SJF non-preemptive, các tiến trình có thời gian chạy dự kiến là 5, 18, 9 và 12 đang nằm trong hàng đợi sẵn sàng. Chúng nên được chạy theo thứ tự nào để giảm thiểu thời gian chờ đợi?
- Câu 15ThreadCuối kỳ HĐH – SPKT
Điều nào sau đây không được chia sẻ bởi các thread c ủa cùng một tiến trình?
- Câu 16Chọn nhiềuStarvationCuối kỳ HĐH – SPKT
Thuật toán lập lịch nào sau đây có thể gây starvation? (chọn tất cả đáp án đúng)
- Câu 17Tiêu chí lập lịchCuối kỳ HĐH – SPKT
Khái niệm nào mô tả tổng thời gian để thực hiện xong một tiến trình cụ thể?
- Câu 18Tiêu chí lập lịchCuối kỳ HĐH – SPKT
Phát biểu nào đúng về tiêu chí tối ưu của thuật toán lập lịch?
- Câu 19Multilevel QueueCuối kỳ HĐH – SPKT
Trong Multilevel Queue Scheduling, loại tiến trình nào có độ ưu tiên cao nhất?
- Câu 20Chọn nhiềuLập lịch CPUCuối kỳ HĐH – SPKT
CPU bắt buộc phải lập lịch lại khi tiến trình rơi vào trường hợp nào? (chọn tất cả đáp án đúng)
- Câu 21Lập lịch CPUCuối kỳ HĐH – SPKT
Thuật toán lập lịch nào sau đây là preemptive?
- Câu 22SJFCuối kỳ HĐH – SPKT
Cho hai phát biểu về Shortest-Job-First (SJF):
- S1: Nó cho thời gian chờ trung bình nhỏ nhất
- S2: Nó có thể gây starvation
Phát biểu nào sau đây là sai?
- Câu 23SRTFCuối kỳ HĐH – SPKT
Dùng thuật toán lập lịch SJF preemptive (SRTF), thời gian chờ trung bình của ba tiến trình trong bảng là bao nhiêu?
Process Arrival time Burst Time P0 0 ms 9 ms P1 1 ms 4 ms P2 2 ms 9 ms
- Câu 24Tiến trìnhCuối kỳ HĐH – SPKT
Mỗi tiến trình trong hệ điều hành đều có _____ của riêng nó.
- Câu 25Tiến trìnhCuối kỳ HĐH – SPKT
Một tiến trình có thể bị kết thúc vì lý do nào?
- Câu 26Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Tiến trình ở trạng thái ready nghĩa là gì?
- Câu 27IPCCuối kỳ HĐH – SPKT
Interprocess communication là gì?
- Câu 28fork()Cuối kỳ HĐH – SPKT
Tiến trình chạy đoạn mã dưới đây. Tổng số tiến trình con được tạo ra là bao nhiêu?
for (i = 0; i < n; i++) fork(); - Câu 29fork()Cuối kỳ HĐH – SPKT
Xét đoạn mã dưới đây. Gọi u, v là hai giá trị do tiến trình cha in ra, x, y là hai giá trị do tiến trình con in ra. Phát biểu nào đúng?
if (fork() == 0) { a = a + 5; printf("%d, %d\n", a, &a); } else { a = a - 5; printf("%d, %d\n", a, &a); } - Câu 30Tiến trìnhCuối kỳ HĐH – SPKT
Ngăn xếp (stack) của một tiến trình không chứa thứ nào sau đây?
- Câu 31System callCuối kỳ HĐH – SPKT
System call nào được tiến trình cha dùng để biết tiến trình con đã kết thúc?
- Câu 32PCBCuối kỳ HĐH – SPKT
Địa chỉ của lệnh kế tiếp mà tiến trình hiện tại sẽ thực thi được cung cấp bởi thành phần nào?
- Câu 33Hàng đợiCuối kỳ HĐH – SPKT
Trong các hàng đợi của tiến trình, cái nào không tồn tại?
- Câu 34Hàng đợiCuối kỳ HĐH – SPKT
Khi tiến trình phát ra một yêu cầu I/O thì điều gì xảy ra?
- Câu 35PCBCuối kỳ HĐH – SPKT
Process Control Block (PCB) chứa thứ nào sau đây?
- Câu 36Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Điều gì định nghĩa trạng thái của một tiến trình?
- Câu 37Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Cặp nào sau đây đều là trạng thái của một tiến trình?
- Câu 38IPCCuối kỳ HĐH – SPKT
Hai mô hình giao tiếp giữa các tiến trình (IPC) là gì?
- Câu 39Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Hành động nào chuyển tiến trình từ trạng thái waiting sang trạng thái ready?
- Câu 40IPCCuối kỳ HĐH – SPKT
Trong cài đặt liên kết truyền thông (communication link) giữa các tiến trình, đâu là liên kết logic?
- Câu 41fork()Cuối kỳ HĐH – SPKT
Đầu ra tại LINE A của chương trình dưới đây là gì?
int value = 5; int main() { pid_t pid; pid = fork(); if (pid == 0) { /* child process */ value += 15; return 0; } else if (pid > 0) { /* parent process */ wait(NULL); printf("PARENT: value = %d", value); /* LINE A */ return 0; } } - Câu 42fork()Cuối kỳ HĐH – SPKT
Xác định giá trị của pid tại các dòng A, B, C, D. Giả sử pid thật của cha là 2600 và của con là 2603.
pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); return 1; } else if (pid == 0) { /* child process */ pid1 = getpid(); printf("child: pid = %d", pid); /* A */ printf("child: pid1 = %d", pid1); /* B */ } else { /* parent process */ pid1 = getpid(); printf("parent: pid = %d", pid); /* C */ printf("parent: pid1 = %d", pid1); /* D */ wait(NULL); } - Câu 43Chọn nhiềuThreadCuối kỳ HĐH – SPKT
Thành phần nào của trạng thái chương trình được chia sẻ giữa các thread trong một tiến trình đa luồng? (chọn tất cả đáp án đúng)
- Câu 44fork()Cuối kỳ HĐH – SPKT
Đoạn mã dưới đây tạo ra bao nhiêu tiến trình và bao nhiêu luồng (tính cả tiến trình ban đầu)?
pid_t pid; pid = fork(); if (pid == 0) { /* child process */ fork(); thread_create( . . .); } fork(); - Câu 45Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Tiến trình có bao nhiêu trạng thái?
- Câu 46Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Khi tiến trình được cấp CPU và tài nguyên thì nó chuyển từ trạng thái nào sang trạng thái nào?
- Câu 47Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Tiến trình đang ở trạng thái Running không thể chuyển sang trạng thái nào sau đây?
- Câu 48Trạng thái tiến trìnhCuối kỳ HĐH – SPKT
Tiến trình đang Running và hết hạn thời gian được cấp (time slice expired) thì chuyển sang trạng thái nào?
- Câu 49FCFSCuối kỳ HĐH – SPKT
Tính thời gian chờ của P1, P2, P3, P4 khi dùng thuật toán FCFS (các tiến trình cùng đến tại thời điểm 0).
Tiến trình Thời gian xử lý P1 8 P2 4 P3 6 P4 2
- Câu 50SJFCuối kỳ HĐH – SPKT
Tính thời gian chờ của P1, P2, P3, P4 khi dùng SJF non-preemptive.
Tiến trình Thời gian xử lý Thời gian đến P1 8 0 P2 4 3 P3 6 5 P4 2 9
- Câu 51SRTFCuối kỳ HĐH – SPKT
Tính thời gian chờ của P1, P2, P3, P4 khi dùng SJF preemptive (SRTF).
Tiến trình Thời gian xử lý Thời gian đến P1 8 0 P2 4 3 P3 6 5 P4 2 9
- Câu 52Round RobinCuối kỳ HĐH – SPKT
Tính thời gian chờ của P1, P2, P3, P4 khi dùng Round Robin với quantum = 3 (các tiến trình cùng đến tại thời điểm 0).
Tiến trình Thời gian xử lý quantum = 3 P1 8 P2 4 P3 6 P4 2
- Câu 53Multilevel Feedback QueueCuối kỳ HĐH – SPKT
Tính thời gian chờ của P1, P2, P3, P4 với Multilevel Feedback Queue: hàng 1 quantum = 2, hàng 2 quantum = 4, hàng 3 FCFS (các tiến trình cùng đến tại thời điểm 0).
Tiến trình Thời gian xử lý Hàng 1: quantum = 2 P1 8 Hàng 2: quantum = 4 P2 4 Hàng 3: FCFS P3 7 P4 2
- Câu 54fork()Cuối kỳ HĐH – SPKT
Khi dùng fork() để tạo tiến trình mới, thành phần nào thật sự được chia sẻ giữa tiến trình cha và tiến trình con?