1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn học phần nguyên lý hệ điều hành đề tài giao diện quản lý bộ nhớ ngoài

26 5 0

Đ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 đề Giao diện quản lý bộ nhớ ngoài
Tác giả Đặng Hải Mai Linh
Người hướng dẫn ThS. Đỗ Tuấn Anh
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Nguyên lý hệ điều hành
Thể loại bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 26
Dung lượng 598,58 KB

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

Nội dung

Khái niệm File Nói chung, file là tập hợp các thông tin được lưu trữ dưới dạng chuỗi bit, nộidung của File được định nghĩa bởi người tạo File và người dùng File  File được lưu trữ tron

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

-* -BÀI TẬP LỚN

HỌC PHẦN: NGUYÊN LÝ HỆ ĐIỀU HÀNH

Đề tài:

GIAO DIỆN QUẢN LÝ BỘ NHỚ NGOÀI

Họ và tên : Đặng Hải Mai Linh

Trang 2

Mục lục

1 Khái niệm File 3

1.1 Thuộc tính của file 3

1.2 Thao tác trên File 4

1.3 Kiểu file 7

1.4 Cấu trúc file 8

1.5 Cấu trúc file trong hệ thống 8

2 Các phương thức truy cập file. 8

2.1 Truy cập tuần tự (sequential access) 9

2.2 Truy cập trực tiếp (Direct Access) 9

2.3 Các phương pháp truy cập khác. 10

3 Cấu trúc bộ nhớ và thư mục. 10

3.1 Cấu trúc lưu trữ. 10

3.2 Tổng quan về thư mục. 11

3.2.1 Thư mục đơn tầng (Single-level directory) 12

3.2.2 Thư mục hai tầng (Two-level Directory) 12

3.2.3 Thư mục cấu trúc cây (Tree-structured Directory) 13

3.2.4 Thư mục đồ thị Acylic (Acylic-graph Directory) 16

3.2.5 Thư mục cây tổng quát (General Graph Directory) 17

4 Liên kết các hệ thống file 18

5 Chia sẻ file 19

5.1 Chia sẻ file giữa những người dùng máy tính 19

5.2 Chia sẻ giữa các hệ thống file ngoài máy tính. 20

5.2.1 Mô hình máy khách-máy chủ (client-server) 20

5.2.2 Hệ thống thông tin phân tán (Distributed information System) 20

5.2.3 Xử lí các mâu thuẫn có thể xảy ra khi sử dụng chung file 21

6 Bảo vệ file 22

Trang 3

6.1 Kiểm soát truy cập file 22 6.2 Kiểm soát người dùng 23

6.3 Các phương pháp bảo vệ khác 25

Trang 4

1 Khái niệm File

 Nói chung, file là tập hợp các thông tin được lưu trữ dưới dạng chuỗi bit, nộidung của File được định nghĩa bởi người tạo File và người dùng File

 File được lưu trữ trong các thiết bị lưu trữ, ví dụ như: đĩa từ, băng, đĩa cững

 Hệ điều hành cung cấp một khung nhìn thân thiện cho người dùng, cho phéptạo ra một bộ nhớ ảo, ánh xạ từ thiết bị bộ nhớ vật lý như đĩa từ sang đơn vị lưu trữ logic, tạo nên các file

 Các file được ánh xạ sang thiết bị lưu trữ vật lý nhờ hệ điều hành

 File lưu trữ các chương trình và dữ liệu Dữ liệu có thể là số, chữ cái, hoặc các bit nhị phân để biểu diễn các dữ liệu khá như ảnh, âm thanh, video

 Có 3 loại File chính:

o Text file: chuỗi các kí tự được sắp xếp thành hàng, có thể thành trang

o Source file: Chuỗi các hàm (functions), mỗi function được tổ chức thành các định nghĩa và các dòng lệnh thực thi

o Executable file: Các phần mã chương trình mà máy tính có thể nạp vào bộ nhớ và thực thi chương trình

1.1 Thuộc tính của file.

 Các thuộc tính của file thay đổi tùy từng hệ điều hành, trong đó tiêu biểu gồm:

