Tải bản đầy đủ (.docx) (27 trang)

Nguyên lý hệ điều hành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (727.24 KB, 27 trang )

Hà Nội, ngày 09 tháng 05 năm 2014
Bộ Giáo dục & Đào tạo
Trường Đại học Mỏ Địa Chất – Khoa CNT
Báo cáo:
BÀI TẬP: NGUYÊN LÝ HĐH
ĐỀ TÀI:
TÌM HIỂU FILE VÀ THIẾT BỊ NHẬP
XUẤT CỦA WINDOWS
Người Hướng Dẫn: Đinh Bảo Ngọc
Nhóm SV Thực Hiên: Lê Đình Hải-1221050202
Lớp: Công Nghệ Phần Mềm K57
1
Nguyên Lý Hệ Điều Hành
LỜI MỞ ĐẦU
Trong xu thế công nghiệp hóa hiện đại hóa ngày nay, ta không thể không
nhắc tới ngành công nghệ thông tin. Ngành khoa học máy tính đã xuất hiện từ rất
lâu buổi sơ khai là nhưng máy tính khổng lồ qua nhiều lần thay đổi máy tính bây
giờ thật nhỏ gọn tiện dụng. Với hệ thống phần mềm ngày càng hoàn thiện hơn.
Chính vì thế việc quản lý file và các thiết bị nhập xuất của hệ thống càng quan
trọng hơn bao giờ hết nó là thứ thiết yếu của một hệ điều hành.
Chính vì vậy nhóm em chọn đề tài quản lý file và các thiết bị nhập xuất của
windows.
Với sự hiểu biết còn hạn chế cộng với vốn kiến thức cần phải học hỏi nhiều nên
bài báo cáo của em không thể tránh khỏi những thiếu sót. Em rất mong có được sự
góp ý của cô giáo và các bạn để kết quả của em được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
2
Nguyên Lý Hệ Điều Hành
MỤC LUC
3
Nguyên Lý Hệ Điều Hành


I. HỆ THỐNG QUẢN LÝ T Ậ

P TIN

1. Khái niệm tập tin – thư mục
 Tập tin ( file)
 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 (Folder)
 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.
 Hệ thống quản lý tập tin
 Các tập tin được quản lý bởi hệ điều hành với một cơ chế riêng gọi là hệ
thống quản lý tập tin.

Hệ thống quản lý tập tin bao gồm: cách hiển thị , các yếu tố cấu thành tập tin,
cách
truy xuất, các thao tác trên tập tin và thư
mục.
2.
Tập tin (file)
 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.
Thuộc tính tập tin thường là các thông
in:
- Bảo vệ: bảo vệ việc truy xuất từ người sử dụng
- Mậ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.
4
Nguyên Lý Hệ Điều Hành
- 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 record
- Thời gian tạo: ngày , giờ tạo tập tin
- Thời gian truy xuất sau cùng: ngày , giờ truy xuất gần nhất
- Thờ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
o Thư mục (fodler)
 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.
3. Các chức năng hệ thống tập tin
Một hệ thống tập tin thông thường bao gồm các chức năng sau:
- Tạo tập tin
- Xoá tập tin
- Mở tập tin
- Đọc, ghi tập tin
- Tìm kiếm tập tin
- Đổi tên tập tin
- Tạo thư mục
- Xóa thư mục
- Đổi tên thư mục
4. Cài đặt hệ thống tập
tin
 Cấu trúc tập tin
- Mỗi tập tin hay thư mục (tập tin đặc biệt) được thể hiện bằng một Entry tập tin.
- Cấu trúc của Entry tập tin lưu trữ thông tin về tập tin tương ứng
- Trước khi tập tin được đọc, ghi hệ thống phải biết đường dẫn do người sử dụng
từ đó định vị được cấu trúc entry của tập tin
5

Nguyên Lý Hệ Điều Hành
- Cấu trúc một entry tập tin:


Hình 1.1

Cấu trúc thư mục
- Thư mục chứa các tập tin do đó chứa các entry của tập tin, kích thước mỗi
Entry tuỳ thuộc mỗi hệ thống
- Trong hệ thống quản lý tập tin cần phải định vị cấu trúc thư mục gốc, và các
- thư mục con

