1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình Hệ điều hành - Phần 4.6

52 2,5K 3
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 đề Hệ Thống Quản Lý Tập Tin
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Hệ Điều Hành
Thể loại Giáo trình
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 52
Dung lượng 490 KB

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

Nội dung

Cài đặt hệ thống tập tinCấu trúc Entry của tập tinDirectory Entry  Trước khi tập tin được đọc, ghi hệ thống phải biết đường dẫndo người sử dụng cung cấp từ đó định vị được cấu trúc entr

Trang 1

Chương 4: Hệ thống quản lý tập tin

Các khái niệm tập tin- thư mục

Mô hình quản lý và tổ chức tập tin

Các chức năng hệ thống tập tin

Cài đặt hệ thống tập tin

Hệ thống tập tin hệ điều hành MS-DOS

Hệ thống tập tin hệ điều hành Unix

Trang 2

Các khái niệm tập tin – thư mục

Tập tin

Tập tin là đơn vị lưu trữ thông tin của bộ nhớ ngoài.

Các tiến trình có thể đọc hay tạo mới tập tin.

Các thông tin trong tập tin là bền vững không bị ảnh hưởng bởi các xử lý ngoại trừ người sử dụng muốn xóa.

Tập tin được quản lý bởi hệ điều hành.

Thư mục

Thư mục lưu trữ các tập tin theo một qui định.

Một số hệ thống coi thư mục cũng như là tập tin.

Trang 3

Mô hình quản lý và tổ chức tập tin

Tập tin

 Tên tập tin:

Mỗi tập tin được quản lý bằng một tên

Cách đặt tên tập tin mỗi hệ diều hành là khác nhau

 Cấu trúc tập tin:

Dãy các byte không có cấu trúc

Dãy các record có chiều dài cố định

 Kiểu tập tin: Các hệ điều hành hỗ trợ cho nhiều loại tập tin khác nhau

Tập tin thường: là tập tin text hay nhị phân chứa các thông tin của người sử dụng

Thư mục: là một loại tập tin hệ thống dùng lưu trữ cấu trúc hệ thống tập tin

Tập tin có ký tự đặc biệt: liên quan đến nhập xất thông qua các thiết

bị nhập xuất

 Thuộc tính của tập tin: Các thông tin về tập tin gọi là thuộc tính tập tin

Trang 4

Mô hình quản lý và tổ chức tập tin(tt)

 Thuộc tính tập tin thường là các thông tin:

Bảo vệ: bảo vệ việc truy xuất từ người sử dụngMật khẩu: Mật khẩu cần thiết khi truy xuất

Người tạo: Chỉ danh người tập tin

Người sở hữu: Chỉ danh người sở hữu hiện tại

Chỉ đọc: 0: đọc ghi, 1: chỉ đọcẨn: 0 bình thường, 1 không hiển thị khi liệt kế

hệ thống: 0 bình thường, 1 tập tin hệ thống Khoá: 0 không khóa, 1 bị khóa

Độ dài record: số byte trong một recordThời gian tạo: ngày , giờ tạo tập tinThời gian truy xuất sau cùng: ngày , giờ truy xuất gần nhấtThời gian thay đổi cuối cùng: ngày, giờ thay đổi tập tin

Kích thước hiện thời: Số byte tập tin

………

Trang 5

Mô hình quản lý và tổ chức tập tin(tt)

Thư mục

 Hệ thống thư mục cấp bậc:

Một thư mục thường chứa các entry Mỗi entry thể hiện cho một tập tin( chứa các thuộc tính tập tin)

Số lượng thư mục trên mỗi hệ điều hành là khác nhau

Một số hệ thống chỉ có một thư mục duy nhất, nhưng một số hệ thống có thư mục gốc, trong thư mục gốc có các thư mục con và trong các thư mục con lại có các thư mục con nữa

 Đường dẫn

Trong hệ thống tổ chức thư mục cấp bậc theo hình cây có hai cách

để xác định một tập tin: đường dẫn thuyệt đối, đường dẫn tương đối

Trong hầu hết các hệ điều hành tổ chức thư mục “.” và

“ ” để chỉ ra thư mục hiện hành và thư mục cha

Trang 6

Các chức năng của hệ thống tập tin

