Chúng em cũng xin chân thành cảm ơn các thầy cô giáo trong trường ĐH CNTT và TT Việt - Hàn nói chung, các giáo viên dạy môn Linux và mã nguồn mở nói riêng đã giảng dạy và hướng dẫn cho c
Trang 1DAI HOC DA NANG TRUONG DAI HOC CONG NGHE THONG TIN
VA TRUYEN THONG VIET - HAN KHOA KHOA HOC MAY TINH
“E45 RB
LAP TRINH HE THONG
DE TAI: CAU HINH CO SO DU’ LIEU
MYSQL TRONG UBUNTU
Sinh viên thực hiện: Võ Thế Anh
Lê Anh Thư Nguyễn Hùng Anh
Lê Trường An
Giảng viên hướng dẫn : TS Nguyễn Hữu Nhật Minh
Da Nang, thang 11 nam 2023
Trang 2DAI HOC DA NANG TRUONG DAI HOC CONG NGHE THONG TIN
VA TRUYEN THONG VIET - HAN KHOA KHOA HOC MAY TINH
“E45 RB
LAP TRINH HE THONG
DE TAI: CAU HINH CO SO DU’ LIEU
MYSQL TRONG UBUNTU
Sinh viên thực hiện: Võ Thế Anh
Lê Anh Thư Nguyễn Hùng Anh
Lê Trường An
Giảng viên hướng dẫn : TS Nguyễn Hữu Nhật Minh
Da Nang, thang 11 nam 2023
LOI CAM ON
Trang 3
Trong thời gian làm bài tập lớn, chúng em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, và bạn bè
Chúng em xin gửi lời cảm ơn chân thành đến TS.Nguyễn Hữu Nhật Minh giảng viên trường ĐH CNTT và TT Việt - Hàn người đã tận tình hướng dẫn, chỉ
bảo em trong suốt quá trình làm bài tập lớn nay
Chúng em cũng xin chân thành cảm ơn các thầy cô giáo trong trường ĐH CNTT và TT Việt - Hàn nói chung, các giáo viên dạy môn Linux và mã nguồn
mở nói riêng đã giảng dạy và hướng dẫn cho chúng em kiến thức vả cách vận dụng bài học của môn Lập trình hệ thống, sIiúp em có được cơ sở lý thuyết và khả năng thực tiễn vững vàng, tạo điều kiện giúp đỡ em trong suốt quá trình học
tập
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, bài tập lớn
này không thể tránh được những thiếu sót Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này
Cuối củng, chúng em xin chân thành cảm ơn thầy cô và bạn bè, đã luôn tạo điều kiện, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành bài tập lớn
NHẠN XÉT (Giảng viên hướng dẫn)
1
Trang 4Giảng viên hướng dẫn
Nguyễn Hữu Nhật Minh
MỤC LỤC
LOI CAM ƠN T S010 111111110111 21121 011220151112 E1 2n 2t HH He ii NHẬN XÉT ST 222120511 11212111111211151121111121 152 HH HH rryg iti MỤC LỤC 5 2 ST 201 212121111112111111 211211552 1n 2H22 n2 HH He iv
Trang 5DANH MỤC HÌNH ANH cccccccscccssssescssesssessesesesssesescstssesestssssestevecivevsvevevsesssssvessess vi
LỜI MỞ ĐẦU 5 1T 1111211 112112122121 1112121 1 11 111 t1 ng vii 000019)/GENPH( ẩỶẢ CO SG LY THUYET
1 1.1 Cơ sở lý thuyết Linux ác s21 121111211 11111111111111 1011111 1 1.1.1 Linux là gì sĂ S2 1E 2n t1 2121 1g nu 1 1.1.2 Céu hinh cua hé diéu hanh Linux ccc cccccccececeeeesesseseessesesseseseneees 1 1.1.3 Ưu và nhược điểm của hệ điều hanh Linux cccccecceeceseesseeecsteeees 2 1.2 Cơ sở lý thuyết VM VirtualBOX - 5 TT 221 11121112211112111111 ra 2
1.2.1 Oracle VM VirtualBox là øÌ ? - L1 2.12112112111211 1811 812tr ray 2 1.2.2 _ Tiện ích khi sử dụng máy áo -.- 0 2222112111111 11111111151 111gr re 3 1.2.3 Tính năng của VirtualBox L0 2012112111111 2 111811111 11111 1111181 re 4
13 Cơ sở lý thuyết Ubuntu Linux - 5c s11 EE1EE1E212211 12110121 tt rau 4
II NHAA(ašiịaiadiddddaảảảảảdả 4
1.32 Ưu vànhược điểm - ST 1212111111111 111 5121511155 EEnH re 5
14 Cơ sở lý thuyết cấp phát bộ nhớ -s- 5+ St S2121152 551211111 121.111 re 6 1.4.1 Cap phat bộ nhớ là gì : 5 S211 1 E211 11211 1211112121211 1n eg 6 1.4.2 _ Mục đích của cấp phát bộ nhớ -s- 2+ 5+2 E1152187111211211111 211 2 e0 7 1.5 Cơ sở lý thuyết lập lịch CPU: - 2 5251212 1221211111212 212211 11111 nreg 7
1.5.1 Lap lich CPU 1a i? o.oo S A 7 1.5.2 Mure đích của lập lịch CPU: - 2 2221211211221 121 1122111221158 111g re 8
CHUONG 2 cceccccccccccccsscsseesseseessesseessetessenssseseesentessseseeeses TRIEN KHAI XAY DUNG
9
2.1 Lp Wich aẢãÝ 9 2.1.1 First Come First Serve ccc ccecccceesccccesesescsecseseseestssesetestetsesteseeenes 9 2.1.2 Priority Scheduling 10 2.1.3 Round Robin ccc cecceeccceccenseseceeceesseseceesenteseeeeeeettsentetnestenees 13 2.1.4 Shortest Job FITS ccc ccccceccccceestesececcenssseeceesentreseesenennssseeeenes 16
Trang 7DANH MUC HINH ANH
Hinh 1-1 Hé diéu hanh Linux ccc ccccceessessessesssessessessetsrestessesiesanssietacsseteesavess 1
Hinh 1-2 Oracle VM VirtualBox - L2 n1 2111192111121 1 1H22 11112 1610111 án kt 3
Hình 1-3 Ubunf -2- 222225 22212221222112211222112111211121112211121112111211111211211112 12c 5
;n1 01840 90927277777 a.anjĂĂẮÁÀII 10
Hinh 2-2 Kết quả priority scheduling - 2 22s£292E22E2221221221271227122122127111121 xe 12
Hình 2-3 Kết quả RR - 1n 1111121112111 121 1212111212111 11111 1 erreo 16 Hinh 2-4 Két quả S.JF 52 S221 322211 2112111112112112112112112111121222212 22g te 19 Hinh 2-5 Kết quả First EÍt 2-55 22221 5212211211211211271211112112112111122 12201 sse 21 Hinh 2-6 Kết quả Best FÍt 2-55 S22 2212111212112112111212111121101221212122 21 re 24 Hinh 2-7 Kết quả Next EÍt 5 2-22 2222121221121121111211111221212112222 21 re 26 Hinh 2-8 Két qua Worst FÍI 5 5 S21 2 S2122112112112112121112122111122212212 21 re 28
Vi
Trang 8LOI MO DAU
Quản lý tải nguyên trong hệ thông máy tính trở nên cực kỳ quan trọng để đảm bao hiệu suất và hiệu quả hoạt động của các ứng dụng và quá trình xử lý Hai tài nguyên quan trọng nhất trong hệ thống là CPU và bộ nhớ CPU đảm bảo vai trò quan trọng trong việc xử lý các tác vụ vả chương trình, trong khi bộ nhớ lưu trữ dữ liệu và chương trình mã hóa cần thiết để thực hiện các tác vụ đó
Đề đạt được mức độ tối ưu và hiệu quả trong việc sử dụng CPU và bộ nhớ, CPU lập lịch kỹ thuật và cấp bộ nhớ được đưa ra Thuật toán lập lịch CPU xác định cách thức quản lý và xử lý thời gian phân chia thời gian của CPU cho các tiến trình trong
hệ thông Cần đảm bảo rằng mỗi quá trình đều được thực hiện theo một cách bằng cách sử dụng và mang lại hiệu quả, đồng thời tận dụng tối đa tài nguyên CPU
Cùng với CPU lập lịch, bộ nhớ cấp cao thuật toàn quyết định cách thức quản lý và phân chia bộ nhớ cho quy trình Nhiệm vụ chính của thuật toán này là công việc sử dụng bộ nhớ tối ưu, đảm bảo rằng mỗi tiến trình chỉ có quyền truy cập vào phần bộ nhớ cần thiết, đồng thời tránh xung đột và cô gắng về bộ nhớ
Trong bài tập lớn nảy, hãy tìm hiểu về CPU lịch lập thuật toán, bộ nhớ phát hiện
cap thuật toán
vil
Trang 9
Hình 1-1Hệ điều hành Linux
1.1.2 Cấu hình của hệ điều hành Linux
- _ Kernel: Hay còn được gọi là Nhân, là phần quan trọng và được ví như trai tim của HĐH Linux Phần kernel quan trọng nhất của máy tính có nhiệm vụ chửa các module, thư viện dé quản lý và giao tiếp với phần cứng và các ứng dụng
- - Shell: Shell là một chương trình có chức năng thực thị các lệnh (lệnh) từ người dùng hoặc từ các ứng dụng yêu cầu - tiện ích yêu cầu chuyên đến xử lý Kernel Shell duoc coi la kết nối để kết nối Kernel và Ứng dụng, phiên địch các lệnh từ Ứng dụng gửi đến Kernel đề thực hiện việc này
- Ứng dụng: Là các ứng dụng và tiện ích được người dùng cải đặt trên Máy chủ
1.1.3 Ưu và nhược điểm của hệ điều hành Linux
- _ Ưu điểm Hệ điều hành Linux
Trang 10e Hé diéu hanh Linux miễn phí: Với Linux bạn không cần phải mất phí để mua bản quyền Linux để bắt đầu quá trình sử dụng Mà bạn hoàn toàn sử dụng một cách miễn phí cho tất cả các chức năng của hệ điều hành này Ngoài ra, OpenOffice và LibreOffice còn hỗ trợ các ứng dụng văn bản
© Linh hoạt: Khi sử dụng Linux, người dùng có thể hoạt động trong việc chỉnh sửa hệ thống điều hành theo nhu cầu của mình Là một tiện ích ưu tiên trong quá trình sử dụng của các lập trình viên
e Tinh bao mat cao: Tinh bao mat cua Linux la cure cao nên tất cả các phần mềm mã độc, virus, Đều không thể hoạt động trên Linux Vì thế bạn hãy yén tâm tải Linux và sử dụng một cách thoải mái
© Linux hỗ trợ cho máy cấu hình yếu: Với Linux dù máy tính của bạn có cầu hình yếu nhưng Linux vẫn hỗ trợ cập nhật cập nhật, nâng cấp và hỗ trợ liên tục và thường xuyên trong khi sử dụng Hoạt động của Linux cũng vô củng
ôn định trên các máy tính yêu
- _ Nhược điềm của Linux
® Số lượng ứng dụng được sử dụng trên Linux nhưng bị hạn chế
®_ Một số nhà sản xuất trình điều khiển không phát triển và hỗ trợ cho Linux
®_ Khó tiếp cận và làm quen khi bạn đã quá quen thuộc với Windows thì khi chuyén sang Linux bạn cần một khoảng thời gian để có thể làm quen với hệ điều hành này
1.2 Cơ sở lý thuyết VM VirtualBox
1.2.1 Oracle VM VirtualBox la gi ?
- Oracle VM VirtualBox la nén tang ung dụng mớ và miễn phí mã hóa nguồn, cho phép tao, quan ly va chay cac may ao (VM) May ao 1a nhitng may tinh có phan cứng được mô phóng bới máy chủ
Trang 11Sf VirtualBox
Hinh 1-2Oracle VM VirtualBox
Oracle VM VirtualBox cho phép người dùng sử dụng thiết lập một hoặc nhiều may ao (VM) trên một máy tính và sử dụng chúng đồng thời với máy tính thật Mỗi máy ảo có thể cài đặt và thực thi hệ thống điều khiển riêng của mình, bao gồm các phiên bản Microsoft Windows, Linux, BSD và MS-DOS Bạn có thể cải đặt và chạy nhiều máy ảo tùy chọn vào 6 cứng dung lượng và bộ nhớ RAM của máy cài đặt VirtualBox
1.2.2 Tiện ích khi sử đụng máy áo
Chạy nhiều hệ điều hành cùng lúc: VirtualBox có thê giúp bạn chạy nhiều hệ
điều hành cùng lúc và trên cùng một máy tính
Tìm hiểu về hệ điều hành: VirtualBox giúp bạn có thê tìm hiểu về các hệ điều hành như Linux, Mac OS X và cài đặt các phần mềm tùy ý mà không sợ máy gặp lỗi
Tiết kiệm thời gian và không gian: Sử dụng VirtualBox bạn có thê trao đôi dữ liệu giữa máy tính thật và máy tính ảo một cách đễ dàng bằng cách kéo file giúp tiết kiệm thời gian và không gian
Cài thử phần mềm: Nếu bạn nghỉ ngờ bắt cứ phần mềm nào vừa tải trên mạng
về có virus gắn kết thì có thé tai vé va cai đặt thí nghiệm lên máy tính ảo trước
đó vả không cần phải lo lắng gì về máy tính thật cả vì nó đã được hoàn thành Tiết kiệm và khai thác tối đa tài nguyên của máy tinh: VirtualBox có thể giúp bạn tiết kiệm chi phí đáng kế vào các phần cứng và điện
Trang 121.2.3 Tinh nang cua VirtualBox
- Mién phi: Oracle VirtualBox la phan mém mã nguồn mớ miễn phí
- Linh dng: VirtualBox la nén tang hoa loại 2 (Type 2 Hypervisor) Có nghĩa là máy ảo (VM) được tạo trên một máy chủ có thể dé dàng chạy một máy chủ khác bằng cách sử dụng Định dạng ảo hóa mở (OVE), VMI thì có thể xuất và nhập dễ đàng
- Nhóm VM: VirtualBox cung cấp nhóm tính năng Tính năng này cho phép người dùng sử dụng nhóm các máy ảo của mình theo một nhóm để quản lý dễ đàng Các tính năng như bắt đầu, đóng, đặt lại, lưu trạng thái, tắt máy, tắt nguồn vừa được áp dụng cho VMI riêng lẻ vừa được áp dụng cho cả nhóm
- Bé sung đành cho khách: Đây là công cụ được cài đặt trên hệ điều hành máy chủ ảo để cải thiện hiệu suất của chúng và cung cấp tích hợp cho VirtualBox cũng như giao tiếp với máy chủ
- Snapshots: VirtualBox cung cấp tính năng chụp nhanh trạng thái VM Guest khi có lỗi trong quá trình lab, bạn có thé quay lại thời điểm chụp ảnh và hoàn thành VM
- Phần cứng hỗ trợ: SMP hỗ trợ VirtualBox cho Guest, USB thiết bị, hỗ trợ
ACPI đây đủ, phân giải đa màn hình và PXE mạng khởi động
1.3 Cơ sở lý thuyết Ubuntu Linux
Trang 131.3.2 Uuva nhuge diém
vá và báo cáo thủ thuật trên tất cả các máy tính đề bàn Ubuntu
e Hệ điều hành hoàn toàn không có virus: Không hề có l con virus hay phần mềm gây hại gì có thê chạy trên Ubuntu Bạn hoản toản an toàn khi sử dụng Ubuntu Không diệt virus, không lo lắng, Ubuntu thực sự là lựa chọn đúng đắn cho những người đặt bảo mật lên trên hết
Trang 14Mọi phần mềm đều được tự động cập nhật: Đã được cập nhật tự động vào 6 tháng 1, Ubuntu mang đến cho bạn cơ hội sử dụng những chương trình mới nhất với những tính năng ưu việt nhất
Ubuntu bảo vệ giá trị dữ liệu quý giá của bạn: Ubuntu được thiết kế để bảo mật Bạn có thể tải xuống các bản cập nhật bảo mật ít nhất 18 tháng trên
máy tính để bàn và máy chủ
Đa ngôn ngữ: Với đặc tính “Ubuntu” (tình huống người) kết hợp với nguồn
mở trên toàn thế giới, Ubuntu hướng tới người dùng phô thông nên được bản địa hóa ngôn ngữ với từng địa phương (có cả tiếng Việt)
- Han che
e Chế độ đầu tiền là khó dùng, khó làm quen (với những người chuyến từ Windows sang)
e Vấn đề thứ hai là thiếu cao cấp phần mềm chuyên dụng Vì đối tượng trả lời
là người dùng phô thông nên Ubuntu chưa có nhiều phần mềm chuyên dụng cao Hiện tại Ubuntu cũng đang đây mạnh công việc này, đã cung cấp khá nhiêu phân mềm
® Bộ põ tiếng Việt trên Ubuntu hơi khó khăn so với Windows
1.4 Cơ sở lý thuyết cấp phát bộ nhớ
1.41 Cấp phát bộ nhớ là gì :
Memory allocation là quá trình quản lý và phân phối không gian bộ nhớ trong hệ thông máy tính cho các chương trình và đữ liệu Khi một chương trình hoặc quy trình được thực thi, nó cần có không gian bộ nhớ để lưu trữ
mã chương trình, đữ liệu và biến trạng thái
Quá trình phân bổ bộ nhớ bao gồm các bước sau:
e Yêu cầu bộ nhớ: Chương trình hoặc tiến trình gửi yêu cau dé cap phat một phần bộ nhớ từ hệ điều hành Yêu cầu này thường được thực hiện thông qua các hàm hoặc nguyên tắc giao tiếp cung cấp bởi hệ điều hành
e Quản lý bộ nhớ: Hệ điều hành quản lý bộ nhớ bằng cách duy trì thông
tin về các vùng bộ nhớ được cấp phát và không được cấp phát Thông tin nay bao g6m dia chỉ bắt đầu, kích thước và trạng thái của từng vùng
bộ nhớ
e Phân phối bộ nhớ: Hệ điều hành xác định một vùng bộ nhớ khả dụng
trong không gian bộ nhớ và cấp phát nó cho chương trình hoặc tiến
Trang 151.4.2
trình Có nhiều phương pháp phân phối bộ nhớ khác nhau như First-Fit,
Best-Fit, Next-Fit, và Quick-Fit, mỗi phương pháp có cách xử lý và ưu điểm riêng
® Gán bộ nhớ: Sau khi được cấp phát, địa chỉ bắt đầu của vùng bộ nhớ được gán cho chương trình hoặc tiến trình Chương trình có thể sử dụng địa chi nay dé truy cập và lưu trữ dữ liệu trong vùng bộ nhớ
e Giải phóng bộ nhớ: Khi chương trình hoặc tiến trình không cần nữa, nó cần phải giải phóng bộ nhớ để tái sử dụng cho các mục đích khác Quá
trình giải phóng bộ nhớ liên quan đến trả lại vùng bộ nhớ cho hệ điều
hành và cập nhật thông tin quản lý bộ nhớ
Quá trình memory allocation là một phần quan trọng trong quản lý bộ nhớ của hệ thống máy tính, đảm bảo tối ưu hóa việc sử dụng tài nguyên bộ nhớ
và tránh xảy ra xung đột hoặc lỗi tràn bộ nhớ
Mục đích của cấp phát bộ nhớ Cấp phát không gian lưu trữ: Memory allocation cho phép cấp phát không gian bộ nhớ cho các chương trình và dữ liệu Điều này cho phép chương trình có thể lưu trữ mã chương trình, biến, cấu trúc đữ liệu và dữ liệu động trong không gian bộ nhớ
Dam bao tinh san sang va truy cap dit ligu: Memory allocation dam bao rang cac quy trinh va tng dụng có thê truy cập vào dữ liệu của mình một cách dễ dàng và hiệu quả Bằng cách cung cấp không gian bộ nhớ riêng biệt, mỗi chương trình có thể lưu trữ vả truy cập dữ liệu của mình mà không ảnh hưởng đến các chương trình khác
Tối ưu hóa sử dụng bộ nhớ: Memory allocation giúp tôi ưu hóa việc sử dụng tài nguyên bộ nhớ Bằng cách phân chia và gán bộ nhớ một cách hiệu quả, các chương trình vả dữ liệu chỉ sử dụng mức đủ tài nguyên cần thiết, giúp giảm lãng phí bộ nhớ và tăng hiệu suất hệ thống
Dam bao an toan va sy phan cap: Memory allocation giup đảm bảo an toàn
và sự phân cấp trong hệ thống Băng cách cung cấp không gian bộ nhớ riêng biệt cho môi chương trình, nó ngăn chặn các chương trình khác nhau can thiệp vào và thay đổi dữ liệu của nhau, đảm bảo tính riêng tư và bảo mật
1.5 Cơ sở lý thuyết lập lịch CPU:
1.5.1 Lập lịch CPU là gì?
Lập lịch CPU là quá trình quản lý và phân chia thời gian xử lý của bộ xử lý trung tâm (CPU) trong hệ điều hành Khi hệ thống có nhiều tiến trình hoặc luồng thực hiện cùng yêu cầu truy cập vào CPU, lập lịch CPU quyết định tiến trình nào được thực thi và trong thời ø1an bao lâu
Mục tiêu chính của lập lịch CPU là tối ưu hóa việc sử dụng tài nguyên CPU để đạt được hiệu suất cao, thời gian đáp ứng nhanh và công bằng trong việc chia sẻ tải nguyên giữa các tiến trình Điều này đòi hỏi hệ điều hành phải quản lý và điều phối các tiến trình một cách hiệu quả
Trang 161.5.2 Mục dích của lập lịch CPU:
CPU Utilization (Str dung CPU tối đa): Đo lường tỷ lệ thời gian CPU thực
tế được sử dụng so với tổng thời gian có săn Mục tiêu là tận dụng tối đa tài nguyên CPU dé dat được hiệu suất Cao
Maximum Throughput (Théng luong tối đa): Đo lường số lượng tiễn trinh được hoàn thành trong một đơn vị thời gian Mục tiêu là tối đa hóa số lượng tiến trình được thực thi để đạt được hiệu suất cao
Minimum Turnaround Time (Thoi gian quay vong toi thiéu): La thoi gian
từ khi một tiến trình bắt đầu cho đến khi tiến trình hoàn thành Mục tiêu là giảm thời gian quay vòng để cung cấp kết quả nhanh chóng cho các tiến trình
Minimum Waitine Time (Thời gian chờ đợi tối thiểu): Đây là thời gian
một tiễn trình phải chờ đợi trước khi được thực thị Mục tiêu là giảm thời gian cho dot đề tối ưu hóa hiệu suất của hệ thông
Minimum Response Time (Thời gian phản hồi tối thiểu): Là thời gian từ
khi một tiễn trình yêu cầu xử lý cho đến khi có phản hồi ban đầu từ hệ
thống Mục tiêu là cung cấp phản hồi nhanh chóng và đáp ứng yêu cầu người dùng một cách hiệu quả
Trang 17CHUONG 2 TRIEN KHAI XAY DUNG
2.1 Lap lich CPU
2.1.1 First Come First Serve
2111 Ly thuyét
Thuat toan FCFS (First Come First Serve), còn được biết đến với tên gọi khác là FIFO (First In First Out), la mé6t thuật toán lập lịch của hệ điều hành, tự động thực thí các yêu cầu và quy trình đang chờ trong hàng đợi theo thứ tự chúng xuất hiện Đây là thuật toán lập lịch CPU đơn giản và
dễ dàng nhất Trong thuật toán này, quy trình nào yêu cầu CPU đầu tiên
sẽ nhận được phân bồ CPU đầu tiên
Trang 18
2113 Kết quả
- Giả sử chúng ta có 3 quá trình cân được thực hiện với thời p1an hoàn thành (burst time) lân lượt là 10, 5 và 8 đơn vị thời p1an Khi chạy đoạn mã trên, kết quả
Trang 19void get_tat_time(struct process proc[{], int tat[], int wt[]) { for (int i = 0; i < totalprocess; i++) {
tat[i] » proc[i].bt + wt[i];
}
11