Tải bản đầy đủ (.pdf) (4 trang)

Project_Ct178 (1).Pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (488.44 KB, 4 trang )

CT178 – Nguyên lý hệ điều hành

1

PROJECT - NGUYÊN LÝ HỆ ĐIỀU HÀNH
Học kỳ 1 – 2022-2023

Máy ảo sử dụng: Ubuntu VM
Các file cần nộp
- 01 báo cáo mô tả chi tiết cách giải quyết các vấn đề nêu lên trong project (kể cả hình ảnh minh họa
kết quả và các lệnh anh/chị thực hiện theo đúng trình tự). Tên file là CT178_MSSV_HoTen
- Tất cả code (cả mức kernel và user) có liên quan
Lưu ý:
- Khơng nén/share file khi nộp lên GG Classroom
- File báo cáo cần có Họ tên và MSSV và phần tuyên bố như bên dưới
- Code cần có chú thích rõ ràng, đầy đủ

HỌ VÀ TÊN:………………………………………….MSSV:……………………..
Tun bố: Project này là do chính tơi, Họ và tên SV (MSSV:…………….), tự thực hiện, không
sao chép của bất kỳ ai. Nếu có bất cứ sao chép nào, tơi hồn toàn chịu trách nhiệm.

PHẦN 1: XÂY DỰNG LINUX KERNEL (2.0 điểm)
Thực hiện ở chế độ người dùng root (root user)
$su A. CHUẨN BỊ LINUX KERNEL CODE (phần hướng dẫn dưới đây thực hiện trên CentOS. Tuy nhiên, sinh
viên cần thực hiện trên Ubuntu)
1. Download và cài đặt tool cần thiết vào hệ thống
Nếu thực hiện ở CentOS:
#yum install -y gcc ncurses-devel make wget
#yum apt-get install -y gcc openssl-devel
#yum apt-get install -y gcc elfutils-libelf-devel
#yum apt-get install bison


#yum apt-get install flex
Nếu thực hiện ở Ubuntu:
$sudo apt-get install -y gcc libncurses5-dev make wget
$sudo apt-get install -y gcc libssl-dev
$sudo apt-get install bison
$sudo apt-get install flex
2. Xác định phiên bản hiện tại của kernel:
# uname –r
Khoa Công nghệ Thông tin và Truyền thông, Đại học Cần Thơ

GV: Lâm Nhựt Khang


CT178 – Nguyên lý hệ điều hành

2

Kết quả sẽ có dạng như (đây chỉ là ví dụ minh họa, thực tế sẽ khác): 4.4.0-31-generic (Ubuntu)
Kết quả sẽ có dạng như (đây chỉ là ví dụ minh họa, thực tế sẽ khác): 3.10.0-693el7.x86-64 (CentOS)
3. Truy cập hoặc và download source code của
kerenl hiện tại. Kế tiếp, download kernel 5.9 và giải nén source code:
# wget /># tar xvzf linux-5.9.tar.gz
(chú ý: thay đổi tên kernel phù hợp)
B. CẤU HÌNH KERNEL MỚI
1. Đảm bảo đường dẫn hiện tại ở ~/linux-5.9 và “linux-5.9” ở top directory của kernel source.
2. Tạo file cấu hình (config file)
# make menuconfig
Chú ý, khơng thay đổi thơng tin gì cả. Nhấn ESC để save và thốt khỏi menu cấu hình (configuration menu).
File cấu hình sẽ được tạo ra.
C. BIÊN DỊCH KERNEL

1. Tại ~/linux-5.9, tạo kernel image nén (compressed kernel image)
# make –j4
2. Biên dịch kernel modules:
# make modules
D. CÀI ĐẶT KERNEL
1. Cài đặt kernel modules
# make modules_install
2. Cài đặt the kernel
# make install
E. THAY ĐỔI FILE CẤU HÌNH GRUB (GRUB CONFIGURATION FILE)
Thay đổi file cấu hình grub:
# vim /etc/default/grub
Thực hiện các thay đổi sau:
GRUB_DEFAULT=0
GRUB_TIMEOUT=25
F. REBOOT VM
1. Reboot kernel mới:
# reboot
2. Sau khi boot, kiểm tra thông tin kernel mới có đúng chưa:
# uname -r
Kết quả sẽ có dạng: 5.9