o Tên (name): Khi một file được đặt tên, file đó trở nên độc lập với các tiến trình, người dùng và hệ thống tạo ra file Tên file có thể là một chuỗi kí tự để người dùng dễ đọc

o Mã định danh (Identifier): Một tag đặc biệt (vd: một con số, ), định danh file đó trong hệ thống file Con người không thể đọc mã này

o Kiểu file (type): Cần thiết để hệ thống và ứng dụng quản lý và đọc filenày

o Địa chỉ (location)

o Kích thước (size)

o Lớp bảo vệ (protection): các phương thức cấp quyền xem và sửa file,

để bảo vệ file khỏi truy cập không tin cậy

o Ngày giờ, danh tính người dùng (Time, date and user identifier)

Trang 5

Cửa sổ thông tin của một tệp tin trên HĐH Window

1.2 Thao tác trên File

a Các thao tác cơ bản

Các thao tác cơ bản mà hệ điều hành có thể cung cấp lời gọi hệ thống để thực hiện:

Tạo File

o Tạo không gian chứa file trong hệ thống file

o Sau khi tạo file, hệ diều hành tạo đường dẫn (directory entry) tới file mới trong thư mục

Viết File

o Tìm kiếm trên thư mục để phát hiện vị trí của file

o Đặt con trỏ viết (write pointer) đến vị trí chuẩn bị viết trong file

o Khi người dùng viết file, con trỏ viết (write pointer) phải được cập nhật vị trí liên tục

Đọc File

o Tìm kiếm trên thư mục để phát hiện vị trí của file

o Cần sử dụng con trỏ đọc (read pointer) ở vị trí chuẩn bị đọc file

Trang 6

o Vị trí đang đọc hiện tại có thể được đánh dấu là con trỏ vị trí hiện tại trong file để thực hiện thêm thao tác viết file.

o Read pointer và write pointer có thể dùng chung con trỏ vị trí này, giúp tiết kiệm bộ nhớ và giảm độ phức tạp của hệ thống

Thay đổi vị trí trong file

o Trong mỗi file đều chứa con trỏ vị trí hiện tại của file, con trỏ này có thể thay đổi vị trí

o Thao tác thay đổi vị trí hiện tại không cần các thao tác vào ra (I/O Operation)

Xóa file

o Để xóa file, ta tìm kiếm file cần xóa trong thư mục

o Khi tìm thấy file, ta thực hiện giải phóng không gian bộ nhớ của file

để sử dụng cho các file khác, đồng thời xóa đường dẫn tới file trong thư mục

Cắt bới file

o Nếu người dùng muốn xóa nội dung file nhưng giữ nguyên các thuộc tính các như tên, địa chỉ trong thư mục, hệ điều hành cho phép người dùng thay đổi độ dài file và giải phóng bộ nhớ đã xóa, đồng thời giữ các thuộc tính khác như tên, địa chỉ trong file

Đây là 6 thao tác cơ bản trên file mà các hệ điều hành cần có Ngoài ra hệ điều hành cung cấp các thao tác khác để thực hiện trên file

 Để giảm bớt thao tác tìm kiếm file trên thư mục liên tục, nhiều hệ thống yêu

cầu lời gọi hệ thống open() trước khi một file cần sử dụng Những file được

thực hiện open() được lưu thông tin trong bảng open-file table Khi người

dùng thao tác trên file, hệ thống có thể tìm kiếm ngay trên bảng Khi file không được dùng, hệ thống đóng file và xóa thông tin khỏi bảng

 Hầu hết các hệ thống yêu cầu lập trình viên thực hiện lệnh gọi hệ thống

open() để mở file trước khi sử dụng file Lệnh gọi hệ thống open() thực hiện tìm file trong thư mực, lưu thông tin vào bảng open-file trả lại một con trỏ

đến file trong bảng Ta có thể sử dụng con trỏ đó để thực hiện các thao tác vào-ra, không cần tìm lại file, giúp đơn giản hóa giao diện lời gọi hệ thống

 Một vấn đề khác khi sử dụng file là khi nhiều ứng dụng cùng mở một file, điều này có thể xảy ra bế tắc và sai lệch thông tin file, đồng thời khiến thao

