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

Đồ Án môn học lập trình hệ thống thư mục và tệp tin

30 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Hệ Thống Thư Mục Và Tệp Tin
Tác giả Nguyễn Đình Anh Tài, Lê Duy Tân, Trần Hoàng Nam, Trịnh Công Toàn
Người hướng dẫn TS. Nguyễn Hữu Nhật Minh
Trường học Trường Đại học Công nghệ Thông tin & Truyền thông Việt Hàn
Chuyên ngành Khoa Học Máy Tính
Thể loại Đồ án môn học
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 30
Dung lượng 1,48 MB

Nội dung

Đầu tiên chỉ ra sự khác biệt tiêu biểu của các chương trình hệ thống khi đã so sánh tới lập trình ứng dụng là ở đó nhắm vào lập trình ứng dụng đề sản sinh phần mềm mà cung cấp những dịc

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYEN THONG

VIỆT HÀN Khoa Hoc May Tinh

VK Tt es GD _

ĐỒ AN MON HOC LAP TRINH HE THONG

THU MUC VA TEP TIN

Sinh viên thực hiện : Nguyễn Đình Anh Tài-

21IT580

Lê Duy Tân-21IT5SS1

Trần Hoàng Nam-21IT565

Trịnh Công Toàn-21TT388 Giảng viên hướng dẫn : TS Nguyễn Hữu Nhật Minh Lớp : 21SE2 | 21SE2 | 21SE1 | 21SE5

Trang 2

Đà Nẵng, ngày 20 tháng 12 năm 2023

Trang 3

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYÊN THÔNG

VIỆT HÀN Khoa Khoa Hoc May Tính

VÀ ss \ \Gmp

ĐỒ AN MON HOC LAP TRINH HE THONG

TAP TIN VA THU MUC

Sinh viên thực hiện : Nguyễn Đình Anh Tài-2IIT580

Lê Duy Tân-21IT58§1

Trần Hoàng Nam-21IT565

Trịnh Công Toàn-21TT38§

: TS Nguyễn Hữu Nhật Minh

: 21SE2 | 21SE2 | 21SE1 | 21SE5

Giảng viên hướng dẫn

Lớp

Đà Nẵng, ngày 20 tháng 12 năm 2023

Trang 4

NHAN XET CUA GIANG VIEN HUONG DAN

Xác nhận của giáo viên hướng dân

Trang 5

LỜI NÓI ĐẦU

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thê tạo ra những bước đột phá mạnh mẽ Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, công nghệ thông tin cũng được những công nghệ có đăng cấp cao và lần lượt chỉnh phục hết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thê thiếu, là nền tảng chính cho sự truyền tải, trao đối thông

tin trên toàn cầu

Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử dụng: chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thì gần như lập tức cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy đủ thông tin, hình ảnh và thậm chí đôi lúc có

cả những âm thanh nếu bạn cần Bằng internet, chung ta đã thực hiện được nhiều công việc

với tốc độ nhanh hơn và chỉ phí thấp hơn nhiều so với cách thức truyền thống Chính điều này,

đã thúc đây sự khai sinh và phát triển của thương mại điện tử và chính phủ điện tử trên khắp

thể giới, làm biến đôi đáng kế bộ mặt văn hóa, nâng cao chất lượng cuộc sống con người

Vì vậy, chúng em đã thực hiện đồ án môn học '“THƯ MỤC VÀ TỆP TIN, VIẾT CHƯƠNG TRÌNH C LAY CAC THUOC TINH TEP HOẶC THƯ MỤC VÀ HIẾN THI CHUNG TREN THIET BI DAU CUOTI”.

Trang 6

LỜI CẢM ƠN

Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ

dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của

quý Thây Cô, gia đình và bạn bè

Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô tại Trường đại học Công

Nghệ Thông Tin và Truyền thông Việt Hàn đã cùng với tri thức và tâm huyết của mình để

truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường Và đặc biệt, trong học kỳ này, Khoa đã tô chức cho chúng em được tiếp cận với môn học mà theo em

là rất hữu ích đôi với các sinh viên thuộc các chuyên ngành Đó là môn học “Lập trình hệ thống”