Quản lý vùng nhớ còn trống trên đĩa
Hệ thống quản lý tập tin còn phải thực hiện 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.
6
Nguyên Lý Hệ Điều Hành
Hình 1.2
5. Hệ thống tập tin MS-DOS
 Cấu trúc tổng quát hệ thống tập tin MS-DOS bao gồm các cấu trúc:
- 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.

- Cấu trúc FAT(File Allocation Table): Lưu trữ các thông tin địa chỉ các ô
nhớ còn trống, các ô nhớ nào thuộc về mỗi tập tin,…
- Cấu trúc thư mục gốc(ROOT):Cấu trúc thư mục gốc bao gồm các Entry
của tập tin, thư mục con.
- Vùng lưu trữ dữ liệu(Data): Lưu trữ nội dung tập tin và các cấu trúc thư
mục con. Cấu trúc thư mục con tương tự cấu trúc thư mục
gốc.
Hình 1.3
 Bảng tham số đĩa(BPB): nằm trong bootsec bắt đầu tại địa chỉ offset 0 và
chứa các thông tin:
Offset Kích
thước(B)
Tên, ý nghĩa
+0h 3 JMP Lệnh nhảy đến đọan mồi HĐH
7
Nguyên Lý Hệ Điều Hành
0h+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
+10h 1 FatCnt Số bảng FAT cài đặt
+11h 2 RootSiz Số Entry tối đa của ROOT
+13h 2 TotSecs Tổng số sector đĩa <32MB
+15h 1 Media Byte chỉ danh đĩa
+16h 2 FatSiz Số sector trong bảng FAT
+18h 2 TrkSecs Số sector trên mỗi Track
+1Ah 2 HeadCnt Số đầu đọc ghi
……
+20h 4 TotSec Tổng số sector đĩa >32MB
…….

+3eh
Bắt đầu đoạn CTmồi HĐH
 Đối với đĩa cứng sector đầu tiên là masterboot chứa bảng tham số
partition. Địa chỉ offset bảng partition bắt đầu tại 01BEh . 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:
Offset Kích
thước(B)
Tên, ý nghĩa
8
Nguyên Lý Hệ Điều Hành
+0h 1 Boot =0 không Active, =80h Active
+1h 1 HdBeg Số mặt bắt đầu
+2h 2 SecCylBe
g
Số cylinder bắt đầu(10bit) và sector bắt
đầu
(6bit)
+4h 1 Sys =0Unknown, =1: Dos FAT 12bit, ; =4:
Dos
FAT 16bit
+5h 1 HdEnd Số mặt kết thúc
+6h 2 SecCylEn
d
Số cylinder kết thúc(10bit) và sector kết
thúc
(6bit)
+8h 4 SecLogic Sector bắt đầu tương đối
+0Ch 4 TotSecs Tổng số sector của partition


 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ácentry đượ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à
