1. Trang chủ
  2. » Luận Văn - Báo Cáo

Project_Ct178 (1).Pdf

4 10 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nguyên lý hệ điều hành
Người hướng dẫn Lâm Nhựt Khang, PTS.
Trường học Đại học Cần Thơ
Chuyên ngành Khoa Công nghệ Thông tin và Truyền thông
Thể loại Dự án tốt nghiệp
Năm xuất bản 2022-2023
Thành phố Cần Thơ
Định dạng
Số trang 4
Dung lượng 488,44 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CT178 – Nguyên lý hệ điều hành 1 Khoa Công nghệ Thông tin và Truyền thông, Đại học Cần Thơ GV Lâm Nhựt Khang 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[.]

Trang 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:………

Tuyên 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 hoà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

Trang 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 http://kernel.org hoặc https://cdn.kernel.org/pub/linux/kernel/ 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 http://www.kernel.org/pub/linux/kernel/v5.x/linux-5.9.tar.gz

# 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à thoá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

Trang 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 https://tldp.org/LDP/lkmpg/2.6/html/x181.html

2 https://brennan.io/2016/11/14/kernel-dev-ep3/

3 https://medium.com/@ssreehari/implementing-a-system-call-in-linux-kernel-4-7-1-6f98250a8c38

4 https://tssurya.wordpress.com/2014/08/19/adding-a-hello-world-system-call-to-linux-kernel-3-16-0/

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 toá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 toá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, x i và y i 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 toá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)

Trang 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*******************

Ngày đăng: 05/03/2023, 16:35