Trang 7

Cài đặt hệ thống tập tin

Cấu trúc Entry của tập tin(Directory Entry)

 Trước khi tập tin được đọc, ghi hệ thống phải biết đường dẫndo người

sử dụng cung cấp từ đó định vị được cấu trúc entry của tập tin

 Cấu trúc một entry lưu trữ các thông tin về thuộc tính tập tin

Mã NSD Tên TT PMR kích thước , …

Trang 8

TMC1.1TMC1.2

TMC2.1TMC2.2

Trang 9

Cài đặt hệ thống tập tin(tt)

Quản lý các vùng nhớ trên đĩa: Lưu trữ các thông tin về các ô nhớ

đã sử dụng chưa, các ô nhớ đã sử dụng thuộc về tập tin, thư mục nào

 Phương pháp định vị liên tiếp: lưu trữ nội dung tập tin trên một dãy các khối liên tiếp nhau.

Ưu điểm : dễ cài đặt, dễ thao tác trên các tập tin Khuyết điểm: Xử lý phức tạp khi kích thước tập tin thay đổi,

Sự phân mảnh trên đĩa gây lãng phí

 Phuơng pháp định vị bằng danh sách liên kết: Không có sự phân mảnh vì các ô nhớ được cấp phát hết, truy xuất chậm vì các ô nhớ chưa nội dung tập tin nằm rải rác.

Ô

nh ớ

th ứba

Ô

nh ớ

th ứn

Trang 10

 Phiên bản 2.0 ra đời tháng 03/1983 : Hệ thống tập tin tổ chức theo mô hình cấp bậc, quản lý đĩa cứng 10MB, cài đặt các thiết

bị bằng tập tin config.sys

Trang 11

Hệ thống tập tin HĐH MSDOS(tt)

đĩa mềm 1.2MB, sử dụng Đĩa ảo

2GB, sử dụng bộ nhớ mở rộng là đĩa ảo

dùng để lưu trữ các driver của thiết bị.

DBLSPACE, tạo bộ nhớ cho đĩa với SmartDrv, tối ưu

bộ nhớ bằng trình memmaker.

Trang 12

 Cấu trúc hệ thống tập tin.

Bootsec ch aứ FAT FAT d phòngự C u trúc ROOT ấ vùng d li uữ ệ

Trang 13

h+3 8 Version Tên Cty, Version của HĐH

+0Bh 2 SecSiz Số byte trong một sector

+0Dh 1 ClustSiz Số sector của cluster

+0Eh 2 ResSec Số Sector trước bảng FAT

+11h 2 RootSiz Số Entry tối đa của ROOT

+13h 2 TotSecs Tổng số sector đĩa <32MB

+16h 2 FatSiz Số sector trong bảng FAT

+18h 2 TrkSecs Số sector trên mỗi Track

Trang 14

Hệ thống tập tin HĐH MSDOS(tt)

Đối với đĩa cứng sector đầu tiên là masterboot chứa bảng tham số partition Với một đĩa cứng có thể chi thành 4 partition, mỗi partition được thể hiện bằng một Entry(16byte) có cấu trúc như sau::

Địa chỉ offset bảng partition bắt đầu tại 01BEh

sector bắt đầu (6bit)

=4: Dos FAT 16bit

sector kết thúc (6bit)

Trang 15

Hệ thống tập tin HĐH MSDOS(tt)

 Cấu trúc Fat( file allocation table)

 Khái niệm Cluster: Khi đĩa được format đơn vị nhỏ nhất trên đĩa là

Sector Đối đĩa cứng lớn có nhiều sector mà Dos không thể quản lý được Trong trường hợp này để giảm số sector cần quản lý bằng cách định nghĩa cluster là tập hợp các sector Lúc này Dos chỉ quản lý

Cluster thay vì sector

 Số hiệu các entry trong bảng Fat thể hiện cho các cluster có số hiệu tương ứng trong vùng dữ liệu

 Fat thể hiện thông tin về các cluster còn trống hay không? Và các

cluster đã sử dụng thuộc về tập tin nào

 Do Trong Fat 2 phần tử đầu tiên dành riêng không sử dụng nên số hiệu các entry được đánh số từ 2 trở đi Chính vì vậy số hiệu cluster cũng được đánh số từ 2 trở đi

 Fat có 3 loại : fat 12bit, fat 16bit, fat 32bit Đối với Fat 12bit thì kích