Trang 7

tác open() và close() trên file phức tạp hơn Để khắc phục vấn đề, hệ điều

Khi một tiến trình mở 1 file, một con trỏ truy cập mới được thêm vào open-file table của tiến trình, trỏ đến con trỏ truy cập phù hợp trên system-wide open-file

table Trong mỗi file trong bảng system-wide open-file table có một biến count để lưu số tiến trình đang sử dụng file Mỗi lệnh hệ thống close() sẽ giảm biến count, khi ( count = 0 ) thì hệ thống đóng file, xóa thông tin của file trong bảng open-file

table và system-wide open-file table

Tóm lại, với mỗi file đang được mở open() sẽ đi kèm các thông tin sau:

 File pointer: con trỏ vị trí hiện tại của file để thực hiện thao tác read() và write() Trong mỗi tiến trình, file có một file pointer độc lập với các thuộc

Trang 8

o Khóa file tạm thời (advisory lock): Khi một tiến trình thực hiện khóa file, các tiến trình khác phải được lập trình để thu hồi khóa trước khi truy cập file.

Ví dụ, hệ điều hành Windows áp dụng mandatory lock, với UNIX thì áp dụng advisory lock

1.3 Kiểu file

 Khi thiết kế hệ thống file, lập trình viên phải kiểm tra hệ điều hành có nhận diện kiểu file được hỗ trợ không

 Khi cấu hình kiểu file, ta thêm định dạng kiểu file như một phần tên file

Tên file có dạng: name.extension.

 Hệ điều hành đọc phần định dạng file (extension) để xác định kiểu file và các thao tác được thực hiện trên file

 Các định dạng này không được hỗ trợ bới hệ điều hành, nhưng sẽ giúp các ứng dụng có thể thực thi các thao tác được thực hiện trên file

Các kiểu file phổ biến

Trang 9

1.4 Cấu trúc file

 Cấu trúc bên trong một file được xác định bằng kiểu file Hệ điều hành yêu cầu một số file phải tuân theo một cấu trúc quy định được định sẵn trong hệ điều hành Điều này khiến hệ điều hành phải chứa một số lệnh để hỗ trợ nhiều kiểu cấu trúc file, khiến kích thước hệ điều hành tăng lên

 Một số hệ điều hành hỗ trợ một số kiểu cấu trúc file nhất định Trong UNIX,mỗi file là một chuỗi các byte 8 bit, hệ điều hành không cần dịch các bit này.Mỗi chương trình phải có những lệnh riêng để thông dịch file theo cấu trúc phù hợp Tuy nhiên, hệ điều hành phải hỗ trợ file thực thi (.exe) để hệ điều hành có thể nạp và chạy chương trình

1.5 Cấu trúc file trong hệ thống

 Các thao tác vào-ra trên bộ nhớ thực hiện theo từng block, và các block có kích thước giống nhau, phụ thuộc kích thước của một sector Nhưng các bản ghi logic có độ dài khác nhau, nên cần đóng gói một số lượng bản ghi logic

và từng block vật lý

 Ví dụ, hệ điều hành UNIX quy định các file là chuỗi các byte Mỗi byte được đánh địa chỉ riêng biệt bằng chỉ số offset ở đầu file Nên kích thước bản ghi logic là 1 byte, Hệ thống đóng gói các byte vào từng block trong địa chỉ vật lý, ví dụ: 512 byte một block

 Kích thước bản ghi logic, kích thước block vật lý, kĩ thuật đóng gói

(packing) quyết định số bản ghi logic trong mỗi block vật lý Việc đóng gói thực hiện bới các chương trình của hệ điều hành

 Việc kích thước các block cố định có thể khiến một số phần của block bị lãng phí

Ví dụ: nếu 1 block có kích thước 512 byte, một file 1949 byte sẽ cần 4 block, thừa

99 byte !

Việc lãng phí block luôn xảy ra ở mọi hệ thống, để đảm bảo mọi file được lưu trữ theo block, tránh hiện tượng phân mảnh (internal fragmentation)

2 Các phương thức truy cập file.