(2
12
-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
9
Nguyên Lý Hệ Điều Hành
cho đĩa cứng > 2GB( HĐH Windows)
- Nội dung của Fat
o 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ố thứ tự entry tiếp theo nó, cứ thế các cluster 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.
o 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
Một ví dụ nội dung của Fat:
Hình 1.4
0
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0

8
0
9
0a 0
b
0c 0
d
0e 0f
0
0
0
3
0
4
0
5
Ff 0
0
0
0
0
9
0a 0
b
15 0
0
00 0
0
0
0

10
Nguyên Lý Hệ Điều Hành
0
1
0
0
0
0
0
0
0
0
0
0
1
6
1
7
1
9
f7 1a 1
b
Ff 0
0
00 0
0
0
0
0
2

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00 00 0
0
00 0
0
0
0
… … … … … … … … … … … … … … … … …

Hình 1.5
Tập tin myfile.txt dài 10 cluster: 8,9,0a,0b,15,16,17,19,1a,1b

Cluster 18h : đánh dấu hỏng
Cluster 2,3,4,5: thuộc một tập tin nào đó
Các cluster khác còn trống
Tìm các cluster của một tập tin
PointType ReadEntryFile(unsigned int ClustBegin)
{
PointType ListClust, last;
ListClust=last=NULL;
unsigned clust;
clust=ClustBegin;
while(1)
{
InsertLast(ListClust, clust);
clust=NextEntry(clust)
if (clust==0x0fff)
break;
}
return ListClust;
}
Đọc nội dung các Entry trong Fat:
- Nếu Fat 16 bit 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à 12 bit thấp và số hiệu entry
lẻ là 12 bit cao

Hình 1.6
11
Nguyên Lý Hệ Điều Hành
Các biến dùng chung:
unsigned X, X1, Addr;
Trường hợp số hiệu Entry Chẵn

X = FAT[Addr];
X1= FAT[Addr+1];
X1= X1<<8;
X = X + X1;
X = X & 0x0FFF;
Trường hợp số hiệu Entry lẻ
X = FAT[Addr];
X1= FAT[Addr+1];
X1= X1 <<8;
Các biến dùng chung:
unsigned X, X1, Addr;
Trường hợp số hiệu Entry Chẵn
X = FAT[Addr];
X1= FAT[Addr+1]; X1= X1 <<8;
X = X + X1;
X = X & 0x0FFF;
Trường hợp số hiệu Entry lẻ
X = FAT[Addr]; X1= FAT[Addr+1]; X1=
X1 <<8;
X = X + X1;
X = X >>4;
12
Nguyên Lý Hệ Điều Hành
Hàm đọc nội dung Entry Fat 12bit
unsigned NextEntry ( unsigned Index)
{ unsigned X, X1, Addr;
Addr= (Index *3 )/ 2; X = FAT[Addr];
X1= FAT[Addr+1];
X1= X1 <<8; X = X + X1;
if ((Index %2)==0

X= X & 0X0FFF;
else
x = x<<4;
return x;
}
 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
Offset Kích thước Nội dung
+0h 8 Tên tập tin hay thư mục
+8h 3 Phần mở rộng tên tập tin
+0bh 1 Thuộc tính tập tin
+0ch 0ah Dành riêng không sử dụng
+16h 2 Thời gian tạo
+18h 2 Ngày tạo
+1ah 2 Số hiệu cluster đầu tiên
+1ch 4 Kích thước tập tin (bytes)
13
Nguyên Lý Hệ Điều Hành
 Byte đầu tiên của entry thể hiệc các thông tin sau:
o 0: Entry này còn trống
o . : Thư mục cha
o 0E5 : Entry của tập tin này tạm thời bị xóa
o Ký tự bất kỳ : tên của một tập tin
- Diễn dải byte thuộc tính:
- Khai báo bảng tham số đĩa
Typedef struct {
unsigned char JMP[3];
unsigned char Ver[8];
unsigned SecSiz;

unsigned char ClustSiz;
unsigned ResSec;
unsigned char FatCnt;
unsigned RootSiz;
unsigned TotSec;
unsigned char Media;
unsigned FatSiz;
unsigned TrkSec;
unsigned HeadCnt;
unsigned HidSec;
}EntryBPB;

typedef union {
unsigned char Sector[512];
EntryBPB Entry;
}UnionBPB;
14
Nguyên Lý Hệ Điều Hành
Hình 1.7
Ví dụ: #include <iostream.h>
#include<dos.h>
Typedef struct {…
}EntryBPB
Typedef Union {… }UnionBPB Int
main()
{
UnionBPB bpb;
ReadDisk (0,1, bpb.sector);
cout<<bpb.Entry.secsiz;
cout <<bpb.Entry.Clustsiz;

………………………….
Return 1;
}
- Khai báo kiểu thời gian tạo tập tin, thư mục
typedef struct {
unsigned S:5 ;
unsigned M: 6 ;
unsigned H:5;
}Time;
typedef union {
15
Nguyên Lý Hệ Điều Hành
unsigned intTime;
Time T ;
}UnionTime;
- Khai báo kiểu ngày tháng năm tạo tập tin, thư mục
typedef struct {
unsigned D: 5 ;
unsigned M: 6 ;
unsigned Y:7;
}Date;
typedef union {
unsigned intDate;
Date Day ;
}UnionDate;
- Khai báo 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;
Attrib Attr ;
}UnionAttrib;
- Khai báo cấu trúc một Entry tập tin typedef struct {
unsigned char FileName[8] ;
unsigned char Ext[3] ;
UnionAttrib Attribute ;
unsigned char DR[10] ;
UnionTime CreateTime ;
16
Nguyên Lý Hệ Điều Hành
UnionDate CreateDate ;
unsigned ClustBegin;
long FileSize;
}EntryDir;
typedef union {
unsigned char Entry[32];
EntryDir EntDir ;
}UnionDir;
- Danh sách liên kết
typedef struct Node{
void *Data;
Node *Next;
}NodeType;

typedef NodeType *PointerType;
Hình 1.8
17
Nguyên Lý Hệ Điều Hành
int InsertLast (PointerType &List, PointerType &Last, void* Item)
{
PointerType Temp; Temp=
new NodeType; if( !Temp)
return
0;
Temp->Data = Item; Temp-
>Next = NULL;
if(List==NULL)
List=Temp;
else Last->Next=Temp;
Last = Temp;
return 1;
}
- Hàm đọc Sector từ đĩa với số hiệu theo kiểu vật lý
int ReadDiskBios(unsigned char *Buff,unsigned Side, unsigned TrackSec,
unsigned Sector, unsigned SecNum)
{
union REGS u, v; struct
SREGS s; int k, i=0;
v.x.cflag=1;
while(i<2) && (v.x.cflag!=0))
{
u.h.ah= 0x2;// Đọc đĩa
u.h.dl=0 ; ổ đĩa mềm A
u,h.dh=Side;

u.x.cx=TrackSec; // Track và Sector bắt đầu
u.h.al=SecNum;
s.es=FP_SEG(Buff);
u.x.bx=FP_OFF(Buff);
int86x (0x13, &u, &v, &s);
i++;
}
k=v.h.ah;
return (!v.x.cflag);
}
Hàm đọc đĩa với đầu vào là sector logic
int ReadDisk(char *Buff, long SectorBegin, int SecNum)
18
Nguyên Lý Hệ Điều Hành
{
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;
X=X & 0XFF00;
X=X>>2;
X=X & 0X00FF; X=X |
Sector;
Track = Track <<8;
TrackSec=Track | X; //Track ( 10), Sector(6)
if ( ReadDiskBios(Buff, Side, TrackSec, Sector, SecNum))
return 1;

else
return 0;
};
7. Hệ thống tập tin unit
 Cấu trúc tổng quát