thước mỗi Entry trong Fat là 12 bit và quản lý được số cluster tối đa là (212 -2) Tương tự đối với Fat 16bit và Fat 32bit

 Fat 12bit dùng cho đĩa <32MB, Fat 16Bit dùng đĩa <2GB và Fat 32Bit dùng cho đĩa cứng > 2GB( HĐH Windows)

Trang 16

Hệ thống tập tin HĐH MSDOS(tt)

 Nội dung của Fat

Dos quản lý tập tin bằng cách giá trị entry của cluster này chứa giá trị là số tứ tự entry tiếp theo nó, cứ thế các luster của một tập tin tạo thành một chuỗi cho đến khi gặp dấu hiệu kết thúc tập tin.

 Tuỳ thuộc vào loại fat 12bit hay 16bit các entry có giá trị như sau:

0(000) : Cluster tương ứng số hiệu entry còn trống (0)002- (F)FEF : Cluster đang chứa dữ liệu của một tập tin nào đó, giá trị là của nó là số hiệu cluster kế tiếp (F)FF0 – (F)FF6 : Dành riêng không sử dụng

(F)FF7 : Cluster hỏng (F)FF8- (F)FFF : Cluster cuối cùng của tập tin

Trang 17

Hệ thống tập tin HĐH MSDOS(tt)

✦ Một ví dụ nội dung của Fat:

.Myfile.txt08

Trang 18

Hệ thống tập tin HĐH MSDOS(tt)

Đọc nội dung các Entry trong Fat:

 Nếu Fat 16bit thì địa chỉ entry kế tiếp bằng đĩa chỉ entry hiện thời +2

 Nếu Fat 12 bit : Xét 3 byte một : số hiệu entry chẵn là 12bit thấp và số hiệu entry lẻ là 12 bit cao

………

S hi u Entry 2ố ệ S hi u Entry 3ố ệ S hi u Entry 4ố ệ

Tương ng Cluster 2ứ Tương ng Cluster 3ứ Tương ng Cluster 4ứ

Trang 20

0000

Trang 21

Hệ thống tập tin HĐH MSDOS(tt)

✦ Hàm đọc nội dung Entry Fat 12bit

unsigned NextEntry ( unsigned Index)

Trang 22

Hệ thống tập tin HĐH MSDOS (tt)

Cấu trúc một Entry Trong thư mục gốc hay thư mục con: Mỗi Entry thể hiện cho một tập tin hay thư mục con và lưu trữ các thông tin cần thiết Kích thước Entry là 32 byte

Trang 23

Hệ thống tập tin HĐH MSDOS (tt)

0: Entry này còn trống : Thư mục cha

0E5 : Entry của tập tin này tạm thời bị xóa

Ký tự bất kỳ : tên của một tập tin

1: t p tin nậ ẩ

1: t p tin ch ậ ỉ đọc

1: t p tin h th ngậ ệ ố

1: Nhãn ađĩ1: Th m c conư ụ

1: l u trư ữ

Trang 24

Hệ thống tập tin HĐH MSDOS (tt)

Diễn dải ngày tạo, giờ tạo

7bit: n mă 4bit : tháng 5bit: ngày

5bit: Giờ 6bit : Phút 5bit: giây

Trang 27

typedef union {

unsigned intTime;

Time T ; }UnionTime;

Trang 28

typedef union {

unsigned intDate;

Date Day ; }UnionDate;

Trang 29

Hệ thống tập tin HĐH MSDOS(tt)

Cấu trúc dữ liệu cài đặt:

 Cấu trúc byte thuộc tính tập tin

typedef struct {

unsigned char ReadOnly: 1 ; unsigned char Hidden : 1 ; unsigned char System : 1 ;unsigned char Volume : 1 ;unsigned char SubDir : 1 ;unsigned char Archive : 1 ; unsigned char DR : 2 ;}Attrib;

typedef union {

unsigned char charAtt;

}UnionAttrib;

Trang 30

Hệ thống tập tin HĐH MSDOS(tt)