Khoa Công nghệ Thông tin và Truyền thông, Đại học Cần Thơ

GV: Lâm Nhựt Khang


CT178 – Nguyên lý hệ điều hành

3


PHẦN 2: THÊM LỜI GỌI HỆ THỐNG VÀO LINUX KERNEL (2.0 điểm)
Thực hiện thêm lời gọi hệ thống helloworld vào Linux kernel. Lời gọi hệ thống thực hiện in ra thông điệp
“Xin chao. Ten toi la XXX ” vào syslog (XXX là tên và MSSV của anh/chị). Anh/chị cần cài đặt lời gọi hệ thống
ở mức kernel và viết một chương trình ở mức người dùng (user-level) để kiểm tra lời gọi hệ thống đã tạo.
Anh/chị tham khảo các tài liệu sau:
1. />2. />3. />4. />
PHẦN 3: ĐỊNH THỜI CPU (3.0 điểm)
Anh/chị viết chương trình tên MSSVdtcpu.c để thực hiện các thuật tốn định thời CPU sau: FCFS, Priority
trưng dụng, và Round Robin. Chương trình MSSVdtcpu.c sẽ nhận vào các tham số của n tiến trình. Mỗi bộ định
thời sẽ tạo một biểu đồ Gantt thể hiện trạng thái của tiến trình (dạng chuỗi string): sử dụng R cho trạng thái
running và W cho trạng thái waiting. Cuối cùng, chương trình sẽ thực hiện tính tốn các giá trị trung bình của
thời gian waiting time, respond time và turnaround time của mỗi bộ định thời tương ứng.
Mơ tả chương trình:
Chương trình sẽ cho phép người dùng nhập vào số lượng tiến trình n
Sau đó chương trình sẽ cho phép người dùng nhận vào (n x 2)+1 tham số
q x1 y1 x2 y2 …. xn yn
trong đó q là giá trị quantum sử dụng cho định thời Round Robin, xi và yi lần lượt là thời gian đến hệ thống và
thời gian chiếm dụng CPU của tiến trình i.
Output của chương trình có dạng như sau:
- Sử dụng 1 dòng “********************************” để phân tách giữa các bộ định thời
- Sử dụng 1 dịng để thơng báo thuật tốn định thời sử dụng. Ví dụ “Dinh thoi FCFS”
- Mỗi tiến trình sẽ có 1 dịng trạng thái (chuỗi định thời). Ví dụ: RRRRRWWRRRR
- Dịng cuối cùng của mỗi thuật toán định thời là in ra các giá trị trung bình của waiting time (AVGW),
respond time (AVGR) và turnaround time(AVGT)

Khoa Công nghệ Thông tin và Truyền thông, Đại học Cần Thơ

GV: Lâm Nhựt Khang



CT178 – Nguyên lý hệ điều hành

4

Ví dụ: người dùng nhập vào số lượng tiến trình n là 3. Kế tiếp chương trình cho phép người dùng nhập vào
các tham số của tiến trình, giả sử người dùng nhập là 1 0 2 1 3 2 2. Output sẽ như sau:
********************************

Dinh thoi FCFS
RR------WRRR---WWWRR
AVGW= 1.33

AVGR=1.33

AVGT=3.66

********************************

Dinh thoi SJF khong trung dung
………..
PHẦN 4: QUẢN LÝ BỘ NHỚ (3.0 điểm)
Xét một hệ thống máy tính với khơng gian bộ nhớ thật 1KB, khơng gian bộ nhớ ảo cần 12 bit để biểu diễn. Giả
sử kích thước của trang bằng với kích thước của khung và bằng 128 bytes. Với bảng trang như dưới đây.

Viết chương trình MSSVqlbn.c nhận vào một tham số (parameter) là filename. Trong filename chứa một dãy
truy cập các địa chỉ luận lý, mỗi địa chỉ được lưu trữ dưới dạng 8bytes (unsigned long type). Chương trình
MSSVqlbn.c sẽ đọc và phân tích các địa chỉ, chuyển đổi địa chỉ trong file sang địa chỉ vật lý tương ứng và in
ra màn hình.


*******************HẾT*******************

Khoa Cơng nghệ Thơng tin và Truyền thơng, Đại học Cần Thơ

GV: Lâm Nhựt Khang



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×