Hình 1.9
- BootSector : chứa chương trình mồi hệ điều hành
- Khối đặc biệt: lưu trữ các thông tin quan trọng về toàn bộ hệ thống tập tin, (số I-
node, số khối đĩa, dãy các ô nhớ còn trống trên đĩa,…)
- Sau khối đặc biệt là bảng I-Node được đánh số từ 1 đến tối đa.
- Khối dữ liệu là vùng nhớ lưu trữ nội dung tập tin, thư mục.
• Cách quản lý các ô nhớ còn trống trong khối dữ liệu:
19
Nguyên Lý Hệ Điều Hành
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 khoảng 3 ô nhớ.
Hình 1.10
- Đối với tập tin có kích thước nhỏ hơn 10 ô nhớ dữ liệu thì các con trỏ gián
tiếp không được sử dụng để ghi địa chỉ.
- Khi một file có kích thước lớn hơn 10 ô nhớ dữ liệu thì con trỏ 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.
- Tương tự con trỏ double chỉ đến một ô nhớ chứa 256 địa chỉ ô nhớ và mỗi ô
nhớ này lại chứa 256 địa chỉ ô nhớ dữ liệu.
- Một file lớn nhất sử dụng cả 3 con trỏ gián tiếp là 16 GB
Hình 1.11
20
Nguyên Lý Hệ Điều Hành
• 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:
I-Node Tên tập
tin
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
 Trước hết đọc I-Node của thư mục gốc – là I-Node đầu tiên trong bảng I-
Node
 Đọc từng entry trong thư mục gốc so sánh với thư mục usr từ đó tìm ra I-
node của thư mục usr.
 Từ I-node này tiếp tục xác định các entry trong thư mục và so sánh 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
Hình 1.12
II. HỆ T

HỐ N G

Q UẢ N L

Ý N H Ậ P X U

Ấ T
1. Các khái niệm
Một trong các chức năng chính của hệ điều hành là hệ thống quản lý thiết bị nhập
xuất. Hệ điều hành chỉ thị cho các thiết bị, kiểm soát các ngắt và lỗi.
21

