Mỗi file có một tên duy nhất để đảm bảo tính độc lập của file với tiến trình, người dùng và sử dụng để hệ thống xác định tệp.. Để tạo một tệp tin mới hệ điều hành sẽ tìm vùng tự do trong
Trang 1cATRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO HỌC PHẦN NGUYÊN LÝ HỆ ĐIỀU HÀNH
Hà Nội, 05/2024
Hãy nêu khái niệm file (giới thiệu tổng quan, các thuộc tính file, các thao tác cơ bản với file), phân tích cấu trúc thư mục (các phân vùng /Partition, các thao tác với thư mục, thư mục một mức, thư mục hai mức, thư mục cấu trúc cây)
Giảng viên hướng dẫn : Nguyễn Thị Ngọc Tú
Sinh viên thực hiện : Nguyễn Thị Thanh Thủy - 22810310210
: Lê Ngọc Huyền - : Nguyễn Đình Phóng - : Phan Đắc Nhân - : Trần Văn Sang -
Chuyên ngành : Công nghệ phần mềm
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
MỞ ĐẦU 2
Chương 1: Khái niệm file 3
1.1 Giới thiệu tổng quan 3
1.2 Các thuộc tính file 3
1.3 Các thao tác cơ bản với file 4
1.3.1 Tạo file 5
1.3.2 Ghi file 5
1.3.3 Đọc file 6
1.3.4 Xóa file 6
1.3.5 Thay đổi vị trí trong file và thu gọn file 7
1.3.6 Đóng mở file 7
1.3.7 Một số thao tác khác 8
Chương 2: Cấu trúc thư mục 9
2.1 Các phân vùng/ Partition 9
2.2 Các thao tác với thư mục 10
2.3 Thư mục một mức 10
2.4 Thư mục hai mức 11
2.5 Thư mục cấu trúc cây 13
KẾT LUẬN 15
DANH MỤC TÀI LIỆU THAM KHẢO 16
Trang 3DANH MỤC HÌNH ẢNH
Hình 1.1: Một số kiểu file 3
Hình 1.2: Hệ thống file 4
Hình 1.3: Thao tác tạo file 5
Hình 1.4: Thao tác ghi file 6
Hình 1.5: Thao tác đọc file 6
Hình 1.6: Thao tác xóa file 7
Hình 2.1: Tổ chức hệ thống tập tin điển hình 9
Hình 2.2: Thư mục một mức 11
Hình 2.3: Thư mục hai mức 12
Hình 2.4: Thư mục cấu trúc cây 13
Trang 4LỜI CẢM ƠN
Trang 5MỞ ĐẦU
Trang 6Chương 1: Khái niệm file 1.1 Giới thiệu tổng quan
Thông tin được lưu trữ trên nhiều phương tiện/ thiết bị nhớ ngoài khác nhau như: đĩa từ, băng từ, đĩa quang,… có dung lượng lớn, cho phép lưu trữ lâu dài Và được tập hợp một cách có tổ chức theo đơn vị lưu trữ thông tin ghi trên thiết bị lưu trữ được gọi là file
Như vậy, file là một đơn vị lưu trữ của hệ điều hành trên bộ nhớ ngoài File có thể
là một chương trình của người sử dụng, một chương trình của hệ thống hoặc một tập hợp dữ liệu của người sử dụng File là tập hợp các bit, byte, các dòng văn bản hay các bản ghi ý nghĩa các đơn vị thành phần này của file hoàn toàn do người tạo ra file và người sử dụng file quy định
Nhờ vậy, người dùng có thể quy định cấu trúc, ý nghĩa, cách sử dụng cho file Do
đó file được chia thành nhiều loại như: file văn bản biểu diễn các chuỗi ký tự được tổ chức thành dòng, file đối tượng chứa các bytes được tổ chức thành khối để chương trình liên kết ( linker ) hiểu được, file thực thi là chuỗi các mã lệnh có thể thực hiện trong bộ nhớ,…
Hình 1.1: Một số kiểu file
1.2 Các thuộc tính file
Các thuộc tính của một file trong hệ thống máy tính thường bao gồm thông tin về file, định dang, kích thước, ngày tạo và sửa đổi, quyền truy cập và nhiều thuộc tính khác Các thuộc tính cụ thể có thể thay đổi tùy thuộc vào hệ điều hành và hệ thống tệp
cụ thể, nhưng dưới đây là một số thuộc tính phổ biến của một tệp:
Trang 7- Tên file (Name): Là thuộc tính rất quan trọng và được lưu dưới dạng chuỗi ký tự
mà người dùng có thể đọc được Một số hệ thống có sự phân biệt giữa chữ hoa và chữ thường, một số khác lại xem hai trường hợp đó là tương đương Mỗi file có một tên duy nhất để đảm bảo tính độc lập của file với tiến trình, người dùng và sử dụng để hệ thống xác định tệp
- Định dạng (Identifer): là thẻ duy nhất, thường là số, xác định tập tin trong hệ thống tập tin; nó là tên mà người dùng không thể đọc
- Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file
o Có thể xác định kiểu file dựa trên một phần của tên file
Ví dụ: doc, txt, exe, ppt, pdf, jpn, cpp…
o Dựa trên kiểu, hệ điều hành sẽ thao tác trên tập tin phù hợp
Thực hiện file thực thi mà file nguồn đã sửa => Dịch lại
Nháy đúp vào file văn bản (*.doc) => Gọi word processor
- Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó
- Kích thước (Size): Kích thước hiện thời/ tối đa của file thường đo bằng byte
- Bảo vệ (Protected): Điều khiển truy nhập: Ai có thể đọc/ ghi…
- Thời gian (Time): Thời điểm tạo ra, sửa đổi, sử dụng lần cuối…
Bản ghi file chứa các thuộc tính của file được lưu trong cấu trúc dữ liệu, có thể chỉ chứa tên file và định dạng file; định danh file xác định các thông tin còn lại Có kích thước từ vài bytes lên tới kilobytes
Thư mục file chứa các bản ghi file có kích thước lên tới megabytes, thường được lưu trữ trên thiết bị nhớ ngoài Được đưa vào từng phần của bộ nhớ khi cần thiết
Hình 1.2: Hệ thống file
1.3 Các thao tác cơ bản với file
Tập tin là kiểu dữ liệu trừu tượng, là nơi có thể lưu trữ và truy cập thông tin Hệ điều hành cũng quy định ra các thao tác mà người dùng và ứng dụng có thể thực hiện với file Các thao tác này được hệ điều hành thực hiện khi chương trình ứng dụng gọi lời
Trang 8gọi hệ thống tương ứng Những thao tác với file thường gặp trong hệ điều hành bao gồm:
1.3.1 Tạo file
Tạo file là một trong những thao tác quan trọng cho phép người sử dụng trực tiếp xây dựng tệp tin hoặc cung cấp dữ liệu Để tạo một tệp tin mới hệ điều hành sẽ tìm vùng
tự do trong không gian lưu trữ của hệ thống file sau đó tạo một phần tử mới trong thư mục file rồi lưu tên file, vị trí của file và các thông tin khác vào vùng nhớ trong thư mục file tương ứng Kết quả một file trống chưa có dữ liệu được tạo ra kèm theo một số thuộc tính của nó
Hình 1.3: Thao tác tạo file
1.3.2 Ghi file
Để thêm thông tin vào file trống vừa mới tạo ra thì chúng ta cần thực hiện thao tác ghi file Muốn ghi file chúng ta cần thực hiện lời gọi hệ thống Write() yêu cầu tên file và
dữ liệu được ghi tới tập tin Sau đó hệ thống sẽ sử dụng tên file để tìm kiếm file trong thư mục file rồi dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi con trỏ ghi sẽ thay đổi sau mỗi thao tác ghi
Trang 9Hình 1.4: Thao tác ghi file
1.3.3 Đọc file
Để đọc file chúng ta cần thực hiện lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi kết quả Hệ thống dùng tên file, tìm kiếm file trong thư mục file Sau đó tiếp tục dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc(read pointer) để chỉ ra vị trí được đọc con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu Thao tác này giúp người dùng có thể đọc được dữ liệu được lưu trữ trong file
Hình 1.5: Thao tác đọc file
1.3.4 Xóa file
Để loại bỏ tập tin ra khỏi dữ liệu lưu trữ, chúng ta dùng tên file, tìm kiếm file trong thư mục Khi đó vùng nhớ được xác định bởi hai trường vị trí và kích thước được
Trang 10giải phóng để có thể dùng lại bởi các file khác Hệ thống xóa phần tử tương ứng trong thư mục file Tiếp đến là xóa logic hoặc xóa vật lý
Hình 1.6: Thao tác xóa file
1.3.5 Thay đổi vị trí trong file và thu gọn file
Khi muốn thay đổi vị trí file ta cần duyệt thư mục để tìm phần tử tương ứng Sau
đó xác định vùng tự do phù hợp Khi đó con trỏ file được thay bằng giá trị thích hợp Thao tác này không yêu cầu một hoạt động vào/ ra
Thao tác thu gọn file giúp người sử dụng xóa nội dung file nhưng vẫn giữ được nguyên các thuộc tính của file Để thực hiện thao tác này ta cần tìm kiếm file trong thư mục file Sau đó đặt kích thước file về 0 Tiếp theo là giải phóng vùng nhớ dành cho file
1.3.6 Đóng mở file
Mỗi khi thực hiện thao tác đọc ghi thì hệ điều hành sẽ phải tìm kiếm file trong thư mục, đọc các thuộc tính của file, xác định vị trí của file trên đĩa sau đó mới thực hiện thao tác đọc ghi Tránh việc lặp đi lặp lại các công đoạn này gây lãng phí thời gian ta cần thực hiện thao tác mở file trước khi thao tác với file
Để mở file thì hệ điều hành sẽ tìm file dựa trên tên file cần mở để tìm kiếm thông tin về file trong thư mục Hệ điều hành sẽ lưu trữ một bảng chứa thông tin liên quan tới các file đang được mở trong bộ nhớ Lệnh mở file thường trả về con trỏ tới mục chứa thông tin về file trong bảng các file đang mở Con trỏ này sẽ được sử dụng làm thông số cho các thao tác tiếp theo với file
Sau khi hoàn thành tất cả các thao tác đọc, ghi,… tập tin không còn được sử dụng tới thì file cần được đóng file để giải phóng vùng nhớ Khi đó hệ điều hành sẽ loại bỏ phần tử tương ứng trong bảng file mở
Trang 11Với các hệ điều hành cho phép nhiều người dùng cùng sử dụng, thao tác đóng/ mở file phức tạp hơn do có thể xẩy ra trường hợp nhiều người cùng yêu cầu mở file một lúc Trong trường hợp đó, hệ điều hành sẽ dùng 2 loại bảng file mở cho từng tiến trình và cho hệ thống Sau đó ghi lại số tiến trình đang mở file bằng cách ăng hoặc giảm bộ đếm khi có tiến trình đóng hoặc mở tệp tin Rồi xóa phàn tử tương ứng trong bảng file mở mức hệ thống khi bộ đếm bằng không
1.3.7 Một số thao tác khác
Ngoài các thao tác cơ bản, thì vẫn còn nhiều thao tác khác với file như: thêm dữ liệu vào cuối file (append), lấy/ đặt thông tin thuộc tính file, đổi tên file
Các thao tác đó có thể đảm bảo thông qua các thao tác cơ bản Chẳng hạn như thao tác copy file bao gồm các thao tác cơ bản như tạo file mới, đọc dữ liệu từ file cũ, ghi ra file mới được thực hiện một cách tuần tự
Trang 12Chương 2: Cấu trúc thư mục 2.1 Các phân vùng/ Partition
Trong một hệ thống lưu trữ, số lượng file lưu trữ trên đĩa có thể rất lớn Một số hệ thống lưu trữ hàng triệu tập tin trên các terabytes đĩa Để dễ dàng quản lý tất cả dữ liệu này, chúng ta cần tổ chức lại chúng Việc tổ chức này thường được thực hiện hai phần Thứ nhất, không gian đĩa được chia thành các phân vùng khác nhau, và mỗi phân vùng như vậy gọi là 1 partition (minidisk - IBM, volume - Microsoft) hay còn gọi là đĩa logic Đĩa logic cho phép chia không gian đĩa thành những vùng riêng biệt, có kích thước nhỏ hơn kích thước đĩa vật lý Các vùng riêng biệt này được quản lý và sử dụng độc lập, không phụ thuộc vào các phần khác Mỗi phân vùng này có thể chứa 1 hệ điều hành riêng, được tổ chức theo quy định của hệ điều hành được gọi Ngược với cách trên, người ta có thể tạo ra đĩa logic từ những vùng không gian khác nhau trên các đĩa vật lý khác nhau Kích thước đĩa logic khi đó có thể lớn hơn kích thước của mỗi đĩa vật lý Thứ hai, mỗi phân vùng chứa thông tin về các tập tin trong nó Thông tin này giữ trong những mục từ trong một thư mục thiết bị hay bảng mục lục phân vùng Thư mục thiết bị (được gọi đơn giản là thư mục) ghi thông tin như tên, vị trí, kích thước và kiểu đối với tất cả tập tin trên phân khu
Hình 2.7: Tổ chức hệ thống tập tin điển hình
Trang 132.2 Các thao tác với thư mục
Thư mục là bảng chuyển cho phép ánh xạ cho phép ánh xạ từ một tên (file) thành một phần tử trong thư mục Một thư mục có thể được tạo theo nhiều cách khác nhau nhưng vẫn phải đảm bảo yêu cầu các thao tác chèn, tạo mới, xóa, duyệt danh sách Trong phần này, chúng ta xem xét nhiều cơ chế định nghĩa cấu trúc luận lý của hệ thống thư mục Khi xem xét một cấu trúc thư mục cụ thể, chúng ta cần nhớ các thao tác được thực hiện trên một thư mục
- Tìm kiếm file: Cấu trúc thư mục phải cho phép tìm kiếm file theo tên file hay chính xác hơn là tìm kiếm khoản mục ứng với file theo tên file đó Trong trường hợp cần tìm một nhóm file có tên tương tự hoặc tìm kiếm file mà không nhớ chính xác tên, hệ thống cần cung cấp khả năng tìm các file có tên phù hợp với mẫu yêu cầu Các kỹ tự thường được sử dụng để xây dựng mẫu là ký tự “*” thay thế cho một chuỗi kỹ tự bất kỳ và ký tự “?” thay thế cho một ký tự bất kỳ Ví dụ, trong Windows, mẫu “*.c” ứng với tất cả các file có phần mở rộng là “c”
- Tạo file: như đã nói trong phần các thao tác với file, việc tạo file đòi hỏi phải tạo
ra khoản mục mới và thêm vào thư mục
- Xoá file: ngoài việc giải phóng không gian mà file chiếm, thông tin về file và khoản mục tương ứng cũng bị xoá khỏi thư mục
- Liệt kê thư mục: Liệt kê files và nội dung phần tử tương ứng trong thư mục
- Đổi tên file: người dùng cần có khả năng thay đổi tên file khi có nhu cầu (chẳng hạn để phản ánh nội dung mới của file sau khi thay đổi) Thao tác đổi tên chỉ cần thực hiện với thư mục chứ không liên quan tới dữ liệu của file Tuỳ theo cách tổ chức bên trong của thư mục, việc đổi tên file có thể gây ra sự sắp xếp lại thứ tự file trong thư mục
- Duyệt hệ thống file: một thao tác quan trọng với thư mục là liệt kê tất cả các file chứa trong thư mục cũng như thông tin chứa trong khoản mục của file (backup dữ liệu lên băng từ)
2.3 Thư mục một mức
Thư mục một mức là kiểu tổ chức thư mục đơn giản nhất hay nói chính xác hơn
là không có cấu trúc gì cả Hệ thống chỉ có một thư mục duy nhất và tất cả các file được giữ trong thư mục này
Trang 14Hình 2.8: Thư mục một mức
Ưu điểm của thư mục một cấp là có cấu trúc đơn giản, dễ hiểu và dễ triển khai
Nó phù hợp cho các hệ thống tệp nhỏ hoặc đơn giản, không yêu cầu quản lý phức tạp Tuy nhiên, cách tổ chức thư mục một mức có một số nhược điểm lớn Do các file được sắp xếp trong một thư mục duy nhất nên để có thể phân biệt, tên file không được phép trùng nhau Khi số lượng file tăng, việc tìm các tên khác nhau cho file là không
dễ dàng Đặc biệt, khi có nhiều người cùng sử dụng hệ thống rất dễ xẩy ra khả năng nhiều người chọn tên file giống nhau Một ví dụ dễ thấy khi tất cả sinh viên một lớp cùng lập trình một bài tập và lưu chương trình của mình trong thư mục duy nhất Ngoài ra, trong trường hợp độ dài file bị hạn chế tương đối ngắn, số tổ hợp tên file có thể cũng không cho phép chọn nhiều tên file vừa có nghĩa vừa khác nhau.Một nhược điểm nữa của thư mục một mức là số lượng file trong thư mục rất lớn, do vậy việc tìm được file trong thư mục sẽ tốn nhiều thời gian
Thư mục một cấp không phổ biến trong các hệ điều hành hiện đại do giới hạn của
nó trong việc quản lý tệp tin và thư mục Tuy nhiên, nó vẫn có thể được kết hợp với các phương pháp quản lý thư mục khác để tạo ra hệ thống tệp phức tạp hơn và hiệu quả hơn, được sử dụng trong các trường hợp đơn giản hoặc khi không cần sự phân cấp thư mục
2.4 Thư mục hai mức
Để tránh tình trạng nhiều người sử dụng chọn cùng tên file, một giải pháp đơn giản là phân cho mỗi người một thư mục riêng chỉ chứa các file do người đó tạo Mặc dù tất cả các file vẫn được chứa trên cùng một đĩa, chúng được chia thành các nhóm lôgic theo từng người dùng Hệ thống vẫn duy trì một thư mục gọi là thư mục gốc Các khoản mục ứng với thư mục người dùng được chứa trong thư mục gốc này Đây là phương pháp tổ chức thư mục hai mức
Trang 15Hình 2.9: Thư mục hai mức Mỗi khi người dùng truy cập file, file sẽ được tìm kiếm trong thư mục ứng với tên người đó (tên đăng nhập) Do vậy, những người dùng khác nhau có thể đặt tên file trùng nhau mà không sợ lẫn lộn Tên file chỉ cần khác nhau trong từng thư mục Các thư mục người dùng có thể được tạo ra và xoá đi nếu cần Thông thường việc tạo và xoá thư mục người dùng sẽ được giao cho quản trị mạng Đây là người dùng có các quyền đặc biệt, trong đó có các quyền liên quan tới quản lý hệ thống thư mục Sau khi đã chia thư mục thành hai mức, mỗi người dùng sẽ làm việc với tập hợp các file trong thư mục của mình Cách phân chia file độc lập như vậy rất thuận tiện khi người sử dụng làm việc độc lập với nhau Tuy nhiên trong quá trình làm việc, có thể xuất hiện nhu cầu sử dụng chung file Một số hệ thống cho phép người dùng truy cập thư mục người dùng khác nếu được cấp quyền Một số hệ thống hạn chế người dùng trong thư mục của mình
Nếu việc truy cập thư mục của người khác được cho phép thì ngoài tên file, người dùng phải chỉ rõ file cần truy cập nằm trong thư mục nào Nói cách khác, người dùng phải cung cấp đường dẫn tới file Chi tiết về đường dẫn sẽ được trình bầy trong phần sau
Ngoài các file do người dùng tạo ra, trong hệ thống còn tồn tại một loạt những file thường được nhiều người dùng truy cập tới như file hệ thống, những tiện ích.v.v Để sử dụng được các chương trình như vậy có thể chép chúng vào từng thư mục của từng người dùng Cách này rõ ràng gây lãng phí không gian nhớ vì phải lưu nhiều bản sao của chương trình
Một cách giải quyết tốt hơn và được nhiều hệ điều hành sử dụng là lưu các chương trình dùng chung vào một thư mục đặc biệt Thư mục này có thể tạo ra như dành cho một người dùng đặc biệt nào đó Khi người chạy một chương trình Chương trình đó trước tiên được tìm trong thư mục của người dùng Nếu không tìm thấy, hệ điều hành sẽ