Em xin chân thành cảm ơn TS Nguyễn Hữu Nhật Minh đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong nghiên cứu khoa học Nếu không có những lời hướng dẫn, dạy bảo của thay thì em nghĩ

bài thu hoạch này của em rất khó có thê hoàn thiện được Một lần nữa, em xin chân thành cảm

on thay

Bài báo cáo được thực hiện trong khoảng thời gian gần ngắn Bước đầu đi vào thực tế, tìm

hiểu về lĩnh vực sáng tạo trong nghiên cứu khoa học, kiến thức của em còn hạn chế và còn

nhiều bỡ ngỡ Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô

Một lần nữa, chúng em xin chân thành cảm ơn!

Trang 7

CHUONG 1: = COSOLY THUYET 10

1.1 Sơ lược về lap trimb hé thong scsessessssssssessssnessesseescsasescesssaseateessaneneeees 10

1.1.1 Khái niệm lập trình hệ thống 5s s se secssssesssssessssse 11 1.1.2 Tổng quan về lập trình hệ thống - - 5 s52 2 =<cscscsssseses 12

1.2 Tìm hiểu về truyền thông giữa các tuyến trình . ‹- 13

1.2.1 Khái niệm Process và [PC wl 1.2.2 Vì sao các process phải giao tiếp với nhau? -.«-5eccs se se see 14 1.2.3 Một số cơ chế giao tiếp giữa các process trong Linux 14 1.3 Lập trình Socket trên LnUX - G0 ng TH HH ng vớ 15 1.3.1 Mô hình Client/SŠ€TV€T «HH HH th nHê 15

1.3.2 Sơ lược về So ket - s-s- se se ktEExEksEEsEkEEeeEsEksgkesrssssrsrrsesrke 17

Trang 8

2.1 Giới thiệu về Tệp tin và Thư mục s- s- se se se se se sesesesseerscs 20

ph (1 mẽ 23 2.2.2 Các bước giải QuyẾt -s-cs-csscsevsvsevtevAeSkvkeErsekessrkesereersraersre 24 CHƯƠNG 3: MÃ NGUỎN VÀ DEMO 25

4.3 Hướng phát triỀn ¿5c se sctvshzhvsvxgxEvevkExxEEetaesrkrsrke sersrssee 28

Trang 9

DANH MỤC HÌNH ẢNH

Hình 1 — Sơ lược về lập trình hệ thống - - G5 SE HT TY SH ng ng cay 1 Hình 2 — Mơ hình hoạt động của Stream SOCEk€fS c1 1v 1v 1 11H HH gen 5 Hình 3_— Mơ hình hoạt động của Datagram SoCkfS - -ss c 1 1S Y9 Hs yyy 6 Hình 4— Logo VirtUaÏBOX - sc ct H H H H TH H H T H H re 6 Hình 5 — Giao diện VirtualBOX - 24c v1 1S vn KH 93 E04 5 7 Hinh 6 — Logo ng6n ng? lap trinh Co eee cecessessecsseesessecesecseessceeeeseneceneeceeseseeseesseeeeues 8 Hình 7 — Lý do nên sử dụng C, c- c s21 1S 1H ng ng ng tà HH HH kg 9 Hinh 10s 0ii0ï 1, 17

li 8c 10: 0i0ì 0:0 11 18

CAC TU VIET TAT

Trang 10

1 IPC Inter-Process Communication

2 OS Operating System

3 TCP Tranmission Control Protocol

4 UDP User Datagram Protocol

Trang 11

Lập trình hệ thống là hoạt động của các phan mém hé thong Đầu tiên chỉ ra sự khác biệt

tiêu biểu của các chương trình hệ thống khi đã so sánh tới lập trình ứng dụng là ở đó nhắm vào

lập trình ứng dụng đề sản sinh phần mềm mà cung cấp những dịch vụ tới người dùng (ví du: bộ

xử lý văn bản), trong khi những nhà lập trình hệ thống nhắm vào việc sản xuất phần mềm mà cung cấp những dịch vụ tới phần cứng máy tính (ví dụ: phần mềm chống phân mánh đĩa) Nó cũng yêu cầu một độ lớn hơn của sự ý thức phân cứng

1.1.2 Tổng quan lập trình hệ thống

Những điểm đặc biệt hơn trong lập trình hệ thông:

+ Những nhà lập trình sẽ tạo những gánh vác về phần cứng và một số thuộc tính khác của những chương trình chạy trên hệ thống đó, và sẽ thường khai thác những thuộc tính đó

(cho ví dụ bởi việc sử dụng một giải thuật mà được biết mà hiệu quả khi nào được sử dụng với

phân cứng đặc biệt)

10

Trang 12

+ Thông thường một ngôn ngữ lập trình cấp thấp hoặc tiếng địa phương ngôn ngữ lập

trỉnh sử dụng đó là:

« Có thê hoạt động trong những môi trường tài nguyên bắt buộc

« - Là rất hiệu quá và có thê thực hiện một ít ở trên dau

° - Có một thư viện thực hiện nhỏ, hoặc không ở mọi thứ

* Cho phép trực tiếp và “thô” mà điều khiển qua truy cập bộ nhớ và điều khién

chảy tràn

« _ Để cho người lập trình viết những phần của chương trình ngay tức khắc trên ngôn ngữ assembly

Những nhà lập trình hệ thống một cách đây đủ thì khác với lập trình ứng dụng mà những người lập trình hướng tới chuyên về một hoặc cái khác

Trong lập trình hệ thông, những phương tiện lập trình có hạn thường sẵn có Sự sử dụng của

tập hợp rác tự động thì không phải là phô biến và gỡ rối là không đối đôi khi đề làm Thư viện

thực hiện, nếu sẵn có ở mọi nơi, thì ít mạnh hơn nhiều thông thường, và làm ít sợ kiểm tra lỗi hơn Bởi vì những sự hạn chế đó, màn hình và sự đăng ký thường được sử dụng: những hệ điều hành có thê có vô cùng chỉ tiết hóa những hệ thống con đăng ký

Thực hiện những phân nhất định trong Hệ điều hành và những quy định hoạt động mạng những nhà lập trình hệ thống (cho ví dụ thi hành phân trang (bộ nhớ ảo) hoặc một trình điều

khiên thiết bị cho một hệ điều hành)

1.2 Tìm hiểu về truyền thông giữa các tuyén trinh — Interprocess Communication

1.2.1 Khai niém Process va IPC

Một process (tiễn trình) là một ví dụ của một chương trình đang chạy Bắt cứ khi nào bạn

thông báo một lệnh trong Linux, nó tạo hoặc bắt đầu một DTOC€sS mới Mỗi process co | PID

(Process ID) đại điện PID gồm tối đa 5 chữ sô và là duy nhất tai 1 thoi diém PID cua process

A có thê được tận dung cho process B néu process A da kết thúc

II

Trang 13

Inter-process communication (IPC) là một cơ chế cho phép trao đôi dữ liệu giữa các quá trình Bằng cách cung cấp một người dùng với một tập hợp các giao diện lập trình,

IPC giúp một lập trình tô chức thực hiện hoạt động giữa các quá trình khác nhau [PC

cho phép một ứng dụng để kiêm soát một ứng dụng khác, do đó cho phép chia sẻ dữ liệu mà không cần can thiệp

1.2.2 Vi sao cac process phai giao tiếp với nhau?

Việc cho phép truyền data giữa các process là do những lý do sau:

+ Giúp chia sẻ thông tin giữa các users

+ Giúp speech up các tác vụ trong máy tính

+ Giúp xây dựng modun

+ Giúp thuận tiện trong chạy nhiều tác vụ cùng một lúc

1.2.3 Một sô cơ chê giao tiệp giữa các process trong Linux

Linux cung cấp một số cơ chế giao tiếp giữa các tiến trình gọi là IPC (Inter-Process Communication):

+ Signals handling - Trao đối bằng tín hiệu

+ Pipe -Trao đôi bằng cơ chế đường ống

+ Message Queues - Trao déi thông qua hàng đợi tin nhắn

+ Shared Memory - Trao d6i bằng phân đoạn nhớ chung

+ Giao tiép thong qua socket

+ Giao tiếp đồng bộ dùng semaphore

1.2.4 IPC su dung Pipes?

Chia Sé Théng Tin Vé Files va Folders: IPC có thể được sử dụng để chia sẻ thông tin về

các files và folders giữa các tiên trình trong hệ thông

Tìm Kiếm và Lọc Dữ Liệu: Một tiến trình có thể tim kiém thông tin trong một thư mục

và gửi kết quả đến tiên trình khác thông qua pipes Điều này giúp tách biệt nhiệm vụ của các tiên trình và tăng tính hiệu quả

Quét Thư Mục Đệ Quy: Các tiễn trình có thể sử dụng IPC đề gửi thông tin về cầu trúc thư mục đệ quy, chăng hạn như danh sách các files và thư mục con

Xử Lý Sự Kiện Trên Thư Mục: IPC có thê được sử dụng dé thong báo về sự kiện liên

quan đên thư mục, chăng hạn như thêm mới, xóa bỏ, hoặc thay đôi tên của files va folders

12

Trang 14

Phân Tích Thông Kê và Dữ Liệu: [PC cung cấp khả năng cho các tiến trình khác nhau để phân tích và thống kê thông tin vé files và thư mục một cách đồng bộ

Bảo Mật và Quyền Truy Cập: Các tiến trình sử dụng IPC có thể trao đôi thong tin về quyền truy cập và bảo mật của ñles va folders dé dam bao tinh an toàn của hệ thông Hiệu Suất và Tôi Ưu Hóa: Sử dụng IPC cần thận có thê giúp tôi ưu hóa hiệu suất khi xử

ly lớn lẻ dữ liệu về files và thư mục

Xử Lý Lỗi và Khôi Phục: Trong quả trình chia sẻ thông tin, quản lý lỗi là quan trong dé đảm bảo tính ôn định của hệ thông

1.3 Lập trình Socket trên Linux

1.3.1 M6 hinh Client/Server

Client — Server là mô hình phố biển cho giao tiếp giữa 2 tiến trình/2 máy, trong

đó, tiến trình client kết nối đến tiễn trình server để yêu cầu trao đổi dữ liệu

Client cần biết về sự tồn tại và địa chỉ của tiến trình server, nhưng server không

cần biết về sự tồn tại và địa chỉ của client cho đến khi kết nối được thiết lập

Mỗi khi kết nối được thiết lập, cả 2 bên đều có thể trao đổi (gửi và nhận dữ liệu)

Đề thiết lập một kết nỗi cho cả 2 phía, cần xây dựng một socket Có thể hiểu socket

như một điềm đầu cuối của kênh kết nỗi giữa 2 tiến trình

Các hệ thống (limux, windows) đều cung cấp các hàm hệ thống để thực hiện thiết lập

một socket

1.3.2 Sơ lược về Socket

Socket là điểm cuối end-point trong liên kết truyền thông hai chiéu (two-way communication) biéu dién kết nối giữa Client — Server Các lớp Socket được ràng buộc với một công port (thể hiện là một con số cụ thé) dé cac tang TCP (TCP Layer) co thé định danh ứng dụng mà dữ liệu sẽ được gửi tới

Có 2 loại socket được str dung réng rai la: stream sockets va datagram sockets Stream sockets: Dya trén giao thirc TCP (Tranmission Control Protocol), la giao thức hướng luỗng (stream oriented) Việc truyền dữ liệu chỉ thực hiện giữa 2 tiễn trình

đã thiết lập kết nổi Giao thức này đảm bảo dữ liệu được truyền đến nơi nhận một cách

đáng tin cậy, đúng thứ tự nhờ vào cơ chế quản lý luồng lưu thông trên mạng và cơ chế

13

Trang 15

chống tắc nghẽn

Hình 2 — Mô hình hoạt động của Stream Sockets

- Datagram sockets: Dwa trên giao thie UDP (User Datagram Protocol), la giao thức hướng thông điệp (message oriented) Việc truyền dữ liệu không yêu cầu có sự thiết lập kết nối giữa tiến quá trình Ngược lại với giao thức TCP thì dữ liệu được truyền theo giao thức UDP không được tin cậy, có thế không đúng trình tự và lặp lại Tuy nhiên vì nó không yêu cầu thiết lập kết nối không phải có những cơ chế phức tạp nên tốc độ nhanh ứng dụng cho các ứng dụng truyền dữ liệu nhanh như chat, game

14

Ngày đăng: 09/10/2024, 16:16

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w