Nguyên Lý Hệ Điều Hành
Ngoài ra hệ điều hành phải cung cấp cơ chế giao tiếp đơn giản và tiện dụng giữa các thiết
bị và các phần còn lại của hệ thống. Việc giao tiếp này phải độc lập với thiết bị.
1.1 Thiết bị nhập xuất
Có nhiều cách nhìn khác nhau về thiết bị nhập xuất. Đối với các lập trình viên thì
quan niệm các thiết bị nhập xuất là các lệnh thực thi được trên các thiết bị nhập xuất,
chúng thực thi các chức năng gì và thông báo lỗi của chúng bao gồm những gì.
1.2 Thiết bị logic
Mục tiêu chung của thiết bị logic là dễ biểu diễn. Thiết bị logic được tổ chức thành
nhiều lớp. Lớp dưới cùng giao tiếp với phần cứng, lớp trên cùng giao tiếp tốt , thân thiện
với người sử dụng. Thiết bị logic độc lập với thiết bị ví dụ như có thể viết chương trình
truy xuất file trên đĩa mềm hay đĩa cứng mà không cần mô tả chương trình cho từng loại
thiết bị. Ngoài ra thiết bị logic phải có khả năng kiểm soát lỗi.
Thiết bị logic được tổ chức thành 4 lớp: Kiểm soát lỗi, điều khiển thiết bị, phần
mềm hệ điều hành độc lập thiết bị, phần mềm người sử dụng.
1.3 Hệ thống quản lý nhập/ xuất
Hệ thống quản lý nhập xuất được tổ chức theo từng lớp, mỗi lớp có một chức năng nhất
định và các lớp có giao tiếp với nhau theo sơ đồ sau:
Các lớp Chức năng nhập xuất
Xử lý của người sử Tạo lời gọi nhập xuất, định dạng nhập xuất
dụng
Phần mềm độc lập Đặt tên, bảo vệ, tổ chức khối, bộ đệm, định vị
thiết bị

Điều khiển thiết bị

Thiết lập thanh ghi thiết bị, kiểm tra trạng thái

Kiểm soát ngắt


Báo cho driver khi nhập xuất hoàn tất
Phần cứng

Thực hiện thao tác nhập xuất
2. Mô hình tổ chức và quản lý việc nhập xuất
2.1 Mô hình
2.1.1
các thiết bị nhập xuất
Các thiết bị nhập xuất có thể chia tương đối thành 2 loại thiết bị khối và thiết bị
22
Nguyên Lý Hệ Điều Hành
thuần tự:
- Thiết bị khối là thiết bị mà thông tin được lưu trữ trong các khối có kích thước
cố
định và được lưu trữ trong những khối có kích thước cố định và được định vị bởi
địa chỉ. Kích thước thông thường của một khối khoảng từ 128 byte đến 1024 byte.
Đặc điểm của thiết bị khối là chúng có thể được truy xuất từng khối riêng biệt và
chương trình có thể có thể truy xuất một khối bất kỳ nào đó. Đĩa là một ví dụ truy
xuất khối.
- Một dạng thiết bị thứ hai là thiết bị tuần tự. Ở dạng thiết bị này việc gởi và
nhận
thông tin là chuỗi các bits, không có xác định địa chỉ và không thể tìm kiếm. Màn
hình, bàn phím, máy in, card mạng, mouse là các thiết bị tuần tự.
2.1.2
Điều khiển thiết bị
Một đơn vị nhập xuất thường được chia làm hai thành phần chính là thành phần cơ
và thành phần điện tử. Thành phần diện tử được gọi là bộ phận điều khiển thiết bị hay bộ
tương thích, trong các máy tính thường được gọi là card.
Một bộ phận điều khiển thường có bộ phận kết nối trên chúng để có thể gắn thiết
bị lên đó. Một bộ phận điều khiển có thể quản lý được 2 hay 4 , 8 thiết bị khác nhau. Nếu