Cấu trúc dữ liệu cài đặt:

 Cấu trúc một Entry tập tin

typedef struct {

Trang 31

typedef NodeType *PointerType;

List

Trang 33

Hệ thống tập tin HĐH MSDOS(tt)

Cấu trúc dữ liệu cài đặt:

 Hàm đọc Sector từ đĩa vớI số hiệu theo kiểu vật lý

int ReadDiskBios(char *Buff,unsigned Side, unsigned Track, unsigned Sector, unsigned SecNum)

{ union REGS u, v;

Trang 34

return (!v.x.cflag);

}

Trang 35

Hệ thống tập tin HĐH MSDOS(tt)

Hàm đọc đĩa với đầu vào là sector logic

int ReadDisk(char *Buff, long SectorBegin, int SecNum){

unsigned Side, Track, Sector, X;

unsigned char X1;

Sector=(unsigned)(1+(SectorBegin)%Bpb.TrkSec);

Side=(unsigned)(((SectorBegin/Bpb.TrkSec)%Bpb.HeadCnt);Track=(unsigned)((SectorBegin)/(Bpb.TrkSec*Bpb.HeadCnt));X=Track;

Trang 37

Hệ thống tập tin HĐH UNIX

Giới thiệu:

Unix được thiết kế cho hầu hết các loại máy tính.

Unix là môi trường phát triển ứng dụng tốt cho các ứng dụng đòi hỏi tính toán trên bộ xử lý 32bit

Unix là hệ điều hành đa nhiệm nhiều người dùng

Unix được sử dụng nhiều trong các hệ thống mạng lớn Lịch sử phát triển:

Năm 1969 Ken Thompson thiết kế một môi trường để

nghiên cứu và phát triển các chương trình đó là tiền thân của HĐH Unix Unix được viết bằng hợp ngữ và bao

gồm các hệ thống tập tin, cơ chế kiểm soát tiến trình,

công cụ xây dựng chương trình.

Năm 1970 Unix được thiết kế quản lý 24K bộ nhớ, quản

lý tập tin lớn nhất là 64KB.

Trang 38

 Năm 1979 Unix là hệ thống chia xẻ thời gian, kích thước file

quản lý được là 1 tỷ byte.

 Năm 1980 Xenix là HĐH Unix của Microsoft cho bộ xừ lý 16 bit

 Năm 1982 Unix System III của AT&T ra đời cung cấp cơ chế

truy xuất từ xa.

 Ngày nay Unix được phát triển rộng khắp thế giới bởi các công

ty khác nhau và cung cấp môi trường sử dụng thân thiện hơn.

Trang 40

Hệ thống tập tin HĐH UNIX(tt)

Cách quản lý các ô nhớ còn trống trong khối dữ liệu:

Dùng phương pháp Bitmap: Với đĩa có n ô nhớ sẽ được ánh xạ

thành n bit với giá trị 1 là còn trống, giá trị 0 là đã chứa dữ liệu Như vậy một đĩa 20MB cần 20000 bit để lưu trữ thông tin Chiếm

Trang 41

Hệ thống tập tin HĐH UNIX(tt)

Tổ chức lưu trữ tập tin:

thước 64byte bao gồm các thông tin về file: file Node, quyền sở hữu file của người sử dụng, quyền sở hữu nhóm, kích thước file, thời điểm tạo,thời điểm truy cập sau cùng, thời điểm thay đổi sau cùng, địa các ô nhớ chứa nội dung,…

phần: phần đầu gồm 10 pt chứa được 10 địa chỉ ô nhớ Phần thứ 2 gồm 3 con trỏ gián tiếp: Single indirect, double indirect, triple indirect

con trỏ gián tiếp không được sử dụng để ghi địa chỉ

single indirect được sử dụng chỉ đến một ô nhớ dành riêng, ô nhớ này lại chứa 256 địa chỉ của ô nhớ dữ liệu

nhớ và mỗi ô nhớ này lại chứa 256 địa chỉ ô nhớ dữ liệu

Trang 42

Pt256Pt1Pt2

………

Pt256

Trang 43

Hệ thống tập tin HĐH UNIX(tt)

Cấu trúc thư mục Cấu trúc thư mục được sử dụng trong Unix vô cùng đơn giản, mỗi entry bao gồm tên tập tin, số hiệu I-Node của file Mỗi Entry có kích thước 16 byte:

Khi m t file ộ được m , h th ng file ph i xác nh v trí kh i d li u ở ệ ố ả đị ị ố ữ ệtrên ia nh vào đ ờ đường d n ẫ được cung c p.ấ

Ví d ; cách truy tìm file d a vào ụ ự đường d n ẫ được cung c p :ấ

/usr/ast/mbox

Trang 44

Hệ thống tập tin HĐH UNIX(tt)

bảng I-Node

tím ra I-node của thư mục usr.

với ast khi đó tìm được I-node của /usr/ast Tiếp tục tương tự sẽ tìm được I-node của /usr/ast/mbox

c a /usrủ m c /usrụ /usr/ast th m c /usr/astư ụ

Trang 45

Hướng dẫn giải các bài tập

Bài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

1 Phân tích đường dẫn:

void PathAnalyse(char *Path, PointerType &ListPath)

ListPath

Trang 46

Hướng dẫn giải các bài tập

Bài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

2 Đọc bảng tham số đĩa đưa vào BPB : EntryBpb ReadBpB()

3 Đọc bảng Fat : unsigned char FAT[512* Bpb.FatSiz]

Trang 47

Hướng dẫn giải các bài tập

Bài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

4 Lấy danh sách các sector của thư mục gốc : ListClust PointerType GetClusterRoot ()

ListClust

idnId1

Trang 48

Hướng dẫn giải các bài tậpBài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

5 Đọc nội dung thư mục Root vào danh sách ListEntry PointerType GetEntryDir (PointerType ListClust, char flag) flag=0: Đọc các entry thư mục gốc

flag =1: Đọc các entry thư mục con

ListEntry

EntryDirEntryDir

Trang 49

Hướng dẫn giải các bài tập

Bài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

6 Tìm trong ListEntry có thư mục BT không nếu có lấy được số hiệu cluster của thư mục BT và các cluster còn lại bằng hàm NextEntry và lại đưa vào danh sách ListClust mới.

Trang 50

Hướng dẫn giải các bài tập

Bài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

5 Đọc nội dung thư mục BT dựa vào danh sách ListClust mới tìm được PointerType GetEntryDir (PointerType ListClust, char flag)

flag=0: Đọc các entry thư mục gốc flag =1: Đọc các entry thư mục con (đổi số hiệu cluster sang số hiệu Sector CurrSec=Bpb.ResSec+Bpb.Fatsiz*Bpb.FatCnt+(Bpb.RootSiz*32)/512 +( CurrClust-2)*Bpb.ClustSiz;

ListEntry(BT1)

EntryDirEntryDir

Trang 51

Hướng dẫn giải các bài tập

Bài tập 1: Viết chương trình giả lập lệnh DIR trong hệ điều hành MSDOS

VD: người sử dụng cung cấp đường dẫn A:\BT\BT1

7 Duyệt danh sách ListEntry(BT1) để in ra màn hình các tập tin và thư mục con theo định dạng như sau:

void PrintTo(PointerType ListEntry)

Tên Kích thước Ngày tạo Giờ tạo

………… ……… ………… ………

………… ……… ………… ………

………… ……… ………… ………

Trang 52

Hướng dẫn giải các bài tập

Bài tập 2: Viết chương trình giả lập lệnh TYPE trong hệ điều hành MSDOS

VD: người sử dụng cung cấp đường dẫn A:\BT\tt.txt Làm tương tự như trên cuối cùng có danh sách ListClust của tập tin tt.txt Thực hiện xuất từng ký tự trong nội dung các ListClust với số byte là kích thước tập tin.

void PrintFile (PointerType ListClust)

Ngày đăng: 14/07/2014, 11:01

HÌNH ẢNH LIÊN QUAN

Bảng tham số đĩa: lưu trữ các thông tin về đĩa và các thông tin cần  thiết cho hệ thống tập tin. - Giáo trình Hệ điều hành - Phần 4.6
Bảng tham số đĩa: lưu trữ các thông tin về đĩa và các thông tin cần thiết cho hệ thống tập tin (Trang 12)

TỪ KHÓA LIÊN QUAN

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

w