Khi cần sử dụng, hệ thống cần truy cập vào thông tin trong file và đọc thông tin vào bộ nhớ máy tính Sau đây là một số phương thức truy cập file phổ biến

Trang 10

2.1 Truy cập tuần tự (sequential access)

 Truy cập tuần tự là truy cập file từ đầu file, các thông tin trong file được xử

lí tuần tự từng bản ghi

Cách truy cập này được sử dụng trong các hệ thống dịch, editor và compiler

Cách thức: khi đọc file, hệ thống gọi câu lệnh hệ thống readnext() ,đọc phần tiếp theo của file và tự động tăng con trỏ vị trí hiện tại trong file (current-file-location pointer) Tương tự với hoạt động viết file, câu lệnh writenext() được gọi, viết tiếp vào cuối file và tịnh tiến đển cuối chuỗi được nhập vào file

2.2 Truy cập trực tiếp (Direct Access)

 Hình thức truy cập trực tiếp quy định cấu tạo một file từ các bản ghi có độ dài cố định, cho phép các chương trình đọc và viết các bản ghi với tốc độ nhanh theo một thứ tự bất kỳ

 Với hình thức truy cập trực tiếp, các thao tác trên file cần được điều chỉnh đểthêm số hiệu bản ghi (số hiệu block) là tham số Theo đó, lệnh read(n) sẽ đọc từ khối thứ n của file, khác với readnext() và write(n) thay vì

writenext() Đặc biệt số hiệu block được người dùng cung cấp thường là số hiệu tương đối so với block đầu file của file Block đầu tiên của file là 0, tiếptheo là 1 và nhiều hơn

 Không phải mọi hệ điều hành đều hỗ trợ truy cập tuần tự và truy cập trực tiếp Nhưng lập trình viên có thể cấu hình truy cập tuần tự trên các file truy

cập trực tiếp bằng cách thêm biến cp xác định vị trí hiện tại trong file.

Cấu hình truy cập tuần tự trên file truy cập trực tiếp.

Trang 11

2.3 Các phương pháp truy cập khác.

 Truy cập theo chỉ số (index access): phương pháp dựa theo truy cập trực tiếp, sử dụng chỉ số index chứa con trỏ trỏ đến nhiều block Để tìm một bản ghi trong file, hệ thống cần tìm chỉ số index và dùng con trỏ trong index để truy cập trực tiếp đến file và tìm bản ghi mong muốn Với các file lớn, ta có thể tạo chỉ số cho các file chỉ số Chỉ số chính chứa con trỏ đến các file chỉ

số thứ cấp, nơi lưu trữ con trỏ chỉ đến dữ liệu cần tìm

3 Cấu trúc bộ nhớ và thư mục.

 Các file được lưu trữ trên các thiết bị truy cập ngẫu nhiên, bao gồm đĩa cững, đĩa từ, đĩa tĩnh Các thiết bị lưu trữ có thể được sử dụng toàn bộ dung lượng để lưu trữ file, hoặc có thể được chia nhỏ để quản lý thuận tiện hơn Các thiết bị lưu trữ có thể được kết nối với nhau thành các tập RAID để bảo

vệ file khi một đĩa bị hỏng

 Một hệ thống file có thể lưu trên từng phần của thiết bị lưu trữ Một phần thiết bị lưu trữ hệ thống file gọi là một volumn Một volumn có thể là một phần thiết bị lưu trữ, toàn bộ thiết bị, hoặc nhiều thiết bị kết nối với nhau thành một RAID Các volumn có thể chứa nhiều hệ điều hành, cho phép hệ thống nạp và chạy nhiều hơn 1 hệ điều hành

 Một volumn chứa một hệ thống file phải chứa thông tin về các file trong hệ thống Thông tin được lưu trong đầu vào của thư mục của thiết bị hoặc trongmột volumn chứa các bảng lưu thông tin Thư mục này lưu các thông tin gồm: tên, vị trí, địa chỉ, kích thước, của tất cả file trong hệ thống file

Trang 12

o objfs là một hệ thống file "ảo" cho phép trình vá lỗi truy cập vào các