giao tiếp giữa thiết bị và bộ phận điều khiển là các chuẩn như ANSI, IEEE, hay ISO thì
nhà sản xuất thiết bị và bộ điều khiển phải tuân theo chuẩn đó.
2.1.3
DMA
Đa số các loại thiết bị, đặc biệt là các thiết bị dạng khối hỗ trợ cơ chế DMA (Direct
Memory Access). Để hiểu cơ chế này trước hết phải xét quá trình đọc đĩa mà không có
DMA. Trước tiên bộ điều khiền đọc tuần tự các khối trên đĩa, từng bit từng bit cho tới khi
toàn bộ khối được đưa vào buffer của bộ điều khiển. sau đó máy tính thực hiện checksum
để đảm bảo không có lỗi xảy ra. Tiếp theo bộ điều khiển tạo ra một ngắt để báo cho CPU
biết. CPU lấy dữ liệu từ buffer chuyển về bộ nhớ chính bằng cách tạo ra một vòng lặp đọc
lần lượt từng byte. Thao tác này làm lãng phí thời gian của CPU, do đó để tối ưu dùng cơ
chế DMA.
2.1 Thiết bị logic
2.1.1
Kiểm soát ngắt
Ngắt là một hiện tượng phức tạp. Nó phải cần được che dấu sâu trong hệ điều
hành,và một phần ít của hệ thống biết về chúng. Cách tốt nhất để che dấu chúng là hệ điều
hành có mọi tiến trình thực hiện thao tác nhập xuất cho tới khi hoàn tất mới tạo ra một
ngắt. Tiến trình có thể tự khoá lại bằng cách thực hiện lệnh WAIT theo một biến điều kiện
hoặc RECEIVE theo một thông điệp.
23
Nguyên Lý Hệ Điều Hành
2.1.2
Device Drivers
Tất cả các đoạn mã độc lập thiết bị đều được chuyển đến device driver. Mỗi device
drivers kiểm soát mỗi loại thiết bị, nhưng cũng có khi là một tập hợp các thiết bị liên quan
mật thiết với nhau.
Device drivers phát ra các chỉ thị và kiểm tra xem chỉ đó có được thực hiện chính
xác không. Ví dụ driver của đĩa là phần duy nhất của hệ điều hành kiểm soát bộ điều
khiển đĩa. Nó quản lý sector, track, cylinder, head,…giúp cho các thao tác đĩa

đ
ược thực
hiện tốt.
2.1.3
Phần mềm nhập xuất độc lập thiết bị
Mặc dù một số phần mềm nhập xuất mô tả thiết bị nhưng phần lớn chúng là độc
lập với thiết bị. Ranh giới chính xác giữa driver và phần mềm độc lập thiết bị là độc lập
về mặt hệ thống, bởi vì một số hàm mà được thi hành theo kiểu độc lập thiết bị có thể
được thi hành trên driver vì lý do hiệu quả hay những lý do khác nào đó.
2.1.4
Phần mềm nhập xuất phạm vi người sử dụng
Hầu hết các phần mềm nhập xuất đều ở bên trong của hệ điều hành và một phần
nhỏ của chúng chứa các thư viện liên kết với chương trình của người sử dụng ngay cả
những chương trình thi hành bên ngoài hạt nhân.
Lời gọi hệ thống bao gồm lời gọi hệ thống nhập xuất thường được thực hiện bởi
các hàm thư viện.
Không phải tất cả các phần mềm nhập xuất đều chứa hàm thư viện, có một loại
quan trọng khác gọi là hệ thống spooling dùng để khai thác tối đa thiết bị nhập xuất trong
hệ thống đa chương.
2.2 Các chức năng
2.2.1
Điều khiển thiết bị nhập xuất
Chức năng của bộ điều khiển là giao tiếp với hệ điều hành vì hệ điều hành không
thể truy xuất trực tiếp với thiết bị. Việc thông tin thông qua hệ thống đường truyền gọi là
bus.
Công việc của bộ điều khiển là chuyển đổi dãy các bit tuần tự trong một khối các
byte và thực hiện sửa chữa nếu cần thiết. Thông thường khối các byte được tổ chức thành
từng bit và đặt trong buffer của bộ điều khiển. Sau hiện checksum nội dung của buffer sẽ
được chuyển vào bộ nhớ chính. Ví dụ bộ điều khiển cho màn hình đọc các byte của ký tự
để hiển thị trong bộ nhớ và tổ chức các tín hiệu để điều khiển các tia của CRT để xuất trên

