BÀI TẬP HỆ ĐIỀU HÀNH
Họ tên: Nguyễn Thanh Hiếu
MSSV: 20521328
Chương 1
A. Câu hỏi trắc nghiệm
1. Dưới góc độ hình thức xử lý, hệ thống mà mỗi processor có bộ nhớ riêng, giao tiếp với
nhau qua các kênh nối như mạng, bus tốc độ cao và người dung chỉ thấy như một hệ thống
đơn nhất. Đó là hệ thống nào?
A. Hệ thống song song
B. Hệ thống phân tán
C. Hệ thống nhúng thời gian thực
D. Hệ thống chia sẻ thời gian
2. Chọn các cụm từ thích hợp để điền vào dấu … trong phát biểu sau: Hệ điều hành là …
trung gian giữa phần cứng máy tính và người sử dụng, có chức năng điều khiển và phối
hợp việc sử dụng … và cung cấp các dịch vụ cơ bản cho các ứng dụng
A. phần mềm - ứng dụng
B. chương trình - phần cứng
C. chương trình - phần mềm
D. hệ thống - phần mềm
3. Đặc điểm nào dưới đây KHÔNG phải là đặc điểm của hệ thống đa chương
A. Nhiều công việc được nạp đồng thời vào bộ nhớ chính
B. Tận dụng được thời gian rảnh, tăng hiệu suất sử dụng CPU
C. Khi một tiến trình thực hiện I/O, một tiến trình khác được thực
D. Có bộ giám sát thường trực
4. Lựa chọn nào dưới đây KHÔNG phải là một yêu cầu của hệ thống chia sẻ thời gian?
A. Quản lý bộ nhớ
B. Quản lý tiến trình
C. Quản lý kết nối giữa các máy tính
D. Quản lý hệ thống lưu trữ
B. Câu hỏi tự luận
1. Nêu cấu trúc hệ thống máy tính?
- Cấu trúc của hệ thống máy tính là:
+ Phần cứng (hardware): Bao gồm các tài nguyên cơ bản của máy tính như CPU, bộ nhớ,
các thiết bị I/O
+ Hệ điều hành (operating system): Phân phối tài nguyên, điều khiển và phối hợp các hoạt
động của các chương trình trong hệ thống.
+ Chương trình ứng dụng (application programs): Sử dụng hệ thống tài nguyên để giải
quyết một bài toán tính tốn nào đó của người sử dụng.
+ Users (people, machines, other computers): Người dùng
2. HĐH có những chức năng chính nào?
- Chức năng chính của hệ điều hành là:
+ Phân chia thời gian xử lý và định thời CPU
+ Phối hợp và đồng bộ hoạt động giữa các processes (coordination & synchronization)
+ Quản lý tài nguyên hệ thống (thiết bị I/O, bộ nhớ, file chứa dữ liệu,…)
+ Kiểm soát truy cập, bảo vệ hệ thống
+ Duy trì sự nhất quán (integrity) của hệ thống, kiểm soát lỗi và phục hồi hệ thống khi có
lỗi (error recovery)
+ Cung cấp giao diện làm việc cho users
3. Theo góc độ hệ thống xử lý, HĐH được phân thành mấy loại? Kể tên?
- Theo góc độ hệ thống xử lý, HĐH được phân thành 5 loại:
+ Hệ thống xử lý theo chương trinh gồm hệ thống đơn chương (uniprograming OS) và hệ
thống đa chương (multiprogramming OS)
+ Hệ thống chia sẻ thời gian
+ Hệ thống song song
+ Hệ thống phân tán
+ Hệ thống nhúng thời gian thực
4. Những yêu cầu của hệ điều hành đối với hệ thống chia sẻ thời gian?
- Những yêu cầu của HĐH đối với hệ thống chia sẻ thời gian là:
+ Định thời công việc (job scheduling)
+ Quản lý bộ nhớ (memory management)
+ Quản lý các quá trình (process management)
+ Quản lý hệ thống file, hệ thống lưu trữ
+ Cấp phát hợp lý các tài nguyên
+ Bảo vệ (protection)
5. Định nghĩa hệ điều hành?
- Hệ điều hành là chương trình trung gian giữa phần cứng máy tính và người sử dụng, có
chức năng điều khiển và phối hợp việc sử dụng phần cứng và cung cấp các dịch vụ cơ bản
cho các ứng dụng.
Chương 2
1. Nêu các thành phần chính của hệ điều hành?
+ Quản lý tiến trình
+ Quản lý bộ nhớ chính
+ Quản lý file
+ Quản lý hệ thống I/O
+ Quản lý hệ thống lưu trữ thứ cấp
+ Hệ thống bảo vệ
+ Hệ thống thông dịch lệnh
2. Nêu các dịch vụ mà hệ điều hành cung cấp?
+ Thực thi chương trình
+ Thực hiện các thao tác I/O theo yêu cầu của chương trình
+ Các thao tác trên hệ thống file
+ Trao đổi thơng tin giữa các tiến trình qua hai cách: Chia sẻ bộ nhớ (Shared memory) và
Chuyển thông điệp (Message passing)
+ Phát hiện lỗi
+ Ngồi ra cịn các dịch vụ giúp tăng hiệu suất của hệ thống như: Cấp phát tài nguyên
(resource allocation), Kế toán (accounting), Bảo vệ (protection), An ninh (security)
3. Lời gọi hệ thống là gì? Nêu một vài ví dụ?
- Lời gọi hệ thống:
+ Dùng để giao tiếp giữa tiến trình và hệ điều hành
+ Cung cấp giao diện giữa tiến trình và hệ điều hành
+ Thơng thường ở dạng thư viện nhị phân hay giống như các lệnh hợp ngữ
+ Trong các ngơn ngữ lập trình cấp cao, một số thư viện lập trình được xây dựng dựa trên
các thư viện hệ thống (ví dụ Windows API, thư viện GNU C/C++ như glibc, glibc++, …)
- Ví dụ: Lời gọi hệ thống trong UNIX như: exit(), wait(), open(),read(), write(), close(),…
3. Có mấy dạng cấu trúc hệ điều hành? Kể tên?
- Có 5 dạng cấu trúc hệ điều hanh:
+ Cấu trúc Monolithic - Original UNIX
+ Cấu trúc Layered Approach
+ Cấu trúc Microkernels
+ Cấu trúc Modules
+ Cấu trúc Hybrid Systems
4. Tiến trình là gì? Các nhiệm vụ chính của thành phần quản lý tiến trình?
- Tiến trình là một chương trình đang xử lý, sỡ hữu một con trỏ lệnh, tập các thanh ghi và
các biến. Để hoàn thành tác vụ của mình, một tiến trình có thể cần đến một số tài nguyên
như CPU, bộ nhớ chính, các tập tin và thiết bị nhập/xuất.
- Nhiệm vụ chính của thành phần quản lý tiến trình:
+ Tạo và hủy tiến trình
+ Tạm dừng/ thực thi tiếp tiến trình
+ Cung cấp các cơ chế: Đồng bộ hoạt động các tiến trinh, Giao tiếp giữa các tiến trình,
Khống chế tắc nghẽn
Chương 3
A. BÀI TẬP
1. Nêu cụ thể các trạng thái của tiến trình?
/* test.c */
int main(int argc, char** argv)
{
printf(“Hello world\n");
scanf(“ Nhập c = %d”,&c);
exit(0);
}
- new -> ready -> running -> waiting (do chờ I/O khi gọi printf) -> ready -> running ->
terminated
2. Chương trình này in ra những chữ gì?
#include <stdio.h>
#include <unistd.h>
int main (int argc, char *argv[]){
int pid;
pid = fork();
printf(“ so 1”);
printf(“ so 2”);
fork();
if (pid < 0){
printf(“hello”);
fork();
}else
fork();
printf(“bye”);}
- 2 “ so 1”, 2 “ so 2”, 8 “bye”
B. Câu hỏi tự luận
1. Process control block chứa những thơng tin gì?
- Process control block (PCB) gồm:
+ Trạng thái tiến trình: new, ready, running,…
+ Bộ đếm chương trình
+ Các thanh ghi
+ Thông tin lập thời biểu CPU: độ ưu tiên, …
+ Thông tin quản lý bộ nhớ
+ Thông tin: lượng CPU, thời gian sử dụng,
+ Thông tin trạng thái I/O
2. Các tác vụ đối với tiến trình?
- Tạo tiến trình mới:
+ Một tiến trình có thể tạo nhiều tiến trình mới thơng qua một lời gọi hệ thống createprocess
+ Tiến trình được tạo là tiến trình con của tiến trình tạo (tiến trình cha)
+ Tiến trình con nhận tài nguyên: từ HĐH hoặc từ tiến trình cha
+ Chia sẻ tài nguyên của tiến trình cha
+ Trình tự thực thi
- Kết thúc tiến trình:
+ Tiến trình tự kết thúc
+ Tiến trình kết thúc do tiến trình khác (có đủ quyền, vd: tiến trình cha của nó)
+ Hệ điều hành thu hồi tất cả các tài nguyên của tiến trình kết thúc (vùng nhớ, I/O buffer,…)
3. Tại sao phải định thời, có mấy loại bộ định thời?
- Phải định thời bởi vì:
+ Đa chương: Có vài tiến trình chạy tại các thời điểm với mục tiêu: tận dụng tối đa CPU
+ Chia thời: User tương tác với mỗi chương trình đang thực thi với mục tiêu: tối thiểu thời
gian đáp ứng
- Có 3 loại bộ định thời
+ Bộ định thời công việc (Job scheduler) hay bộ định thời dài (long-term scheduler)
+ Bộ định thời CPU hay bộ định thời ngắn
+ Bộ định thời trung gian