ký hiệu kernel Về cơ bản, nó giao diện hóa hệ thống kernel giống nhưmột hệ thống file

o ctfs: Hệ thống file ảo theo dõi dữ liệu "bắt buộc" để kiểm soát chươngtrình nào được khởi chạy khi khởi động hệ thống và phải được duy trì hoạt động trong suốt quá trình hoạt động

+ lofs là hệ thống file "loop back " cho phép truy cập vào một hệ thống file thay cho hệ thống file khác

o procfs: hệ thống file ảo, cho phép xem dữ liệu trên tất cả các tiến trìnhdưới dạng hệ thống file

o ufs, zfs: hệ thống file phục vụ các mục đích chung

o Có rất nhiều hệ thống file trong máy tính Trong mỗi hệ thống, các filenên được chia thành các nhóm và quản lý và hoạt động theo nhóm

Từng nhóm file được gọi là các thư mục (directories).

3.2 Tổng quan về thư mục.

 Thư mục được sử dụng để chuyển đổi tên file thành điểm vào thư mục

(directory entries) Cấu trúc logic của thư mục có thể được xác định bằng nhiều cơ chế Các thao tác có thể thực hiện trên thư mục

1 Tìm kiếm các file: Để tìm một file cụ thể, bạn cần có khả năng tìm kiếm cấu

trúc thư mục Các file có tên tượng trưng và các tên tương tự có thể biểu thị mối quan hệ giữa các file, vì vậy hệ thống cần tìm tất cả các file có tên khớp với một mẫu nhất định

2 Tạo file trên thư mục: Người dùng có thể tạo file mới và thêm vào thư mục.

3 Xóa file: Khi một file không cần thiết, hệ thống có thể xóa được file khỏi thư

mục

4 Liệt kê file: Cần liệt kê các file trong thư mục và nội dung đầu vào thư mục của

mỗi file trong danh sách

5 Đổi tên file: Tên của một file đại diện cho nội dung của nó đối với người dùng,

do đó, có thể thay đổi tên nếu nội dung hoặc cách sử dụng file thay đổi Đổi tên filecũng có thể thay đổi vị trí của nó trong cấu trúc thư mục

Trang 13

6 Duyệt hệ thống file: Đôi khi ta muốn truy cập tất cả các thư mục và file trong

cấu trúc thư mục Vì lý do độ tin cậy, ta nên thường xuyên sao lưu nội dung và cấutrúc của toàn bộ hệ thống file của mình Trong hầu hết các trường hợp, hãy sao chép tất cả các file vào băng từ Kỹ thuật này cung cấp một bản sao dự phòng trongtrường hợp lỗi hệ thống Ngoài ra, khi một file không còn được sử dụng, nó có thể được sao chép vào băng, giải phóng không gian đĩa của file để các file khác sử dụng lại

Để thực hiện các thao tác trên, các thư mục có các cấu trúc riêng phục vụ các chức năng Các kiểu cấu trúc thư mục:

3.2.1 Thư mục đơn tầng (Single-level directory)

Trong thư mục đơn tầng, tất cả các file trong hệ thống nằm trong cùng một thư mục

Thư mục đơn tầng

- Lợi ích: Thư mục đơn tầng dễ hỗ trợ và dễ hiểu với người dùng

- Nhược điểm: Vì tất cả file trong cùng thư mục, các file phải có tên riêng biệt, điều này khiến người dùng khó nhớ tên tất cả các file khi số lượng file tăng lên

3.2.2 Thư mục hai tầng (Two-level Directory)

Trong thư mục hai tầng, Mỗi người dùng có Thư mục file người dùng (User Files Directory-UFD) riêng Các UFD có cấu trúc tương tự, nhưng mỗi UFD chỉ liệt kê các file của một người dùng Khi người dùng bắt đầu công việc của mình hoặc khi người dùng đăng nhập, thư mục file chính của hệ thống (master file directory-MFD) sẽ được tìm kiếm MFD được lập chỉ mục theo tên người dùng hoặc số tài khoản, với mỗi mục nhập trỏ đến UFD của người dùng đó

Ngày đăng: 19/12/2023, 15:23

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w