màn hình bằng cách quét các tia dọc, ngang. Nếu không có bộ điều khiển, lập trình viên
hệ điều hành phải tạo thêm chương trình điều khiển tín hiệu analog cho đèn hình. Với bộ
điều khiển, hệ điều hành chỉ cần khởi động chúng với một tham số như số ký tự trên một
dòng, số dòng trên màn hình và bộ điều khiển sẽ thực hiện điều khiển các tia.
Mỗi bộ điều khiển có một số thanh ghi để liên lạc với CPU. Trên một số máy tính,
các thanh ghi này là một phần của bộ nhớ chính tại một địa chỉ xác định gọi là ánh xạ bộ
nhớ nhập xuất. Hệ máy PC dành ra một vùng địa chỉ đặc biệt gọi là địa chỉ nhập xuất và
trong đó được chia làm nhiều đoạn, mỗi đoạn cho một loại thiết bị.
24
Nguyên Lý Hệ Điều Hành
Bộ điều khiển nhập xuất Địa chỉ nhập xuất Vector ngắt
Đồng hồ 040 – 043 8
Bàn phím 060 – 063 9
RS232 phụ 2F8 – 2FF 11
Đĩa cứng 320 – 32F 13
Máy in 378 – 37F 15
Màn hình Mono 380 – 3BF
Màn hình màu 3D0 – 3DF
Đĩa mềm 3F0 – 3F7 14
RS232 chính 3F8 – 3FF 12
Hệ điều hành thực hiện nhập xuất bằng cách ghi lệnh lên các thanh ghi của bộ điều
khiển. Ví dụ bộ điều khiển đĩa mềm của IBMPC chấp nhận 15 lệnh khác nhau như Read,
Write, Seek, Format,… một số lệnh có tham số và các tham số cũng được nạp vào thanh
ghi.
Khi một lệnh đã được chấp nhận, CPU sẽ rời bộ điều khiển để thực hiện công việc
khác. Sau khi thực hiện xong, bộ điều khiển phát sinh một ngắt để báo hiệu cho CPU biết
và đến lấy kết quả được lưu giữ trong các thanh ghi.
2.2.2 cơ chế DMA
Cơ chế DMA giúp cho CPU không bị lãng phí thời gian. Khi sử dụng, CPU gửi
cho bộ điều khiển một số các thông số như địa chỉ trên đĩa của khối, địa chỉ trong bộ nhớ

nơi định vị khối, số lượng byte dữ liệu để chuyển.
Sau khi bộ điều khiển đã đọc toàn bộ dữ liệu từ thiết bị vào buffer của nó và kiểm
tra checksum. Bộ điều khiển chuyển byte đầu tiên vào bộ nhớ chính tại địa chỉ được mô tả
bởi địa chỉ bộ nhớ DMA. Sau đó nó tăng địa chỉ DMA và giảm số byte phải chuyển. Quá
trình này lập cho tới khi số byte phải chuyển bằng 0, và bộ điều khiển tạo một ngắt. Như
vậy không cần phải copy khối vào trong bộ nhớ, nó đã hiện hữu trong bộ nhớ.
2.2.3Thiết bị Logic
Kiểm soát ngắt
Khi một ngắt xảy ra, hàm xử lý ngắt khởi tạo một tiến trình mới để xử lý ngắt. Nó
sẽ thực hiện một tín hiệu trên biến điều khiển và gửi những thông điệp đến cho các tiến
trình bị khoá. Tổng quát, chức năng của ngắt là làm cho một tiến trình đang bị khoá được
thi hành trở lại.
Device Driver
Chức năng của device driver là nhận những yêu cầu trừu tượng từ phần mềm nhập
xuất độc lập thiết bị ở lớp trên, và giám sát yêu cầu này thực hiện. Nếu driver đang rãnh,
nó sẽ thực hiện ngay yêu cầu, ngược lại yêu cầu đó sẽ được đưa vào hàng đợi.
Ví dụ bước đầu tiên của yêu cầu nhập xuất đĩa là chuyển từ trừu tượng thành cụ
thể. Driver của đĩa phải biết khối nào cần đọc, kiểm tra sự hoạt động của motor đĩa, xác
định ví trí của đầu đọc đã đúng chưa.
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×